UNPKG

@nekoproject/swap

Version:

Cross-chain Swap Token

76 lines (68 loc) 2.42 kB
import { Transaction } from '@solana/web3.js'; // import { TokenInfo, RoutesOutput, RoutesInput, PairToken } from './types'; export function encodeTransaction(transaction: Transaction): string { const serialized = transaction.serialize({ requireAllSignatures: false, verifySignatures: false, }); const encoded = Buffer.from(serialized).toString('base64'); return encoded; } // export function getPossiblePairsTokenInfo(tokenInfo: TokenInfo) { // try { // if (!tokenInfo.inputToken) { // return {}; // } // const possiblePairs = tokenInfo.inputToken // ? tokenInfo.routeMap.get(tokenInfo.inputToken.address) || [] // : []; // return an array of token mints that can be swapped with SOL // const possiblePairsTokenInfo: PairToken = {}; // possiblePairs.forEach((address) => { // possiblePairsTokenInfo[address] = tokenInfo.tokens.find((t) => { // return t.address == address; // }); // }); // return possiblePairsTokenInfo; // } catch (error) { // throw new Error(`Get possible Pair Error: ${error}`); // } // } // export async function getRoutes( // router: RoutesInput // ): Promise<RoutesOutput | null> { // try { // if (!router.inputToken || !router.outputToken) { // return null; // } // const inputAmountUnit = router.inputToken // ? Math.round( // router.inputAmount * 10 ** router.inputToken.tokenInfo?.decimals // ) // : 0; // const routes = // router.inputToken && router.outputToken // ? await router.jupiter.computeRoutes({ // inputMint: new PublicKey(router.inputToken.tokenInfo?.mintAddress), // outputMint: new PublicKey( // router.outputToken.tokenInfo?.mintAddress // ), // inputAmount: inputAmountUnit, // raw input amount of tokens // slippage: router.slippage, // forceFetch: true, // }) // : null; // if (routes && routes.routesInfos) { // return { // numRoutes: routes?.routesInfos.length, // route: routes.routesInfos[0], // bestQuote: // routes.routesInfos[0].outAmount / // 10 ** router.inputToken.tokenInfo?.decimals, // }; // } else { // return null; // } // } catch (error) { // throw new Error(`Error get routes: ${error}`); // } // }