1- use alloy_evm:: {
2- Database , Evm ,
3- eth:: EthEvmContext ,
4- precompiles:: { DynPrecompile , PrecompilesMap } ,
5- } ;
1+ use alloy_evm:: precompiles:: DynPrecompile ;
62use alloy_primitives:: Address ;
7- use foundry_evm:: core:: either_evm:: EitherEvm ;
8- use op_revm:: OpContext ;
9- use revm:: Inspector ;
103use std:: fmt:: Debug ;
114
125/// Object-safe trait that enables injecting extra precompiles when using
@@ -16,24 +9,11 @@ pub trait PrecompileFactory: Send + Sync + Unpin + Debug {
169 fn precompiles ( & self ) -> Vec < ( Address , DynPrecompile ) > ;
1710}
1811
19- /// Inject custom precompiles into the EVM dynamically.
20- pub fn inject_custom_precompiles < DB , I > (
21- evm : & mut EitherEvm < DB , I , PrecompilesMap > ,
22- precompiles : Vec < ( Address , DynPrecompile ) > ,
23- ) where
24- DB : Database ,
25- I : Inspector < EthEvmContext < DB > > + Inspector < OpContext < DB > > ,
26- {
27- for ( addr, precompile) in precompiles {
28- evm. precompiles_mut ( ) . apply_precompile ( & addr, move |_| Some ( precompile) ) ;
29- }
30- }
31-
3212#[ cfg( test) ]
3313mod tests {
3414 use std:: convert:: Infallible ;
3515
36- use crate :: { PrecompileFactory , inject_custom_precompiles } ;
16+ use crate :: PrecompileFactory ;
3717 use alloy_evm:: {
3818 EthEvm , Evm , EvmEnv ,
3919 eth:: EthEvmContext ,
@@ -194,7 +174,7 @@ mod tests {
194174
195175 assert ! ( !evm. precompiles( ) . addresses( ) . contains( & PRECOMPILE_ADDR ) ) ;
196176
197- inject_custom_precompiles ( & mut evm, CustomPrecompileFactory . precompiles ( ) ) ;
177+ evm. precompiles_mut ( ) . extend_precompiles ( CustomPrecompileFactory . precompiles ( ) ) ;
198178
199179 assert ! ( evm. precompiles( ) . addresses( ) . contains( & PRECOMPILE_ADDR ) ) ;
200180
@@ -216,7 +196,7 @@ mod tests {
216196
217197 assert ! ( !evm. precompiles( ) . addresses( ) . contains( & PRECOMPILE_ADDR ) ) ;
218198
219- inject_custom_precompiles ( & mut evm, CustomPrecompileFactory . precompiles ( ) ) ;
199+ evm. precompiles_mut ( ) . extend_precompiles ( CustomPrecompileFactory . precompiles ( ) ) ;
220200
221201 assert ! ( evm. precompiles( ) . addresses( ) . contains( & PRECOMPILE_ADDR ) ) ;
222202
@@ -241,7 +221,7 @@ mod tests {
241221
242222 assert ! ( !evm. precompiles( ) . addresses( ) . contains( & PRECOMPILE_ADDR ) ) ;
243223
244- inject_custom_precompiles ( & mut evm, CustomPrecompileFactory . precompiles ( ) ) ;
224+ evm. precompiles_mut ( ) . extend_precompiles ( CustomPrecompileFactory . precompiles ( ) ) ;
245225
246226 assert ! ( evm. precompiles( ) . addresses( ) . contains( & PRECOMPILE_ADDR ) ) ;
247227
@@ -266,7 +246,7 @@ mod tests {
266246
267247 assert ! ( !evm. precompiles( ) . addresses( ) . contains( & PRECOMPILE_ADDR ) ) ;
268248
269- inject_custom_precompiles ( & mut evm, CustomPrecompileFactory . precompiles ( ) ) ;
249+ evm. precompiles_mut ( ) . extend_precompiles ( CustomPrecompileFactory . precompiles ( ) ) ;
270250
271251 assert ! ( evm. precompiles( ) . addresses( ) . contains( & PRECOMPILE_ADDR ) ) ;
272252
0 commit comments