Commit 848b4a8d authored by Delweng's avatar Delweng Committed by GitHub

ops-chain-ops: return all dev accounts if no fund configed (#12722)

* op-chain-ops: rename HasAnyDevAccounts to RetrieveDevAccounts
Signed-off-by: default avatarjsvisa <delweng@gmail.com>

* op-chain-ops: return all dev accounts instead of bool
Signed-off-by: default avatarjsvisa <delweng@gmail.com>

* Update op-chain-ops/genesis/layer_two.go
Co-authored-by: default avatarprotolambda <proto@protolambda.com>

---------
Signed-off-by: default avatarjsvisa <delweng@gmail.com>
Co-authored-by: default avatarprotolambda <proto@protolambda.com>
parent bdf8fe34
...@@ -46,10 +46,10 @@ func BuildL2Genesis(config *DeployConfig, dump *foundry.ForgeAllocs, l1StartBloc ...@@ -46,10 +46,10 @@ func BuildL2Genesis(config *DeployConfig, dump *foundry.ForgeAllocs, l1StartBloc
} }
genspec.Alloc = dump.Copy().Accounts genspec.Alloc = dump.Copy().Accounts
// ensure the dev accounts are not funded unintentionally // ensure the dev accounts are not funded unintentionally
if hasDevAccounts, err := HasAnyDevAccounts(genspec.Alloc); err != nil { if devAccounts, err := RetrieveDevAccounts(genspec.Alloc); err != nil {
return nil, fmt.Errorf("failed to check dev accounts: %w", err) return nil, fmt.Errorf("failed to check dev accounts: %w", err)
} else if hasDevAccounts != config.FundDevAccounts { } else if (len(devAccounts) > 0) != config.FundDevAccounts {
return nil, fmt.Errorf("deploy config mismatch with allocs. Deploy config fundDevAccounts: %v, actual allocs: %v", config.FundDevAccounts, hasDevAccounts) return nil, fmt.Errorf("deploy config mismatch with allocs. Deploy config fundDevAccounts: %v, actual allocs: %v", config.FundDevAccounts, devAccounts)
} }
// sanity check the permit2 immutable, to verify we using the allocs for the right chain. // sanity check the permit2 immutable, to verify we using the allocs for the right chain.
if permit2 := genspec.Alloc[predeploys.Permit2Addr].Code; len(permit2) != 0 { if permit2 := genspec.Alloc[predeploys.Permit2Addr].Code; len(permit2) != 0 {
...@@ -76,23 +76,24 @@ func BuildL2Genesis(config *DeployConfig, dump *foundry.ForgeAllocs, l1StartBloc ...@@ -76,23 +76,24 @@ func BuildL2Genesis(config *DeployConfig, dump *foundry.ForgeAllocs, l1StartBloc
return genspec, nil return genspec, nil
} }
func HasAnyDevAccounts(allocs types.GenesisAlloc) (bool, error) { func RetrieveDevAccounts(allocs types.GenesisAlloc) ([]common.Address, error) {
wallet, err := hdwallet.NewFromMnemonic(testMnemonic) wallet, err := hdwallet.NewFromMnemonic(testMnemonic)
if err != nil { if err != nil {
return false, fmt.Errorf("failed to create wallet: %w", err) return nil, fmt.Errorf("failed to create wallet: %w", err)
} }
account := func(path string) accounts.Account { account := func(path string) accounts.Account {
return accounts.Account{URL: accounts.URL{Path: path}} return accounts.Account{URL: accounts.URL{Path: path}}
} }
var devAccounts []common.Address
for i := 0; i < 30; i++ { for i := 0; i < 30; i++ {
key, err := wallet.PrivateKey(account(fmt.Sprintf("m/44'/60'/0'/0/%d", i))) key, err := wallet.PrivateKey(account(fmt.Sprintf("m/44'/60'/0'/0/%d", i)))
if err != nil { if err != nil {
return false, err return nil, err
} }
addr := crypto.PubkeyToAddress(key.PublicKey) addr := crypto.PubkeyToAddress(key.PublicKey)
if _, ok := allocs[addr]; ok { if _, ok := allocs[addr]; ok {
return true, nil devAccounts = append(devAccounts, addr)
} }
} }
return false, nil return devAccounts, nil
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment