Skip to content

Commit aec0a66

Browse files
committed
feat(tap-aggregator): allow argument for key derive path to be used with mnemonic
Signed-off-by: Bryan Cole <[email protected]>
1 parent fe95489 commit aec0a66

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

tap_aggregator/src/main.rs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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, env = "TAP_KEY_DERIVE_PATH")]
33+
key_derive_path: Option<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")]
@@ -86,9 +90,18 @@ async fn main() -> Result<()> {
8690
tokio::spawn(metrics::run_server(args.metrics_port));
8791

8892
// Create a wallet from the mnemonic.
89-
let wallet = MnemonicBuilder::<English>::default()
90-
.phrase(args.mnemonic.as_str())
91-
.build()?;
93+
let wallet = if let Some(key_derive_path) = args.key_derive_path.as_deref() {
94+
info!("Creating wallet from mnemonic and key derive path...");
95+
MnemonicBuilder::<English>::default()
96+
.phrase(args.mnemonic.as_str())
97+
.derivation_path(key_derive_path)?
98+
.build()?
99+
} else {
100+
info!("Creating wallet from mnemonic...");
101+
MnemonicBuilder::<English>::default()
102+
.phrase(args.mnemonic.as_str())
103+
.build()?
104+
};
92105

93106
// Create the EIP-712 domain separator.
94107
let domain_separator = create_eip712_domain(&args)?;

0 commit comments

Comments
 (0)