github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/icamauth/keeper/grpc_query.go (about) 1 package keeper 2 3 import ( 4 "context" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 icatypes "github.com/fibonacci-chain/fbc/libs/ibc-go/modules/apps/27-interchain-accounts/types" 8 "github.com/fibonacci-chain/fbc/x/icamauth/types" 9 "google.golang.org/grpc/codes" 10 "google.golang.org/grpc/status" 11 ) 12 13 // InterchainAccount implements the Query/InterchainAccount gRPC method 14 func (k Keeper) InterchainAccount(goCtx context.Context, req *types.QueryInterchainAccountRequest) (*types.QueryInterchainAccountResponse, error) { 15 ctx := sdk.UnwrapSDKContext(goCtx) 16 17 portID, err := icatypes.NewControllerPortID(req.Owner) 18 if err != nil { 19 return nil, status.Errorf(codes.InvalidArgument, "could not find account: %s", err) 20 } 21 22 addr, found := k.icaControllerKeeper.GetInterchainAccountAddress(ctx, req.ConnectionId, portID) 23 if !found { 24 return nil, status.Errorf(codes.NotFound, "no account found for portID %s", portID) 25 } 26 27 return types.NewQueryInterchainAccountResponse(addr), nil 28 }