From c5d92f9fd4e7073a4f7b6359ded047beb9ea7aa7 Mon Sep 17 00:00:00 2001 From: 170210 Date: Thu, 18 Apr 2024 17:55:59 +0900 Subject: [PATCH 01/27] feat: implement genesis related functions Signed-off-by: 170210 --- x/ERRORS.md | 3 +- x/fswap/genesis.go | 24 -------------- x/fswap/genesis_test.go | 1 - x/fswap/keeper/fswap.go | 52 +++++++++++++++++++++++++++++ x/fswap/keeper/genesis.go | 38 +++++++++++++++++++++ x/fswap/keeper/params.go | 24 ++++++++++++-- x/fswap/module.go | 4 +-- x/fswap/types/errors.go | 3 +- x/fswap/types/expected_keepers.go | 1 + x/fswap/types/fswap.go | 55 +++++++++++++++++++++++++++++++ x/fswap/types/genesis.go | 20 +++++------ x/fswap/types/keys.go | 6 ++++ x/fswap/types/params.go | 41 +++++++++++++++++++++-- 13 files changed, 227 insertions(+), 45 deletions(-) delete mode 100644 x/fswap/genesis.go delete mode 100644 x/fswap/genesis_test.go create mode 100644 x/fswap/keeper/fswap.go create mode 100644 x/fswap/keeper/genesis.go create mode 100644 x/fswap/types/fswap.go diff --git a/x/ERRORS.md b/x/ERRORS.md index c324c8315c..abe509d0c6 100644 --- a/x/ERRORS.md +++ b/x/ERRORS.md @@ -177,7 +177,8 @@ |Error Name|Codespace|Code|Description| |:-|:-|:-|:-| -|ErrSample|fswap|1100|sample error| +|ErrParamsNotFound|fswap|1100|params does not exist| +|ErrSwappedNotFound|fswap|1101|swapped does not exist| >You can also find detailed information in the following Errors.go files: * [fswap/types/errors.go](fswap/types/errors.go) diff --git a/x/fswap/genesis.go b/x/fswap/genesis.go deleted file mode 100644 index af232aad36..0000000000 --- a/x/fswap/genesis.go +++ /dev/null @@ -1,24 +0,0 @@ -package fswap - -import ( - sdk "github.com/Finschia/finschia-sdk/types" - "github.com/Finschia/finschia-sdk/x/fswap/keeper" - "github.com/Finschia/finschia-sdk/x/fswap/types" -) - -// InitGenesis initializes the capability module's state from a provided genesis -// state. -func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) { - // this line is used by starport scaffolding # genesis/module/init - k.SetParams(ctx, genState.Params) -} - -// ExportGenesis returns the capability module's exported genesis. -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { - genesis := types.DefaultGenesis() - genesis.Params = k.GetParams(ctx) - - // this line is used by starport scaffolding # genesis/module/export - - return genesis -} diff --git a/x/fswap/genesis_test.go b/x/fswap/genesis_test.go deleted file mode 100644 index 43bc7afc7c..0000000000 --- a/x/fswap/genesis_test.go +++ /dev/null @@ -1 +0,0 @@ -package fswap_test diff --git a/x/fswap/keeper/fswap.go b/x/fswap/keeper/fswap.go new file mode 100644 index 0000000000..58d51b6ba7 --- /dev/null +++ b/x/fswap/keeper/fswap.go @@ -0,0 +1,52 @@ +package keeper + +import ( + sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/x/fswap/types" +) + +// GetSwapped get all parameters as types.Swapped +func (k Keeper) GetSwapped(ctx sdk.Context) types.Swapped { + store := ctx.KVStore(k.storeKey) + bz := store.Get([]byte{types.SwappedKey}) + var swapped types.Swapped + + if bz == nil { + panic(types.ErrSwappedNotFound) + } + k.cdc.MustUnmarshal(bz, &swapped) + return swapped +} + +// SetSwapped set the types.Swapped +func (k Keeper) SetSwapped(ctx sdk.Context, swapped types.Swapped) error { + store := ctx.KVStore(k.storeKey) + bz, err := k.cdc.Marshal(&swapped) + if err != nil { + return err + } + store.Set([]byte{types.SwappedKey}, bz) + return nil +} + +func (k Keeper) GetTotalSupply(ctx sdk.Context) sdk.DecCoin { + store := ctx.KVStore(k.storeKey) + bz := store.Get([]byte{types.TotalSupplyKey}) + var totalSupply sdk.DecCoin + if bz == nil { + + panic(types.ErrParamsNotFound) + } + k.cdc.MustUnmarshal(bz, &totalSupply) + return totalSupply +} + +func (k Keeper) SetTotalSupply(ctx sdk.Context, totalSupply sdk.DecCoin) error { + store := ctx.KVStore(k.storeKey) + bz, err := k.cdc.Marshal(&totalSupply) + if err != nil { + return err + } + store.Set([]byte{types.TotalSupplyKey}, bz) + return nil +} diff --git a/x/fswap/keeper/genesis.go b/x/fswap/keeper/genesis.go new file mode 100644 index 0000000000..10f0176f23 --- /dev/null +++ b/x/fswap/keeper/genesis.go @@ -0,0 +1,38 @@ +package keeper + +import ( + sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/x/fswap/types" +) + +const ( + DefaultOldCoins string = "cony" +) + +var DefaultSwapRate = sdk.NewDecWithPrec(148079656, 6) + +// InitGenesis initializes the capability module's state from a provided genesis +// state. +func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types.GenesisState) error { + if err := k.SetParams(ctx, genState.Params); err != nil { + return err + } + if err := k.SetSwapped(ctx, genState.Swapped); err != nil { + return err + } + totalOldCoinsSupply := bk.GetSupply(ctx, DefaultOldCoins).Amount + totalNewCoinsSupply := DefaultSwapRate.MulInt(totalOldCoinsSupply) + totalNewCoins := sdk.NewDecCoinFromDec(genState.Params.NewCoinDenom, totalNewCoinsSupply) + if err := k.SetTotalSupply(ctx, totalNewCoins); err != nil { + return err + } + return nil +} + +// ExportGenesis returns the capability module's exported genesis. +func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { + return &types.GenesisState{ + Params: k.GetParams(ctx), + Swapped: k.GetSwapped(ctx), + } +} diff --git a/x/fswap/keeper/params.go b/x/fswap/keeper/params.go index 5a539d551a..25ea6b4851 100644 --- a/x/fswap/keeper/params.go +++ b/x/fswap/keeper/params.go @@ -7,10 +7,28 @@ import ( // GetParams get all parameters as types.Params func (k Keeper) GetParams(ctx sdk.Context) types.Params { - return types.NewParams() + store := ctx.KVStore(k.storeKey) + bz := store.Get([]byte{types.ParamsKey}) + var params types.Params + if bz == nil { + panic(types.ErrParamsNotFound) + } + k.cdc.MustUnmarshal(bz, ¶ms) + return params } // SetParams set the params -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { - // k.paramstore.SetParamSet(ctx, ¶ms) +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { + store := ctx.KVStore(k.storeKey) + bz, err := k.cdc.Marshal(¶ms) + if err != nil { + return err + } + store.Set([]byte{types.ParamsKey}, bz) + return nil +} + +func (k Keeper) NewCoinDenom(ctx sdk.Context) string { + params := k.GetParams(ctx) + return params.NewCoinDenom } diff --git a/x/fswap/module.go b/x/fswap/module.go index 0e60e1d03d..a47b447556 100644 --- a/x/fswap/module.go +++ b/x/fswap/module.go @@ -144,14 +144,14 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, gs json.Ra // Initialize global index to index in genesis state cdc.MustUnmarshalJSON(gs, &genState) - InitGenesis(ctx, am.keeper, genState) + am.keeper.InitGenesis(ctx, am.bankKeeper, genState) return []abci.ValidatorUpdate{} } // ExportGenesis returns the capability module's exported genesis state as raw JSON bytes. func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - genState := ExportGenesis(ctx, am.keeper) + genState := am.keeper.ExportGenesis(ctx) return cdc.MustMarshalJSON(genState) } diff --git a/x/fswap/types/errors.go b/x/fswap/types/errors.go index c0b627de88..b903b1b454 100644 --- a/x/fswap/types/errors.go +++ b/x/fswap/types/errors.go @@ -8,5 +8,6 @@ import ( // x/fswap module sentinel errors var ( - ErrSample = sdkerrors.Register(ModuleName, 1100, "sample error") + ErrParamsNotFound = sdkerrors.Register(ModuleName, 1100, "params does not exist") + ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1101, "swapped does not exist") ) diff --git a/x/fswap/types/expected_keepers.go b/x/fswap/types/expected_keepers.go index 6134a117d7..195cd89bdc 100644 --- a/x/fswap/types/expected_keepers.go +++ b/x/fswap/types/expected_keepers.go @@ -15,4 +15,5 @@ type AccountKeeper interface { type BankKeeper interface { SpendableCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins // Methods imported from bank should be defined here + GetSupply(ctx sdk.Context, denom string) sdk.Coin } diff --git a/x/fswap/types/fswap.go b/x/fswap/types/fswap.go new file mode 100644 index 0000000000..df3fe2e06c --- /dev/null +++ b/x/fswap/types/fswap.go @@ -0,0 +1,55 @@ +package types + +import ( + "errors" + fmt "fmt" + "strings" + + sdk "github.com/Finschia/finschia-sdk/types" +) + +// NewSwapped creates a new Swapped instance +func NewSwapped( + oldCoin sdk.Coin, + newCoin sdk.Coin, +) Swapped { + return Swapped{ + OldCoinAmount: oldCoin, + NewCoinAmount: newCoin, + } +} + +// DefaultSwapped returns an initial Swapped object +func DefaultSwapped() Swapped { + return NewSwapped( + sdk.NewCoin("cony", sdk.NewInt(0)), + sdk.NewCoin(DefaultNewCoinDenom, sdk.NewInt(0)), + ) +} + +func validateCoin(i interface{}) error { + v, ok := i.(sdk.Coin) + if !ok { + return fmt.Errorf("invalid coin amount: %T", i) + } + + if strings.TrimSpace(v.Denom) == "" { + return errors.New("denom cannot be blank") + } + if err := sdk.ValidateDenom(v.Denom); err != nil { + return err + } + + return nil +} + +// Validate validates the set of swapped +func (s Swapped) Validate() error { + if err := validateCoin(s.OldCoinAmount); err != nil { + return err + } + if err := validateCoin(s.NewCoinAmount); err != nil { + return err + } + return nil +} diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index 8df94bae23..08a19f7f40 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -1,17 +1,10 @@ package types -import ( -// this line is used by starport scaffolding # genesis/types/import -) - -// DefaultIndex is the default capability global index -const DefaultIndex uint64 = 1 - // DefaultGenesis returns the default Capability genesis state func DefaultGenesis() *GenesisState { return &GenesisState{ - // this line is used by starport scaffolding # genesis/types/default - Params: DefaultParams(), + Params: DefaultParams(), + Swapped: DefaultSwapped(), } } @@ -19,6 +12,13 @@ func DefaultGenesis() *GenesisState { // failure. func (gs GenesisState) Validate() error { // this line is used by starport scaffolding # genesis/types/validate + if err := gs.Params.Validate(); err != nil { + return err + } + + if err := gs.Swapped.Validate(); err != nil { + return err + } - return gs.Params.Validate() + return nil } diff --git a/x/fswap/types/keys.go b/x/fswap/types/keys.go index 18047ccfb2..6089626eaf 100644 --- a/x/fswap/types/keys.go +++ b/x/fswap/types/keys.go @@ -17,6 +17,12 @@ const ( MemStoreKey = "mem_fswap" ) +var ( + ParamsKey = byte(0x00) + SwappedKey = byte(0x01) + TotalSupplyKey = byte(0x02) +) + func KeyPrefix(p string) []byte { return []byte(p) } diff --git a/x/fswap/types/params.go b/x/fswap/types/params.go index f4b9ae24dc..bcb31f7959 100644 --- a/x/fswap/types/params.go +++ b/x/fswap/types/params.go @@ -1,21 +1,56 @@ package types import ( + "errors" + fmt "fmt" + "strings" + "gopkg.in/yaml.v2" + + sdk "github.com/Finschia/finschia-sdk/types" +) + +const ( + DefaultNewCoinDenom string = "PDT" ) // NewParams creates a new Params instance -func NewParams() Params { - return Params{} +func NewParams( + newCoinDenom string, +) Params { + return Params{ + NewCoinDenom: newCoinDenom, + } } // DefaultParams returns a default set of parameters func DefaultParams() Params { - return NewParams() + return NewParams( + DefaultNewCoinDenom, + ) +} + +func validateNewCoinDenom(i interface{}) error { + v, ok := i.(string) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + if strings.TrimSpace(v) == "" { + return errors.New("new denom cannot be blank") + } + if err := sdk.ValidateDenom(v); err != nil { + return err + } + + return nil } // Validate validates the set of params func (p Params) Validate() error { + if err := validateNewCoinDenom(p.NewCoinDenom); err != nil { + return err + } return nil } From 7063c9bf8145cf83d6121240abc98774b81e271c Mon Sep 17 00:00:00 2001 From: 170210 Date: Fri, 19 Apr 2024 14:38:36 +0900 Subject: [PATCH 02/27] chore: use mockgen Signed-off-by: 170210 --- Makefile | 1 + x/fswap/testutil/expected_keepers_mocks.go | 101 +++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 x/fswap/testutil/expected_keepers_mocks.go diff --git a/Makefile b/Makefile index 039bdefc1d..fdd954145c 100644 --- a/Makefile +++ b/Makefile @@ -144,6 +144,7 @@ mocks: $(MOCKS_DIR) mockgen -package mocks -destination tests/mocks/grpc_server.go github.com/gogo/protobuf/grpc Server mockgen -package mocks -destination tests/mocks/tendermint_tendermint_libs_log_DB.go github.com/tendermint/tendermint/libs/log Logger mockgen -source=x/stakingplus/expected_keepers.go -package testutil -destination x/stakingplus/testutil/expected_keepers_mocks.go + mockgen -source=x/fswap/types/expected_keepers.go -package testutil -destination x/fswap/testutil/expected_keepers_mocks.go .PHONY: mocks $(MOCKS_DIR): diff --git a/x/fswap/testutil/expected_keepers_mocks.go b/x/fswap/testutil/expected_keepers_mocks.go new file mode 100644 index 0000000000..21bb92feaf --- /dev/null +++ b/x/fswap/testutil/expected_keepers_mocks.go @@ -0,0 +1,101 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: x/fswap/types/expected_keepers.go + +// Package testutil is a generated GoMock package. +package testutil + +import ( + reflect "reflect" + + types "github.com/Finschia/finschia-sdk/types" + types0 "github.com/Finschia/finschia-sdk/x/auth/types" + gomock "github.com/golang/mock/gomock" +) + +// MockAccountKeeper is a mock of AccountKeeper interface. +type MockAccountKeeper struct { + ctrl *gomock.Controller + recorder *MockAccountKeeperMockRecorder +} + +// MockAccountKeeperMockRecorder is the mock recorder for MockAccountKeeper. +type MockAccountKeeperMockRecorder struct { + mock *MockAccountKeeper +} + +// NewMockAccountKeeper creates a new mock instance. +func NewMockAccountKeeper(ctrl *gomock.Controller) *MockAccountKeeper { + mock := &MockAccountKeeper{ctrl: ctrl} + mock.recorder = &MockAccountKeeperMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockAccountKeeper) EXPECT() *MockAccountKeeperMockRecorder { + return m.recorder +} + +// GetAccount mocks base method. +func (m *MockAccountKeeper) GetAccount(ctx types.Context, addr types.AccAddress) types0.AccountI { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetAccount", ctx, addr) + ret0, _ := ret[0].(types0.AccountI) + return ret0 +} + +// GetAccount indicates an expected call of GetAccount. +func (mr *MockAccountKeeperMockRecorder) GetAccount(ctx, addr interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAccount", reflect.TypeOf((*MockAccountKeeper)(nil).GetAccount), ctx, addr) +} + +// MockBankKeeper is a mock of BankKeeper interface. +type MockBankKeeper struct { + ctrl *gomock.Controller + recorder *MockBankKeeperMockRecorder +} + +// MockBankKeeperMockRecorder is the mock recorder for MockBankKeeper. +type MockBankKeeperMockRecorder struct { + mock *MockBankKeeper +} + +// NewMockBankKeeper creates a new mock instance. +func NewMockBankKeeper(ctrl *gomock.Controller) *MockBankKeeper { + mock := &MockBankKeeper{ctrl: ctrl} + mock.recorder = &MockBankKeeperMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockBankKeeper) EXPECT() *MockBankKeeperMockRecorder { + return m.recorder +} + +// GetSupply mocks base method. +func (m *MockBankKeeper) GetSupply(ctx types.Context, denom string) types.Coin { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetSupply", ctx, denom) + ret0, _ := ret[0].(types.Coin) + return ret0 +} + +// GetSupply indicates an expected call of GetSupply. +func (mr *MockBankKeeperMockRecorder) GetSupply(ctx, denom interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetSupply", reflect.TypeOf((*MockBankKeeper)(nil).GetSupply), ctx, denom) +} + +// SpendableCoins mocks base method. +func (m *MockBankKeeper) SpendableCoins(ctx types.Context, addr types.AccAddress) types.Coins { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "SpendableCoins", ctx, addr) + ret0, _ := ret[0].(types.Coins) + return ret0 +} + +// SpendableCoins indicates an expected call of SpendableCoins. +func (mr *MockBankKeeperMockRecorder) SpendableCoins(ctx, addr interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SpendableCoins", reflect.TypeOf((*MockBankKeeper)(nil).SpendableCoins), ctx, addr) +} From 27b9b2ab714ba2f145c8c3438f4a70c69870566a Mon Sep 17 00:00:00 2001 From: 170210 Date: Fri, 19 Apr 2024 14:41:16 +0900 Subject: [PATCH 03/27] chore: add tests Signed-off-by: 170210 --- simapp/app.go | 12 ++++++++ x/fswap/keeper/genesis.go | 12 ++------ x/fswap/keeper/genesis_test.go | 21 +++++++++++++ x/fswap/keeper/keeper.go | 6 ++-- x/fswap/keeper/keeper_test.go | 43 +++++++++++++++++++++++++++ x/fswap/testutil/test_helpers.go | 9 ++++++ x/fswap/types/genesis.go | 10 +++++++ x/fswap/types/genesis_test.go | 51 ++++++++++++++++++++++++++++---- 8 files changed, 146 insertions(+), 18 deletions(-) create mode 100644 x/fswap/keeper/genesis_test.go create mode 100644 x/fswap/keeper/keeper_test.go create mode 100644 x/fswap/testutil/test_helpers.go diff --git a/simapp/app.go b/simapp/app.go index a86dd1c611..4a2e9b27a5 100644 --- a/simapp/app.go +++ b/simapp/app.go @@ -72,6 +72,9 @@ import ( foundationclient "github.com/Finschia/finschia-sdk/x/foundation/client" foundationkeeper "github.com/Finschia/finschia-sdk/x/foundation/keeper" foundationmodule "github.com/Finschia/finschia-sdk/x/foundation/module" + "github.com/Finschia/finschia-sdk/x/fswap" + fswapkeeper "github.com/Finschia/finschia-sdk/x/fswap/keeper" + fswaptypes "github.com/Finschia/finschia-sdk/x/fswap/types" "github.com/Finschia/finschia-sdk/x/genutil" genutiltypes "github.com/Finschia/finschia-sdk/x/genutil/types" "github.com/Finschia/finschia-sdk/x/gov" @@ -197,6 +200,7 @@ type SimApp struct { ClassKeeper classkeeper.Keeper TokenKeeper tokenkeeper.Keeper CollectionKeeper collectionkeeper.Keeper + FswapKeeper fswapkeeper.Keeper // the module manager mm *module.Manager @@ -250,6 +254,7 @@ func NewSimApp( token.StoreKey, collection.StoreKey, authzkeeper.StoreKey, + fswaptypes.StoreKey, ) tkeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey) // NOTE: The testingkey is just mounted for testing purposes. Actual applications should @@ -352,6 +357,9 @@ func NewSimApp( // If evidence needs to be handled for the app, set routes in router here and seal app.EvidenceKeeper = *evidenceKeeper + /**** Phase 1 ****/ + app.FswapKeeper = fswapkeeper.NewKeeper(appCodec, keys[fswaptypes.StoreKey], app.AccountKeeper, app.BankKeeper) + /**** Module Options ****/ // NOTE: we may consider parsing `appOpts` inside module constructors. For the moment @@ -383,6 +391,7 @@ func NewSimApp( tokenmodule.NewAppModule(appCodec, app.TokenKeeper), collectionmodule.NewAppModule(appCodec, app.CollectionKeeper), authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry), + fswap.NewAppModule(appCodec, app.FswapKeeper, app.AccountKeeper, app.BankKeeper), ) // During begin block slashing happens after distr.BeginBlocker so that @@ -410,6 +419,7 @@ func NewSimApp( vestingtypes.ModuleName, token.ModuleName, collection.ModuleName, + fswaptypes.ModuleName, ) app.mm.SetOrderEndBlockers( crisistypes.ModuleName, @@ -431,6 +441,7 @@ func NewSimApp( foundation.ModuleName, token.ModuleName, collection.ModuleName, + fswaptypes.ModuleName, ) // NOTE: The genutils module must occur after staking so that pools are @@ -458,6 +469,7 @@ func NewSimApp( vestingtypes.ModuleName, token.ModuleName, collection.ModuleName, + fswaptypes.ModuleName, ) // Uncomment if you want to set a custom migration order here. diff --git a/x/fswap/keeper/genesis.go b/x/fswap/keeper/genesis.go index 10f0176f23..36ea5d6213 100644 --- a/x/fswap/keeper/genesis.go +++ b/x/fswap/keeper/genesis.go @@ -5,13 +5,7 @@ import ( "github.com/Finschia/finschia-sdk/x/fswap/types" ) -const ( - DefaultOldCoins string = "cony" -) - -var DefaultSwapRate = sdk.NewDecWithPrec(148079656, 6) - -// InitGenesis initializes the capability module's state from a provided genesis +// InitGenesis initializes the module's state from a provided genesis // state. func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types.GenesisState) error { if err := k.SetParams(ctx, genState.Params); err != nil { @@ -20,8 +14,8 @@ func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types if err := k.SetSwapped(ctx, genState.Swapped); err != nil { return err } - totalOldCoinsSupply := bk.GetSupply(ctx, DefaultOldCoins).Amount - totalNewCoinsSupply := DefaultSwapRate.MulInt(totalOldCoinsSupply) + totalOldCoinsSupply := bk.GetSupply(ctx, types.DefaultOldCoins).Amount + totalNewCoinsSupply := types.DefaultSwapRate.MulInt(totalOldCoinsSupply) totalNewCoins := sdk.NewDecCoinFromDec(genState.Params.NewCoinDenom, totalNewCoinsSupply) if err := k.SetTotalSupply(ctx, totalNewCoins); err != nil { return err diff --git a/x/fswap/keeper/genesis_test.go b/x/fswap/keeper/genesis_test.go new file mode 100644 index 0000000000..bb872c92d8 --- /dev/null +++ b/x/fswap/keeper/genesis_test.go @@ -0,0 +1,21 @@ +package keeper_test + +import ( + sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/x/fswap/testutil" + "github.com/Finschia/finschia-sdk/x/fswap/types" +) + +func (s *KeeperTestSuite) TestInitAndExportGenesis() { + err := s.keeper.InitGenesis(s.sdkCtx, s.bankKeeper, *types.DefaultGenesis()) + s.Require().NoError(err) + got := s.keeper.ExportGenesis(s.sdkCtx) + s.Require().NotNil(got) + s.Require().Equal(types.DefaultParams(), got.Params) + s.Require().Equal(types.DefaultSwapped(), got.Swapped) + + gotTotalSupply := s.keeper.GetTotalSupply(s.sdkCtx) + totalNewCoinsSupply := types.DefaultSwapRate.MulInt(testutil.MockOldCoin.Amount) + expectedCoin := sdk.NewDecCoinFromDec(types.DefaultNewCoinDenom, totalNewCoinsSupply) + s.Require().Equal(expectedCoin, gotTotalSupply) +} diff --git a/x/fswap/keeper/keeper.go b/x/fswap/keeper/keeper.go index 329b87cf80..85de2b850c 100644 --- a/x/fswap/keeper/keeper.go +++ b/x/fswap/keeper/keeper.go @@ -14,23 +14,23 @@ import ( type ( Keeper struct { cdc codec.BinaryCodec + storeKey storetypes.StoreKey accountKeeper types.AccountKeeper bankKeeper types.BankKeeper - storeKey storetypes.StoreKey } ) func NewKeeper( cdc codec.BinaryCodec, + storeKey storetypes.StoreKey, ak types.AccountKeeper, bk types.BankKeeper, - storeKey storetypes.StoreKey, ) Keeper { return Keeper{ cdc: cdc, + storeKey: storeKey, accountKeeper: ak, bankKeeper: bk, - storeKey: storeKey, } } diff --git a/x/fswap/keeper/keeper_test.go b/x/fswap/keeper/keeper_test.go new file mode 100644 index 0000000000..71ed36ecbf --- /dev/null +++ b/x/fswap/keeper/keeper_test.go @@ -0,0 +1,43 @@ +package keeper_test + +import ( + "context" + "testing" + + "github.com/Finschia/finschia-sdk/simapp" + sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/x/fswap/keeper" + "github.com/Finschia/finschia-sdk/x/fswap/testutil" + "github.com/Finschia/finschia-sdk/x/fswap/types" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/suite" + tmproto "github.com/tendermint/tendermint/proto/tendermint/types" +) + +type KeeperTestSuite struct { + suite.Suite + sdkCtx sdk.Context + goCtx context.Context + keeper keeper.Keeper + bankKeeper types.BankKeeper + + msgServer types.MsgServer +} + +func TestKeeperTestSuite(t *testing.T) { + suite.Run(t, new(KeeperTestSuite)) +} + +func (s *KeeperTestSuite) SetupTest() { + ctrl := gomock.NewController(s.T()) + bankKeeper := testutil.NewMockBankKeeper(ctrl) + bankKeeper.EXPECT().GetSupply(gomock.Any(), "cony").Return(testutil.MockOldCoin) + s.bankKeeper = bankKeeper + checkTx := false + app := simapp.Setup(checkTx) + s.sdkCtx = app.BaseApp.NewContext(checkTx, tmproto.Header{}) + s.goCtx = sdk.WrapSDKContext(s.sdkCtx) + s.keeper = app.FswapKeeper + + s.msgServer = keeper.NewMsgServerImpl(s.keeper) +} diff --git a/x/fswap/testutil/test_helpers.go b/x/fswap/testutil/test_helpers.go new file mode 100644 index 0000000000..886078c978 --- /dev/null +++ b/x/fswap/testutil/test_helpers.go @@ -0,0 +1,9 @@ +package testutil + +import ( + sdk "github.com/Finschia/finschia-sdk/types" +) + +var ( + MockOldCoin = sdk.NewCoin("cony", sdk.NewInt(1000)) +) diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index 08a19f7f40..c4e1e67b57 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -1,5 +1,15 @@ package types +import ( + sdk "github.com/Finschia/finschia-sdk/types" +) + +const ( + DefaultOldCoins string = "cony" +) + +var DefaultSwapRate = sdk.NewDecWithPrec(148079656, 6) + // DefaultGenesis returns the default Capability genesis state func DefaultGenesis() *GenesisState { return &GenesisState{ diff --git a/x/fswap/types/genesis_test.go b/x/fswap/types/genesis_test.go index e4fa429dc8..671d8bc6ff 100644 --- a/x/fswap/types/genesis_test.go +++ b/x/fswap/types/genesis_test.go @@ -5,10 +5,11 @@ import ( "github.com/stretchr/testify/require" + sdk "github.com/Finschia/finschia-sdk/types" "github.com/Finschia/finschia-sdk/x/fswap/types" ) -func TestGenesisState_Validate(t *testing.T) { +func TestGenesisStateValidate(t *testing.T) { for _, tc := range []struct { desc string genState *types.GenesisState @@ -20,14 +21,52 @@ func TestGenesisState_Validate(t *testing.T) { valid: true, }, { - desc: "valid genesis state", + desc: "empty genesisState", + genState: &types.GenesisState{}, + valid: false, + }, + { + desc: "empty params", genState: &types.GenesisState{ - - // this line is used by starport scaffolding # types/genesis/validField + Swapped: types.DefaultSwapped(), + }, + valid: false, + }, + { + desc: "empty swapped", + genState: &types.GenesisState{ + Params: types.DefaultParams(), + }, + valid: false, + }, + { + desc: "empty newCoinDenom in params", + genState: &types.GenesisState{ + Params: types.Params{}, + Swapped: types.DefaultSwapped(), + }, + valid: false, + }, + { + desc: "empty oldCoin in Swapped", + genState: &types.GenesisState{ + Params: types.DefaultParams(), + Swapped: types.Swapped{ + NewCoinAmount: sdk.NewInt64Coin("atom", 1), + }, + }, + valid: false, + }, + { + desc: "empty newCoin in Swapped", + genState: &types.GenesisState{ + Params: types.DefaultParams(), + Swapped: types.Swapped{ + OldCoinAmount: sdk.NewInt64Coin("cony", 1), + }, }, - valid: true, + valid: false, }, - // this line is used by starport scaffolding # types/genesis/testcase } { t.Run(tc.desc, func(t *testing.T) { err := tc.genState.Validate() From 3afadd406f887b068b94587358fe224de005620b Mon Sep 17 00:00:00 2001 From: 170210 Date: Fri, 19 Apr 2024 15:41:43 +0900 Subject: [PATCH 04/27] fix: add subspace in paramsKeeper Signed-off-by: 170210 --- simapp/app.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/simapp/app.go b/simapp/app.go index 4a2e9b27a5..e780b65f52 100644 --- a/simapp/app.go +++ b/simapp/app.go @@ -735,5 +735,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino paramsKeeper.Subspace(crisistypes.ModuleName) paramsKeeper.Subspace(foundation.ModuleName) + paramsKeeper.Subspace(fswaptypes.ModuleName) + return paramsKeeper } From 31d3829b3e02b8bd444ec70a55cddaf6484ef03d Mon Sep 17 00:00:00 2001 From: 170210 Date: Fri, 19 Apr 2024 15:48:22 +0900 Subject: [PATCH 05/27] fix: fix lint Signed-off-by: 170210 --- x/fswap/keeper/fswap.go | 1 - x/fswap/keeper/genesis.go | 9 ++++----- x/fswap/keeper/genesis_test.go | 3 +-- x/fswap/keeper/keeper_test.go | 7 ++++--- x/fswap/testutil/test_helpers.go | 4 +--- 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/x/fswap/keeper/fswap.go b/x/fswap/keeper/fswap.go index 58d51b6ba7..dc0a60ad31 100644 --- a/x/fswap/keeper/fswap.go +++ b/x/fswap/keeper/fswap.go @@ -34,7 +34,6 @@ func (k Keeper) GetTotalSupply(ctx sdk.Context) sdk.DecCoin { bz := store.Get([]byte{types.TotalSupplyKey}) var totalSupply sdk.DecCoin if bz == nil { - panic(types.ErrParamsNotFound) } k.cdc.MustUnmarshal(bz, &totalSupply) diff --git a/x/fswap/keeper/genesis.go b/x/fswap/keeper/genesis.go index 36ea5d6213..3de1dc1809 100644 --- a/x/fswap/keeper/genesis.go +++ b/x/fswap/keeper/genesis.go @@ -7,20 +7,19 @@ import ( // InitGenesis initializes the module's state from a provided genesis // state. -func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types.GenesisState) error { +func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types.GenesisState) { if err := k.SetParams(ctx, genState.Params); err != nil { - return err + panic(err) } if err := k.SetSwapped(ctx, genState.Swapped); err != nil { - return err + panic(err) } totalOldCoinsSupply := bk.GetSupply(ctx, types.DefaultOldCoins).Amount totalNewCoinsSupply := types.DefaultSwapRate.MulInt(totalOldCoinsSupply) totalNewCoins := sdk.NewDecCoinFromDec(genState.Params.NewCoinDenom, totalNewCoinsSupply) if err := k.SetTotalSupply(ctx, totalNewCoins); err != nil { - return err + panic(err) } - return nil } // ExportGenesis returns the capability module's exported genesis. diff --git a/x/fswap/keeper/genesis_test.go b/x/fswap/keeper/genesis_test.go index bb872c92d8..b03ee56fff 100644 --- a/x/fswap/keeper/genesis_test.go +++ b/x/fswap/keeper/genesis_test.go @@ -7,8 +7,7 @@ import ( ) func (s *KeeperTestSuite) TestInitAndExportGenesis() { - err := s.keeper.InitGenesis(s.sdkCtx, s.bankKeeper, *types.DefaultGenesis()) - s.Require().NoError(err) + s.keeper.InitGenesis(s.sdkCtx, s.bankKeeper, *types.DefaultGenesis()) got := s.keeper.ExportGenesis(s.sdkCtx) s.Require().NotNil(got) s.Require().Equal(types.DefaultParams(), got.Params) diff --git a/x/fswap/keeper/keeper_test.go b/x/fswap/keeper/keeper_test.go index 71ed36ecbf..d2a312f402 100644 --- a/x/fswap/keeper/keeper_test.go +++ b/x/fswap/keeper/keeper_test.go @@ -4,14 +4,15 @@ import ( "context" "testing" + "github.com/golang/mock/gomock" + "github.com/stretchr/testify/suite" + tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/Finschia/finschia-sdk/simapp" sdk "github.com/Finschia/finschia-sdk/types" "github.com/Finschia/finschia-sdk/x/fswap/keeper" "github.com/Finschia/finschia-sdk/x/fswap/testutil" "github.com/Finschia/finschia-sdk/x/fswap/types" - "github.com/golang/mock/gomock" - "github.com/stretchr/testify/suite" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" ) type KeeperTestSuite struct { diff --git a/x/fswap/testutil/test_helpers.go b/x/fswap/testutil/test_helpers.go index 886078c978..51fa635a01 100644 --- a/x/fswap/testutil/test_helpers.go +++ b/x/fswap/testutil/test_helpers.go @@ -4,6 +4,4 @@ import ( sdk "github.com/Finschia/finschia-sdk/types" ) -var ( - MockOldCoin = sdk.NewCoin("cony", sdk.NewInt(1000)) -) +var MockOldCoin = sdk.NewCoin("cony", sdk.NewInt(1000)) From f63ce4df4937657049301cf147a4764847800143 Mon Sep 17 00:00:00 2001 From: 170210 Date: Fri, 19 Apr 2024 16:23:46 +0900 Subject: [PATCH 06/27] fix: fix for test errors Signed-off-by: 170210 --- x/fswap/module.go | 5 ++-- x/fswap/module_simulation.go | 45 ++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/x/fswap/module.go b/x/fswap/module.go index a47b447556..bc1726cca6 100644 --- a/x/fswap/module.go +++ b/x/fswap/module.go @@ -19,8 +19,9 @@ import ( ) var ( - _ module.AppModule = AppModule{} - _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModule = AppModule{} + _ module.AppModuleBasic = AppModuleBasic{} + _ module.EndBlockAppModule = AppModule{} ) // ---------------------------------------------------------------------------- diff --git a/x/fswap/module_simulation.go b/x/fswap/module_simulation.go index 48b26e84a0..449882fb2e 100644 --- a/x/fswap/module_simulation.go +++ b/x/fswap/module_simulation.go @@ -1 +1,46 @@ package fswap + +import ( + "math/rand" + + "github.com/Finschia/finschia-sdk/x/fswap/types" + + sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/types/module" + simtypes "github.com/Finschia/finschia-sdk/types/simulation" +) + +var ( + _ module.AppModuleSimulation = AppModule{} +) + +// GenerateGenesisState creates a randomized GenState of the module. +func (AppModule) GenerateGenesisState(simState *module.SimulationState) { + fswapGenesis := types.GenesisState{ + Params: types.DefaultParams(), + Swapped: types.DefaultSwapped(), + } + simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&fswapGenesis) +} + +// RegisterStoreDecoder registers a decoder. +func (am AppModule) RegisterStoreDecoder(_ sdk.StoreDecoderRegistry) {} + +// ProposalContents doesn't return any content functions for governance proposals. +func (AppModule) ProposalContents(_ module.SimulationState) []simtypes.WeightedProposalContent { + return nil +} + +// WeightedOperations returns the all the gov module operations with their respective weights. +func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation { + operations := make([]simtypes.WeightedOperation, 0) + + // this line is used by starport scaffolding # simapp/module/operation + + return operations +} + +// RandomizedParams creates randomized slashing param changes for the simulator. +func (AppModule) RandomizedParams(r *rand.Rand) []simtypes.ParamChange { + return nil +} From 6d59aa8a9f7198472b97fdec02eb7eb1f186dd86 Mon Sep 17 00:00:00 2001 From: 170210 Date: Fri, 19 Apr 2024 16:26:12 +0900 Subject: [PATCH 07/27] fix: fix lint Signed-off-by: 170210 --- x/fswap/module_simulation.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/x/fswap/module_simulation.go b/x/fswap/module_simulation.go index 449882fb2e..70f7369bc4 100644 --- a/x/fswap/module_simulation.go +++ b/x/fswap/module_simulation.go @@ -3,16 +3,13 @@ package fswap import ( "math/rand" - "github.com/Finschia/finschia-sdk/x/fswap/types" - sdk "github.com/Finschia/finschia-sdk/types" "github.com/Finschia/finschia-sdk/types/module" simtypes "github.com/Finschia/finschia-sdk/types/simulation" + "github.com/Finschia/finschia-sdk/x/fswap/types" ) -var ( - _ module.AppModuleSimulation = AppModule{} -) +var _ module.AppModuleSimulation = AppModule{} // GenerateGenesisState creates a randomized GenState of the module. func (AppModule) GenerateGenesisState(simState *module.SimulationState) { From 96da1dede53cace0b0b69c6a9c841996f60e2b73 Mon Sep 17 00:00:00 2001 From: 170210 Date: Fri, 19 Apr 2024 17:36:59 +0900 Subject: [PATCH 08/27] fix: fix appmodulebasic Signed-off-by: 170210 --- simapp/app.go | 1 + 1 file changed, 1 insertion(+) diff --git a/simapp/app.go b/simapp/app.go index e780b65f52..913376cc3a 100644 --- a/simapp/app.go +++ b/simapp/app.go @@ -141,6 +141,7 @@ var ( vesting.AppModuleBasic{}, tokenmodule.AppModuleBasic{}, collectionmodule.AppModuleBasic{}, + fswap.AppModuleBasic{}, ) // module account permissions From 065f4f2fd71989d38068e0dc9c94a9c5ee21e456 Mon Sep 17 00:00:00 2001 From: 170210 Date: Fri, 19 Apr 2024 17:43:35 +0900 Subject: [PATCH 09/27] chore: update CHANGLOG.md Signed-off-by: 170210 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a88a6c5ca3..7ca24bec61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Features * (consensus) [\#1178](https://github.com/Finschia/finschia-sdk/pull/1178) change the consensus from Ostracon to Tendermint v0.34.24 * (x/fswap) [\#1336](https://github.com/Finschia/finschia-sdk/pull/1336) Initialize fswap module +* (x/fswap) [\#1339](https://github.com/Finschia/finschia-sdk/pull/1339) Implement genesis and params ### Improvements * (docs) [\#1120](https://github.com/Finschia/finschia-sdk/pull/1120) Update links in x/foundation README.md From 0423ac7e23e8c977c96780d9dad2a24759b594cc Mon Sep 17 00:00:00 2001 From: 170210 Date: Tue, 23 Apr 2024 15:37:01 +0900 Subject: [PATCH 10/27] fix: use configuration instead of params Signed-off-by: 170210 --- CHANGELOG.md | 2 +- docs/core/proto-docs.md | 35 ---- proto/lbm/fswap/v1/genesis.proto | 4 +- proto/lbm/fswap/v1/params.proto | 13 -- simapp/app.go | 5 +- x/fswap/keeper/genesis.go | 10 +- x/fswap/keeper/genesis_test.go | 5 +- x/fswap/keeper/keeper.go | 3 + x/fswap/keeper/keeper_test.go | 2 +- x/fswap/keeper/params.go | 34 ---- x/fswap/keeper/params_test.go | 1 - x/fswap/module_simulation.go | 1 - x/fswap/testutil/test_helpers.go | 3 +- x/fswap/types/config.go | 24 +++ x/fswap/types/fswap.go | 4 +- x/fswap/types/genesis.go | 16 -- x/fswap/types/genesis.pb.go | 79 ++------ x/fswap/types/genesis_test.go | 24 --- x/fswap/types/keys.go | 5 +- x/fswap/types/params.go | 61 ------ x/fswap/types/params.pb.go | 319 ------------------------------- 21 files changed, 55 insertions(+), 595 deletions(-) delete mode 100644 proto/lbm/fswap/v1/params.proto delete mode 100644 x/fswap/keeper/params.go delete mode 100644 x/fswap/keeper/params_test.go create mode 100644 x/fswap/types/config.go delete mode 100644 x/fswap/types/params.go delete mode 100644 x/fswap/types/params.pb.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ca24bec61..8d2bc136b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,7 +41,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Features * (consensus) [\#1178](https://github.com/Finschia/finschia-sdk/pull/1178) change the consensus from Ostracon to Tendermint v0.34.24 * (x/fswap) [\#1336](https://github.com/Finschia/finschia-sdk/pull/1336) Initialize fswap module -* (x/fswap) [\#1339](https://github.com/Finschia/finschia-sdk/pull/1339) Implement genesis and params +* (x/fswap) [\#1339](https://github.com/Finschia/finschia-sdk/pull/1339) Implement fswap module's genesis ### Improvements * (docs) [\#1120](https://github.com/Finschia/finschia-sdk/pull/1120) Update links in x/foundation README.md diff --git a/docs/core/proto-docs.md b/docs/core/proto-docs.md index e9718495d8..f2929a91bc 100644 --- a/docs/core/proto-docs.md +++ b/docs/core/proto-docs.md @@ -862,9 +862,6 @@ - [lbm/fswap/v1/fswap.proto](#lbm/fswap/v1/fswap.proto) - [Swapped](#lbm.fswap.v1.Swapped) -- [lbm/fswap/v1/params.proto](#lbm/fswap/v1/params.proto) - - [Params](#lbm.fswap.v1.Params) - - [lbm/fswap/v1/genesis.proto](#lbm/fswap/v1/genesis.proto) - [GenesisState](#lbm.fswap.v1.GenesisState) @@ -12766,37 +12763,6 @@ Msg defines the foundation Msg service. - - - - - - - - - - - -

