Swap to general export command

This commit is contained in:
Christopher Goes
2018-04-27 20:02:26 -04:00
committed by rigelrozanski
parent 55c82e44a2
commit f92e83d2e0
9 changed files with 122 additions and 41 deletions
+16 -3
View File
@@ -36,6 +36,9 @@ type DemocoinApp struct {
capKeyIBCStore *sdk.KVStoreKey
capKeyStakingStore *sdk.KVStoreKey
// keepers
powKeeper pow.Keeper
// Manage getting and setting accounts
accountMapper sdk.AccountMapper
}
@@ -66,19 +69,19 @@ func NewDemocoinApp(logger log.Logger, db dbm.DB) *DemocoinApp {
// Add handlers.
coinKeeper := bank.NewKeeper(app.accountMapper)
coolKeeper := cool.NewKeeper(app.capKeyMainStore, coinKeeper, app.RegisterCodespace(cool.DefaultCodespace))
powKeeper := pow.NewKeeper(app.capKeyPowStore, pow.NewConfig("pow", int64(1)), coinKeeper, app.RegisterCodespace(pow.DefaultCodespace))
app.powKeeper = pow.NewKeeper(app.capKeyPowStore, pow.NewConfig("pow", int64(1)), coinKeeper, app.RegisterCodespace(pow.DefaultCodespace))
ibcMapper := ibc.NewMapper(app.cdc, app.capKeyIBCStore, app.RegisterCodespace(ibc.DefaultCodespace))
stakeKeeper := simplestake.NewKeeper(app.capKeyStakingStore, coinKeeper, app.RegisterCodespace(simplestake.DefaultCodespace))
app.Router().
AddRoute("bank", bank.NewHandler(coinKeeper)).
AddRoute("cool", cool.NewHandler(coolKeeper)).
AddRoute("pow", powKeeper.Handler).
AddRoute("pow", app.powKeeper.Handler).
AddRoute("sketchy", sketchy.NewHandler()).
AddRoute("ibc", ibc.NewHandler(ibcMapper, coinKeeper)).
AddRoute("simplestake", simplestake.NewHandler(stakeKeeper))
// Initialize BaseApp.
app.SetInitChainer(app.initChainerFn(coolKeeper, powKeeper))
app.SetInitChainer(app.initChainerFn(coolKeeper, app.powKeeper))
app.MountStoresIAVL(app.capKeyMainStore, app.capKeyAccountStore, app.capKeyPowStore, app.capKeyIBCStore, app.capKeyStakingStore)
app.SetAnteHandler(auth.NewAnteHandler(app.accountMapper, auth.BurnFeeHandler))
err := app.LoadLatestVersion(app.capKeyMainStore)
@@ -142,3 +145,13 @@ func (app *DemocoinApp) initChainerFn(coolKeeper cool.Keeper, powKeeper pow.Keep
return abci.ResponseInitChain{}
}
}
// Custom logic for state export
func (app *DemocoinApp) ExportGenesis() types.GenesisState {
ctx := app.NewContext(true, abci.Header{})
return types.GenesisState{
Accounts: []*types.GenesisAccount{},
POWGenesis: app.powKeeper.WriteGenesis(ctx),
CoolGenesis: cool.Genesis{},
}
}
+17 -1
View File
@@ -32,6 +32,12 @@ func CoolAppGenState(cdc *wire.Codec, appGenTxs []json.RawMessage) (appState jso
key := "cool"
value := json.RawMessage(`{
"trend": "ice-cold"
}`)
appState, err = server.AppendJSON(cdc, appState, key, value)
key = "pow"
value = json.RawMessage(`{
"difficulty": 1,
"count": 0
}`)
appState, err = server.AppendJSON(cdc, appState, key, value)
return
@@ -46,6 +52,16 @@ func generateApp(rootDir string, logger log.Logger) (abci.Application, error) {
return bapp, nil
}
func exportApp(rootDir string, logger log.Logger) (interface{}, *wire.Codec, error) {
dataDir := filepath.Join(rootDir, "data")
db, err := dbm.NewGoLevelDB("democoin", dataDir)
if err != nil {
return nil, nil, err
}
bapp := app.NewDemocoinApp(logger, db)
return bapp.ExportGenesis(), nil, nil
}
func main() {
cdc := app.MakeCodec()
ctx := server.NewDefaultContext()
@@ -56,7 +72,7 @@ func main() {
PersistentPreRunE: server.PersistentPreRunEFn(ctx),
}
server.AddCommands(ctx, cdc, rootCmd, CoolAppInit, generateApp)
server.AddCommands(ctx, cdc, rootCmd, CoolAppInit, generateApp, exportApp)
// prepare and add flags
rootDir := os.ExpandEnv("$HOME/.democoind")