Skip to content

Commit

Permalink
mint utils
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMarstonConnell committed Dec 21, 2023
1 parent 8d1fc79 commit 43d0658
Show file tree
Hide file tree
Showing 20 changed files with 689 additions and 33 deletions.
1 change: 1 addition & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -621,6 +621,7 @@ func NewJackalApp(
app.BankKeeper,
app.AccountKeeper,
app.OracleKeeper,
app.RnsKeeper,
)
storageModule := storagemodule.NewAppModule(appCodec, app.StorageKeeper, app.AccountKeeper, app.BankKeeper, app.getSubspace(storagemoduletypes.ModuleName))

Expand Down
6 changes: 4 additions & 2 deletions app/upgrades/v4/commont_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ func SetupStorageKeeper(t *testing.T) (
bankKeeper := storagetestutil.NewMockBankKeeper(ctrl)
accountKeeper := storagetestutil.NewMockAccountKeeper(ctrl)
oracleKeeper := storagetestutil.NewMockOracleKeeper(ctrl)
rnsKeeper := storagetestutil.NewMockRNSKeeper(ctrl)
trackMockBalances(bankKeeper)
accountKeeper.EXPECT().GetModuleAddress(storagemoduletypes.ModuleName).Return(modAccount).AnyTimes()

Expand All @@ -111,7 +112,7 @@ func SetupStorageKeeper(t *testing.T) (
)

// storage keeper initializations
storageKeeper := storagekeeper.NewKeeper(encCfg.Codec, key, paramsSubspace, bankKeeper, accountKeeper, oracleKeeper)
storageKeeper := storagekeeper.NewKeeper(encCfg.Codec, key, paramsSubspace, bankKeeper, accountKeeper, oracleKeeper, rnsKeeper)
storageKeeper.SetParams(ctx, storagemoduletypes.DefaultParams())

// Register all handlers for the MegServiceRouter.
Expand Down Expand Up @@ -153,6 +154,7 @@ func SetUpKeepers(t *testing.T) (
bankKeeper := storagetestutil.NewMockBankKeeper(ctrl)
accountKeeper := storagetestutil.NewMockAccountKeeper(ctrl)
oracleKeeper := storagetestutil.NewMockOracleKeeper(ctrl)
rnsKeeper := storagetestutil.NewMockRNSKeeper(ctrl)
trackMockBalances(bankKeeper)
accountKeeper.EXPECT().GetModuleAddress(storagemoduletypes.ModuleName).Return(modAccount).AnyTimes()

Expand All @@ -178,7 +180,7 @@ func SetUpKeepers(t *testing.T) (
)

// storage keeper initializations
storageKeeper := storagekeeper.NewKeeper(encCfg.Codec, skey, storParamsSubspace, bankKeeper, accountKeeper, oracleKeeper)
storageKeeper := storagekeeper.NewKeeper(encCfg.Codec, skey, storParamsSubspace, bankKeeper, accountKeeper, oracleKeeper, rnsKeeper)
storageKeeper.SetParams(ctx, storagemoduletypes.DefaultParams())

filetreeKeeper := keeper.NewKeeper(encCfg.Codec, fkey, memStoreKey, filParamsSubspace)
Expand Down
10 changes: 8 additions & 2 deletions proto/canine_chain/jklmint/params.proto
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ message Params {
option (gogoproto.goproto_stringer) = false;

string mint_denom = 1 [ (gogoproto.moretags) = "yaml:\"mint_denom\"" ];
int64 providerRatio = 2 [ (gogoproto.moretags) = "yaml:\"provider_ratio\"" ]; // TODO: fix casing
int64 tokensPerBlock = 3 [ (gogoproto.moretags) = "yaml:\"tokens_per_block\"" ]; // TODO: fix casing

int64 dev_grants_ratio = 2 [ (gogoproto.moretags) = "yaml:\"dev_grants_ratio\"" ]; // default 8
int64 community_pool_ratio = 3 [ (gogoproto.moretags) = "yaml:\"community_pool_ratio\"" ]; // default 10
int64 storage_provider_ratio = 4 [ (gogoproto.moretags) = "yaml:\"storage_provider_ratio\"" ]; // default 12
int64 staker_ratio = 5 [ (gogoproto.moretags) = "yaml:\"staker_ratio\"" ]; // default 70
int64 tokens_per_block = 6 [ (gogoproto.moretags) = "yaml:\"tokens_per_block\"" ]; // default 4200000

int64 mint_decrease = 7 [ (gogoproto.moretags) = "yaml:\"mint_decrease\"" ]; // default 6
}
127 changes: 127 additions & 0 deletions x/jklmint/legacy/v3/params.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
package types

import (
"fmt"

paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
"gopkg.in/yaml.v2"
)

var _ paramtypes.ParamSet = (*Params)(nil)

var (
KeyMintDenom = []byte("MintDenom")
KeyProviderRatio = []byte("ProviderRatio")
KeyTokensPerBlock = []byte("TokensPerBlock")

// TODO: Determine the default value
DefaultMintDenom = "ujkl"
DefaultProviderRatio = int64(4)
DefaultTokensPerBlock = int64(6)
)

// ParamKeyTable the param key table for launch module
func ParamKeyTable() paramtypes.KeyTable {
return paramtypes.NewKeyTable().RegisterParamSet(&Params{})
}

// NewParams creates a new Params instance
func NewParams(
mintDenom string,
providerRatio int64,
tokensPerBlock int64,
) Params {
return Params{
MintDenom: mintDenom,
ProviderRatio: providerRatio,
TokensPerBlock: tokensPerBlock,
}
}

// DefaultParams returns a default set of parameters
func DefaultParams() Params {
return NewParams(
DefaultMintDenom,
DefaultProviderRatio,
DefaultTokensPerBlock,
)
}

// ParamSetPairs get the params.ParamSet
func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs {
return paramtypes.ParamSetPairs{
paramtypes.NewParamSetPair(KeyMintDenom, &p.MintDenom, validateMintDenom),
paramtypes.NewParamSetPair(KeyProviderRatio, &p.ProviderRatio, validateProviderRatio),
paramtypes.NewParamSetPair(KeyTokensPerBlock, &p.TokensPerBlock, validateTokensPerBlock),
}
}

// Validate validates the set of params
func (p *Params) Validate() error {
err := validateMintDenom(p.MintDenom)
if err != nil {
return err
}
err = validateTokensPerBlock(p.TokensPerBlock)
if err != nil {
return err
}

err = validateProviderRatio(p.ProviderRatio)
if err != nil {
return err
}

return nil
}

// String implements the Stringer interface.
func (p *Params) String() string {
out, _ := yaml.Marshal(p)
return string(out)
}

// validateMintDenom validates the MintDenom param
func validateMintDenom(v interface{}) error {
mintDenom, ok := v.(string)
if !ok {
return fmt.Errorf("invalid parameter type: %T", v)
}

// TODO implement validation
_ = mintDenom

return nil
}

// validateTokensPerBlock validates the TokensMintedPerBlock param
func validateTokensPerBlock(v interface{}) error {
tokensPerBlock, ok := v.(int64)
if !ok {
return fmt.Errorf("invalid parameter type: %T", v)
}

if tokensPerBlock < 0 {
return fmt.Errorf("must be greater or equal to 0: %T", v)
}

return nil
}

// validateProviderRatio validates the ProviderRatio param
func validateProviderRatio(v interface{}) error {
ratio, ok := v.(int64)
if !ok {
return fmt.Errorf("invalid parameter type: %T", v)
}

if ratio < 0 {
return fmt.Errorf("must be greater or equal to 0: %T", v)
}

if ratio > 10 {
return fmt.Errorf("must be less than or equal to 10: %T", v)
}

return nil
}
Loading

0 comments on commit 43d0658

Please sign in to comment.