@kiroboio/fct-core
Version:
Kirobo.io FCT Core library
30 lines • 1.44 kB
JavaScript
;
// TODO: Need to create a function that returns
Object.defineProperty(exports, "__esModule", { value: true });
exports.getGasOracleData = getGasOracleData;
const tslib_1 = require("tslib");
const ethers_1 = require("ethers");
const OPGasPriceOracle_abi_json_1 = tslib_1.__importDefault(require("../abi/OPGasPriceOracle.abi.json"));
const OP_GAS_PRICE_ORACLE = "0x420000000000000000000000000000000000000F";
const IOPGasPriceOracle = new ethers_1.ethers.utils.Interface(OPGasPriceOracle_abi_json_1.default);
async function getGasOracleData({ provider, rpcUrl, gasPriceOracle = OP_GAS_PRICE_ORACLE, }) {
let _provider;
if (!provider) {
if (!rpcUrl) {
throw new Error("No provider or RPC url is provided");
}
_provider = new ethers_1.ethers.providers.JsonRpcProvider(rpcUrl);
}
else {
_provider = provider;
}
const GasOracle = new ethers_1.ethers.Contract(gasPriceOracle, IOPGasPriceOracle, _provider);
const [baseFeeScalar, l1BaseFee, blobBaseFeeScalar, blobBaseFee] = await Promise.all([GasOracle.baseFeeScalar(), GasOracle.l1BaseFee(), GasOracle.blobBaseFeeScalar(), GasOracle.blobBaseFee()]);
return {
baseFeeScalar: BigInt(baseFeeScalar),
l1BaseFee: l1BaseFee.toBigInt(),
blobBaseFeeScalar: BigInt(blobBaseFeeScalar),
blobBaseFee: blobBaseFee.toBigInt(),
};
}
//# sourceMappingURL=OPStackGasPriceOracle.js.map