code.vegaprotocol.io/vega@v0.79.0/cmd/vega/commands/genesis/genesis.go (about)

     1  // Copyright (C) 2023 Gobalsky Labs Limited
     2  //
     3  // This program is free software: you can redistribute it and/or modify
     4  // it under the terms of the GNU Affero General Public License as
     5  // published by the Free Software Foundation, either version 3 of the
     6  // License, or (at your option) any later version.
     7  //
     8  // This program is distributed in the hope that it will be useful,
     9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    11  // GNU Affero General Public License for more details.
    12  //
    13  // You should have received a copy of the GNU Affero General Public License
    14  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    15  
    16  package genesis
    17  
    18  import (
    19  	"context"
    20  
    21  	"code.vegaprotocol.io/vega/core/config"
    22  
    23  	"github.com/jessevdk/go-flags"
    24  )
    25  
    26  type Cmd struct {
    27  	// Global options
    28  	config.VegaHomeFlag
    29  	config.PassphraseFlag
    30  
    31  	// Subcommands
    32  	Generate       generateCmd       `command:"generate"        description:"Generates the genesis file"`
    33  	Update         updateCmd         `command:"update"          description:"Update the genesis file with the app_state, useful if the genesis generation is not done using \"vega genesis generate\""`
    34  	LoadCheckpoint loadCheckpointCmd `command:"load_checkpoint" description:"Load the given checkpoint file in the genesis file"`
    35  }
    36  
    37  var genesisCmd Cmd
    38  
    39  func Genesis(ctx context.Context, parser *flags.Parser) error {
    40  	genesisCmd = Cmd{
    41  		Generate: generateCmd{
    42  			TmHome: "$HOME/.cometbft",
    43  		},
    44  		Update: updateCmd{
    45  			TmHome: "$HOME/.cometbft",
    46  		},
    47  		LoadCheckpoint: loadCheckpointCmd{
    48  			TmHome: "$HOME/.cometbft",
    49  		},
    50  	}
    51  
    52  	desc := "Manage the genesis file"
    53  	cmd, err := parser.AddCommand("genesis", desc, desc, &genesisCmd)
    54  	if err != nil {
    55  		return err
    56  	}
    57  	return initNewCmd(ctx, cmd)
    58  }