Merge PR #3403: Implement parameter-controlled bank/send switch-off
This commit is contained in:
committed by
Christopher Goes
parent
6de39e19f3
commit
f16cc31919
@@ -91,6 +91,17 @@ func getMockApp(t *testing.T) *mock.App {
|
||||
return mapp
|
||||
}
|
||||
|
||||
// overwrite the mock init chainer
|
||||
func getInitChainer(mapp *mock.App, keeper BaseKeeper) sdk.InitChainer {
|
||||
return func(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain {
|
||||
mapp.InitChainer(ctx, req)
|
||||
bankGenesis := DefaultGenesisState()
|
||||
InitGenesis(ctx, keeper, bankGenesis)
|
||||
|
||||
return abci.ResponseInitChain{}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMsgSendWithAccounts(t *testing.T) {
|
||||
mapp := getMockApp(t)
|
||||
acc := &auth.BaseAccount{
|
||||
|
||||
@@ -16,8 +16,13 @@ func getBenchmarkMockApp() (*mock.App, error) {
|
||||
mapp := mock.NewApp()
|
||||
|
||||
RegisterCodec(mapp.Cdc)
|
||||
bankKeeper := NewBaseKeeper(mapp.AccountKeeper)
|
||||
bankKeeper := NewBaseKeeper(
|
||||
mapp.AccountKeeper,
|
||||
mapp.ParamsKeeper.Subspace(DefaultParamspace),
|
||||
DefaultCodespace,
|
||||
)
|
||||
mapp.Router().AddRoute("bank", NewHandler(bankKeeper))
|
||||
mapp.SetInitChainer(getInitChainer(mapp, bankKeeper))
|
||||
|
||||
err := mapp.CompleteSetup()
|
||||
return mapp, err
|
||||
|
||||
@@ -11,6 +11,7 @@ const (
|
||||
|
||||
CodeInvalidInput sdk.CodeType = 101
|
||||
CodeInvalidOutput sdk.CodeType = 102
|
||||
CodeSendDisabled sdk.CodeType = 103
|
||||
)
|
||||
|
||||
// NOTE: Don't stringer this, we'll put better messages in later.
|
||||
@@ -44,6 +45,10 @@ func ErrNoOutputs(codespace sdk.CodespaceType) sdk.Error {
|
||||
return newError(codespace, CodeInvalidOutput, "")
|
||||
}
|
||||
|
||||
func ErrSendDisabled(codespace sdk.CodespaceType) sdk.Error {
|
||||
return newError(codespace, CodeSendDisabled, "")
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
|
||||
func msgOrDefaultMsg(msg string, code sdk.CodeType) string {
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package bank
|
||||
|
||||
import (
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
)
|
||||
|
||||
// GenesisState is the bank state that must be provided at genesis.
|
||||
type GenesisState struct {
|
||||
SendEnabled bool `json:"send_enabled"`
|
||||
}
|
||||
|
||||
// NewGenesisState creates a new genesis state.
|
||||
func NewGenesisState(sendEnabled bool) GenesisState {
|
||||
return GenesisState{SendEnabled: sendEnabled}
|
||||
}
|
||||
|
||||
// Return a default genesis state
|
||||
func DefaultGenesisState() GenesisState { return NewGenesisState(true) }
|
||||
|
||||
// InitGenesis sets distribution information for genesis.
|
||||
func InitGenesis(ctx sdk.Context, keeper Keeper, data GenesisState) {
|
||||
keeper.SetSendEnabled(ctx, data.SendEnabled)
|
||||
}
|
||||
|
||||
// ExportGenesis returns a GenesisState for a given context and keeper.
|
||||
func ExportGenesis(ctx sdk.Context, keeper Keeper) GenesisState {
|
||||
return NewGenesisState(keeper.GetSendEnabled(ctx))
|
||||
}
|
||||
|
||||
// ValidateGenesis performs basic validation of bank genesis data returning an
|
||||
// error for any failed validation criteria.
|
||||
func ValidateGenesis(data GenesisState) error { return nil }
|
||||
@@ -20,6 +20,9 @@ func NewHandler(k Keeper) sdk.Handler {
|
||||
// Handle MsgSend.
|
||||
func handleMsgSend(ctx sdk.Context, k Keeper, msg MsgSend) sdk.Result {
|
||||
// NOTE: totalIn == totalOut should already have been checked
|
||||
if !k.GetSendEnabled(ctx) {
|
||||
return ErrSendDisabled(k.Codespace()).Result()
|
||||
}
|
||||
tags, err := k.InputOutputCoins(ctx, msg.Inputs, msg.Outputs)
|
||||
if err != nil {
|
||||
return err.Result()
|
||||
|
||||
+44
-12
@@ -6,6 +6,7 @@ import (
|
||||
|
||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||
"github.com/cosmos/cosmos-sdk/x/auth"
|
||||
"github.com/cosmos/cosmos-sdk/x/params"
|
||||
)
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -32,14 +33,20 @@ type Keeper interface {
|
||||
type BaseKeeper struct {
|
||||
BaseSendKeeper
|
||||
|
||||
ak auth.AccountKeeper
|
||||
ak auth.AccountKeeper
|
||||
paramSpace params.Subspace
|
||||
}
|
||||
|
||||
// NewBaseKeeper returns a new BaseKeeper
|
||||
func NewBaseKeeper(ak auth.AccountKeeper) BaseKeeper {
|
||||
func NewBaseKeeper(ak auth.AccountKeeper,
|
||||
paramSpace params.Subspace,
|
||||
codespace sdk.CodespaceType) BaseKeeper {
|
||||
|
||||
ps := paramSpace.WithTypeTable(ParamTypeTable())
|
||||
return BaseKeeper{
|
||||
BaseSendKeeper: NewBaseSendKeeper(ak),
|
||||
BaseSendKeeper: NewBaseSendKeeper(ak, ps, codespace),
|
||||
ak: ak,
|
||||
paramSpace: ps,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,6 +102,9 @@ type SendKeeper interface {
|
||||
ViewKeeper
|
||||
|
||||
SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) (sdk.Tags, sdk.Error)
|
||||
|
||||
GetSendEnabled(ctx sdk.Context) bool
|
||||
SetSendEnabled(ctx sdk.Context, enabled bool)
|
||||
}
|
||||
|
||||
var _ SendKeeper = (*BaseSendKeeper)(nil)
|
||||
@@ -104,14 +114,18 @@ var _ SendKeeper = (*BaseSendKeeper)(nil)
|
||||
type BaseSendKeeper struct {
|
||||
BaseViewKeeper
|
||||
|
||||
ak auth.AccountKeeper
|
||||
ak auth.AccountKeeper
|
||||
paramSpace params.Subspace
|
||||
}
|
||||
|
||||
// NewBaseSendKeeper returns a new BaseSendKeeper.
|
||||
func NewBaseSendKeeper(ak auth.AccountKeeper) BaseSendKeeper {
|
||||
func NewBaseSendKeeper(ak auth.AccountKeeper,
|
||||
paramSpace params.Subspace, codespace sdk.CodespaceType) BaseSendKeeper {
|
||||
|
||||
return BaseSendKeeper{
|
||||
BaseViewKeeper: NewBaseViewKeeper(ak),
|
||||
BaseViewKeeper: NewBaseViewKeeper(ak, codespace),
|
||||
ak: ak,
|
||||
paramSpace: paramSpace,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,10 +133,22 @@ func NewBaseSendKeeper(ak auth.AccountKeeper) BaseSendKeeper {
|
||||
func (keeper BaseSendKeeper) SendCoins(
|
||||
ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins,
|
||||
) (sdk.Tags, sdk.Error) {
|
||||
|
||||
return sendCoins(ctx, keeper.ak, fromAddr, toAddr, amt)
|
||||
}
|
||||
|
||||
// GetSendEnabled returns the current SendEnabled
|
||||
// nolint: errcheck
|
||||
func (keeper BaseSendKeeper) GetSendEnabled(ctx sdk.Context) bool {
|
||||
var enabled bool
|
||||
keeper.paramSpace.Get(ctx, ParamStoreKeySendEnabled, &enabled)
|
||||
return enabled
|
||||
}
|
||||
|
||||
// nolint: errcheck
|
||||
func (keeper BaseSendKeeper) SetSendEnabled(ctx sdk.Context, enabled bool) {
|
||||
keeper.paramSpace.Set(ctx, ParamStoreKeySendEnabled, &enabled)
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// View Keeper
|
||||
|
||||
@@ -133,18 +159,19 @@ var _ ViewKeeper = (*BaseViewKeeper)(nil)
|
||||
type ViewKeeper interface {
|
||||
GetCoins(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins
|
||||
HasCoins(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coins) bool
|
||||
|
||||
Codespace() sdk.CodespaceType
|
||||
}
|
||||
|
||||
// BaseViewKeeper implements a read only keeper implementation of ViewKeeper.
|
||||
type BaseViewKeeper struct {
|
||||
ak auth.AccountKeeper
|
||||
ak auth.AccountKeeper
|
||||
codespace sdk.CodespaceType
|
||||
}
|
||||
|
||||
// NewBaseViewKeeper returns a new BaseViewKeeper.
|
||||
func NewBaseViewKeeper(ak auth.AccountKeeper) BaseViewKeeper {
|
||||
return BaseViewKeeper{
|
||||
ak: ak,
|
||||
}
|
||||
func NewBaseViewKeeper(ak auth.AccountKeeper, codespace sdk.CodespaceType) BaseViewKeeper {
|
||||
return BaseViewKeeper{ak: ak, codespace: codespace}
|
||||
}
|
||||
|
||||
// GetCoins returns the coins at the addr.
|
||||
@@ -157,6 +184,11 @@ func (keeper BaseViewKeeper) HasCoins(ctx sdk.Context, addr sdk.AccAddress, amt
|
||||
return hasCoins(ctx, keeper.ak, addr, amt)
|
||||
}
|
||||
|
||||
// Codespace returns the keeper's codespace.
|
||||
func (keeper BaseViewKeeper) Codespace() sdk.CodespaceType {
|
||||
return keeper.codespace
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Auxiliary
|
||||
|
||||
|
||||
+20
-10
@@ -21,6 +21,7 @@ type testInput struct {
|
||||
cdc *codec.Codec
|
||||
ctx sdk.Context
|
||||
ak auth.AccountKeeper
|
||||
pk params.Keeper
|
||||
}
|
||||
|
||||
func setupTestInput() testInput {
|
||||
@@ -49,13 +50,14 @@ func setupTestInput() testInput {
|
||||
|
||||
ak.SetParams(ctx, auth.DefaultParams())
|
||||
|
||||
return testInput{cdc: cdc, ctx: ctx, ak: ak}
|
||||
return testInput{cdc: cdc, ctx: ctx, ak: ak, pk: pk}
|
||||
}
|
||||
|
||||
func TestKeeper(t *testing.T) {
|
||||
input := setupTestInput()
|
||||
ctx := input.ctx
|
||||
bankKeeper := NewBaseKeeper(input.ak)
|
||||
bankKeeper := NewBaseKeeper(input.ak, input.pk.Subspace(DefaultParamspace), DefaultCodespace)
|
||||
bankKeeper.SetSendEnabled(ctx, true)
|
||||
|
||||
addr := sdk.AccAddress([]byte("addr1"))
|
||||
addr2 := sdk.AccAddress([]byte("addr2"))
|
||||
@@ -134,8 +136,10 @@ func TestKeeper(t *testing.T) {
|
||||
func TestSendKeeper(t *testing.T) {
|
||||
input := setupTestInput()
|
||||
ctx := input.ctx
|
||||
bankKeeper := NewBaseKeeper(input.ak)
|
||||
sendKeeper := NewBaseSendKeeper(input.ak)
|
||||
paramSpace := input.pk.Subspace(DefaultParamspace)
|
||||
bankKeeper := NewBaseKeeper(input.ak, paramSpace, DefaultCodespace)
|
||||
sendKeeper := NewBaseSendKeeper(input.ak, paramSpace, DefaultCodespace)
|
||||
bankKeeper.SetSendEnabled(ctx, true)
|
||||
|
||||
addr := sdk.AccAddress([]byte("addr1"))
|
||||
addr2 := sdk.AccAddress([]byte("addr2"))
|
||||
@@ -181,8 +185,10 @@ func TestSendKeeper(t *testing.T) {
|
||||
func TestViewKeeper(t *testing.T) {
|
||||
input := setupTestInput()
|
||||
ctx := input.ctx
|
||||
bankKeeper := NewBaseKeeper(input.ak)
|
||||
viewKeeper := NewBaseViewKeeper(input.ak)
|
||||
paramSpace := input.pk.Subspace(DefaultParamspace)
|
||||
bankKeeper := NewBaseKeeper(input.ak, paramSpace, DefaultCodespace)
|
||||
bankKeeper.SetSendEnabled(ctx, true)
|
||||
viewKeeper := NewBaseViewKeeper(input.ak, DefaultCodespace)
|
||||
|
||||
addr := sdk.AccAddress([]byte("addr1"))
|
||||
acc := input.ak.NewAccountWithAddress(ctx, addr)
|
||||
@@ -209,7 +215,8 @@ func TestVestingAccountSend(t *testing.T) {
|
||||
|
||||
origCoins := sdk.Coins{sdk.NewInt64Coin("steak", 100)}
|
||||
sendCoins := sdk.Coins{sdk.NewInt64Coin("steak", 50)}
|
||||
bankKeeper := NewBaseKeeper(input.ak)
|
||||
bankKeeper := NewBaseKeeper(input.ak, input.pk.Subspace(DefaultParamspace), DefaultCodespace)
|
||||
bankKeeper.SetSendEnabled(ctx, true)
|
||||
|
||||
addr1 := sdk.AccAddress([]byte("addr1"))
|
||||
addr2 := sdk.AccAddress([]byte("addr2"))
|
||||
@@ -242,7 +249,8 @@ func TestVestingAccountReceive(t *testing.T) {
|
||||
|
||||
origCoins := sdk.Coins{sdk.NewInt64Coin("steak", 100)}
|
||||
sendCoins := sdk.Coins{sdk.NewInt64Coin("steak", 50)}
|
||||
bankKeeper := NewBaseKeeper(input.ak)
|
||||
bankKeeper := NewBaseKeeper(input.ak, input.pk.Subspace(DefaultParamspace), DefaultCodespace)
|
||||
bankKeeper.SetSendEnabled(ctx, true)
|
||||
|
||||
addr1 := sdk.AccAddress([]byte("addr1"))
|
||||
addr2 := sdk.AccAddress([]byte("addr2"))
|
||||
@@ -275,7 +283,8 @@ func TestDelegateCoins(t *testing.T) {
|
||||
|
||||
origCoins := sdk.Coins{sdk.NewInt64Coin("steak", 100)}
|
||||
delCoins := sdk.Coins{sdk.NewInt64Coin("steak", 50)}
|
||||
bankKeeper := NewBaseKeeper(input.ak)
|
||||
bankKeeper := NewBaseKeeper(input.ak, input.pk.Subspace(DefaultParamspace), DefaultCodespace)
|
||||
bankKeeper.SetSendEnabled(ctx, true)
|
||||
|
||||
addr1 := sdk.AccAddress([]byte("addr1"))
|
||||
addr2 := sdk.AccAddress([]byte("addr2"))
|
||||
@@ -311,7 +320,8 @@ func TestUndelegateCoins(t *testing.T) {
|
||||
|
||||
origCoins := sdk.Coins{sdk.NewInt64Coin("steak", 100)}
|
||||
delCoins := sdk.Coins{sdk.NewInt64Coin("steak", 50)}
|
||||
bankKeeper := NewBaseKeeper(input.ak)
|
||||
bankKeeper := NewBaseKeeper(input.ak, input.pk.Subspace(DefaultParamspace), DefaultCodespace)
|
||||
bankKeeper.SetSendEnabled(ctx, true)
|
||||
|
||||
addr1 := sdk.AccAddress([]byte("addr1"))
|
||||
addr2 := sdk.AccAddress([]byte("addr2"))
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package bank
|
||||
|
||||
import (
|
||||
"github.com/cosmos/cosmos-sdk/x/params"
|
||||
)
|
||||
|
||||
const (
|
||||
// default paramspace for params keeper
|
||||
DefaultParamspace = "bank"
|
||||
// default send enabled
|
||||
DefaultSendEnabled = true
|
||||
)
|
||||
|
||||
// ParamStoreKeySendEnabled is store's key for SendEnabled
|
||||
var ParamStoreKeySendEnabled = []byte("sendenabled")
|
||||
|
||||
// type declaration for parameters
|
||||
func ParamTypeTable() params.TypeTable {
|
||||
return params.NewTypeTable(
|
||||
ParamStoreKeySendEnabled, false,
|
||||
)
|
||||
}
|
||||
@@ -112,6 +112,9 @@ func sendAndVerifyMsgSend(app *baseapp.BaseApp, mapper auth.AccountKeeper, msg b
|
||||
if handler != nil {
|
||||
res := handler(ctx, msg)
|
||||
if !res.IsOK() {
|
||||
if res.Code == bank.CodeSendDisabled {
|
||||
return nil
|
||||
}
|
||||
// TODO: Do this in a more 'canonical' way
|
||||
return fmt.Errorf("handling msg failed %v", res)
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ func CreateTestInputAdvanced(t *testing.T, isCheckTx bool, initCoins int64,
|
||||
|
||||
ctx := sdk.NewContext(ms, abci.Header{ChainID: "foochainid"}, isCheckTx, log.NewNopLogger())
|
||||
accountKeeper := auth.NewAccountKeeper(cdc, keyAcc, pk.Subspace(auth.DefaultParamspace), auth.ProtoBaseAccount)
|
||||
ck := bank.NewBaseKeeper(accountKeeper)
|
||||
ck := bank.NewBaseKeeper(accountKeeper, pk.Subspace(bank.DefaultParamspace), bank.DefaultCodespace)
|
||||
sk := staking.NewKeeper(cdc, keyStaking, tkeyStaking, ck, pk.Subspace(staking.DefaultParamspace), staking.DefaultCodespace)
|
||||
sk.SetPool(ctx, staking.InitialPool())
|
||||
sk.SetParams(ctx, staking.DefaultParams())
|
||||
|
||||
@@ -16,6 +16,7 @@ func TestTickExpiredDepositPeriod(t *testing.T) {
|
||||
mapp, keeper, _, addrs, _, _ := getMockApp(t, 10, GenesisState{}, nil)
|
||||
mapp.BeginBlock(abci.RequestBeginBlock{})
|
||||
ctx := mapp.BaseApp.NewContext(false, abci.Header{})
|
||||
keeper.ck.SetSendEnabled(ctx, true)
|
||||
govHandler := NewHandler(keeper)
|
||||
|
||||
inactiveQueue := keeper.InactiveProposalQueueIterator(ctx, ctx.BlockHeader().Time)
|
||||
@@ -58,6 +59,7 @@ func TestTickMultipleExpiredDepositPeriod(t *testing.T) {
|
||||
mapp, keeper, _, addrs, _, _ := getMockApp(t, 10, GenesisState{}, nil)
|
||||
mapp.BeginBlock(abci.RequestBeginBlock{})
|
||||
ctx := mapp.BaseApp.NewContext(false, abci.Header{})
|
||||
keeper.ck.SetSendEnabled(ctx, true)
|
||||
govHandler := NewHandler(keeper)
|
||||
|
||||
inactiveQueue := keeper.InactiveProposalQueueIterator(ctx, ctx.BlockHeader().Time)
|
||||
@@ -114,6 +116,7 @@ func TestTickPassedDepositPeriod(t *testing.T) {
|
||||
mapp, keeper, _, addrs, _, _ := getMockApp(t, 10, GenesisState{}, nil)
|
||||
mapp.BeginBlock(abci.RequestBeginBlock{})
|
||||
ctx := mapp.BaseApp.NewContext(false, abci.Header{})
|
||||
keeper.ck.SetSendEnabled(ctx, true)
|
||||
govHandler := NewHandler(keeper)
|
||||
|
||||
inactiveQueue := keeper.InactiveProposalQueueIterator(ctx, ctx.BlockHeader().Time)
|
||||
@@ -156,6 +159,7 @@ func TestTickPassedVotingPeriod(t *testing.T) {
|
||||
SortAddresses(addrs)
|
||||
mapp.BeginBlock(abci.RequestBeginBlock{})
|
||||
ctx := mapp.BaseApp.NewContext(false, abci.Header{})
|
||||
keeper.ck.SetSendEnabled(ctx, true)
|
||||
govHandler := NewHandler(keeper)
|
||||
|
||||
inactiveQueue := keeper.InactiveProposalQueueIterator(ctx, ctx.BlockHeader().Time)
|
||||
|
||||
@@ -31,7 +31,7 @@ func getMockApp(t *testing.T, numGenAccs int, genState GenesisState, genAccs []a
|
||||
keyGov := sdk.NewKVStoreKey(StoreKey)
|
||||
|
||||
pk := mapp.ParamsKeeper
|
||||
ck := bank.NewBaseKeeper(mapp.AccountKeeper)
|
||||
ck := bank.NewBaseKeeper(mapp.AccountKeeper, mapp.ParamsKeeper.Subspace(bank.DefaultParamspace), bank.DefaultCodespace)
|
||||
sk = staking.NewKeeper(mapp.Cdc, keyStaking, tkeyStaking, ck, pk.Subspace(staking.DefaultParamspace), staking.DefaultCodespace)
|
||||
keeper = NewKeeper(mapp.Cdc, keyGov, pk, pk.Subspace("testgov"), ck, sk, DefaultCodespace)
|
||||
|
||||
|
||||
+3
-1
@@ -21,7 +21,9 @@ func getMockApp(t *testing.T) *mock.App {
|
||||
RegisterCodec(mapp.Cdc)
|
||||
keyIBC := sdk.NewKVStoreKey("ibc")
|
||||
ibcMapper := NewMapper(mapp.Cdc, keyIBC, DefaultCodespace)
|
||||
bankKeeper := bank.NewBaseKeeper(mapp.AccountKeeper)
|
||||
bankKeeper := bank.NewBaseKeeper(mapp.AccountKeeper,
|
||||
mapp.ParamsKeeper.Subspace(bank.DefaultParamspace),
|
||||
bank.DefaultCodespace)
|
||||
mapp.Router().AddRoute("ibc", NewHandler(ibcMapper, bankKeeper))
|
||||
|
||||
require.NoError(t, mapp.CompleteSetup(keyIBC))
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ func setupTestInput() testInput {
|
||||
ak := auth.NewAccountKeeper(
|
||||
cdc, authCapKey, pk.Subspace(auth.DefaultParamspace), auth.ProtoBaseAccount,
|
||||
)
|
||||
bk := bank.NewBaseKeeper(ak)
|
||||
bk := bank.NewBaseKeeper(ak, pk.Subspace(bank.DefaultParamspace), bank.DefaultCodespace)
|
||||
ctx := sdk.NewContext(ms, abci.Header{ChainID: "test-chain-id"}, false, log.NewNopLogger())
|
||||
|
||||
ak.SetParams(ctx, auth.DefaultParams())
|
||||
|
||||
@@ -30,7 +30,7 @@ func getMockApp(t *testing.T) (*mock.App, staking.Keeper, Keeper) {
|
||||
tkeyStaking := sdk.NewTransientStoreKey(staking.TStoreKey)
|
||||
keySlashing := sdk.NewKVStoreKey(StoreKey)
|
||||
|
||||
bankKeeper := bank.NewBaseKeeper(mapp.AccountKeeper)
|
||||
bankKeeper := bank.NewBaseKeeper(mapp.AccountKeeper, mapp.ParamsKeeper.Subspace(bank.DefaultParamspace), bank.DefaultCodespace)
|
||||
stakingKeeper := staking.NewKeeper(mapp.Cdc, keyStaking, tkeyStaking, bankKeeper, mapp.ParamsKeeper.Subspace(staking.DefaultParamspace), staking.DefaultCodespace)
|
||||
keeper := NewKeeper(mapp.Cdc, keySlashing, stakingKeeper, mapp.ParamsKeeper.Subspace(DefaultParamspace), DefaultCodespace)
|
||||
mapp.Router().AddRoute(staking.RouterKey, staking.NewHandler(stakingKeeper))
|
||||
|
||||
@@ -72,7 +72,7 @@ func createTestInput(t *testing.T, defaults Params) (sdk.Context, bank.Keeper, s
|
||||
paramsKeeper := params.NewKeeper(cdc, keyParams, tkeyParams)
|
||||
accountKeeper := auth.NewAccountKeeper(cdc, keyAcc, paramsKeeper.Subspace(auth.DefaultParamspace), auth.ProtoBaseAccount)
|
||||
|
||||
ck := bank.NewBaseKeeper(accountKeeper)
|
||||
ck := bank.NewBaseKeeper(accountKeeper, paramsKeeper.Subspace(bank.DefaultParamspace), bank.DefaultCodespace)
|
||||
sk := staking.NewKeeper(cdc, keyStaking, tkeyStaking, ck, paramsKeeper.Subspace(staking.DefaultParamspace), staking.DefaultCodespace)
|
||||
genesis := staking.DefaultGenesisState()
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ func getMockApp(t *testing.T) (*mock.App, Keeper) {
|
||||
keyStaking := sdk.NewKVStoreKey(StoreKey)
|
||||
tkeyStaking := sdk.NewTransientStoreKey(TStoreKey)
|
||||
|
||||
bankKeeper := bank.NewBaseKeeper(mApp.AccountKeeper)
|
||||
bankKeeper := bank.NewBaseKeeper(mApp.AccountKeeper, mApp.ParamsKeeper.Subspace(bank.DefaultParamspace), bank.DefaultCodespace)
|
||||
keeper := NewKeeper(mApp.Cdc, keyStaking, tkeyStaking, bankKeeper, mApp.ParamsKeeper.Subspace(DefaultParamspace), DefaultCodespace)
|
||||
|
||||
mApp.Router().AddRoute(RouterKey, NewHandler(keeper))
|
||||
|
||||
@@ -112,7 +112,11 @@ func CreateTestInput(t *testing.T, isCheckTx bool, initCoins int64) (sdk.Context
|
||||
auth.ProtoBaseAccount, // prototype
|
||||
)
|
||||
|
||||
ck := bank.NewBaseKeeper(accountKeeper)
|
||||
ck := bank.NewBaseKeeper(
|
||||
accountKeeper,
|
||||
pk.Subspace(bank.DefaultParamspace),
|
||||
bank.DefaultCodespace,
|
||||
)
|
||||
|
||||
keeper := NewKeeper(cdc, keyStaking, tkeyStaking, ck, pk.Subspace(DefaultParamspace), types.DefaultCodespace)
|
||||
keeper.SetPool(ctx, types.InitialPool())
|
||||
|
||||
Reference in New Issue
Block a user