UNPKG

@nekoproject/swap

Version:

Cross-chain Swap Token

118 lines (111 loc) 3.01 kB
# @nekoproject/swap A complete crypto wallet base support for cross-chain Table of contents ================= <!--ts--> * [Re-Build](#build) * [Install](#install) * [Documents](#documents) * [Create SwapOrder](#create-swaporder) * [Swap Token](#swap-token) * [Notice](#notice) <!--te--> Build ======== Re-build project from scratch - Clean project ```bash npm run clean ``` - Build ```bash npm run build ``` - Unit test ```bash npm run test:cover ``` Install ======= Install `@nekoproject/swap` with `npm` ```bash npm i @nekoproject/swap ``` Import ```ts import {SPLSwap, SwapConfig, SwapOrder, SwapResponse} from '@nekoproject/swap' ``` Documents ========= Init and config SPLSwap instance ```ts // address own fee const fee = 'ykkvsfEtAhc7faxK3uJTYMPBmtrisGkU9Kv4SnuxzB7' const setFee = { feeOwner: fee, fee: 2 } const swapConfig: SwapConfig = { cluster: 'mainnet-beta', fee: setFee, slippage: 1 } const swap = new SPLSwap(SPLNetworkInstance, swapConfig) const wallet = SPLWallet.generateWallet() ``` ### SPLSwap methods #### Create SwapOrder - Config order ```ts const order = { inputToken: /Token/, outputToken: /Token/, amount: /amount number/, slippage: /% slippage/, } ``` - Example config order ```ts const usdcInfo: TokenInfo = { decimals: 6, mintAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', } const usdtInfo: TokenInfo = { decimals: 6, mintAddress: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', } const usdcToken = new SPLToken(SPLNetworkInstance, usdcInfo) const usdtToken = new SPLToken(SPLNetworkInstance, usdtInfo) // order const order = { inputToken: usdcToken, outputToken: usdtToken, amount: 1, slippage: 1, } ``` - Execute create SwapOrder ```ts const swapRequest = await swap.createSwapOrder(order, wallet) ``` #### Swap Token - Swap Token ```ts const response: SwapResponse = await swap.swapToken(swapRequest) // example const response = { tx: '5Pz8C8YHBKkGTgSsDYJqzndS62ufTNsApHY3qzc1g14QfpXwGDJoAFLx8RJ2njVgD6pwYgtzHXgwz2AVcdYxtKhp', inputAddress: '9xL3QEaqqPR4H67oUhzGLwQzokvMuxeDFuQeAf52GN8A', outputAddress: '6T496kvjdFKXG1EgXTa4VKhsNfDeJLi5JBYpySUpEvkf', inputAmount: 1000000, outputAmount: 995903 } // await transaction confirm const confirmed = await SPLNetworkInstance.provider.confirmTransaction(response.tx) console.log(confirmed) // output example: { context: { slot: 126425365 }, value: { err: null } } console.log(`https://solscan.io/tx/${output.tx}`) ``` Notice ======== # Ref