@@ -7,3 +7,56 @@ mod noop;
77pub  use  noop:: { NoopBlock ,  NoopCfg } ; 
88
99mod  zenith; 
10+ 
11+ use  revm:: primitives:: { CfgEnv ,  TxEnv } ; 
12+ 
13+ /// A [`Cfg`] that disables gas-related checks and payment of the 
14+ /// beneficiary reward, while leaving other cfg options unchanged. 
15+ /// 
16+ /// ## Warning 
17+ /// 
18+ /// This filler relies on the following optional features: 
19+ /// - `optional_balance_check` 
20+ /// - `optional_beneficiary_reward` 
21+ /// - `optional_gas_refund` 
22+ /// - `optional_no_base_fee` 
23+ /// 
24+ /// 
25+ /// It will disable the corresponding checks if the features are enabled. **If 
26+ /// none of the features are enabled, this filler will do nothing.** 
27+ #[ derive( Debug ,  Clone ,  Copy ,  Default ,  PartialEq ,  Eq ) ]  
28+ pub  struct  DisableGasChecks ; 
29+ 
30+ impl  Cfg  for  DisableGasChecks  { 
31+     #[ allow( unused_variables) ]  
32+     fn  fill_cfg_env ( & self ,  cfg_env :  & mut  CfgEnv )  { 
33+         #[ cfg( feature = "optional_balance_check" ) ]  
34+         { 
35+             cfg_env. disable_balance_check  = true ; 
36+         } 
37+         #[ cfg( feature = "optional_beneficiary_reward" ) ]  
38+         { 
39+             cfg_env. disable_beneficiary_reward  = true ; 
40+         } 
41+         #[ cfg( feature = "optional_gas_refund" ) ]  
42+         { 
43+             cfg_env. disable_gas_refund  = true ; 
44+         } 
45+         #[ cfg( feature = "optional_no_base_fee" ) ]  
46+         { 
47+             cfg_env. disable_base_fee  = true ; 
48+         } 
49+     } 
50+ } 
51+ 
52+ /// A [`Tx`] that disables the nonce check, while leaving other [`TxEnv`] 
53+ /// attributes untouched. 
54+ #[ derive( Debug ,  Clone ,  Copy ,  Default ,  PartialEq ,  Eq ) ]  
55+ pub  struct  DisableNonceCheck ; 
56+ 
57+ impl  Tx  for  DisableNonceCheck  { 
58+     #[ allow( unused_variables) ]  
59+     fn  fill_tx_env ( & self ,  tx_env :  & mut  TxEnv )  { 
60+         tx_env. nonce  = None ; 
61+     } 
62+ } 
0 commit comments