Skip to main content

Advanced Usage

Handling Errors

The dApp is responsible for handling errors that occur during the transaction process. Ensure to implement proper error handling mechanisms to provide a smooth user experience.

Example

sprinter.getUserBalances()
.then(balances => {
console.log('User balances:', balances);
})
.catch(error => {
console.error('Error fetching balances:', error);
});

Explanation

  • catch: The catch method is used to handle any errors that occur during the promise's execution, ensuring that your application can manage and log errors effectively.

Customizing Requests

The Sprinter SDK allows you to customize requests to suit your application's needs. Here’s how to provide additional options when fetching solutions.

Example

sprinter.getSolution({
token: "USDC",
destinationChain: 42161, // Destination chain ID
amount: "1000000000" // Amount in the smallest unit (e.g., wei)
}).then(solution => {
console.log('Transaction solution:', solution);
});

Explanation

  • token, destinationChain, amount: These parameters specify the token, destination chain, and amount for the transaction.

Integrating With Other Libraries

You can integrate the Sprinter SDK with other libraries and tools in your dApp to enhance functionality.

Example with Web3.js v4

import { Sprinter } from '@chainsafe/sprinter-sdk';
import Web3 from 'web3';

async function integrateWithWeb3() {
const web3 = new Web3(window.ethereum);
const accounts = await web3.eth.requestAccounts();

const sprinter = new Sprinter(window.ethereum);

const balances = await sprinter.getUserBalances();
console.log('User balances:', balances);

const solution = await sprinter.getSolution({
token: "USDC",
destinationChain: 42161,
amount: "1000000000"
});

console.log('Transaction solution:', solution);

// Execute transaction using Web3.js
const tx = solution[0].transaction;

web3.eth.sendTransaction(tx)
.on('transactionHash', (hash) => {
console.log('Transaction hash:', hash);
})
.on('receipt', (receipt) => {
console.log('Transaction receipt:', receipt);
})
.on('error', console.error);
}

integrateWithWeb3().catch(console.error);

Explanation

  • Web3.js v4: A library for interacting with the Ethereum blockchain, used here to manage accounts and send transactions.
  • solution[0].transaction: The transaction object provided by Sprinter's solution that is used to execute the transaction.