@@ -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+
1923func 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