Connecting a Web3 Wallet and Executing a Transaction through Rubic API
This page explains how to connect a Web3 wallet, retrieve token quotes, approve tokens, and execute a transaction using Rubic API, with examples using @solana/web3.js
Connecting a Web3 Wallet
To interact with the blockchain, we first need to connect a wallet. Here are examples using @solana/web3.js.
asyncfunctionquoteBest() {constresponse=awaitfetch("https://api-v2.rubic.exchange/api/quoteBest", { method:"POST", headers: {"Content-Type":"application/json", }, body: {"srcTokenAddress":"0x0000000000000000000000000000000000000000","srcTokenAmount":"1.05","srcTokenBlockchain":"SOL""dstTokenAddress": "0x0000000000000000000000000000000000000000","dstTokenBlockchain":"POLYGON","referrer":"rubic.exchange" } });constdata=awaitresponse.json();const { estimate,transaction,id } = data;console.log(estimate);// {// This is an estimated amount you will get after the swap.// "destinationTokenAmount": "451.4591",// "destinationTokenMinAmount": "437.915327",//// "destinationUsdAmount": 233.63,// "destinationUsdMinAmount": 226.63,//// "destinationWeiAmount": "451459000000",// "destinationWeiMinAmount": "437915327000",//// "durationInMinutes": 5,// "priceImpact": 0.23,// "slippage": 0.03// }console.log(id);// This is the swap ID. It will be needed later for swap request.return data;}
You get more information about quote endpoint here:
Retrieving Data to Execute a Transaction
To perform a token swap through Rubic API, we need to get the necessary data for the transaction.
asyncfunctiongetStatus(// Your transaction hash, otained while executing transaction hash) {constresponse=awaitfetch(`https://api-v2.rubic.exchange/api/routes/status?srcTxHash=${hash}`);constdata=awaitresponse.json();const { status,destinationTxHash } = data;console.log(status);// Current TX status can be one of// 'PENDING' | 'LONG_PENDING' | 'REVERT' |// 'REVERTED' | 'FAIL' | 'READY_TO_CLAIM' |// 'SUCCESS' | 'NOT_FOUND';console.log(status);// shows the hash on the target network if the transaction// is successfully completedreturn status;}
You get more information about status endpoint here: