diff --git a/src/modules/chains/schemas.ts b/src/modules/chains/schemas.ts index 46b49635..e4e692e0 100644 --- a/src/modules/chains/schemas.ts +++ b/src/modules/chains/schemas.ts @@ -64,6 +64,7 @@ const chainConfigSchemaBase = z.object({ l1ChainId: chainConfigIdSchema.optional(), gasPriceMode: z.enum(["standard", "fast", "rapid"]).default("standard"), gasCacheDuration: z.number().default(30000), // TODO: Add schema + feeHistoryBlockTagOverride: z.string().optional(), eip1559: z.boolean().default(false), paymasterFunding: etherSchema.default("0.025"), paymasterFundingThreshold: etherSchema.default("0"), diff --git a/src/modules/gas-manager/gas-manager.service.ts b/src/modules/gas-manager/gas-manager.service.ts index 41b77136..12f766c0 100644 --- a/src/modules/gas-manager/gas-manager.service.ts +++ b/src/modules/gas-manager/gas-manager.service.ts @@ -3,6 +3,7 @@ import { BadRequestException, withTrace } from "@/common"; import { Logger } from "@/core/logger"; import { RpcManagerService } from "@/rpc-manager"; import { Service } from "typedi"; +import type { BlockTag } from "viem"; import { type GasInfo, type GasManagerConfig, @@ -293,6 +294,10 @@ export class GasManagerService { if (gasPriceMode === "fast") blockCount = 5; if (gasPriceMode === "rapid") blockCount = 2; + const chainConfig = this.chainsService.getChainSettings(chainId); + const blockTag: BlockTag = + (chainConfig.feeHistoryBlockTagOverride as BlockTag) ?? "pending"; + return await withTrace( "gasManager.getFeeHistory", async () => @@ -301,7 +306,7 @@ export class GasManagerService { (chainClient) => { return chainClient.getFeeHistory({ blockCount, - blockTag: "pending", + blockTag, rewardPercentiles, }); },