@@ -9,7 +9,7 @@ use alloy_primitives::{Address, FixedBytes, U256};
99use alloy_sol_types:: Eip712Domain ;
1010use anyhow:: Result ;
1111use clap:: Parser ;
12- use ethers_signers:: { coins_bip39:: English , MnemonicBuilder } ;
12+ use ethers_signers:: { coins_bip39:: English , MnemonicBuilder , Signer } ;
1313use tokio:: signal:: unix:: { signal, SignalKind } ;
1414
1515use log:: { debug, info} ;
@@ -24,10 +24,14 @@ struct Args {
2424 #[ arg( long, default_value_t = 8080 , env = "TAP_PORT" ) ]
2525 port : u16 ,
2626
27- /// Gateway mnemonic to be used to sign Receipt Aggregate Vouchers.
27+ /// Gateway mnemonic to be used to generate key for signing Receipt Aggregate Vouchers.
2828 #[ arg( long, env = "TAP_MNEMONIC" ) ]
2929 mnemonic : String ,
3030
31+ /// Gateway key derive path to be used to generate key for signing Receipt Aggregate Vouchers.
32+ #[ arg( long, default_value = "m/44'/60'/0'/0/0" , env = "TAP_KEY_DERIVE_PATH" ) ]
33+ key_derive_path : String ,
34+
3135 /// Maximum request body size in bytes.
3236 /// Defaults to 10MB.
3337 #[ arg( long, default_value_t = 10 * 1024 * 1024 , env = "TAP_MAX_REQUEST_BODY_SIZE" ) ]
@@ -88,8 +92,11 @@ async fn main() -> Result<()> {
8892 // Create a wallet from the mnemonic.
8993 let wallet = MnemonicBuilder :: < English > :: default ( )
9094 . phrase ( args. mnemonic . as_str ( ) )
95+ . derivation_path ( & args. key_derive_path ) ?
9196 . build ( ) ?;
9297
98+ info ! ( "Wallet address: {:#40x}" , wallet. address( ) ) ;
99+
93100 // Create the EIP-712 domain separator.
94101 let domain_separator = create_eip712_domain ( & args) ?;
95102
0 commit comments