superchain_primitives/
fee_params.rs

1//! Module containing fee parameters.
2
3use alloy_eips::eip1559::BaseFeeParams;
4
5/// Returns the [BaseFeeParams] for the given chain id.
6pub fn base_fee_params(chain_id: u64) -> BaseFeeParams {
7    match chain_id {
8        10 => OP_BASE_FEE_PARAMS,
9        11155420 => OP_SEPOLIA_BASE_FEE_PARAMS,
10        8453 => OP_BASE_FEE_PARAMS,
11        84532 => BASE_SEPOLIA_BASE_FEE_PARAMS,
12        _ => OP_BASE_FEE_PARAMS,
13    }
14}
15
16/// Returns the Canyon [BaseFeeParams] for the given chain id.
17pub fn canyon_base_fee_params(chain_id: u64) -> BaseFeeParams {
18    match chain_id {
19        10 => OP_CANYON_BASE_FEE_PARAMS,
20        11155420 => OP_SEPOLIA_CANYON_BASE_FEE_PARAMS,
21        8453 => OP_CANYON_BASE_FEE_PARAMS,
22        84532 => BASE_SEPOLIA_CANYON_BASE_FEE_PARAMS,
23        _ => OP_CANYON_BASE_FEE_PARAMS,
24    }
25}
26
27/// Base fee max change denominator for Optimism Mainnet as defined in the Optimism
28/// [transaction costs](https://community.optimism.io/docs/developers/build/differences/#transaction-costs) doc.
29pub const OP_MAINNET_EIP1559_DEFAULT_BASE_FEE_MAX_CHANGE_DENOMINATOR: u128 = 50;
30
31/// Base fee max change denominator for Optimism Mainnet as defined in the Optimism Canyon
32/// hardfork.
33pub const OP_MAINNET_EIP1559_BASE_FEE_MAX_CHANGE_DENOMINATOR_CANYON: u128 = 250;
34
35/// Base fee max change denominator for Optimism Mainnet as defined in the Optimism
36/// [transaction costs](https://community.optimism.io/docs/developers/build/differences/#transaction-costs) doc.
37pub const OP_MAINNET_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER: u128 = 6;
38
39/// Base fee max change denominator for Optimism Sepolia as defined in the Optimism
40/// [transaction costs](https://community.optimism.io/docs/developers/build/differences/#transaction-costs) doc.
41pub const OP_SEPOLIA_EIP1559_DEFAULT_BASE_FEE_MAX_CHANGE_DENOMINATOR: u128 = 50;
42
43/// Base fee max change denominator for Optimism Sepolia as defined in the Optimism Canyon
44/// hardfork.
45pub const OP_SEPOLIA_EIP1559_BASE_FEE_MAX_CHANGE_DENOMINATOR_CANYON: u128 = 250;
46
47/// Base fee max change denominator for Optimism Sepolia as defined in the Optimism
48/// [transaction costs](https://community.optimism.io/docs/developers/build/differences/#transaction-costs) doc.
49pub const OP_SEPOLIA_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER: u128 = 6;
50
51/// Base fee max change denominator for Base Sepolia as defined in the Optimism
52/// [transaction costs](https://community.optimism.io/docs/developers/build/differences/#transaction-costs) doc.
53pub const BASE_SEPOLIA_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER: u128 = 10;
54
55/// Get the base fee parameters for Optimism Sepolia.
56pub const OP_SEPOLIA_BASE_FEE_PARAMS: BaseFeeParams = BaseFeeParams {
57    max_change_denominator: OP_SEPOLIA_EIP1559_DEFAULT_BASE_FEE_MAX_CHANGE_DENOMINATOR,
58    elasticity_multiplier: OP_SEPOLIA_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER,
59};
60
61/// Get the base fee parameters for Optimism Sepolia (post Canyon).
62pub const OP_SEPOLIA_CANYON_BASE_FEE_PARAMS: BaseFeeParams = BaseFeeParams {
63    max_change_denominator: OP_SEPOLIA_EIP1559_BASE_FEE_MAX_CHANGE_DENOMINATOR_CANYON,
64    elasticity_multiplier: OP_SEPOLIA_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER,
65};
66
67/// Get the base fee parameters for Base Sepolia.
68pub const BASE_SEPOLIA_BASE_FEE_PARAMS: BaseFeeParams = BaseFeeParams {
69    max_change_denominator: OP_SEPOLIA_EIP1559_DEFAULT_BASE_FEE_MAX_CHANGE_DENOMINATOR,
70    elasticity_multiplier: BASE_SEPOLIA_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER,
71};
72
73/// Get the base fee parameters for Base Sepolia (post Canyon).
74pub const BASE_SEPOLIA_CANYON_BASE_FEE_PARAMS: BaseFeeParams = BaseFeeParams {
75    max_change_denominator: OP_SEPOLIA_EIP1559_BASE_FEE_MAX_CHANGE_DENOMINATOR_CANYON,
76    elasticity_multiplier: BASE_SEPOLIA_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER,
77};
78
79/// Get the base fee parameters for Optimism Mainnet.
80pub const OP_BASE_FEE_PARAMS: BaseFeeParams = BaseFeeParams {
81    max_change_denominator: OP_MAINNET_EIP1559_DEFAULT_BASE_FEE_MAX_CHANGE_DENOMINATOR,
82    elasticity_multiplier: OP_MAINNET_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER,
83};
84
85/// Get the base fee parameters for Optimism Mainnet (post Canyon).
86pub const OP_CANYON_BASE_FEE_PARAMS: BaseFeeParams = BaseFeeParams {
87    max_change_denominator: OP_MAINNET_EIP1559_BASE_FEE_MAX_CHANGE_DENOMINATOR_CANYON,
88    elasticity_multiplier: OP_MAINNET_EIP1559_DEFAULT_ELASTICITY_MULTIPLIER,
89};