From 6510cf25d2cc755d00f7c2bb1a616914fd60f021 Mon Sep 17 00:00:00 2001 From: Alex Gartner Date: Fri, 22 Nov 2024 08:19:20 -0800 Subject: [PATCH 1/2] chore: use v22 as base in upgrade tests (#3200) * chore: use v22 as base in upgrade tests * v22.1.1 --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ebeacdb26e..7efc19b988 100644 --- a/Makefile +++ b/Makefile @@ -327,7 +327,7 @@ ifdef UPGRADE_TEST_FROM_SOURCE zetanode-upgrade: e2e-images @echo "Building zetanode-upgrade from source" $(DOCKER) build -t zetanode:old -f Dockerfile-localnet --target old-runtime-source \ - --build-arg OLD_VERSION='release/v21' \ + --build-arg OLD_VERSION='release/v22' \ --build-arg NODE_VERSION=$(NODE_VERSION) \ --build-arg NODE_COMMIT=$(NODE_COMMIT) . @@ -336,7 +336,7 @@ else zetanode-upgrade: e2e-images @echo "Building zetanode-upgrade from binaries" $(DOCKER) build -t zetanode:old -f Dockerfile-localnet --target old-runtime \ - --build-arg OLD_VERSION='https://github.com/zeta-chain/node/releases/download/v21.0.0' \ + --build-arg OLD_VERSION='https://github.com/zeta-chain/node/releases/download/v22.1.1' \ --build-arg NODE_VERSION=$(NODE_VERSION) \ --build-arg NODE_COMMIT=$(NODE_COMMIT) \ . From 22961b326fdd012a005b8fa21d9e5eda147f02cc Mon Sep 17 00:00:00 2001 From: Lucas Bertrand Date: Fri, 22 Nov 2024 17:43:09 +0100 Subject: [PATCH 2/2] test(e2e): fix add liquidity occasional error (tentative) (#3199) * increase erc20 values * consolidate function call * lint * add eth liquidity * increase deposit amount --- cmd/zetae2e/local/erc20.go | 2 +- e2e/e2etests/test_erc20_deposit_refund.go | 45 ++--------------------- e2e/runner/evm.go | 3 +- e2e/runner/liquidity.go | 8 +++- e2e/utils/require.go | 8 +++- 5 files changed, 20 insertions(+), 46 deletions(-) diff --git a/cmd/zetae2e/local/erc20.go b/cmd/zetae2e/local/erc20.go index 3b2830a066..8c9ef06869 100644 --- a/cmd/zetae2e/local/erc20.go +++ b/cmd/zetae2e/local/erc20.go @@ -37,7 +37,7 @@ func erc20TestRoutine( startTime := time.Now() // funding the account - txERC20Send := deployerRunner.SendERC20OnEvm(account.EVMAddress(), 10) + txERC20Send := deployerRunner.SendERC20OnEvm(account.EVMAddress(), 10000) erc20Runner.WaitForTxReceiptOnEvm(txERC20Send) // depositing the necessary tokens on ZetaChain diff --git a/e2e/e2etests/test_erc20_deposit_refund.go b/e2e/e2etests/test_erc20_deposit_refund.go index 816cf702a8..4629d90b06 100644 --- a/e2e/e2etests/test_erc20_deposit_refund.go +++ b/e2e/e2etests/test_erc20_deposit_refund.go @@ -2,9 +2,7 @@ package e2etests import ( "errors" - "fmt" "math/big" - "time" "github.com/ethereum/go-ethereum/accounts/abi/bind" ethcommon "github.com/ethereum/go-ethereum/common" @@ -64,7 +62,9 @@ func TestERC20DepositAndCallRefund(r *runner.E2ERunner, _ []string) { r.Logger.Info("Sending a deposit that should revert with a liquidity pool") r.Logger.Info("Creating the liquidity pool USTD/ZETA") - err = createZetaERC20LiquidityPool(r) + fifty := big.NewInt(0).Mul(big.NewInt(1e18), big.NewInt(50)) + r.AddLiquidityETH(fifty, fifty) + r.AddLiquidityERC20(fifty, fifty) require.NoError(r, err) r.Logger.Info("Liquidity pool created") @@ -73,7 +73,7 @@ func TestERC20DepositAndCallRefund(r *runner.E2ERunner, _ []string) { require.NoError(r, err) // send the deposit - amount = big.NewInt(1e7) + amount = big.NewInt(1e10) inboundHash, err = sendInvalidERC20Deposit(r, amount) require.NoError(r, err) @@ -120,43 +120,6 @@ func TestERC20DepositAndCallRefund(r *runner.E2ERunner, _ []string) { r.Logger.Info("\tbalance after refund: %s", erc20BalanceAfterRefund.String()) } -func createZetaERC20LiquidityPool(r *runner.E2ERunner) error { - amount := big.NewInt(1e10) - txHash := r.DepositERC20WithAmountAndMessage(r.EVMAddress(), amount, []byte{}) - utils.WaitCctxMinedByInboundHash(r.Ctx, txHash.Hex(), r.CctxClient, r.Logger, r.CctxTimeout) - - tx, err := r.ERC20ZRC20.Approve(r.ZEVMAuth, r.UniswapV2RouterAddr, big.NewInt(1e10)) - if err != nil { - return err - } - receipt := utils.MustWaitForTxReceipt(r.Ctx, r.ZEVMClient, tx, r.Logger, r.ReceiptTimeout) - if receipt.Status == 0 { - return errors.New("approve failed") - } - - previousValue := r.ZEVMAuth.Value - r.ZEVMAuth.Value = big.NewInt(1e10) - tx, err = r.UniswapV2Router.AddLiquidityETH( - r.ZEVMAuth, - r.ERC20ZRC20Addr, - amount, - big.NewInt(0), - big.NewInt(0), - r.EVMAddress(), - big.NewInt(time.Now().Add(10*time.Minute).Unix()), - ) - r.ZEVMAuth.Value = previousValue - if err != nil { - return err - } - receipt = utils.MustWaitForTxReceipt(r.Ctx, r.ZEVMClient, tx, r.Logger, r.ReceiptTimeout) - if receipt.Status == 0 { - return fmt.Errorf("add liquidity failed") - } - - return nil -} - func sendInvalidERC20Deposit(r *runner.E2ERunner, amount *big.Int) (string, error) { tx, err := r.ERC20.Approve(r.EVMAuth, r.ERC20CustodyAddr, amount) if err != nil { diff --git a/e2e/runner/evm.go b/e2e/runner/evm.go index 1fc18f1a5c..d12e895d96 100644 --- a/e2e/runner/evm.go +++ b/e2e/runner/evm.go @@ -60,7 +60,8 @@ func (r *E2ERunner) SendERC20OnEvm(address ethcommon.Address, amountERC20 int64) func (r *E2ERunner) DepositERC20() ethcommon.Hash { r.Logger.Print("⏳ depositing ERC20 into ZEVM") - return r.DepositERC20WithAmountAndMessage(r.EVMAddress(), big.NewInt(1e18), []byte{}) + oneHundred := big.NewInt(0).Mul(big.NewInt(1e18), big.NewInt(100)) + return r.DepositERC20WithAmountAndMessage(r.EVMAddress(), oneHundred, []byte{}) } func (r *E2ERunner) DepositERC20WithAmountAndMessage(to ethcommon.Address, amount *big.Int, msg []byte) ethcommon.Hash { diff --git a/e2e/runner/liquidity.go b/e2e/runner/liquidity.go index 4679afbd1a..43f32b4148 100644 --- a/e2e/runner/liquidity.go +++ b/e2e/runner/liquidity.go @@ -37,7 +37,9 @@ func (r *E2ERunner) AddLiquidityETH(amountZETA, amountETH *big.Int) { require.NoError(r, err) receipt := utils.MustWaitForTxReceipt(r.Ctx, r.ZEVMClient, tx, r.Logger, r.ReceiptTimeout) - require.EqualValues(r, types.ReceiptStatusSuccessful, receipt.Status, "add liquidity failed") + if receipt.Status == types.ReceiptStatusFailed { + r.Logger.Error("Add liquidity failed for ZETA/ETH") + } // get the pair address pairAddress, err := r.UniswapV2Factory.GetPair(&bind.CallOpts{}, r.WZetaAddr, r.ETHZRC20Addr) @@ -72,7 +74,9 @@ func (r *E2ERunner) AddLiquidityERC20(amountZETA, amountERC20 *big.Int) { require.NoError(r, err) receipt := utils.MustWaitForTxReceipt(r.Ctx, r.ZEVMClient, tx, r.Logger, r.ReceiptTimeout) - require.EqualValues(r, types.ReceiptStatusSuccessful, receipt.Status, "add liquidity failed") + if receipt.Status == types.ReceiptStatusFailed { + r.Logger.Error("Add liquidity failed for ZETA/ERC20") + } // get the pair address pairAddress, err := r.UniswapV2Factory.GetPair(&bind.CallOpts{}, r.WZetaAddr, r.ERC20ZRC20Addr) diff --git a/e2e/utils/require.go b/e2e/utils/require.go index 8bf9c5f5d0..3e8ad6d8a1 100644 --- a/e2e/utils/require.go +++ b/e2e/utils/require.go @@ -16,7 +16,13 @@ func RequireCCTXStatus( expected crosschaintypes.CctxStatus, msgAndArgs ...any, ) { - msg := fmt.Sprintf("cctx status is not %q cctx index %s", expected.String(), cctx.Index) + msg := fmt.Sprintf( + "cctx status is not %q cctx index %s, status: %s, error: %s", + expected.String(), + cctx.Index, + cctx.CctxStatus.StatusMessage, + cctx.CctxStatus.ErrorMessage, + ) require.NotNil(t, cctx.CctxStatus) require.Equal(t, expected, cctx.CctxStatus.Status, msg+errSuffix(msgAndArgs...))