88 "errors"
99 "os"
1010 "path/filepath"
11+ "strconv"
1112
1213 "github.com/fatih/color"
1314 "github.com/spf13/cobra"
2324 claimReward int64
2425 lifelineUnitReward int64
2526 beneficiaryReward int64
27+
28+ magic uint64
2629)
2730
2831func init () {
@@ -65,19 +68,30 @@ func init() {
6568}
6669
6770var genesisCmd = & cobra.Command {
68- Use : "genesis [options]" ,
71+ Use : "genesis [magic] [allocations file] [ options]" ,
6972 Short : "Creates a new genesis in the default location" ,
7073 PreRunE : func (cmd * cobra.Command , args []string ) error {
71- if len (args ) == 0 {
72- return errors .New ("missing allocations file" )
74+ if len (args ) != 2 {
75+ return errors .New ("invalid args" )
76+ }
77+
78+ m , err := strconv .ParseUint (args [0 ], 10 , 64 )
79+ if err != nil {
80+ return err
7381 }
82+ magic = m
83+ if magic == 0 {
84+ return chain .ErrInvalidMagic
85+ }
86+
7487 return nil
7588 },
7689 RunE : genesisFunc ,
7790}
7891
7992func genesisFunc (cmd * cobra.Command , args []string ) error {
8093 genesis := chain .DefaultGenesis ()
94+ genesis .Magic = magic
8195 if minPrice >= 0 {
8296 genesis .MinPrice = uint64 (minPrice )
8397 }
@@ -94,7 +108,7 @@ func genesisFunc(cmd *cobra.Command, args []string) error {
94108 genesis .BeneficiaryReward = uint64 (beneficiaryReward )
95109 }
96110
97- a , err := os .ReadFile (args [0 ])
111+ a , err := os .ReadFile (args [1 ])
98112 if err != nil {
99113 return err
100114 }
@@ -105,7 +119,7 @@ func genesisFunc(cmd *cobra.Command, args []string) error {
105119 // Store hash instead
106120 genesis .Allocations = allocs
107121
108- b , err := chain .Marshal (genesis )
122+ b , err := json .Marshal (genesis )
109123 if err != nil {
110124 return err
111125 }
0 commit comments