rubic-sdk
Version:
Simplify dApp creation
39 lines • 1.57 kB
JavaScript
;
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