Top

- -## lbm/fswap/v1/params.proto - - - - - -### Params -Params defines the parameters for the module. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| `new_coin_denom` | [string](#string) | | new denomination for new coin after swap | - - - - - @@ -12822,7 +12788,6 @@ GenesisState defines the fswap module's genesis state. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| `params` | [Params](#lbm.fswap.v1.Params) | | | | `swapped` | [Swapped](#lbm.fswap.v1.Swapped) | | | diff --git a/proto/lbm/fswap/v1/genesis.proto b/proto/lbm/fswap/v1/genesis.proto index ae0a9ade75..db63f8fd4d 100644 --- a/proto/lbm/fswap/v1/genesis.proto +++ b/proto/lbm/fswap/v1/genesis.proto @@ -4,11 +4,9 @@ package lbm.fswap.v1; option go_package = "github.com/Finschia/finschia-sdk/x/fswap/types"; import "gogoproto/gogo.proto"; -import "lbm/fswap/v1/params.proto"; import "lbm/fswap/v1/fswap.proto"; // GenesisState defines the fswap module's genesis state. message GenesisState { - Params params = 1 [(gogoproto.nullable) = false]; - Swapped swapped =2 [(gogoproto.nullable) = false]; + Swapped swapped = 1 [(gogoproto.nullable) = false]; } diff --git a/proto/lbm/fswap/v1/params.proto b/proto/lbm/fswap/v1/params.proto deleted file mode 100644 index da236c9373..0000000000 --- a/proto/lbm/fswap/v1/params.proto +++ /dev/null @@ -1,13 +0,0 @@ -syntax = "proto3"; -package lbm.fswap.v1; - -option go_package = "github.com/Finschia/finschia-sdk/x/fswap/types"; - -import "gogoproto/gogo.proto"; - -// Params defines the parameters for the module. -message Params { - option (gogoproto.goproto_stringer) = false; - // new denomination for new coin after swap - string new_coin_denom = 1; -} diff --git a/simapp/app.go b/simapp/app.go index 913376cc3a..148cdbc50c 100644 --- a/simapp/app.go +++ b/simapp/app.go @@ -359,7 +359,8 @@ func NewSimApp( app.EvidenceKeeper = *evidenceKeeper /**** Phase 1 ****/ - app.FswapKeeper = fswapkeeper.NewKeeper(appCodec, keys[fswaptypes.StoreKey], app.AccountKeeper, app.BankKeeper) + fswapConfig := fswaptypes.DefaultConfig() + app.FswapKeeper = fswapkeeper.NewKeeper(appCodec, keys[fswaptypes.StoreKey], app.AccountKeeper, app.BankKeeper, fswapConfig) /**** Module Options ****/ @@ -736,7 +737,5 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino paramsKeeper.Subspace(crisistypes.ModuleName) paramsKeeper.Subspace(foundation.ModuleName) - paramsKeeper.Subspace(fswaptypes.ModuleName) - return paramsKeeper } diff --git a/x/fswap/keeper/genesis.go b/x/fswap/keeper/genesis.go index 3de1dc1809..8c2426754c 100644 --- a/x/fswap/keeper/genesis.go +++ b/x/fswap/keeper/genesis.go @@ -8,15 +8,12 @@ import ( // InitGenesis initializes the module's state from a provided genesis // state. func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types.GenesisState) { - if err := k.SetParams(ctx, genState.Params); err != nil { - panic(err) - } if err := k.SetSwapped(ctx, genState.Swapped); err != nil { panic(err) } - totalOldCoinsSupply := bk.GetSupply(ctx, types.DefaultOldCoins).Amount - totalNewCoinsSupply := types.DefaultSwapRate.MulInt(totalOldCoinsSupply) - totalNewCoins := sdk.NewDecCoinFromDec(genState.Params.NewCoinDenom, totalNewCoinsSupply) + totalOldCoinsSupply := bk.GetSupply(ctx, k.config.OldCoinDenom).Amount + totalNewCoinsSupply := k.config.SwapRate.MulInt(totalOldCoinsSupply) + totalNewCoins := sdk.NewDecCoinFromDec(k.config.NewCoinDenom, totalNewCoinsSupply) if err := k.SetTotalSupply(ctx, totalNewCoins); err != nil { panic(err) } @@ -25,7 +22,6 @@ func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types // ExportGenesis returns the capability module's exported genesis. func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { return &types.GenesisState{ - Params: k.GetParams(ctx), Swapped: k.GetSwapped(ctx), } } diff --git a/x/fswap/keeper/genesis_test.go b/x/fswap/keeper/genesis_test.go index b03ee56fff..8ec4905b35 100644 --- a/x/fswap/keeper/genesis_test.go +++ b/x/fswap/keeper/genesis_test.go @@ -10,11 +10,10 @@ func (s *KeeperTestSuite) TestInitAndExportGenesis() { s.keeper.InitGenesis(s.sdkCtx, s.bankKeeper, *types.DefaultGenesis()) got := s.keeper.ExportGenesis(s.sdkCtx) s.Require().NotNil(got) - s.Require().Equal(types.DefaultParams(), got.Params) s.Require().Equal(types.DefaultSwapped(), got.Swapped) gotTotalSupply := s.keeper.GetTotalSupply(s.sdkCtx) - totalNewCoinsSupply := types.DefaultSwapRate.MulInt(testutil.MockOldCoin.Amount) - expectedCoin := sdk.NewDecCoinFromDec(types.DefaultNewCoinDenom, totalNewCoinsSupply) + totalNewCoinsSupply := types.DefaultConfig().SwapRate.MulInt(testutil.MockOldCoin.Amount) + expectedCoin := sdk.NewDecCoinFromDec(types.DefaultConfig().NewCoinDenom, totalNewCoinsSupply) s.Require().Equal(expectedCoin, gotTotalSupply) } diff --git a/x/fswap/keeper/keeper.go b/x/fswap/keeper/keeper.go index 85de2b850c..3036a079e2 100644 --- a/x/fswap/keeper/keeper.go +++ b/x/fswap/keeper/keeper.go @@ -17,6 +17,7 @@ type ( storeKey storetypes.StoreKey accountKeeper types.AccountKeeper bankKeeper types.BankKeeper + config types.Config } ) @@ -25,12 +26,14 @@ func NewKeeper( storeKey storetypes.StoreKey, ak types.AccountKeeper, bk types.BankKeeper, + config types.Config, ) Keeper { return Keeper{ cdc: cdc, storeKey: storeKey, accountKeeper: ak, bankKeeper: bk, + config: config, } } diff --git a/x/fswap/keeper/keeper_test.go b/x/fswap/keeper/keeper_test.go index d2a312f402..215ac7695d 100644 --- a/x/fswap/keeper/keeper_test.go +++ b/x/fswap/keeper/keeper_test.go @@ -32,7 +32,7 @@ func TestKeeperTestSuite(t *testing.T) { func (s *KeeperTestSuite) SetupTest() { ctrl := gomock.NewController(s.T()) bankKeeper := testutil.NewMockBankKeeper(ctrl) - bankKeeper.EXPECT().GetSupply(gomock.Any(), "cony").Return(testutil.MockOldCoin) + bankKeeper.EXPECT().GetSupply(gomock.Any(), types.DefaultConfig().OldCoinDenom).Return(testutil.MockOldCoin) s.bankKeeper = bankKeeper checkTx := false app := simapp.Setup(checkTx) diff --git a/x/fswap/keeper/params.go b/x/fswap/keeper/params.go deleted file mode 100644 index 25ea6b4851..0000000000 --- a/x/fswap/keeper/params.go +++ /dev/null @@ -1,34 +0,0 @@ -package keeper - -import ( - sdk "github.com/Finschia/finschia-sdk/types" - "github.com/Finschia/finschia-sdk/x/fswap/types" -) - -// GetParams get all parameters as types.Params -func (k Keeper) GetParams(ctx sdk.Context) types.Params { - store := ctx.KVStore(k.storeKey) - bz := store.Get([]byte{types.ParamsKey}) - var params types.Params - if bz == nil { - panic(types.ErrParamsNotFound) - } - k.cdc.MustUnmarshal(bz, ¶ms) - return params -} - -// SetParams set the params -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { - store := ctx.KVStore(k.storeKey) - bz, err := k.cdc.Marshal(¶ms) - if err != nil { - return err - } - store.Set([]byte{types.ParamsKey}, bz) - return nil -} - -func (k Keeper) NewCoinDenom(ctx sdk.Context) string { - params := k.GetParams(ctx) - return params.NewCoinDenom -} diff --git a/x/fswap/keeper/params_test.go b/x/fswap/keeper/params_test.go deleted file mode 100644 index 9429264902..0000000000 --- a/x/fswap/keeper/params_test.go +++ /dev/null @@ -1 +0,0 @@ -package keeper_test diff --git a/x/fswap/module_simulation.go b/x/fswap/module_simulation.go index 70f7369bc4..36f7438be3 100644 --- a/x/fswap/module_simulation.go +++ b/x/fswap/module_simulation.go @@ -14,7 +14,6 @@ var _ module.AppModuleSimulation = AppModule{} // GenerateGenesisState creates a randomized GenState of the module. func (AppModule) GenerateGenesisState(simState *module.SimulationState) { fswapGenesis := types.GenesisState{ - Params: types.DefaultParams(), Swapped: types.DefaultSwapped(), } simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&fswapGenesis) diff --git a/x/fswap/testutil/test_helpers.go b/x/fswap/testutil/test_helpers.go index 51fa635a01..d28fc77428 100644 --- a/x/fswap/testutil/test_helpers.go +++ b/x/fswap/testutil/test_helpers.go @@ -2,6 +2,7 @@ package testutil import ( sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/x/fswap/types" ) -var MockOldCoin = sdk.NewCoin("cony", sdk.NewInt(1000)) +var MockOldCoin = sdk.NewCoin(types.DefaultConfig().OldCoinDenom, sdk.NewInt(1000)) diff --git a/x/fswap/types/config.go b/x/fswap/types/config.go new file mode 100644 index 0000000000..99c589c92c --- /dev/null +++ b/x/fswap/types/config.go @@ -0,0 +1,24 @@ +package types + +import ( + sdk "github.com/Finschia/finschia-sdk/types" +) + +// Config is a config struct used for intialising the fswap module to avoid using globals. +type Config struct { + // OldCoinDenom defines the old coin denom. + OldCoinDenom string + // NewCoinDenom defines the new coin denom. + NewCoinDenom string + // SwapRate defines the swap rate. + SwapRate sdk.Dec +} + +// DefaultConfig returns the default config for fswap. +func DefaultConfig() Config { + return Config{ + OldCoinDenom: "cony", + NewCoinDenom: "PDT", + SwapRate: sdk.NewDecWithPrec(148079656, 6), + } +} diff --git a/x/fswap/types/fswap.go b/x/fswap/types/fswap.go index df3fe2e06c..949416b323 100644 --- a/x/fswap/types/fswap.go +++ b/x/fswap/types/fswap.go @@ -22,8 +22,8 @@ func NewSwapped( // DefaultSwapped returns an initial Swapped object func DefaultSwapped() Swapped { return NewSwapped( - sdk.NewCoin("cony", sdk.NewInt(0)), - sdk.NewCoin(DefaultNewCoinDenom, sdk.NewInt(0)), + sdk.NewCoin(DefaultConfig().OldCoinDenom, sdk.NewInt(0)), + sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(0)), ) } diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index c4e1e67b57..05d63e6f93 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -1,19 +1,8 @@ package types -import ( - sdk "github.com/Finschia/finschia-sdk/types" -) - -const ( - DefaultOldCoins string = "cony" -) - -var DefaultSwapRate = sdk.NewDecWithPrec(148079656, 6) - // DefaultGenesis returns the default Capability genesis state func DefaultGenesis() *GenesisState { return &GenesisState{ - Params: DefaultParams(), Swapped: DefaultSwapped(), } } @@ -21,11 +10,6 @@ func DefaultGenesis() *GenesisState { // Validate performs basic genesis state validation returning an error upon any // failure. func (gs GenesisState) Validate() error { - // this line is used by starport scaffolding # genesis/types/validate - if err := gs.Params.Validate(); err != nil { - return err - } - if err := gs.Swapped.Validate(); err != nil { return err } diff --git a/x/fswap/types/genesis.pb.go b/x/fswap/types/genesis.pb.go index af2475beea..747853db8f 100644 --- a/x/fswap/types/genesis.pb.go +++ b/x/fswap/types/genesis.pb.go @@ -25,8 +25,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the fswap module's genesis state. type GenesisState struct { - Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` - Swapped Swapped `protobuf:"bytes,2,opt,name=swapped,proto3" json:"swapped"` + Swapped Swapped `protobuf:"bytes,1,opt,name=swapped,proto3" json:"swapped"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -62,13 +61,6 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo -func (m *GenesisState) GetParams() Params { - if m != nil { - return m.Params - } - return Params{} -} - func (m *GenesisState) GetSwapped() Swapped { if m != nil { return m.Swapped @@ -83,22 +75,20 @@ func init() { func init() { proto.RegisterFile("lbm/fswap/v1/genesis.proto", fileDescriptor_94e309cb1db27661) } var fileDescriptor_94e309cb1db27661 = []byte{ - // 231 bytes of a gzipped FileDescriptorProto + // 200 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xca, 0x49, 0xca, 0xd5, 0x4f, 0x2b, 0x2e, 0x4f, 0x2c, 0xd0, 0x2f, 0x33, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0x49, 0xca, 0xd5, 0x03, 0xcb, 0xe9, 0x95, - 0x19, 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x29, 0x49, - 0x14, 0xfd, 0x05, 0x89, 0x45, 0x89, 0xb9, 0x50, 0xed, 0x52, 0x12, 0x28, 0x52, 0x10, 0x73, 0xc0, - 0x32, 0x4a, 0x95, 0x5c, 0x3c, 0xee, 0x10, 0x9b, 0x82, 0x4b, 0x12, 0x4b, 0x52, 0x85, 0x8c, 0xb8, - 0xd8, 0x20, 0x3a, 0x25, 0x18, 0x15, 0x18, 0x35, 0xb8, 0x8d, 0x44, 0xf4, 0x90, 0x6d, 0xd6, 0x0b, - 0x00, 0xcb, 0x39, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x10, 0x04, 0x55, 0x29, 0x64, 0xca, 0xc5, 0x0e, - 0x92, 0x2f, 0x48, 0x4d, 0x91, 0x60, 0x02, 0x6b, 0x12, 0x45, 0xd5, 0x14, 0x0c, 0x91, 0x84, 0xea, - 0x82, 0xa9, 0x75, 0xf2, 0x38, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, - 0x18, 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0xbd, - 0xf4, 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0x7d, 0xb7, 0xcc, 0xbc, 0xe2, 0xe4, - 0x8c, 0xcc, 0x44, 0xfd, 0x34, 0x28, 0x43, 0xb7, 0x38, 0x25, 0x5b, 0xbf, 0x02, 0xea, 0x9b, 0x92, - 0xca, 0x82, 0xd4, 0xe2, 0x24, 0x36, 0xb0, 0x5f, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x23, - 0x15, 0x87, 0x48, 0x42, 0x01, 0x00, 0x00, + 0x19, 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x29, 0x09, + 0x14, 0xfd, 0x10, 0xc5, 0x60, 0x19, 0x25, 0x57, 0x2e, 0x1e, 0x77, 0x88, 0x71, 0xc1, 0x25, 0x89, + 0x25, 0xa9, 0x42, 0xa6, 0x5c, 0xec, 0x20, 0xd9, 0x82, 0xd4, 0x14, 0x09, 0x46, 0x05, 0x46, 0x0d, + 0x6e, 0x23, 0x51, 0x3d, 0x64, 0xf3, 0xf5, 0x82, 0x21, 0x92, 0x4e, 0x2c, 0x27, 0xee, 0xc9, 0x33, + 0x04, 0xc1, 0xd4, 0x3a, 0x79, 0x9c, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, + 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, + 0x5e, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0xbe, 0x5b, 0x66, 0x5e, 0x71, + 0x72, 0x46, 0x66, 0xa2, 0x7e, 0x1a, 0x94, 0xa1, 0x5b, 0x9c, 0x92, 0xad, 0x5f, 0x01, 0x75, 0x59, + 0x49, 0x65, 0x41, 0x6a, 0x71, 0x12, 0x1b, 0xd8, 0x5d, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x89, 0x35, 0x83, 0x83, 0xf3, 0x00, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -130,16 +120,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 - { - size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenesis(dAtA, i, uint64(size)) - } - i-- dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -161,8 +141,6 @@ func (m *GenesisState) Size() (n int) { } var l int _ = l - l = m.Params.Size() - n += 1 + l + sovGenesis(uint64(l)) l = m.Swapped.Size() n += 1 + l + sovGenesis(uint64(l)) return n @@ -204,39 +182,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenesis - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenesis - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenesis - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Swapped", wireType) } diff --git a/x/fswap/types/genesis_test.go b/x/fswap/types/genesis_test.go index 671d8bc6ff..82cea058cb 100644 --- a/x/fswap/types/genesis_test.go +++ b/x/fswap/types/genesis_test.go @@ -25,32 +25,9 @@ func TestGenesisStateValidate(t *testing.T) { genState: &types.GenesisState{}, valid: false, }, - { - desc: "empty params", - genState: &types.GenesisState{ - Swapped: types.DefaultSwapped(), - }, - valid: false, - }, - { - desc: "empty swapped", - genState: &types.GenesisState{ - Params: types.DefaultParams(), - }, - valid: false, - }, - { - desc: "empty newCoinDenom in params", - genState: &types.GenesisState{ - Params: types.Params{}, - Swapped: types.DefaultSwapped(), - }, - valid: false, - }, { desc: "empty oldCoin in Swapped", genState: &types.GenesisState{ - Params: types.DefaultParams(), Swapped: types.Swapped{ NewCoinAmount: sdk.NewInt64Coin("atom", 1), }, @@ -60,7 +37,6 @@ func TestGenesisStateValidate(t *testing.T) { { desc: "empty newCoin in Swapped", genState: &types.GenesisState{ - Params: types.DefaultParams(), Swapped: types.Swapped{ OldCoinAmount: sdk.NewInt64Coin("cony", 1), }, diff --git a/x/fswap/types/keys.go b/x/fswap/types/keys.go index 6089626eaf..e8e1a73024 100644 --- a/x/fswap/types/keys.go +++ b/x/fswap/types/keys.go @@ -18,9 +18,8 @@ const ( ) var ( - ParamsKey = byte(0x00) - SwappedKey = byte(0x01) - TotalSupplyKey = byte(0x02) + SwappedKey = byte(0x00) + TotalSupplyKey = byte(0x01) ) func KeyPrefix(p string) []byte { diff --git a/x/fswap/types/params.go b/x/fswap/types/params.go deleted file mode 100644 index bcb31f7959..0000000000 --- a/x/fswap/types/params.go +++ /dev/null @@ -1,61 +0,0 @@ -package types - -import ( - "errors" - fmt "fmt" - "strings" - - "gopkg.in/yaml.v2" - - sdk "github.com/Finschia/finschia-sdk/types" -) - -const ( - DefaultNewCoinDenom string = "PDT" -) - -// NewParams creates a new Params instance -func NewParams( - newCoinDenom string, -) Params { - return Params{ - NewCoinDenom: newCoinDenom, - } -} - -// DefaultParams returns a default set of parameters -func DefaultParams() Params { - return NewParams( - DefaultNewCoinDenom, - ) -} - -func validateNewCoinDenom(i interface{}) error { - v, ok := i.(string) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - if strings.TrimSpace(v) == "" { - return errors.New("new denom cannot be blank") - } - if err := sdk.ValidateDenom(v); err != nil { - return err - } - - return nil -} - -// Validate validates the set of params -func (p Params) Validate() error { - if err := validateNewCoinDenom(p.NewCoinDenom); err != nil { - return err - } - return nil -} - -// String implements the Stringer interface. -func (p Params) String() string { - out, _ := yaml.Marshal(p) - return string(out) -} diff --git a/x/fswap/types/params.pb.go b/x/fswap/types/params.pb.go deleted file mode 100644 index fd779ed5a6..0000000000 --- a/x/fswap/types/params.pb.go +++ /dev/null @@ -1,319 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: lbm/fswap/v1/params.proto - -package types - -import ( - fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" - io "io" - math "math" - math_bits "math/bits" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package - -// Params defines the parameters for the module. -type Params struct { - // new denomination for new coin after swap - NewCoinDenom string `protobuf:"bytes,1,opt,name=new_coin_denom,json=newCoinDenom,proto3" json:"new_coin_denom,omitempty"` -} - -func (m *Params) Reset() { *m = Params{} } -func (*Params) ProtoMessage() {} -func (*Params) Descriptor() ([]byte, []int) { - return fileDescriptor_15e620b81032c44d, []int{0} -} -func (m *Params) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Params.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *Params) XXX_Merge(src proto.Message) { - xxx_messageInfo_Params.Merge(m, src) -} -func (m *Params) XXX_Size() int { - return m.Size() -} -func (m *Params) XXX_DiscardUnknown() { - xxx_messageInfo_Params.DiscardUnknown(m) -} - -var xxx_messageInfo_Params proto.InternalMessageInfo - -func (m *Params) GetNewCoinDenom() string { - if m != nil { - return m.NewCoinDenom - } - return "" -} - -func init() { - proto.RegisterType((*Params)(nil), "lbm.fswap.v1.Params") -} - -func init() { proto.RegisterFile("lbm/fswap/v1/params.proto", fileDescriptor_15e620b81032c44d) } - -var fileDescriptor_15e620b81032c44d = []byte{ - // 194 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0x49, 0xca, 0xd5, - 0x4f, 0x2b, 0x2e, 0x4f, 0x2c, 0xd0, 0x2f, 0x33, 0xd4, 0x2f, 0x48, 0x2c, 0x4a, 0xcc, 0x2d, 0xd6, - 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0x49, 0xca, 0xd5, 0x03, 0x4b, 0xe9, 0x95, 0x19, - 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x25, 0x13, 0x2e, - 0xb6, 0x00, 0xb0, 0x1e, 0x21, 0x15, 0x2e, 0xbe, 0xbc, 0xd4, 0xf2, 0xf8, 0xe4, 0xfc, 0xcc, 0xbc, - 0xf8, 0x94, 0xd4, 0xbc, 0xfc, 0x5c, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x9e, 0xbc, 0xd4, - 0x72, 0xe7, 0xfc, 0xcc, 0x3c, 0x17, 0x90, 0x98, 0x15, 0xcb, 0x8c, 0x05, 0xf2, 0x0c, 0x4e, 0x1e, - 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, - 0x0c, 0x17, 0x1e, 0xcb, 0x31, 0xdc, 0x78, 0x2c, 0xc7, 0x10, 0xa5, 0x97, 0x9e, 0x59, 0x92, 0x51, - 0x9a, 0xa4, 0x97, 0x9c, 0x9f, 0xab, 0xef, 0x96, 0x99, 0x57, 0x9c, 0x9c, 0x91, 0x99, 0xa8, 0x9f, - 0x06, 0x65, 0xe8, 0x16, 0xa7, 0x64, 0xeb, 0x57, 0x40, 0x5d, 0x5b, 0x52, 0x59, 0x90, 0x5a, 0x9c, - 0xc4, 0x06, 0x76, 0x86, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x90, 0xbf, 0xad, 0x40, 0xc7, 0x00, - 0x00, 0x00, -} - -func (m *Params) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Params) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.NewCoinDenom) > 0 { - i -= len(m.NewCoinDenom) - copy(dAtA[i:], m.NewCoinDenom) - i = encodeVarintParams(dAtA, i, uint64(len(m.NewCoinDenom))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func encodeVarintParams(dAtA []byte, offset int, v uint64) int { - offset -= sovParams(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Params) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.NewCoinDenom) - if l > 0 { - n += 1 + l + sovParams(uint64(l)) - } - return n -} - -func sovParams(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozParams(x uint64) (n int) { - return sovParams(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *Params) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowParams - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Params: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewCoinDenom", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowParams - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthParams - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthParams - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.NewCoinDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipParams(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthParams - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipParams(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - depth := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowParams - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowParams - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - case 1: - iNdEx += 8 - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowParams - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if length < 0 { - return 0, ErrInvalidLengthParams - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupParams - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthParams - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthParams = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowParams = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupParams = fmt.Errorf("proto: unexpected end of group") -) From 8fcbab82578753aef9307fec2c945d6eb766f3ef Mon Sep 17 00:00:00 2001 From: 170210 Date: Tue, 23 Apr 2024 18:33:32 +0900 Subject: [PATCH 11/27] chore: refactor new&default fswapped Signed-off-by: 170210 --- x/fswap/types/fswap.go | 12 ++++-------- x/fswap/types/genesis.go | 11 ++++++++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/x/fswap/types/fswap.go b/x/fswap/types/fswap.go index 949416b323..14c25466de 100644 --- a/x/fswap/types/fswap.go +++ b/x/fswap/types/fswap.go @@ -10,21 +10,17 @@ import ( // NewSwapped creates a new Swapped instance func NewSwapped( - oldCoin sdk.Coin, - newCoin sdk.Coin, + config Config, ) Swapped { return Swapped{ - OldCoinAmount: oldCoin, - NewCoinAmount: newCoin, + OldCoinAmount: sdk.NewCoin(config.OldCoinDenom, sdk.NewInt(0)), + NewCoinAmount: sdk.NewCoin(config.NewCoinDenom, sdk.NewInt(0)), } } // DefaultSwapped returns an initial Swapped object func DefaultSwapped() Swapped { - return NewSwapped( - sdk.NewCoin(DefaultConfig().OldCoinDenom, sdk.NewInt(0)), - sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(0)), - ) + return NewSwapped(DefaultConfig()) } func validateCoin(i interface{}) error { diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index 05d63e6f93..d53ba4f320 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -1,12 +1,17 @@ package types -// DefaultGenesis returns the default Capability genesis state -func DefaultGenesis() *GenesisState { +// NewGenesis creates a new genesis state +func NewGenesisState(config Config) *GenesisState { return &GenesisState{ - Swapped: DefaultSwapped(), + Swapped: NewSwapped(config), } } +// DefaultGenesis returns the default Capability genesis state +func DefaultGenesis() *GenesisState { + return NewGenesisState(DefaultConfig()) +} + // Validate performs basic genesis state validation returning an error upon any // failure. func (gs GenesisState) Validate() error { From c91259f916785d10ae848f447be9124c756ae32a Mon Sep 17 00:00:00 2001 From: 170210 Date: Tue, 23 Apr 2024 19:40:26 +0900 Subject: [PATCH 12/27] fix: add total_supply into genesisStatus & remove calculate logic Signed-off-by: 170210 --- docs/core/proto-docs.md | 1 + proto/lbm/fswap/v1/fswap.proto | 2 +- proto/lbm/fswap/v1/genesis.proto | 5 +- x/ERRORS.md | 4 +- x/fswap/keeper/fswap.go | 12 ++--- x/fswap/keeper/genesis.go | 10 ++-- x/fswap/keeper/genesis_test.go | 10 +--- x/fswap/keeper/keeper_test.go | 1 - x/fswap/module.go | 2 +- x/fswap/testutil/test_helpers.go | 8 --- x/fswap/types/config.go | 4 +- x/fswap/types/errors.go | 4 +- x/fswap/types/fswap.go | 6 +-- x/fswap/types/genesis.go | 17 ++++-- x/fswap/types/genesis.pb.go | 90 ++++++++++++++++++++++++++------ x/fswap/types/genesis_test.go | 9 ++++ x/fswap/types/keys.go | 4 +- 17 files changed, 127 insertions(+), 62 deletions(-) delete mode 100644 x/fswap/testutil/test_helpers.go diff --git a/docs/core/proto-docs.md b/docs/core/proto-docs.md index f2929a91bc..f1a5b33c58 100644 --- a/docs/core/proto-docs.md +++ b/docs/core/proto-docs.md @@ -12789,6 +12789,7 @@ GenesisState defines the fswap module's genesis state. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | `swapped` | [Swapped](#lbm.fswap.v1.Swapped) | | | +| `swappable_new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | diff --git a/proto/lbm/fswap/v1/fswap.proto b/proto/lbm/fswap/v1/fswap.proto index 827f5f3e32..ca34026aca 100644 --- a/proto/lbm/fswap/v1/fswap.proto +++ b/proto/lbm/fswap/v1/fswap.proto @@ -6,7 +6,7 @@ option go_package = "github.com/Finschia/finschia-sdk/x/fswap/types"; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; -message Swapped{ +message Swapped { cosmos.base.v1beta1.Coin old_coin_amount = 1 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; cosmos.base.v1beta1.Coin new_coin_amount = 2 diff --git a/proto/lbm/fswap/v1/genesis.proto b/proto/lbm/fswap/v1/genesis.proto index db63f8fd4d..3e95853316 100644 --- a/proto/lbm/fswap/v1/genesis.proto +++ b/proto/lbm/fswap/v1/genesis.proto @@ -5,8 +5,11 @@ option go_package = "github.com/Finschia/finschia-sdk/x/fswap/types"; import "gogoproto/gogo.proto"; import "lbm/fswap/v1/fswap.proto"; +import "cosmos/base/v1beta1/coin.proto"; // GenesisState defines the fswap module's genesis state. message GenesisState { - Swapped swapped = 1 [(gogoproto.nullable) = false]; + Swapped swapped = 1 [(gogoproto.nullable) = false]; + cosmos.base.v1beta1.Coin swappable_new_coin_amount = 2 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; } diff --git a/x/ERRORS.md b/x/ERRORS.md index abe509d0c6..75bcd1fcc7 100644 --- a/x/ERRORS.md +++ b/x/ERRORS.md @@ -177,8 +177,8 @@ |Error Name|Codespace|Code|Description| |:-|:-|:-|:-| -|ErrParamsNotFound|fswap|1100|params does not exist| -|ErrSwappedNotFound|fswap|1101|swapped does not exist| +|ErrSwappedNotFound|fswap|1100|swapped does not exist| +|ErrTotalSupplyNotFound|fswap|1101|swappable new coin amount does not exist| >You can also find detailed information in the following Errors.go files: * [fswap/types/errors.go](fswap/types/errors.go) diff --git a/x/fswap/keeper/fswap.go b/x/fswap/keeper/fswap.go index dc0a60ad31..5ad8af4452 100644 --- a/x/fswap/keeper/fswap.go +++ b/x/fswap/keeper/fswap.go @@ -29,23 +29,23 @@ func (k Keeper) SetSwapped(ctx sdk.Context, swapped types.Swapped) error { return nil } -func (k Keeper) GetTotalSupply(ctx sdk.Context) sdk.DecCoin { +func (k Keeper) GetTotalSupply(ctx sdk.Context) sdk.Coin { store := ctx.KVStore(k.storeKey) - bz := store.Get([]byte{types.TotalSupplyKey}) - var totalSupply sdk.DecCoin + bz := store.Get([]byte{types.SwappableNewCoinAmountKey}) + var totalSupply sdk.Coin if bz == nil { - panic(types.ErrParamsNotFound) + panic(types.ErrTotalSupplyNotFound) } k.cdc.MustUnmarshal(bz, &totalSupply) return totalSupply } -func (k Keeper) SetTotalSupply(ctx sdk.Context, totalSupply sdk.DecCoin) error { +func (k Keeper) SetTotalSupply(ctx sdk.Context, totalSupply sdk.Coin) error { store := ctx.KVStore(k.storeKey) bz, err := k.cdc.Marshal(&totalSupply) if err != nil { return err } - store.Set([]byte{types.TotalSupplyKey}, bz) + store.Set([]byte{types.SwappableNewCoinAmountKey}, bz) return nil } diff --git a/x/fswap/keeper/genesis.go b/x/fswap/keeper/genesis.go index 8c2426754c..a8f9713235 100644 --- a/x/fswap/keeper/genesis.go +++ b/x/fswap/keeper/genesis.go @@ -7,14 +7,11 @@ import ( // InitGenesis initializes the module's state from a provided genesis // state. -func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types.GenesisState) { +func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) { if err := k.SetSwapped(ctx, genState.Swapped); err != nil { panic(err) } - totalOldCoinsSupply := bk.GetSupply(ctx, k.config.OldCoinDenom).Amount - totalNewCoinsSupply := k.config.SwapRate.MulInt(totalOldCoinsSupply) - totalNewCoins := sdk.NewDecCoinFromDec(k.config.NewCoinDenom, totalNewCoinsSupply) - if err := k.SetTotalSupply(ctx, totalNewCoins); err != nil { + if err := k.SetTotalSupply(ctx, genState.SwappableNewCoinAmount); err != nil { panic(err) } } @@ -22,6 +19,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, bk types.BankKeeper, genState types // ExportGenesis returns the capability module's exported genesis. func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { return &types.GenesisState{ - Swapped: k.GetSwapped(ctx), + Swapped: k.GetSwapped(ctx), + SwappableNewCoinAmount: k.GetTotalSupply(ctx), } } diff --git a/x/fswap/keeper/genesis_test.go b/x/fswap/keeper/genesis_test.go index 8ec4905b35..b898a0379b 100644 --- a/x/fswap/keeper/genesis_test.go +++ b/x/fswap/keeper/genesis_test.go @@ -1,19 +1,13 @@ package keeper_test import ( - sdk "github.com/Finschia/finschia-sdk/types" - "github.com/Finschia/finschia-sdk/x/fswap/testutil" "github.com/Finschia/finschia-sdk/x/fswap/types" ) func (s *KeeperTestSuite) TestInitAndExportGenesis() { - s.keeper.InitGenesis(s.sdkCtx, s.bankKeeper, *types.DefaultGenesis()) + s.keeper.InitGenesis(s.sdkCtx, *types.DefaultGenesis()) got := s.keeper.ExportGenesis(s.sdkCtx) s.Require().NotNil(got) s.Require().Equal(types.DefaultSwapped(), got.Swapped) - - gotTotalSupply := s.keeper.GetTotalSupply(s.sdkCtx) - totalNewCoinsSupply := types.DefaultConfig().SwapRate.MulInt(testutil.MockOldCoin.Amount) - expectedCoin := sdk.NewDecCoinFromDec(types.DefaultConfig().NewCoinDenom, totalNewCoinsSupply) - s.Require().Equal(expectedCoin, gotTotalSupply) + s.Require().Equal(types.DefaultTotalSupply, got.SwappableNewCoinAmount) } diff --git a/x/fswap/keeper/keeper_test.go b/x/fswap/keeper/keeper_test.go index 215ac7695d..dc87a7e267 100644 --- a/x/fswap/keeper/keeper_test.go +++ b/x/fswap/keeper/keeper_test.go @@ -32,7 +32,6 @@ func TestKeeperTestSuite(t *testing.T) { func (s *KeeperTestSuite) SetupTest() { ctrl := gomock.NewController(s.T()) bankKeeper := testutil.NewMockBankKeeper(ctrl) - bankKeeper.EXPECT().GetSupply(gomock.Any(), types.DefaultConfig().OldCoinDenom).Return(testutil.MockOldCoin) s.bankKeeper = bankKeeper checkTx := false app := simapp.Setup(checkTx) diff --git a/x/fswap/module.go b/x/fswap/module.go index bc1726cca6..724b883a9e 100644 --- a/x/fswap/module.go +++ b/x/fswap/module.go @@ -145,7 +145,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, gs json.Ra // Initialize global index to index in genesis state cdc.MustUnmarshalJSON(gs, &genState) - am.keeper.InitGenesis(ctx, am.bankKeeper, genState) + am.keeper.InitGenesis(ctx, genState) return []abci.ValidatorUpdate{} } diff --git a/x/fswap/testutil/test_helpers.go b/x/fswap/testutil/test_helpers.go deleted file mode 100644 index d28fc77428..0000000000 --- a/x/fswap/testutil/test_helpers.go +++ /dev/null @@ -1,8 +0,0 @@ -package testutil - -import ( - sdk "github.com/Finschia/finschia-sdk/types" - "github.com/Finschia/finschia-sdk/x/fswap/types" -) - -var MockOldCoin = sdk.NewCoin(types.DefaultConfig().OldCoinDenom, sdk.NewInt(1000)) diff --git a/x/fswap/types/config.go b/x/fswap/types/config.go index 99c589c92c..d2e57a05aa 100644 --- a/x/fswap/types/config.go +++ b/x/fswap/types/config.go @@ -11,7 +11,7 @@ type Config struct { // NewCoinDenom defines the new coin denom. NewCoinDenom string // SwapRate defines the swap rate. - SwapRate sdk.Dec + SwapRate sdk.Int } // DefaultConfig returns the default config for fswap. @@ -19,6 +19,6 @@ func DefaultConfig() Config { return Config{ OldCoinDenom: "cony", NewCoinDenom: "PDT", - SwapRate: sdk.NewDecWithPrec(148079656, 6), + SwapRate: sdk.NewInt(148079656000000), } } diff --git a/x/fswap/types/errors.go b/x/fswap/types/errors.go index b903b1b454..8b2884aba8 100644 --- a/x/fswap/types/errors.go +++ b/x/fswap/types/errors.go @@ -8,6 +8,6 @@ import ( // x/fswap module sentinel errors var ( - ErrParamsNotFound = sdkerrors.Register(ModuleName, 1100, "params does not exist") - ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1101, "swapped does not exist") + ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1100, "swapped does not exist") + ErrTotalSupplyNotFound = sdkerrors.Register(ModuleName, 1101, "swappable new coin amount does not exist") ) diff --git a/x/fswap/types/fswap.go b/x/fswap/types/fswap.go index 14c25466de..fa55cc508c 100644 --- a/x/fswap/types/fswap.go +++ b/x/fswap/types/fswap.go @@ -23,7 +23,7 @@ func DefaultSwapped() Swapped { return NewSwapped(DefaultConfig()) } -func validateCoin(i interface{}) error { +func ValidateCoin(i interface{}) error { v, ok := i.(sdk.Coin) if !ok { return fmt.Errorf("invalid coin amount: %T", i) @@ -41,10 +41,10 @@ func validateCoin(i interface{}) error { // Validate validates the set of swapped func (s Swapped) Validate() error { - if err := validateCoin(s.OldCoinAmount); err != nil { + if err := ValidateCoin(s.OldCoinAmount); err != nil { return err } - if err := validateCoin(s.NewCoinAmount); err != nil { + if err := ValidateCoin(s.NewCoinAmount); err != nil { return err } return nil diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index d53ba4f320..ff9c72a028 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -1,15 +1,22 @@ package types +import sdk "github.com/Finschia/finschia-sdk/types" + +var ( + DefaultTotalSupply = sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(100000)) +) + // NewGenesis creates a new genesis state -func NewGenesisState(config Config) *GenesisState { +func NewGenesisState(config Config, swappableNewCoinAmount sdk.Coin) *GenesisState { return &GenesisState{ - Swapped: NewSwapped(config), + Swapped: NewSwapped(config), + SwappableNewCoinAmount: swappableNewCoinAmount, } } // DefaultGenesis returns the default Capability genesis state func DefaultGenesis() *GenesisState { - return NewGenesisState(DefaultConfig()) + return NewGenesisState(DefaultConfig(), DefaultTotalSupply) } // Validate performs basic genesis state validation returning an error upon any @@ -18,6 +25,8 @@ func (gs GenesisState) Validate() error { if err := gs.Swapped.Validate(); err != nil { return err } - + if err := ValidateCoin(gs.SwappableNewCoinAmount); err != nil { + return err + } return nil } diff --git a/x/fswap/types/genesis.pb.go b/x/fswap/types/genesis.pb.go index 747853db8f..e0d3c262c3 100644 --- a/x/fswap/types/genesis.pb.go +++ b/x/fswap/types/genesis.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + types "github.com/Finschia/finschia-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" io "io" @@ -25,7 +26,8 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the fswap module's genesis state. type GenesisState struct { - Swapped Swapped `protobuf:"bytes,1,opt,name=swapped,proto3" json:"swapped"` + Swapped Swapped `protobuf:"bytes,1,opt,name=swapped,proto3" json:"swapped"` + SwappableNewCoinAmount types.Coin `protobuf:"bytes,2,opt,name=swappable_new_coin_amount,json=swappableNewCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"swappable_new_coin_amount"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -68,6 +70,13 @@ func (m *GenesisState) GetSwapped() Swapped { return Swapped{} } +func (m *GenesisState) GetSwappableNewCoinAmount() types.Coin { + if m != nil { + return m.SwappableNewCoinAmount + } + return types.Coin{} +} + func init() { proto.RegisterType((*GenesisState)(nil), "lbm.fswap.v1.GenesisState") } @@ -75,20 +84,26 @@ func init() { func init() { proto.RegisterFile("lbm/fswap/v1/genesis.proto", fileDescriptor_94e309cb1db27661) } var fileDescriptor_94e309cb1db27661 = []byte{ - // 200 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xca, 0x49, 0xca, 0xd5, - 0x4f, 0x2b, 0x2e, 0x4f, 0x2c, 0xd0, 0x2f, 0x33, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, - 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0x49, 0xca, 0xd5, 0x03, 0xcb, 0xe9, 0x95, - 0x19, 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x29, 0x09, - 0x14, 0xfd, 0x10, 0xc5, 0x60, 0x19, 0x25, 0x57, 0x2e, 0x1e, 0x77, 0x88, 0x71, 0xc1, 0x25, 0x89, - 0x25, 0xa9, 0x42, 0xa6, 0x5c, 0xec, 0x20, 0xd9, 0x82, 0xd4, 0x14, 0x09, 0x46, 0x05, 0x46, 0x0d, - 0x6e, 0x23, 0x51, 0x3d, 0x64, 0xf3, 0xf5, 0x82, 0x21, 0x92, 0x4e, 0x2c, 0x27, 0xee, 0xc9, 0x33, - 0x04, 0xc1, 0xd4, 0x3a, 0x79, 0x9c, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, - 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, - 0x5e, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0xbe, 0x5b, 0x66, 0x5e, 0x71, - 0x72, 0x46, 0x66, 0xa2, 0x7e, 0x1a, 0x94, 0xa1, 0x5b, 0x9c, 0x92, 0xad, 0x5f, 0x01, 0x75, 0x59, - 0x49, 0x65, 0x41, 0x6a, 0x71, 0x12, 0x1b, 0xd8, 0x5d, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x89, 0x35, 0x83, 0x83, 0xf3, 0x00, 0x00, 0x00, + // 294 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x50, 0xbf, 0x4a, 0xc4, 0x30, + 0x18, 0x6f, 0x44, 0x14, 0xea, 0x4d, 0x45, 0xa5, 0xd7, 0x21, 0x27, 0x4e, 0x82, 0x98, 0x50, 0x0f, + 0x1f, 0xc0, 0x0a, 0xea, 0xe4, 0x70, 0xb7, 0xb9, 0x94, 0xa4, 0x97, 0xeb, 0x05, 0xdb, 0xa4, 0x98, + 0x5c, 0xab, 0x8f, 0xe0, 0xe6, 0x73, 0xf8, 0x24, 0x37, 0x9e, 0x9b, 0x93, 0x4a, 0xfb, 0x22, 0x92, + 0xa4, 0x8a, 0x4e, 0x6e, 0x3f, 0xbe, 0xdf, 0x5f, 0x3e, 0x3f, 0x2a, 0x68, 0x89, 0xe7, 0xaa, 0x21, + 0x15, 0xae, 0x63, 0x9c, 0x33, 0xc1, 0x14, 0x57, 0xa8, 0xba, 0x97, 0x5a, 0x06, 0x83, 0x82, 0x96, + 0xc8, 0x72, 0xa8, 0x8e, 0xa3, 0xdd, 0x5c, 0xe6, 0xd2, 0x12, 0xd8, 0x20, 0xa7, 0x89, 0xc2, 0x3f, + 0x7e, 0x27, 0x76, 0x0c, 0xcc, 0xa4, 0x2a, 0xa5, 0xc2, 0x94, 0x28, 0x86, 0xeb, 0x98, 0x32, 0x4d, + 0x62, 0x9c, 0x49, 0x2e, 0x1c, 0x7f, 0xf8, 0x0a, 0xfc, 0xc1, 0x95, 0xeb, 0x9b, 0x6a, 0xa2, 0x59, + 0x70, 0xe6, 0x6f, 0x1b, 0x7b, 0xc5, 0x66, 0x21, 0x38, 0x00, 0x47, 0x3b, 0xa7, 0x7b, 0xe8, 0xf7, + 0x00, 0x34, 0x75, 0x64, 0xb2, 0xb9, 0x7a, 0x1f, 0x79, 0x93, 0x6f, 0x6d, 0xf0, 0x04, 0xfc, 0xa1, + 0xc5, 0x84, 0x16, 0x2c, 0x15, 0xac, 0x49, 0x4d, 0x49, 0x4a, 0x4a, 0xb9, 0x14, 0x3a, 0xdc, 0xb0, + 0x49, 0x43, 0xe4, 0xc6, 0x20, 0x33, 0x06, 0xf5, 0x63, 0xd0, 0x85, 0xe4, 0x22, 0x19, 0x9b, 0xb4, + 0x97, 0x8f, 0xd1, 0x71, 0xce, 0xf5, 0x62, 0x49, 0x51, 0x26, 0x4b, 0x7c, 0xc9, 0x85, 0xca, 0x16, + 0x9c, 0xe0, 0x79, 0x0f, 0x4e, 0xd4, 0xec, 0x0e, 0xeb, 0xc7, 0x8a, 0x29, 0x6b, 0x9a, 0xec, 0xff, + 0x14, 0xde, 0xb0, 0xc6, 0x5c, 0xce, 0x6d, 0x5b, 0x72, 0xbd, 0x6a, 0x21, 0x58, 0xb7, 0x10, 0x7c, + 0xb6, 0x10, 0x3c, 0x77, 0xd0, 0x5b, 0x77, 0xd0, 0x7b, 0xeb, 0xa0, 0x77, 0x8b, 0xfe, 0x8d, 0x7f, + 0xe8, 0xdf, 0x68, 0x6b, 0xe8, 0x96, 0x7d, 0xd2, 0xf8, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xba, + 0xca, 0x46, 0xa0, 0x01, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -111,6 +126,16 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.SwappableNewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 { size, err := m.Swapped.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -143,6 +168,8 @@ func (m *GenesisState) Size() (n int) { _ = l l = m.Swapped.Size() n += 1 + l + sovGenesis(uint64(l)) + l = m.SwappableNewCoinAmount.Size() + n += 1 + l + sovGenesis(uint64(l)) return n } @@ -214,6 +241,39 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwappableNewCoinAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SwappableNewCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/x/fswap/types/genesis_test.go b/x/fswap/types/genesis_test.go index 82cea058cb..da59ef08d2 100644 --- a/x/fswap/types/genesis_test.go +++ b/x/fswap/types/genesis_test.go @@ -25,12 +25,20 @@ func TestGenesisStateValidate(t *testing.T) { genState: &types.GenesisState{}, valid: false, }, + { + desc: "empty totalSupply in Swapped", + genState: &types.GenesisState{ + Swapped: types.DefaultSwapped(), + }, + valid: false, + }, { desc: "empty oldCoin in Swapped", genState: &types.GenesisState{ Swapped: types.Swapped{ NewCoinAmount: sdk.NewInt64Coin("atom", 1), }, + SwappableNewCoinAmount: types.DefaultTotalSupply, }, valid: false, }, @@ -40,6 +48,7 @@ func TestGenesisStateValidate(t *testing.T) { Swapped: types.Swapped{ OldCoinAmount: sdk.NewInt64Coin("cony", 1), }, + SwappableNewCoinAmount: types.DefaultTotalSupply, }, valid: false, }, diff --git a/x/fswap/types/keys.go b/x/fswap/types/keys.go index e8e1a73024..81972489d6 100644 --- a/x/fswap/types/keys.go +++ b/x/fswap/types/keys.go @@ -18,8 +18,8 @@ const ( ) var ( - SwappedKey = byte(0x00) - TotalSupplyKey = byte(0x01) + SwappedKey = byte(0x00) + SwappableNewCoinAmountKey = byte(0x01) ) func KeyPrefix(p string) []byte { From d6f2ce9acaf42e3d1023c6b9df6eb5003cbb2049 Mon Sep 17 00:00:00 2001 From: 170210 Date: Tue, 23 Apr 2024 19:45:37 +0900 Subject: [PATCH 13/27] fix: fix lint Signed-off-by: 170210 --- x/fswap/types/genesis.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index ff9c72a028..97b6ef05d6 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -2,9 +2,7 @@ package types import sdk "github.com/Finschia/finschia-sdk/types" -var ( - DefaultTotalSupply = sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(100000)) -) +var DefaultTotalSupply = sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(100000)) // NewGenesis creates a new genesis state func NewGenesisState(config Config, swappableNewCoinAmount sdk.Coin) *GenesisState { From d0f4841b5a97c6b79c535dabcfab5b76d7d7e5fe Mon Sep 17 00:00:00 2001 From: 170210 Date: Tue, 23 Apr 2024 19:48:40 +0900 Subject: [PATCH 14/27] fix: fix module_simulation Signed-off-by: 170210 --- x/fswap/module_simulation.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x/fswap/module_simulation.go b/x/fswap/module_simulation.go index 36f7438be3..5df6334686 100644 --- a/x/fswap/module_simulation.go +++ b/x/fswap/module_simulation.go @@ -14,7 +14,8 @@ var _ module.AppModuleSimulation = AppModule{} // GenerateGenesisState creates a randomized GenState of the module. func (AppModule) GenerateGenesisState(simState *module.SimulationState) { fswapGenesis := types.GenesisState{ - Swapped: types.DefaultSwapped(), + Swapped: types.DefaultSwapped(), + SwappableNewCoinAmount: types.DefaultTotalSupply, } simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&fswapGenesis) } From 3cd7acb90379897845703dd38573fb69f4a454d2 Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 13:21:18 +0900 Subject: [PATCH 15/27] fix: set swappableNewCoinDenom as params Signed-off-by: 170210 --- docs/core/proto-docs.md | 36 +++- proto/lbm/fswap/v1/genesis.proto | 7 +- proto/lbm/fswap/v1/params.proto | 14 ++ x/ERRORS.md | 5 +- x/fswap/keeper/genesis.go | 8 +- x/fswap/keeper/genesis_test.go | 2 +- x/fswap/keeper/params.go | 34 ++++ x/fswap/module_simulation.go | 4 +- x/fswap/types/errors.go | 5 +- x/fswap/types/fswap.go | 6 +- x/fswap/types/genesis.go | 12 +- x/fswap/types/genesis.pb.go | 69 +++---- x/fswap/types/genesis_test.go | 21 +- x/fswap/types/keys.go | 5 +- x/fswap/types/params.go | 39 ++++ x/fswap/types/params.pb.go | 325 +++++++++++++++++++++++++++++++ 16 files changed, 525 insertions(+), 67 deletions(-) create mode 100644 proto/lbm/fswap/v1/params.proto create mode 100644 x/fswap/keeper/params.go create mode 100644 x/fswap/types/params.go create mode 100644 x/fswap/types/params.pb.go diff --git a/docs/core/proto-docs.md b/docs/core/proto-docs.md index f1a5b33c58..a93ccad79b 100644 --- a/docs/core/proto-docs.md +++ b/docs/core/proto-docs.md @@ -862,6 +862,9 @@ - [lbm/fswap/v1/fswap.proto](#lbm/fswap/v1/fswap.proto) - [Swapped](#lbm.fswap.v1.Swapped) +- [lbm/fswap/v1/params.proto](#lbm/fswap/v1/params.proto) + - [Params](#lbm.fswap.v1.Params) + - [lbm/fswap/v1/genesis.proto](#lbm/fswap/v1/genesis.proto) - [GenesisState](#lbm.fswap.v1.GenesisState) @@ -12763,6 +12766,37 @@ Msg defines the foundation Msg service. + + + + + + + + + + + +

