UNPKG

@prism-hq/prism-ag

Version:

Prism Aggregator

72 lines (71 loc) 3.18 kB
"use strict"; // import { Program } from "@project-serum/anchor"; // import { PublicKey, SystemProgram } from "@solana/web3.js"; // import { TRANSITIVE_STATE, Wallet } from "../types/types"; // import { Token, TOKEN_PROGRAM_ID, ASSOCIATED_TOKEN_PROGRAM_ID } from "@solana/spl-token" // import BN from "bn.js"; // import { PrismAg } from "./idl"; // import { RouteData as SymmetryData } from "@symmetry-hq/liquidity-sdk/dist/types"; // export async function symmetrySwap( // user: PublicKey, // program: Program<PrismAg>, // route: any, // fromTokenAccount: PublicKey, // toTokenAccount: PublicKey, // fees: any, // hostFees: number, // useT: any = null, // disableFees: any = false, // ) { // let {fromCoin, toCoin} = route.routeData; // let symmetryInfo: SymmetryData = route.routeData.symmetryInfo; // let swapAccounts = symmetryInfo.swapAccounts; // let amountIn = new BN(Math.floor(route.amountIn * 10 ** fromCoin.decimals)); // let amountOut = new BN(Math.floor(route.minimumReceived * 10 ** toCoin.decimals)); // return program.instruction.symmetrySwap( // new BN(symmetryInfo.fromTokenId), // new BN(symmetryInfo.toTokenId), // amountIn, // amountOut, // useT ? true : false, // new BN(hostFees), // { // accounts:{ // symmetryProgram: swapAccounts.program, // systemProgram: SystemProgram.programId, // tokenProgram: new PublicKey(TOKEN_PROGRAM_ID), // buyer: user, // fundState: swapAccounts.fundState, // pdaAccount: swapAccounts.authority, // pdaFromTokenAccount: swapAccounts.source, // buyerFromTokenAccount: fromTokenAccount, // pdaToTokenAccount: swapAccounts.destination, // buyerToTokenAccount: toTokenAccount, // swapFeeAccount: await Token.getAssociatedTokenAddress( // ASSOCIATED_TOKEN_PROGRAM_ID, // TOKEN_PROGRAM_ID, // swapAccounts.fees.feeTokenMint, // swapAccounts.fees.smfWallet // ), // hostFeeAccount: await Token.getAssociatedTokenAddress( // ASSOCIATED_TOKEN_PROGRAM_ID, // TOKEN_PROGRAM_ID, // swapAccounts.fees.feeTokenMint, // swapAccounts.fees.hostWallet // ), // managerFeeAccount: await Token.getAssociatedTokenAddress( // ASSOCIATED_TOKEN_PROGRAM_ID, // TOKEN_PROGRAM_ID, // swapAccounts.fees.feeTokenMint, // swapAccounts.fees.managerWallet // ), // tokenInfo: swapAccounts.tokenInfo, // prismData: swapAccounts.curveData, // feeSweeper: fees.owner, // transitiveState: new PublicKey(TRANSITIVE_STATE), // host: fees.host, // }, // remainingAccounts: swapAccounts.remainingAccounts, // } // ) // }