1.2.25 • Published 2 years ago

@nekoproject/swap v1.2.25

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@nekoproject/swap

A complete crypto wallet base support for cross-chain

Table of contents

Build

Re-build project from scratch

  • Clean project
      npm run clean
  • Build
      npm run build
  • Unit test
    ```bash
      npm run test:cover
    ```

    Install

    Install @nekoproject/swap with npm
      npm i @nekoproject/swap
    Import
      import {SPLSwap, SwapConfig, SwapOrder, SwapResponse} from '@nekoproject/swap'

    Documents

    Init and config SPLSwap instance
  // 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
      const order = {
        inputToken: /Token/,
        outputToken: /Token/,
        amount: /amount number/,
        slippage: /% slippage/,
      }
  • Example config order
     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
       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