pools

package
v10.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 14, 2025 License: Apache-2.0 Imports: 15 Imported by: 0

README

x/pools

Abstract

The following document specifies the pools module.

This module contains the logic responsible for managing the restaking pools of our protocol. The pools are used to track the amount of tokens that each user has decided to restaking and use to provide security to multiple services.

Pools are only created by other modules, and cannot be created by outside users. The only operation that users can perform are querying the existing pools and their details.

Contents

Concepts

Pool

A pool is used to track the amount of tokens that each user has decided to restake. Each pool can only manage a single denomination of tokens (i.e. multi-tokens pools are not allowed). At the same time, for each token denomination, a single pool can exist at any given moment.

For easier reference throughout the codebase, each pool is uniquely identified by an ID that is automatically assigned when the pool is created.

A pool also has a unique address that is derived from the pool ID itself. The address is used to store the tokens that are delegated to the pool, while inside the pool object itself shares are tracked.

https://github.com/milkyway-labs/milkyway/blob/v8.1.0/proto/milkyway/pools/v1/models.proto#L10-L35

State

Next Pool ID

The pools module stores the next pool ID in state with the key 0xa1.

  • Next pool ID: 0xa1 -> uint32
Pools

The pools module stores the pools in state with the prefix of 0xa2.

  • Pool: 0xa2 | PoolID -> ProtocolBuffer(Pool)
Pool addresses

In order to know more easily and faster if a particular address represents a pool, we store the set of pool addresses using the 0xa3 prefix.

  • Pool address: 0xa3 | PoolAddress -> []byte{}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppModule

type AppModule struct {
	AppModuleBasic
	// contains filtered or unexported fields
}

AppModule implements the AppModule interface for the pools module.

func NewAppModule

func NewAppModule(cdc codec.Codec, keeper *keeper.Keeper) AppModule

func (AppModule) ConsensusVersion

func (AppModule) ConsensusVersion() uint64

ConsensusVersion implements ConsensusVersion.

func (AppModule) ExportGenesis

func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage

ExportGenesis returns the pools module's exported genesis state as raw JSON bytes.

func (AppModule) InitGenesis

func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, gs json.RawMessage) []abci.ValidatorUpdate

InitGenesis performs the pools module's genesis initialization It returns no validator updates.

func (AppModule) IsAppModule

func (am AppModule) IsAppModule()

func (AppModule) IsOnePerModuleType

func (am AppModule) IsOnePerModuleType()

func (AppModule) Name

func (am AppModule) Name() string

Name returns the pools module's name.

func (AppModule) RegisterInvariants

func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry)

RegisterInvariants registers the pools module's invariants.

func (AppModule) RegisterServices

func (am AppModule) RegisterServices(cfg module.Configurator)

RegisterServices registers a GRPC query service to respond to the module-specific GRPC queries.

type AppModuleBasic

type AppModuleBasic struct {
	// contains filtered or unexported fields
}

AppModuleBasic implements the AppModuleBasic interface for the pools module.

func NewAppModuleBasic

func NewAppModuleBasic(cdc codec.BinaryCodec) AppModuleBasic

func (AppModuleBasic) DefaultGenesis

func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage

DefaultGenesis returns the pools module's default genesis state.

func (AppModuleBasic) GetQueryCmd

func (AppModuleBasic) GetQueryCmd() *cobra.Command

GetQueryCmd returns the pools module's root query command.

func (AppModuleBasic) GetTxCmd

func (a AppModuleBasic) GetTxCmd() *cobra.Command

GetTxCmd returns the pools module's root tx command.

func (AppModuleBasic) Name

func (AppModuleBasic) Name() string

Name returns the pools module's name.

func (AppModuleBasic) RegisterGRPCGatewayRoutes

func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux)

RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the module.

func (AppModuleBasic) RegisterInterfaces

func (a AppModuleBasic) RegisterInterfaces(_ cdctypes.InterfaceRegistry)

RegisterInterfaces registers the module's interface types

func (AppModuleBasic) RegisterLegacyAminoCodec

func (AppModuleBasic) RegisterLegacyAminoCodec(_ *codec.LegacyAmino)

func (AppModuleBasic) ValidateGenesis

func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error

ValidateGenesis performs genesis state validation for the pools module.

Directories

Path Synopsis
client
cli
Package types is a reverse proxy.
Package types is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