@@ -2,10 +2,12 @@ use std::env;
22use std:: path:: PathBuf ;
33use std:: str:: FromStr ;
44
5+ use alloy:: network:: EthereumWallet ;
56use alloy:: node_bindings:: { Anvil , AnvilInstance } ;
67use alloy:: primitives:: Address ;
78use alloy:: providers:: ext:: AnvilApi ;
89use alloy:: providers:: ProviderBuilder ;
10+ use alloy:: signers:: local:: PrivateKeySigner ;
911use alloy:: sol;
1012use orchestrator_utils:: env_utils:: get_env_var_or_panic;
1113// Using the Pipe trait to write chained operations easier
@@ -67,6 +69,7 @@ pub struct EthereumTestBuilder {
6769pub struct EthereumTest {
6870 _anvil : AnvilInstance ,
6971 provider : crate :: types:: DefaultHttpProvider ,
72+ wallet_provider : crate :: types:: LocalWalletSignerMiddleware ,
7073 pub rpc_url : Url ,
7174}
7275
@@ -103,16 +106,24 @@ impl EthereumTestBuilder {
103106 None => Anvil :: new ( ) . block_time ( BLOCK_TIME ) . try_spawn ( ) . expect ( "Could not spawn Anvil." ) ,
104107 } ;
105108
106- // Setup Provider
109+ // Setup wallet for the wallet_provider
110+ let private_key = get_env_var_or_panic ( "MADARA_ORCHESTRATOR_ETHEREUM_PRIVATE_KEY" ) ;
111+ let signer: PrivateKeySigner = private_key. parse ( ) . expect ( "Failed to parse private key" ) ;
112+ let wallet = EthereumWallet :: from ( signer) ;
113+
114+ // Setup Provider without wallet (for general operations)
107115 let provider = ProviderBuilder :: new ( ) . connect_http ( anvil. endpoint_url ( ) ) ;
108116
117+ // Setup Provider with wallet (for contract deployment and write operations)
118+ let wallet_provider = ProviderBuilder :: new ( ) . wallet ( wallet) . connect_http ( anvil. endpoint_url ( ) ) ;
119+
109120 if let Some ( impersonator) = self . impersonator {
110121 provider. anvil_impersonate_account ( impersonator) . await . expect ( "Unable to impersonate account." ) ;
111122 }
112123
113124 let rpc_url = anvil. endpoint_url ( ) ;
114125
115- EthereumTest { _anvil : anvil, provider, rpc_url }
126+ EthereumTest { _anvil : anvil, provider, wallet_provider , rpc_url }
116127 }
117128}
118129
@@ -127,10 +138,9 @@ mod settlement_client_tests {
127138
128139 use alloy:: consensus:: Transaction ;
129140 use alloy:: eips:: eip4844:: BYTES_PER_BLOB ;
130- use alloy:: primitives:: Address ;
141+ use alloy:: primitives:: { Address , TxHash } ;
131142 use alloy:: providers:: Provider ;
132143 use alloy:: sol_types:: private:: U256 ;
133- use alloy_primitives:: B256 ;
134144 use orchestrator_settlement_client_interface:: { SettlementClient , SettlementVerificationStatus } ;
135145 use orchestrator_utils:: env_utils:: get_env_var_or_panic;
136146 use rstest:: rstest;
@@ -204,11 +214,11 @@ mod settlement_client_tests {
204214 max_gas_price_mul_factor : get_env_var_or_panic ( "MADARA_ORCHESTRATOR_EIP1559_MAX_GAS_MUL_FACTOR" )
205215 . parse ( )
206216 . expect ( "Invalid max gas price mul factor" ) ,
207- disable_peerdas : false , // for tests, default to sepolia/testnet behavior
217+ disable_peerdas : true ,
208218 } ;
209219
210220 // Deploying a dummy contract
211- let contract = DummyCoreContract :: deploy ( & setup. provider ) . await . expect ( "Unable to deploy address" ) ;
221+ let contract = DummyCoreContract :: deploy ( & setup. wallet_provider ) . await . expect ( "Unable to deploy address" ) ;
212222 let ethereum_settlement_client = EthereumSettlementClient :: with_test_params (
213223 setup. provider . clone ( ) ,
214224 * contract. address ( ) ,
@@ -237,7 +247,7 @@ mod settlement_client_tests {
237247
238248 let txn = setup
239249 . provider
240- . get_transaction_by_hash ( B256 :: from_str ( update_state_result. as_str ( ) ) . expect ( "Unable to convert txn " ) )
250+ . get_transaction_by_hash ( TxHash :: from_str ( update_state_result. as_str ( ) ) . expect ( "Invalid tx hash " ) )
241251 . await
242252 . expect ( "did not get txn from hash" )
243253 . unwrap ( ) ;
@@ -341,7 +351,7 @@ mod settlement_client_tests {
341351 let latest_block_number = contract. stateBlockNumber ( ) . call ( ) . await . unwrap ( ) ;
342352
343353 let expected_latest_block_number = bytes_to_u32 ( program_output[ 3 ] . as_slice ( ) ) . unwrap ( ) ;
344- assert_eq ! ( expected_latest_block_number, latest_block_number. _0 . as_u32( ) ) ;
354+ assert_eq ! ( expected_latest_block_number, latest_block_number. as_u32( ) ) ;
345355 }
346356
347357 #[ rstest]
0 commit comments