e90b21bc8e
1. add bond,auction, nameserivce module 2. update to v0.12.2 ethermint version 3. fix the test cases 4. add gql server
135 lines
3.6 KiB
Go
135 lines
3.6 KiB
Go
package nameservice
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/cosmos/cosmos-sdk/client"
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/types/module"
|
|
"github.com/gorilla/mux"
|
|
"github.com/grpc-ecosystem/grpc-gateway/runtime"
|
|
"github.com/spf13/cobra"
|
|
abci "github.com/tendermint/tendermint/abci/types"
|
|
"github.com/tharsis/ethermint/x/nameservice/client/cli"
|
|
"github.com/tharsis/ethermint/x/nameservice/keeper"
|
|
"github.com/tharsis/ethermint/x/nameservice/types"
|
|
)
|
|
|
|
// type check to ensure the interface is properly implemented
|
|
var (
|
|
_ module.AppModule = AppModule{}
|
|
_ module.AppModuleBasic = AppModuleBasic{}
|
|
)
|
|
|
|
// AppModuleBasic _ app module Basics object
|
|
type AppModuleBasic struct{}
|
|
|
|
func (a AppModuleBasic) Name() string {
|
|
return types.ModuleName
|
|
}
|
|
|
|
func (a AppModuleBasic) RegisterLegacyAminoCodec(amino *codec.LegacyAmino) {
|
|
types.RegisterLegacyAminoCodec(amino)
|
|
}
|
|
|
|
func (a AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) {
|
|
types.RegisterInterfaces(registry)
|
|
}
|
|
|
|
func (a AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage {
|
|
return cdc.MustMarshalJSON(types.DefaultGenesisState())
|
|
}
|
|
|
|
func (a AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, message json.RawMessage) error {
|
|
var data types.GenesisState
|
|
if err := cdc.UnmarshalJSON(message, &data); err != nil {
|
|
return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err)
|
|
}
|
|
|
|
return types.ValidateGenesis(data)
|
|
}
|
|
|
|
func (a AppModuleBasic) RegisterRESTRoutes(context client.Context, router *mux.Router) {
|
|
}
|
|
|
|
func (a AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux) {
|
|
err := types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func (a AppModuleBasic) GetTxCmd() *cobra.Command {
|
|
return cli.NewTxCmd()
|
|
}
|
|
|
|
func (a AppModuleBasic) GetQueryCmd() *cobra.Command {
|
|
return cli.GetQueryCmd()
|
|
}
|
|
|
|
type AppModule struct {
|
|
AppModuleBasic
|
|
keeper keeper.Keeper
|
|
}
|
|
|
|
func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, message json.RawMessage) []abci.ValidatorUpdate {
|
|
var genesisState types.GenesisState
|
|
|
|
cdc.MustUnmarshalJSON(message, &genesisState)
|
|
|
|
return InitGenesis(ctx, am.keeper, genesisState)
|
|
}
|
|
|
|
func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage {
|
|
gs := ExportGenesis(ctx, am.keeper)
|
|
return cdc.MustMarshalJSON(&gs)
|
|
}
|
|
|
|
func (am AppModule) RegisterInvariants(registry sdk.InvariantRegistry) {
|
|
keeper.RegisterInvariants(registry, am.keeper)
|
|
}
|
|
|
|
func (am AppModule) Route() sdk.Route {
|
|
return sdk.Route{}
|
|
}
|
|
|
|
func (am AppModule) QuerierRoute() string {
|
|
return types.QuerierRoute
|
|
}
|
|
|
|
func (am AppModule) LegacyQuerierHandler(amino *codec.LegacyAmino) sdk.Querier {
|
|
return nil
|
|
}
|
|
|
|
func (am AppModule) RegisterServices(cfg module.Configurator) {
|
|
|
|
querier := keeper.Querier{Keeper: am.keeper}
|
|
types.RegisterQueryServer(cfg.QueryServer(), querier)
|
|
|
|
msgServer := keeper.NewMsgServerImpl(am.keeper)
|
|
types.RegisterMsgServer(cfg.MsgServer(), msgServer)
|
|
}
|
|
|
|
func (am AppModule) ConsensusVersion() uint64 {
|
|
return 1
|
|
}
|
|
|
|
func (am AppModule) BeginBlock(ctx sdk.Context, _ abci.RequestBeginBlock) {
|
|
BeginBlocker(ctx, am.keeper)
|
|
}
|
|
|
|
func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate {
|
|
return EndBlocker(ctx, am.keeper)
|
|
}
|
|
|
|
// NewAppModule creates a new AppModule Object
|
|
func NewAppModule(k keeper.Keeper) AppModule {
|
|
return AppModule{
|
|
AppModuleBasic: AppModuleBasic{},
|
|
keeper: k,
|
|
}
|
|
}
|