Skip to content

Commit f45781d

Browse files
fix: handle invalid mnemonic gracefully in anvil (#10207)
* fix: handle invalid mnemonic gracefully in anvil * style: format code with cargo +nightly fmt --------- Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
1 parent 52a8e14 commit f45781d

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

crates/anvil/src/cmd.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ impl NodeArgs {
231231
.with_blocktime(self.block_time)
232232
.with_no_mining(self.no_mining)
233233
.with_mixed_mining(self.mixed_mining, self.block_time)
234-
.with_account_generator(self.account_generator())
234+
.with_account_generator(self.account_generator())?
235235
.with_genesis_balance(genesis_balance)
236236
.with_genesis_timestamp(self.timestamp)
237237
.with_port(self.port)

crates/anvil/src/config.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,8 @@ impl NodeConfig {
418418
impl Default for NodeConfig {
419419
fn default() -> Self {
420420
// generate some random wallets
421-
let genesis_accounts = AccountGenerator::new(10).phrase(DEFAULT_MNEMONIC).gen();
421+
let genesis_accounts =
422+
AccountGenerator::new(10).phrase(DEFAULT_MNEMONIC).gen().expect("Invalid mnemonic.");
422423
Self {
423424
chain_id: None,
424425
gas_limit: None,
@@ -693,11 +694,10 @@ impl NodeConfig {
693694

694695
/// Sets both the genesis accounts and the signer accounts
695696
/// so that `genesis_accounts == accounts`
696-
#[must_use]
697-
pub fn with_account_generator(mut self, generator: AccountGenerator) -> Self {
698-
let accounts = generator.gen();
697+
pub fn with_account_generator(mut self, generator: AccountGenerator) -> eyre::Result<Self> {
698+
let accounts = generator.gen()?;
699699
self.account_generator = Some(generator);
700-
self.with_signer_accounts(accounts.clone()).with_genesis_accounts(accounts)
700+
Ok(self.with_signer_accounts(accounts.clone()).with_genesis_accounts(accounts))
701701
}
702702

703703
/// Sets the balance of the genesis accounts in the genesis block
@@ -1496,7 +1496,7 @@ impl AccountGenerator {
14961496
}
14971497

14981498
impl AccountGenerator {
1499-
pub fn gen(&self) -> Vec<PrivateKeySigner> {
1499+
pub fn gen(&self) -> eyre::Result<Vec<PrivateKeySigner>> {
15001500
let builder = MnemonicBuilder::<English>::default().phrase(self.phrase.as_str());
15011501

15021502
// use the derivation path
@@ -1506,10 +1506,10 @@ impl AccountGenerator {
15061506
for idx in 0..self.amount {
15071507
let builder =
15081508
builder.clone().derivation_path(format!("{derivation_path}{idx}")).unwrap();
1509-
let wallet = builder.build().unwrap().with_chain_id(Some(self.chain_id));
1509+
let wallet = builder.build()?.with_chain_id(Some(self.chain_id));
15101510
wallets.push(wallet)
15111511
}
1512-
wallets
1512+
Ok(wallets)
15131513
}
15141514
}
15151515

0 commit comments

Comments
 (0)