Top

+ +## lbm/fswap/v1/params.proto + + + + + +### Params +Params defines the parameters for the module. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `swappable_new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | + + + + + @@ -12788,8 +12822,8 @@ GenesisState defines the fswap module's genesis state. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | +| `params` | [Params](#lbm.fswap.v1.Params) | | | | `swapped` | [Swapped](#lbm.fswap.v1.Swapped) | | | -| `swappable_new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | diff --git a/proto/lbm/fswap/v1/genesis.proto b/proto/lbm/fswap/v1/genesis.proto index 3e95853316..43b639a341 100644 --- a/proto/lbm/fswap/v1/genesis.proto +++ b/proto/lbm/fswap/v1/genesis.proto @@ -5,11 +5,10 @@ option go_package = "github.com/Finschia/finschia-sdk/x/fswap/types"; import "gogoproto/gogo.proto"; import "lbm/fswap/v1/fswap.proto"; -import "cosmos/base/v1beta1/coin.proto"; +import "lbm/fswap/v1/params.proto"; // GenesisState defines the fswap module's genesis state. message GenesisState { - Swapped swapped = 1 [(gogoproto.nullable) = false]; - cosmos.base.v1beta1.Coin swappable_new_coin_amount = 2 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; + Params params = 1 [(gogoproto.nullable) = false]; + Swapped swapped = 2 [(gogoproto.nullable) = false]; } diff --git a/proto/lbm/fswap/v1/params.proto b/proto/lbm/fswap/v1/params.proto new file mode 100644 index 0000000000..1c13952d96 --- /dev/null +++ b/proto/lbm/fswap/v1/params.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +package lbm.fswap.v1; + +option go_package = "github.com/Finschia/finschia-sdk/x/fswap/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +// Params defines the parameters for the module. +message Params { + option (gogoproto.goproto_stringer) = false; + cosmos.base.v1beta1.Coin swappable_new_coin_amount = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; +} \ No newline at end of file diff --git a/x/ERRORS.md b/x/ERRORS.md index 75bcd1fcc7..8d5f0b1111 100644 --- a/x/ERRORS.md +++ b/x/ERRORS.md @@ -177,8 +177,9 @@ |Error Name|Codespace|Code|Description| |:-|:-|:-|:-| -|ErrSwappedNotFound|fswap|1100|swapped does not exist| -|ErrTotalSupplyNotFound|fswap|1101|swappable new coin amount does not exist| +|ErrParamsNotFound|fswap|1100|params does not exist| +|ErrSwappedNotFound|fswap|1101|swapped does not exist| +|ErrTotalSupplyNotFound|fswap|1102|swappable new coin amount does not exist| >You can also find detailed information in the following Errors.go files: * [fswap/types/errors.go](fswap/types/errors.go) diff --git a/x/fswap/keeper/genesis.go b/x/fswap/keeper/genesis.go index a8f9713235..4cb0edd5e6 100644 --- a/x/fswap/keeper/genesis.go +++ b/x/fswap/keeper/genesis.go @@ -8,10 +8,10 @@ import ( // InitGenesis initializes the module's state from a provided genesis // state. func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) { - if err := k.SetSwapped(ctx, genState.Swapped); err != nil { + if err := k.SetParams(ctx, genState.Params); err != nil { panic(err) } - if err := k.SetTotalSupply(ctx, genState.SwappableNewCoinAmount); err != nil { + if err := k.SetSwapped(ctx, genState.Swapped); err != nil { panic(err) } } @@ -19,7 +19,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) { // ExportGenesis returns the capability module's exported genesis. func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { return &types.GenesisState{ - Swapped: k.GetSwapped(ctx), - SwappableNewCoinAmount: k.GetTotalSupply(ctx), + Params: k.GetParams(ctx), + Swapped: k.GetSwapped(ctx), } } diff --git a/x/fswap/keeper/genesis_test.go b/x/fswap/keeper/genesis_test.go index b898a0379b..ae0e07e275 100644 --- a/x/fswap/keeper/genesis_test.go +++ b/x/fswap/keeper/genesis_test.go @@ -8,6 +8,6 @@ func (s *KeeperTestSuite) TestInitAndExportGenesis() { s.keeper.InitGenesis(s.sdkCtx, *types.DefaultGenesis()) got := s.keeper.ExportGenesis(s.sdkCtx) s.Require().NotNil(got) + s.Require().Equal(types.DefaultParams(), got.Params) s.Require().Equal(types.DefaultSwapped(), got.Swapped) - s.Require().Equal(types.DefaultTotalSupply, got.SwappableNewCoinAmount) } diff --git a/x/fswap/keeper/params.go b/x/fswap/keeper/params.go new file mode 100644 index 0000000000..593768fce6 --- /dev/null +++ b/x/fswap/keeper/params.go @@ -0,0 +1,34 @@ +package keeper + +import ( + sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/x/fswap/types" +) + +// GetParams get all parameters as types.Params +func (k Keeper) GetParams(ctx sdk.Context) types.Params { + store := ctx.KVStore(k.storeKey) + bz := store.Get([]byte{types.ParamsKey}) + var params types.Params + if bz == nil { + panic(types.ErrParamsNotFound) + } + k.cdc.MustUnmarshal(bz, ¶ms) + return params +} + +// SetParams set the params +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { + store := ctx.KVStore(k.storeKey) + bz, err := k.cdc.Marshal(¶ms) + if err != nil { + return err + } + store.Set([]byte{types.ParamsKey}, bz) + return nil +} + +func (k Keeper) SwappableNewCoinAmount(ctx sdk.Context) sdk.Coin { + params := k.GetParams(ctx) + return params.SwappableNewCoinAmount +} diff --git a/x/fswap/module_simulation.go b/x/fswap/module_simulation.go index 5df6334686..70f7369bc4 100644 --- a/x/fswap/module_simulation.go +++ b/x/fswap/module_simulation.go @@ -14,8 +14,8 @@ var _ module.AppModuleSimulation = AppModule{} // GenerateGenesisState creates a randomized GenState of the module. func (AppModule) GenerateGenesisState(simState *module.SimulationState) { fswapGenesis := types.GenesisState{ - Swapped: types.DefaultSwapped(), - SwappableNewCoinAmount: types.DefaultTotalSupply, + Params: types.DefaultParams(), + Swapped: types.DefaultSwapped(), } simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&fswapGenesis) } diff --git a/x/fswap/types/errors.go b/x/fswap/types/errors.go index 8b2884aba8..34514fdde4 100644 --- a/x/fswap/types/errors.go +++ b/x/fswap/types/errors.go @@ -8,6 +8,7 @@ import ( // x/fswap module sentinel errors var ( - ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1100, "swapped does not exist") - ErrTotalSupplyNotFound = sdkerrors.Register(ModuleName, 1101, "swappable new coin amount does not exist") + ErrParamsNotFound = sdkerrors.Register(ModuleName, 1100, "params does not exist") + ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1101, "swapped does not exist") + ErrTotalSupplyNotFound = sdkerrors.Register(ModuleName, 1102, "swappable new coin amount does not exist") ) diff --git a/x/fswap/types/fswap.go b/x/fswap/types/fswap.go index fa55cc508c..14c25466de 100644 --- a/x/fswap/types/fswap.go +++ b/x/fswap/types/fswap.go @@ -23,7 +23,7 @@ func DefaultSwapped() Swapped { return NewSwapped(DefaultConfig()) } -func ValidateCoin(i interface{}) error { +func validateCoin(i interface{}) error { v, ok := i.(sdk.Coin) if !ok { return fmt.Errorf("invalid coin amount: %T", i) @@ -41,10 +41,10 @@ func ValidateCoin(i interface{}) error { // Validate validates the set of swapped func (s Swapped) Validate() error { - if err := ValidateCoin(s.OldCoinAmount); err != nil { + if err := validateCoin(s.OldCoinAmount); err != nil { return err } - if err := ValidateCoin(s.NewCoinAmount); err != nil { + if err := validateCoin(s.NewCoinAmount); err != nil { return err } return nil diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index 97b6ef05d6..edbe4b1d6c 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -5,25 +5,25 @@ import sdk "github.com/Finschia/finschia-sdk/types" var DefaultTotalSupply = sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(100000)) // NewGenesis creates a new genesis state -func NewGenesisState(config Config, swappableNewCoinAmount sdk.Coin) *GenesisState { +func NewGenesisState(config Config, swappable sdk.Coin) *GenesisState { return &GenesisState{ - Swapped: NewSwapped(config), - SwappableNewCoinAmount: swappableNewCoinAmount, + Params: NewParams(swappable), + Swapped: NewSwapped(config), } } // DefaultGenesis returns the default Capability genesis state func DefaultGenesis() *GenesisState { - return NewGenesisState(DefaultConfig(), DefaultTotalSupply) + return NewGenesisState(DefaultConfig(), DefaultSwappableNewCoinAmount) } // Validate performs basic genesis state validation returning an error upon any // failure. func (gs GenesisState) Validate() error { - if err := gs.Swapped.Validate(); err != nil { + if err := gs.Params.Validate(); err != nil { return err } - if err := ValidateCoin(gs.SwappableNewCoinAmount); err != nil { + if err := gs.Swapped.Validate(); err != nil { return err } return nil diff --git a/x/fswap/types/genesis.pb.go b/x/fswap/types/genesis.pb.go index e0d3c262c3..5b76f03a14 100644 --- a/x/fswap/types/genesis.pb.go +++ b/x/fswap/types/genesis.pb.go @@ -5,7 +5,6 @@ package types import ( fmt "fmt" - types "github.com/Finschia/finschia-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" io "io" @@ -26,8 +25,8 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the fswap module's genesis state. type GenesisState struct { - Swapped Swapped `protobuf:"bytes,1,opt,name=swapped,proto3" json:"swapped"` - SwappableNewCoinAmount types.Coin `protobuf:"bytes,2,opt,name=swappable_new_coin_amount,json=swappableNewCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"swappable_new_coin_amount"` + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + Swapped Swapped `protobuf:"bytes,2,opt,name=swapped,proto3" json:"swapped"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -63,18 +62,18 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo -func (m *GenesisState) GetSwapped() Swapped { +func (m *GenesisState) GetParams() Params { if m != nil { - return m.Swapped + return m.Params } - return Swapped{} + return Params{} } -func (m *GenesisState) GetSwappableNewCoinAmount() types.Coin { +func (m *GenesisState) GetSwapped() Swapped { if m != nil { - return m.SwappableNewCoinAmount + return m.Swapped } - return types.Coin{} + return Swapped{} } func init() { @@ -84,26 +83,22 @@ func init() { func init() { proto.RegisterFile("lbm/fswap/v1/genesis.proto", fileDescriptor_94e309cb1db27661) } var fileDescriptor_94e309cb1db27661 = []byte{ - // 294 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x50, 0xbf, 0x4a, 0xc4, 0x30, - 0x18, 0x6f, 0x44, 0x14, 0xea, 0x4d, 0x45, 0xa5, 0xd7, 0x21, 0x27, 0x4e, 0x82, 0x98, 0x50, 0x0f, - 0x1f, 0xc0, 0x0a, 0xea, 0xe4, 0x70, 0xb7, 0xb9, 0x94, 0xa4, 0x97, 0xeb, 0x05, 0xdb, 0xa4, 0x98, - 0x5c, 0xab, 0x8f, 0xe0, 0xe6, 0x73, 0xf8, 0x24, 0x37, 0x9e, 0x9b, 0x93, 0x4a, 0xfb, 0x22, 0x92, - 0xa4, 0x8a, 0x4e, 0x6e, 0x3f, 0xbe, 0xdf, 0x5f, 0x3e, 0x3f, 0x2a, 0x68, 0x89, 0xe7, 0xaa, 0x21, - 0x15, 0xae, 0x63, 0x9c, 0x33, 0xc1, 0x14, 0x57, 0xa8, 0xba, 0x97, 0x5a, 0x06, 0x83, 0x82, 0x96, - 0xc8, 0x72, 0xa8, 0x8e, 0xa3, 0xdd, 0x5c, 0xe6, 0xd2, 0x12, 0xd8, 0x20, 0xa7, 0x89, 0xc2, 0x3f, - 0x7e, 0x27, 0x76, 0x0c, 0xcc, 0xa4, 0x2a, 0xa5, 0xc2, 0x94, 0x28, 0x86, 0xeb, 0x98, 0x32, 0x4d, - 0x62, 0x9c, 0x49, 0x2e, 0x1c, 0x7f, 0xf8, 0x0a, 0xfc, 0xc1, 0x95, 0xeb, 0x9b, 0x6a, 0xa2, 0x59, - 0x70, 0xe6, 0x6f, 0x1b, 0x7b, 0xc5, 0x66, 0x21, 0x38, 0x00, 0x47, 0x3b, 0xa7, 0x7b, 0xe8, 0xf7, - 0x00, 0x34, 0x75, 0x64, 0xb2, 0xb9, 0x7a, 0x1f, 0x79, 0x93, 0x6f, 0x6d, 0xf0, 0x04, 0xfc, 0xa1, - 0xc5, 0x84, 0x16, 0x2c, 0x15, 0xac, 0x49, 0x4d, 0x49, 0x4a, 0x4a, 0xb9, 0x14, 0x3a, 0xdc, 0xb0, - 0x49, 0x43, 0xe4, 0xc6, 0x20, 0x33, 0x06, 0xf5, 0x63, 0xd0, 0x85, 0xe4, 0x22, 0x19, 0x9b, 0xb4, - 0x97, 0x8f, 0xd1, 0x71, 0xce, 0xf5, 0x62, 0x49, 0x51, 0x26, 0x4b, 0x7c, 0xc9, 0x85, 0xca, 0x16, - 0x9c, 0xe0, 0x79, 0x0f, 0x4e, 0xd4, 0xec, 0x0e, 0xeb, 0xc7, 0x8a, 0x29, 0x6b, 0x9a, 0xec, 0xff, - 0x14, 0xde, 0xb0, 0xc6, 0x5c, 0xce, 0x6d, 0x5b, 0x72, 0xbd, 0x6a, 0x21, 0x58, 0xb7, 0x10, 0x7c, - 0xb6, 0x10, 0x3c, 0x77, 0xd0, 0x5b, 0x77, 0xd0, 0x7b, 0xeb, 0xa0, 0x77, 0x8b, 0xfe, 0x8d, 0x7f, - 0xe8, 0xdf, 0x68, 0x6b, 0xe8, 0x96, 0x7d, 0xd2, 0xf8, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xf4, 0xba, - 0xca, 0x46, 0xa0, 0x01, 0x00, 0x00, + // 230 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xca, 0x49, 0xca, 0xd5, + 0x4f, 0x2b, 0x2e, 0x4f, 0x2c, 0xd0, 0x2f, 0x33, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, + 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0x49, 0xca, 0xd5, 0x03, 0xcb, 0xe9, 0x95, + 0x19, 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x29, 0x09, + 0x14, 0xfd, 0x10, 0xc5, 0x10, 0x19, 0x49, 0x14, 0x99, 0x82, 0xc4, 0xa2, 0xc4, 0x5c, 0xa8, 0xc1, + 0x4a, 0x95, 0x5c, 0x3c, 0xee, 0x10, 0x9b, 0x82, 0x4b, 0x12, 0x4b, 0x52, 0x85, 0x8c, 0xb8, 0xd8, + 0x20, 0xf2, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xdc, 0x46, 0x22, 0x7a, 0xc8, 0x36, 0xeb, 0x05, 0x80, + 0xe5, 0x9c, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x82, 0xaa, 0x14, 0x32, 0xe5, 0x62, 0x07, 0xc9, + 0x17, 0xa4, 0xa6, 0x48, 0x30, 0x81, 0x35, 0x89, 0xa2, 0x6a, 0x0a, 0x86, 0x48, 0x42, 0x75, 0xc1, + 0xd4, 0x3a, 0x79, 0x9c, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, + 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, 0x5e, 0x7a, + 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0xbe, 0x5b, 0x66, 0x5e, 0x71, 0x72, 0x46, + 0x66, 0xa2, 0x7e, 0x1a, 0x94, 0xa1, 0x5b, 0x9c, 0x92, 0xad, 0x5f, 0x01, 0xf5, 0x4e, 0x49, 0x65, + 0x41, 0x6a, 0x71, 0x12, 0x1b, 0xd8, 0x2f, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcb, 0xd0, + 0xcc, 0x0f, 0x42, 0x01, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -127,7 +122,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size, err := m.SwappableNewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Swapped.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -137,7 +132,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 { - size, err := m.Swapped.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -166,9 +161,9 @@ func (m *GenesisState) Size() (n int) { } var l int _ = l - l = m.Swapped.Size() + l = m.Params.Size() n += 1 + l + sovGenesis(uint64(l)) - l = m.SwappableNewCoinAmount.Size() + l = m.Swapped.Size() n += 1 + l + sovGenesis(uint64(l)) return n } @@ -210,7 +205,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Swapped", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -237,13 +232,13 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Swapped.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SwappableNewCoinAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Swapped", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -270,7 +265,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.SwappableNewCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Swapped.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/fswap/types/genesis_test.go b/x/fswap/types/genesis_test.go index da59ef08d2..91c4b874f4 100644 --- a/x/fswap/types/genesis_test.go +++ b/x/fswap/types/genesis_test.go @@ -26,29 +26,44 @@ func TestGenesisStateValidate(t *testing.T) { valid: false, }, { - desc: "empty totalSupply in Swapped", + desc: "empty params", genState: &types.GenesisState{ Swapped: types.DefaultSwapped(), }, valid: false, }, + { + desc: "empty swapped", + genState: &types.GenesisState{ + Params: types.DefaultParams(), + }, + valid: false, + }, + { + desc: "empty swappableNewCoinAmount in params", + genState: &types.GenesisState{ + Params: types.Params{}, + Swapped: types.DefaultSwapped(), + }, + valid: false, + }, { desc: "empty oldCoin in Swapped", genState: &types.GenesisState{ + Params: types.DefaultParams(), Swapped: types.Swapped{ NewCoinAmount: sdk.NewInt64Coin("atom", 1), }, - SwappableNewCoinAmount: types.DefaultTotalSupply, }, valid: false, }, { desc: "empty newCoin in Swapped", genState: &types.GenesisState{ + Params: types.DefaultParams(), Swapped: types.Swapped{ OldCoinAmount: sdk.NewInt64Coin("cony", 1), }, - SwappableNewCoinAmount: types.DefaultTotalSupply, }, valid: false, }, diff --git a/x/fswap/types/keys.go b/x/fswap/types/keys.go index 81972489d6..3e34d8cd60 100644 --- a/x/fswap/types/keys.go +++ b/x/fswap/types/keys.go @@ -18,8 +18,9 @@ const ( ) var ( - SwappedKey = byte(0x00) - SwappableNewCoinAmountKey = byte(0x01) + ParamsKey = byte(0x00) + SwappedKey = byte(0x01) + SwappableNewCoinAmountKey = byte(0x02) ) func KeyPrefix(p string) []byte { diff --git a/x/fswap/types/params.go b/x/fswap/types/params.go new file mode 100644 index 0000000000..ab81d96ca9 --- /dev/null +++ b/x/fswap/types/params.go @@ -0,0 +1,39 @@ +package types + +import ( + "gopkg.in/yaml.v2" + + sdk "github.com/Finschia/finschia-sdk/types" +) + +var DefaultSwappableNewCoinAmount = sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(0)) + +// NewParams creates a new Params instance +func NewParams( + swappableNewCoinAmount sdk.Coin, +) Params { + return Params{ + SwappableNewCoinAmount: swappableNewCoinAmount, + } +} + +// DefaultParams returns a default set of parameters +func DefaultParams() Params { + return NewParams( + DefaultSwappableNewCoinAmount, + ) +} + +// Validate validates the set of params +func (p Params) Validate() error { + if err := validateCoin(p.SwappableNewCoinAmount); err != nil { + return err + } + return nil +} + +// String implements the Stringer interface. +func (p Params) String() string { + out, _ := yaml.Marshal(p) + return string(out) +} diff --git a/x/fswap/types/params.pb.go b/x/fswap/types/params.pb.go new file mode 100644 index 0000000000..74cab191d4 --- /dev/null +++ b/x/fswap/types/params.pb.go @@ -0,0 +1,325 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: lbm/fswap/v1/params.proto + +package types + +import ( + fmt "fmt" + types "github.com/Finschia/finschia-sdk/types" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// Params defines the parameters for the module. +type Params struct { + SwappableNewCoinAmount types.Coin `protobuf:"bytes,1,opt,name=swappable_new_coin_amount,json=swappableNewCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"swappable_new_coin_amount"` +} + +func (m *Params) Reset() { *m = Params{} } +func (*Params) ProtoMessage() {} +func (*Params) Descriptor() ([]byte, []int) { + return fileDescriptor_15e620b81032c44d, []int{0} +} +func (m *Params) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Params.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Params) XXX_Merge(src proto.Message) { + xxx_messageInfo_Params.Merge(m, src) +} +func (m *Params) XXX_Size() int { + return m.Size() +} +func (m *Params) XXX_DiscardUnknown() { + xxx_messageInfo_Params.DiscardUnknown(m) +} + +var xxx_messageInfo_Params proto.InternalMessageInfo + +func (m *Params) GetSwappableNewCoinAmount() types.Coin { + if m != nil { + return m.SwappableNewCoinAmount + } + return types.Coin{} +} + +func init() { + proto.RegisterType((*Params)(nil), "lbm.fswap.v1.Params") +} + +func init() { proto.RegisterFile("lbm/fswap/v1/params.proto", fileDescriptor_15e620b81032c44d) } + +var fileDescriptor_15e620b81032c44d = []byte{ + // 265 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0x49, 0xca, 0xd5, + 0x4f, 0x2b, 0x2e, 0x4f, 0x2c, 0xd0, 0x2f, 0x33, 0xd4, 0x2f, 0x48, 0x2c, 0x4a, 0xcc, 0x2d, 0xd6, + 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0x49, 0xca, 0xd5, 0x03, 0x4b, 0xe9, 0x95, 0x19, + 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x29, 0xb9, 0xe4, + 0xfc, 0xe2, 0xdc, 0xfc, 0x62, 0xfd, 0xa4, 0xc4, 0xe2, 0x54, 0xfd, 0x32, 0xc3, 0xa4, 0xd4, 0x92, + 0x44, 0x43, 0xfd, 0xe4, 0xfc, 0xcc, 0x3c, 0x88, 0xbc, 0xd2, 0x2c, 0x46, 0x2e, 0xb6, 0x00, 0xb0, + 0xa1, 0x42, 0x9d, 0x8c, 0x5c, 0x92, 0x20, 0xc3, 0x0a, 0x12, 0x93, 0x72, 0x52, 0xe3, 0xf3, 0x52, + 0xcb, 0xe3, 0x41, 0xea, 0xe2, 0x13, 0x73, 0xf3, 0x4b, 0xf3, 0x4a, 0x24, 0x18, 0x15, 0x18, 0x35, + 0xb8, 0x8d, 0x24, 0xf5, 0x20, 0xe6, 0xe9, 0x81, 0xcc, 0xd3, 0x83, 0x9a, 0xa7, 0xe7, 0x9c, 0x9f, + 0x99, 0xe7, 0x64, 0x7c, 0xe2, 0x9e, 0x3c, 0xc3, 0xaa, 0xfb, 0xf2, 0xda, 0xe9, 0x99, 0x25, 0x19, + 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0x6e, 0x99, 0x79, 0xc5, 0xc9, 0x19, 0x99, 0x89, 0xfa, + 0x69, 0x50, 0x86, 0x6e, 0x71, 0x4a, 0xb6, 0x7e, 0x49, 0x65, 0x41, 0x6a, 0x31, 0x58, 0x53, 0x90, + 0x18, 0xdc, 0x42, 0xbf, 0xd4, 0x72, 0x90, 0x88, 0x23, 0xd8, 0x36, 0x2b, 0x96, 0x19, 0x0b, 0xe4, + 0x19, 0x9c, 0x3c, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, + 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0x4a, 0x8f, 0xa0, + 0x25, 0x15, 0xd0, 0x40, 0x03, 0x5b, 0x96, 0xc4, 0x06, 0xf6, 0xad, 0x31, 0x20, 0x00, 0x00, 0xff, + 0xff, 0xb8, 0x98, 0x4e, 0x55, 0x4e, 0x01, 0x00, 0x00, +} + +func (m *Params) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Params) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.SwappableNewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintParams(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func encodeVarintParams(dAtA []byte, offset int, v uint64) int { + offset -= sovParams(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Params) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.SwappableNewCoinAmount.Size() + n += 1 + l + sovParams(uint64(l)) + return n +} + +func sovParams(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozParams(x uint64) (n int) { + return sovParams(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Params) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Params: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SwappableNewCoinAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthParams + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthParams + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SwappableNewCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipParams(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthParams + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipParams(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowParams + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowParams + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowParams + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthParams + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupParams + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthParams + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthParams = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowParams = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupParams = fmt.Errorf("proto: unexpected end of group") +) From c2a9b611cd610e87b0b039fc39bc2a623a0f3cde Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 14:10:31 +0900 Subject: [PATCH 16/27] fix: change total_supply name to swappableNewCoinAmount Signed-off-by: 170210 --- x/ERRORS.md | 2 +- x/fswap/keeper/fswap.go | 14 +++++++------- x/fswap/types/errors.go | 6 +++--- x/fswap/types/genesis.go | 2 -- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/x/ERRORS.md b/x/ERRORS.md index 8d5f0b1111..8da74ceb3c 100644 --- a/x/ERRORS.md +++ b/x/ERRORS.md @@ -179,7 +179,7 @@ |:-|:-|:-|:-| |ErrParamsNotFound|fswap|1100|params does not exist| |ErrSwappedNotFound|fswap|1101|swapped does not exist| -|ErrTotalSupplyNotFound|fswap|1102|swappable new coin amount does not exist| +|ErrSwappableNewCoinAmountNotFound|fswap|1102|swappable new coin amount does not exist| >You can also find detailed information in the following Errors.go files: * [fswap/types/errors.go](fswap/types/errors.go) diff --git a/x/fswap/keeper/fswap.go b/x/fswap/keeper/fswap.go index 5ad8af4452..3e102ea89b 100644 --- a/x/fswap/keeper/fswap.go +++ b/x/fswap/keeper/fswap.go @@ -29,20 +29,20 @@ func (k Keeper) SetSwapped(ctx sdk.Context, swapped types.Swapped) error { return nil } -func (k Keeper) GetTotalSupply(ctx sdk.Context) sdk.Coin { +func (k Keeper) GetSwappableNewCoinAmount(ctx sdk.Context) sdk.Coin { store := ctx.KVStore(k.storeKey) bz := store.Get([]byte{types.SwappableNewCoinAmountKey}) - var totalSupply sdk.Coin + var SwappableNewCoinAmount sdk.Coin if bz == nil { - panic(types.ErrTotalSupplyNotFound) + panic(types.ErrSwappableNewCoinAmountNotFound) } - k.cdc.MustUnmarshal(bz, &totalSupply) - return totalSupply + k.cdc.MustUnmarshal(bz, &SwappableNewCoinAmount) + return SwappableNewCoinAmount } -func (k Keeper) SetTotalSupply(ctx sdk.Context, totalSupply sdk.Coin) error { +func (k Keeper) SetSwappableNewCoinAmount(ctx sdk.Context, SwappableNewCoinAmount sdk.Coin) error { store := ctx.KVStore(k.storeKey) - bz, err := k.cdc.Marshal(&totalSupply) + bz, err := k.cdc.Marshal(&SwappableNewCoinAmount) if err != nil { return err } diff --git a/x/fswap/types/errors.go b/x/fswap/types/errors.go index 34514fdde4..90a43d2bb3 100644 --- a/x/fswap/types/errors.go +++ b/x/fswap/types/errors.go @@ -8,7 +8,7 @@ import ( // x/fswap module sentinel errors var ( - ErrParamsNotFound = sdkerrors.Register(ModuleName, 1100, "params does not exist") - ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1101, "swapped does not exist") - ErrTotalSupplyNotFound = sdkerrors.Register(ModuleName, 1102, "swappable new coin amount does not exist") + ErrParamsNotFound = sdkerrors.Register(ModuleName, 1100, "params does not exist") + ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1101, "swapped does not exist") + ErrSwappableNewCoinAmountNotFound = sdkerrors.Register(ModuleName, 1102, "swappable new coin amount does not exist") ) diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index edbe4b1d6c..8d1c13c061 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -2,8 +2,6 @@ package types import sdk "github.com/Finschia/finschia-sdk/types" -var DefaultTotalSupply = sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(100000)) - // NewGenesis creates a new genesis state func NewGenesisState(config Config, swappable sdk.Coin) *GenesisState { return &GenesisState{ From f0be4eb41eb8545c3ebb3777f623fd2690d6a13e Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 14:16:51 +0900 Subject: [PATCH 17/27] fix: fix lint Signed-off-by: 170210 --- x/fswap/keeper/fswap.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/x/fswap/keeper/fswap.go b/x/fswap/keeper/fswap.go index 3e102ea89b..3ecb2f3b12 100644 --- a/x/fswap/keeper/fswap.go +++ b/x/fswap/keeper/fswap.go @@ -32,17 +32,17 @@ func (k Keeper) SetSwapped(ctx sdk.Context, swapped types.Swapped) error { func (k Keeper) GetSwappableNewCoinAmount(ctx sdk.Context) sdk.Coin { store := ctx.KVStore(k.storeKey) bz := store.Get([]byte{types.SwappableNewCoinAmountKey}) - var SwappableNewCoinAmount sdk.Coin + var swappableNewCoinAmount sdk.Coin if bz == nil { panic(types.ErrSwappableNewCoinAmountNotFound) } - k.cdc.MustUnmarshal(bz, &SwappableNewCoinAmount) - return SwappableNewCoinAmount + k.cdc.MustUnmarshal(bz, &swappableNewCoinAmount) + return swappableNewCoinAmount } -func (k Keeper) SetSwappableNewCoinAmount(ctx sdk.Context, SwappableNewCoinAmount sdk.Coin) error { +func (k Keeper) SetSwappableNewCoinAmount(ctx sdk.Context, swappableNewCoinAmount sdk.Coin) error { store := ctx.KVStore(k.storeKey) - bz, err := k.cdc.Marshal(&SwappableNewCoinAmount) + bz, err := k.cdc.Marshal(&swappableNewCoinAmount) if err != nil { return err } From e42e064d451b1ed3d3c2f65b5abbed46ddfa5954 Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 14:30:30 +0900 Subject: [PATCH 18/27] fix: use io/collection to generate key Signed-off-by: 170210 --- go.mod | 18 +++++++- go.sum | 89 ++++++++++++++++++++++++++++++++-------- x/fswap/keeper/fswap.go | 8 ++-- x/fswap/keeper/params.go | 4 +- x/fswap/types/keys.go | 20 +++++++-- 5 files changed, 112 insertions(+), 27 deletions(-) diff --git a/go.mod b/go.mod index 32bcb98842..5605a4cffb 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ go 1.20 module github.com/Finschia/finschia-sdk require ( + cosmossdk.io/collections v0.4.0 github.com/99designs/keyring v1.1.6 github.com/VictoriaMetrics/fastcache v1.12.2 github.com/armon/go-metrics v0.4.1 @@ -54,14 +55,24 @@ require ( ) require ( + cosmossdk.io/api v0.7.0 // indirect + cosmossdk.io/core v0.10.0 // indirect + cosmossdk.io/depinject v1.0.0-alpha.4 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect + github.com/DataDog/zstd v1.5.5 // indirect github.com/Workiva/go-datastructures v1.1.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/btcsuite/btcd v0.22.1 // indirect github.com/cenkalti/backoff/v4 v4.1.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cockroachdb/errors v1.10.0 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v0.0.0-20230525220056-bb4fc9527b3b // indirect + github.com/cockroachdb/redact v1.1.5 // indirect + github.com/cosmos/cosmos-db v1.0.0 // indirect + github.com/cosmos/cosmos-proto v1.0.0-beta.3 // indirect github.com/cosmos/gorocksdb v1.2.0 // indirect github.com/creachadair/taskgroup v0.6.1 // indirect github.com/danieljoos/wincred v1.0.2 // indirect @@ -74,6 +85,7 @@ require ( github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/getsentry/sentry-go v0.23.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect @@ -91,8 +103,11 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect github.com/klauspost/compress v1.17.0 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.9 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect + github.com/linxGnu/grocksdb v1.7.16 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect @@ -105,6 +120,7 @@ require ( github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect github.com/prometheus/procfs v0.11.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.10.1 // indirect github.com/sagikazarmark/locafero v0.3.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect @@ -112,7 +128,7 @@ require ( github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.10.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.6 // indirect diff --git a/go.sum b/go.sum index 6d880b970e..e92a2c149f 100644 --- a/go.sum +++ b/go.sum @@ -35,6 +35,14 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4= +cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M= +cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= +cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= +cosmossdk.io/core v0.10.0 h1:NP28Ol9YyRODmZLJg2ko/mUl40hMegeMzhJnG+XPkcY= +cosmossdk.io/core v0.10.0/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY= +cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= +cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -44,6 +52,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= +github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= @@ -113,6 +123,15 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= +github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v0.0.0-20230525220056-bb4fc9527b3b h1:LCs8gDhg6vt8A3dN7AEJxmCoETZ4qkySoVJVm3rcSJk= +github.com/cockroachdb/pebble v0.0.0-20230525220056-bb4fc9527b3b/go.mod h1:TkdVsGYRqtULUppt2RbC+YaKtTHnHoWa2apfFrSKABw= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go v0.8.3 h1:IYqd+Ser5NVh0s7p8p2Ir82iCvi75E1l0NH2H4NEr0Y= github.com/coinbase/rosetta-sdk-go v0.8.3/go.mod h1:ChOHc+BNq7zqJDDkui0DA124GOvlAiRbdgAc1U9GMDQ= @@ -129,6 +148,10 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= +github.com/cosmos/cosmos-db v1.0.0 h1:EVcQZ+qYag7W6uorBKFPvX6gRjw6Uq2hIh4hCWjuQ0E= +github.com/cosmos/cosmos-db v1.0.0/go.mod h1:iBvi1TtqaedwLdcrZVYRSSCb6eSy61NLj4UNmdIgs0U= +github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= +github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -146,6 +169,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creachadair/taskgroup v0.6.1 h1:KQfRG4VhSj2qoXPkzXrsTaT8oZsMCZD0+KRll2jbF78= github.com/creachadair/taskgroup v0.6.1/go.mod h1:2vCkZ5a+HVcvDl3llMpox2lTw0+MSzrkGsddxRAHXOo= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU= github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -196,13 +220,17 @@ github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2 github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= +github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -220,20 +248,22 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -270,6 +300,7 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -309,6 +340,7 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -420,17 +452,21 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= +github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= +github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -487,20 +523,25 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso= -github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= @@ -528,6 +569,8 @@ github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCr github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -580,7 +623,9 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= @@ -648,13 +693,14 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= -github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RMWx1aInLzndwxKalgi5rTqgfXxOxbEI= github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= @@ -670,8 +716,8 @@ github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqri github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= @@ -799,7 +845,6 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -807,8 +852,11 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -831,6 +879,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -875,18 +924,17 @@ golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -896,6 +944,9 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -903,6 +954,7 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -973,6 +1025,7 @@ golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -983,7 +1036,7 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1130,6 +1183,7 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1140,6 +1194,7 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/x/fswap/keeper/fswap.go b/x/fswap/keeper/fswap.go index 3ecb2f3b12..e139e16832 100644 --- a/x/fswap/keeper/fswap.go +++ b/x/fswap/keeper/fswap.go @@ -8,7 +8,7 @@ import ( // GetSwapped get all parameters as types.Swapped func (k Keeper) GetSwapped(ctx sdk.Context) types.Swapped { store := ctx.KVStore(k.storeKey) - bz := store.Get([]byte{types.SwappedKey}) + bz := store.Get(types.SwappedKey()) var swapped types.Swapped if bz == nil { @@ -25,13 +25,13 @@ func (k Keeper) SetSwapped(ctx sdk.Context, swapped types.Swapped) error { if err != nil { return err } - store.Set([]byte{types.SwappedKey}, bz) + store.Set(types.SwappedKey(), bz) return nil } func (k Keeper) GetSwappableNewCoinAmount(ctx sdk.Context) sdk.Coin { store := ctx.KVStore(k.storeKey) - bz := store.Get([]byte{types.SwappableNewCoinAmountKey}) + bz := store.Get(types.SwappableNewCoinAmountKey()) var swappableNewCoinAmount sdk.Coin if bz == nil { panic(types.ErrSwappableNewCoinAmountNotFound) @@ -46,6 +46,6 @@ func (k Keeper) SetSwappableNewCoinAmount(ctx sdk.Context, swappableNewCoinAmoun if err != nil { return err } - store.Set([]byte{types.SwappableNewCoinAmountKey}, bz) + store.Set(types.SwappableNewCoinAmountKey(), bz) return nil } diff --git a/x/fswap/keeper/params.go b/x/fswap/keeper/params.go index 593768fce6..7dadd44a5b 100644 --- a/x/fswap/keeper/params.go +++ b/x/fswap/keeper/params.go @@ -8,7 +8,7 @@ import ( // GetParams get all parameters as types.Params func (k Keeper) GetParams(ctx sdk.Context) types.Params { store := ctx.KVStore(k.storeKey) - bz := store.Get([]byte{types.ParamsKey}) + bz := store.Get(types.ParamsKey()) var params types.Params if bz == nil { panic(types.ErrParamsNotFound) @@ -24,7 +24,7 @@ func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { if err != nil { return err } - store.Set([]byte{types.ParamsKey}, bz) + store.Set(types.ParamsKey(), bz) return nil } diff --git a/x/fswap/types/keys.go b/x/fswap/types/keys.go index 3e34d8cd60..1d8d3aa65e 100644 --- a/x/fswap/types/keys.go +++ b/x/fswap/types/keys.go @@ -1,5 +1,7 @@ package types +import "cosmossdk.io/collections" + const ( // ModuleName defines the module name ModuleName = "fswap" @@ -18,11 +20,23 @@ const ( ) var ( - ParamsKey = byte(0x00) - SwappedKey = byte(0x01) - SwappableNewCoinAmountKey = byte(0x02) + paramsKeyValue = collections.NewPrefix(0) + swappedKeyValue = collections.NewPrefix(1) + swappableNewCoinAmountKeyValue = collections.NewPrefix(2) ) +func ParamsKey() []byte { + return paramsKeyValue.Bytes() +} + +func SwappedKey() []byte { + return swappedKeyValue.Bytes() +} + +func SwappableNewCoinAmountKey() []byte { + return swappableNewCoinAmountKeyValue.Bytes() +} + func KeyPrefix(p string) []byte { return []byte(p) } From 09562a4c3e709c367f4bd107952c1cddd5117716 Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 14:45:33 +0900 Subject: [PATCH 19/27] Revert "fix: use io/collection to generate key" This reverts commit e42e064d451b1ed3d3c2f65b5abbed46ddfa5954. --- go.mod | 18 +------- go.sum | 89 ++++++++-------------------------------- x/fswap/keeper/fswap.go | 8 ++-- x/fswap/keeper/params.go | 4 +- x/fswap/types/keys.go | 20 ++------- 5 files changed, 27 insertions(+), 112 deletions(-) diff --git a/go.mod b/go.mod index 5605a4cffb..32bcb98842 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,6 @@ go 1.20 module github.com/Finschia/finschia-sdk require ( - cosmossdk.io/collections v0.4.0 github.com/99designs/keyring v1.1.6 github.com/VictoriaMetrics/fastcache v1.12.2 github.com/armon/go-metrics v0.4.1 @@ -55,24 +54,14 @@ require ( ) require ( - cosmossdk.io/api v0.7.0 // indirect - cosmossdk.io/core v0.10.0 // indirect - cosmossdk.io/depinject v1.0.0-alpha.4 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect - github.com/DataDog/zstd v1.5.5 // indirect github.com/Workiva/go-datastructures v1.1.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/btcsuite/btcd v0.22.1 // indirect github.com/cenkalti/backoff/v4 v4.1.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/cockroachdb/errors v1.10.0 // indirect - github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect - github.com/cockroachdb/pebble v0.0.0-20230525220056-bb4fc9527b3b // indirect - github.com/cockroachdb/redact v1.1.5 // indirect - github.com/cosmos/cosmos-db v1.0.0 // indirect - github.com/cosmos/cosmos-proto v1.0.0-beta.3 // indirect github.com/cosmos/gorocksdb v1.2.0 // indirect github.com/creachadair/taskgroup v0.6.1 // indirect github.com/danieljoos/wincred v1.0.2 // indirect @@ -85,7 +74,6 @@ require ( github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/getsentry/sentry-go v0.23.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect @@ -103,11 +91,8 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect github.com/klauspost/compress v1.17.0 // indirect - github.com/kr/pretty v0.3.1 // indirect - github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.9 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/linxGnu/grocksdb v1.7.16 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect @@ -120,7 +105,6 @@ require ( github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect github.com/prometheus/procfs v0.11.1 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.10.1 // indirect github.com/sagikazarmark/locafero v0.3.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect @@ -128,7 +112,7 @@ require ( github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.10.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect + github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect github.com/zondax/hid v0.9.2 // indirect github.com/zondax/ledger-go v0.14.3 // indirect go.etcd.io/bbolt v1.3.6 // indirect diff --git a/go.sum b/go.sum index e92a2c149f..6d880b970e 100644 --- a/go.sum +++ b/go.sum @@ -35,14 +35,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -cosmossdk.io/api v0.7.0 h1:QsEMIWuv9xWDbF2HZnW4Lpu1/SejCztPu0LQx7t6MN4= -cosmossdk.io/api v0.7.0/go.mod h1:kJFAEMLN57y0viszHDPLMmieF0471o5QAwwApa+270M= -cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= -cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= -cosmossdk.io/core v0.10.0 h1:NP28Ol9YyRODmZLJg2ko/mUl40hMegeMzhJnG+XPkcY= -cosmossdk.io/core v0.10.0/go.mod h1:MygXNld9DvMgYY4yE76DM/mdZpgfeyRjy6FPjEEehlY= -cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= -cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -52,8 +44,6 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= -github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= @@ -123,15 +113,6 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= -github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= -github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= -github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= -github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v0.0.0-20230525220056-bb4fc9527b3b h1:LCs8gDhg6vt8A3dN7AEJxmCoETZ4qkySoVJVm3rcSJk= -github.com/cockroachdb/pebble v0.0.0-20230525220056-bb4fc9527b3b/go.mod h1:TkdVsGYRqtULUppt2RbC+YaKtTHnHoWa2apfFrSKABw= -github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= -github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go v0.8.3 h1:IYqd+Ser5NVh0s7p8p2Ir82iCvi75E1l0NH2H4NEr0Y= github.com/coinbase/rosetta-sdk-go v0.8.3/go.mod h1:ChOHc+BNq7zqJDDkui0DA124GOvlAiRbdgAc1U9GMDQ= @@ -148,10 +129,6 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-db v1.0.0 h1:EVcQZ+qYag7W6uorBKFPvX6gRjw6Uq2hIh4hCWjuQ0E= -github.com/cosmos/cosmos-db v1.0.0/go.mod h1:iBvi1TtqaedwLdcrZVYRSSCb6eSy61NLj4UNmdIgs0U= -github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= -github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -169,7 +146,6 @@ github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creachadair/taskgroup v0.6.1 h1:KQfRG4VhSj2qoXPkzXrsTaT8oZsMCZD0+KRll2jbF78= github.com/creachadair/taskgroup v0.6.1/go.mod h1:2vCkZ5a+HVcvDl3llMpox2lTw0+MSzrkGsddxRAHXOo= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU= github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -220,17 +196,13 @@ github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2 github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= -github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= -github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -248,22 +220,20 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -300,7 +270,6 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -340,7 +309,6 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -452,21 +420,17 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= -github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -523,25 +487,20 @@ github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxzi github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso= +github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= -github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= @@ -569,8 +528,6 @@ github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCr github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -623,9 +580,7 @@ github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= @@ -693,14 +648,13 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= -github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15 h1:hqAk8riJvK4RMWx1aInLzndwxKalgi5rTqgfXxOxbEI= github.com/tendermint/crypto v0.0.0-20191022145703-50d29ede1e15/go.mod h1:z4YtwM70uOnk8h0pjJYlj3zdYwi9l03By6iAIF5j/Pk= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= @@ -716,8 +670,8 @@ github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqri github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= @@ -845,6 +799,7 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -852,11 +807,8 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -879,7 +831,6 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -924,17 +875,18 @@ golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -944,9 +896,6 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -954,7 +903,6 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1025,7 +973,6 @@ golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1036,7 +983,7 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1183,7 +1130,6 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1194,7 +1140,6 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/x/fswap/keeper/fswap.go b/x/fswap/keeper/fswap.go index e139e16832..3ecb2f3b12 100644 --- a/x/fswap/keeper/fswap.go +++ b/x/fswap/keeper/fswap.go @@ -8,7 +8,7 @@ import ( // GetSwapped get all parameters as types.Swapped func (k Keeper) GetSwapped(ctx sdk.Context) types.Swapped { store := ctx.KVStore(k.storeKey) - bz := store.Get(types.SwappedKey()) + bz := store.Get([]byte{types.SwappedKey}) var swapped types.Swapped if bz == nil { @@ -25,13 +25,13 @@ func (k Keeper) SetSwapped(ctx sdk.Context, swapped types.Swapped) error { if err != nil { return err } - store.Set(types.SwappedKey(), bz) + store.Set([]byte{types.SwappedKey}, bz) return nil } func (k Keeper) GetSwappableNewCoinAmount(ctx sdk.Context) sdk.Coin { store := ctx.KVStore(k.storeKey) - bz := store.Get(types.SwappableNewCoinAmountKey()) + bz := store.Get([]byte{types.SwappableNewCoinAmountKey}) var swappableNewCoinAmount sdk.Coin if bz == nil { panic(types.ErrSwappableNewCoinAmountNotFound) @@ -46,6 +46,6 @@ func (k Keeper) SetSwappableNewCoinAmount(ctx sdk.Context, swappableNewCoinAmoun if err != nil { return err } - store.Set(types.SwappableNewCoinAmountKey(), bz) + store.Set([]byte{types.SwappableNewCoinAmountKey}, bz) return nil } diff --git a/x/fswap/keeper/params.go b/x/fswap/keeper/params.go index 7dadd44a5b..593768fce6 100644 --- a/x/fswap/keeper/params.go +++ b/x/fswap/keeper/params.go @@ -8,7 +8,7 @@ import ( // GetParams get all parameters as types.Params func (k Keeper) GetParams(ctx sdk.Context) types.Params { store := ctx.KVStore(k.storeKey) - bz := store.Get(types.ParamsKey()) + bz := store.Get([]byte{types.ParamsKey}) var params types.Params if bz == nil { panic(types.ErrParamsNotFound) @@ -24,7 +24,7 @@ func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { if err != nil { return err } - store.Set(types.ParamsKey(), bz) + store.Set([]byte{types.ParamsKey}, bz) return nil } diff --git a/x/fswap/types/keys.go b/x/fswap/types/keys.go index 1d8d3aa65e..3e34d8cd60 100644 --- a/x/fswap/types/keys.go +++ b/x/fswap/types/keys.go @@ -1,7 +1,5 @@ package types -import "cosmossdk.io/collections" - const ( // ModuleName defines the module name ModuleName = "fswap" @@ -20,23 +18,11 @@ const ( ) var ( - paramsKeyValue = collections.NewPrefix(0) - swappedKeyValue = collections.NewPrefix(1) - swappableNewCoinAmountKeyValue = collections.NewPrefix(2) + ParamsKey = byte(0x00) + SwappedKey = byte(0x01) + SwappableNewCoinAmountKey = byte(0x02) ) -func ParamsKey() []byte { - return paramsKeyValue.Bytes() -} - -func SwappedKey() []byte { - return swappedKeyValue.Bytes() -} - -func SwappableNewCoinAmountKey() []byte { - return swappableNewCoinAmountKeyValue.Bytes() -} - func KeyPrefix(p string) []byte { return []byte(p) } From 688d4892d81189c7911b8076fa04958aad5e9bbd Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 16:09:48 +0900 Subject: [PATCH 20/27] fix: change sdk.Coin to sdk.Int Signed-off-by: 170210 --- docs/core/proto-docs.md | 9 ++- proto/lbm/fswap/v1/fswap.proto | 8 +- proto/lbm/fswap/v1/params.proto | 4 +- proto/lbm/fswap/v1/query.proto | 5 +- x/fswap/keeper/params.go | 2 +- x/fswap/types/fswap.go | 35 +++++---- x/fswap/types/fswap.pb.go | 83 +++++++++------------ x/fswap/types/genesis.go | 10 +-- x/fswap/types/genesis_test.go | 15 +++- x/fswap/types/params.go | 10 +-- x/fswap/types/params.pb.go | 54 ++++++-------- x/fswap/types/query.pb.go | 128 +++++++++++++++++++++++--------- 12 files changed, 203 insertions(+), 160 deletions(-) diff --git a/docs/core/proto-docs.md b/docs/core/proto-docs.md index a93ccad79b..4e220b60ac 100644 --- a/docs/core/proto-docs.md +++ b/docs/core/proto-docs.md @@ -12759,8 +12759,8 @@ Msg defines the foundation Msg service. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| `old_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | +| `old_coin_amount` | [string](#string) | | | +| `new_coin_amount` | [string](#string) | | | @@ -12791,7 +12791,7 @@ Params defines the parameters for the module. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| `swappable_new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | +| `swappable_new_coin_amount` | [string](#string) | | | @@ -12864,7 +12864,8 @@ GenesisState defines the fswap module's genesis state. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| `swapped` | [Swapped](#lbm.fswap.v1.Swapped) | | | +| `old_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | +| `new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | diff --git a/proto/lbm/fswap/v1/fswap.proto b/proto/lbm/fswap/v1/fswap.proto index ca34026aca..14315e32d0 100644 --- a/proto/lbm/fswap/v1/fswap.proto +++ b/proto/lbm/fswap/v1/fswap.proto @@ -4,11 +4,9 @@ package lbm.fswap.v1; option go_package = "github.com/Finschia/finschia-sdk/x/fswap/types"; import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; message Swapped { - cosmos.base.v1beta1.Coin old_coin_amount = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; - cosmos.base.v1beta1.Coin new_coin_amount = 2 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; + option (gogoproto.goproto_stringer) = false; + string old_coin_amount = 1 [(gogoproto.customtype) = "github.com/Finschia/finschia-sdk/types.Int", (gogoproto.nullable) = false]; + string new_coin_amount = 2 [(gogoproto.customtype) = "github.com/Finschia/finschia-sdk/types.Int", (gogoproto.nullable) = false]; } diff --git a/proto/lbm/fswap/v1/params.proto b/proto/lbm/fswap/v1/params.proto index 1c13952d96..bc5535afb4 100644 --- a/proto/lbm/fswap/v1/params.proto +++ b/proto/lbm/fswap/v1/params.proto @@ -4,11 +4,9 @@ package lbm.fswap.v1; option go_package = "github.com/Finschia/finschia-sdk/x/fswap/types"; import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; // Params defines the parameters for the module. message Params { option (gogoproto.goproto_stringer) = false; - cosmos.base.v1beta1.Coin swappable_new_coin_amount = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; + string swappable_new_coin_amount = 1 [(gogoproto.customtype) = "github.com/Finschia/finschia-sdk/types.Int", (gogoproto.nullable) = false]; } \ No newline at end of file diff --git a/proto/lbm/fswap/v1/query.proto b/proto/lbm/fswap/v1/query.proto index f5d92c7bfc..52b7e05727 100644 --- a/proto/lbm/fswap/v1/query.proto +++ b/proto/lbm/fswap/v1/query.proto @@ -19,7 +19,10 @@ service Query { message QuerySwappedRequest {} message QuerySwappedResponse { - Swapped swapped = 1 [(gogoproto.nullable) = false]; + cosmos.base.v1beta1.Coin old_coin_amount = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; + cosmos.base.v1beta1.Coin new_coin_amount = 2 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; } message QueryTotalSwappableAmountRequest {} diff --git a/x/fswap/keeper/params.go b/x/fswap/keeper/params.go index 593768fce6..fa86e6be69 100644 --- a/x/fswap/keeper/params.go +++ b/x/fswap/keeper/params.go @@ -28,7 +28,7 @@ func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { return nil } -func (k Keeper) SwappableNewCoinAmount(ctx sdk.Context) sdk.Coin { +func (k Keeper) SwappableNewCoinAmount(ctx sdk.Context) sdk.Int { params := k.GetParams(ctx) return params.SwappableNewCoinAmount } diff --git a/x/fswap/types/fswap.go b/x/fswap/types/fswap.go index 14c25466de..e0a619ccf0 100644 --- a/x/fswap/types/fswap.go +++ b/x/fswap/types/fswap.go @@ -1,39 +1,40 @@ package types import ( - "errors" fmt "fmt" - "strings" sdk "github.com/Finschia/finschia-sdk/types" + "gopkg.in/yaml.v2" ) // NewSwapped creates a new Swapped instance func NewSwapped( - config Config, + oldCoinAmount sdk.Int, + newCoinAmount sdk.Int, ) Swapped { return Swapped{ - OldCoinAmount: sdk.NewCoin(config.OldCoinDenom, sdk.NewInt(0)), - NewCoinAmount: sdk.NewCoin(config.NewCoinDenom, sdk.NewInt(0)), + OldCoinAmount: oldCoinAmount, + NewCoinAmount: newCoinAmount, } } // DefaultSwapped returns an initial Swapped object func DefaultSwapped() Swapped { - return NewSwapped(DefaultConfig()) + return NewSwapped(sdk.ZeroInt(), sdk.ZeroInt()) } -func validateCoin(i interface{}) error { - v, ok := i.(sdk.Coin) +func validateCoinAmount(i interface{}) error { + v, ok := i.(sdk.Int) if !ok { return fmt.Errorf("invalid coin amount: %T", i) } - if strings.TrimSpace(v.Denom) == "" { - return errors.New("denom cannot be blank") + if v.IsNil() { + return fmt.Errorf("coin amount must be not nil") } - if err := sdk.ValidateDenom(v.Denom); err != nil { - return err + + if v.LT(sdk.ZeroInt()) { + return fmt.Errorf("coin amount cannot be lower than 0") } return nil @@ -41,11 +42,17 @@ func validateCoin(i interface{}) error { // Validate validates the set of swapped func (s Swapped) Validate() error { - if err := validateCoin(s.OldCoinAmount); err != nil { + if err := validateCoinAmount(s.OldCoinAmount); err != nil { return err } - if err := validateCoin(s.NewCoinAmount); err != nil { + if err := validateCoinAmount(s.NewCoinAmount); err != nil { return err } return nil } + +// String implements the Stringer interface. +func (s Swapped) String() string { + out, _ := yaml.Marshal(s) + return string(out) +} diff --git a/x/fswap/types/fswap.pb.go b/x/fswap/types/fswap.pb.go index f53d058797..1923c31269 100644 --- a/x/fswap/types/fswap.pb.go +++ b/x/fswap/types/fswap.pb.go @@ -5,7 +5,7 @@ package types import ( fmt "fmt" - types "github.com/Finschia/finschia-sdk/types" + github_com_Finschia_finschia_sdk_types "github.com/Finschia/finschia-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" io "io" @@ -25,13 +25,12 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type Swapped struct { - OldCoinAmount types.Coin `protobuf:"bytes,1,opt,name=old_coin_amount,json=oldCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"old_coin_amount"` - NewCoinAmount types.Coin `protobuf:"bytes,2,opt,name=new_coin_amount,json=newCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"new_coin_amount"` + OldCoinAmount github_com_Finschia_finschia_sdk_types.Int `protobuf:"bytes,1,opt,name=old_coin_amount,json=oldCoinAmount,proto3,customtype=github.com/Finschia/finschia-sdk/types.Int" json:"old_coin_amount"` + NewCoinAmount github_com_Finschia_finschia_sdk_types.Int `protobuf:"bytes,2,opt,name=new_coin_amount,json=newCoinAmount,proto3,customtype=github.com/Finschia/finschia-sdk/types.Int" json:"new_coin_amount"` } -func (m *Swapped) Reset() { *m = Swapped{} } -func (m *Swapped) String() string { return proto.CompactTextString(m) } -func (*Swapped) ProtoMessage() {} +func (m *Swapped) Reset() { *m = Swapped{} } +func (*Swapped) ProtoMessage() {} func (*Swapped) Descriptor() ([]byte, []int) { return fileDescriptor_42ca60eaf37a2b67, []int{0} } @@ -62,20 +61,6 @@ func (m *Swapped) XXX_DiscardUnknown() { var xxx_messageInfo_Swapped proto.InternalMessageInfo -func (m *Swapped) GetOldCoinAmount() types.Coin { - if m != nil { - return m.OldCoinAmount - } - return types.Coin{} -} - -func (m *Swapped) GetNewCoinAmount() types.Coin { - if m != nil { - return m.NewCoinAmount - } - return types.Coin{} -} - func init() { proto.RegisterType((*Swapped)(nil), "lbm.fswap.v1.Swapped") } @@ -83,24 +68,22 @@ func init() { func init() { proto.RegisterFile("lbm/fswap/v1/fswap.proto", fileDescriptor_42ca60eaf37a2b67) } var fileDescriptor_42ca60eaf37a2b67 = []byte{ - // 262 bytes of a gzipped FileDescriptorProto + // 230 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xc8, 0x49, 0xca, 0xd5, 0x4f, 0x2b, 0x2e, 0x4f, 0x2c, 0xd0, 0x2f, 0x33, 0x84, 0x30, 0xf4, 0x0a, 0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x78, 0x72, 0x92, 0x72, 0xf5, 0x20, 0x02, 0x65, 0x86, 0x52, 0x22, 0xe9, 0xf9, 0xe9, 0xf9, - 0x60, 0x09, 0x7d, 0x10, 0x0b, 0xa2, 0x46, 0x4a, 0x2e, 0x39, 0xbf, 0x38, 0x37, 0xbf, 0x58, 0x3f, - 0x29, 0xb1, 0x38, 0x55, 0xbf, 0xcc, 0x30, 0x29, 0xb5, 0x24, 0xd1, 0x50, 0x3f, 0x39, 0x3f, 0x33, - 0x0f, 0x22, 0xaf, 0xf4, 0x93, 0x91, 0x8b, 0x3d, 0xb8, 0x3c, 0xb1, 0xa0, 0x20, 0x35, 0x45, 0xa8, - 0x8c, 0x8b, 0x3f, 0x3f, 0x27, 0x25, 0x1e, 0x24, 0x1b, 0x9f, 0x98, 0x9b, 0x5f, 0x9a, 0x57, 0x22, - 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0x24, 0xa9, 0x07, 0x31, 0x45, 0x0f, 0x64, 0x8a, 0x1e, 0xd4, - 0x14, 0x3d, 0xe7, 0xfc, 0xcc, 0x3c, 0x27, 0xe3, 0x13, 0xf7, 0xe4, 0x19, 0x56, 0xdd, 0x97, 0xd7, - 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x77, 0xcb, 0xcc, 0x2b, 0x4e, - 0xce, 0xc8, 0x4c, 0xd4, 0x4f, 0x83, 0x32, 0x74, 0x8b, 0x53, 0xb2, 0xf5, 0x4b, 0x2a, 0x0b, 0x52, - 0x8b, 0xc1, 0x9a, 0x82, 0x78, 0xf3, 0x73, 0x52, 0x40, 0x0c, 0x47, 0xb0, 0x25, 0x20, 0x7b, 0xf3, - 0x52, 0xcb, 0x51, 0xec, 0x65, 0xa2, 0x8d, 0xbd, 0x79, 0xa9, 0xe5, 0x08, 0x7b, 0x9d, 0x3c, 0x4e, - 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, - 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0x4a, 0x8f, 0xa0, 0xa9, 0x15, 0xd0, 0x28, - 0x01, 0x9b, 0x9e, 0xc4, 0x06, 0x0e, 0x4c, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5c, 0x78, - 0x6f, 0xce, 0xac, 0x01, 0x00, 0x00, + 0x60, 0x09, 0x7d, 0x10, 0x0b, 0xa2, 0x46, 0xe9, 0x38, 0x23, 0x17, 0x7b, 0x70, 0x79, 0x62, 0x41, + 0x41, 0x6a, 0x8a, 0x50, 0x14, 0x17, 0x7f, 0x7e, 0x4e, 0x4a, 0x7c, 0x72, 0x7e, 0x66, 0x5e, 0x7c, + 0x62, 0x6e, 0x7e, 0x69, 0x5e, 0x89, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xa7, 0x93, 0xd1, 0x89, 0x7b, + 0xf2, 0x0c, 0xb7, 0xee, 0xc9, 0x6b, 0xa5, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, + 0xea, 0xbb, 0x65, 0xe6, 0x15, 0x27, 0x67, 0x64, 0x26, 0xea, 0xa7, 0x41, 0x19, 0xba, 0xc5, 0x29, + 0xd9, 0xfa, 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x7a, 0x9e, 0x79, 0x25, 0x41, 0xbc, 0xf9, 0x39, 0x29, + 0xce, 0xf9, 0x99, 0x79, 0x8e, 0x60, 0x83, 0x40, 0x66, 0xe7, 0xa5, 0x96, 0xa3, 0x98, 0xcd, 0x44, + 0xbe, 0xd9, 0x79, 0xa9, 0xe5, 0x08, 0xb3, 0xad, 0x58, 0x66, 0x2c, 0x90, 0x67, 0x70, 0xf2, 0x38, + 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, 0x96, 0x63, + 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0x3d, 0x82, 0x46, 0x57, 0x40, 0x03, + 0x10, 0x6c, 0x45, 0x12, 0x1b, 0x38, 0x68, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x82, 0xb7, + 0x84, 0x0e, 0x5a, 0x01, 0x00, 0x00, } func (m *Swapped) Marshal() (dAtA []byte, err error) { @@ -124,21 +107,21 @@ func (m *Swapped) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size, err := m.NewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { + size := m.NewCoinAmount.Size() + i -= size + if _, err := m.NewCoinAmount.MarshalTo(dAtA[i:]); err != nil { return 0, err } - i -= size i = encodeVarintFswap(dAtA, i, uint64(size)) } i-- dAtA[i] = 0x12 { - size, err := m.OldCoinAmount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { + size := m.OldCoinAmount.Size() + i -= size + if _, err := m.OldCoinAmount.MarshalTo(dAtA[i:]); err != nil { return 0, err } - i -= size i = encodeVarintFswap(dAtA, i, uint64(size)) } i-- @@ -209,7 +192,7 @@ func (m *Swapped) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OldCoinAmount", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowFswap @@ -219,15 +202,16 @@ func (m *Swapped) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthFswap } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthFswap } @@ -242,7 +226,7 @@ func (m *Swapped) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field NewCoinAmount", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowFswap @@ -252,15 +236,16 @@ func (m *Swapped) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthFswap } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthFswap } diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index 8d1c13c061..4e5b68856a 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -1,18 +1,16 @@ package types -import sdk "github.com/Finschia/finschia-sdk/types" - // NewGenesis creates a new genesis state -func NewGenesisState(config Config, swappable sdk.Coin) *GenesisState { +func NewGenesisState(params Params, swapped Swapped) *GenesisState { return &GenesisState{ - Params: NewParams(swappable), - Swapped: NewSwapped(config), + Params: params, + Swapped: swapped, } } // DefaultGenesis returns the default Capability genesis state func DefaultGenesis() *GenesisState { - return NewGenesisState(DefaultConfig(), DefaultSwappableNewCoinAmount) + return NewGenesisState(DefaultParams(), DefaultSwapped()) } // Validate performs basic genesis state validation returning an error upon any diff --git a/x/fswap/types/genesis_test.go b/x/fswap/types/genesis_test.go index 91c4b874f4..7f75f7d5ad 100644 --- a/x/fswap/types/genesis_test.go +++ b/x/fswap/types/genesis_test.go @@ -52,7 +52,7 @@ func TestGenesisStateValidate(t *testing.T) { genState: &types.GenesisState{ Params: types.DefaultParams(), Swapped: types.Swapped{ - NewCoinAmount: sdk.NewInt64Coin("atom", 1), + NewCoinAmount: sdk.ZeroInt(), }, }, valid: false, @@ -62,7 +62,18 @@ func TestGenesisStateValidate(t *testing.T) { genState: &types.GenesisState{ Params: types.DefaultParams(), Swapped: types.Swapped{ - OldCoinAmount: sdk.NewInt64Coin("cony", 1), + OldCoinAmount: sdk.ZeroInt(), + }, + }, + valid: false, + }, + { + desc: "coinAmount is negative", + genState: &types.GenesisState{ + Params: types.DefaultParams(), + Swapped: types.Swapped{ + NewCoinAmount: sdk.ZeroInt(), + OldCoinAmount: sdk.NewInt(-1), }, }, valid: false, diff --git a/x/fswap/types/params.go b/x/fswap/types/params.go index ab81d96ca9..fbfedf3534 100644 --- a/x/fswap/types/params.go +++ b/x/fswap/types/params.go @@ -6,11 +6,9 @@ import ( sdk "github.com/Finschia/finschia-sdk/types" ) -var DefaultSwappableNewCoinAmount = sdk.NewCoin(DefaultConfig().NewCoinDenom, sdk.NewInt(0)) - // NewParams creates a new Params instance func NewParams( - swappableNewCoinAmount sdk.Coin, + swappableNewCoinAmount sdk.Int, ) Params { return Params{ SwappableNewCoinAmount: swappableNewCoinAmount, @@ -19,14 +17,12 @@ func NewParams( // DefaultParams returns a default set of parameters func DefaultParams() Params { - return NewParams( - DefaultSwappableNewCoinAmount, - ) + return NewParams(sdk.ZeroInt()) } // Validate validates the set of params func (p Params) Validate() error { - if err := validateCoin(p.SwappableNewCoinAmount); err != nil { + if err := validateCoinAmount(p.SwappableNewCoinAmount); err != nil { return err } return nil diff --git a/x/fswap/types/params.pb.go b/x/fswap/types/params.pb.go index 74cab191d4..8e9887228b 100644 --- a/x/fswap/types/params.pb.go +++ b/x/fswap/types/params.pb.go @@ -5,7 +5,7 @@ package types import ( fmt "fmt" - types "github.com/Finschia/finschia-sdk/types" + github_com_Finschia_finschia_sdk_types "github.com/Finschia/finschia-sdk/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" io "io" @@ -26,7 +26,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // Params defines the parameters for the module. type Params struct { - SwappableNewCoinAmount types.Coin `protobuf:"bytes,1,opt,name=swappable_new_coin_amount,json=swappableNewCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"swappable_new_coin_amount"` + SwappableNewCoinAmount github_com_Finschia_finschia_sdk_types.Int `protobuf:"bytes,1,opt,name=swappable_new_coin_amount,json=swappableNewCoinAmount,proto3,customtype=github.com/Finschia/finschia-sdk/types.Int" json:"swappable_new_coin_amount"` } func (m *Params) Reset() { *m = Params{} } @@ -61,13 +61,6 @@ func (m *Params) XXX_DiscardUnknown() { var xxx_messageInfo_Params proto.InternalMessageInfo -func (m *Params) GetSwappableNewCoinAmount() types.Coin { - if m != nil { - return m.SwappableNewCoinAmount - } - return types.Coin{} -} - func init() { proto.RegisterType((*Params)(nil), "lbm.fswap.v1.Params") } @@ -75,24 +68,22 @@ func init() { func init() { proto.RegisterFile("lbm/fswap/v1/params.proto", fileDescriptor_15e620b81032c44d) } var fileDescriptor_15e620b81032c44d = []byte{ - // 265 bytes of a gzipped FileDescriptorProto + // 225 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0x49, 0xca, 0xd5, 0x4f, 0x2b, 0x2e, 0x4f, 0x2c, 0xd0, 0x2f, 0x33, 0xd4, 0x2f, 0x48, 0x2c, 0x4a, 0xcc, 0x2d, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0xc9, 0x49, 0xca, 0xd5, 0x03, 0x4b, 0xe9, 0x95, 0x19, - 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0x29, 0xb9, 0xe4, - 0xfc, 0xe2, 0xdc, 0xfc, 0x62, 0xfd, 0xa4, 0xc4, 0xe2, 0x54, 0xfd, 0x32, 0xc3, 0xa4, 0xd4, 0x92, - 0x44, 0x43, 0xfd, 0xe4, 0xfc, 0xcc, 0x3c, 0x88, 0xbc, 0xd2, 0x2c, 0x46, 0x2e, 0xb6, 0x00, 0xb0, - 0xa1, 0x42, 0x9d, 0x8c, 0x5c, 0x92, 0x20, 0xc3, 0x0a, 0x12, 0x93, 0x72, 0x52, 0xe3, 0xf3, 0x52, - 0xcb, 0xe3, 0x41, 0xea, 0xe2, 0x13, 0x73, 0xf3, 0x4b, 0xf3, 0x4a, 0x24, 0x18, 0x15, 0x18, 0x35, - 0xb8, 0x8d, 0x24, 0xf5, 0x20, 0xe6, 0xe9, 0x81, 0xcc, 0xd3, 0x83, 0x9a, 0xa7, 0xe7, 0x9c, 0x9f, - 0x99, 0xe7, 0x64, 0x7c, 0xe2, 0x9e, 0x3c, 0xc3, 0xaa, 0xfb, 0xf2, 0xda, 0xe9, 0x99, 0x25, 0x19, - 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0x6e, 0x99, 0x79, 0xc5, 0xc9, 0x19, 0x99, 0x89, 0xfa, - 0x69, 0x50, 0x86, 0x6e, 0x71, 0x4a, 0xb6, 0x7e, 0x49, 0x65, 0x41, 0x6a, 0x31, 0x58, 0x53, 0x90, - 0x18, 0xdc, 0x42, 0xbf, 0xd4, 0x72, 0x90, 0x88, 0x23, 0xd8, 0x36, 0x2b, 0x96, 0x19, 0x0b, 0xe4, - 0x19, 0x9c, 0x3c, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, - 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0x4a, 0x8f, 0xa0, - 0x25, 0x15, 0xd0, 0x40, 0x03, 0x5b, 0x96, 0xc4, 0x06, 0xf6, 0xad, 0x31, 0x20, 0x00, 0x00, 0xff, - 0xff, 0xb8, 0x98, 0x4e, 0x55, 0x4e, 0x01, 0x00, 0x00, + 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x25, 0xf4, 0x41, 0x2c, 0x88, 0x1a, 0xa5, 0x5a, 0x2e, + 0xb6, 0x00, 0xb0, 0x1e, 0xa1, 0x5c, 0x2e, 0x49, 0x90, 0xd2, 0x82, 0xc4, 0xa4, 0x9c, 0xd4, 0xf8, + 0xbc, 0xd4, 0xf2, 0xf8, 0xe4, 0xfc, 0xcc, 0xbc, 0xf8, 0xc4, 0xdc, 0xfc, 0xd2, 0xbc, 0x12, 0x09, + 0x46, 0x05, 0x46, 0x0d, 0x4e, 0x27, 0xa3, 0x13, 0xf7, 0xe4, 0x19, 0x6e, 0xdd, 0x93, 0xd7, 0x4a, + 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x77, 0xcb, 0xcc, 0x2b, 0x4e, 0xce, + 0xc8, 0x4c, 0xd4, 0x4f, 0x83, 0x32, 0x74, 0x8b, 0x53, 0xb2, 0xf5, 0x4b, 0x2a, 0x0b, 0x52, 0x8b, + 0xf5, 0x3c, 0xf3, 0x4a, 0x82, 0xc4, 0xe0, 0x86, 0xfa, 0xa5, 0x96, 0x3b, 0xe7, 0x67, 0xe6, 0x39, + 0x82, 0x4d, 0xb4, 0x62, 0x99, 0xb1, 0x40, 0x9e, 0xc1, 0xc9, 0xe3, 0xc4, 0x23, 0x39, 0xc6, 0x0b, + 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, 0x86, + 0x1b, 0x8f, 0xe5, 0x18, 0xa2, 0xf4, 0x08, 0xda, 0x51, 0x01, 0xf5, 0x36, 0xd8, 0xae, 0x24, 0x36, + 0xb0, 0x7f, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x53, 0xb6, 0x13, 0xee, 0x10, 0x01, 0x00, + 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -116,11 +107,11 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size, err := m.SwappableNewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { + size := m.SwappableNewCoinAmount.Size() + i -= size + if _, err := m.SwappableNewCoinAmount.MarshalTo(dAtA[i:]); err != nil { return 0, err } - i -= size i = encodeVarintParams(dAtA, i, uint64(size)) } i-- @@ -189,7 +180,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field SwappableNewCoinAmount", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowParams @@ -199,15 +190,16 @@ func (m *Params) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthParams } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthParams } diff --git a/x/fswap/types/query.pb.go b/x/fswap/types/query.pb.go index b3635cf9ad..4d1ae14f18 100644 --- a/x/fswap/types/query.pb.go +++ b/x/fswap/types/query.pb.go @@ -67,7 +67,8 @@ func (m *QuerySwappedRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QuerySwappedRequest proto.InternalMessageInfo type QuerySwappedResponse struct { - Swapped Swapped `protobuf:"bytes,1,opt,name=swapped,proto3" json:"swapped"` + OldCoinAmount types.Coin `protobuf:"bytes,1,opt,name=old_coin_amount,json=oldCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"old_coin_amount"` + NewCoinAmount types.Coin `protobuf:"bytes,2,opt,name=new_coin_amount,json=newCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"new_coin_amount"` } func (m *QuerySwappedResponse) Reset() { *m = QuerySwappedResponse{} } @@ -103,11 +104,18 @@ func (m *QuerySwappedResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QuerySwappedResponse proto.InternalMessageInfo -func (m *QuerySwappedResponse) GetSwapped() Swapped { +func (m *QuerySwappedResponse) GetOldCoinAmount() types.Coin { if m != nil { - return m.Swapped + return m.OldCoinAmount } - return Swapped{} + return types.Coin{} +} + +func (m *QuerySwappedResponse) GetNewCoinAmount() types.Coin { + if m != nil { + return m.NewCoinAmount + } + return types.Coin{} } type QueryTotalSwappableAmountRequest struct { @@ -200,35 +208,36 @@ func init() { func init() { proto.RegisterFile("lbm/fswap/v1/query.proto", fileDescriptor_01deae9da7816d6a) } var fileDescriptor_01deae9da7816d6a = []byte{ - // 441 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x41, 0x8b, 0xd3, 0x40, - 0x14, 0xc7, 0x33, 0x8b, 0xba, 0x30, 0x7a, 0x1a, 0xb7, 0xba, 0x0d, 0x9a, 0xdd, 0xcd, 0x45, 0x45, - 0x9c, 0x21, 0xbb, 0xf8, 0x01, 0xac, 0x20, 0x1e, 0x54, 0xb0, 0x7a, 0xf2, 0x52, 0x26, 0xd9, 0xd9, - 0xec, 0x60, 0x32, 0x2f, 0xcd, 0x4c, 0x1a, 0x7b, 0xf5, 0xe6, 0x4d, 0xf0, 0x4b, 0x88, 0x20, 0x7e, - 0x8d, 0x1e, 0x0b, 0x5e, 0x3c, 0xa9, 0xb4, 0x7e, 0x10, 0xc9, 0x64, 0x2a, 0x06, 0x42, 0xf5, 0xf6, - 0x78, 0xef, 0x9f, 0xf9, 0xff, 0xde, 0xff, 0x05, 0xef, 0x67, 0x71, 0xce, 0xce, 0x74, 0xcd, 0x0b, - 0x36, 0x8b, 0xd8, 0xb4, 0x12, 0xe5, 0x9c, 0x16, 0x25, 0x18, 0x20, 0x57, 0xb2, 0x38, 0xa7, 0x76, - 0x42, 0x67, 0x91, 0x7f, 0x23, 0x05, 0x48, 0x33, 0xc1, 0x78, 0x21, 0x19, 0x57, 0x0a, 0x0c, 0x37, - 0x12, 0x94, 0x6e, 0xb5, 0xfe, 0x5e, 0x0a, 0x29, 0xd8, 0x92, 0x35, 0x95, 0xeb, 0x06, 0x09, 0xe8, - 0x1c, 0x34, 0x8b, 0xb9, 0x16, 0x6c, 0x16, 0xc5, 0xc2, 0xf0, 0x88, 0x25, 0x20, 0x95, 0x9b, 0x77, - 0xbd, 0x5b, 0x2b, 0x3b, 0x09, 0x07, 0xf8, 0xea, 0xf3, 0x06, 0xe5, 0x45, 0xcd, 0x8b, 0x42, 0x9c, - 0x8e, 0xc5, 0xb4, 0x12, 0xda, 0x84, 0x4f, 0xf1, 0x5e, 0xb7, 0xad, 0x0b, 0x50, 0x5a, 0x90, 0xfb, - 0x78, 0x57, 0xb7, 0xad, 0x7d, 0x74, 0x88, 0x6e, 0x5f, 0x3e, 0x1e, 0xd0, 0xbf, 0xe1, 0xa9, 0xd3, - 0x8f, 0x2e, 0x2c, 0xbe, 0x1f, 0x78, 0xe3, 0x8d, 0x36, 0x0c, 0xf1, 0xa1, 0x7d, 0xee, 0x25, 0x18, - 0x9e, 0x59, 0x0d, 0x8f, 0x33, 0xf1, 0x20, 0x87, 0x4a, 0x99, 0x8d, 0xe5, 0x17, 0x84, 0x8f, 0xb6, - 0x88, 0x1c, 0xc0, 0x3b, 0x84, 0x87, 0x7a, 0x33, 0x9b, 0x28, 0x51, 0x4f, 0x9a, 0x35, 0x27, 0xdc, - 0xaa, 0x1c, 0xd3, 0x90, 0xb6, 0x71, 0xd0, 0x26, 0x0e, 0xea, 0xe2, 0xa0, 0x0f, 0x41, 0xaa, 0xd1, - 0x49, 0xc3, 0xf5, 0xe9, 0xc7, 0xc1, 0xdd, 0x54, 0x9a, 0xf3, 0x2a, 0xa6, 0x09, 0xe4, 0xec, 0x91, - 0x54, 0x3a, 0x39, 0x97, 0x9c, 0x9d, 0xb9, 0xe2, 0x9e, 0x3e, 0x7d, 0xcd, 0xcc, 0xbc, 0x10, 0xda, - 0x7e, 0x34, 0xbe, 0xf6, 0xc7, 0xf0, 0x99, 0xa8, 0x9b, 0x4e, 0xcb, 0x74, 0xfc, 0x71, 0x07, 0x5f, - 0xb4, 0xc4, 0x04, 0xf0, 0xae, 0xdb, 0x9c, 0x1c, 0x75, 0x03, 0xe9, 0x09, 0xd7, 0x0f, 0xb7, 0x49, - 0xda, 0x3d, 0xc3, 0x9b, 0x6f, 0xbf, 0xfe, 0xfa, 0xb0, 0x73, 0x9d, 0x0c, 0x58, 0xe7, 0x74, 0x2e, - 0x50, 0xf2, 0x19, 0xe1, 0xa1, 0xcd, 0xa9, 0x21, 0xaa, 0xca, 0x52, 0xa8, 0xc4, 0x3e, 0xf1, 0x44, - 0xe6, 0xd2, 0x10, 0xda, 0x63, 0xb0, 0x25, 0x7a, 0x9f, 0xfd, 0xb7, 0xde, 0xd1, 0x31, 0x4b, 0x77, - 0x87, 0xdc, 0xea, 0xa1, 0xeb, 0x3b, 0xcc, 0xe8, 0xf1, 0x62, 0x15, 0xa0, 0xe5, 0x2a, 0x40, 0x3f, - 0x57, 0x01, 0x7a, 0xbf, 0x0e, 0xbc, 0xe5, 0x3a, 0xf0, 0xbe, 0xad, 0x03, 0xef, 0x15, 0xfd, 0xe7, - 0x25, 0xde, 0x38, 0x03, 0x7b, 0x91, 0xf8, 0x92, 0xfd, 0x6f, 0x4f, 0x7e, 0x07, 0x00, 0x00, 0xff, - 0xff, 0xb5, 0xb0, 0x8d, 0x67, 0x4f, 0x03, 0x00, 0x00, + // 453 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x93, 0xc1, 0x6a, 0xd5, 0x40, + 0x14, 0x86, 0x33, 0x01, 0x15, 0x46, 0x45, 0x88, 0xad, 0xf6, 0x06, 0x4d, 0xdb, 0x6c, 0x54, 0xc4, + 0x19, 0xd2, 0x3e, 0x81, 0x15, 0xc4, 0x85, 0x08, 0x56, 0x57, 0x6e, 0x2e, 0x93, 0x64, 0x9a, 0x0e, + 0x26, 0x73, 0xd2, 0xcc, 0x24, 0xb1, 0x5b, 0x17, 0x82, 0x3b, 0xc1, 0x97, 0x10, 0x41, 0x7c, 0x8d, + 0x2e, 0x0b, 0x6e, 0x5c, 0xa9, 0xdc, 0xeb, 0x83, 0x48, 0x26, 0x53, 0xbd, 0x91, 0x70, 0x75, 0x73, + 0x77, 0x87, 0xf9, 0x4f, 0xe6, 0xfb, 0xe7, 0x3f, 0x27, 0x78, 0x23, 0x8f, 0x0b, 0x7a, 0xa0, 0x5a, + 0x56, 0xd2, 0x26, 0xa2, 0x47, 0x35, 0xaf, 0x8e, 0x49, 0x59, 0x81, 0x06, 0xef, 0x52, 0x1e, 0x17, + 0xc4, 0x28, 0xa4, 0x89, 0xfc, 0x1b, 0x19, 0x40, 0x96, 0x73, 0xca, 0x4a, 0x41, 0x99, 0x94, 0xa0, + 0x99, 0x16, 0x20, 0x55, 0xdf, 0xeb, 0xaf, 0x65, 0x90, 0x81, 0x29, 0x69, 0x57, 0xd9, 0xd3, 0x20, + 0x01, 0x55, 0x80, 0xa2, 0x31, 0x53, 0x9c, 0x36, 0x51, 0xcc, 0x35, 0x8b, 0x68, 0x02, 0x42, 0x5a, + 0x7d, 0xc8, 0xee, 0x51, 0x46, 0x09, 0xd7, 0xf1, 0xd5, 0xa7, 0x9d, 0x95, 0x67, 0x2d, 0x2b, 0x4b, + 0x9e, 0xee, 0xf3, 0xa3, 0x9a, 0x2b, 0x1d, 0xbe, 0x71, 0xf1, 0xda, 0xf0, 0x5c, 0x95, 0x20, 0x15, + 0xf7, 0x1a, 0x7c, 0x05, 0xf2, 0x74, 0xda, 0xdd, 0x3d, 0x65, 0x05, 0xd4, 0x52, 0x6f, 0xa0, 0x2d, + 0x74, 0xfb, 0xe2, 0xce, 0x84, 0xf4, 0x1e, 0x48, 0xe7, 0x81, 0x58, 0x0f, 0xe4, 0x01, 0x08, 0xb9, + 0xb7, 0x7b, 0xf2, 0x6d, 0xd3, 0xf9, 0xf8, 0x7d, 0xf3, 0x6e, 0x26, 0xf4, 0x61, 0x1d, 0x93, 0x04, + 0x0a, 0xfa, 0x50, 0x48, 0x95, 0x1c, 0x0a, 0x46, 0x0f, 0x6c, 0x71, 0x4f, 0xa5, 0x2f, 0xa9, 0x3e, + 0x2e, 0xb9, 0x32, 0x1f, 0xed, 0x5f, 0x86, 0x3c, 0xed, 0x8a, 0xfb, 0x06, 0xd2, 0x71, 0x25, 0x6f, + 0x07, 0x5c, 0x77, 0x35, 0x5c, 0xc9, 0xdb, 0x3f, 0xdc, 0x30, 0xc4, 0x5b, 0x26, 0x87, 0xe7, 0xa0, + 0x59, 0x6e, 0xc2, 0x60, 0x71, 0xce, 0x7b, 0xf1, 0x2c, 0xac, 0xcf, 0x08, 0x6f, 0x2f, 0x69, 0xb2, + 0xc9, 0xbd, 0x45, 0x78, 0xa2, 0xce, 0xb4, 0xe9, 0xdf, 0x8f, 0x59, 0x4d, 0x88, 0xd7, 0x7e, 0x03, + 0x9f, 0x2c, 0xbe, 0x6a, 0xe7, 0x83, 0x8b, 0xcf, 0x19, 0xc7, 0x1e, 0xe0, 0x0b, 0x76, 0xc4, 0xde, + 0x36, 0x59, 0xdc, 0x43, 0x32, 0xb2, 0x16, 0x7e, 0xb8, 0xac, 0xa5, 0x7f, 0x67, 0x78, 0xf3, 0xf5, + 0x97, 0x9f, 0xef, 0xdd, 0xeb, 0xde, 0x3a, 0x1d, 0x2c, 0x9d, 0xb2, 0x94, 0x4f, 0x08, 0x4f, 0x4c, + 0x4e, 0x9d, 0xa3, 0xba, 0xaa, 0xb8, 0x4c, 0xcc, 0x15, 0x8f, 0x45, 0x21, 0xb4, 0x47, 0x46, 0x00, + 0x4b, 0xa2, 0xf7, 0xe9, 0x7f, 0xf7, 0x5b, 0x77, 0xd4, 0xb8, 0xbb, 0xe3, 0xdd, 0x1a, 0x71, 0x37, + 0x36, 0x98, 0xbd, 0x47, 0x27, 0xb3, 0x00, 0x9d, 0xce, 0x02, 0xf4, 0x63, 0x16, 0xa0, 0x77, 0xf3, + 0xc0, 0x39, 0x9d, 0x07, 0xce, 0xd7, 0x79, 0xe0, 0xbc, 0x20, 0xff, 0x9c, 0xc4, 0x2b, 0x0b, 0x30, + 0x13, 0x89, 0xcf, 0x9b, 0x3f, 0x6e, 0xf7, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0x65, 0x3b, + 0xa8, 0x09, 0x04, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -391,7 +400,17 @@ func (m *QuerySwappedResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size, err := m.Swapped.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.NewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.OldCoinAmount.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -485,7 +504,9 @@ func (m *QuerySwappedResponse) Size() (n int) { } var l int _ = l - l = m.Swapped.Size() + l = m.OldCoinAmount.Size() + n += 1 + l + sovQuery(uint64(l)) + l = m.NewCoinAmount.Size() n += 1 + l + sovQuery(uint64(l)) return n } @@ -597,7 +618,40 @@ func (m *QuerySwappedResponse) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Swapped", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OldCoinAmount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OldCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewCoinAmount", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -624,7 +678,7 @@ func (m *QuerySwappedResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Swapped.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.NewCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex From a9ca68f10a7c5539352e3c4435b5f251f9ff8e81 Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 16:11:54 +0900 Subject: [PATCH 21/27] fix: fix lint Signed-off-by: 170210 --- x/fswap/types/fswap.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x/fswap/types/fswap.go b/x/fswap/types/fswap.go index e0a619ccf0..76803ed5f3 100644 --- a/x/fswap/types/fswap.go +++ b/x/fswap/types/fswap.go @@ -3,8 +3,9 @@ package types import ( fmt "fmt" - sdk "github.com/Finschia/finschia-sdk/types" "gopkg.in/yaml.v2" + + sdk "github.com/Finschia/finschia-sdk/types" ) // NewSwapped creates a new Swapped instance From 722e95bccbd9299ca8f2b7a30909acfa9d41cfeb Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 17:51:58 +0900 Subject: [PATCH 22/27] fix: remote unnecessary codes Signed-off-by: 170210 --- x/ERRORS.md | 1 - x/fswap/keeper/fswap.go | 21 --------------------- x/fswap/keeper/params.go | 3 ++- x/fswap/types/errors.go | 5 ++--- x/fswap/types/keys.go | 5 ++--- 5 files changed, 6 insertions(+), 29 deletions(-) diff --git a/x/ERRORS.md b/x/ERRORS.md index 8da74ceb3c..abe509d0c6 100644 --- a/x/ERRORS.md +++ b/x/ERRORS.md @@ -179,7 +179,6 @@ |:-|:-|:-|:-| |ErrParamsNotFound|fswap|1100|params does not exist| |ErrSwappedNotFound|fswap|1101|swapped does not exist| -|ErrSwappableNewCoinAmountNotFound|fswap|1102|swappable new coin amount does not exist| >You can also find detailed information in the following Errors.go files: * [fswap/types/errors.go](fswap/types/errors.go) diff --git a/x/fswap/keeper/fswap.go b/x/fswap/keeper/fswap.go index 3ecb2f3b12..6100dfa111 100644 --- a/x/fswap/keeper/fswap.go +++ b/x/fswap/keeper/fswap.go @@ -28,24 +28,3 @@ func (k Keeper) SetSwapped(ctx sdk.Context, swapped types.Swapped) error { store.Set([]byte{types.SwappedKey}, bz) return nil } - -func (k Keeper) GetSwappableNewCoinAmount(ctx sdk.Context) sdk.Coin { - store := ctx.KVStore(k.storeKey) - bz := store.Get([]byte{types.SwappableNewCoinAmountKey}) - var swappableNewCoinAmount sdk.Coin - if bz == nil { - panic(types.ErrSwappableNewCoinAmountNotFound) - } - k.cdc.MustUnmarshal(bz, &swappableNewCoinAmount) - return swappableNewCoinAmount -} - -func (k Keeper) SetSwappableNewCoinAmount(ctx sdk.Context, swappableNewCoinAmount sdk.Coin) error { - store := ctx.KVStore(k.storeKey) - bz, err := k.cdc.Marshal(&swappableNewCoinAmount) - if err != nil { - return err - } - store.Set([]byte{types.SwappableNewCoinAmountKey}, bz) - return nil -} diff --git a/x/fswap/keeper/params.go b/x/fswap/keeper/params.go index fa86e6be69..5578a6d760 100644 --- a/x/fswap/keeper/params.go +++ b/x/fswap/keeper/params.go @@ -2,6 +2,7 @@ package keeper import ( sdk "github.com/Finschia/finschia-sdk/types" + sdkerrors "github.com/Finschia/finschia-sdk/types/errors" "github.com/Finschia/finschia-sdk/x/fswap/types" ) @@ -11,7 +12,7 @@ func (k Keeper) GetParams(ctx sdk.Context) types.Params { bz := store.Get([]byte{types.ParamsKey}) var params types.Params if bz == nil { - panic(types.ErrParamsNotFound) + panic(sdkerrors.ErrNotFound) } k.cdc.MustUnmarshal(bz, ¶ms) return params diff --git a/x/fswap/types/errors.go b/x/fswap/types/errors.go index 90a43d2bb3..b903b1b454 100644 --- a/x/fswap/types/errors.go +++ b/x/fswap/types/errors.go @@ -8,7 +8,6 @@ import ( // x/fswap module sentinel errors var ( - ErrParamsNotFound = sdkerrors.Register(ModuleName, 1100, "params does not exist") - ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1101, "swapped does not exist") - ErrSwappableNewCoinAmountNotFound = sdkerrors.Register(ModuleName, 1102, "swappable new coin amount does not exist") + ErrParamsNotFound = sdkerrors.Register(ModuleName, 1100, "params does not exist") + ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1101, "swapped does not exist") ) diff --git a/x/fswap/types/keys.go b/x/fswap/types/keys.go index 3e34d8cd60..a13045fad7 100644 --- a/x/fswap/types/keys.go +++ b/x/fswap/types/keys.go @@ -18,9 +18,8 @@ const ( ) var ( - ParamsKey = byte(0x00) - SwappedKey = byte(0x01) - SwappableNewCoinAmountKey = byte(0x02) + ParamsKey = byte(0x00) + SwappedKey = byte(0x01) ) func KeyPrefix(p string) []byte { From 160f9537339edb2241bfee5c22521ba730fcdbad Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 18:00:03 +0900 Subject: [PATCH 23/27] fix: add validate for swappable new coin Signed-off-by: 170210 --- x/fswap/types/errors.go | 1 + x/fswap/types/genesis.go | 3 +++ x/fswap/types/genesis_test.go | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/x/fswap/types/errors.go b/x/fswap/types/errors.go index b903b1b454..3a18f66f20 100644 --- a/x/fswap/types/errors.go +++ b/x/fswap/types/errors.go @@ -10,4 +10,5 @@ import ( var ( ErrParamsNotFound = sdkerrors.Register(ModuleName, 1100, "params does not exist") ErrSwappedNotFound = sdkerrors.Register(ModuleName, 1101, "swapped does not exist") + ErrExceedSwappable = sdkerrors.Register(ModuleName, 1102, "exceed swappable coin amount") ) diff --git a/x/fswap/types/genesis.go b/x/fswap/types/genesis.go index 4e5b68856a..816ef241d0 100644 --- a/x/fswap/types/genesis.go +++ b/x/fswap/types/genesis.go @@ -22,5 +22,8 @@ func (gs GenesisState) Validate() error { if err := gs.Swapped.Validate(); err != nil { return err } + if gs.Params.SwappableNewCoinAmount.LT(gs.Swapped.NewCoinAmount) { + return ErrExceedSwappable + } return nil } diff --git a/x/fswap/types/genesis_test.go b/x/fswap/types/genesis_test.go index 7f75f7d5ad..15394d1ac0 100644 --- a/x/fswap/types/genesis_test.go +++ b/x/fswap/types/genesis_test.go @@ -78,6 +78,14 @@ func TestGenesisStateValidate(t *testing.T) { }, valid: false, }, + { + desc: "swappable coin exceed", + genState: &types.GenesisState{ + Params: types.NewParams(sdk.NewInt(1000)), + Swapped: types.NewSwapped(sdk.NewInt(1000), sdk.NewInt(100000)), + }, + valid: false, + }, } { t.Run(tc.desc, func(t *testing.T) { err := tc.genState.Validate() From eff774635c565b360f3fdb89ad49688f48d13067 Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 18:37:11 +0900 Subject: [PATCH 24/27] fix: add randomizedGenState Signed-off-by: 170210 --- x/fswap/module_simulation.go | 8 +-- x/fswap/simulation/genesis.go | 66 +++++++++++++++++++++++++ x/fswap/simulation/genesis_test.go | 78 ++++++++++++++++++++++++++++++ x/fswap/simulation/simap.go | 15 ------ 4 files changed, 146 insertions(+), 21 deletions(-) create mode 100644 x/fswap/simulation/genesis.go create mode 100644 x/fswap/simulation/genesis_test.go delete mode 100644 x/fswap/simulation/simap.go diff --git a/x/fswap/module_simulation.go b/x/fswap/module_simulation.go index 70f7369bc4..4748931d47 100644 --- a/x/fswap/module_simulation.go +++ b/x/fswap/module_simulation.go @@ -6,18 +6,14 @@ import ( sdk "github.com/Finschia/finschia-sdk/types" "github.com/Finschia/finschia-sdk/types/module" simtypes "github.com/Finschia/finschia-sdk/types/simulation" - "github.com/Finschia/finschia-sdk/x/fswap/types" + "github.com/Finschia/finschia-sdk/x/fswap/simulation" ) var _ module.AppModuleSimulation = AppModule{} // GenerateGenesisState creates a randomized GenState of the module. func (AppModule) GenerateGenesisState(simState *module.SimulationState) { - fswapGenesis := types.GenesisState{ - Params: types.DefaultParams(), - Swapped: types.DefaultSwapped(), - } - simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(&fswapGenesis) + simulation.RandomizedGenState(simState) } // RegisterStoreDecoder registers a decoder. diff --git a/x/fswap/simulation/genesis.go b/x/fswap/simulation/genesis.go new file mode 100644 index 0000000000..2ec6f32140 --- /dev/null +++ b/x/fswap/simulation/genesis.go @@ -0,0 +1,66 @@ +package simulation + +import ( + "encoding/json" + "fmt" + "math/rand" + + sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/types/module" + "github.com/Finschia/finschia-sdk/x/fswap/types" +) + +// Simulation parameter constants +const ( + OldCoinAmount = "old_coin_amount" + NewCoinAmount = "new_coin_amount" + SwappableNewCoinAmount = "swappable_new_coin_amount" +) + +// GenOldCoinAmount randomized oldCoinAmount +func GenOldCoinAmount(r *rand.Rand) sdk.Int { + return sdk.NewInt(int64(r.Intn(1001) + 1000)) +} + +// GenNewCoinAmount randomized oldCoinAmount +func GenNewCoinAmount(r *rand.Rand) sdk.Int { + return sdk.NewInt(int64(r.Intn(100001) + 100000)) +} + +// GenSwappableNewCoinAmount randomized swappableNewCoinAmount +func GenSwappableNewCoinAmount(r *rand.Rand) sdk.Int { + return sdk.NewInt(int64(r.Intn(100001) + 200000)) +} + +// RandomizedGenState generates a random GenesisState for fswap +func RandomizedGenState(simState *module.SimulationState) { + + var oldCoinAmount sdk.Int + simState.AppParams.GetOrGenerate( + simState.Cdc, OldCoinAmount, &oldCoinAmount, simState.Rand, + func(r *rand.Rand) { oldCoinAmount = GenOldCoinAmount(r) }, + ) + + var newCoinAmount sdk.Int + simState.AppParams.GetOrGenerate( + simState.Cdc, NewCoinAmount, &newCoinAmount, simState.Rand, + func(r *rand.Rand) { newCoinAmount = GenNewCoinAmount(r) }, + ) + + var swappableNewCoinAmount sdk.Int + simState.AppParams.GetOrGenerate( + simState.Cdc, SwappableNewCoinAmount, &swappableNewCoinAmount, simState.Rand, + func(r *rand.Rand) { swappableNewCoinAmount = GenSwappableNewCoinAmount(r) }, + ) + + fswapParams := types.NewParams(swappableNewCoinAmount) + fswapSwapped := types.NewSwapped(oldCoinAmount, newCoinAmount) + fswapGenesis := types.NewGenesisState(fswapParams, fswapSwapped) + + bz, err := json.MarshalIndent(&fswapGenesis, "", " ") + if err != nil { + panic(err) + } + fmt.Printf("Selected randomly generated fswap parameters:\n%s\n", bz) + simState.GenState[types.ModuleName] = simState.Cdc.MustMarshalJSON(fswapGenesis) +} diff --git a/x/fswap/simulation/genesis_test.go b/x/fswap/simulation/genesis_test.go new file mode 100644 index 0000000000..00ac1852d7 --- /dev/null +++ b/x/fswap/simulation/genesis_test.go @@ -0,0 +1,78 @@ +package simulation_test + +import ( + "encoding/json" + "math/rand" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/Finschia/finschia-sdk/codec" + codectypes "github.com/Finschia/finschia-sdk/codec/types" + sdk "github.com/Finschia/finschia-sdk/types" + "github.com/Finschia/finschia-sdk/types/module" + simtypes "github.com/Finschia/finschia-sdk/types/simulation" + "github.com/Finschia/finschia-sdk/x/fswap/simulation" + "github.com/Finschia/finschia-sdk/x/fswap/types" +) + +// TestRandomizedGenState tests the normal scenario of applying RandomizedGenState. +// Abonormal scenarios are not tested here. +func TestRandomizedGenState(t *testing.T) { + interfaceRegistry := codectypes.NewInterfaceRegistry() + cdc := codec.NewProtoCodec(interfaceRegistry) + + s := rand.NewSource(1) + r := rand.New(s) + + simState := module.SimulationState{ + AppParams: make(simtypes.AppParams), + Cdc: cdc, + Rand: r, + NumBonded: 3, + Accounts: simtypes.RandomAccounts(r, 3), + InitialStake: 1000, + GenState: make(map[string]json.RawMessage), + } + + simulation.RandomizedGenState(&simState) + + var fswapGenesis types.GenesisState + + int1 := sdk.NewInt(296839) + int2 := sdk.NewInt(1754) + int3 := sdk.NewInt(138374) + simState.Cdc.MustUnmarshalJSON(simState.GenState[types.ModuleName], &fswapGenesis) + require.Equal(t, int1, fswapGenesis.Params.SwappableNewCoinAmount) + require.Equal(t, int2, fswapGenesis.Swapped.OldCoinAmount) + require.Equal(t, int3, fswapGenesis.Swapped.NewCoinAmount) +} + +// TestRandomizedGenState tests abnormal scenarios of applying RandomizedGenState. +func TestRandomizedGenState1(t *testing.T) { + interfaceRegistry := codectypes.NewInterfaceRegistry() + cdc := codec.NewProtoCodec(interfaceRegistry) + + s := rand.NewSource(1) + r := rand.New(s) + // all these tests will panic + tests := []struct { + simState module.SimulationState + panicMsg string + }{ + { // panic => reason: incomplete initialization of the simState + module.SimulationState{}, "invalid memory address or nil pointer dereference"}, + { // panic => reason: incomplete initialization of the simState + module.SimulationState{ + AppParams: make(simtypes.AppParams), + Cdc: cdc, + Rand: r, + }, "assignment to entry in nil map"}, + } + + for _, tt := range tests { + tt := tt + + require.Panicsf(t, func() { simulation.RandomizedGenState(&tt.simState) }, tt.panicMsg) + } +} diff --git a/x/fswap/simulation/simap.go b/x/fswap/simulation/simap.go deleted file mode 100644 index 1b74bcd04c..0000000000 --- a/x/fswap/simulation/simap.go +++ /dev/null @@ -1,15 +0,0 @@ -package simulation - -import ( - sdk "github.com/Finschia/finschia-sdk/types" - simtypes "github.com/Finschia/finschia-sdk/types/simulation" -) - -// FindAccount find a specific address from an account list -func FindAccount(accs []simtypes.Account, address string) (simtypes.Account, bool) { - creator, err := sdk.AccAddressFromBech32(address) - if err != nil { - panic(err) - } - return simtypes.FindAccount(accs, creator) -} From bd076f93b550a9b61699771e8d4c13b135e2895c Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 18:37:31 +0900 Subject: [PATCH 25/27] fix: fix error doc Signed-off-by: 170210 --- x/ERRORS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/x/ERRORS.md b/x/ERRORS.md index abe509d0c6..8ed09149f9 100644 --- a/x/ERRORS.md +++ b/x/ERRORS.md @@ -179,6 +179,7 @@ |:-|:-|:-|:-| |ErrParamsNotFound|fswap|1100|params does not exist| |ErrSwappedNotFound|fswap|1101|swapped does not exist| +|ErrExceedSwappable|fswap|1102|exceed swappable coin amount| >You can also find detailed information in the following Errors.go files: * [fswap/types/errors.go](fswap/types/errors.go) From 61f09fa784bf1bdbbf3f04e5789858089adee99c Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 18:40:56 +0900 Subject: [PATCH 26/27] fix: fix lint Signed-off-by: 170210 --- x/fswap/simulation/genesis.go | 1 - 1 file changed, 1 deletion(-) diff --git a/x/fswap/simulation/genesis.go b/x/fswap/simulation/genesis.go index 2ec6f32140..f84ff0b243 100644 --- a/x/fswap/simulation/genesis.go +++ b/x/fswap/simulation/genesis.go @@ -34,7 +34,6 @@ func GenSwappableNewCoinAmount(r *rand.Rand) sdk.Int { // RandomizedGenState generates a random GenesisState for fswap func RandomizedGenState(simState *module.SimulationState) { - var oldCoinAmount sdk.Int simState.AppParams.GetOrGenerate( simState.Cdc, OldCoinAmount, &oldCoinAmount, simState.Rand, From 9d583c3e10c963317c0ce97bd69b3e86d27ff13c Mon Sep 17 00:00:00 2001 From: 170210 Date: Wed, 24 Apr 2024 20:29:28 +0900 Subject: [PATCH 27/27] fix: change proto message fields' name Signed-off-by: 170210 --- docs/core/proto-docs.md | 10 ++-- proto/lbm/fswap/v1/event.proto | 4 +- proto/lbm/fswap/v1/query.proto | 6 +- x/fswap/types/event.pb.go | 66 ++++++++++----------- x/fswap/types/query.pb.go | 102 ++++++++++++++++----------------- 5 files changed, 94 insertions(+), 94 deletions(-) diff --git a/docs/core/proto-docs.md b/docs/core/proto-docs.md index 4e220b60ac..7d6e8b010d 100644 --- a/docs/core/proto-docs.md +++ b/docs/core/proto-docs.md @@ -12727,8 +12727,8 @@ Msg defines the foundation Msg service. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | `address` | [string](#string) | | holder's address | -| `old_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | amount of the old currency | -| `new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | amount of the new currency | +| `old_coin` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | amount of the old currency | +| `new_coin` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | amount of the new currency | @@ -12864,8 +12864,8 @@ GenesisState defines the fswap module's genesis state. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| `old_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | -| `new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | +| `old_coin` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | +| `new_coin` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | @@ -12890,7 +12890,7 @@ GenesisState defines the fswap module's genesis state. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| `swappable_new_coin_amount` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | +| `swappable_new_coin` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | | | diff --git a/proto/lbm/fswap/v1/event.proto b/proto/lbm/fswap/v1/event.proto index 374447f7c3..2fea28e9d0 100644 --- a/proto/lbm/fswap/v1/event.proto +++ b/proto/lbm/fswap/v1/event.proto @@ -10,9 +10,9 @@ message EventSwapCoins { // holder's address string address = 1; // amount of the old currency - cosmos.base.v1beta1.Coin old_coin_amount = 2 + cosmos.base.v1beta1.Coin old_coin = 2 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; // amount of the new currency - cosmos.base.v1beta1.Coin new_coin_amount = 3 + cosmos.base.v1beta1.Coin new_coin = 3 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; } diff --git a/proto/lbm/fswap/v1/query.proto b/proto/lbm/fswap/v1/query.proto index 52b7e05727..5b2e0d02e9 100644 --- a/proto/lbm/fswap/v1/query.proto +++ b/proto/lbm/fswap/v1/query.proto @@ -19,14 +19,14 @@ service Query { message QuerySwappedRequest {} message QuerySwappedResponse { - cosmos.base.v1beta1.Coin old_coin_amount = 1 + cosmos.base.v1beta1.Coin old_coin = 1 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; - cosmos.base.v1beta1.Coin new_coin_amount = 2 + cosmos.base.v1beta1.Coin new_coin = 2 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; } message QueryTotalSwappableAmountRequest {} message QueryTotalSwappableAmountResponse { - cosmos.base.v1beta1.Coin swappable_new_coin_amount = 1 + cosmos.base.v1beta1.Coin swappable_new_coin = 1 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/Finschia/finschia-sdk/types.Coin"]; } diff --git a/x/fswap/types/event.pb.go b/x/fswap/types/event.pb.go index 5808cc6e7f..d3e5284230 100644 --- a/x/fswap/types/event.pb.go +++ b/x/fswap/types/event.pb.go @@ -28,9 +28,9 @@ type EventSwapCoins struct { // holder's address Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // amount of the old currency - OldCoinAmount types.Coin `protobuf:"bytes,2,opt,name=old_coin_amount,json=oldCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"old_coin_amount"` + OldCoin types.Coin `protobuf:"bytes,2,opt,name=old_coin,json=oldCoin,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"old_coin"` // amount of the new currency - NewCoinAmount types.Coin `protobuf:"bytes,3,opt,name=new_coin_amount,json=newCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"new_coin_amount"` + NewCoin types.Coin `protobuf:"bytes,3,opt,name=new_coin,json=newCoin,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"new_coin"` } func (m *EventSwapCoins) Reset() { *m = EventSwapCoins{} } @@ -73,16 +73,16 @@ func (m *EventSwapCoins) GetAddress() string { return "" } -func (m *EventSwapCoins) GetOldCoinAmount() types.Coin { +func (m *EventSwapCoins) GetOldCoin() types.Coin { if m != nil { - return m.OldCoinAmount + return m.OldCoin } return types.Coin{} } -func (m *EventSwapCoins) GetNewCoinAmount() types.Coin { +func (m *EventSwapCoins) GetNewCoin() types.Coin { if m != nil { - return m.NewCoinAmount + return m.NewCoin } return types.Coin{} } @@ -94,25 +94,25 @@ func init() { func init() { proto.RegisterFile("lbm/fswap/v1/event.proto", fileDescriptor_92d5edbd64a725af) } var fileDescriptor_92d5edbd64a725af = []byte{ - // 288 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x91, 0x3f, 0x4e, 0xc3, 0x30, - 0x1c, 0x85, 0xe3, 0x22, 0x81, 0x08, 0xff, 0xa4, 0x88, 0x21, 0x74, 0x70, 0x2b, 0xa6, 0x4a, 0x08, - 0x5b, 0xa1, 0x27, 0xa0, 0x08, 0xc4, 0x5c, 0x36, 0x96, 0xca, 0x4e, 0xdc, 0x34, 0x22, 0xf1, 0x2f, - 0xaa, 0x5d, 0x07, 0x6e, 0xc1, 0xcc, 0x11, 0x38, 0x49, 0xc7, 0x8e, 0x4c, 0x80, 0x92, 0x8b, 0x20, - 0x3b, 0x41, 0x88, 0x89, 0x89, 0xed, 0x59, 0xcf, 0xef, 0xfb, 0x24, 0xdb, 0x0f, 0x73, 0x5e, 0xd0, - 0xb9, 0xaa, 0x58, 0x49, 0x4d, 0x44, 0x85, 0x11, 0x52, 0x93, 0x72, 0x09, 0x1a, 0x82, 0xfd, 0x9c, - 0x17, 0xc4, 0x35, 0xc4, 0x44, 0xfd, 0xe3, 0x14, 0x52, 0x70, 0x05, 0xb5, 0xa9, 0xbd, 0xd3, 0xc7, - 0x31, 0xa8, 0x02, 0x14, 0xe5, 0x4c, 0x09, 0x6a, 0x22, 0x2e, 0x34, 0x8b, 0x68, 0x0c, 0x99, 0x6c, - 0xfb, 0xd3, 0x97, 0x9e, 0x7f, 0x78, 0x6d, 0x99, 0x77, 0x15, 0x2b, 0xaf, 0x20, 0x93, 0x2a, 0x08, - 0xfd, 0x1d, 0x96, 0x24, 0x4b, 0xa1, 0x54, 0x88, 0x86, 0x68, 0xb4, 0x3b, 0xfd, 0x3e, 0x06, 0xc6, - 0x3f, 0x82, 0x3c, 0x99, 0xd9, 0xf9, 0x8c, 0x15, 0xb0, 0x92, 0x3a, 0xec, 0x0d, 0xd1, 0x68, 0xef, - 0xe2, 0x84, 0xb4, 0x1a, 0x62, 0x35, 0xa4, 0xd3, 0x10, 0x8b, 0x9b, 0x8c, 0xd7, 0xef, 0x03, 0xef, - 0xf5, 0x63, 0x70, 0x96, 0x66, 0x7a, 0xb1, 0xe2, 0x24, 0x86, 0x82, 0xde, 0x64, 0x52, 0xc5, 0x8b, - 0x8c, 0xd1, 0x79, 0x17, 0xce, 0x55, 0xf2, 0x40, 0xf5, 0x53, 0x29, 0x94, 0x1b, 0x4d, 0x0f, 0x20, - 0x4f, 0x6c, 0xb8, 0x74, 0x12, 0xeb, 0x95, 0xa2, 0xfa, 0xe5, 0xdd, 0xfa, 0x1f, 0xaf, 0x14, 0xd5, - 0x8f, 0x77, 0x72, 0xbb, 0xae, 0x31, 0xda, 0xd4, 0x18, 0x7d, 0xd6, 0x18, 0x3d, 0x37, 0xd8, 0xdb, - 0x34, 0xd8, 0x7b, 0x6b, 0xb0, 0x77, 0x4f, 0xfe, 0xa4, 0x3e, 0x76, 0x7f, 0xe6, 0xe8, 0x7c, 0xdb, - 0xbd, 0xf6, 0xf8, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x08, 0x6b, 0x7c, 0xcd, 0x01, 0x00, 0x00, + // 278 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x91, 0xb1, 0x4e, 0xc3, 0x30, + 0x10, 0x86, 0xe3, 0x22, 0x51, 0x08, 0x88, 0xa1, 0x62, 0x08, 0x1d, 0xdc, 0x8a, 0xa9, 0x12, 0xc2, + 0x56, 0xe8, 0x1b, 0x80, 0x40, 0xcc, 0x65, 0x63, 0x41, 0x76, 0xe2, 0xa6, 0x16, 0x89, 0x2f, 0xea, + 0x99, 0x04, 0x36, 0x1e, 0x81, 0xe7, 0xe0, 0x49, 0x3a, 0x76, 0x64, 0x02, 0x94, 0xbc, 0x08, 0xb2, + 0x13, 0x66, 0x26, 0xb6, 0xff, 0xf4, 0xdf, 0xff, 0xfd, 0xd2, 0x5d, 0x18, 0xe5, 0xb2, 0xe0, 0x4b, + 0xac, 0x45, 0xc9, 0xab, 0x98, 0xab, 0x4a, 0x19, 0xcb, 0xca, 0x35, 0x58, 0x18, 0x1d, 0xe6, 0xb2, + 0x60, 0xde, 0x61, 0x55, 0x3c, 0x3e, 0xce, 0x20, 0x03, 0x6f, 0x70, 0xa7, 0xba, 0x9d, 0x31, 0x4d, + 0x00, 0x0b, 0x40, 0x2e, 0x05, 0x2a, 0x5e, 0xc5, 0x52, 0x59, 0x11, 0xf3, 0x04, 0xb4, 0xe9, 0xfc, + 0xd3, 0xd7, 0x41, 0x78, 0x74, 0xed, 0x98, 0x77, 0xb5, 0x28, 0xaf, 0x40, 0x1b, 0x1c, 0x45, 0xe1, + 0x50, 0xa4, 0xe9, 0x5a, 0x21, 0x46, 0x64, 0x4a, 0x66, 0xfb, 0x8b, 0xdf, 0x71, 0xa4, 0xc3, 0x3d, + 0xc8, 0xd3, 0x07, 0x17, 0x8f, 0x06, 0x53, 0x32, 0x3b, 0xb8, 0x38, 0x61, 0x1d, 0x9f, 0x39, 0x3e, + 0xeb, 0xf9, 0xcc, 0x71, 0x2e, 0xe7, 0x9b, 0xcf, 0x49, 0xf0, 0xfe, 0x35, 0x39, 0xcb, 0xb4, 0x5d, + 0x3d, 0x49, 0x96, 0x40, 0xc1, 0x6f, 0xb4, 0xc1, 0x64, 0xa5, 0x05, 0x5f, 0xf6, 0xe2, 0x1c, 0xd3, + 0x47, 0x6e, 0x5f, 0x4a, 0x85, 0x3e, 0xb4, 0x18, 0x42, 0x9e, 0x3a, 0xe1, 0xaa, 0x8c, 0xaa, 0xbb, + 0xaa, 0x9d, 0xff, 0xa9, 0x32, 0xaa, 0xf6, 0xe9, 0xdb, 0x4d, 0x43, 0xc9, 0xb6, 0xa1, 0xe4, 0xbb, + 0xa1, 0xe4, 0xad, 0xa5, 0xc1, 0xb6, 0xa5, 0xc1, 0x47, 0x4b, 0x83, 0x7b, 0xf6, 0x27, 0xef, 0xb9, + 0xff, 0x8c, 0xe7, 0xca, 0x5d, 0x7f, 0xd3, 0xf9, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x1e, + 0x90, 0x67, 0xb3, 0x01, 0x00, 0x00, } func (m *EventSwapCoins) Marshal() (dAtA []byte, err error) { @@ -136,7 +136,7 @@ func (m *EventSwapCoins) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size, err := m.NewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.NewCoin.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -146,7 +146,7 @@ func (m *EventSwapCoins) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a { - size, err := m.OldCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.OldCoin.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -186,9 +186,9 @@ func (m *EventSwapCoins) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.OldCoinAmount.Size() + l = m.OldCoin.Size() n += 1 + l + sovEvent(uint64(l)) - l = m.NewCoinAmount.Size() + l = m.NewCoin.Size() n += 1 + l + sovEvent(uint64(l)) return n } @@ -262,7 +262,7 @@ func (m *EventSwapCoins) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OldCoinAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OldCoin", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -289,13 +289,13 @@ func (m *EventSwapCoins) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.OldCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.OldCoin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewCoinAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NewCoin", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -322,7 +322,7 @@ func (m *EventSwapCoins) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.NewCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.NewCoin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/fswap/types/query.pb.go b/x/fswap/types/query.pb.go index 4d1ae14f18..67643e704b 100644 --- a/x/fswap/types/query.pb.go +++ b/x/fswap/types/query.pb.go @@ -67,8 +67,8 @@ func (m *QuerySwappedRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QuerySwappedRequest proto.InternalMessageInfo type QuerySwappedResponse struct { - OldCoinAmount types.Coin `protobuf:"bytes,1,opt,name=old_coin_amount,json=oldCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"old_coin_amount"` - NewCoinAmount types.Coin `protobuf:"bytes,2,opt,name=new_coin_amount,json=newCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"new_coin_amount"` + OldCoin types.Coin `protobuf:"bytes,1,opt,name=old_coin,json=oldCoin,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"old_coin"` + NewCoin types.Coin `protobuf:"bytes,2,opt,name=new_coin,json=newCoin,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"new_coin"` } func (m *QuerySwappedResponse) Reset() { *m = QuerySwappedResponse{} } @@ -104,16 +104,16 @@ func (m *QuerySwappedResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QuerySwappedResponse proto.InternalMessageInfo -func (m *QuerySwappedResponse) GetOldCoinAmount() types.Coin { +func (m *QuerySwappedResponse) GetOldCoin() types.Coin { if m != nil { - return m.OldCoinAmount + return m.OldCoin } return types.Coin{} } -func (m *QuerySwappedResponse) GetNewCoinAmount() types.Coin { +func (m *QuerySwappedResponse) GetNewCoin() types.Coin { if m != nil { - return m.NewCoinAmount + return m.NewCoin } return types.Coin{} } @@ -155,7 +155,7 @@ func (m *QueryTotalSwappableAmountRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryTotalSwappableAmountRequest proto.InternalMessageInfo type QueryTotalSwappableAmountResponse struct { - SwappableNewCoinAmount types.Coin `protobuf:"bytes,1,opt,name=swappable_new_coin_amount,json=swappableNewCoinAmount,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"swappable_new_coin_amount"` + SwappableNewCoin types.Coin `protobuf:"bytes,1,opt,name=swappable_new_coin,json=swappableNewCoin,proto3,castrepeated=github.com/Finschia/finschia-sdk/types.Coin" json:"swappable_new_coin"` } func (m *QueryTotalSwappableAmountResponse) Reset() { *m = QueryTotalSwappableAmountResponse{} } @@ -191,9 +191,9 @@ func (m *QueryTotalSwappableAmountResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryTotalSwappableAmountResponse proto.InternalMessageInfo -func (m *QueryTotalSwappableAmountResponse) GetSwappableNewCoinAmount() types.Coin { +func (m *QueryTotalSwappableAmountResponse) GetSwappableNewCoin() types.Coin { if m != nil { - return m.SwappableNewCoinAmount + return m.SwappableNewCoin } return types.Coin{} } @@ -208,36 +208,36 @@ func init() { func init() { proto.RegisterFile("lbm/fswap/v1/query.proto", fileDescriptor_01deae9da7816d6a) } var fileDescriptor_01deae9da7816d6a = []byte{ - // 453 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x93, 0xc1, 0x6a, 0xd5, 0x40, - 0x14, 0x86, 0x33, 0x01, 0x15, 0x46, 0x45, 0x88, 0xad, 0xf6, 0x06, 0x4d, 0xdb, 0x6c, 0x54, 0xc4, - 0x19, 0xd2, 0x3e, 0x81, 0x15, 0xc4, 0x85, 0x08, 0x56, 0x57, 0x6e, 0x2e, 0x93, 0x64, 0x9a, 0x0e, - 0x26, 0x73, 0xd2, 0xcc, 0x24, 0xb1, 0x5b, 0x17, 0x82, 0x3b, 0xc1, 0x97, 0x10, 0x41, 0x7c, 0x8d, - 0x2e, 0x0b, 0x6e, 0x5c, 0xa9, 0xdc, 0xeb, 0x83, 0x48, 0x26, 0x53, 0xbd, 0x91, 0x70, 0x75, 0x73, - 0x77, 0x87, 0xf9, 0x4f, 0xe6, 0xfb, 0xe7, 0x3f, 0x27, 0x78, 0x23, 0x8f, 0x0b, 0x7a, 0xa0, 0x5a, - 0x56, 0xd2, 0x26, 0xa2, 0x47, 0x35, 0xaf, 0x8e, 0x49, 0x59, 0x81, 0x06, 0xef, 0x52, 0x1e, 0x17, - 0xc4, 0x28, 0xa4, 0x89, 0xfc, 0x1b, 0x19, 0x40, 0x96, 0x73, 0xca, 0x4a, 0x41, 0x99, 0x94, 0xa0, - 0x99, 0x16, 0x20, 0x55, 0xdf, 0xeb, 0xaf, 0x65, 0x90, 0x81, 0x29, 0x69, 0x57, 0xd9, 0xd3, 0x20, - 0x01, 0x55, 0x80, 0xa2, 0x31, 0x53, 0x9c, 0x36, 0x51, 0xcc, 0x35, 0x8b, 0x68, 0x02, 0x42, 0x5a, - 0x7d, 0xc8, 0xee, 0x51, 0x46, 0x09, 0xd7, 0xf1, 0xd5, 0xa7, 0x9d, 0x95, 0x67, 0x2d, 0x2b, 0x4b, - 0x9e, 0xee, 0xf3, 0xa3, 0x9a, 0x2b, 0x1d, 0xbe, 0x71, 0xf1, 0xda, 0xf0, 0x5c, 0x95, 0x20, 0x15, - 0xf7, 0x1a, 0x7c, 0x05, 0xf2, 0x74, 0xda, 0xdd, 0x3d, 0x65, 0x05, 0xd4, 0x52, 0x6f, 0xa0, 0x2d, - 0x74, 0xfb, 0xe2, 0xce, 0x84, 0xf4, 0x1e, 0x48, 0xe7, 0x81, 0x58, 0x0f, 0xe4, 0x01, 0x08, 0xb9, - 0xb7, 0x7b, 0xf2, 0x6d, 0xd3, 0xf9, 0xf8, 0x7d, 0xf3, 0x6e, 0x26, 0xf4, 0x61, 0x1d, 0x93, 0x04, - 0x0a, 0xfa, 0x50, 0x48, 0x95, 0x1c, 0x0a, 0x46, 0x0f, 0x6c, 0x71, 0x4f, 0xa5, 0x2f, 0xa9, 0x3e, - 0x2e, 0xb9, 0x32, 0x1f, 0xed, 0x5f, 0x86, 0x3c, 0xed, 0x8a, 0xfb, 0x06, 0xd2, 0x71, 0x25, 0x6f, - 0x07, 0x5c, 0x77, 0x35, 0x5c, 0xc9, 0xdb, 0x3f, 0xdc, 0x30, 0xc4, 0x5b, 0x26, 0x87, 0xe7, 0xa0, - 0x59, 0x6e, 0xc2, 0x60, 0x71, 0xce, 0x7b, 0xf1, 0x2c, 0xac, 0xcf, 0x08, 0x6f, 0x2f, 0x69, 0xb2, - 0xc9, 0xbd, 0x45, 0x78, 0xa2, 0xce, 0xb4, 0xe9, 0xdf, 0x8f, 0x59, 0x4d, 0x88, 0xd7, 0x7e, 0x03, - 0x9f, 0x2c, 0xbe, 0x6a, 0xe7, 0x83, 0x8b, 0xcf, 0x19, 0xc7, 0x1e, 0xe0, 0x0b, 0x76, 0xc4, 0xde, - 0x36, 0x59, 0xdc, 0x43, 0x32, 0xb2, 0x16, 0x7e, 0xb8, 0xac, 0xa5, 0x7f, 0x67, 0x78, 0xf3, 0xf5, - 0x97, 0x9f, 0xef, 0xdd, 0xeb, 0xde, 0x3a, 0x1d, 0x2c, 0x9d, 0xb2, 0x94, 0x4f, 0x08, 0x4f, 0x4c, - 0x4e, 0x9d, 0xa3, 0xba, 0xaa, 0xb8, 0x4c, 0xcc, 0x15, 0x8f, 0x45, 0x21, 0xb4, 0x47, 0x46, 0x00, - 0x4b, 0xa2, 0xf7, 0xe9, 0x7f, 0xf7, 0x5b, 0x77, 0xd4, 0xb8, 0xbb, 0xe3, 0xdd, 0x1a, 0x71, 0x37, - 0x36, 0x98, 0xbd, 0x47, 0x27, 0xb3, 0x00, 0x9d, 0xce, 0x02, 0xf4, 0x63, 0x16, 0xa0, 0x77, 0xf3, - 0xc0, 0x39, 0x9d, 0x07, 0xce, 0xd7, 0x79, 0xe0, 0xbc, 0x20, 0xff, 0x9c, 0xc4, 0x2b, 0x0b, 0x30, - 0x13, 0x89, 0xcf, 0x9b, 0x3f, 0x6e, 0xf7, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0x65, 0x3b, - 0xa8, 0x09, 0x04, 0x00, 0x00, + // 449 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x93, 0xc1, 0x6a, 0xd4, 0x40, + 0x18, 0xc7, 0x33, 0x0b, 0x5a, 0x19, 0x3d, 0xc8, 0xd8, 0x62, 0x1b, 0x34, 0x6d, 0x73, 0x51, 0x11, + 0x67, 0x48, 0xfb, 0x04, 0x56, 0x10, 0x0f, 0x22, 0x58, 0x3d, 0x79, 0x59, 0x26, 0xc9, 0x34, 0x1d, + 0x4c, 0xe6, 0x4b, 0x33, 0x93, 0x8d, 0x05, 0x4f, 0x3e, 0x81, 0xe0, 0x13, 0x78, 0x13, 0xc1, 0xf7, + 0xe8, 0xb1, 0xe0, 0xc5, 0x93, 0xca, 0xae, 0x47, 0x1f, 0x42, 0x66, 0x32, 0x5d, 0x0c, 0x2c, 0xab, + 0x97, 0xbd, 0x7d, 0xe4, 0xfb, 0x66, 0x7e, 0xff, 0xef, 0xff, 0x9f, 0xe0, 0xcd, 0x32, 0xad, 0xd8, + 0x91, 0xee, 0x78, 0xcd, 0x26, 0x09, 0x3b, 0x69, 0x45, 0x73, 0x4a, 0xeb, 0x06, 0x0c, 0x90, 0x6b, + 0x65, 0x5a, 0x51, 0xd7, 0xa1, 0x93, 0x24, 0xbc, 0x55, 0x00, 0x14, 0xa5, 0x60, 0xbc, 0x96, 0x8c, + 0x2b, 0x05, 0x86, 0x1b, 0x09, 0x4a, 0xf7, 0xb3, 0xe1, 0x7a, 0x01, 0x05, 0xb8, 0x92, 0xd9, 0xca, + 0x7f, 0x8d, 0x32, 0xd0, 0x15, 0x68, 0x96, 0x72, 0x2d, 0xd8, 0x24, 0x49, 0x85, 0xe1, 0x09, 0xcb, + 0x40, 0x2a, 0xdf, 0x1f, 0xb2, 0x7b, 0x94, 0xeb, 0xc4, 0x1b, 0xf8, 0xc6, 0x73, 0x2b, 0xe5, 0x45, + 0xc7, 0xeb, 0x5a, 0xe4, 0x87, 0xe2, 0xa4, 0x15, 0xda, 0xc4, 0xbf, 0x11, 0x5e, 0x1f, 0x7e, 0xd7, + 0x35, 0x28, 0x2d, 0x88, 0xc4, 0x57, 0xa0, 0xcc, 0xc7, 0xf6, 0xee, 0x4d, 0xb4, 0x83, 0xee, 0x5e, + 0xdd, 0xdb, 0xa2, 0x3d, 0x9c, 0x5a, 0x38, 0xf5, 0x70, 0xfa, 0x08, 0xa4, 0x3a, 0xd8, 0x3f, 0xfb, + 0xbe, 0x1d, 0x7c, 0xfe, 0xb1, 0x7d, 0xbf, 0x90, 0xe6, 0xb8, 0x4d, 0x69, 0x06, 0x15, 0x7b, 0x2c, + 0x95, 0xce, 0x8e, 0x25, 0x67, 0x47, 0xbe, 0x78, 0xa0, 0xf3, 0xd7, 0xcc, 0x9c, 0xd6, 0x42, 0xbb, + 0x43, 0x87, 0x6b, 0x50, 0xe6, 0xb6, 0xb0, 0x28, 0x25, 0xba, 0x1e, 0x35, 0x5a, 0x0d, 0x4a, 0x89, + 0xce, 0x16, 0x71, 0x8c, 0x77, 0xdc, 0xb6, 0x2f, 0xc1, 0xf0, 0xd2, 0xad, 0xcc, 0xd3, 0x52, 0x3c, + 0xac, 0xa0, 0x55, 0xe6, 0xc2, 0x92, 0x8f, 0x08, 0xef, 0x2e, 0x19, 0xf2, 0xfe, 0xbc, 0xc5, 0x44, + 0x5f, 0xb4, 0xc6, 0x73, 0xf9, 0xab, 0x71, 0xea, 0xfa, 0x9c, 0xf4, 0xac, 0xdf, 0x63, 0xef, 0xd3, + 0x08, 0x5f, 0x72, 0x1a, 0x09, 0xe0, 0x35, 0x1f, 0x1d, 0xd9, 0xa5, 0x7f, 0xbf, 0x2f, 0xba, 0x20, + 0xee, 0x30, 0x5e, 0x36, 0xd2, 0x6f, 0x16, 0xdf, 0x7e, 0xf7, 0xf5, 0xd7, 0x87, 0xd1, 0x4d, 0xb2, + 0xc1, 0x06, 0x8f, 0x49, 0x7b, 0xca, 0x17, 0x84, 0xb7, 0x9c, 0x33, 0x56, 0x4b, 0xdb, 0x34, 0x42, + 0x65, 0xee, 0x8a, 0xa7, 0xb2, 0x92, 0x86, 0xd0, 0x05, 0x80, 0x25, 0x66, 0x87, 0xec, 0xbf, 0xe7, + 0xbd, 0x3a, 0xe6, 0xd4, 0xdd, 0x23, 0x77, 0x16, 0xa8, 0x1b, 0x64, 0x31, 0xe6, 0xee, 0xe0, 0xc1, + 0x93, 0xb3, 0x69, 0x84, 0xce, 0xa7, 0x11, 0xfa, 0x39, 0x8d, 0xd0, 0xfb, 0x59, 0x14, 0x9c, 0xcf, + 0xa2, 0xe0, 0xdb, 0x2c, 0x0a, 0x5e, 0xd1, 0x7f, 0x66, 0xf0, 0xc6, 0x03, 0x5c, 0x16, 0xe9, 0x65, + 0xf7, 0x27, 0xed, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x91, 0x66, 0x98, 0xa4, 0xe1, 0x03, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -400,7 +400,7 @@ func (m *QuerySwappedResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size, err := m.NewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.NewCoin.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -410,7 +410,7 @@ func (m *QuerySwappedResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 { - size, err := m.OldCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.OldCoin.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -466,7 +466,7 @@ func (m *QueryTotalSwappableAmountResponse) MarshalToSizedBuffer(dAtA []byte) (i var l int _ = l { - size, err := m.SwappableNewCoinAmount.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.SwappableNewCoin.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -504,9 +504,9 @@ func (m *QuerySwappedResponse) Size() (n int) { } var l int _ = l - l = m.OldCoinAmount.Size() + l = m.OldCoin.Size() n += 1 + l + sovQuery(uint64(l)) - l = m.NewCoinAmount.Size() + l = m.NewCoin.Size() n += 1 + l + sovQuery(uint64(l)) return n } @@ -526,7 +526,7 @@ func (m *QueryTotalSwappableAmountResponse) Size() (n int) { } var l int _ = l - l = m.SwappableNewCoinAmount.Size() + l = m.SwappableNewCoin.Size() n += 1 + l + sovQuery(uint64(l)) return n } @@ -618,7 +618,7 @@ func (m *QuerySwappedResponse) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OldCoinAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OldCoin", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -645,13 +645,13 @@ func (m *QuerySwappedResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.OldCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.OldCoin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewCoinAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NewCoin", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -678,7 +678,7 @@ func (m *QuerySwappedResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.NewCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.NewCoin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -784,7 +784,7 @@ func (m *QueryTotalSwappableAmountResponse) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SwappableNewCoinAmount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SwappableNewCoin", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -811,7 +811,7 @@ func (m *QueryTotalSwappableAmountResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.SwappableNewCoinAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SwappableNewCoin.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex