SwapBox SDK

安装swapbox-sdk

yarn add swapbox-sdk

初始化swapbox-sdk

const swapboxSdk = require("swapbox-sdk");
swapboxSdk.mainnet(); // 主网调用
swapboxSdk.testNet(); // 测试网调用

Swapbox-sdk API

/**
* @description 获取swap预估手续费
* @param fromAsset {object} 源链资产(资产查询接口返回的资产信息)`
* @param toAsset {object} 目标链资产 
* @param fromAddress {object} 用户地址 
* @param inputType { 'src' | 'dest' } 当前用户输入的金额类型 
* @param amount {string} 用户需要兑换的金额 
* @param platform {string} 当前平台(传对接平台 SWFT | NABOX | 其他对接平台) 
* @returns {Promise<{orderId: *, crossChainFee: *, amountIn: (*|BigNumber), amountOut: (*|BigNumber)}|{code, message: (string|*)}>} 
 */
const feeInfo = await swapboxSdk.getSwapEstimateFeeInfo(
        {
            chain: 'BSC',
            chainId: '102',
            assetId: '0',
            contractAddress: '0xd0a347e0ebea8f8efc26d539e17853c8e7a721c4',
            channelInfo: {
                'NERVE': { pairAddress: 'TNVTdTSQoL9quSyGJCA9sY8pcMEVy4RN4EjbB' }
            },
            decimals: 18
        },
        {
            chain: 'Heco',
            chainId: '103',
            assetId: '0',
            contractAddress: '0xa8b8a0751b658dc8c69738283b9d4a79c87a3b3e',
            channelInfo: {
                'NERVE': {
                    pairAddress: 'TNVTdTSQoL9quSyGJCA9sY8pcMEVy4RN4EjbB'
                }
            },
            decimals: 18
        },
        '0x3083f7ed267dca41338de3401c4e054db2a1cd2f',
        'src',
        '100',
        'SWFT'
    );
// 返回值
feeInfo = {
    code: '1000', // 1000成功,其余都是失败  
    crossChainFee: '', // 跨链手续费(调用合约会用到)  
    amountIn: '100', // 源链入金  
    amountOut: '99.98', // 用户收到目标链收到的金额  
    orderId: '', // 生成的订单id(调用合约会用到)  
    swapFee: '', // swap收取的手续(调用合约会用到)  
    message: 'success'
}
/** 
 * * @description 发送稳定币交易(调用合约) 
 * * @param fromAddress {string} 当前用户地址 
 * * @param fromAsset {object} 源链资产(资产查询接口返回的资产信息) 
 * * @param toAsset {object} 目标链资产 
 * * @param amountIn {string} 源链入金(通过费率信息接口获取) 
 * * @param amountOut {string} 目标链入金(通过费率信息接口获取) 
 * * @param crossChainFee {string} 跨链手续费(通过费率信息接口获取) 
 * * @param orderId {string} 订单号(通过费率信息接口获取) 
 * * @param signAddress {string} 多签地址(通过后台config接口获取) 
 * * @param swapFee {string} 兑换收取的手续费(通过费率信息接口获取) 
 * * @param platform {string} 当前平台(传对接平台 SWFT | NABOX | 其他对接平台) 
 * * @returns {Promise<{message: string, code: number}|{code: number, hash: *}|{msg: (*|string), code: (number|string|number)}>} 
 * */

const hashRes = swapboxSdk.sendStableSwapTransaction(
    '0x3083f7ed267dca41338de3401c4e054db2a1cd2f',
    {
        chain: 'BSC',
        chainId: '102',
        assetId: '0',
        contractAddress: '0xd0a347e0ebea8f8efc26d539e17853c8e7a721c4',
        channelInfo: {
            'NERVE': { pairAddress: 'TNVTdTSQoL9quSyGJCA9sY8pcMEVy4RN4EjbB',}
        },
        decimals: 18
    }, 
    {
        chain: 'Heco',
        chainId: '103',
        assetId: '0',
        contractAddress: '0xa8b8a0751b658dc8c69738283b9d4a79c87a3b3e',
        channelInfo: {
            'NERVE': { pairAddress: 'TNVTdTSQoL9quSyGJCA9sY8pcMEVy4RN4EjbB' }
        },
        decimals: 18
    },
    feeInfo.amountIn,
    feeInfo.amountOut,
    feeInfo.crossChainFee.toString(),   
    feeInfo.orderId,
    '0xf85f03C3fAAC61ACF7B187513aeF10041029A1b2',
     feeInfo.swapFee.toString() 
    );
    // 返回值
    hashRes = {      
        code: '1000', // 1000成功,其余都是失败      
        hash: '', // 签名过后广播交易的hash      
        message: 'success'
   }
/** 
* @description 交易发出后记录一次hash 
* @param orderId {string}订单号 orderId 
* @param hash {string} 交易hash 
* @returns {Promise<void>} 
*/ 
const res = await swapboxSdk.recordHash(orderId, has);
// 返回值
res = {
    code: 1000,
    msg: '',
    data: {} // 当前订单信息
}

最后更新于