syntax = "proto3";

package ibc.applications.interchain_accounts.v1;

option go_package = "github.com/cosmos/ibc-go/v10/modules/apps/27-interchain-accounts/types";

import "cosmos_proto/cosmos.proto";
import "gogoproto/gogo.proto";
import "cosmos/auth/v1beta1/auth.proto";

// An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain
message InterchainAccount {
  option (gogoproto.goproto_getters)         = false;
  option (gogoproto.goproto_stringer)        = false;
  option (cosmos_proto.implements_interface) = "ibc.applications.interchain_accounts.v1.InterchainAccountI";

  cosmos.auth.v1beta1.BaseAccount base_account  = 1 [(gogoproto.embed) = true];
  string                          account_owner = 2;
}
