SwapBox SDK

Install swapbox-sdk

yarn add swapbox-sdk

Initialize swapbox-sdk

const swapboxSdk = require("swapbox-sdk");
swapboxSdk.mainnet(); // Mainnet call
swapboxSdk.testNet(); // testnet call

Swapbox-sdk API

/**
* @description Get the estimated swap fee
* @param fromAsset {object} Source chain assets (asset information returned by the asset query interface)`
* @param toAsset {object} target chain asset
* @param fromAddress {object} user address
* @param inputType { 'src' | 'dest' } The type of amount entered by the current user
* @param amount {string} The amount the user needs to redeem
* @param platform {string} The current platform (pass the docking platform SWFT | NABOX | other docking platforms)
* @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'
    );
// return value
feeInfo = {
    code: '1000', // 1000 is successful, the rest are failures
    crossChainFee: '', // cross-chain fee (used to call the contract)
    amountIn: '100', // source chain deposit
    amountOut: '99.98', // The user receives the amount received by the target chain
    orderId: '', // The generated order id (used by the calling contract)
    swapFee: '', // The procedure for swap collection (will be used to call the contract)
    message: 'success'
}
/**
 * * @description Send stablecoin transaction (call contract)
 * * @param fromAddress {string} current user address
 * * @param fromAsset {object} Source chain assets (asset information returned by the asset query interface)
 * * @param toAsset {object} target chain asset
 * * @param amountIn {string} Source chain deposit (obtained through the rate information interface)
 * * @param amountOut {string} Target chain deposit (obtained through the rate information interface)
 * * @param crossChainFee {string} Cross-chain fee (obtained through the rate information interface)
 * * @param orderId {string} Order number (obtained through the rate information interface)
 * * @param signAddress {string} Multi-signature address (obtained through the background config interface)
 * * @param swapFee {string} The fee charged for exchange (obtained through the rate information interface)
 * * @param platform {string} The current platform (pass the docking platform SWFT | NABOX | other docking platforms)
 * * @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()
    );
    // return value
    hashRes = {
        code: '1000', // 1000 is successful, the rest are failures
        hash: '', // hash of broadcast transaction after signing
        message: 'success'
   }
/**
* @description record a hash after the transaction is sent
* @param orderId {string} order number orderId
* @param hash {string} transaction hash
* @returns {Promise<void>}
*/
const res = await swapboxSdk.recordHash(orderId, has);
// return value
res = {
    code: 1000,
    msg: '',
    data: {} // current order information
}

Last updated