@@ -72,8 +72,9 @@ use anvil_core::{
7272 EthRequest ,
7373 block:: BlockInfo ,
7474 transaction:: {
75- FillTransactionResult , PendingTransaction , ReceiptResponse , TypedTransaction ,
76- TypedTransactionRequest , transaction_request_to_typed,
75+ FillTransactionResult , MaybeImpersonatedTransaction , PendingTransaction ,
76+ ReceiptResponse , TypedTransaction , TypedTransactionRequest ,
77+ transaction_request_to_typed,
7778 } ,
7879 wallet:: WalletCapabilities ,
7980 } ,
@@ -1373,7 +1374,7 @@ impl EthApi {
13731374 pub async fn fill_transaction (
13741375 & self ,
13751376 mut request : WithOtherFields < TransactionRequest > ,
1376- ) -> Result < FillTransactionResult < TypedTransaction > > {
1377+ ) -> Result < FillTransactionResult < AnyRpcTransaction > > {
13771378 node_info ! ( "eth_fillTransaction" ) ;
13781379
13791380 let from = match request. as_ref ( ) . from ( ) {
@@ -1429,6 +1430,13 @@ impl EthApi {
14291430
14301431 let raw = tx. encoded_2718 ( ) . to_vec ( ) . into ( ) ;
14311432
1433+ let mut tx =
1434+ transaction_build ( None , MaybeImpersonatedTransaction :: new ( tx) , None , None , None ) ;
1435+
1436+ // Set the correct `from` address (overrides the recovered zero address from dummy
1437+ // signature)
1438+ tx. 0 . inner . inner = Recovered :: new_unchecked ( tx. 0 . inner . inner . into_inner ( ) , from) ;
1439+
14321440 Ok ( FillTransactionResult { raw, tx } )
14331441 }
14341442
0 commit comments