import nerveswap , { mainnet , testnet } from 'nerveswap-sdk
mainnet ( ) // set up the network, default is mainnet
const needAuth = await nerveswap . evm . checkAuth ( {
provider : 'ethereum' , // the wallet collected to the dapp, ex: ethereum/NaboxWallet
tokenContract : '' ,
multySignContract : '' ,
address : '' , // your evm address
amount : '' // transfer amount, ex: 1000000000000000000
} )
nerveswap . evm . approve ( {
provider : 'ethereum' ,
tokenContract : '' ,
multySignContract : '' ,
address : ''
} ) ;
nerveswap . evm . crossIn ( {
provider : 'ethereum' ,
multySignContract : '' ,
nerveAddress : '' , // your nerve address
amount : '' ,
from : '' , // your evm address
tokenContract : ''
} )
/**
* @param {object } param
* @param {string } param.provider the wallet collected to the dapp, ex: ethereum/NaboxWallet
* @param {string } param.address the collected address
* @param {string } [param.message] the sign message, default is Generate Multi-chain Address
* @returns {Promise<{address: { NERVE: string, NULS: string, EVM: string, TRON: string, BTC: string, FCH: string, BCH: string, TBC: string }, pub: string}> }
*/
nerveswap . getAccount ( param )
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {string } param.to
* @param {number } param.assetChainId
* @param {number } param.assetId
* @param {string } param.amount
* @param {string } [param.remark]
* @param {number } param.type -2|10 transfer type, default is 2. set to 10 when the target address
* @param {string } param.EVMAddress the sign address
* @param {string } param.pub the pub of the sign address
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . transfer . transfer ( param )
Withdrawal to L1, add withdrawal fee
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {number } param.assetChainId
* @param {number } param.assetId
* @param {string } param.amount
* @param {object } param.feeInfo the withdrawal fee info
* @param {string } param.feeInfo.amount
* @param {number } param.feeInfo.assetChainId
* @param {number } param.feeInfo.assetId
* @param {string } param.heterogeneousAddress // L1 target address
* @param {number } param.heterogeneousChainId
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . transfer . withdrawal ( param )
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {string } param.amount
* @param {number } param.assetChainId
* @param {number } param.assetId
* @param {string } param.txHash the hash of the withdrawal tx
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . transfer . addFee ( param )
const swap = new nerveswap . swap ( )
Calculate the number of swaps
/**
* @param {object } param
* @param {string } param.fromAssetKey
* @param {string } param.toAssetKey
* @param {string } param.amount
* @param {string } [param.direction = from | to] default is from
* @returns {Promise<{amount: string, priceImpact: string, routes: string[], fee: string}> }
*/
swap . getSwapInfo ( param )
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {string } param.fromAssetKey
* @param {string } param.toAssetKey
* @param {string } param.amount
* @param {string } [param.slippage='0.5']
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
swap . swapTrade ( param )
Send create liquidity pair tx
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {object } param.tokenA
* @param {number } param.tokenA.assetChainId
* @param {number } param.tokenA.assetId
* @param {object } param.tokenB
* @param {number } param.tokenB.assetChainId
* @param {number } param.tokenB.assetId
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . liquidity . createPair ( param )
Cal the amount of add liquidity
/**
* @param {object } param
* @param {string } param.tokenAKey ex: 5-1
* @param {string } param.tokenBKey ex: 2-1
* @param {string } param.amount
* @param {string } [param.direction= from | to]
* @param {boolean } [param.refresh] force to refresh
* @returns {Promise<string> }
*/
nerveswap . liquidity . calAddLiquidity ( param )
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {object } param.tokenA
* @param {number } param.tokenA.assetChainId
* @param {number } param.tokenA.assetId
* @param {string } param.tokenA.amount
* @param {object } param.tokenB
* @param {number } param.tokenB.assetChainId
* @param {number } param.tokenB.assetId
* @param {string } param.tokenB.amount
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . liquidity . addLiquidity ( param )
Cal the amount of remove liquidity
/**
* @param {object } param
* @param {string } param.tokenAKey
* @param {string } param.tokenBKey
* @param {string } param.amount
* @param {boolean } [param.refresh]
* @returns {Promise<{tokenAAmount: string, tokenBAmount: string}> }
*/
nerveswap . liquidity . calRemoveLiquidity ( param )
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {string } param.removeAmount
* @param {object } param.tokenA
* @param {number } param.tokenA.assetChainId
* @param {number } param.tokenA.assetId
* @param {object } param.tokenB
* @param {number } param.tokenB.assetChainId
* @param {number } param.tokenB.assetId
* @param {object } param.tokenLP the liquidity pair info
* @param {number } param.tokenLP.assetChainId
* @param {number } param.tokenLP.assetId
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . liquidity . removeLiquidity ( param )
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {string } param.amount
* @param {numbrt } param.assetChainId
* @param {numbrt } param.assetId
* @param {string } param.farmHash
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . farm . stake ( param )
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {numbrt } param.assetChainId
* @param {numbrt } param.assetId
* @param {string } param.farmHash
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . farm . claim ( param )
/**
* @param {object } param
* @param {string } param.provider
* @param {string } param.from
* @param {string } param.amount
* @param {numbrt } param.assetChainId
* @param {numbrt } param.assetId
* @param {string } param.farmHash
* @param {string } [param.remark]
* @param {string } param.EVMAddress
* @param {string } param.pub
* @returns {Promise<{hash: string} | {error: {code: number, message: string}}> }
*/
nerveswap . farm . withdrawal ( param )
/**
* @param {object } param
* @param {object } param.provider
* @param {string } param.from
* @param {string } param.multySignAddress NERVE Bitcoin multy sign address
* @param {string } param.nerveAddress nerve target address
* @param {string } param.amount
* @param {string } param.pub
* @param {boolean } [param.isMainnet]
*/
nerveswap . btc . crossIn ( param )
/**
* @param {object } data
* @param {string } data.multySignAddress NERVE FCH multy sign address
* @param {string } data.nerveAddress nerve target address
* @param {string } data.amount transfer amount
* @returns {Promise<string> }
*/
nerveswap . fch . crossIn ( param )
/**
* @param {object } data
* @param {string } data.multySignAddress NERVE BCH multy sign address
* @param {string } data.nerveAddress nerve target address
* @param {string } data.amount transfer amount
* @returns {Promise<string> }
*/
nerveswap . bch . crossIn ( param )
/**
* @param {object } data
* @param {string } data.multySignAddress NERVE TBC multy sign address
* @param {string } data.nerveAddress nerve target address
* @param {string } data.amount transfer amount, TBC(with decimals), token(without decimals )
* @param {string? } data.tokenContract token contract
* @param {number } data.decimals token decimals
* @returns {Promise<string> }
*/
nerveswap . tbc . crossIn ( param )