|
1 | 1 | use alloy_consensus::{ |
2 | 2 | constants::EMPTY_WITHDRAWALS, proofs, BlockBody, Header, EMPTY_OMMER_ROOT_HASH, |
3 | 3 | }; |
4 | | -use alloy_eips::{ |
5 | | - eip7623::TOTAL_COST_FLOOR_PER_TOKEN, eip7685::EMPTY_REQUESTS_HASH, merge::BEACON_NONCE, |
6 | | -}; |
| 4 | +use alloy_eips::{eip7685::EMPTY_REQUESTS_HASH, merge::BEACON_NONCE}; |
7 | 5 | use alloy_primitives::U256; |
8 | 6 | use reth::payload::PayloadBuilderAttributes; |
9 | 7 | use reth_basic_payload_builder::{BuildOutcome, BuildOutcomeKind, MissingPayloadBehaviour}; |
@@ -38,7 +36,7 @@ use crate::{ |
38 | 36 | traits::{ClientBounds, NodeBounds, PayloadTxsBounds, PoolBounds}, |
39 | 37 | }; |
40 | 38 |
|
41 | | -use super::super::context::OpPayloadBuilderCtx; |
| 39 | +use super::super::context::{estimate_gas_for_builder_tx, OpPayloadBuilderCtx}; |
42 | 40 |
|
43 | 41 | pub struct StandardPayloadBuilderBuilder(pub BuilderConfig<()>); |
44 | 42 |
|
@@ -566,24 +564,3 @@ impl<Txs: PayloadTxsBounds> OpBuilder<'_, Txs> { |
566 | 564 | } |
567 | 565 | } |
568 | 566 | } |
569 | | - |
570 | | -fn estimate_gas_for_builder_tx(input: Vec<u8>) -> u64 { |
571 | | - // Count zero and non-zero bytes |
572 | | - let (zero_bytes, nonzero_bytes) = input.iter().fold((0, 0), |(zeros, nonzeros), &byte| { |
573 | | - if byte == 0 { |
574 | | - (zeros + 1, nonzeros) |
575 | | - } else { |
576 | | - (zeros, nonzeros + 1) |
577 | | - } |
578 | | - }); |
579 | | - |
580 | | - // Calculate gas cost (4 gas per zero byte, 16 gas per non-zero byte) |
581 | | - let zero_cost = zero_bytes * 4; |
582 | | - let nonzero_cost = nonzero_bytes * 16; |
583 | | - |
584 | | - // Tx gas should be not less than floor gas https://eips.ethereum.org/EIPS/eip-7623 |
585 | | - let tokens_in_calldata = zero_bytes + nonzero_bytes * 4; |
586 | | - let floor_gas = 21_000 + tokens_in_calldata * TOTAL_COST_FLOOR_PER_TOKEN; |
587 | | - |
588 | | - std::cmp::max(zero_cost + nonzero_cost + 21_000, floor_gas) |
589 | | -} |
0 commit comments