syntax = "proto3";
package osmosis.superfluid;

import "gogoproto/gogo.proto";
import "osmosis/superfluid/superfluid.proto";
import "osmosis/superfluid/params.proto";

option go_package = "github.com/osmosis-labs/osmosis/v13/x/superfluid/types";

// GenesisState defines the module's genesis state.
message GenesisState {
  Params params = 1 [ (gogoproto.nullable) = false ];
  // superfluid_assets defines the registered superfluid assets that have been
  // registered via governance.
  repeated SuperfluidAsset superfluid_assets = 2
      [ (gogoproto.nullable) = false ];
  // osmo_equivalent_multipliers is the records of osmo equivalent amount of
  // each superfluid registered pool, updated every epoch.
  repeated OsmoEquivalentMultiplierRecord osmo_equivalent_multipliers = 3
      [ (gogoproto.nullable) = false ];
  // intermediary_accounts is a secondary account for superfluid staking that
  // plays an intermediary role between validators and the delegators.
  repeated SuperfluidIntermediaryAccount intermediary_accounts = 4
      [ (gogoproto.nullable) = false ];
  repeated LockIdIntermediaryAccountConnection intemediary_account_connections =
      5 [ (gogoproto.nullable) = false ];
}
