@@ -270,6 +270,7 @@ func Test_RelayerSet_EVMService(t *testing.T) {
270270 retrievedRelayer , err := rc .Get (ctx , types.RelayID {Network : "N1" , ChainID : "C1" })
271271 require .NoError (t , err )
272272
273+ zero := evmtypes.Address {}
273274 tests := []struct {
274275 name string
275276 run func (t * testing.T , evm types.EVMService , mockEVM * mocks2.EVMService )
@@ -338,6 +339,25 @@ func Test_RelayerSet_EVMService(t *testing.T) {
338339 require .Equal (t , big .NewInt (999 ), reply .Balance )
339340 },
340341 },
342+ {
343+ name : "BalanceAt_ZeroAddress_NoError" ,
344+ run : func (t * testing.T , evm types.EVMService , mockEVM * mocks2.EVMService ) {
345+ conf := primitives .Finalized
346+ mockEVM .EXPECT ().BalanceAt (mock .Anything , evmtypes.BalanceAtRequest {
347+ Address : zero ,
348+ BlockNumber : big .NewInt (0 ),
349+ ConfidenceLevel : conf ,
350+ }).Return (& evmtypes.BalanceAtReply {Balance : big .NewInt (0 )}, nil )
351+
352+ reply , err := evm .BalanceAt (ctx , evmtypes.BalanceAtRequest {
353+ Address : zero ,
354+ BlockNumber : big .NewInt (0 ),
355+ ConfidenceLevel : conf ,
356+ })
357+ require .NoError (t , err )
358+ require .Equal (t , big .NewInt (0 ), reply .Balance )
359+ },
360+ },
341361 {
342362 name : "EstimateGas" ,
343363 run : func (t * testing.T , evm types.EVMService , mockEVM * mocks2.EVMService ) {
@@ -488,6 +508,24 @@ func Test_RelayerSet_EVMService(t *testing.T) {
488508 require .Equal (t , & expectedTxResult , txResult )
489509 },
490510 },
511+ {
512+ name : "SubmitTransaction_ZeroTo_NoError" ,
513+ run : func (t * testing.T , evm types.EVMService , mockEVM * mocks2.EVMService ) {
514+ txRequest := evmtypes.SubmitTransactionRequest {
515+ To : zero ,
516+ Data : []byte ("data" ),
517+ }
518+ expectedTxResult := evmtypes.TransactionResult {
519+ TxStatus : evmtypes .TxSuccess ,
520+ TxHash : evmtypes.Hash {9 , 9 , 9 },
521+ }
522+ // Should not error even when To is zero address.
523+ mockEVM .EXPECT ().SubmitTransaction (mock .Anything , txRequest ).Return (& expectedTxResult , nil )
524+ txResult , err := evm .SubmitTransaction (ctx , txRequest )
525+ require .NoError (t , err )
526+ require .Equal (t , & expectedTxResult , txResult )
527+ },
528+ },
491529 {
492530 name : "CalculateTransactionFee" ,
493531 run : func (t * testing.T , evm types.EVMService , mockEVM * mocks2.EVMService ) {
@@ -504,6 +542,24 @@ func Test_RelayerSet_EVMService(t *testing.T) {
504542 require .Equal (t , expectedFee , fee )
505543 },
506544 },
545+ {
546+ name : "GetForwarderForEOA_ErrorsOnZeroEoa" ,
547+ run : func (t * testing.T , evm types.EVMService , mockEVM * mocks2.EVMService ) {
548+ mockEVM .EXPECT ().GetForwarderForEOA (mock .Anything , zero , address , "str" ).Return (address1 , nil )
549+ res , err := evm .GetForwarderForEOA (ctx , zero , address , "str" )
550+ require .NoError (t , err )
551+ require .Equal (t , address1 , res )
552+ },
553+ },
554+ {
555+ name : "GetForwarderForEOA_ErrorsOnZeroOCRID" ,
556+ run : func (t * testing.T , evm types.EVMService , mockEVM * mocks2.EVMService ) {
557+ mockEVM .EXPECT ().GetForwarderForEOA (mock .Anything , address , zero , "str" ).Return (address1 , nil )
558+ res , err := evm .GetForwarderForEOA (ctx , address , zero , "str" )
559+ require .NoError (t , err )
560+ require .Equal (t , address1 , res )
561+ },
562+ },
507563 }
508564
509565 for _ , tc := range tests {
0 commit comments