github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/ibc-go/modules/apps/27-interchain-accounts/host/keeper/account_test.go (about)

     1  package keeper_test
     2  
     3  import (
     4  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     5  	icatypes "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/27-interchain-accounts/types"
     6  	ibctesting "github.com/fibonacci-chain/fbc/libs/ibc-go/testing"
     7  )
     8  
     9  func (suite *KeeperTestSuite) TestRegisterInterchainAccount() {
    10  	suite.SetupTest()
    11  
    12  	path := NewICAPath(suite.chainA, suite.chainB)
    13  	suite.coordinator.SetupConnections(path)
    14  
    15  	// RegisterInterchainAccount
    16  	err := SetupICAPath(path, TestOwnerAddress)
    17  	suite.Require().NoError(err)
    18  
    19  	portID, err := icatypes.NewControllerPortID(TestOwnerAddress)
    20  	suite.Require().NoError(err)
    21  
    22  	// Get the address of the interchain account stored in state during handshake step
    23  	storedAddr, found := suite.chainB.GetSimApp().ICAHostKeeper.GetInterchainAccountAddress(suite.chainB.GetContext(), ibctesting.FirstConnectionID, portID)
    24  	suite.Require().True(found)
    25  
    26  	icaAddr, err := sdk.AccAddressFromBech32(storedAddr)
    27  	suite.Require().NoError(err)
    28  
    29  	// Check if account is created
    30  	interchainAccount := suite.chainB.GetSimApp().AccountKeeper.GetAccount(suite.chainB.GetContext(), icaAddr)
    31  	suite.Require().Equal(interchainAccount.GetAddress().String(), storedAddr)
    32  }