UNPKG

@nekoproject/swap

Version:

Cross-chain Swap Token

63 lines (57 loc) 1.97 kB
// /* eslint-disable @typescript-eslint/no-explicit-any */ import { expect } from 'chai'; import 'mocha'; import { SPLNetworkInstance } from '@nekoproject/networks'; import { SPLWallet } from '@nekoproject/wallets'; import { SPLToken, TokenInfo } from '@nekoproject/tokens'; import * as splSwapDev from '../src'; import * as splSwapProduction from '../lib/index.commonjs'; // let SPLSwap: any; const env = process.env.NODE_ENV; if (env === 'production') { SPLSwap = splSwapProduction.SPLSwap; } else { SPLSwap = splSwapDev.SPLSwap; } describe(`SPL Swap on ${env} environment`, async () => { // init instance // SPLNetworkInstance.rpcUrl = 'https://solana-api.projectserum.com'; const swap = new SPLSwap(SPLNetworkInstance); const mnemonic = 'vendor cactus design describe scare detect portion sad hammer tell celery penalty'; const wallet = await SPLWallet.fromMnemonic(mnemonic); let swapRequest: any; 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); it('Create Swap Order', async () => { const order = { wallet_address: wallet.address, slippage: 1, srcAmount: '0.01', srcToken: usdtToken, destToken: usdcToken, }; console.log('order: ', order); swapRequest = await swap.createSwapOrder(order); console.log('swap: ', swapRequest); expect(swapRequest.id).to.be.a('string'); }).timeout(2000000); it('Execute Swap', async () => { swapRequest = { ...swapRequest, slippage: 1, }; const response = await swap.swapToken(swapRequest, wallet); expect(response).to.be.a('string'); expect(response).to.have.length(64); }).timeout(20000000); });