Add general files for registry module
This commit is contained in:
parent
32d3062cdd
commit
475abc1a4c
23
x/registry/codec.go
Normal file
23
x/registry/codec.go
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package registry
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/cosmos/cosmos-sdk/codec/types"
|
||||||
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
|
"github.com/cosmos/cosmos-sdk/types/msgservice"
|
||||||
|
)
|
||||||
|
|
||||||
|
func RegisterInterfaces(registry types.InterfaceRegistry) {
|
||||||
|
registry.RegisterImplementations((*sdk.Msg)(nil)) // &MsgSetName{},
|
||||||
|
// &MsgReserveAuthority{},
|
||||||
|
// &MsgDeleteNameAuthority{},
|
||||||
|
// &MsgSetAuthorityBond{},
|
||||||
|
|
||||||
|
// &MsgSetRecord{},
|
||||||
|
// &MsgRenewRecord{},
|
||||||
|
// &MsgAssociateBond{},
|
||||||
|
// &MsgDissociateBond{},
|
||||||
|
// &MsgDissociateRecords{},
|
||||||
|
// &MsgReAssociateRecords{},
|
||||||
|
|
||||||
|
msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)
|
||||||
|
}
|
30
x/registry/genesis.go
Normal file
30
x/registry/genesis.go
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package registry
|
||||||
|
|
||||||
|
// DefaultGenesisState sets default evm genesis state with empty accounts and default params and
|
||||||
|
// chain config values.
|
||||||
|
func DefaultGenesisState() *GenesisState {
|
||||||
|
return &GenesisState{
|
||||||
|
Params: DefaultParams(),
|
||||||
|
Records: []Record{},
|
||||||
|
Authorities: []AuthorityEntry{},
|
||||||
|
Names: []NameEntry{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewGenesisState(params Params, records []Record, authorities []AuthorityEntry, names []NameEntry) GenesisState {
|
||||||
|
return GenesisState{
|
||||||
|
Params: params,
|
||||||
|
Records: records,
|
||||||
|
Authorities: authorities,
|
||||||
|
Names: names,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate performs basic genesis state validation returning an error upon any
|
||||||
|
func (gs *GenesisState) Validate() error {
|
||||||
|
if err := gs.Params.Validate(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
20
x/registry/keys.go
Normal file
20
x/registry/keys.go
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package registry
|
||||||
|
|
||||||
|
import "cosmossdk.io/collections"
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ModuleName is the name of the registry module
|
||||||
|
ModuleName = "registry"
|
||||||
|
|
||||||
|
// RecordRentModuleAccountName is the name of the module account that keeps track of record rents paid.
|
||||||
|
RecordRentModuleAccountName = "record_rent"
|
||||||
|
|
||||||
|
// AuthorityRentModuleAccountName is the name of the module account that keeps track of authority rents paid.
|
||||||
|
AuthorityRentModuleAccountName = "authority_rent"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Store prefixes
|
||||||
|
var (
|
||||||
|
// ParamsKey is the prefix for params key
|
||||||
|
ParamsPrefix = collections.NewPrefix(0)
|
||||||
|
)
|
195
x/registry/params.go
Normal file
195
x/registry/params.go
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
package registry
|
||||||
|
|
||||||
|
import (
|
||||||
|
fmt "fmt"
|
||||||
|
time "time"
|
||||||
|
|
||||||
|
sdkmath "cosmossdk.io/math"
|
||||||
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Default parameter values.
|
||||||
|
var (
|
||||||
|
// DefaultRecordRent is the default record rent for 1 time period (see expiry time).
|
||||||
|
DefaultRecordRent = sdkmath.NewInt(1000000)
|
||||||
|
|
||||||
|
// DefaultRecordExpiryTime is the default record expiry time (1 year).
|
||||||
|
DefaultRecordExpiryTime = time.Hour * 24 * 365
|
||||||
|
|
||||||
|
DefaultAuthorityRent = sdkmath.NewInt(1000000)
|
||||||
|
DefaultAuthorityExpiryTime = time.Hour * 24 * 365
|
||||||
|
DefaultAuthorityGracePeriod = time.Hour * 24 * 2
|
||||||
|
|
||||||
|
DefaultAuthorityAuctionEnabled = false
|
||||||
|
DefaultCommitsDuration = time.Hour * 24
|
||||||
|
DefaultRevealsDuration = time.Hour * 24
|
||||||
|
DefaultCommitFee = sdkmath.NewInt(1000000)
|
||||||
|
DefaultRevealFee = sdkmath.NewInt(1000000)
|
||||||
|
DefaultMinimumBid = sdkmath.NewInt(5000000)
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewParams creates a new Params instance
|
||||||
|
func NewParams(
|
||||||
|
recordRent sdk.Coin,
|
||||||
|
recordRentDuration time.Duration,
|
||||||
|
authorityRent sdk.Coin,
|
||||||
|
authorityRentDuration time.Duration,
|
||||||
|
authorityGracePeriod time.Duration,
|
||||||
|
authorityAuctionEnabled bool,
|
||||||
|
commitsDuration time.Duration, revealsDuration time.Duration,
|
||||||
|
commitFee sdk.Coin, revealFee sdk.Coin,
|
||||||
|
minimumBid sdk.Coin,
|
||||||
|
) Params {
|
||||||
|
return Params{
|
||||||
|
RecordRent: recordRent,
|
||||||
|
RecordRentDuration: recordRentDuration,
|
||||||
|
|
||||||
|
AuthorityRent: authorityRent,
|
||||||
|
AuthorityRentDuration: authorityRentDuration,
|
||||||
|
AuthorityGracePeriod: authorityGracePeriod,
|
||||||
|
|
||||||
|
AuthorityAuctionEnabled: authorityAuctionEnabled,
|
||||||
|
AuthorityAuctionCommitsDuration: commitsDuration,
|
||||||
|
AuthorityAuctionRevealsDuration: revealsDuration,
|
||||||
|
AuthorityAuctionCommitFee: commitFee,
|
||||||
|
AuthorityAuctionRevealFee: revealFee,
|
||||||
|
AuthorityAuctionMinimumBid: minimumBid,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DefaultParams returns a default set of parameters.
|
||||||
|
func DefaultParams() Params {
|
||||||
|
return NewParams(
|
||||||
|
sdk.NewCoin(sdk.DefaultBondDenom, DefaultRecordRent), DefaultRecordExpiryTime,
|
||||||
|
sdk.NewCoin(sdk.DefaultBondDenom, DefaultAuthorityRent),
|
||||||
|
DefaultAuthorityExpiryTime, DefaultAuthorityGracePeriod, DefaultAuthorityAuctionEnabled, DefaultCommitsDuration,
|
||||||
|
DefaultRevealsDuration,
|
||||||
|
sdk.NewCoin(sdk.DefaultBondDenom, DefaultCommitFee),
|
||||||
|
sdk.NewCoin(sdk.DefaultBondDenom, DefaultRevealFee),
|
||||||
|
sdk.NewCoin(sdk.DefaultBondDenom, DefaultMinimumBid),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate a set of params.
|
||||||
|
func (p Params) Validate() error {
|
||||||
|
if err := validateRecordRent(p.RecordRent); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateRecordRentDuration(p.RecordRentDuration); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateAuthorityRent(p.AuthorityRent); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateAuthorityRentDuration(p.AuthorityRentDuration); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateAuthorityGracePeriod(p.AuthorityGracePeriod); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateAuthorityAuctionEnabled(p.AuthorityAuctionEnabled); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateCommitsDuration(p.AuthorityAuctionCommitsDuration); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateRevealsDuration(p.AuthorityAuctionRevealsDuration); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateCommitFee(p.AuthorityAuctionCommitFee); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateRevealFee(p.AuthorityAuctionRevealFee); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validateMinimumBid(p.AuthorityAuctionMinimumBid); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateRecordRent(i interface{}) error {
|
||||||
|
return validateAmount("RecordRent", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateRecordRentDuration(i interface{}) error {
|
||||||
|
return validateDuration("RecordRentDuration", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateAuthorityRent(i interface{}) error {
|
||||||
|
return validateAmount("AuthorityRent", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateAuthorityRentDuration(i interface{}) error {
|
||||||
|
return validateDuration("AuthorityRentDuration", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateAuthorityGracePeriod(i interface{}) error {
|
||||||
|
return validateDuration("AuthorityGracePeriod", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateAuthorityAuctionEnabled(i interface{}) error {
|
||||||
|
_, ok := i.(bool)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("%s invalid parameter type: %T", "AuthorityAuctionEnabled", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateCommitsDuration(i interface{}) error {
|
||||||
|
return validateDuration("AuthorityCommitsDuration", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateRevealsDuration(i interface{}) error {
|
||||||
|
return validateDuration("AuthorityRevealsDuration", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateCommitFee(i interface{}) error {
|
||||||
|
return validateAmount("AuthorityCommitFee", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateRevealFee(i interface{}) error {
|
||||||
|
return validateAmount("AuthorityRevealFee", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateMinimumBid(i interface{}) error {
|
||||||
|
return validateAmount("AuthorityMinimumBid", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateAmount(name string, i interface{}) error {
|
||||||
|
v, ok := i.(sdk.Coin)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("%s invalid parameter type: %T", name, i)
|
||||||
|
}
|
||||||
|
|
||||||
|
if v.Amount.IsNegative() {
|
||||||
|
return fmt.Errorf("%s can't be negative", name)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func validateDuration(name string, i interface{}) error {
|
||||||
|
v, ok := i.(time.Duration)
|
||||||
|
if !ok {
|
||||||
|
return fmt.Errorf("%s invalid parameter type: %T", name, i)
|
||||||
|
}
|
||||||
|
|
||||||
|
if v <= 0 {
|
||||||
|
return fmt.Errorf("%s must be a positive integer", name)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user