@@ -68,10 +68,6 @@ func (c *ERC20Client) Erc20Allowance(ctx context.Context, contract, owner, spend
6868
6969// Erc20Metadata returns name, symbol, decimals for the ERC20 contract.
7070func (c * ERC20Client ) Erc20Metadata (ctx context.Context , contract common.Address ) (Erc20Metadata , error ) {
71- if c .client == nil {
72- return Erc20Metadata {}, fmt .Errorf ("ERC20Client not wired to a base.Client" )
73- }
74-
7571 name , err := c .callString (ctx , contract , "name" )
7672 if err != nil {
7773 return Erc20Metadata {}, fmt .Errorf ("name: %w" , err )
@@ -87,11 +83,15 @@ func (c *ERC20Client) Erc20Metadata(ctx context.Context, contract common.Address
8783 return Erc20Metadata {Name : name , Symbol : symbol , Decimals : decimals }, nil
8884}
8985
90- func (c * ERC20Client ) callUint256 (ctx context.Context , contract common.Address , method string , data []byte ) (* big. Int , error ) {
91- if c .client == nil {
92- return nil , fmt .Errorf ("ERC20Client not wired to a base.Client " )
86+ func (c * ERC20Client ) callContract (ctx context.Context , contract common.Address , data []byte ) ([] byte , error ) {
87+ if c .client == nil || c . client . EVM == nil {
88+ return nil , fmt .Errorf ("ERC20Client not wired to an EVM client " )
9389 }
94- ret , err := c .client .EVM .CallContract (ctx , contract , data )
90+ return c .client .EVM .CallContract (ctx , contract , data )
91+ }
92+
93+ func (c * ERC20Client ) callUint256 (ctx context.Context , contract common.Address , method string , data []byte ) (* big.Int , error ) {
94+ ret , err := c .callContract (ctx , contract , data )
9595 if err != nil {
9696 return nil , err
9797 }
@@ -114,7 +114,7 @@ func (c *ERC20Client) callString(ctx context.Context, contract common.Address, m
114114 if err != nil {
115115 return "" , fmt .Errorf ("pack %s: %w" , method , err )
116116 }
117- ret , err := c .client . EVM . CallContract (ctx , contract , data )
117+ ret , err := c .callContract (ctx , contract , data )
118118 if err != nil {
119119 return "" , err
120120 }
@@ -137,7 +137,7 @@ func (c *ERC20Client) callUint8(ctx context.Context, contract common.Address, me
137137 if err != nil {
138138 return 0 , fmt .Errorf ("pack %s: %w" , method , err )
139139 }
140- ret , err := c .client . EVM . CallContract (ctx , contract , data )
140+ ret , err := c .callContract (ctx , contract , data )
141141 if err != nil {
142142 return 0 , err
143143 }
0 commit comments