feat: add operator fee params on RPC L1BlockInfo (#14269)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
Aurélien
2025-02-10 18:04:28 +01:00
committed by GitHub
parent b9b519344f
commit d4e37ce4b6
4 changed files with 79 additions and 18 deletions

View File

@ -85,6 +85,10 @@ pub struct OpReceiptFieldsBuilder {
pub l1_blob_base_fee: Option<u128>,
/// The current L1 blob base fee scalar.
pub l1_blob_base_fee_scalar: Option<u128>,
/// The current operator fee scalar.
pub operator_fee_scalar: Option<u128>,
/// The current L1 blob base fee scalar.
pub operator_fee_constant: Option<u128>,
}
impl OpReceiptFieldsBuilder {
@ -102,6 +106,8 @@ impl OpReceiptFieldsBuilder {
l1_base_fee_scalar: None,
l1_blob_base_fee: None,
l1_blob_base_fee_scalar: None,
operator_fee_scalar: None,
operator_fee_constant: None,
}
}
@ -139,6 +145,10 @@ impl OpReceiptFieldsBuilder {
self.l1_blob_base_fee = l1_block_info.l1_blob_base_fee.map(|fee| fee.saturating_to());
self.l1_blob_base_fee_scalar =
l1_block_info.l1_blob_base_fee_scalar.map(|scalar| scalar.saturating_to());
self.operator_fee_scalar =
l1_block_info.operator_fee_scalar.map(|scalar| scalar.saturating_to());
self.operator_fee_constant =
l1_block_info.operator_fee_constant.map(|constant| constant.saturating_to());
Ok(self)
}
@ -169,6 +179,8 @@ impl OpReceiptFieldsBuilder {
l1_base_fee_scalar,
l1_blob_base_fee,
l1_blob_base_fee_scalar,
operator_fee_scalar,
operator_fee_constant,
} = self;
OpTransactionReceiptFields {
@ -180,6 +192,8 @@ impl OpReceiptFieldsBuilder {
l1_base_fee_scalar,
l1_blob_base_fee,
l1_blob_base_fee_scalar,
operator_fee_scalar,
operator_fee_constant,
},
deposit_nonce,
deposit_receipt_version,
@ -282,6 +296,8 @@ mod test {
l1_base_fee_scalar: Some(5227),
l1_blob_base_fee: Some(1),
l1_blob_base_fee_scalar: Some(1014213),
operator_fee_scalar: None,
operator_fee_constant: None,
},
deposit_nonce: None,
deposit_receipt_version: None,
@ -323,6 +339,8 @@ mod test {
l1_base_fee_scalar,
l1_blob_base_fee,
l1_blob_base_fee_scalar,
operator_fee_scalar,
operator_fee_constant,
} = receipt_meta.l1_block_info;
assert_eq!(
@ -356,6 +374,16 @@ mod test {
TX_META_TX_1_OP_MAINNET_BLOCK_124665056.l1_block_info.l1_blob_base_fee_scalar,
"incorrect l1 blob base fee scalar"
);
assert_eq!(
operator_fee_scalar,
TX_META_TX_1_OP_MAINNET_BLOCK_124665056.l1_block_info.operator_fee_scalar,
"incorrect operator fee scalar"
);
assert_eq!(
operator_fee_constant,
TX_META_TX_1_OP_MAINNET_BLOCK_124665056.l1_block_info.operator_fee_constant,
"incorrect operator fee constant"
);
}
// <https://github.com/paradigmxyz/reth/issues/12177>
@ -389,6 +417,8 @@ mod test {
l1_base_fee_scalar,
l1_blob_base_fee,
l1_blob_base_fee_scalar,
operator_fee_scalar,
operator_fee_constant,
} = receipt_meta.l1_block_info;
assert_eq!(l1_gas_price, Some(14121491676), "incorrect l1 base fee (former gas price)");
@ -398,5 +428,7 @@ mod test {
assert_eq!(l1_base_fee_scalar, Some(2269), "incorrect l1 base fee scalar");
assert_eq!(l1_blob_base_fee, Some(1324954204), "incorrect l1 blob base fee");
assert_eq!(l1_blob_base_fee_scalar, Some(1055762), "incorrect l1 blob base fee scalar");
assert_eq!(operator_fee_scalar, None, "incorrect operator fee scalar");
assert_eq!(operator_fee_constant, None, "incorrect operator fee constant");
}
}