github.com/0xPolygon/supernets2-node@v0.0.0-20230711153321-2fe574524eaa/test/e2e/uniswap_test.go (about) 1 package e2e 2 3 import ( 4 "context" 5 "flag" 6 "testing" 7 8 "github.com/0xPolygon/supernets2-node/config" 9 "github.com/0xPolygon/supernets2-node/state" 10 "github.com/0xPolygon/supernets2-node/test/contracts/bin/ERC20" 11 "github.com/0xPolygon/supernets2-node/test/operations" 12 "github.com/ethereum/go-ethereum/common" 13 "github.com/ethereum/go-ethereum/ethclient" 14 "github.com/stretchr/testify/assert" 15 "github.com/stretchr/testify/require" 16 "github.com/urfave/cli/v2" 17 ) 18 19 // TestUniswap tests uniswap contracts deployment and functionality on the node. 20 func TestUniswap(t *testing.T) { 21 if testing.Short() { 22 t.Skip() 23 } 24 25 defer func() { 26 require.NoError(t, operations.Teardown()) 27 }() 28 ctx := context.Background() 29 30 // load the same config that will be used by the test 31 app := cli.NewApp() 32 var n string 33 flag.StringVar(&n, "network", "local", "") 34 cfg, err := config.Load(cli.NewContext(app, flag.CommandLine, nil)) 35 require.NoError(t, err) 36 37 opsCfg := &operations.Config{ 38 State: &state.Config{ 39 MaxCumulativeGasUsed: cfg.Sequencer.MaxCumulativeGasUsed, 40 }, 41 SequenceSender: &operations.SequenceSenderConfig{ 42 SenderAddress: "0x617b3a3528F9cDd6630fd3301B9c8911F7Bf063D", 43 LastBatchVirtualizationTimeMaxWaitPeriod: "5s", 44 WaitPeriodSendSequence: "5s", 45 MaxBatchesForL1: 1, 46 PrivateKey: "0x28b2b0318721be8c8339199172cd7cc8f5e273800a35616ec893083a4b32c02e", 47 }, 48 } 49 opsman, err := operations.NewManager(ctx, opsCfg) 50 require.NoError(t, err) 51 52 require.NoError(t, opsman.StartNetwork()) 53 require.NoError(t, opsman.StartNode()) 54 require.NoError(t, opsman.InitNetwork()) 55 56 client, err := ethclient.Dial("http://localhost:8123") 57 require.NoError(t, err) 58 accountAddr := common.HexToAddress("0xC949254d682D8c9ad5682521675b8F43b102aec4") 59 60 balance, err := client.BalanceAt(ctx, accountAddr, nil) 61 require.NoError(t, err) 62 assert.Equal(t, balance.String(), "10000000000000000000", "invalid ETH Balance") 63 64 require.NoError(t, opsman.DeployUniswap()) 65 66 aCoinAddr := common.HexToAddress("0x3A07588DefB088956a2e6dD15C33d63F2E0A2c55") 67 bCoinAddr := common.HexToAddress("0x0ef3B0bC8D6313aB7dc03CF7225c872071bE1E6d") 68 cCoinAddr := common.HexToAddress("0xd59D09BBEE914015562D95e84a78f1CD4FC347E9") 69 70 aCoin, err := ERC20.NewERC20(aCoinAddr, client) 71 require.NoError(t, err) 72 balance, err = aCoin.BalanceOf(nil, accountAddr) 73 require.NoError(t, err) 74 assert.Equal(t, balance.String(), "989000000000000000000", "invalid A Coin Balance") 75 76 bCoin, err := ERC20.NewERC20(bCoinAddr, client) 77 require.NoError(t, err) 78 balance, err = bCoin.BalanceOf(nil, accountAddr) 79 require.NoError(t, err) 80 assert.Equal(t, balance.String(), "979906610893880149131", "invalid B Coin Balance") 81 82 cCoin, err := ERC20.NewERC20(cCoinAddr, client) 83 require.NoError(t, err) 84 balance, err = cCoin.BalanceOf(nil, accountAddr) 85 require.NoError(t, err) 86 assert.Equal(t, balance.String(), "990906610893880149131", "invalid C Coin Balance") 87 88 balance, err = client.BalanceAt(ctx, accountAddr, nil) 89 require.NoError(t, err) 90 assert.Equal(t, "9995731067000000000", balance.String(), "invalid ETH Balance after deployments and swaps") 91 }