github.com/0xPolygon/supernets2-node@v0.0.0-20230711153321-2fe574524eaa/test/e2e/preEIP155_test.go (about) 1 package e2e 2 3 import ( 4 "context" 5 "strings" 6 "testing" 7 "time" 8 9 "github.com/0xPolygon/supernets2-node/hex" 10 "github.com/0xPolygon/supernets2-node/log" 11 "github.com/0xPolygon/supernets2-node/test/operations" 12 "github.com/ethereum/go-ethereum" 13 "github.com/ethereum/go-ethereum/common" 14 "github.com/ethereum/go-ethereum/core/types" 15 "github.com/ethereum/go-ethereum/crypto" 16 "github.com/stretchr/testify/require" 17 ) 18 19 func TestPreEIP155Tx(t *testing.T) { 20 if testing.Short() { 21 t.Skip() 22 } 23 24 var err error 25 err = operations.Teardown() 26 require.NoError(t, err) 27 28 defer func() { 29 require.NoError(t, operations.Teardown()) 30 }() 31 32 ctx := context.Background() 33 opsCfg := operations.GetDefaultOperationsConfig() 34 opsMan, err := operations.NewManager(ctx, opsCfg) 35 require.NoError(t, err) 36 err = opsMan.Setup() 37 require.NoError(t, err) 38 39 for _, network := range networks { 40 log.Debugf(network.Name) 41 client := operations.MustGetClient(network.URL) 42 auth := operations.MustGetAuth(network.PrivateKey, network.ChainID) 43 44 nonce, err := client.PendingNonceAt(ctx, auth.From) 45 require.NoError(t, err) 46 47 gasPrice, err := client.SuggestGasPrice(ctx) 48 require.NoError(t, err) 49 50 to := common.HexToAddress("0x1275fbb540c8efc58b812ba83b0d0b8b9917ae98") 51 data := hex.DecodeBig("0x64fbb77c").Bytes() 52 53 gas, err := client.EstimateGas(ctx, ethereum.CallMsg{ 54 From: auth.From, 55 To: &to, 56 Data: data, 57 }) 58 require.NoError(t, err) 59 60 tx := types.NewTx(&types.LegacyTx{ 61 Nonce: nonce, 62 To: &to, 63 GasPrice: gasPrice, 64 Gas: gas, 65 Data: data, 66 }) 67 68 privateKey, err := crypto.HexToECDSA(strings.TrimPrefix(network.PrivateKey, "0x")) 69 require.NoError(t, err) 70 71 signedTx, err := types.SignTx(tx, types.HomesteadSigner{}, privateKey) 72 require.NoError(t, err) 73 74 err = client.SendTransaction(ctx, signedTx) 75 require.NoError(t, err) 76 77 err = operations.WaitTxToBeMined(ctx, client, signedTx, operations.DefaultTimeoutTxToBeMined) 78 require.NoError(t, err) 79 80 receipt, err := client.TransactionReceipt(ctx, signedTx.Hash()) 81 require.NoError(t, err) 82 83 // wait for l2 block to be virtualized 84 if network.ChainID == operations.DefaultL2ChainID { 85 log.Infof("waiting for the block number %v to be virtualized", receipt.BlockNumber.String()) 86 err = operations.WaitL2BlockToBeVirtualized(receipt.BlockNumber, 4*time.Minute) //nolint:gomnd 87 require.NoError(t, err) 88 } 89 } 90 }