@@ -86,31 +86,31 @@ import (
8686 ibchost "github.com/cosmos/ibc-go/v3/modules/core/24-host"
8787 ibckeeper "github.com/cosmos/ibc-go/v3/modules/core/keeper"
8888 "github.com/prometheus/client_golang/prometheus"
89+ "github.com/ignite-hq/cli/ignite/pkg/openapiconsole"
8990 "github.com/spf13/cast"
9091 abci "github.com/tendermint/tendermint/abci/types"
9192 tmjson "github.com/tendermint/tendermint/libs/json"
9293 "github.com/tendermint/tendermint/libs/log"
9394 tmos "github.com/tendermint/tendermint/libs/os"
9495 dbm "github.com/tendermint/tm-db"
9596
96- "github.com/tendermint/starport/starport/pkg/cosmoscmd"
97- "github.com/tendermint/starport/starport/pkg/openapiconsole"
97+ encparams "github.com/windpowerstake/cerberus/app/params"
9898
99- "github.com/cerberus-zone/cerberus/docs"
100- // this line is used by starport scaffolding # stargate/app/moduleImport
99+ "github.com/windpowerstake/cerberus/docs"
101100
102101 "github.com/CosmWasm/wasmd/x/wasm"
103102 wasmclient "github.com/CosmWasm/wasmd/x/wasm/client"
104103 wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
105104)
106105
107106const (
107+ Bech32Prefix = "cerberus"
108108 AccountAddressPrefix = "cerberus"
109109 Name = "cerberus"
110- v2UpgradeName = "cerbywasm"
110+ v3UpgradeName = "chimera"
111+ NodeDir = ".cerberus"
111112)
112113
113- // this line is used by starport scaffolding # stargate/wasm/app/enabledProposals
114114var (
115115 // If EnabledSpecificProposals is "", and this is "true", then enable all x/wasm proposals.
116116 // If EnabledSpecificProposals is "", and this is not "true", then disable all x/wasm proposals.
@@ -119,8 +119,32 @@ var (
119119 // of "EnableAllProposals" (takes precedence over ProposalsEnabled)
120120 // https://github.com/CosmWasm/wasmd/blob/02a54d33ff2c064f3539ae12d75d027d9c665f05/x/wasm/internal/types/proposal.go#L28-L34
121121 EnableSpecificProposals = "StoreCode,InstantiateContract,MigrateContract,SudoContract,ExecuteContract,UpdateAdmin,ClearAdmin,PinCodes,UnpinCodes,UpdateInstantiateConfig"
122+
123+
124+ // These constants are derived from the above variables.
125+ // These are the ones we will want to use in the code, based on
126+ // any overrides above
127+
128+ // DefaultNodeHome default home directories for Cerberus
129+ DefaultNodeHome = os .ExpandEnv ("$HOME/" ) + NodeDir
130+
131+ // Bech32PrefixAccAddr defines the Bech32 prefix of an account's address
132+ Bech32PrefixAccAddr = Bech32Prefix
133+ // Bech32PrefixAccPub defines the Bech32 prefix of an account's public key
134+ Bech32PrefixAccPub = Bech32Prefix + sdk .PrefixPublic
135+ // Bech32PrefixValAddr defines the Bech32 prefix of a validator's operator address
136+ Bech32PrefixValAddr = Bech32Prefix + sdk .PrefixValidator + sdk .PrefixOperator
137+ // Bech32PrefixValPub defines the Bech32 prefix of a validator's operator public key
138+ Bech32PrefixValPub = Bech32Prefix + sdk .PrefixValidator + sdk .PrefixOperator + sdk .PrefixPublic
139+ // Bech32PrefixConsAddr defines the Bech32 prefix of a consensus node address
140+ Bech32PrefixConsAddr = Bech32Prefix + sdk .PrefixValidator + sdk .PrefixConsensus
141+ // Bech32PrefixConsPub defines the Bech32 prefix of a consensus node public key
142+ Bech32PrefixConsPub = Bech32Prefix + sdk .PrefixValidator + sdk .PrefixConsensus + sdk .PrefixPublic
143+
122144)
123145
146+ // GetEnabledProposals parses the ProposalsEnabled / EnableSpecificProposals values to
147+ // produce a list of enabled proposals to pass into wasmd app.
124148func GetEnabledProposals () []wasm.ProposalType {
125149 if EnableSpecificProposals == "" {
126150 if ProposalsEnabled == "true" {
@@ -149,7 +173,6 @@ func GetWasmOpts(appOpts servertypes.AppOptions) []wasm.Option {
149173
150174func getGovProposalHandlers () []govclient.ProposalHandler {
151175 var govProposalHandlers []govclient.ProposalHandler
152- // this line is used by starport scaffolding # stargate/app/govProposalHandlers
153176
154177 govProposalHandlers = wasmclient .ProposalHandlers
155178
@@ -160,15 +183,16 @@ func getGovProposalHandlers() []govclient.ProposalHandler {
160183 upgradeclient .CancelProposalHandler ,
161184 ibcclientclient .UpdateClientProposalHandler ,
162185 ibcclientclient .UpgradeProposalHandler ,
163- // this line is used by starport scaffolding # stargate/app/govProposalHandler
186+
164187 )
165188
166189 return govProposalHandlers
167190}
168191
192+ // These constants are derived from the above variables.
193+ // These are the ones we will want to use in the code, based on
194+ // any overrides above
169195var (
170- // DefaultNodeHome default home directories for the application daemon
171- DefaultNodeHome string
172196
173197 // ModuleBasics defines the module BasicManager is in charge of setting up basic,
174198 // non-dependant module elements, such as codec registration
@@ -192,7 +216,7 @@ var (
192216 evidence.AppModuleBasic {},
193217 transfer.AppModuleBasic {},
194218 vesting.AppModuleBasic {},
195- // this line is used by starport scaffolding # stargate/app/moduleBasic
219+
196220 wasm.AppModuleBasic {},
197221 )
198222
@@ -205,26 +229,16 @@ var (
205229 stakingtypes .NotBondedPoolName : {authtypes .Burner , authtypes .Staking },
206230 govtypes .ModuleName : {authtypes .Burner },
207231 ibctransfertypes .ModuleName : {authtypes .Minter , authtypes .Burner },
208- // this line is used by starport scaffolding # stargate/app/maccPerms
232+
209233 wasm .ModuleName : {authtypes .Burner },
210234 }
211235)
212236
213237var (
214- _ cosmoscmd.App = (* App )(nil )
215- _ servertypes.Application = (* App )(nil )
216238 _ simapp.App = (* App )(nil )
239+ _ servertypes.Application = (* App )(nil )
217240)
218241
219- func init () {
220- userHomeDir , err := os .UserHomeDir ()
221- if err != nil {
222- panic (err )
223- }
224-
225- DefaultNodeHome = filepath .Join (userHomeDir , "." + Name )
226- }
227-
228242// App extends an ABCI application, but with most of its parameters exported.
229243// They are exported for convenience in creating helper functions, as object
230244// capabilities aren't needed for testing.
@@ -235,6 +249,8 @@ type App struct {
235249 appCodec codec.Codec
236250 interfaceRegistry types.InterfaceRegistry
237251
252+ configurator module.Configurator
253+
238254 invCheckPeriod uint
239255
240256 // keys to access the substores
@@ -264,7 +280,7 @@ type App struct {
264280 ScopedIBCKeeper capabilitykeeper.ScopedKeeper
265281 ScopedTransferKeeper capabilitykeeper.ScopedKeeper
266282
267- // this line is used by starport scaffolding # stargate/app/keeperDeclaration
283+
268284
269285 wasmKeeper wasm.Keeper
270286 scopedWasmKeeper capabilitykeeper.ScopedKeeper
@@ -285,10 +301,12 @@ func New(
285301 skipUpgradeHeights map [int64 ]bool ,
286302 homePath string ,
287303 invCheckPeriod uint ,
288- encodingConfig cosmoscmd.EncodingConfig ,
304+ encodingConfig encparams.EncodingConfig ,
305+ enabledProposals []wasm.ProposalType ,
289306 appOpts servertypes.AppOptions ,
307+ wasmOpts []wasm.Option ,
290308 baseAppOptions ... func (* baseapp.BaseApp ),
291- ) cosmoscmd. App {
309+ ) * App {
292310 appCodec := encodingConfig .Marshaler
293311 cdc := encodingConfig .Amino
294312 interfaceRegistry := encodingConfig .InterfaceRegistry
@@ -303,7 +321,7 @@ func New(
303321 minttypes .StoreKey , distrtypes .StoreKey , slashingtypes .StoreKey ,
304322 govtypes .StoreKey , paramstypes .StoreKey , ibchost .StoreKey , upgradetypes .StoreKey , feegrant .StoreKey ,
305323 evidencetypes .StoreKey , ibctransfertypes .StoreKey , capabilitytypes .StoreKey , authzkeeper .StoreKey ,
306- // this line is used by starport scaffolding # stargate/app/storeKey
324+
307325 wasm .StoreKey ,
308326 )
309327 tkeys := sdk .NewTransientStoreKeys (paramstypes .TStoreKey )
@@ -331,7 +349,7 @@ func New(
331349 // grant capabilities for the ibc and ibc-transfer modules
332350 scopedIBCKeeper := app .CapabilityKeeper .ScopeToModule (ibchost .ModuleName )
333351 scopedTransferKeeper := app .CapabilityKeeper .ScopeToModule (ibctransfertypes .ModuleName )
334- // this line is used by starport scaffolding # stargate/app/scopedKeeper
352+
335353
336354 scopedWasmKeeper := app .CapabilityKeeper .ScopeToModule (wasm .ModuleName )
337355
@@ -406,7 +424,7 @@ func New(
406424 // If evidence needs to be handled for the app, set routes in router here and seal
407425 app .EvidenceKeeper = * evidenceKeeper
408426
409- // this line is used by starport scaffolding # stargate/app/keeperDefinition
427+
410428 wasmDir := filepath .Join (homePath , "data" )
411429
412430 wasmConfig , err := wasm .ReadWasmConfig (appOpts )
@@ -417,7 +435,6 @@ func New(
417435 // The last arguments can contain custom message handlers, and custom query handlers,
418436 // if we want to allow any custom callbacks
419437 supportedFeatures := "iterator,staking,stargate"
420- wasmOpts := GetWasmOpts (appOpts )
421438 app .wasmKeeper = wasm .NewKeeper (
422439 appCodec ,
423440 keys [wasm .StoreKey ],
@@ -438,8 +455,10 @@ func New(
438455 wasmOpts ... ,
439456 )
440457
441- enabledProposals := GetEnabledProposals ()
458+ // enabledProposals := GetEnabledProposals()
442459
460+ // register wasm gov proposal types
461+ // The gov proposal types can be individually enabled
443462 if len (enabledProposals ) != 0 {
444463 govRouter .AddRoute (wasm .RouterKey , wasm .NewWasmProposalHandler (app .wasmKeeper , enabledProposals ))
445464 }
@@ -449,12 +468,11 @@ func New(
449468 & stakingKeeper , govRouter ,
450469 )
451470
452- // this line is used by starport scaffolding # stargate/app/keeperDefinition
471+
453472
454473 // Create static IBC router, add transfer route, then set and seal it
455474 ibcRouter := ibcporttypes .NewRouter ()
456475 ibcRouter .AddRoute (ibctransfertypes .ModuleName , transferIBCModule )
457- // this line is used by starport scaffolding # ibc/app/router
458476 ibcRouter .AddRoute (wasm .ModuleName , wasm .NewIBCHandler (app .wasmKeeper , app .IBCKeeper .ChannelKeeper ))
459477 app .IBCKeeper .SetRouter (ibcRouter )
460478
@@ -489,7 +507,7 @@ func New(
489507 ibc .NewAppModule (app .IBCKeeper ),
490508 params .NewAppModule (app .ParamsKeeper ),
491509 transferModule ,
492- // this line is used by starport scaffolding # stargate/app/appModule
510+
493511 wasm .NewAppModule (appCodec , & app .wasmKeeper , app .StakingKeeper , app .AccountKeeper , app .BankKeeper ),
494512 )
495513
@@ -566,16 +584,17 @@ func New(
566584 feegrant .ModuleName ,
567585 ibctransfertypes .ModuleName ,
568586 authz .ModuleName ,
569- // this line is used by starport scaffolding # stargate/app/
587+
570588 wasm .ModuleName ,
571589 )
572590
573591 app .mm .RegisterInvariants (& app .CrisisKeeper )
574592 app .mm .RegisterRoutes (app .Router (), app .QueryRouter (), encodingConfig .Amino )
575- app .mm .RegisterServices (module .NewConfigurator (app .appCodec , app .MsgServiceRouter (), app .GRPCQueryRouter ()))
593+ app .configurator = module .NewConfigurator (app .appCodec , app .MsgServiceRouter (), app .GRPCQueryRouter ())
594+ app .mm .RegisterServices (app .configurator )
576595
577596 // upgrade handlers
578- app .RegisterUpgradeHandlers (module . NewConfigurator ( app .appCodec , app . MsgServiceRouter (), app . GRPCQueryRouter ()) )
597+ app .RegisterUpgradeHandlers (app .configurator )
579598
580599 // create the simulation manager and define the order of the modules for deterministic simulations
581600 app .sm = module .NewSimulationManager (
@@ -594,7 +613,7 @@ func New(
594613 ibc .NewAppModule (app .IBCKeeper ),
595614 params .NewAppModule (app .ParamsKeeper ),
596615 transferModule ,
597- // this line is used by starport scaffolding # stargate/app/appModule
616+
598617 wasm .NewAppModule (appCodec , & app .wasmKeeper , app .StakingKeeper , app .AccountKeeper , app .BankKeeper ),
599618 )
600619 app .sm .RegisterStoreDecoders ()
@@ -635,9 +654,9 @@ func New(
635654 panic (err )
636655 }
637656
638- if upgradeInfo .Name == v2UpgradeName && ! app .UpgradeKeeper .IsSkipHeight (upgradeInfo .Height ) {
657+ if upgradeInfo .Name == v3UpgradeName && ! app .UpgradeKeeper .IsSkipHeight (upgradeInfo .Height ) {
639658 storeUpgrades := store.StoreUpgrades {
640- Added : []string {wasm . ModuleName },
659+ Added : []string {},
641660 }
642661
643662 // configure store loader that checks if version == upgradeHeight and applies store upgrades
@@ -652,9 +671,37 @@ func New(
652671
653672 app .ScopedIBCKeeper = scopedIBCKeeper
654673 app .ScopedTransferKeeper = scopedTransferKeeper
655- // this line is used by starport scaffolding # stargate/app/beforeInitReturn
674+
656675
657676 app .scopedWasmKeeper = scopedWasmKeeper
677+
678+
679+ // create the simulation manager and define the order of the modules for deterministic simulations
680+ //
681+ // NOTE: this is not required apps that don't use the simulator for fuzz testing
682+ // transactions
683+ app .sm = module .NewSimulationManager (
684+ auth .NewAppModule (appCodec , app .AccountKeeper , authsims .RandomGenesisAccounts ),
685+ bank .NewAppModule (appCodec , app .BankKeeper , app .AccountKeeper ),
686+ capability .NewAppModule (appCodec , * app .CapabilityKeeper ),
687+ feegrantmodule .NewAppModule (appCodec , app .AccountKeeper , app .BankKeeper , app .FeeGrantKeeper , app .interfaceRegistry ),
688+ authzmodule .NewAppModule (appCodec , app .AuthzKeeper , app .AccountKeeper , app .BankKeeper , app .interfaceRegistry ),
689+ gov .NewAppModule (appCodec , app .GovKeeper , app .AccountKeeper , app .BankKeeper ),
690+ mint .NewAppModule (appCodec , app .MintKeeper , app .AccountKeeper ),
691+ staking .NewAppModule (appCodec , app .StakingKeeper , app .AccountKeeper , app .BankKeeper ),
692+ distr .NewAppModule (appCodec , app .DistrKeeper , app .AccountKeeper , app .BankKeeper , app .StakingKeeper ),
693+ slashing .NewAppModule (appCodec , app .SlashingKeeper , app .AccountKeeper , app .BankKeeper , app .StakingKeeper ),
694+ params .NewAppModule (app .ParamsKeeper ),
695+ evidence .NewAppModule (app .EvidenceKeeper ),
696+ wasm .NewAppModule (appCodec , & app .wasmKeeper , app .StakingKeeper , app .AccountKeeper , app .BankKeeper ),
697+ ibc .NewAppModule (app .IBCKeeper ),
698+ transferModule ,
699+ )
700+
701+ app .sm .RegisterStoreDecoders ()
702+
703+
704+
658705 return app
659706}
660707
@@ -782,19 +829,19 @@ func (app *App) RegisterTendermintService(clientCtx client.Context) {
782829
783830// RegisterUpgradeHandlers returns upgrade handlers
784831func (app * App ) RegisterUpgradeHandlers (cfg module.Configurator ) {
785- app .UpgradeKeeper .SetUpgradeHandler (v2UpgradeName ,
786- func (ctx sdk.Context , _ upgradetypes.Plan , fromVM module.VersionMap ) (module.VersionMap , error ) {
787- return app .mm .RunMigrations (ctx , cfg , fromVM )
832+ app .UpgradeKeeper .SetUpgradeHandler (v3UpgradeName ,func (ctx sdk.Context , plan upgradetypes.Plan , vm module.VersionMap ) (module.VersionMap , error ) {
833+
834+ return app .mm .RunMigrations (ctx , cfg , vm )
835+
788836 })
789- }
790837
838+ }
791839// GetMaccPerms returns a copy of the module account permissions
792840func GetMaccPerms () map [string ][]string {
793841 dupMaccPerms := make (map [string ][]string )
794842 for k , v := range maccPerms {
795843 dupMaccPerms [k ] = v
796844 }
797-
798845 return dupMaccPerms
799846}
800847
@@ -812,8 +859,8 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
812859 paramsKeeper .Subspace (crisistypes .ModuleName )
813860 paramsKeeper .Subspace (ibctransfertypes .ModuleName )
814861 paramsKeeper .Subspace (ibchost .ModuleName )
815- // this line is used by starport scaffolding # stargate/app/paramSubspace
816862 paramsKeeper .Subspace (wasm .ModuleName )
863+
817864 return paramsKeeper
818865}
819866
0 commit comments