-
Notifications
You must be signed in to change notification settings - Fork 4
/
module.go
133 lines (109 loc) · 3.48 KB
/
module.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package strongforce
import (
"encoding/json"
"github.com/comrade-coop/strongforce/go/cmd/rest"
"github.com/cosmos/cosmos-sdk/client/context"
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
"github.com/gorilla/mux"
"github.com/spf13/cobra"
abci "github.com/tendermint/tendermint/abci/types"
)
var (
_ module.AppModule = AppModule{}
_ module.AppModuleBasic = AppModuleBasic{}
moduleCdc = codec.New()
)
// AppModuleBasic object
type AppModuleBasic struct {
keeper Keeper
}
// Name implements module.AppModuleBasic
func (AppModuleBasic) Name() string {
return ModuleName
}
// RegisterCodec implements module.AppModuleBasic
func (AppModuleBasic) RegisterCodec(cdc *codec.Codec) {
RegisterCodec(cdc)
}
// DefaultGenesis implements module.AppModuleBasic
func (AppModuleBasic) DefaultGenesis() json.RawMessage {
return moduleCdc.MustMarshalJSON(DefaultGenesisState())
}
// ValidateGenesis implements module.AppModuleBasic
func (AppModuleBasic) ValidateGenesis(bz json.RawMessage) error {
var data GenesisState
err := moduleCdc.UnmarshalJSON(bz, &data)
if err != nil {
return err
}
// once json successfully marshalled, passes along to genesis.go
return ValidateGenesis(data)
}
// RegisterRESTRoutes implements module.AppModuleBasic
func (AppModuleBasic) RegisterRESTRoutes(ctx context.CLIContext, rtr *mux.Router) {
rest.RegisterRoutes(ctx, rtr, StoreKey)
}
// GetQueryCmd implements module.AppModuleBasic
func (ab AppModuleBasic) GetQueryCmd(cdc *codec.Codec) *cobra.Command {
return GetQueryCmd(RouterKey, cdc)
}
// GetTxCmd implements module.AppModuleBasic
func (ab AppModuleBasic) GetTxCmd(cdc *codec.Codec) *cobra.Command {
return GetTxCmd(cdc)
}
// AppModule implements module.AppModule
type AppModule struct {
AppModuleBasic
backendURL string
}
// NewAppModule creates a new AppModule Object
func NewAppModule(k Keeper, backendURL string) AppModule {
return AppModule{
AppModuleBasic: AppModuleBasic{
keeper: k,
},
backendURL: backendURL,
}
}
// Name implements module.AppModule
func (AppModule) Name() string {
return ModuleName
}
// RegisterInvariants implements module.AppModule
func (am AppModule) RegisterInvariants(ir types.InvariantRegistry) {}
// Route implements module.AppModule
func (am AppModule) Route() string {
return RouterKey
}
// NewHandler implements module.AppModule
func (am AppModule) NewHandler() types.Handler {
return NewHandler(am.keeper, "localhost:8989")
}
// QuerierRoute implements module.AppModule
func (am AppModule) QuerierRoute() string {
return ModuleName
}
// NewQuerierHandler implements module.AppModule
func (am AppModule) NewQuerierHandler() types.Querier {
return NewQuerier(am.keeper)
}
// BeginBlock implements module.AppModule
func (am AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock) {}
// EndBlock implements module.AppModule
func (am AppModule) EndBlock(sdk.Context, abci.RequestEndBlock) []abci.ValidatorUpdate {
return []abci.ValidatorUpdate{}
}
// InitGenesis implements module.AppModule
func (am AppModule) InitGenesis(ctx types.Context, data json.RawMessage) []abci.ValidatorUpdate {
var genesisState GenesisState
moduleCdc.MustUnmarshalJSON(data, &genesisState)
return InitGenesis(ctx, am.keeper, genesisState)
}
// ExportGenesis implements module.AppModule
func (am AppModule) ExportGenesis(ctx types.Context) json.RawMessage {
gs := ExportGenesis(ctx, am.keeper)
return moduleCdc.MustMarshalJSON(gs)
}