Skip to content

Commit

Permalink
Add op stack multiplier env var
Browse files Browse the repository at this point in the history
  • Loading branch information
nicholaspai committed Jan 9, 2025
1 parent 3db3ac1 commit b9e4640
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
32 changes: 27 additions & 5 deletions api/_utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ const {
REACT_APP_COINGECKO_PRO_API_KEY,
BASE_FEE_MARKUP,
PRIORITY_FEE_MARKUP,
OP_STACK_L1_DATA_FEE_MARKUP,
VERCEL_ENV,
LOG_LEVEL,
} = process.env;
Expand All @@ -97,6 +98,9 @@ export const baseFeeMarkup: {
export const priorityFeeMarkup: {
[chainId: string]: number;
} = JSON.parse(PRIORITY_FEE_MARKUP || "{}");
export const opStackL1DataFeeMarkup: {
[chainId: string]: number;
} = JSON.parse(OP_STACK_L1_DATA_FEE_MARKUP || "{}");
// Default to no markup.
export const DEFAULT_GAS_MARKUP = 0;

Expand Down Expand Up @@ -594,9 +598,14 @@ export const getHubPoolClient = () => {

export const getGasMarkup = (
chainId: string | number
): { baseFeeMarkup: BigNumber; priorityFeeMarkup: BigNumber } => {
): {
baseFeeMarkup: BigNumber;
priorityFeeMarkup: BigNumber;
opStackL1DataFeeMarkup: BigNumber;
} => {
let _baseFeeMarkup: BigNumber | undefined;
let _priorityFeeMarkup: BigNumber | undefined;
let _opStackL1DataFeeMarkup: BigNumber | undefined;
if (typeof baseFeeMarkup[chainId] === "number") {
_baseFeeMarkup = utils.parseEther((1 + baseFeeMarkup[chainId]).toString());
}
Expand All @@ -605,6 +614,11 @@ export const getGasMarkup = (
(1 + priorityFeeMarkup[chainId]).toString()
);
}
if (typeof opStackL1DataFeeMarkup[chainId] === "number") {
_opStackL1DataFeeMarkup = utils.parseEther(
(1 + opStackL1DataFeeMarkup[chainId]).toString()
);
}

// Otherwise, use default gas markup (or optimism's for OP stack).
if (_baseFeeMarkup === undefined) {
Expand All @@ -627,11 +641,21 @@ export const getGasMarkup = (
).toString()
);
}
if (_opStackL1DataFeeMarkup === undefined) {
_opStackL1DataFeeMarkup = utils.parseEther(
(
1 +
(sdk.utils.chainIsOPStack(Number(chainId))
? opStackL1DataFeeMarkup[CHAIN_IDs.OPTIMISM] ?? DEFAULT_GAS_MARKUP
: DEFAULT_GAS_MARKUP)
).toString()
);
}

// Otherwise, use default gas markup (or optimism's for OP stack).
return {
baseFeeMarkup: _baseFeeMarkup,
priorityFeeMarkup: _priorityFeeMarkup,
opStackL1DataFeeMarkup: _opStackL1DataFeeMarkup,
};
};

Expand Down Expand Up @@ -1977,10 +2001,8 @@ export function getCachedFillGasUsage(
overrides?.relayerAddress,
{
gasPrice,
// Scale the op stack L1 gas cost component by the base fee multiplier.
// Consider adding a new environment variable OP_STACK_L1_GAS_COST_MARKUP if we want finer-grained control.
opStackL1GasCostMultiplier: getGasMarkup(deposit.destinationChainId)
.baseFeeMarkup,
.opStackL1DataFeeMarkup,
}
);
return {
Expand Down
2 changes: 1 addition & 1 deletion api/gas-prices.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ const handler = async (
);
const opStackL1GasCostMultiplier = getGasMarkup(
Number(chainId)
).baseFeeMarkup;
).opStackL1DataFeeMarkup;
const { nativeGasCost, tokenGasCost } =
await relayerFeeCalculatorQueries.getGasCosts(
deposit,
Expand Down

0 comments on commit b9e4640

Please sign in to comment.