11package server
22
33import (
4- "encoding/json"
5- "errors"
64 "fmt"
75
8- "github.com/tendermint/tendermint/crypto"
9- dbm "github.com/tendermint/tendermint/libs/db"
10- "github.com/tendermint/tendermint/types"
11-
126 "github.com/cosmos/cosmos-sdk/crypto/keys"
137
14- tmtypes "github.com/tendermint/tendermint/types"
15-
168 clkeys "github.com/cosmos/cosmos-sdk/client/keys"
17- "github.com/cosmos/cosmos-sdk/codec"
189 sdk "github.com/cosmos/cosmos-sdk/types"
1910)
2011
21- // SimpleGenTx is a simple genesis tx
22- type SimpleGenTx struct {
23- Addr sdk.AccAddress `json:"addr"`
24- }
25-
26- //_____________________________________________________________________
27-
28- // Generate a genesis transaction
29- func SimpleAppGenTx (cdc * codec.Codec , pk crypto.PubKey ) (
30- appGenTx , cliPrint json.RawMessage , validator types.GenesisValidator , err error ) {
31- var addr sdk.AccAddress
32- var secret string
33- addr , secret , err = GenerateCoinKey ()
34- if err != nil {
35- return
36- }
37- var bz []byte
38- simpleGenTx := SimpleGenTx {Addr : addr }
39- bz , err = cdc .MarshalJSON (simpleGenTx )
40- if err != nil {
41- return
42- }
43- appGenTx = json .RawMessage (bz )
44- mm := map [string ]string {"secret" : secret }
45- bz , err = cdc .MarshalJSON (mm )
46- if err != nil {
47- return
48- }
49- cliPrint = json .RawMessage (bz )
50- validator = tmtypes.GenesisValidator {
51- PubKey : pk ,
52- Power : 10 ,
53- }
54- return
55- }
56-
57- // create the genesis app state
58- func SimpleAppGenState (cdc * codec.Codec , genDoc tmtypes.GenesisDoc , appGenTxs []json.RawMessage ) (
59- appState json.RawMessage , err error ) {
60-
61- if len (appGenTxs ) != 1 {
62- err = errors .New ("must provide a single genesis transaction" )
63- return
64- }
65-
66- var tx SimpleGenTx
67- err = cdc .UnmarshalJSON (appGenTxs [0 ], & tx )
68- if err != nil {
69- return
70- }
71-
72- appState = json .RawMessage (fmt .Sprintf (`{
73- "accounts": [{
74- "address": "%s",
75- "coins": [
76- {
77- "denom": "mycoin",
78- "amount": "9007199254740992"
79- }
80- ]
81- }]
82- }` , tx .Addr ))
83- return
84- }
85-
86- //___________________________________________________________________________________________
87-
8812// GenerateCoinKey returns the address of a public key, along with the secret
8913// phrase to recover the private key.
9014func GenerateCoinKey () (sdk.AccAddress , string , error ) {
9115
92- // construct an in-memory key store
93- keybase := keys .New (
94- dbm .NewMemDB (),
95- )
96-
9716 // generate a private key, with recovery phrase
98- info , secret , err := keybase .CreateMnemonic ("name" , keys .English , "pass" , keys .Secp256k1 )
17+ info , secret , err := clkeys .NewInMemoryKeyBase ().CreateMnemonic (
18+ "name" , keys .English , "pass" , keys .Secp256k1 )
9919 if err != nil {
10020 return sdk .AccAddress ([]byte {}), "" , err
10121 }
@@ -105,7 +25,8 @@ func GenerateCoinKey() (sdk.AccAddress, string, error) {
10525
10626// GenerateSaveCoinKey returns the address of a public key, along with the secret
10727// phrase to recover the private key.
108- func GenerateSaveCoinKey (clientRoot , keyName , keyPass string , overwrite bool ) (sdk.AccAddress , string , error ) {
28+ func GenerateSaveCoinKey (clientRoot , keyName , keyPass string ,
29+ overwrite bool ) (sdk.AccAddress , string , error ) {
10930
11031 // get the keystore from the client
11132 keybase , err := clkeys .NewKeyBaseFromDir (clientRoot )
@@ -127,6 +48,6 @@ func GenerateSaveCoinKey(clientRoot, keyName, keyPass string, overwrite bool) (s
12748 if err != nil {
12849 return sdk .AccAddress ([]byte {}), "" , err
12950 }
130- addr := info . GetPubKey (). Address ()
131- return sdk .AccAddress (addr ), secret , nil
51+
52+ return sdk .AccAddress (info . GetPubKey (). Address () ), secret , nil
13253}
0 commit comments