From cfb93da8a893d088cd5f96dd4a0d70f681875305 Mon Sep 17 00:00:00 2001 From: c4605 Date: Sat, 2 Nov 2024 17:58:03 +0100 Subject: [PATCH] fix: recommended gas limit --- src/xlinkSdkUtils/bridgeFromEVM.ts | 34 +++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/xlinkSdkUtils/bridgeFromEVM.ts b/src/xlinkSdkUtils/bridgeFromEVM.ts index 340b642..68173a8 100644 --- a/src/xlinkSdkUtils/bridgeFromEVM.ts +++ b/src/xlinkSdkUtils/bridgeFromEVM.ts @@ -323,15 +323,21 @@ async function bridgeFromEVM_toStacks( ], }) + const fallbackGasLimit = 200_000 const estimated = await estimateGas(fromTokenContractInfo.client, { account: info.fromAddress, to: bridgeEndpointAddress, data: functionData, }) - .then(n => BigNumber.round({ precision: 0 }, BigNumber.mul(n, 1.2))) + .then(n => + BigNumber.round( + { precision: 0 }, + BigNumber.max([fallbackGasLimit, BigNumber.mul(n, 1.2)]), + ), + ) .catch( // add a fallback in case estimate failed - () => 5 * 1e5, + () => fallbackGasLimit, ) return await info.sendTransaction({ @@ -396,17 +402,21 @@ async function bridgeFromEVM_toBitcoin( ], }) + const fallbackGasLimit = 200_000 const estimated = await estimateGas(fromTokenContractInfo.client, { account: info.fromAddress, to: bridgeEndpointAddress, data: functionData, }) - .then(n => BigNumber.round({ precision: 0 }, BigNumber.mul(n, 1.2))) + .then(n => + BigNumber.round( + { precision: 0 }, + BigNumber.max([fallbackGasLimit, BigNumber.mul(n, 1.2)]), + ), + ) .catch( // add a fallback in case estimate failed - () => - // https://mainnet-explorer.ailayer.xyz/tx/0xa62dd8c3a6a3fe2dbc10b0847dcc0cae610c348a77b163134b87eb9563fd5f62 - 5 * 1e5, + () => fallbackGasLimit, ) return await info.sendTransaction({ @@ -469,17 +479,21 @@ async function bridgeFromEVM_toEVM( ], }) + const fallbackGasLimit = 200_000 const estimated = await estimateGas(fromTokenContractInfo.client, { account: info.fromAddress, to: bridgeEndpointAddress, data: functionData, }) - .then(n => BigNumber.round({ precision: 0 }, BigNumber.mul(n, 1.2))) + .then(n => + BigNumber.round( + { precision: 0 }, + BigNumber.max([fallbackGasLimit, BigNumber.mul(n, 1.2)]), + ), + ) .catch( // add a fallback in case estimate failed - () => - // https://mainnet-explorer.ailayer.xyz/tx/0xa62dd8c3a6a3fe2dbc10b0847dcc0cae610c348a77b163134b87eb9563fd5f62 - 5 * 1e5, + () => fallbackGasLimit, ) return await info.sendTransaction({