UNPKG

quickswap-smart-order-router

Version:
66 lines 6.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ArbitrumGasDataProvider = exports.OptimismGasDataProvider = void 0; const GasDataArbitrum__factory_1 = require("../../types/other/factories/GasDataArbitrum__factory"); const GasPriceOracle__factory_1 = require("../../types/other/factories/GasPriceOracle__factory"); const util_1 = require("../../util"); class OptimismGasDataProvider { constructor(chainId, multicall2Provider, gasPriceAddress) { this.chainId = chainId; this.multicall2Provider = multicall2Provider; if (chainId != util_1.ChainId.OPTIMISM && chainId != util_1.ChainId.OPTIMISTIC_KOVAN) { throw new Error('This data provider is used only on optimism networks.'); } this.gasOracleAddress = gasPriceAddress !== null && gasPriceAddress !== void 0 ? gasPriceAddress : util_1.OVM_GASPRICE_ADDRESS; } /** * Gets the data constants needed to calculate the l1 security fee on Optimism. * @returns An OptimismGasData object that includes the l1BaseFee, * scalar, decimals, and overhead values. */ async getGasData() { var _a, _b, _c, _d; const funcNames = ['l1BaseFee', 'scalar', 'decimals', 'overhead']; const tx = await this.multicall2Provider.callMultipleFunctionsOnSameContract({ address: this.gasOracleAddress, contractInterface: GasPriceOracle__factory_1.GasPriceOracle__factory.createInterface(), functionNames: funcNames, }); if (!((_a = tx.results[0]) === null || _a === void 0 ? void 0 : _a.success) || !((_b = tx.results[1]) === null || _b === void 0 ? void 0 : _b.success) || !((_c = tx.results[2]) === null || _c === void 0 ? void 0 : _c.success) || !((_d = tx.results[3]) === null || _d === void 0 ? void 0 : _d.success)) { util_1.log.info({ results: tx.results }, 'Failed to get gas constants data from the optimism gas oracle'); throw new Error('Failed to get gas constants data from the optimism gas oracle'); } const { result: l1BaseFee } = tx.results[0]; const { result: scalar } = tx.results[1]; const { result: decimals } = tx.results[2]; const { result: overhead } = tx.results[3]; return { l1BaseFee: l1BaseFee[0], scalar: scalar[0], decimals: decimals[0], overhead: overhead[0], }; } } exports.OptimismGasDataProvider = OptimismGasDataProvider; class ArbitrumGasDataProvider { constructor(chainId, provider, gasDataAddress) { this.chainId = chainId; this.provider = provider; this.gasFeesAddress = gasDataAddress ? gasDataAddress : util_1.ARB_GASINFO_ADDRESS; } async getGasData() { const gasDataContract = GasDataArbitrum__factory_1.GasDataArbitrum__factory.connect(this.gasFeesAddress, this.provider); const gasData = await gasDataContract.getPricesInWei(); return { perL2TxFee: gasData[0], perL1CalldataFee: gasData[1], perArbGasTotal: gasData[5], }; } } exports.ArbitrumGasDataProvider = ArbitrumGasDataProvider; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzLWRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3YzL2dhcy1kYXRhLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1HQUFnRztBQUNoRyxpR0FBOEY7QUFDOUYscUNBS29CO0FBd0JwQixNQUFhLHVCQUF1QjtJQUtsQyxZQUNZLE9BQWdCLEVBQ2hCLGtCQUFzQyxFQUNoRCxlQUF3QjtRQUZkLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUdoRCxJQUFJLE9BQU8sSUFBSSxjQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sSUFBSSxjQUFPLENBQUMsZ0JBQWdCLEVBQUU7WUFDdEUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1NBQzFFO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsYUFBZixlQUFlLGNBQWYsZUFBZSxHQUFJLDJCQUFvQixDQUFDO0lBQ2xFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7O1FBQ3JCLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEUsTUFBTSxFQUFFLEdBQ04sTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUNBQW1DLENBRy9EO1lBQ0EsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDOUIsaUJBQWlCLEVBQUUsaURBQXVCLENBQUMsZUFBZSxFQUFFO1lBQzVELGFBQWEsRUFBRSxTQUFTO1NBQ3pCLENBQUMsQ0FBQztRQUVMLElBQ0UsQ0FBQyxDQUFBLE1BQUEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsMENBQUUsT0FBTyxDQUFBO1lBQ3ZCLENBQUMsQ0FBQSxNQUFBLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDBDQUFFLE9BQU8sQ0FBQTtZQUN2QixDQUFDLENBQUEsTUFBQSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywwQ0FBRSxPQUFPLENBQUE7WUFDdkIsQ0FBQyxDQUFBLE1BQUEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsMENBQUUsT0FBTyxDQUFBLEVBQ3ZCO1lBQ0EsVUFBRyxDQUFDLElBQUksQ0FDTixFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQ3ZCLCtEQUErRCxDQUNoRSxDQUFDO1lBQ0YsTUFBTSxJQUFJLEtBQUssQ0FDYiwrREFBK0QsQ0FDaEUsQ0FBQztTQUNIO1FBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVDLE9BQU87WUFDTCxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNqQixRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNyQixRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUN0QixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBNURELDBEQTREQztBQWFELE1BQWEsdUJBQXVCO0lBS2xDLFlBQ1ksT0FBZ0IsRUFDaEIsUUFBc0IsRUFDaEMsY0FBdUI7UUFGYixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQWM7UUFHaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsMEJBQW1CLENBQUM7SUFDOUUsQ0FBQztJQUVNLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE1BQU0sZUFBZSxHQUFHLG1EQUF3QixDQUFDLE9BQU8sQ0FDdEQsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FDZCxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsTUFBTSxlQUFlLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkQsT0FBTztZQUNMLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDM0IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXpCRCwwREF5QkMifQ==