Skip to content

Commit 3ae144e

Browse files
More verbose errors when reading chain addresses (#819)
* chore: more verbose errors when reaching addresses from chain Signed-off-by: Yashvardhan Kukreja <[email protected]> * chore: make generic wrapper for could-not-retrieve-address error Signed-off-by: Yashvardhan Kukreja <[email protected]> --------- Signed-off-by: Yashvardhan Kukreja <[email protected]>
1 parent 81fc47c commit 3ae144e

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

ops/utils/addresses.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ type AddressData struct {
1616
Address string `json:"address"`
1717
}
1818

19+
func wrapCastCallErrorForChain(err error, l1RpcUrl, subject string) error {
20+
return fmt.Errorf("could not retrieve address from the L1 RPC %s for %s: %w", l1RpcUrl, subject, err)
21+
}
22+
1923
func ReadAddressesFromChain(addresses *superchain.AddressList, l1RpcUrl string, isFaultProofs bool) error {
2024
// SuperchainConfig
2125
address, err := validation.CastCall(addresses.OptimismPortalProxy, "superchainConfig()(address)", nil, l1RpcUrl)
@@ -28,29 +32,29 @@ func ReadAddressesFromChain(addresses *superchain.AddressList, l1RpcUrl string,
2832
if err != nil {
2933
address, err = validation.CastCall(addresses.OptimismPortalProxy, "guardian()(address)", nil, l1RpcUrl)
3034
if err != nil {
31-
return fmt.Errorf("could not retrieve address for Guardian %w", err)
35+
return wrapCastCallErrorForChain(err, l1RpcUrl, "Guardian")
3236
}
3337
}
3438
addresses.Guardian = superchain.MustHexToAddress(address[0])
3539

3640
// ProxyAdminOwner
3741
address, err = validation.CastCall(addresses.ProxyAdmin, "owner()(address)", nil, l1RpcUrl)
3842
if err != nil {
39-
return fmt.Errorf("could not retrieve address for ProxyAdminOwner")
43+
return wrapCastCallErrorForChain(err, l1RpcUrl, "ProxyAdminOwner")
4044
}
4145
addresses.ProxyAdminOwner = superchain.MustHexToAddress(address[0])
4246

4347
// SystemConfigOwner
4448
address, err = validation.CastCall(addresses.SystemConfigProxy, "owner()(address)", nil, l1RpcUrl)
4549
if err != nil {
46-
return fmt.Errorf("could not retrieve address for SystemConfigOwner")
50+
return wrapCastCallErrorForChain(err, l1RpcUrl, "SystemConfigOwner")
4751
}
4852
addresses.SystemConfigOwner = superchain.MustHexToAddress(address[0])
4953

5054
// UnsafeBlockSigner
5155
address, err = validation.CastCall(addresses.SystemConfigProxy, "unsafeBlockSigner()(address)", nil, l1RpcUrl)
5256
if err != nil {
53-
return fmt.Errorf("could not retrieve address for UnsafeBlockSigner")
57+
return wrapCastCallErrorForChain(err, l1RpcUrl, "UnsafeBlockSigner")
5458
}
5559
addresses.UnsafeBlockSigner = superchain.MustHexToAddress(address[0])
5660

@@ -66,28 +70,28 @@ func ReadAddressesFromChain(addresses *superchain.AddressList, l1RpcUrl string,
6670
// Proposer
6771
address, err = validation.CastCall(addresses.PermissionedDisputeGame, "proposer()(address)", nil, l1RpcUrl)
6872
if err != nil {
69-
return fmt.Errorf("could not retrieve address for Proposer")
73+
return wrapCastCallErrorForChain(err, l1RpcUrl, "Proposer")
7074
}
7175
addresses.Proposer = superchain.MustHexToAddress(address[0])
7276

7377
// Challenger
7478
address, err = validation.CastCall(addresses.PermissionedDisputeGame, "challenger()(address)", nil, l1RpcUrl)
7579
if err != nil {
76-
return fmt.Errorf("could not retrieve address for Challenger")
80+
return wrapCastCallErrorForChain(err, l1RpcUrl, "Challenger")
7781
}
7882
addresses.Challenger = superchain.MustHexToAddress(address[0])
7983
} else {
8084
// Proposer
8185
address, err = validation.CastCall(addresses.L2OutputOracleProxy, "PROPOSER()(address)", nil, l1RpcUrl)
8286
if err != nil {
83-
return fmt.Errorf("could not retrieve address for Proposer")
87+
return wrapCastCallErrorForChain(err, l1RpcUrl, "Proposer")
8488
}
8589
addresses.Proposer = superchain.MustHexToAddress(address[0])
8690

8791
// Challenger
8892
address, err = validation.CastCall(addresses.L2OutputOracleProxy, "CHALLENGER()(address)", nil, l1RpcUrl)
8993
if err != nil {
90-
return fmt.Errorf("could not retrieve address for Challenger")
94+
return wrapCastCallErrorForChain(err, l1RpcUrl, "Challenger")
9195
}
9296
addresses.Challenger = superchain.MustHexToAddress(address[0])
9397
}

0 commit comments

Comments
 (0)