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  }