/
module.go
129 lines (101 loc) · 4.04 KB
/
module.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package crisis
import (
"encoding/json"
"github.com/gorilla/mux"
"github.com/spf13/cobra"
abci "github.com/tendermint/tendermint/abci/types"
"github.com/cosmos/cosmos-sdk/client/context"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
core "github.com/terra-project/core/types"
)
var (
_ module.AppModule = AppModule{}
_ module.AppModuleBasic = AppModuleBasic{}
)
// AppModuleBasic defines the basic application module used by the crisis module.
type AppModuleBasic struct{}
// Name returns the crisis module's name
func (AppModuleBasic) Name() string {
return CosmosAppModuleBasic{}.Name()
}
// RegisterCodec registers the crisis module's types for the given codec.
func (AppModuleBasic) RegisterCodec(cdc *codec.Codec) {
RegisterCodec(cdc)
*CosmosModuleCdc = *ModuleCdc // nolint
}
// DefaultGenesis returns default genesis state as raw bytes for the crisis
// module.
func (AppModuleBasic) DefaultGenesis() json.RawMessage {
// customize to set default genesis state constant fee denom to uluna
defaultGenesisState := DefaultGenesisState()
defaultGenesisState.ConstantFee.Denom = core.MicroLunaDenom
return ModuleCdc.MustMarshalJSON(defaultGenesisState)
}
// ValidateGenesis performs genesis state validation for the crisis module.
func (AppModuleBasic) ValidateGenesis(bz json.RawMessage) error {
return CosmosAppModuleBasic{}.ValidateGenesis(bz)
}
// RegisterRESTRoutes registers the REST routes for the crisis module.
func (AppModuleBasic) RegisterRESTRoutes(cliCtx context.CLIContext, route *mux.Router) {
CosmosAppModuleBasic{}.RegisterRESTRoutes(cliCtx, route)
}
// GetTxCmd returns the root tx command for the crisis module.
func (AppModuleBasic) GetTxCmd(cdc *codec.Codec) *cobra.Command {
return CosmosAppModuleBasic{}.GetTxCmd(cdc)
}
// GetQueryCmd returns the root query command for the crisis module.
func (AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command {
return CosmosAppModuleBasic{}.GetQueryCmd(cdc)
}
//___________________________
// AppModule implements an application module for the crisis module.
type AppModule struct {
AppModuleBasic
cosmosAppModule CosmosAppModule
}
// NewAppModule creates a new AppModule object
func NewAppModule(keeper *Keeper) AppModule {
return AppModule{
AppModuleBasic: AppModuleBasic{},
cosmosAppModule: NewCosmosAppModule(keeper),
}
}
// Name returns the crisis module's name.
func (am AppModule) Name() string {
return am.cosmosAppModule.Name()
}
// RegisterInvariants registers the crisis module invariants.
func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
am.cosmosAppModule.RegisterInvariants(ir)
}
// Route returns the message routing key for the crisis module.
func (am AppModule) Route() string {
return am.cosmosAppModule.Route()
}
// NewHandler returns an sdk.Handler for the crisis module.
func (am AppModule) NewHandler() sdk.Handler {
return am.cosmosAppModule.NewHandler()
}
// QuerierRoute returns the crisis module's querier route name.
func (am AppModule) QuerierRoute() string { return am.cosmosAppModule.QuerierRoute() }
// NewQuerierHandler returns the crisis module sdk.Querier.
func (am AppModule) NewQuerierHandler() sdk.Querier { return am.cosmosAppModule.NewQuerierHandler() }
// InitGenesis performs genesis initialization for the crisis module.
func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate {
return am.cosmosAppModule.InitGenesis(ctx, data)
}
// ExportGenesis returns the exported genesis state as raw bytes for the crisis
// module.
func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage {
return am.cosmosAppModule.ExportGenesis(ctx)
}
// BeginBlock returns the begin blocker for the crisis module.
func (am AppModule) BeginBlock(ctx sdk.Context, rbb abci.RequestBeginBlock) {
am.cosmosAppModule.BeginBlock(ctx, rbb)
}
// EndBlock returns the end blocker for the crisis module.
func (am AppModule) EndBlock(ctx sdk.Context, rbb abci.RequestEndBlock) []abci.ValidatorUpdate {
return am.cosmosAppModule.EndBlock(ctx, rbb)
}