Skip to content

Commit 1aa46d7

Browse files
apollo_consensus_orchestrator: pin SNIP-35 fee_target to override_l2_gas_price_fri when set
1 parent 55cb23a commit 1aa46d7

1 file changed

Lines changed: 26 additions & 15 deletions

File tree

crates/apollo_consensus_orchestrator/src/sequencer_consensus_context.rs

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,31 @@ impl SequencerConsensusContext {
438438
)
439439
}
440440

441+
async fn resolve_fee_target(
442+
&self,
443+
timestamp: u64,
444+
target_atto_usd_per_l2_gas: u128,
445+
) -> Option<GasPrice> {
446+
if let Some(v) = self.config.dynamic_config.override_l2_gas_price_fri {
447+
SNIP35_FEE_TARGET_FRI.set_lossy(v);
448+
return Some(GasPrice(v));
449+
}
450+
match self.deps.l1_gas_price_provider.get_strk_to_usd_rate(timestamp).await {
451+
Ok(rate) => {
452+
let target = compute_fee_target(target_atto_usd_per_l2_gas, rate);
453+
match target {
454+
Some(t) => SNIP35_FEE_TARGET_FRI.set_lossy(t.0),
455+
None => warn!("STRK/USD oracle returned zero rate, freezing fee_proposal"),
456+
}
457+
target
458+
}
459+
Err(e) => {
460+
warn!("STRK/USD oracle error: {e:?}, freezing fee_proposal");
461+
None
462+
}
463+
}
464+
}
465+
441466
/// Compute the proposer's fee_proposal: clamp the oracle's `fee_target` to a margin around
442467
/// `fee_actual`. When `fee_actual` is `None` (window incomplete), freeze at `l2_gas_price`; the
443468
/// validator derives the same fallback so both sides agree.
@@ -455,21 +480,7 @@ impl SequencerConsensusContext {
455480
};
456481
SNIP35_FEE_ACTUAL_FRI.set_lossy(fee_actual.0);
457482

458-
let fee_target = match self.deps.l1_gas_price_provider.get_strk_to_usd_rate(timestamp).await
459-
{
460-
Ok(rate) => {
461-
let target = compute_fee_target(target_atto_usd_per_l2_gas, rate);
462-
match target {
463-
Some(t) => SNIP35_FEE_TARGET_FRI.set_lossy(t.0),
464-
None => warn!("STRK/USD oracle returned zero rate, freezing fee_proposal"),
465-
}
466-
target
467-
}
468-
Err(e) => {
469-
warn!("STRK/USD oracle error: {e:?}, freezing fee_proposal");
470-
None
471-
}
472-
};
483+
let fee_target = self.resolve_fee_target(timestamp, target_atto_usd_per_l2_gas).await;
473484

474485
let proposal = compute_fee_proposal(
475486
fee_target,

0 commit comments

Comments
 (0)