UNPKG

rubic-sdk

Version:
39 lines 1.57 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOnChainGasData = void 0; const bignumber_js_1 = __importDefault(require("bignumber.js")); const injector_1 = require("../../../../core/injector/injector"); const getOnChainGasData = async (trade, receiverAddress) => { const fromBlockchain = trade.from.blockchain; const walletAddress = injector_1.Injector.web3PrivateService.getWeb3PrivateByBlockchain(fromBlockchain).address; if (!walletAddress) { return null; } try { const transactionConfig = await trade.encode({ fromAddress: walletAddress }); const web3Public = injector_1.Injector.web3PublicService.getWeb3Public(fromBlockchain); const gasLimit = (await web3Public.batchEstimatedGas(walletAddress, [transactionConfig]))[0]; if (gasLimit?.isFinite()) { return gasLimit; } } catch { } try { const transactionData = await trade.getTxConfigAndCheckAmount({ fromAddress: walletAddress, skipAmountCheck: true, useCacheData: true, receiverAddress: receiverAddress || walletAddress }); if (transactionData.gas) { return new bignumber_js_1.default(transactionData.gas); } } catch { } return null; }; exports.getOnChainGasData = getOnChainGasData; //# sourceMappingURL=get-on-chain-gas-data.js.map