Here is a detailed explanation of the parameters for the quote API:
Cross-chain
Query
example:
const result = await axios.get(`https://api2.chainge.finance/v1/getBridgeQuote?amount=100000000&symbol=USDT&fromChain=FSN&toChain=BNB`)
console.log(result)//{// "code": 0,// "msg": "success",// "data": {// "price": "1",// "outAmount": "100000000000000000000",// "outAmountUsd": "100.000000000000000000",// "serviceFee": "50000000000000000",// "gasFee": "300000000000000000"// }//}const { outAmount,outAmountUsd,serviceFee,gasFee } =result.dataconstoutAmountBI=BigInt(outAmount)constserviceFeeBI=BigInt(serviceFee)constgasFeeBI=BigInt(gasFee)constgasBI= serviceFeeBI + gasFeeBIconstreceiveAmountBI= outAmountBI - totalGasBIif(receiveAmountBI <=BigInt(0)) {// Unable to cover the transaction fee. The transaction should be terminated.} else {// The actual value displayed to the user.console.log(formatUnits(receiveAmountBI,toToken?.decimals)) // 99.65console.log(formatUnits(gasBI,toToken?.decimals)) // 0.35 // Here, the extra parameter for submitOrder can be preprocessed.// submitOrder body params.extraconstextra=`1_${receiveAmountBI.toString()}`}
To provide higher flexibility, our return results need to be processed before displaying on the interface:
price: The current price of the cross-chain currency for calculating its value.
outAmount: The total amount received across chains, including gasFee and serviceFee. You need to subtract gasFee and serviceFee to get the actual amount received by the user.
outAmountUsd: Estimated value in USDT.
serviceFee: Official service fee, five per ten thousand (0.05%).
gasFee: Gas fee for cross-chain transfers.
Transaction
example:
const result = await axios.get(`https://api2.chainge.finance/v1/getAggregateQuote?fromAmount=100000000&fromTokenAddress=0x8a20c13b42d7fe418f10f922f2cee06246c24269&fromDecimal=6&fromChain=FSN&toTokenAddress=0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d&toDecimal=18&toChain=BNB`)
console.log(result)//{// "code": 0,// "msg": "success",// "data": {// "chain": "42161",// "chainDecimal": 6,// "aggregator": "Kyber",// "outAmount": "100061783",// "outAmountUsd": "99.20181999",// "minOutAmount": "",// "serviceFee": "50030",// "gasFee": "800079",// "priceImpact": "0.26",// "routeSummary": "H4sIAAAAAAAA/5ySUWvbMBSF/8t99ookW7KstxZWCGxslO0p5EG6vnJMHDlYcpsS8t+HHS/pVhisftP1Eeec++kEqd9RWAUwwI6+Zlo5LLGWWGheI1aoJTkqSm05Mqcqj85VkIHd92NI8z3Olu/N+GesL38g++3w1Q47St+HFun+2baddR2B8baLtGi+jWmOYb3WNVOSyhI1ohB5lYsSJdUut0UuhNIkdc6vfpeLUw7FS52/nV+D3AnFK6akUnCz+2emxkYwIORSrbFxFv7VuLHx4sHumGalZIwLrQolimoKSMc02EciMCfwRPdzrkkNGeDWDg09Ej28ggHIoI2r8HCI1wSe6ImQ2mcaJsE5g6EfE4FZr09w6PtuXhdOyDQnwXyVi5xx4RUVQrjaSym8Z8pZhTW/ofhf2B+l07X7Nj1RGofwR/H4Yg/Xwfvn8x4nHXFrQzPt/qXfO5sgm/t/odCkLZjicvzxerhJPu1tGxbd54kCmDB23YIEzOl83mxuJ8DtGHZxFXwPZr05n38FAAD//y+XPE8bAwAA"
// }//}const { chain, chainDecimal, aggregator, outAmount, outAmountUsd, minOutAmount, serviceFee, gasFee, priceImpact, routeSummary } = result.data
constoutAmountBI=BigInt(outAmount)constserviceFeeBI=BigInt(serviceFee)constgasFeeBI=BigInt(gasFee)constgasBI= serviceFeeBI + gasFeeBIconstreceiveAmountBI= outAmountBI - totalGasBIif(receiveAmountBI <=BigInt(0)) {// Unable to cover the transaction fee. The transaction should be terminated.} else {// The actual value displayed to the user.console.log(formatUnits(receiveAmountBI, chainDecimal)) // 99.211674console.log(formatUnits(gasBI, chainDecimal)) // 0.850109// Here, the extra parameter for submitOrder can be preprocessed.// submitOrder body params.extralet extraToAmountBI = receiveAmountBIif(toChain.network !== chain) {consttempExtraToAmountStr=formatUnits(extraToAmountBI, chainDecimal) extraToAmountBI =parseUnits(tempExtraToAmountStr,toToken.decimals) }constextra=`1_${extraToAmountBI.toString()}`if(fromChain.network !== chain &&toChain.network !== chain) {// The subsequent process proceeds with the submitOrder function. } else {if(fromChain.network ===toChain.network) {// The subsequent process proceeds with the getAggregateSwap function. } else {// The subsequent process proceeds with the submitOrder function. } }}
These are all results returned by the "Supported Chains & Tokens" interface.s
To provide greater flexibility, our return results need to be processed again before they can be displayed on the interface:
chain: The chain ID on which the transaction is executed.
chainDecimal: The decimal of the current currency on the chain where the transaction is executed.
aggregator: The intermediary responsible for executing the transaction.
outAmount: The total amount received after cross-chain transfer, including gasFee and serviceFee. Therefore, you need to deduct gasFee and serviceFee to get the actual amount received by the user.
outAmountUsd: The estimated value in USDT.
minOutAmount: Reserved field.
serviceFee: More detailed documentation will be provided.