go-cyber/x/liquidity/types/genesis.go

package types

// NewGenesisState returns new GenesisState.
func NewGenesisState(params Params, liquidityPoolRecords []PoolRecord) *GenesisState {
	return &GenesisState{
		Params:      params,
		PoolRecords: liquidityPoolRecords,
	}
}

// DefaultGenesisState returns the default genesis state.
func DefaultGenesisState() *GenesisState {
	return NewGenesisState(DefaultParams(), []PoolRecord{})
}

// ValidateGenesis validates GenesisState.
func ValidateGenesis(data GenesisState) error {
	if err := data.Params.Validate(); err != nil {
		return err
	}
	for _, record := range data.PoolRecords {
		if err := record.Validate(); err != nil {
			return err
		}
	}
	return nil
}

// Validate validates PoolRecord.
func (record PoolRecord) Validate() error {
	if record.PoolBatch.DepositMsgIndex == 0 ||
		(len(record.DepositMsgStates) > 0 && record.PoolBatch.DepositMsgIndex != record.DepositMsgStates[len(record.DepositMsgStates)-1].MsgIndex+1) {
		return ErrBadBatchMsgIndex
	}
	if record.PoolBatch.WithdrawMsgIndex == 0 ||
		(len(record.WithdrawMsgStates) != 0 && record.PoolBatch.WithdrawMsgIndex != record.WithdrawMsgStates[len(record.WithdrawMsgStates)-1].MsgIndex+1) {
		return ErrBadBatchMsgIndex
	}
	if record.PoolBatch.SwapMsgIndex == 0 ||
		(len(record.SwapMsgStates) != 0 && record.PoolBatch.SwapMsgIndex != record.SwapMsgStates[len(record.SwapMsgStates)-1].MsgIndex+1) {
		return ErrBadBatchMsgIndex
	}
	return nil
}

Synonyms

go-cyber/app/genesis.go
space-pussy/app/genesis.go
go-cyber/x/liquidity/genesis.go
go-cyber/x/clock/genesis.go
go-cyber/x/resources/types/genesis.go
space-pussy/x/graph/keeper/genesis.go
space-pussy/x/dmn/keeper/genesis.go
space-pussy/x/cyberbank/keeper/genesis.go
go-cyber/x/dmn/keeper/genesis.go
go-cyber/x/grid/keeper/genesis.go
go-cyber/x/liquidity/keeper/genesis.go
space-pussy/x/resources/keeper/genesis.go
go-cyber/x/bandwidth/keeper/genesis.go
space-pussy/x/bandwidth/keeper/genesis.go
space-pussy/x/rank/keeper/genesis.go
go-cyber/x/bandwidth/types/genesis.go
go-cyber/x/resources/keeper/genesis.go
space-pussy/x/rank/types/genesis.go
go-cyber/x/grid/types/genesis.go
go-cyber/x/cyberbank/keeper/genesis.go
go-cyber/x/tokenfactory/keeper/genesis.go
space-pussy/x/dmn/types/genesis.go
space-pussy/x/resources/types/genesis.go
go-cyber/x/tokenfactory/types/genesis.go
go-cyber/x/dmn/types/genesis.go
space-pussy/x/bandwidth/types/genesis.go
go-cyber/x/rank/types/genesis.go
go-cyber/x/rank/keeper/genesis.go
go-cyber/x/graph/keeper/genesis.go
space-pussy/x/grid/keeper/genesis.go
space-pussy/x/grid/types/genesis.go

Neighbours