diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index 827408b208..210900d614 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -13,6 +13,7 @@ import ( "github.com/cosmos/cosmos-sdk/store" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/wire" ) // Key to store the header in the DB itself. @@ -56,7 +57,7 @@ var _ abci.Application = (*BaseApp)(nil) // Create and name new BaseApp // NOTE: The db is used to store the version number for now. -func NewBaseApp(name string, logger log.Logger, db dbm.DB) *BaseApp { +func NewBaseApp(name string, cdc *wire.Codec, logger log.Logger, db dbm.DB) *BaseApp { app := &BaseApp{ Logger: logger, name: name, @@ -64,6 +65,7 @@ func NewBaseApp(name string, logger log.Logger, db dbm.DB) *BaseApp { cms: store.NewCommitMultiStore(db), router: NewRouter(), codespacer: sdk.NewCodespacer(), + txDecoder: defaultTxDecoder(cdc), } // Register the undefined & root codespaces, which should not be used by any modules app.codespacer.RegisterOrPanic(sdk.CodespaceUndefined) @@ -98,10 +100,31 @@ func (app *BaseApp) MountStore(key sdk.StoreKey, typ sdk.StoreType) { app.cms.MountStoreWithDB(key, typ, nil) } -// nolint - Set functions +// Set the txDecoder function func (app *BaseApp) SetTxDecoder(txDecoder sdk.TxDecoder) { app.txDecoder = txDecoder } + +// default custom logic for transaction decoding +func defaultTxDecoder(cdc *wire.Codec) sdk.TxDecoder { + return func(txBytes []byte) (sdk.Tx, sdk.Error) { + var tx = sdk.StdTx{} + + if len(txBytes) == 0 { + return nil, sdk.ErrTxDecode("txBytes are empty") + } + + // StdTx.Msg is an interface. The concrete types + // are registered by MakeTxCodec + err := cdc.UnmarshalBinary(txBytes, &tx) + if err != nil { + return nil, sdk.ErrTxDecode("").Trace(err.Error()) + } + return tx, nil + } +} + +// nolint - Set functions func (app *BaseApp) SetInitChainer(initChainer sdk.InitChainer) { app.initChainer = initChainer } @@ -217,7 +240,7 @@ func (app *BaseApp) setDeliverState(header abci.Header) { } } -//---------------------------------------- +//______________________________________________________________________________ // ABCI // Implements ABCI diff --git a/baseapp/baseapp_test.go b/baseapp/baseapp_test.go index f70521009a..fe061622c2 100644 --- a/baseapp/baseapp_test.go +++ b/baseapp/baseapp_test.go @@ -25,7 +25,7 @@ func defaultLogger() log.Logger { func newBaseApp(name string) *BaseApp { logger := defaultLogger() db := dbm.NewMemDB() - return NewBaseApp(name, logger, db) + return NewBaseApp(name, nil, logger, db) } func TestMountStores(t *testing.T) { @@ -59,7 +59,7 @@ func TestLoadVersion(t *testing.T) { logger := defaultLogger() db := dbm.NewMemDB() name := t.Name() - app := NewBaseApp(name, logger, db) + app := NewBaseApp(name, nil, logger, db) // make a cap key and mount the store capKey := sdk.NewKVStoreKey("main") @@ -81,7 +81,7 @@ func TestLoadVersion(t *testing.T) { commitID := sdk.CommitID{1, res.Data} // reload - app = NewBaseApp(name, logger, db) + app = NewBaseApp(name, nil, logger, db) app.MountStoresIAVL(capKey) err = app.LoadLatestVersion(capKey) // needed to make stores non-nil assert.Nil(t, err) @@ -147,7 +147,7 @@ func TestInitChainer(t *testing.T) { name := t.Name() db := dbm.NewMemDB() logger := defaultLogger() - app := NewBaseApp(name, logger, db) + app := NewBaseApp(name, nil, logger, db) // make cap keys and mount the stores // NOTE/TODO: mounting multiple stores is broken // see https://github.com/cosmos/cosmos-sdk/issues/532 @@ -184,7 +184,7 @@ func TestInitChainer(t *testing.T) { assert.Equal(t, value, res.Value) // reload app - app = NewBaseApp(name, logger, db) + app = NewBaseApp(name, nil, logger, db) app.MountStoresIAVL(capKey, capKey2) err = app.LoadLatestVersion(capKey) // needed to make stores non-nil assert.Nil(t, err) diff --git a/cmd/gaia/app/app.go b/cmd/gaia/app/app.go index 9ece80ea7f..690dafe538 100644 --- a/cmd/gaia/app/app.go +++ b/cmd/gaia/app/app.go @@ -43,48 +43,38 @@ type GaiaApp struct { coinKeeper bank.Keeper ibcMapper ibc.Mapper stakeKeeper stake.Keeper - - // Handle fees - feeHandler sdk.FeeHandler } func NewGaiaApp(logger log.Logger, db dbm.DB) *GaiaApp { + cdc := MakeCodec() + // create your application object var app = &GaiaApp{ - BaseApp: bam.NewBaseApp(appName, logger, db), - cdc: MakeCodec(), + BaseApp: bam.NewBaseApp(appName, cdc, logger, db), + cdc: cdc, keyMain: sdk.NewKVStoreKey("main"), keyAccount: sdk.NewKVStoreKey("acc"), keyIBC: sdk.NewKVStoreKey("ibc"), keyStake: sdk.NewKVStoreKey("stake"), } - // define the accountMapper - app.accountMapper = auth.NewAccountMapper( - app.cdc, - app.keyMain, // target store - &auth.BaseAccount{}, // prototype - ) - - // add handlers + // add accountMapper/handlers + app.accountMapper = auth.NewAccountMapper(app.cdc, app.keyMain, &auth.BaseAccount{}) app.coinKeeper = bank.NewKeeper(app.accountMapper) app.ibcMapper = ibc.NewMapper(app.cdc, app.keyIBC, app.RegisterCodespace(ibc.DefaultCodespace)) app.stakeKeeper = stake.NewKeeper(app.cdc, app.keyStake, app.coinKeeper, app.RegisterCodespace(stake.DefaultCodespace)) + // register message routes app.Router(). AddRoute("bank", bank.NewHandler(app.coinKeeper)). AddRoute("ibc", ibc.NewHandler(app.ibcMapper, app.coinKeeper)). AddRoute("stake", stake.NewHandler(app.stakeKeeper)) - // Define the feeHandler. - app.feeHandler = auth.BurnFeeHandler - // initialize BaseApp - app.SetTxDecoder(app.txDecoder) app.SetInitChainer(app.initChainer) app.SetEndBlocker(stake.NewEndBlocker(app.stakeKeeper)) app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake) - app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, app.feeHandler)) + app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, stake.FeeHandler)) err := app.LoadLatestVersion(app.keyMain) if err != nil { cmn.Exit(err.Error()) @@ -96,41 +86,15 @@ func NewGaiaApp(logger log.Logger, db dbm.DB) *GaiaApp { // custom tx codec func MakeCodec() *wire.Codec { var cdc = wire.NewCodec() - - // Register Msgs - cdc.RegisterInterface((*sdk.Msg)(nil), nil) - ibc.RegisterWire(cdc) bank.RegisterWire(cdc) stake.RegisterWire(cdc) - - // Register AppAccount - cdc.RegisterInterface((*sdk.Account)(nil), nil) - cdc.RegisterConcrete(&auth.BaseAccount{}, "gaia/Account", nil) - - // Register crypto. + auth.RegisterWire(cdc) + sdk.RegisterWire(cdc) wire.RegisterCrypto(cdc) - return cdc } -// custom logic for transaction decoding -func (app *GaiaApp) txDecoder(txBytes []byte) (sdk.Tx, sdk.Error) { - var tx = sdk.StdTx{} - - if len(txBytes) == 0 { - return nil, sdk.ErrTxDecode("txBytes are empty") - } - - // StdTx.Msg is an interface. The concrete types - // are registered by MakeTxCodec - err := app.cdc.UnmarshalBinary(txBytes, &tx) - if err != nil { - return nil, sdk.ErrTxDecode("").Trace(err.Error()) - } - return tx, nil -} - // custom logic for gaia initialization func (app *GaiaApp) initChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { stateJSON := req.AppStateBytes diff --git a/examples/basecoin/app/app.go b/examples/basecoin/app/app.go index ead9c78e33..a1ec9a38bf 100644 --- a/examples/basecoin/app/app.go +++ b/examples/basecoin/app/app.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/bank" "github.com/cosmos/cosmos-sdk/x/ibc" - "github.com/cosmos/cosmos-sdk/x/simplestake" + "github.com/cosmos/cosmos-sdk/x/stake" "github.com/cosmos/cosmos-sdk/examples/basecoin/types" ) @@ -27,16 +27,16 @@ type BasecoinApp struct { cdc *wire.Codec // keys to access the substores - capKeyMainStore *sdk.KVStoreKey - capKeyAccountStore *sdk.KVStoreKey - capKeyIBCStore *sdk.KVStoreKey - capKeyStakingStore *sdk.KVStoreKey + keyMain *sdk.KVStoreKey + keyAccount *sdk.KVStoreKey + keyIBC *sdk.KVStoreKey + keyStake *sdk.KVStoreKey // Manage getting and setting accounts accountMapper sdk.AccountMapper - - // Handle fees - feeHandler sdk.FeeHandler + coinKeeper bank.Keeper + ibcMapper ibc.Mapper + stakeKeeper stake.Keeper } func NewBasecoinApp(logger log.Logger, db dbm.DB) *BasecoinApp { @@ -46,86 +46,58 @@ func NewBasecoinApp(logger log.Logger, db dbm.DB) *BasecoinApp { // Create your application object. var app = &BasecoinApp{ - BaseApp: bam.NewBaseApp(appName, logger, db), - cdc: cdc, - capKeyMainStore: sdk.NewKVStoreKey("main"), - capKeyAccountStore: sdk.NewKVStoreKey("acc"), - capKeyIBCStore: sdk.NewKVStoreKey("ibc"), - capKeyStakingStore: sdk.NewKVStoreKey("stake"), + BaseApp: bam.NewBaseApp(appName, cdc, logger, db), + cdc: cdc, + keyMain: sdk.NewKVStoreKey("main"), + keyAccount: sdk.NewKVStoreKey("acc"), + keyIBC: sdk.NewKVStoreKey("ibc"), + keyStake: sdk.NewKVStoreKey("stake"), } // Define the accountMapper. app.accountMapper = auth.NewAccountMapper( cdc, - app.capKeyMainStore, // target store + app.keyMain, // target store &types.AppAccount{}, // prototype ) - // Add handlers. - coinKeeper := bank.NewKeeper(app.accountMapper) - ibcMapper := ibc.NewMapper(app.cdc, app.capKeyIBCStore, app.RegisterCodespace(ibc.DefaultCodespace)) - stakeKeeper := simplestake.NewKeeper(app.capKeyStakingStore, coinKeeper, app.RegisterCodespace(simplestake.DefaultCodespace)) - app.Router(). - AddRoute("bank", bank.NewHandler(coinKeeper)). - AddRoute("ibc", ibc.NewHandler(ibcMapper, coinKeeper)). - AddRoute("simplestake", simplestake.NewHandler(stakeKeeper)) + // add accountMapper/handlers + app.coinKeeper = bank.NewKeeper(app.accountMapper) + app.ibcMapper = ibc.NewMapper(app.cdc, app.keyIBC, app.RegisterCodespace(ibc.DefaultCodespace)) + app.stakeKeeper = stake.NewKeeper(app.cdc, app.keyStake, app.coinKeeper, app.RegisterCodespace(stake.DefaultCodespace)) - // Define the feeHandler. - app.feeHandler = auth.BurnFeeHandler + // register message routes + app.Router(). + AddRoute("bank", bank.NewHandler(app.coinKeeper)). + AddRoute("ibc", ibc.NewHandler(app.ibcMapper, app.coinKeeper)). + AddRoute("stake", stake.NewHandler(app.stakeKeeper)) // Initialize BaseApp. - app.SetTxDecoder(app.txDecoder) app.SetInitChainer(app.initChainer) - app.MountStoresIAVL(app.capKeyMainStore, app.capKeyAccountStore, app.capKeyIBCStore, app.capKeyStakingStore) - app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, app.feeHandler)) - err := app.LoadLatestVersion(app.capKeyMainStore) + app.MountStoresIAVL(app.keyMain, app.keyAccount, app.keyIBC, app.keyStake) + app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, auth.BurnFeeHandler)) + err := app.LoadLatestVersion(app.keyMain) if err != nil { cmn.Exit(err.Error()) } - return app } // Custom tx codec func MakeCodec() *wire.Codec { var cdc = wire.NewCodec() + wire.RegisterCrypto(cdc) // Register crypto. + sdk.RegisterWire(cdc) // Register Msgs + bank.RegisterWire(cdc) + stake.RegisterWire(cdc) + ibc.RegisterWire(cdc) - // Register Msgs - cdc.RegisterInterface((*sdk.Msg)(nil), nil) - cdc.RegisterConcrete(bank.MsgSend{}, "basecoin/Send", nil) - cdc.RegisterConcrete(bank.MsgIssue{}, "basecoin/Issue", nil) - cdc.RegisterConcrete(ibc.IBCTransferMsg{}, "basecoin/IBCTransferMsg", nil) - cdc.RegisterConcrete(ibc.IBCReceiveMsg{}, "basecoin/IBCReceiveMsg", nil) - cdc.RegisterConcrete(simplestake.MsgBond{}, "basecoin/BondMsg", nil) - cdc.RegisterConcrete(simplestake.MsgUnbond{}, "basecoin/UnbondMsg", nil) - - // Register AppAccount + // register custom AppAccount cdc.RegisterInterface((*sdk.Account)(nil), nil) cdc.RegisterConcrete(&types.AppAccount{}, "basecoin/Account", nil) - - // Register crypto. - wire.RegisterCrypto(cdc) - return cdc } -// Custom logic for transaction decoding -func (app *BasecoinApp) txDecoder(txBytes []byte) (sdk.Tx, sdk.Error) { - var tx = sdk.StdTx{} - - if len(txBytes) == 0 { - return nil, sdk.ErrTxDecode("txBytes are empty") - } - - // StdTx.Msg is an interface. The concrete types - // are registered by MakeTxCodec in bank.RegisterAmino. - err := app.cdc.UnmarshalBinary(txBytes, &tx) - if err != nil { - return nil, sdk.ErrTxDecode("").Trace(err.Error()) - } - return tx, nil -} - // Custom logic for basecoin initialization func (app *BasecoinApp) initChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { stateJSON := req.AppStateBytes diff --git a/examples/basecoin/cmd/basecli/main.go b/examples/basecoin/cmd/basecli/main.go index c2a6145aaf..50800450fe 100644 --- a/examples/basecoin/cmd/basecli/main.go +++ b/examples/basecoin/cmd/basecli/main.go @@ -14,13 +14,11 @@ import ( "github.com/cosmos/cosmos-sdk/client/tx" "github.com/cosmos/cosmos-sdk/version" - authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" bankcmd "github.com/cosmos/cosmos-sdk/x/bank/client/cli" ibccmd "github.com/cosmos/cosmos-sdk/x/ibc/client/cli" - simplestakingcmd "github.com/cosmos/cosmos-sdk/x/simplestake/client/cli" + stakecmd "github.com/cosmos/cosmos-sdk/x/stake/client/cli" "github.com/cosmos/cosmos-sdk/examples/basecoin/app" - "github.com/cosmos/cosmos-sdk/examples/basecoin/types" ) // rootCmd is the entry point for this binary @@ -49,26 +47,15 @@ func main() { rootCmd.AddCommand(client.LineBreak) // add query/post commands (custom to binary) - rootCmd.AddCommand( - client.GetCommands( - authcmd.GetAccountCmd("main", cdc, types.GetAccountDecoder(cdc)), - )...) rootCmd.AddCommand( client.PostCommands( bankcmd.SendTxCmd(cdc), - )...) - rootCmd.AddCommand( - client.PostCommands( ibccmd.IBCTransferCmd(cdc), - )...) - rootCmd.AddCommand( - client.PostCommands( ibccmd.IBCRelayCmd(cdc), - simplestakingcmd.BondTxCmd(cdc), - )...) - rootCmd.AddCommand( - client.PostCommands( - simplestakingcmd.UnbondTxCmd(cdc), + stakecmd.GetCmdDeclareCandidacy(cdc), + stakecmd.GetCmdEditCandidacy(cdc), + stakecmd.GetCmdDelegate(cdc), + stakecmd.GetCmdUnbond(cdc), )...) // add proxy, version and key info diff --git a/examples/democoin/app/app.go b/examples/democoin/app/app.go index 8266b2b9b9..aabd4c41c5 100644 --- a/examples/democoin/app/app.go +++ b/examples/democoin/app/app.go @@ -12,11 +12,11 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth" "github.com/cosmos/cosmos-sdk/x/bank" "github.com/cosmos/cosmos-sdk/x/ibc" - "github.com/cosmos/cosmos-sdk/x/simplestake" "github.com/cosmos/cosmos-sdk/examples/democoin/types" "github.com/cosmos/cosmos-sdk/examples/democoin/x/cool" "github.com/cosmos/cosmos-sdk/examples/democoin/x/pow" + "github.com/cosmos/cosmos-sdk/examples/democoin/x/simplestake" "github.com/cosmos/cosmos-sdk/examples/democoin/x/sketchy" ) @@ -38,9 +38,6 @@ type DemocoinApp struct { // Manage getting and setting accounts accountMapper sdk.AccountMapper - - // Handle fees - feeHandler sdk.FeeHandler } func NewDemocoinApp(logger log.Logger, db dbm.DB) *DemocoinApp { @@ -50,7 +47,7 @@ func NewDemocoinApp(logger log.Logger, db dbm.DB) *DemocoinApp { // Create your application object. var app = &DemocoinApp{ - BaseApp: bam.NewBaseApp(appName, logger, db), + BaseApp: bam.NewBaseApp(appName, cdc, logger, db), cdc: cdc, capKeyMainStore: sdk.NewKVStoreKey("main"), capKeyAccountStore: sdk.NewKVStoreKey("acc"), @@ -80,65 +77,34 @@ func NewDemocoinApp(logger log.Logger, db dbm.DB) *DemocoinApp { AddRoute("ibc", ibc.NewHandler(ibcMapper, coinKeeper)). AddRoute("simplestake", simplestake.NewHandler(stakeKeeper)) - // Define the feeHandler. - app.feeHandler = auth.BurnFeeHandler - // Initialize BaseApp. - app.SetTxDecoder(app.txDecoder) app.SetInitChainer(app.initChainerFn(coolKeeper, powKeeper)) app.MountStoresIAVL(app.capKeyMainStore, app.capKeyAccountStore, app.capKeyPowStore, app.capKeyIBCStore, app.capKeyStakingStore) - app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, app.feeHandler)) + app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, auth.BurnFeeHandler)) err := app.LoadLatestVersion(app.capKeyMainStore) if err != nil { cmn.Exit(err.Error()) } - return app } // custom tx codec func MakeCodec() *wire.Codec { var cdc = wire.NewCodec() - - // Register Msgs - cdc.RegisterInterface((*sdk.Msg)(nil), nil) - cdc.RegisterConcrete(bank.MsgSend{}, "democoin/Send", nil) - cdc.RegisterConcrete(bank.MsgIssue{}, "democoin/Issue", nil) - cdc.RegisterConcrete(cool.MsgQuiz{}, "democoin/Quiz", nil) - cdc.RegisterConcrete(cool.MsgSetTrend{}, "democoin/SetTrend", nil) - cdc.RegisterConcrete(pow.MsgMine{}, "democoin/Mine", nil) - cdc.RegisterConcrete(ibc.IBCTransferMsg{}, "democoin/IBCTransferMsg", nil) - cdc.RegisterConcrete(ibc.IBCReceiveMsg{}, "democoin/IBCReceiveMsg", nil) - cdc.RegisterConcrete(simplestake.MsgBond{}, "democoin/BondMsg", nil) - cdc.RegisterConcrete(simplestake.MsgUnbond{}, "democoin/UnbondMsg", nil) + wire.RegisterCrypto(cdc) // Register crypto. + sdk.RegisterWire(cdc) // Register Msgs + cool.RegisterWire(cdc) + pow.RegisterWire(cdc) + bank.RegisterWire(cdc) + ibc.RegisterWire(cdc) + simplestake.RegisterWire(cdc) // Register AppAccount cdc.RegisterInterface((*sdk.Account)(nil), nil) cdc.RegisterConcrete(&types.AppAccount{}, "democoin/Account", nil) - - // Register crypto. - wire.RegisterCrypto(cdc) - return cdc } -// custom logic for transaction decoding -func (app *DemocoinApp) txDecoder(txBytes []byte) (sdk.Tx, sdk.Error) { - var tx = sdk.StdTx{} - - if len(txBytes) == 0 { - return nil, sdk.ErrTxDecode("txBytes are empty") - } - - // StdTx.Msg is an interface. The concrete types - // are registered by MakeTxCodec in bank.RegisterWire. - err := app.cdc.UnmarshalBinary(txBytes, &tx) - if err != nil { - return nil, sdk.ErrTxDecode("").Trace(err.Error()) - } - return tx, nil -} - // custom logic for democoin initialization func (app *DemocoinApp) initChainerFn(coolKeeper cool.Keeper, powKeeper pow.Keeper) sdk.InitChainer { return func(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { diff --git a/examples/democoin/cmd/democli/main.go b/examples/democoin/cmd/democli/main.go index 534b88ca28..45a448c2ef 100644 --- a/examples/democoin/cmd/democli/main.go +++ b/examples/democoin/cmd/democli/main.go @@ -17,12 +17,12 @@ import ( authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" bankcmd "github.com/cosmos/cosmos-sdk/x/bank/client/cli" ibccmd "github.com/cosmos/cosmos-sdk/x/ibc/client/cli" - simplestakingcmd "github.com/cosmos/cosmos-sdk/x/simplestake/client/cli" "github.com/cosmos/cosmos-sdk/examples/democoin/app" "github.com/cosmos/cosmos-sdk/examples/democoin/types" coolcmd "github.com/cosmos/cosmos-sdk/examples/democoin/x/cool/client/cli" powcmd "github.com/cosmos/cosmos-sdk/examples/democoin/x/pow/client/cli" + simplestakingcmd "github.com/cosmos/cosmos-sdk/examples/democoin/x/simplestake/client/cli" ) // rootCmd is the entry point for this binary diff --git a/examples/democoin/x/cool/wire.go b/examples/democoin/x/cool/wire.go new file mode 100644 index 0000000000..63666888a9 --- /dev/null +++ b/examples/democoin/x/cool/wire.go @@ -0,0 +1,11 @@ +package cool + +import ( + "github.com/cosmos/cosmos-sdk/wire" +) + +// Register concrete types on wire codec +func RegisterWire(cdc *wire.Codec) { + cdc.RegisterConcrete(MsgQuiz{}, "cool/Quiz", nil) + cdc.RegisterConcrete(MsgSetTrend{}, "cool/SetTrend", nil) +} diff --git a/examples/democoin/x/pow/wire.go b/examples/democoin/x/pow/wire.go new file mode 100644 index 0000000000..3d7f61486e --- /dev/null +++ b/examples/democoin/x/pow/wire.go @@ -0,0 +1,10 @@ +package pow + +import ( + "github.com/cosmos/cosmos-sdk/wire" +) + +// Register concrete types on wire codec +func RegisterWire(cdc *wire.Codec) { + cdc.RegisterConcrete(MsgMine{}, "pow/Mine", nil) +} diff --git a/x/simplestake/client/cli/commands.go b/examples/democoin/x/simplestake/client/cli/commands.go similarity index 97% rename from x/simplestake/client/cli/commands.go rename to examples/democoin/x/simplestake/client/cli/commands.go index 54ef73ac49..ede1efc756 100644 --- a/x/simplestake/client/cli/commands.go +++ b/examples/democoin/x/simplestake/client/cli/commands.go @@ -13,7 +13,8 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/wire" authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" - "github.com/cosmos/cosmos-sdk/x/simplestake" + + "github.com/cosmos/cosmos-sdk/examples/democoin/x/simplestake" ) const ( diff --git a/x/simplestake/errors.go b/examples/democoin/x/simplestake/errors.go similarity index 100% rename from x/simplestake/errors.go rename to examples/democoin/x/simplestake/errors.go diff --git a/x/simplestake/handler.go b/examples/democoin/x/simplestake/handler.go similarity index 100% rename from x/simplestake/handler.go rename to examples/democoin/x/simplestake/handler.go diff --git a/x/simplestake/keeper.go b/examples/democoin/x/simplestake/keeper.go similarity index 100% rename from x/simplestake/keeper.go rename to examples/democoin/x/simplestake/keeper.go diff --git a/x/simplestake/keeper_test.go b/examples/democoin/x/simplestake/keeper_test.go similarity index 100% rename from x/simplestake/keeper_test.go rename to examples/democoin/x/simplestake/keeper_test.go diff --git a/x/simplestake/msgs.go b/examples/democoin/x/simplestake/msgs.go similarity index 100% rename from x/simplestake/msgs.go rename to examples/democoin/x/simplestake/msgs.go diff --git a/x/simplestake/msgs_test.go b/examples/democoin/x/simplestake/msgs_test.go similarity index 100% rename from x/simplestake/msgs_test.go rename to examples/democoin/x/simplestake/msgs_test.go diff --git a/x/simplestake/types.go b/examples/democoin/x/simplestake/types.go similarity index 100% rename from x/simplestake/types.go rename to examples/democoin/x/simplestake/types.go diff --git a/examples/democoin/x/simplestake/wire.go b/examples/democoin/x/simplestake/wire.go new file mode 100644 index 0000000000..4ef971b448 --- /dev/null +++ b/examples/democoin/x/simplestake/wire.go @@ -0,0 +1,11 @@ +package simplestake + +import ( + "github.com/cosmos/cosmos-sdk/wire" +) + +// Register concrete types on wire codec +func RegisterWire(cdc *wire.Codec) { + cdc.RegisterConcrete(MsgBond{}, "simplestake/BondMsg", nil) + cdc.RegisterConcrete(MsgUnbond{}, "simplestake/UnbondMsg", nil) +} diff --git a/examples/kvstore/main.go b/examples/kvstore/main.go index d6b71171d5..856538f63a 100644 --- a/examples/kvstore/main.go +++ b/examples/kvstore/main.go @@ -32,7 +32,7 @@ func main() { var capKeyMainStore = sdk.NewKVStoreKey("main") // Create BaseApp. - var baseApp = bam.NewBaseApp("kvstore", logger, db) + var baseApp = bam.NewBaseApp("kvstore", nil, logger, db) // Set mounts for BaseApp's MultiStore. baseApp.MountStoresIAVL(capKeyMainStore) diff --git a/mock/app.go b/mock/app.go index 84f762db0e..ab1a8447a5 100644 --- a/mock/app.go +++ b/mock/app.go @@ -29,7 +29,7 @@ func NewApp(rootDir string, logger log.Logger) (abci.Application, error) { capKeyMainStore := sdk.NewKVStoreKey("main") // Create BaseApp. - baseApp := bam.NewBaseApp("kvstore", logger, db) + baseApp := bam.NewBaseApp("kvstore", nil, logger, db) // Set mounts for BaseApp's MultiStore. baseApp.MountStoresIAVL(capKeyMainStore) diff --git a/types/wire.go b/types/wire.go new file mode 100644 index 0000000000..245b3677c7 --- /dev/null +++ b/types/wire.go @@ -0,0 +1,8 @@ +package types + +import wire "github.com/cosmos/cosmos-sdk/wire" + +// Register the sdk message type +func RegisterWire(cdc *wire.Codec) { + cdc.RegisterInterface((*Msg)(nil), nil) +} diff --git a/x/auth/wire.go b/x/auth/wire.go new file mode 100644 index 0000000000..9db1b85cca --- /dev/null +++ b/x/auth/wire.go @@ -0,0 +1,12 @@ +package auth + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/wire" +) + +// Register concrete types on wire codec for default AppAccount +func RegisterWire(cdc *wire.Codec) { + cdc.RegisterInterface((*sdk.Account)(nil), nil) + cdc.RegisterConcrete(&BaseAccount{}, "auth/Account", nil) +} diff --git a/x/stake/fee_distribution.go b/x/stake/fee_distribution.go new file mode 100644 index 0000000000..cff42c7065 --- /dev/null +++ b/x/stake/fee_distribution.go @@ -0,0 +1,9 @@ +package stake + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func FeeHandler(ctx sdk.Context, tx sdk.Tx, fee sdk.Coins) { + +}