syntax = "proto3";

package ibc.applications.transfer.v1;

option go_package = "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types";

import "ibc/applications/transfer/v1/transfer.proto";
import "cosmos/base/v1beta1/coin.proto";
import "gogoproto/gogo.proto";

// GenesisState defines the ibc-transfer genesis state
message GenesisState {
  string              port_id      = 1 [(gogoproto.moretags) = "yaml:\"port_id\""];
  repeated DenomTrace denom_traces = 2 [
    (gogoproto.castrepeated) = "Traces",
    (gogoproto.nullable)     = false,
    (gogoproto.moretags)     = "yaml:\"denom_traces\""
  ];
  Params params = 3 [(gogoproto.nullable) = false];
  // total_escrowed contains the total amount of tokens escrowed
  // by the transfer module
  repeated cosmos.base.v1beta1.Coin total_escrowed = 4 [
    (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins",
    (gogoproto.nullable)     = false,
    (gogoproto.moretags)     = "yaml:\"total_escrowed\""
  ];
}