github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/order/module.go (about) 1 package order 2 3 import ( 4 "encoding/json" 5 6 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context" 7 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 8 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 9 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/module" 10 auth "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/types" 11 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 12 "github.com/gorilla/mux" 13 "github.com/spf13/cobra" 14 15 "github.com/fibonacci-chain/fbc/x/common/version" 16 "github.com/fibonacci-chain/fbc/x/order/client/cli" 17 "github.com/fibonacci-chain/fbc/x/order/client/rest" 18 "github.com/fibonacci-chain/fbc/x/order/keeper" 19 "github.com/fibonacci-chain/fbc/x/order/types" 20 ) 21 22 var ( 23 _ module.AppModule = AppModule{} 24 _ module.AppModuleBasic = AppModuleBasic{} 25 ) 26 27 // AppModuleBasic : app module basics object 28 type AppModuleBasic struct{} 29 30 // Name : module name 31 func (AppModuleBasic) Name() string { 32 return types.ModuleName 33 } 34 35 // RegisterCodec : register module codec 36 func (AppModuleBasic) RegisterCodec(cdc *codec.Codec) { 37 types.RegisterCodec(cdc) 38 } 39 40 // DefaultGenesis : default genesis state 41 func (AppModuleBasic) DefaultGenesis() json.RawMessage { 42 return types.ModuleCdc.MustMarshalJSON(DefaultGenesisState()) 43 } 44 45 // ValidateGenesis : module validate genesis 46 func (AppModuleBasic) ValidateGenesis(bz json.RawMessage) error { 47 var data GenesisState 48 err := types.ModuleCdc.UnmarshalJSON(bz, &data) 49 if err != nil { 50 return err 51 } 52 return ValidateGenesis(data) 53 } 54 55 // RegisterRESTRoutes : register rest routes 56 func (AppModuleBasic) RegisterRESTRoutes(ctx context.CLIContext, rtr *mux.Router) { 57 rest.RegisterRoutes(ctx, rtr) 58 } 59 60 // GetTxCmd : get the root tx command of this module 61 func (AppModuleBasic) GetTxCmd(cdc *codec.Codec) *cobra.Command { 62 return cli.GetTxCmd(cdc) 63 } 64 65 // GetQueryCmd : get the root query command of this module 66 func (AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command { 67 return cli.GetQueryCmd(types.QuerierRoute, cdc) 68 } 69 70 // AppModule : app module 71 type AppModule struct { 72 AppModuleBasic 73 keeper keeper.Keeper 74 supplyKeeper auth.SupplyKeeper 75 version version.ProtocolVersionType 76 } 77 78 // NewAppModule : creates a new AppModule object 79 func NewAppModule(v version.ProtocolVersionType, keeper keeper.Keeper, supplyKeeper auth.SupplyKeeper) AppModule { 80 81 return AppModule{ 82 AppModuleBasic: AppModuleBasic{}, 83 keeper: keeper, 84 supplyKeeper: supplyKeeper, 85 version: v, 86 } 87 } 88 89 // RegisterInvariants : register invariants 90 func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) { 91 keeper.RegisterInvariants(ir, am.keeper) 92 } 93 94 // Route : module message route name 95 func (AppModule) Route() string { 96 return types.RouterKey 97 } 98 99 // NewHandler : module handler 100 func (am AppModule) NewHandler() sdk.Handler { 101 return NewOrderHandler(am.keeper) 102 } 103 104 // QuerierRoute : module querier route name 105 func (AppModule) QuerierRoute() string { 106 return types.QuerierRoute 107 } 108 109 // NewQuerierHandler : module querier 110 func (am AppModule) NewQuerierHandler() sdk.Querier { 111 return keeper.NewQuerier(am.keeper) 112 } 113 114 // InitGenesis : module init-genesis 115 func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate { 116 var genesisState GenesisState 117 types.ModuleCdc.MustUnmarshalJSON(data, &genesisState) 118 InitGenesis(ctx, am.keeper, genesisState) 119 return nil 120 } 121 122 // ExportGenesis : module export genesis 123 func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage { 124 gs := ExportGenesis(ctx, am.keeper) 125 return types.ModuleCdc.MustMarshalJSON(gs) 126 } 127 128 // BeginBlock : module begin-block 129 func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) { 130 BeginBlocker(ctx, am.keeper) 131 } 132 133 // EndBlock : module end-block 134 func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate { 135 EndBlocker(ctx, am.keeper) 136 return nil 137 }