diff --git a/go.mod b/go.mod index 52b4283b..35c43740 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ replace ( require ( github.com/decentrio/e2e-testing-live v0.0.0-20240718080249-ee255229c869 - github.com/decentrio/rollup-e2e-testing v0.0.0-20240923073446-c62503e5e95f + github.com/decentrio/rollup-e2e-testing v0.0.0-20240924040733-5e3a48a16228 github.com/dymensionxyz/dymension/v3 v3.1.0-rc03.0.20240911123104-4782bc4e587f github.com/dymensionxyz/dymint v1.2.0-rc01 ) diff --git a/go.sum b/go.sum index c892d533..bcc88831 100644 --- a/go.sum +++ b/go.sum @@ -770,8 +770,8 @@ github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= github.com/decentrio/e2e-testing-live v0.0.0-20240718080249-ee255229c869 h1:qWpUYGOsrSC+1Vmd2TjhbsSpntvvx9PsX3AoeMunFxc= github.com/decentrio/e2e-testing-live v0.0.0-20240718080249-ee255229c869/go.mod h1:HZNYnPwmSxkwTPjSD5yolauc1Vx1ZzKL4FFMxTq4H5Y= -github.com/decentrio/rollup-e2e-testing v0.0.0-20240923073446-c62503e5e95f h1:YH0RDGXosZHVaxFJ+Q4Kh0782yQq5ZcK5jQNN/RQUgU= -github.com/decentrio/rollup-e2e-testing v0.0.0-20240923073446-c62503e5e95f/go.mod h1:QmBrZgZplhtgHRWC0Z7LC7TDsKuC8sDyQvZyXXaqw/c= +github.com/decentrio/rollup-e2e-testing v0.0.0-20240924040733-5e3a48a16228 h1:dXy0HiXfQFKZLp4zG2DxFESYiN3lH5nKhv0mGudROAM= +github.com/decentrio/rollup-e2e-testing v0.0.0-20240924040733-5e3a48a16228/go.mod h1:QmBrZgZplhtgHRWC0Z7LC7TDsKuC8sDyQvZyXXaqw/c= github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= diff --git a/tests/admc_test.go b/tests/admc_test.go index 75e418ae..3cf4452e 100644 --- a/tests/admc_test.go +++ b/tests/admc_test.go @@ -142,6 +142,9 @@ func TestADMC_Originates_HubtoRA_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -153,6 +156,11 @@ func TestADMC_Originates_HubtoRA_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + txhash, err := dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + fmt.Println(txhash) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -317,6 +325,9 @@ func TestADMC_Migrate_Empty_User_Memo_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -328,6 +339,11 @@ func TestADMC_Migrate_Empty_User_Memo_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + txhash, err := dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + fmt.Println(txhash) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -396,6 +412,9 @@ func TestADMC_Migrate_Empty_User_Memo_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -407,6 +426,11 @@ func TestADMC_Migrate_Empty_User_Memo_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + txhash, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + fmt.Println(txhash) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -547,6 +571,9 @@ func TestADMC_Migrate_With_User_Memo_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -558,6 +585,11 @@ func TestADMC_Migrate_With_User_Memo_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + txhash, err := dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + fmt.Println(txhash) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -635,6 +667,9 @@ func TestADMC_Migrate_With_User_Memo_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{Memo: memo}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -646,6 +681,11 @@ func TestADMC_Migrate_With_User_Memo_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + txhash, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + fmt.Println(txhash) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -779,6 +819,9 @@ func TestADMC_Originates_HubtoRA_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -790,6 +833,11 @@ func TestADMC_Originates_HubtoRA_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + txhash, err := dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + fmt.Println(txhash) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -954,6 +1002,9 @@ func TestADMC_Migrate_Empty_User_Memo_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -965,6 +1016,11 @@ func TestADMC_Migrate_Empty_User_Memo_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + txhash, err := dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + fmt.Println(txhash) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1030,6 +1086,9 @@ func TestADMC_Migrate_Empty_User_Memo_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1041,6 +1100,9 @@ func TestADMC_Migrate_Empty_User_Memo_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1181,6 +1243,9 @@ func TestADMC_Migrate_With_User_Memo_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1192,6 +1257,9 @@ func TestADMC_Migrate_With_User_Memo_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1264,6 +1332,9 @@ func TestADMC_Migrate_With_User_Memo_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{Memo: memo}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1275,6 +1346,9 @@ func TestADMC_Migrate_With_User_Memo_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1438,6 +1512,9 @@ func TestADMC_MetaData_NotFound_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1449,6 +1526,9 @@ func TestADMC_MetaData_NotFound_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1639,6 +1719,9 @@ func TestADMC_MetaData_NotFound_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1650,6 +1733,9 @@ func TestADMC_MetaData_NotFound_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/automated_denommetadata_test.go b/tests/automated_denommetadata_test.go index e7bcf336..9a35ed64 100644 --- a/tests/automated_denommetadata_test.go +++ b/tests/automated_denommetadata_test.go @@ -248,6 +248,9 @@ func TestADMC_Hub_to_RA_reserved_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -259,6 +262,9 @@ func TestADMC_Hub_to_RA_reserved_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -513,6 +519,9 @@ func TestADMC_Hub_to_RA_3rd_Party_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -524,6 +533,9 @@ func TestADMC_Hub_to_RA_3rd_Party_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -820,6 +832,9 @@ func TestADMC_Hub_to_RA_reserved_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -831,6 +846,9 @@ func TestADMC_Hub_to_RA_reserved_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1135,6 +1153,9 @@ func TestADMC_Hub_to_RA_3rd_Party_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1146,6 +1167,9 @@ func TestADMC_Hub_to_RA_3rd_Party_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1348,6 +1372,9 @@ func TestADMC_Hub_to_RA_Migrate_Dym_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1359,7 +1386,7 @@ func TestADMC_Hub_to_RA_Migrate_Dym_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) require.NoError(t, err) err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) @@ -1547,6 +1574,9 @@ func TestADMC_Hub_to_RA_Migrate_Dym_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1558,6 +1588,9 @@ func TestADMC_Hub_to_RA_Migrate_Dym_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/bridging_fee_test.go b/tests/bridging_fee_test.go index b0569876..62c93242 100644 --- a/tests/bridging_fee_test.go +++ b/tests/bridging_fee_test.go @@ -350,6 +350,9 @@ func TestChangeBridgeFeeParam_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.Counterparty.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -361,6 +364,9 @@ func TestChangeBridgeFeeParam_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -394,6 +400,9 @@ func TestChangeBridgeFeeParam_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.Counterparty.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -405,6 +414,9 @@ func TestChangeBridgeFeeParam_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/eibc_ack_error_test.go b/tests/eibc_ack_error_test.go index 3760b724..982d1cf4 100644 --- a/tests/eibc_ack_error_test.go +++ b/tests/eibc_ack_error_test.go @@ -238,6 +238,9 @@ func TestEIBC_AckError_Dym_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -249,6 +252,9 @@ func TestEIBC_AckError_Dym_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -262,6 +268,9 @@ func TestEIBC_AckError_Dym_EVM(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) + require.NoError(t, err) + rollappHeight, err = rollapp2.GetNode().Height(ctx) require.NoError(t, err) @@ -273,7 +282,10 @@ func TestEIBC_AckError_Dym_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) require.NoError(t, err) // Get the IBC denom for adym on rollapp @@ -343,7 +355,17 @@ func TestEIBC_AckError_Dym_EVM(t *testing.T) { require.True(t, balance.Equal(zeroBal), fmt.Sprintf("Value mismatch. Expected %s, actual %s", zeroBal, balance)) // catch ACK errors - rollappHeight, err = rollapp1.Height(ctx) + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) require.NoError(t, err) ack, err := testutil.PollForAck(ctx, rollapp1, rollappHeight, rollappHeight+80, ibcTx.Packet) @@ -411,6 +433,9 @@ func TestEIBC_AckError_Dym_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -653,6 +678,9 @@ func TestEIBC_AckError_RA_Token_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -664,6 +692,9 @@ func TestEIBC_AckError_RA_Token_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + valAddr, err := dymension.Validators[0].AccountKeyBech32(ctx, "validator") require.NoError(t, err) @@ -676,6 +707,9 @@ func TestEIBC_AckError_RA_Token_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -684,6 +718,9 @@ func TestEIBC_AckError_RA_Token_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -747,10 +784,20 @@ func TestEIBC_AckError_RA_Token_EVM(t *testing.T) { require.True(t, balance.Equal(transferAmount.Sub(bridgingFee)), fmt.Sprintf("Value mismatch. Expected %s, actual %s", transferAmount.Sub(bridgingFee), balance)) // catch ACK errors - rollapp1Height, err := rollapp1.Height(ctx) + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) require.NoError(t, err) - ack, err := testutil.PollForAck(ctx, rollapp1, rollapp1Height, rollapp1Height+30, ibcTx.Packet) + ack, err := testutil.PollForAck(ctx, rollapp1, rollappHeight, rollappHeight+30, ibcTx.Packet) require.NoError(t, err) // Make sure that the ack contains error @@ -803,6 +850,9 @@ func TestEIBC_AckError_RA_Token_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1047,6 +1097,9 @@ func TestEIBC_AckError_3rd_Party_Token_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1058,6 +1111,9 @@ func TestEIBC_AckError_3rd_Party_Token_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1073,6 +1129,9 @@ func TestEIBC_AckError_3rd_Party_Token_EVM(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) + require.NoError(t, err) + rollappHeight, err = rollapp2.GetNode().Height(ctx) require.NoError(t, err) @@ -1081,7 +1140,10 @@ func TestEIBC_AckError_3rd_Party_Token_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) require.NoError(t, err) var options ibc.TransferOptions @@ -1140,7 +1202,7 @@ func TestEIBC_AckError_3rd_Party_Token_EVM(t *testing.T) { err = dymension.Validators[0].SendFunds(ctx, "validator", transferData) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + err = testutil.WaitForBlocks(ctx, 20, dymension, rollapp1) require.NoError(t, err) testutil.AssertBalance(t, ctx, dymension, marketMakerAddr, thirdPartyDenom, transferAmount) @@ -1204,10 +1266,20 @@ func TestEIBC_AckError_3rd_Party_Token_EVM(t *testing.T) { require.True(t, balance.Equal(zeroBal), fmt.Sprintf("Value mismatch. Expected %s, actual %s", zeroBal, balance)) // catch ACK errors - rollapp1Height, err := rollapp1.Height(ctx) + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) require.NoError(t, err) - ack, err := testutil.PollForAck(ctx, rollapp1, rollapp1Height, rollapp1Height+30, ibcTx.Packet) + ack, err := testutil.PollForAck(ctx, rollapp1, rollappHeight, rollappHeight+30, ibcTx.Packet) require.NoError(t, err) // Make sure that the ack contains error @@ -1259,6 +1331,9 @@ func TestEIBC_AckError_3rd_Party_Token_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1488,6 +1563,9 @@ func TestEIBC_AckError_Dym_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1499,6 +1577,9 @@ func TestEIBC_AckError_Dym_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1512,6 +1593,9 @@ func TestEIBC_AckError_Dym_Wasm(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) + require.NoError(t, err) + rollappHeight, err = rollapp2.GetNode().Height(ctx) require.NoError(t, err) @@ -1523,7 +1607,10 @@ func TestEIBC_AckError_Dym_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) require.NoError(t, err) // Get the IBC denom for adym on rollapp @@ -1591,7 +1678,15 @@ func TestEIBC_AckError_Dym_Wasm(t *testing.T) { rollappHeight, err = rollapp1.Height(ctx) require.NoError(t, err) - ack, err := testutil.PollForAck(ctx, rollapp1, rollappHeight, rollappHeight+70, ibcTx.Packet) + // wait until the packet is finalized + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + ack, err := testutil.PollForAck(ctx, rollapp1, rollappHeight, rollappHeight+30, ibcTx.Packet) require.NoError(t, err) // Make sure that the ack contains error @@ -1649,6 +1744,9 @@ func TestEIBC_AckError_Dym_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1891,6 +1989,9 @@ func TestEIBC_AckError_RA_Token_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1902,6 +2003,9 @@ func TestEIBC_AckError_RA_Token_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + valAddr, err := dymension.Validators[0].AccountKeyBech32(ctx, "validator") require.NoError(t, err) @@ -1914,6 +2018,9 @@ func TestEIBC_AckError_RA_Token_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1922,6 +2029,9 @@ func TestEIBC_AckError_RA_Token_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1983,10 +2093,20 @@ func TestEIBC_AckError_RA_Token_Wasm(t *testing.T) { require.True(t, balance.Equal(transferAmount.Sub(bridgingFee)), fmt.Sprintf("Value mismatch. Expected %s, actual %s", transferAmount.Sub(bridgingFee), balance)) // catch ACK errors - rollapp1Height, err := rollapp1.Height(ctx) + err = testutil.WaitForBlocks(ctx, 10, dymension) require.NoError(t, err) - ack, err := testutil.PollForAck(ctx, rollapp1, rollapp1Height, rollapp1Height+30, ibcTx.Packet) + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + ack, err := testutil.PollForAck(ctx, rollapp1, rollappHeight, rollappHeight+30, ibcTx.Packet) require.NoError(t, err) // Make sure that the ack contains error @@ -2039,6 +2159,9 @@ func TestEIBC_AckError_RA_Token_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -2283,6 +2406,9 @@ func TestEIBC_AckError_3rd_Party_Token_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2294,6 +2420,9 @@ func TestEIBC_AckError_3rd_Party_Token_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -2309,6 +2438,9 @@ func TestEIBC_AckError_3rd_Party_Token_Wasm(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) + require.NoError(t, err) + rollappHeight, err = rollapp2.GetNode().Height(ctx) require.NoError(t, err) @@ -2317,7 +2449,10 @@ func TestEIBC_AckError_3rd_Party_Token_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) require.NoError(t, err) var options ibc.TransferOptions @@ -2333,7 +2468,7 @@ func TestEIBC_AckError_3rd_Party_Token_Wasm(t *testing.T) { err = dymension.Validators[0].SendFunds(ctx, "validator", transferData) require.NoError(t, err) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + err = testutil.WaitForBlocks(ctx, 20, dymension, rollapp1) require.NoError(t, err) testutil.AssertBalance(t, ctx, dymension, marketMakerAddr, thirdPartyDenom, transferAmount) @@ -2403,10 +2538,20 @@ func TestEIBC_AckError_3rd_Party_Token_Wasm(t *testing.T) { require.True(t, balance.Equal(zeroBal), fmt.Sprintf("Value mismatch. Expected %s, actual %s", zeroBal, balance)) // catch ACK errors - rollapp1Height, err := rollapp1.Height(ctx) + err = testutil.WaitForBlocks(ctx, 10, dymension) require.NoError(t, err) - ack, err := testutil.PollForAck(ctx, rollapp1, rollapp1Height, rollapp1Height+30, ibcTx.Packet) + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + ack, err := testutil.PollForAck(ctx, rollapp1, rollappHeight, rollappHeight+30, ibcTx.Packet) require.NoError(t, err) // Make sure that the ack contains error @@ -2458,6 +2603,9 @@ func TestEIBC_AckError_3rd_Party_Token_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/eibc_corrupted_memo_test.go b/tests/eibc_corrupted_memo_test.go index b9462803..2fd34ad7 100644 --- a/tests/eibc_corrupted_memo_test.go +++ b/tests/eibc_corrupted_memo_test.go @@ -167,6 +167,9 @@ func TestEIBCCorruptedMemoNegative_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -178,6 +181,9 @@ func TestEIBCCorruptedMemoNegative_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -233,6 +239,9 @@ func TestEIBCCorruptedMemoNegative_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/eibc_fee_market_test.go b/tests/eibc_fee_market_test.go index f673fbb4..d6d843b4 100644 --- a/tests/eibc_fee_market_test.go +++ b/tests/eibc_fee_market_test.go @@ -202,6 +202,9 @@ func TestEIBCFulfillAlreadyFulfilledDemand_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -210,6 +213,9 @@ func TestEIBCFulfillAlreadyFulfilledDemand_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -227,6 +233,10 @@ func TestEIBCFulfillAlreadyFulfilledDemand_EVM(t *testing.T) { // market maker needs to have funds on the hub first to be able to fulfill incoming demand order _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -235,6 +245,9 @@ func TestEIBCFulfillAlreadyFulfilledDemand_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -257,8 +270,7 @@ func TestEIBCFulfillAlreadyFulfilledDemand_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) - rollappHeight, err = rollapp1.GetNode().Height(ctx) - require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, dymensionUserAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of dymensionUserAddr right after sending eIBC transfer from rollapp 1 to dym hub:", balance) @@ -309,11 +321,17 @@ func TestEIBCFulfillAlreadyFulfilledDemand_EVM(t *testing.T) { fmt.Println("Balance of dymensionUserAddr after fulfilling the order:", balance) require.True(t, balance.Equal(transferAmountWithoutFee.Add(transferAmount.Sub(bridgingFee)).Sub(bridgingFee)), fmt.Sprintf("Value mismatch. Expected %s, actual %s", transferAmountWithoutFee.Add(transferAmount.Sub(bridgingFee)).Sub(bridgingFee), balance)) + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + // wait until packet finalization and verify funds + fee were added to market maker's wallet address isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 200) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -521,6 +539,9 @@ func TestEIBCAlreadyFulfilledDemand_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -529,6 +550,9 @@ func TestEIBCAlreadyFulfilledDemand_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -546,6 +570,10 @@ func TestEIBCAlreadyFulfilledDemand_Wasm(t *testing.T) { // market maker needs to have funds on the hub first to be able to fulfill incoming demand order _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -554,6 +582,9 @@ func TestEIBCAlreadyFulfilledDemand_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -635,6 +666,9 @@ func TestEIBCAlreadyFulfilledDemand_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after packet finalization:", balance) @@ -852,6 +886,10 @@ func TestEIBCUnallowedSigner_EVM(t *testing.T) { // market maker needs to have funds on the hub first to be able to fulfill incoming demand order _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -860,6 +898,9 @@ func TestEIBCUnallowedSigner_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1116,6 +1157,10 @@ func TestEIBCUnallowedSigner_Wasm(t *testing.T) { // market maker needs to have funds on the hub first to be able to fulfill incoming demand order _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1124,6 +1169,9 @@ func TestEIBCUnallowedSigner_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/eibc_fee_test.go b/tests/eibc_fee_test.go index 8d2cb5d5..b725ddd4 100644 --- a/tests/eibc_fee_test.go +++ b/tests/eibc_fee_test.go @@ -165,6 +165,9 @@ func TestEIBCFeeTooHigh_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.Counterparty.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -176,6 +179,9 @@ func TestEIBCFeeTooHigh_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -213,6 +219,9 @@ func TestEIBCFeeTooHigh_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/eibc_feemarket_test.go b/tests/eibc_feemarket_test.go index 498e0da1..b491ad42 100644 --- a/tests/eibc_feemarket_test.go +++ b/tests/eibc_feemarket_test.go @@ -209,6 +209,9 @@ func TestEIBC_Fee_Market_Success_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].Counterparty.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -220,6 +223,9 @@ func TestEIBC_Fee_Market_Success_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -292,6 +298,9 @@ func TestEIBC_Fee_Market_Success_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // verify funds were deducted from market maker's wallet address balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) @@ -515,6 +524,9 @@ func TestEIBC_Fee_Market_Success_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -523,6 +535,9 @@ func TestEIBC_Fee_Market_Success_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -552,9 +567,6 @@ func TestEIBC_Fee_Market_Success_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollappUserAddr, transferData, options) require.NoError(t, err) - rollappHeight, err = rollapp1.GetNode().Height(ctx) - require.NoError(t, err) - balance, err = dymension.GetBalance(ctx, dymensionUserAddr, rollappIBCDenom) require.NoError(t, err) @@ -594,10 +606,16 @@ func TestEIBC_Fee_Market_Success_Wasm(t *testing.T) { require.True(t, balance.Equal(transferAmountWithoutFee.Sub(bridgingFee).Sub(eibcFee)), fmt.Sprintf("Value mismatch. Expected %s, actual %s", transferAmountWithoutFee.Sub(bridgingFee).Sub(eibcFee), balance)) // wait until packet finalization and verify funds + fee were added to market maker's wallet address + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -811,6 +829,9 @@ func TestEIBC_Fee_Market_Auto_Created_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].Counterparty.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -822,6 +843,9 @@ func TestEIBC_Fee_Market_Auto_Created_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -891,6 +915,9 @@ func TestEIBC_Fee_Market_Auto_Created_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after fulfilling the order:", balance) @@ -1114,6 +1141,9 @@ func TestEIBC_Fee_Market_Auto_Created_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1122,6 +1152,9 @@ func TestEIBC_Fee_Market_Auto_Created_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1190,6 +1223,9 @@ func TestEIBC_Fee_Market_Auto_Created_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after packet finalization:", balance) @@ -1352,6 +1388,9 @@ func TestEIBCUpdateOnAckErrAndTimeout_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1363,6 +1402,9 @@ func TestEIBCUpdateOnAckErrAndTimeout_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 50, dymension, rollapp1) require.NoError(t, err) @@ -1603,6 +1645,9 @@ func TestEIBCUpdateOnAckErrAndTimeout_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1614,6 +1659,9 @@ func TestEIBCUpdateOnAckErrAndTimeout_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension, rollapp1) require.NoError(t, err) @@ -1695,6 +1743,9 @@ func TestEIBCUpdateOnAckErrAndTimeout_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1860,6 +1911,9 @@ func TestEIBCUpdateOnTimeout_Unallowed_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1871,6 +1925,9 @@ func TestEIBCUpdateOnTimeout_Unallowed_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -2085,6 +2142,9 @@ func TestEIBCUpdateOnTimeout_Unallowed_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2096,6 +2156,9 @@ func TestEIBCUpdateOnTimeout_Unallowed_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 50, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/eibc_fulfillment_test.go b/tests/eibc_fulfillment_test.go index 7d50e30c..cedc374f 100644 --- a/tests/eibc_fulfillment_test.go +++ b/tests/eibc_fulfillment_test.go @@ -234,10 +234,10 @@ func TestEIBCFulfillOnOneRollApp_EVM(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, dymChannel_ra2[0].ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) - rollappHeight, err := rollapp1.GetNode().Height(ctx) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) - rollapp2Height, err := rollapp2.GetNode().Height(ctx) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) // wait until the packet is finalized @@ -245,10 +245,19 @@ func TestEIBCFulfillOnOneRollApp_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + rollapp2Height, err := rollapp2.GetNode().Height(ctx) + require.NoError(t, err) + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp2.GetChainID(), rollapp2Height, 300) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -270,6 +279,10 @@ func TestEIBCFulfillOnOneRollApp_EVM(t *testing.T) { // market maker needs to have funds on the hub first to be able to fulfill incoming demand order _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -278,6 +291,9 @@ func TestEIBCFulfillOnOneRollApp_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -313,8 +329,7 @@ func TestEIBCFulfillOnOneRollApp_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) - rollappHeight, err = rollapp1.GetNode().Height(ctx) - require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, dymensionUserAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of dymensionUserAddr right after sending eIBC transfer from rollapp 1 to dym hub:", balance) @@ -364,6 +379,20 @@ func TestEIBCFulfillOnOneRollApp_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + rollappHeight, err = rollapp2.GetNode().Height(ctx) + require.NoError(t, err) + + // wait until the packet is finalized on Rollapps + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp2.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // verify correct funds were deducted from market maker's wallet address balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) @@ -618,6 +647,9 @@ func TestEIBCFulfillOnOneRollApp_Wasm(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, dymChannel_ra2[0].ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -633,6 +665,12 @@ func TestEIBCFulfillOnOneRollApp_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -654,6 +692,10 @@ func TestEIBCFulfillOnOneRollApp_Wasm(t *testing.T) { // market maker needs to have funds on the hub first to be able to fulfill incoming demand order _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -662,6 +704,9 @@ func TestEIBCFulfillOnOneRollApp_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -697,8 +742,7 @@ func TestEIBCFulfillOnOneRollApp_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferDataRollapp1, options) require.NoError(t, err) - rollappHeight, err = rollapp1.GetNode().Height(ctx) - require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, dymensionUserAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of dymensionUserAddr right after sending eIBC transfer:", balance) @@ -746,10 +790,16 @@ func TestEIBCFulfillOnOneRollApp_Wasm(t *testing.T) { require.True(t, balance.Equal(expMmBalanceRollappDenom), fmt.Sprintf("Value mismatch. Expected %s, actual %s", expMmBalanceRollappDenom, balance)) // wait until packet finalization and verify funds + fee were added to market maker's wallet address + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 200) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -761,8 +811,19 @@ func TestEIBCFulfillOnOneRollApp_Wasm(t *testing.T) { require.True(t, balance.Equal(expMmBalanceRollappDenom), fmt.Sprintf("Value mismatch. Expected %s, actual %s", expMmBalanceRollappDenom, balance)) // user should have received funds upon grace period of IBC packet from rollapp 2 - err = testutil.WaitForBlocks(ctx, 30, rollapp2) + rollappHeight, err = rollapp2.GetNode().Height(ctx) + require.NoError(t, err) + + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp2.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, dymensionUserAddr, rollapp2IBCDenom) require.NoError(t, err) fmt.Println("Balance of dymensionUserAddr for rollapp 2 ibc denom after grace period:", balance) @@ -989,6 +1050,9 @@ func TestEIBCFulfillment_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].Counterparty.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1000,6 +1064,9 @@ func TestEIBCFulfillment_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension, rollapp1) require.NoError(t, err) @@ -1066,6 +1133,9 @@ func TestEIBCFulfillment_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after fulfilling the order:", balance) @@ -1289,6 +1359,9 @@ func TestEIBCFulfillment_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1297,6 +1370,9 @@ func TestEIBCFulfillment_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1364,6 +1440,9 @@ func TestEIBCFulfillment_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after packet finalization:", balance) @@ -1599,6 +1678,9 @@ func TestEIBCFulfillment_two_rollapps_EVM(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, dymChannel_ra2[0].ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1614,6 +1696,11 @@ func TestEIBCFulfillment_two_rollapps_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1709,7 +1796,6 @@ func TestEIBCFulfillment_two_rollapps_EVM(t *testing.T) { require.True(t, balance.Equal(transferAmountWithoutFee.Sub(bridgingFee)), fmt.Sprintf("Value mismatch. Expected %s, actual %s", transferAmountWithoutFee.Sub(bridgingFee), balance)) // verify funds were deducted from market maker's wallet address - rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1718,6 +1804,20 @@ func TestEIBCFulfillment_two_rollapps_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + rollapp2Height, err = rollapp2.GetNode().Height(ctx) + require.NoError(t, err) + + // wait until the packet is finalized + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp2.GetChainID(), rollapp2Height, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after fulfilling the order:", balance) @@ -1998,6 +2098,9 @@ func TestEIBCFulfillment_ThirdParty_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2006,6 +2109,9 @@ func TestEIBCFulfillment_ThirdParty_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -2061,6 +2167,9 @@ func TestEIBCFulfillment_ThirdParty_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, options) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2069,6 +2178,9 @@ func TestEIBCFulfillment_ThirdParty_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -2090,9 +2202,6 @@ func TestEIBCFulfillment_ThirdParty_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, options) require.NoError(t, err) - rollappHeight, err = rollapp1.GetNode().Height(ctx) - require.NoError(t, err) - // get eIbc event eibcEvents, err := getEIbcEventsWithinBlockRange(ctx, dymension, 10, false) require.NoError(t, err) @@ -2117,11 +2226,17 @@ func TestEIBCFulfillment_ThirdParty_EVM(t *testing.T) { fmt.Println("Balance of dymensionUserAddr after fulfilling the order:", balance) require.True(t, balance.Equal(transferAmountWithoutFee.Sub(bridgingFee)), fmt.Sprintf("Value mismatch. Expected %s, actual %s", transferAmountWithoutFee.Sub(bridgingFee), balance)) + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + // wait until packet finalization and verify funds + fee were added to market maker's wallet address isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -2397,6 +2512,9 @@ func TestEIBCFulfillment_ThirdParty_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2405,6 +2523,9 @@ func TestEIBCFulfillment_ThirdParty_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -2460,6 +2581,9 @@ func TestEIBCFulfillment_ThirdParty_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollapp1UserAddr, transferData, options) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2468,6 +2592,9 @@ func TestEIBCFulfillment_ThirdParty_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -2522,6 +2649,9 @@ func TestEIBCFulfillment_ThirdParty_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, gaiaIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after packet finalization:", balance) @@ -2756,6 +2886,9 @@ func TestEIBCFulfillment_ignore_hub_to_RA_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2764,6 +2897,9 @@ func TestEIBCFulfillment_ignore_hub_to_RA_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -3007,6 +3143,9 @@ func TestEIBCFulfillment_ignore_hub_to_RA_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel_ra1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -3016,6 +3155,9 @@ func TestEIBCFulfillment_ignore_hub_to_RA_Wasm(t *testing.T) { require.True(t, isFinalized) // end of preconditions + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/eibc_invariant_test.go b/tests/eibc_invariant_test.go index 7e9242bd..f53c1837 100644 --- a/tests/eibc_invariant_test.go +++ b/tests/eibc_invariant_test.go @@ -198,6 +198,10 @@ func TestEIBCInvariant_EVM(t *testing.T) { // this `normal`` transfer also enable ibc transfer _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollappUserAddr, transferData, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -206,6 +210,9 @@ func TestEIBCInvariant_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension) require.NoError(t, err) @@ -232,9 +239,6 @@ func TestEIBCInvariant_EVM(t *testing.T) { require.NoError(t, err) } - rollappHeight, err = rollapp1.GetNode().Height(ctx) - require.NoError(t, err) - balance, err = dymension.GetBalance(ctx, dymensionUserAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of dymensionUserAddr right after sending eIBC transfer:", balance) @@ -280,11 +284,18 @@ func TestEIBCInvariant_EVM(t *testing.T) { fmt.Println("Balance of marketMakerAddr after fulfilling the order:", balance) expMmBalanceRollappDenom = expMmBalanceRollappDenom.Sub(transferAmountWithoutFee.MulRaw(2)).Add(bridgingFee.MulRaw(2)) require.True(t, balance.Equal(expMmBalanceRollappDenom), fmt.Sprintf("Value mismatch. Expected %s, actual %s", expMmBalanceRollappDenom, balance)) + // wait until packet finalization and verify funds + fee were added to market maker's wallet address + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -556,6 +567,10 @@ func TestEIBCInvariant_Wasm(t *testing.T) { // market maker needs to have funds on the hub first to be able to fulfill upcoming demand order _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollappUserAddr, transferData, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -564,6 +579,9 @@ func TestEIBCInvariant_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -633,6 +651,9 @@ func TestEIBCInvariant_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, rollappIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after packet finalization:", balance) diff --git a/tests/eibc_nobalance_test.go b/tests/eibc_nobalance_test.go index 3e5f2a22..0b6f818a 100644 --- a/tests/eibc_nobalance_test.go +++ b/tests/eibc_nobalance_test.go @@ -203,6 +203,9 @@ func TestEIBCNoBalanceToFulfillOrder_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // verify funds were transferred to dymensionUserAddr testutil.AssertBalance(t, ctx, dymension, marketMakerAddr, rollappIBCDenom, zeroBal) // Minus 0.1% of transfer amount for bridge fee diff --git a/tests/eibc_not_fulfillment_test.go b/tests/eibc_not_fulfillment_test.go index 09ce6bba..9144e1bd 100644 --- a/tests/eibc_not_fulfillment_test.go +++ b/tests/eibc_not_fulfillment_test.go @@ -221,6 +221,9 @@ func TestEIBCNotFulfillment_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -232,6 +235,9 @@ func TestEIBCNotFulfillment_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension, rollapp1) require.NoError(t, err) @@ -279,6 +285,9 @@ func TestEIBCNotFulfillment_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, dymensionUserAddr, rollappIBCDenom) require.NoError(t, err) @@ -497,6 +506,9 @@ func TestEIBCNotFulfillment_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1[0].ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -508,6 +520,9 @@ func TestEIBCNotFulfillment_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension, rollapp1) require.NoError(t, err) @@ -558,6 +573,9 @@ func TestEIBCNotFulfillment_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, dymensionUserAddr, rollappIBCDenom) require.NoError(t, err) diff --git a/tests/eibc_pfm_test.go b/tests/eibc_pfm_test.go index 5b47fdde..c4720267 100644 --- a/tests/eibc_pfm_test.go +++ b/tests/eibc_pfm_test.go @@ -268,13 +268,20 @@ func TestEIBCPFM_EVM(t *testing.T) { rollapp1Height, err := rollapp1.Height(ctx) require.NoError(t, err) + ack, err := testutil.PollForAck(ctx, rollapp1, rollapp1Height, rollapp1Height+30, tx.Packet) require.NoError(t, err) + rollapp1Height, err = rollapp1.Height(ctx) + require.NoError(t, err) + isFinalized, err := dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollapp1Height, 300) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollapp1Height)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -544,13 +551,20 @@ func TestEIBCPFM_Wasm(t *testing.T) { rollapp1Height, err := rollapp1.Height(ctx) require.NoError(t, err) + ack, err := testutil.PollForAck(ctx, rollapp1, rollapp1Height, rollapp1Height+30, tx.Packet) require.NoError(t, err) + rollapp1Height, err = rollapp1.Height(ctx) + require.NoError(t, err) + isFinalized, err := dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollapp1Height, 300) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollapp1Height)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/eibc_timeout_test.go b/tests/eibc_timeout_test.go index 659700af..44b1adef 100644 --- a/tests/eibc_timeout_test.go +++ b/tests/eibc_timeout_test.go @@ -166,6 +166,9 @@ func TestEIBCTimeoutDymToRollapp_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -177,6 +180,9 @@ func TestEIBCTimeoutDymToRollapp_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 50, dymension, rollapp1) require.NoError(t, err) @@ -246,6 +252,9 @@ func TestEIBCTimeoutDymToRollapp_EVM(t *testing.T) { require.True(t, balance.Equal(expBalance), fmt.Sprintf("Value mismatch. Expected %s, actual %s", expBalance, balance)) // wait until packet finalization and verify funds (incl. fee) were added to market maker's wallet address + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -253,6 +262,12 @@ func TestEIBCTimeoutDymToRollapp_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, dymension.Config().Denom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after packet finalization:", balance) @@ -526,6 +541,9 @@ func TestEIBCTimeoutFulFillDymToRollapp_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, rollappDymChan.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -537,6 +555,9 @@ func TestEIBCTimeoutFulFillDymToRollapp_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -627,6 +648,9 @@ func TestEIBCTimeoutFulFillDymToRollapp_EVM(t *testing.T) { require.True(t, balance.Equal(expBalance), fmt.Sprintf("Value mismatch. Expected %s, actual %s", expBalance, balance)) // wait until packet finalization and verify funds (incl. fee) were added to market maker's wallet address + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -634,6 +658,12 @@ func TestEIBCTimeoutFulFillDymToRollapp_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, gaiaIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after packet finalization:", balance) @@ -922,6 +952,9 @@ func TestEIBCTimeoutFulFillDymToRollapp_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, rollappDymChan.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -933,6 +966,9 @@ func TestEIBCTimeoutFulFillDymToRollapp_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + gaiaToDymTransferData := ibc.WalletData{ Address: dymensionUserAddr, Denom: gaia.Config().Denom, @@ -1017,6 +1053,12 @@ func TestEIBCTimeoutFulFillDymToRollapp_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 5, dymension) + require.NoError(t, err) + balance, err = dymension.GetBalance(ctx, marketMakerAddr, gaiaIBCDenom) require.NoError(t, err) fmt.Println("Balance of marketMakerAddr after packet finalization:", balance) diff --git a/tests/erc20_ibc_transfer_test.go b/tests/erc20_ibc_transfer_test.go index 3352b50f..ca485a00 100644 --- a/tests/erc20_ibc_transfer_test.go +++ b/tests/erc20_ibc_transfer_test.go @@ -168,9 +168,6 @@ func TestERC20HubToRollAppWithoutRegister_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) - rollappHeight, err := rollapp1.GetNode().Height(ctx) - require.NoError(t, err) - // get eIbc event eibcEvents, err := getEIbcEventsWithinBlockRange(ctx, dymension, 10, false) require.NoError(t, err) @@ -183,11 +180,17 @@ func TestERC20HubToRollAppWithoutRegister_EVM(t *testing.T) { // Assert balance was updated on the hub testutil.AssertBalance(t, ctx, rollapp1, rollappUserAddr, rollapp1.Config().Denom, walletAmount.Sub(transferData.Amount)) + rollappHeight, err := rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + // wait until the packet is finalized isFinalized, err := dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + transferData = ibc.WalletData{ Address: rollappUserAddr, Denom: dymension.Config().Denom, @@ -388,6 +391,9 @@ func TestERC20RollAppToHubWithRegister_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -399,6 +405,9 @@ func TestERC20RollAppToHubWithRegister_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -502,6 +511,10 @@ func TestERC20RollAppToHubWithRegister_EVM(t *testing.T) { // Compose an IBC transfer and send from rollapp -> Hub _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) testutil.AssertBalance(t, ctx, rollapp1, rollappUserAddr, dymensionIBCDenom, zeroBal) @@ -511,6 +524,9 @@ func TestERC20RollAppToHubWithRegister_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/frozen_test.go b/tests/frozen_test.go index de3fb5a6..af80d7a1 100644 --- a/tests/frozen_test.go +++ b/tests/frozen_test.go @@ -252,6 +252,9 @@ func TestRollAppFreeze_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -263,6 +266,9 @@ func TestRollAppFreeze_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + oldLatestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) require.NoError(t, err) @@ -355,8 +361,8 @@ func TestRollAppFreeze_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) - // Wait a few blocks - err = testutil.WaitForBlocks(ctx, 20, dymension) + err = testutil.WaitForBlocks(ctx, 30, dymension) + require.NoError(t, err) // Get updated dym hub ibc denom balance dymUserUpdateBal, err := dymension.GetBalance(ctx, dymensionUserAddr, rollapp1IbcDenom) @@ -601,6 +607,9 @@ func TestRollAppFreeze_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -612,6 +621,9 @@ func TestRollAppFreeze_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + oldLatestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) require.NoError(t, err) @@ -726,6 +738,9 @@ func TestRollAppFreeze_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + // Wait a few blocks err = testutil.WaitForBlocks(ctx, 20, dymension) @@ -988,6 +1003,9 @@ func TestOtherRollappNotAffected_EVM(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channsRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1003,6 +1021,11 @@ func TestOtherRollappNotAffected_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + oldLatestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) require.NoError(t, err) @@ -1153,6 +1176,8 @@ func TestOtherRollappNotAffected_EVM(t *testing.T) { require.NoError(t, err) require.NotEmpty(t, tx.TxHash, "tx is nil") + testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) + rollappHeight, err = rollapp2.Height(ctx) require.NoError(t, err) @@ -1161,6 +1186,11 @@ func TestOtherRollappNotAffected_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + + testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) + // Get updated dym hub ibc denom balance dymUserUpdateBal2, err := dymension.GetBalance(ctx, dymensionUserAddr, rollapp2IbcDenom) require.NoError(t, err) @@ -1428,6 +1458,9 @@ func TestOtherRollappNotAffected_Wasm(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channsRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1443,6 +1476,12 @@ func TestOtherRollappNotAffected_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + oldLatestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) require.NoError(t, err) @@ -1594,6 +1633,8 @@ func TestOtherRollappNotAffected_Wasm(t *testing.T) { require.NoError(t, err) require.NotEmpty(t, tx.TxHash, "tx is nil") + testutil.WaitForBlocks(ctx, 10, dymension) + rollapp2Height, err = rollapp2.Height(ctx) require.NoError(t, err) @@ -1602,6 +1643,9 @@ func TestOtherRollappNotAffected_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + // Get updated dym hub ibc denom balance dymUserUpdateBal2, err := dymension.GetBalance(ctx, dymensionUserAddr, rollapp2IbcDenom) require.NoError(t, err) @@ -1770,6 +1814,9 @@ func TestPacketRollbacked_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1778,6 +1825,9 @@ func TestPacketRollbacked_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Confirm previous ibc transfers were successful (dymension -> rollapp1) // Get the IBC denom rollapp1IbcDenom := GetIBCDenom(channsRollApp1Dym.Counterparty.PortID, channsRollApp1Dym.Counterparty.ChannelID, rollapp1.Config().Denom) @@ -1894,6 +1944,16 @@ func TestPacketRollbacked_EVM(t *testing.T) { _, err = dymension.SendIBCTransfer(ctx, channDymRollApp1.ChannelID, dymensionUserAddr, transferDataFromDym, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 600) + require.NoError(t, err) + require.True(t, isFinalized) + // Submit fraud proposal propTx, err := dymension.SubmitFraudProposal(ctx, dymensionUser.KeyName(), rollapp1.Config().ChainID, fraudHeight, sequencerAddr, rollapp1ClientOnDym, submitFraudStr, submitFraudStr, deposit) require.NoError(t, err) @@ -1910,7 +1970,12 @@ func TestPacketRollbacked_EVM(t *testing.T) { latestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) require.NoError(t, err) - testutil.WaitForBlocks(ctx, 50, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + // after Grace period, the latest index should be the same lalatestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) require.NoError(t, err) @@ -2106,6 +2171,9 @@ func TestPacketRollbacked_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2114,6 +2182,9 @@ func TestPacketRollbacked_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Confirm previous ibc transfers were successful (dymension -> rollapp1) // Get the IBC denom rollapp1IbcDenom := GetIBCDenom(channsRollApp1Dym.Counterparty.PortID, channsRollApp1Dym.Counterparty.ChannelID, rollapp1.Config().Denom) @@ -2229,6 +2300,16 @@ func TestPacketRollbacked_Wasm(t *testing.T) { _, err = dymension.SendIBCTransfer(ctx, channDymRollApp1.ChannelID, dymensionUserAddr, transferDataFromDym, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + // Submit fraud proposal propTx, err := dymension.SubmitFraudProposal(ctx, dymensionUser.KeyName(), rollapp1.Config().ChainID, fraudHeight, sequencerAddr, rollapp1ClientOnDym, submitFraudStr, submitFraudStr, deposit) require.NoError(t, err) @@ -2244,7 +2325,11 @@ func TestPacketRollbacked_Wasm(t *testing.T) { latestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) - testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension) + require.NoError(t, err) // after Grace period, the latest index should be the same lalatestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) @@ -2517,6 +2602,9 @@ func TestRollAppFreezeNoBrokenInvariants_EVM(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channsRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2532,6 +2620,12 @@ func TestRollAppFreezeNoBrokenInvariants_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + oldLatestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) require.NoError(t, err) @@ -2855,6 +2949,9 @@ func TestRollAppFreezeNoBrokenInvariants_Wasm(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channsRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -2870,6 +2967,12 @@ func TestRollAppFreezeNoBrokenInvariants_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + oldLatestIndex, err := dymension.GetNode().QueryLatestStateIndex(ctx, rollapp1.Config().ChainID) require.NoError(t, err) @@ -3195,6 +3298,9 @@ func TestRollAppSqcSlashedJailed_EVM(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channsRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -3210,6 +3316,12 @@ func TestRollAppSqcSlashedJailed_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + // Confirm previous ibc transfers were successful (dymension -> rollapp1) // Get the IBC denom rollapp1IbcDenom := GetIBCDenom(channsRollApp1Dym.Counterparty.PortID, channsRollApp1Dym.Counterparty.ChannelID, rollapp1.Config().Denom) @@ -3608,6 +3720,9 @@ func TestRollAppSqcSlashedJailed_Wasm(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channsRollApp2Dym.ChannelID, rollapp2UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -3623,6 +3738,11 @@ func TestRollAppSqcSlashedJailed_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) // Confirm previous ibc transfers were successful (dymension -> rollapp1) // Get the IBC denom rollapp1IbcDenom := GetIBCDenom(channsRollApp1Dym.Counterparty.PortID, channsRollApp1Dym.Counterparty.ChannelID, rollapp1.Config().Denom) @@ -3946,6 +4066,9 @@ func TestRollAppFreezeStateNotProgressing_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -3957,6 +4080,9 @@ func TestRollAppFreezeStateNotProgressing_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Confirm previous ibc transfers were successful (dymension -> rollapp1) // Get the IBC denom rollappIbcDenom := GetIBCDenom(channsRollApp1Dym.Counterparty.PortID, channsRollApp1Dym.Counterparty.ChannelID, rollapp1.Config().Denom) @@ -4269,6 +4395,9 @@ func TestRollAppFreezeStateNotProgressing_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -4280,6 +4409,9 @@ func TestRollAppFreezeStateNotProgressing_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Confirm previous ibc transfers were successful (dymension -> rollapp1) // Get the IBC denom rollappIbcDenom := GetIBCDenom(channsRollApp1Dym.Counterparty.PortID, channsRollApp1Dym.Counterparty.ChannelID, rollapp1.Config().Denom) @@ -4592,6 +4724,9 @@ func TestRollAppFreezeEibcPending_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -4603,6 +4738,9 @@ func TestRollAppFreezeEibcPending_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Confirm previous ibc transfers were successful (dymension -> rollapp1) // Get the IBC denom rollappIbcDenom := GetIBCDenom(channsRollApp1Dym.Counterparty.PortID, channsRollApp1Dym.Counterparty.ChannelID, rollapp1.Config().Denom) @@ -4750,7 +4888,7 @@ func TestRollAppFreezeEibcPending_EVM(t *testing.T) { // eibc demand order reverted resp, err = dymension.QueryEIBCDemandOrders(ctx, "REVERTED") require.NoError(t, err) - require.Equal(t, 1, len(resp.DemandOrders)) + require.Equal(t, 2, len(resp.DemandOrders)) // After rollapp frozen, inability to fulfill eIBC transfer rollappUserUpdateBal, err := rollapp1.GetBalance(ctx, rollapp1UserAddr, rollapp1.Config().Denom) @@ -4936,6 +5074,9 @@ func TestRollAppFreezeEibcPending_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -4947,6 +5088,9 @@ func TestRollAppFreezeEibcPending_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Confirm previous ibc transfers were successful (dymension -> rollapp1) // Get the IBC denom rollappIbcDenom := GetIBCDenom(channsRollApp1Dym.Counterparty.PortID, channsRollApp1Dym.Counterparty.ChannelID, rollapp1.Config().Denom) diff --git a/tests/fullnode_sync_gossip_test.go b/tests/fullnode_sync_gossip_test.go index 86c9533d..8d0db872 100644 --- a/tests/fullnode_sync_gossip_test.go +++ b/tests/fullnode_sync_gossip_test.go @@ -656,6 +656,8 @@ func TestSync_Celes_Rt_Gossip_Wasm(t *testing.T) { _ = rollapp1.FullNodes[0].StartContainer(ctx) + time.Sleep(30 * time.Second) + rollappHeight, err := rollapp1.Validators[0].Height(ctx) require.NoError(t, err) diff --git a/tests/hardfork_test.go b/tests/hardfork_test.go index bb6bffb3..50cbff00 100644 --- a/tests/hardfork_test.go +++ b/tests/hardfork_test.go @@ -193,6 +193,9 @@ func TestHardFork_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -204,6 +207,9 @@ func TestHardFork_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -727,6 +733,9 @@ func TestHardFork_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -738,6 +747,9 @@ func TestHardFork_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1256,6 +1268,9 @@ func TestHardForkRecoverIbcClient_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channsRollApp1Dym.ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1267,6 +1282,9 @@ func TestHardForkRecoverIbcClient_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/ibc_finalize_block_test.go b/tests/ibc_finalize_block_test.go index 90defd6b..69d5a22e 100644 --- a/tests/ibc_finalize_block_test.go +++ b/tests/ibc_finalize_block_test.go @@ -159,6 +159,9 @@ func TestDymFinalizeBlock_OnRecvPacket_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, rollappDymChannel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -170,6 +173,9 @@ func TestDymFinalizeBlock_OnRecvPacket_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Get the IBC denom dymensionTokenDenom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, dymension.Config().Denom) dymensionIBCDenom := transfertypes.ParseDenomTrace(dymensionTokenDenom).IBCDenom() @@ -194,7 +200,18 @@ func TestDymFinalizeBlock_OnRecvPacket_EVM(t *testing.T) { // Make sure that the ack contains error require.True(t, bytes.Contains(ack.Acknowledgement, []byte("error"))) - err = testutil.WaitForBlocks(ctx, 50, dymension, rollapp1) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + // wait until the packet is finalized + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) require.NoError(t, err) testutil.AssertBalance(t, ctx, dymension, dymensionUserAddr, dymension.Config().Denom, walletAmount) @@ -374,6 +391,9 @@ func TestDymFinalizeBlock_OnAckPacket_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel0.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -385,6 +405,9 @@ func TestDymFinalizeBlock_OnAckPacket_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + transferData = ibc.WalletData{ Address: rollappUserAddr, Denom: dymension.Config().Denom, @@ -547,6 +570,9 @@ func TestDymFinalizeBlock_OnTimeOutPacket_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, rollappDymchannel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -558,6 +584,9 @@ func TestDymFinalizeBlock_OnTimeOutPacket_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Get the IBC denom dymensionTokenDenom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, dymension.Config().Denom) dymensionIBCDenom := transfertypes.ParseDenomTrace(dymensionTokenDenom).IBCDenom() @@ -573,8 +602,6 @@ func TestDymFinalizeBlock_OnTimeOutPacket_EVM(t *testing.T) { // Compose an IBC transfer and send from rollapp -> dymension ibcTx, err := dymension.SendIBCTransfer(ctx, channel.ChannelID, dymensionUserAddr, transferData, ibc.TransferOptions{Timeout: testutil.ImmediatelyTimeout()}) require.NoError(t, err) - // Assert balance was updated on the rollapp - testutil.AssertBalance(t, ctx, dymension, dymensionUserAddr, dymension.Config().Denom, walletAmount.Sub(transferData.Amount)) got, err := testutil.PollForTimeout(ctx, dymension, dymensionHeight, dymensionHeight+30, ibcTx.Packet) require.NoError(t, err) @@ -582,7 +609,18 @@ func TestDymFinalizeBlock_OnTimeOutPacket_EVM(t *testing.T) { // Make sure that we got the packet timeout require.Equal(t, got.Packet.SourceChannel, channel.ChannelID) - err = testutil.WaitForBlocks(ctx, 50, dymension, rollapp1) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + // wait until the packet is finalized + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) require.NoError(t, err) testutil.AssertBalance(t, ctx, dymension, dymensionUserAddr, dymension.Config().Denom, walletAmount) @@ -738,6 +776,9 @@ func TestDymFinalizeBlock_OnRecvPacket_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, rollappDymChannel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -748,6 +789,10 @@ func TestDymFinalizeBlock_OnRecvPacket_Wasm(t *testing.T) { isFinalized, err := dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) require.NoError(t, err) require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Get the IBC denom dymensionTokenDenom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, dymension.Config().Denom) dymensionIBCDenom := transfertypes.ParseDenomTrace(dymensionTokenDenom).IBCDenom() @@ -773,7 +818,18 @@ func TestDymFinalizeBlock_OnRecvPacket_Wasm(t *testing.T) { // Make sure that the ack contains error require.True(t, bytes.Contains(ack.Acknowledgement, []byte("error"))) - err = testutil.WaitForBlocks(ctx, 50, dymension, rollapp1) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + // wait until the packet is finalized + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) require.NoError(t, err) testutil.AssertBalance(t, ctx, dymension, dymensionUserAddr, dymension.Config().Denom, walletAmount) @@ -953,6 +1009,9 @@ func TestDymFinalizeBlock_OnAckPacket_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel0.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -964,6 +1023,9 @@ func TestDymFinalizeBlock_OnAckPacket_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + transferData = ibc.WalletData{ Address: rollappUserAddr, Denom: dymension.Config().Denom, @@ -1124,6 +1186,9 @@ func TestDymFinalizeBlock_OnTimeOutPacket_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.Counterparty.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1134,6 +1199,10 @@ func TestDymFinalizeBlock_OnTimeOutPacket_Wasm(t *testing.T) { isFinalized, err := dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) require.NoError(t, err) require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Get the IBC denom dymensionTokenDenom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, dymension.Config().Denom) dymensionIBCDenom := transfertypes.ParseDenomTrace(dymensionTokenDenom).IBCDenom() @@ -1158,7 +1227,18 @@ func TestDymFinalizeBlock_OnTimeOutPacket_Wasm(t *testing.T) { // Make sure that we got the packet timeout require.Equal(t, got.Packet.SourceChannel, channel.ChannelID) - err = testutil.WaitForBlocks(ctx, 50, dymension, rollapp1) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) + + // wait until the packet is finalized + isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) + require.NoError(t, err) + require.True(t, isFinalized) + + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) require.NoError(t, err) testutil.AssertBalance(t, ctx, dymension, dymensionUserAddr, dymension.Config().Denom, walletAmount) diff --git a/tests/ibc_grace_period_test.go b/tests/ibc_grace_period_test.go index 4c773913..840bf4e9 100644 --- a/tests/ibc_grace_period_test.go +++ b/tests/ibc_grace_period_test.go @@ -210,6 +210,9 @@ func TestIBCGracePeriodCompliance_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -221,6 +224,9 @@ func TestIBCGracePeriodCompliance_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -262,6 +268,9 @@ func TestIBCGracePeriodCompliance_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -283,6 +292,9 @@ func TestIBCGracePeriodCompliance_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 40, dymension, rollapp1) require.NoError(t, err) @@ -507,6 +519,9 @@ func TestIBCGracePeriodCompliance_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -518,6 +533,9 @@ func TestIBCGracePeriodCompliance_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension, rollapp1) require.NoError(t, err) @@ -549,6 +567,9 @@ func TestIBCGracePeriodCompliance_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -570,6 +591,9 @@ func TestIBCGracePeriodCompliance_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension, rollapp1) require.NoError(t, err) @@ -827,6 +851,9 @@ func TestDelayedAck_NoFinalizedStates_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1055,6 +1082,9 @@ func TestDelayedAck_NoFinalizedStates_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1087,6 +1117,9 @@ func TestDelayedAck_NoFinalizedStates_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -1315,6 +1348,9 @@ func TestDelayedAck_RelayerDown_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1326,6 +1362,9 @@ func TestDelayedAck_RelayerDown_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension, rollapp1) require.NoError(t, err) @@ -1615,6 +1654,9 @@ func TestDelayedAck_RelayerDown_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, dymChannel[0].ChannelID, rollapp1UserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -1626,6 +1668,9 @@ func TestDelayedAck_RelayerDown_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 30, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/ibc_timeout_test.go b/tests/ibc_timeout_test.go index 02af8896..0a551d5b 100644 --- a/tests/ibc_timeout_test.go +++ b/tests/ibc_timeout_test.go @@ -163,6 +163,9 @@ func TestIBCTransferTimeout_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -174,6 +177,9 @@ func TestIBCTransferTimeout_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + transferData = ibc.WalletData{ Address: dymensionUserAddr, Denom: rollapp1.Config().Denom, @@ -190,17 +196,20 @@ func TestIBCTransferTimeout_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, options) require.NoError(t, err) - rollappHeight, err = rollapp1.GetNode().Height(ctx) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) - // Assert balance was updated on the rollapp - testutil.AssertBalance(t, ctx, rollapp1, rollappUserAddr, rollapp1.Config().Denom, walletAmount.Sub(transferData.Amount).Sub(transferData.Amount)) + rollappHeight, err = rollapp1.GetNode().Height(ctx) + require.NoError(t, err) // wait until the packet is finalized isFinalized, err = dymension.WaitUntilRollappHeightIsFinalized(ctx, rollapp1.GetChainID(), rollappHeight, 300) require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Get the IBC denom for urax on Hub rollappTokenDenom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, rollapp1.Config().Denom) rollappIBCDenom := transfertypes.ParseDenomTrace(rollappTokenDenom).IBCDenom() @@ -233,6 +242,9 @@ func TestIBCTransferTimeout_EVM(t *testing.T) { // According to delayedack module, we need the rollapp to have finalizedHeight > ibcClientLatestHeight // in order to trigger ibc timeout or else it will trigger callback + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -241,6 +253,12 @@ func TestIBCTransferTimeout_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + // Assert funds were returned to the sender after the timeout has occured testutil.AssertBalance(t, ctx, rollapp1, rollappUserAddr, dymensionIBCDenom, zeroBal) testutil.AssertBalance(t, ctx, dymension, dymensionUserAddr, dymension.Config().Denom, walletAmount) @@ -401,6 +419,9 @@ func TestIBCTransferTimeout_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -412,6 +433,9 @@ func TestIBCTransferTimeout_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + transferData = ibc.WalletData{ Address: dymensionUserAddr, Denom: rollapp1.Config().Denom, @@ -430,6 +454,9 @@ func TestIBCTransferTimeout_Wasm(t *testing.T) { // Assert balance was updated on the rollapp testutil.AssertBalance(t, ctx, rollapp1, rollappUserAddr, rollapp1.Config().Denom, walletAmount.Sub(transferData.Amount).Sub(transferData.Amount)) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -438,6 +465,9 @@ func TestIBCTransferTimeout_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Get the IBC denom for urax on Hub rollappTokenDenom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, rollapp1.Config().Denom) rollappIBCDenom := transfertypes.ParseDenomTrace(rollappTokenDenom).IBCDenom() @@ -470,6 +500,9 @@ func TestIBCTransferTimeout_Wasm(t *testing.T) { // According to delayedack module, we need the rollapp to have finalizedHeight > ibcClientLatestHeight // in order to trigger ibc timeout or else it will trigger callback + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -478,6 +511,12 @@ func TestIBCTransferTimeout_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + // Assert funds were returned to the sender after the timeout has occured testutil.AssertBalance(t, ctx, rollapp1, rollappUserAddr, dymensionIBCDenom, zeroBal) testutil.AssertBalance(t, ctx, dymension, dymensionUserAddr, dymension.Config().Denom, walletAmount) diff --git a/tests/ibc_transfer_test.go b/tests/ibc_transfer_test.go index 6492abf1..c0a89679 100644 --- a/tests/ibc_transfer_test.go +++ b/tests/ibc_transfer_test.go @@ -226,6 +226,9 @@ func TestIBCTransferSuccess_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -237,7 +240,12 @@ func TestIBCTransferSuccess_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + txhash, err := dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + + fmt.Println(txhash) + + err = testutil.WaitForBlocks(ctx, 5, dymension, rollapp1) require.NoError(t, err) // Get the IBC denom for urax on Hub @@ -407,6 +415,9 @@ func TestIBCTransferSuccess_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -418,6 +429,9 @@ func TestIBCTransferSuccess_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -582,6 +596,9 @@ func TestGenesisIBCTransferReservedMemo_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -593,6 +610,9 @@ func TestGenesisIBCTransferReservedMemo_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -609,6 +629,9 @@ func TestGenesisIBCTransferReservedMemo_EVM(t *testing.T) { }) require.ErrorContains(t, err, "cannot use transfer genesis memo: unauthorized") + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -617,6 +640,9 @@ func TestGenesisIBCTransferReservedMemo_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -750,6 +776,9 @@ func TestGenesisIBCTransferReservedMemo_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -761,6 +790,9 @@ func TestGenesisIBCTransferReservedMemo_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -777,6 +809,9 @@ func TestGenesisIBCTransferReservedMemo_Wasm(t *testing.T) { }) require.ErrorContains(t, err, "cannot use transfer genesis memo: unauthorized") + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -785,6 +820,9 @@ func TestGenesisIBCTransferReservedMemo_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/rollapp_upgrade_test.go b/tests/rollapp_upgrade_test.go index acc8f811..d425d6ba 100644 --- a/tests/rollapp_upgrade_test.go +++ b/tests/rollapp_upgrade_test.go @@ -152,6 +152,9 @@ func TestRollappUpgradeNonStateBreaking_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -163,6 +166,9 @@ func TestRollappUpgradeNonStateBreaking_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Switch to a new binary err = rollapp1.StopAllNodes(ctx) require.NoError(t, err, "error stopping node(s)") @@ -206,6 +212,9 @@ func TestRollappUpgradeNonStateBreaking_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -217,6 +226,9 @@ func TestRollappUpgradeNonStateBreaking_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -364,6 +376,9 @@ func TestRollappUpgradeNonStateBreaking_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -375,6 +390,9 @@ func TestRollappUpgradeNonStateBreaking_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Switch to a new binary err = rollapp1.StopAllNodes(ctx) require.NoError(t, err, "error stopping node(s)") @@ -400,6 +418,9 @@ func TestRollappUpgradeNonStateBreaking_Wasm(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -411,6 +432,9 @@ func TestRollappUpgradeNonStateBreaking_Wasm(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -678,6 +702,9 @@ func TestRollapp_EVM_Upgrade(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -692,6 +719,9 @@ func TestRollapp_EVM_Upgrade(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -936,6 +966,9 @@ func TestRollapp_Wasm_Upgrade(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -950,6 +983,9 @@ func TestRollapp_Wasm_Upgrade(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) diff --git a/tests/sequencer_rotation_test.go b/tests/sequencer_rotation_test.go index db703cb9..a2cc4eb5 100644 --- a/tests/sequencer_rotation_test.go +++ b/tests/sequencer_rotation_test.go @@ -147,6 +147,9 @@ func Test_SeqRotation_NoSeq_DA_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollappHeight, err := rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -158,6 +161,9 @@ func Test_SeqRotation_NoSeq_DA_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Get the IBC denom for urax on Hub rollappTokenDenom := transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, rollapp1.Config().Denom) rollappIBCDenom := transfertypes.ParseDenomTrace(rollappTokenDenom).IBCDenom() @@ -257,6 +263,9 @@ func Test_SeqRotation_NoSeq_DA_EVM(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channel.ChannelID, rollappUserAddr, transferData, ibc.TransferOptions{}) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + // Check IBC after switch rollappHeight, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -269,6 +278,9 @@ func Test_SeqRotation_NoSeq_DA_EVM(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUserAddr, rollapp1.GetChainID(), fmt.Sprint(rollappHeight)) + require.NoError(t, err) + // Get the IBC denom for urax on Hub rollappTokenDenom = transfertypes.GetPrefixedDenom(channel.Counterparty.PortID, channel.Counterparty.ChannelID, rollapp1.Config().Denom) rollappIBCDenom = transfertypes.ParseDenomTrace(rollappTokenDenom).IBCDenom() diff --git a/tests/upgrade_hub_test.go b/tests/upgrade_hub_test.go index 638ef388..34d2cb32 100644 --- a/tests/upgrade_hub_test.go +++ b/tests/upgrade_hub_test.go @@ -389,6 +389,10 @@ func TestHubUpgrade(t *testing.T) { } _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollappUser1Addr, transferData, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollapp1Height, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) @@ -397,6 +401,9 @@ func TestHubUpgrade(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUser1Addr, rollapp1.GetChainID(), fmt.Sprint(rollapp1Height)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -415,6 +422,9 @@ func TestHubUpgrade(t *testing.T) { _, err = rollapp1.SendIBCTransfer(ctx, channRollApp1Dym.ChannelID, rollappUser1Addr, transferData, options) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + require.NoError(t, err) + rollapp1Height, err = rollapp1.GetNode().Height(ctx) require.NoError(t, err) zeroBalance := math.NewInt(0) @@ -457,6 +467,9 @@ func TestHubUpgrade(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUser1Addr, rollapp1.GetChainID(), fmt.Sprint(rollapp1Height)) + require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) require.NoError(t, err) @@ -512,6 +525,10 @@ func TestHubUpgrade(t *testing.T) { } _, err = rollapp2.SendIBCTransfer(ctx, channRollApp2Dym.ChannelID, rollappUser2Addr, transferData, options) require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) + require.NoError(t, err) + rollapp2Height, err = rollapp2.GetNode().Height(ctx) require.NoError(t, err) @@ -520,7 +537,10 @@ func TestHubUpgrade(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, marketMaker2Addr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) require.NoError(t, err) expMmBalanceRollapp2Denom := transferData.Amount @@ -538,6 +558,9 @@ func TestHubUpgrade(t *testing.T) { _, err = rollapp2.SendIBCTransfer(ctx, channRollApp2Dym.ChannelID, rollappUser2Addr, transferData, options) require.NoError(t, err) + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) + require.NoError(t, err) + rollapp2Height, err = rollapp2.GetNode().Height(ctx) require.NoError(t, err) balance, err = dymension.GetBalance(ctx, dymensionUser2Addr, rollapp2IBCDenom) @@ -579,7 +602,10 @@ func TestHubUpgrade(t *testing.T) { require.NoError(t, err) require.True(t, isFinalized) - err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp1) + _, err = dymension.GetNode().FinalizePacketsUntilHeight(ctx, dymensionUser2Addr, rollapp2.GetChainID(), fmt.Sprint(rollapp2Height)) + require.NoError(t, err) + + err = testutil.WaitForBlocks(ctx, 10, dymension, rollapp2) require.NoError(t, err) balance, err = dymension.GetBalance(ctx, marketMaker2Addr, rollapp2IBCDenom)