@@ -18,11 +18,12 @@ import (
1818 "github.com/ava-labs/coreth/params"
1919 "github.com/ava-labs/libevm/common"
2020 "github.com/ava-labs/libevm/crypto"
21+ "github.com/stretchr/testify/require"
2122)
2223
2324// TestGetSenderNativeAssetCall checks that the NativeAssetCall proxies the
2425// caller address This behavior is disabled on the network and is only to test
25- // previous behavior. Note the test uses ApricotPhase2Config .
26+ // previous behavior. Note the test uses [params.TestApricotPhase2Config] .
2627func TestGetSenderNativeAssetCall (t * testing.T ) {
2728 // pragma solidity >=0.8.0 <0.9.0;
2829 // contract GetSenderNativeAssetCall {
@@ -34,7 +35,7 @@ func TestGetSenderNativeAssetCall(t *testing.T) {
3435 // _sender = msg.sender;
3536 // }
3637 // }
37- rawABI : = `[
38+ const rawABI = `[
3839 {
3940 "inputs": [],
4041 "name": "getSender",
@@ -51,17 +52,17 @@ func TestGetSenderNativeAssetCall(t *testing.T) {
5152 }
5253 ]`
5354 bytecode := common .FromHex (`6080604052348015600f57600080fd5b506101608061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806350c36a521461003b5780635e01eb5a14610045575b600080fd5b610043610063565b005b61004d6100a5565b60405161005a919061010f565b60405180910390f35b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100f9826100ce565b9050919050565b610109816100ee565b82525050565b60006020820190506101246000830184610100565b9291505056fea26469706673582212209023ce54f38e749b58f44e8da750354578080ce16df95037b7305ed7e480c36d64736f6c634300081b0033` )
54- setSenderMethodName : = "setSender"
55- getSenderMethodName : = "getSender"
55+ const setSenderMethodName = "setSender"
56+ const getSenderMethodName = "getSender"
5657
5758 parsedABI , err := abi .JSON (bytes .NewReader ([]byte (rawABI )))
58- if err != nil {
59- t .Fatalf ("Failed to parse ABI: %v" , err )
60- }
59+ require .NoError (t , err , "Failed to parse ABI" )
6160
6261 // Generate a new random account and a funded simulator
63- key , _ := crypto .GenerateKey ()
64- auth , _ := bind .NewKeyedTransactorWithChainID (key , big .NewInt (1337 ))
62+ key , err := crypto .GenerateKey ()
63+ require .NoError (t , err , "Failed to generate key" )
64+ auth , err := bind .NewKeyedTransactorWithChainID (key , big .NewInt (1337 ))
65+ require .NoError (t , err , "Failed to create transactor" )
6566 alloc := types.GenesisAlloc {auth .From : {Balance : big .NewInt (1000000000000000000 )}}
6667 atApricotPhase2 := func (nodeConf * node.Config , ethConf * ethconfig.Config ) {
6768 chainConfig := * params .TestApricotPhase2Config
@@ -73,13 +74,14 @@ func TestGetSenderNativeAssetCall(t *testing.T) {
7374 Backend : b ,
7475 Client : b .Client (),
7576 }
76- defer sim .Close ()
77+ t .Cleanup (func () {
78+ err = sim .Close ()
79+ require .NoError (t , err , "Failed to close simulator" )
80+ })
7781
7882 // Deploy the get/setSender contract
7983 _ , _ , interactor , err := bind .DeployContract (auth , parsedABI , bytecode , sim )
80- if err != nil {
81- t .Fatalf ("Failed to deploy interactor contract: %v" , err )
82- }
84+ require .NoError (t , err , "Failed to deploy interactor contract" )
8385 sim .Commit (false )
8486
8587 // Setting NativeAssetCall in the transact opts will proxy the call through
@@ -91,21 +93,15 @@ func TestGetSenderNativeAssetCall(t *testing.T) {
9193 AssetAmount : big .NewInt (0 ),
9294 },
9395 }
94- if _ , err := interactor .Transact (opts , setSenderMethodName ); err != nil {
95- t .Fatalf ("Failed to set sender: %v" , err )
96- }
96+ _ , err = interactor .Transact (opts , setSenderMethodName )
97+ require .NoError (t , err , "Failed to set sender" )
9798 sim .Commit (true )
9899
99- var results []interface {}
100- if err := interactor .Call (nil , & results , getSenderMethodName ); err != nil {
101- t .Fatalf ("Failed to get sender: %v" , err )
102- }
103- if len (results ) != 1 {
104- t .Fatalf ("Expected one result, got %d" , len (results ))
105- }
106- if addr , ok := results [0 ].(common.Address ); ! ok {
107- t .Fatalf ("Expected address, got %T" , results [0 ])
108- } else if addr != auth .From {
109- t .Fatalf ("Address mismatch: have '%v'" , addr )
110- }
100+ var results []any
101+ err = interactor .Call (nil , & results , getSenderMethodName )
102+ require .NoError (t , err , "Failed to get sender" )
103+ require .Len (t , results , 1 )
104+ addr , ok := results [0 ].(common.Address )
105+ require .Truef (t , ok , "Expected %T, got %T" , common.Address {}, results [0 ])
106+ require .Equal (t , addr , auth .From , "Address mismatch" )
111107}
0 commit comments