11#![ allow( missing_docs) ]
2- use alloy_primitives:: { hex_literal :: hex , Address } ;
2+ use alloy_primitives:: Address ;
33use criterion:: {
44 criterion_group, criterion_main, measurement:: WallTime , BenchmarkGroup , Criterion ,
55} ;
66use pprof:: criterion:: { Output , PProfProfiler } ;
7- use proptest:: {
8- prelude:: * ,
9- strategy:: ValueTree ,
10- test_runner:: { RngAlgorithm , TestRng , TestRunner } ,
11- } ;
7+ use proptest:: { prelude:: * , strategy:: ValueTree , test_runner:: TestRunner } ;
128use reth_transaction_pool:: {
139 pool:: { BasefeeOrd , ParkedPool , PendingPool , QueuedOrd } ,
1410 test_utils:: { MockOrdering , MockTransaction , MockTransactionFactory } ,
1511 SubPoolLimit ,
1612} ;
1713
18- // constant seed to use for the rng
19- const SEED : [ u8 ; 32 ] = hex ! ( "1337133713371337133713371337133713371337133713371337133713371337" ) ;
20-
2114/// Generates a set of `depth` dependent transactions, with the specified sender. Its values are
2215/// generated using [Arbitrary].
2316fn create_transactions_for_sender (
24- mut runner : TestRunner ,
17+ runner : & mut TestRunner ,
2518 sender : Address ,
2619 depth : usize ,
2720) -> Vec < MockTransaction > {
@@ -32,19 +25,17 @@ fn create_transactions_for_sender(
3225 assert ! ( depth > 0 ) ;
3326
3427 // make sure these are all post-eip-1559 transactions
35- let mut txs = prop:: collection:: vec ( any :: < MockTransaction > ( ) , depth)
36- . new_tree ( & mut runner)
37- . unwrap ( )
38- . current ( ) ;
28+ let mut txs =
29+ prop:: collection:: vec ( any :: < MockTransaction > ( ) , depth) . new_tree ( runner) . unwrap ( ) . current ( ) ;
3930
4031 for ( nonce, tx) in txs. iter_mut ( ) . enumerate ( ) {
4132 // reject pre-eip1559 tx types, if there is a legacy tx, replace it with an eip1559 tx
4233 if tx. is_legacy ( ) || tx. is_eip2930 ( ) {
4334 * tx = MockTransaction :: eip1559 ( ) ;
4435
4536 // set fee values using arbitrary
46- tx. set_priority_fee ( any :: < u128 > ( ) . new_tree ( & mut runner) . unwrap ( ) . current ( ) ) ;
47- tx. set_max_fee ( any :: < u128 > ( ) . new_tree ( & mut runner) . unwrap ( ) . current ( ) ) ;
37+ tx. set_priority_fee ( any :: < u128 > ( ) . new_tree ( runner) . unwrap ( ) . current ( ) ) ;
38+ tx. set_max_fee ( any :: < u128 > ( ) . new_tree ( runner) . unwrap ( ) . current ( ) ) ;
4839 }
4940
5041 tx. set_sender ( sender) ;
@@ -62,9 +53,7 @@ fn create_transactions_for_sender(
6253///
6354/// This uses [`create_transactions_for_sender`] to generate the transactions.
6455fn generate_many_transactions ( senders : usize , max_depth : usize ) -> Vec < MockTransaction > {
65- let config = ProptestConfig :: default ( ) ;
66- let rng = TestRng :: from_seed ( RngAlgorithm :: ChaCha , & SEED ) ;
67- let mut runner = TestRunner :: new_with_rng ( config, rng) ;
56+ let mut runner = TestRunner :: deterministic ( ) ;
6857
6958 let mut txs = Vec :: with_capacity ( senders) ;
7059 for idx in 0 ..senders {
@@ -79,7 +68,7 @@ fn generate_many_transactions(senders: usize, max_depth: usize) -> Vec<MockTrans
7968 let addr_slice = [ 0u8 ; 12 ] . into_iter ( ) . chain ( idx_slice. into_iter ( ) ) . collect :: < Vec < _ > > ( ) ;
8069
8170 let sender = Address :: from_slice ( & addr_slice) ;
82- txs. extend ( create_transactions_for_sender ( runner. clone ( ) , sender, depth) ) ;
71+ txs. extend ( create_transactions_for_sender ( & mut runner, sender, depth) ) ;
8372 }
8473
8574 txs
0 commit comments