forked from cerc-io/laconicd-deprecated
e90b21bc8e
1. add bond,auction, nameserivce module 2. update to v0.12.2 ethermint version 3. fix the test cases 4. add gql server
136 lines
3.7 KiB
Go
136 lines
3.7 KiB
Go
package bond
|
|
|
|
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/bond/client/cli"
|
|
"github.com/tharsis/ethermint/x/bond/keeper"
|
|
"github.com/tharsis/ethermint/x/bond/types"
|
|
)
|
|
|
|
var (
|
|
_ module.AppModule = AppModule{}
|
|
_ module.AppModuleBasic = AppModuleBasic{}
|
|
)
|
|
|
|
// AppModuleBasic defines the basic application module used by the staking module.
|
|
type AppModuleBasic struct {
|
|
cdc codec.Codec
|
|
}
|
|
|
|
func (b AppModuleBasic) RegisterLegacyAminoCodec(amino *codec.LegacyAmino) {
|
|
types.RegisterLegacyAminoCodec(amino)
|
|
}
|
|
|
|
func (b AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) {
|
|
types.RegisterInterfaces(registry)
|
|
}
|
|
|
|
func (b AppModuleBasic) DefaultGenesis(jsonCodec codec.JSONCodec) json.RawMessage {
|
|
return jsonCodec.MustMarshalJSON(types.DefaultGenesisState())
|
|
}
|
|
|
|
func (b 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 ValidateGenesis(data)
|
|
}
|
|
|
|
func (b AppModuleBasic) RegisterRESTRoutes(context client.Context, router *mux.Router) {
|
|
}
|
|
|
|
func (b AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, serveMux *runtime.ServeMux) {
|
|
err := types.RegisterQueryHandlerClient(context.Background(), serveMux, types.NewQueryClient(clientCtx))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func (b AppModuleBasic) GetTxCmd() *cobra.Command {
|
|
return cli.NewTxCmd()
|
|
}
|
|
|
|
func (b AppModuleBasic) GetQueryCmd() *cobra.Command {
|
|
return cli.GetQueryCmd()
|
|
}
|
|
|
|
// Name returns the staking module's name.
|
|
func (AppModuleBasic) Name() string {
|
|
return types.ModuleName
|
|
}
|
|
|
|
type AppModule struct {
|
|
AppModuleBasic
|
|
keeper keeper.Keeper
|
|
}
|
|
|
|
// NewAppModule creates a new AppModule Object
|
|
func NewAppModule(cdc codec.Codec, keeper keeper.Keeper) AppModule {
|
|
return AppModule{
|
|
AppModuleBasic: AppModuleBasic{cdc: cdc},
|
|
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)
|
|
}
|