@nekoproject/swap
Version:
Cross-chain Swap Token
76 lines (68 loc) • 2.42 kB
text/typescript
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}`);
// }
// }