From 92dc1093b3615d3bb626c5e9c8e896899e029060 Mon Sep 17 00:00:00 2001 From: hoangdv2429 Date: Mon, 9 Oct 2023 18:23:54 +0700 Subject: [PATCH] other cases --- x/interchainstaking/keeper/callbacks_test.go | 65 ++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/x/interchainstaking/keeper/callbacks_test.go b/x/interchainstaking/keeper/callbacks_test.go index c0d85d636..9784b3ac8 100644 --- a/x/interchainstaking/keeper/callbacks_test.go +++ b/x/interchainstaking/keeper/callbacks_test.go @@ -1708,6 +1708,71 @@ func (suite *KeeperTestSuite) TestDepositTxCallback() { // fail because of txHash mismatch with hash from tx Proof suite.Error(err) }) + suite.Run("Deposit transaction failed: nil or wrong bytes", func() { + suite.SetupTest() + suite.setupTestZones() + + // setup quicksilver test app + quicksilver := suite.GetQuicksilverApp(suite.chainA) + quicksilver.InterchainstakingKeeper.CallbackHandler().RegisterCallbacks() + + // get chainA context + ctx := suite.chainA.GetContext() + + // get zone chainB context + zone, _ := quicksilver.InterchainstakingKeeper.GetZone(ctx, suite.chainB.ChainID) + zone.DepositAddress.IncrementBalanceWaitgroup() + zone.WithdrawalAddress.IncrementBalanceWaitgroup() + quicksilver.InterchainstakingKeeper.SetZone(ctx, &zone) + + // construct request data using txHash + requestData := tx.GetTxRequest{ + // hash of tx in `txFixture` + Hash: "b1f1852d322328f6b8d8cacd180df2b1cbbd3dd64536c9ecbf1c896a15f6217a", + } + resDataBz, err := quicksilver.AppCodec().Marshal(&requestData) + suite.NoError(err) + + // initialize the callback + err = keeper.DepositTxCallback(quicksilver.InterchainstakingKeeper, ctx, []byte("testing"), icqtypes.Query{ChainId: suite.chainB.ChainID, Request: resDataBz}) + suite.Error(err) + }) + suite.Run("Deposit transaction failed: failed on query state", func() { + suite.SetupTest() + suite.setupTestZones() + + // setup quicksilver test app + quicksilver := suite.GetQuicksilverApp(suite.chainA) + quicksilver.InterchainstakingKeeper.CallbackHandler().RegisterCallbacks() + + // get chainA context + ctx := suite.chainA.GetContext() + + // get zone chainB context + zone, _ := quicksilver.InterchainstakingKeeper.GetZone(ctx, suite.chainB.ChainID) + zone.DepositAddress.IncrementBalanceWaitgroup() + zone.WithdrawalAddress.IncrementBalanceWaitgroup() + quicksilver.InterchainstakingKeeper.SetZone(ctx, &zone) + + // get the tx from fixture + txWithProofBz := decodeBase64NoErr(localDepositTxFixture) + txRes := icqtypes.GetTxWithProofResponse{} + err := quicksilver.InterchainQueryKeeper.IBCKeeper.Codec().Unmarshal(txWithProofBz, &txRes) + suite.NoError(err) + + // construct request data using txHash + requestData := tx.GetTxRequest{ + // hash of tx in `txFixture` + Hash: "b1f1852d322328f6b8d8cacd180df2b1cbbd3dd64536c9ecbf1c896a15f6217a", + } + resDataBz, err := quicksilver.AppCodec().Marshal(&requestData) + suite.NoError(err) + + // initialize the callback + err = keeper.DepositTxCallback(quicksilver.InterchainstakingKeeper, ctx, txWithProofBz, icqtypes.Query{ChainId: suite.chainB.ChainID, Request: resDataBz}) + // fail on query state + suite.Error(err) + }) } var localDepositTxFixture = `GsEDCiCFDDobCzFK2Vf0BXcgdEycLSdJL8IP7PEVWKelDQeJ3xL2AgrXAQrUAQocL2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZBKzAQotY29zbW9zMWEyemh0OHgyajBkcXZ1ZWpyOHB4cHU3ZHVlM3FtazQwbGdkeTNoEkFjb3Ntb3MxYXZ2ZWhmM25wdm42d2V5eHR2eXU3bWh3d3Zqcnl6dzY5ZzQzdHEwbmw4MHdxamdscjZoc2U1bWN6NBo/Cjdjb3Ntb3N2YWxvcGVyMWdnN3c4dzJ5OWpmdjc2YTJ5eWFoZTQyeTA5ZzlyeTJyYWE1cnFmLzE0EgQ1MDAwElgKUApGCh8vY29zbW9zLmNyeXB0by5zZWNwMjU2azEuUHViS2V5EiMKIQLaGco86x6BgxaGOBf/rgbHMEyZzECi+5in9DJ31ln/0BIECgIIARgoEgQQwJoMGkAtbKm5mTCs2SJzFZL5UKaFbKascEfSLtLFX4w9H/iLKXVqia/1REtynG8yLW374PPGFRplDo62C3SrhSBSLETgGiQIARoghQw6GwsxStlX9AV3IHRMnC0nSS/CD+zxFVinpQ0Hid8i2wYK0AQKkgMKAggLEgpnYWlhdGVzdC0xGJjdDiIMCPHf2agGEODypL8CKkgKIFvrRJTTqdEJ0eh/bm+bNFIMSX7ad1Uz9FX2u8acwNOAEiQIARIgqdknqwXY2NKl/r0A/JEd6hFCVr+E+xoDP5xqjTdMzkkyIFTqmUpOcyiALxE9GyyJ8B0qHyYAXdEyebrP+zlYCVe/OiCFDDobCzFK2Vf0BXcgdEycLSdJL8IP7PEVWKelDQeJ30IgLdUPCAh3Ii0/aGdGLRM24PsOqJJsvS6jPy3hstJUQ0RKIC3VDwgIdyItP2hnRi0TNuD7DqiSbL0uoz8t4bLSVENEUiAEgJG8fdwoP3e/v5HXPETaWMPfipy8hnQF2Lfz2q2iL1ogxyvS5b5sdsYoCMUEDDELSqvtajtVi8Tix+aShLESfBdiIOOwxEKY/BwUmvv0yJlvuSQnrkHkZJuTTKSVmRt4UrhVaiDjsMRCmPwcFJr79MiZb7kkJ65B5GSbk0yklZkbeFK4VXIUeQRs3t3nFppZq/OiJ+/f0AsW+twSuAEImN0OGkgKIOEOuKl3gvM4+gGbzlmy63IKY27HPnTJ6rszQyUuZAwPEiQIARIgiO0gt0gzcxTIEfFhpxf+XrKDoSnwZ9/HXl9XavCfS7UiaAgCEhR5BGze3ecWmlmr86In79/QCxb63BoMCPbf2agGEJiC0c0CIkBUNOaucBUZko0uikQApp2uWUJQ/zAtwTr5PRWlVS5/wFJYMGBSDNh5EEWY4FTclhTHLV2aMyyH5pfH6L0fr50CEn4KPQoUeQRs3t3nFppZq/OiJ+/f0AsW+twSIgogx4ew5LC25gOeUAdpun5LhBSfIBHUbK7Zjyzn8VRr1ZwYhCESPQoUeQRs3t3nFppZq/OiJ+/f0AsW+twSIgogx4ew5LC25gOeUAdpun5LhBSfIBHUbK7Zjyzn8VRr1ZwYhCEaBggBEKvdDiJ+Cj0KFHkEbN7d5xaaWavzoifv39ALFvrcEiIKIMeHsOSwtuYDnlAHabp+S4QUnyAR1Gyu2Y8s5/FUa9WcGIQhEj0KFHkEbN7d5xaaWavzoifv39ALFvrcEiIKIMeHsOSwtuYDnlAHabp+S4QUnyAR1Gyu2Y8s5/FUa9WcGIQh`