github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/dex/module.go (about) 1 package dex 2 3 import ( 4 "encoding/json" 5 6 "github.com/fibonacci-chain/fbc/x/dex/keeper" 7 8 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 9 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 10 "github.com/fibonacci-chain/fbc/x/dex/types" 11 12 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context" 13 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 14 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/module" 15 "github.com/gorilla/mux" 16 "github.com/spf13/cobra" 17 18 "github.com/fibonacci-chain/fbc/x/dex/client/cli" 19 "github.com/fibonacci-chain/fbc/x/dex/client/rest" 20 ) 21 22 var ( 23 _ module.AppModule = AppModule{} 24 _ module.AppModuleBasic = AppModuleBasic{} 25 ) 26 27 // AppModuleBasic represents a app module basics object 28 type AppModuleBasic struct{} 29 30 // Name returns module name 31 func (AppModuleBasic) Name() string { 32 return ModuleName 33 } 34 35 // RegisterCodec registers module codec 36 func (AppModuleBasic) RegisterCodec(cdc *codec.Codec) { 37 types.RegisterCodec(cdc) 38 } 39 40 // DefaultGenesis returns default genesis state 41 func (AppModuleBasic) DefaultGenesis() json.RawMessage { 42 return types.ModuleCdc.MustMarshalJSON(DefaultGenesisState()) 43 } 44 45 // ValidateGenesis validates 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 registers rest routes 56 func (AppModuleBasic) RegisterRESTRoutes(ctx context.CLIContext, rtr *mux.Router) { 57 rest.RegisterRoutes(ctx, rtr) 58 } 59 60 // GetTxCmd returns 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 returns 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 represents app module 71 type AppModule struct { 72 AppModuleBasic 73 keeper IKeeper 74 supplyKeeper SupplyKeeper 75 version ProtocolVersionType 76 } 77 78 // NewAppModule creates a new AppModule object 79 func NewAppModule(version ProtocolVersionType, keeper IKeeper, supplyKeeper SupplyKeeper) AppModule { 80 return AppModule{ 81 AppModuleBasic: AppModuleBasic{}, 82 keeper: keeper, 83 supplyKeeper: supplyKeeper, 84 version: version, 85 } 86 } 87 88 // RegisterInvariants registers invariants 89 func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) { 90 keeper.RegisterInvariants(ir, am.keeper, am.supplyKeeper) 91 } 92 93 // Route returns module message route name 94 func (AppModule) Route() string { 95 return types.RouterKey 96 } 97 98 // NewHandler returns module handler 99 func (am AppModule) NewHandler() sdk.Handler { 100 return NewHandler(am.keeper) 101 } 102 103 // QuerierRoute returns module querier route name 104 func (AppModule) QuerierRoute() string { 105 return types.QuerierRoute 106 } 107 108 // NewQuerierHandler returns module querier 109 func (am AppModule) NewQuerierHandler() sdk.Querier { 110 return NewQuerier(am.keeper) 111 } 112 113 // InitGenesis inits module genesis 114 func (am AppModule) InitGenesis(ctx sdk.Context, data json.RawMessage) []abci.ValidatorUpdate { 115 var genesisState GenesisState 116 types.ModuleCdc.MustUnmarshalJSON(data, &genesisState) 117 InitGenesis(ctx, am.keeper, genesisState) 118 return []abci.ValidatorUpdate{} 119 } 120 121 // ExportGenesis exports module genesis 122 func (am AppModule) ExportGenesis(ctx sdk.Context) json.RawMessage { 123 gs := ExportGenesis(ctx, am.keeper) 124 return types.ModuleCdc.MustMarshalJSON(gs) 125 } 126 127 // BeginBlock returns module begin-block 128 func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) { 129 } 130 131 // EndBlock returns module end-block 132 func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate { 133 EndBlocker(ctx, am.keeper) 134 return nil 135 }