cmds

package
v0.0.0-...-bbac14e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 27, 2022 License: GPL-3.0 Imports: 45 Imported by: 1

Documentation

Overview

Package cmds provides command line tools.

Index

Constants

This section is empty.

Variables

View Source
var (
	Hinters []hint.Hinter
	Types   []hint.Type
)
View Source
var (
	GenesisAccountKey = "genesis_account"
	GenesisBalanceKey = "genesis_balance"
)
View Source
var (
	ProcessorDigestAPI      pm.Process
	ProcessorStartDigestAPI pm.Process
)
View Source
var (
	ProcessorDigester      pm.Process
	ProcessorStartDigester pm.Process
)
View Source
var BaseNodeCommandHooks = func(cmd *BaseNodeCommand) []pm.Hook {
	return []pm.Hook{
		pm.NewHook(pm.HookPrefixPost, process.ProcessNameEncoders,
			process.HookNameAddHinters, process.HookAddHinters(Types, Hinters)).
			SetOverride(true),
		pm.NewHook(pm.HookPrefixPost, process.ProcessNameConfig,
			"load_digest_config", cmd.hookLoadDigestConfig).
			SetOverride(true).
			SetDir(process.HookNameConfigGenesisOperations, pm.HookDirAfter),
		pm.NewHook(pm.HookPrefixPost, process.ProcessNameConfig,
			"validate_digest_config", cmd.hookValidateDigestConfig).
			SetOverride(true).
			SetDir(process.HookNameValidateConfig, pm.HookDirAfter),
		pm.NewHook(pm.HookPrefixPost, process.ProcessNameConfig,
			process.HookNameConfigVerbose, hookVerboseConfig).
			SetOverride(true),
	}
}
View Source
var InitCommandHooks = func(cmd *InitCommand) []pm.Hook {
	genesisOperationHandlers := map[string]process.HookHandlerGenesisOperations{
		"genesis-currencies": GenesisOperationsHandlerGenesisCurrencies,
	}

	for k, v := range process.DefaultHookHandlersGenesisOperations {
		genesisOperationHandlers[k] = v
	}

	return []pm.Hook{
		pm.NewHook(pm.HookPrefixPre, process.ProcessNameProposalProcessor,
			"initialize_proposal_processor", cmd.hookInitializeProposalProcessor).SetOverride(true),
		pm.NewHook(pm.HookPrefixPost, process.ProcessNameConfig,
			process.HookNameConfigGenesisOperations, process.HookGenesisOperationFunc(genesisOperationHandlers)).
			SetOverride(true),
	}
}
View Source
var ProcessorDigestDatabase pm.Process
View Source
var RunCommandHooks = func(cmd *RunCommand) []pm.Hook {
	return []pm.Hook{
		pm.NewHook(pm.HookPrefixPost, process.ProcessNameDatabase,
			"set_database", HookLoadCurrencies).SetOverride(true),
		pm.NewHook(pm.HookPrefixPost, process.ProcessNameNetwork,
			"set_currency_network_handlers", cmd.hookSetNetworkHandlers).SetOverride(true),
		pm.NewHook(pm.HookPrefixPre, process.ProcessNameProposalProcessor,
			"initialize_proposal_processor", HookInitializeProposalProcessor).SetOverride(true),
		pm.NewHook(pm.HookPrefixPost, currencycmds.ProcessNameDigestAPI,
			"set_digest_api_handlers", cmd.hookDigestAPIHandlers).SetOverride(true),
		pm.NewHook(pm.HookPrefixPost, currencycmds.ProcessNameDigester,
			"set_state_handler", cmd.hookSetStateHandler).SetOverride(true),
		pm.NewHook(pm.HookPrefixPost, currencycmds.ProcessNameDigester,
			currencycmds.HookNameDigesterFollowUp, HookDigesterFollowUp).SetOverride(true),
		pm.NewHook(pm.HookPrefixPre, currencycmds.ProcessNameDigestAPI,
			currencycmds.HookNameSetLocalChannel, currencycmds.HookSetLocalChannel).SetOverride(true),
	}
}
View Source
var SendVars = kong.Vars{
	"node_url": "quic://localhost:54321",
}

Functions

func AttachProposalProcessor

func AttachProposalProcessor(
	policy *isaac.LocalPolicy,
	nodepool *network.Nodepool,
	suffrage base.Suffrage,
	cp *extensioncurrency.CurrencyPool,
) (*operation.OperationProcessor, error)

func GenesisOperationsHandlerGenesisCurrencies

func GenesisOperationsHandlerGenesisCurrencies(
	ctx context.Context,
	m map[string]interface{},
) (operation.Operation, error)

func HookDigesterFollowUp

func HookDigesterFollowUp(ctx context.Context) (context.Context, error)

func HookInitializeProposalProcessor

func HookInitializeProposalProcessor(ctx context.Context) (context.Context, error)

func HookLoadCurrencies

func HookLoadCurrencies(ctx context.Context) (context.Context, error)

func InitializeProposalProcessor

func InitializeProposalProcessor(ctx context.Context, opr *operation.OperationProcessor) (context.Context, error)

func LoadCurrencyPoolContextValue

func LoadCurrencyPoolContextValue(ctx context.Context, l **extensioncurrency.CurrencyPool) error

func LoadDigestDatabaseContextValue

func LoadDigestDatabaseContextValue(ctx context.Context, l **digest.Database) error

func LoadDigesterContextValue

func LoadDigesterContextValue(ctx context.Context, l **digest.Digester) error

func LoadSeal

func LoadSeal(b []byte, networkID base.NetworkID) (seal.Seal, error)

func LoadSealAndAddOperation

func LoadSealAndAddOperation(
	b []byte,
	privatekey key.Privatekey,
	networkID base.NetworkID,
	op operation.Operation,
) (operation.Seal, error)

func PrettyPrint

func PrettyPrint(out io.Writer, pretty bool, i interface{})

func ProcessDigestAPI

func ProcessDigestAPI(ctx context.Context) (context.Context, error)

func ProcessDigestDatabase

func ProcessDigestDatabase(ctx context.Context) (context.Context, error)

func ProcessDigester

func ProcessDigester(ctx context.Context) (context.Context, error)

func ProcessStartDigestAPI

func ProcessStartDigestAPI(ctx context.Context) (context.Context, error)

func ProcessStartDigester

func ProcessStartDigester(ctx context.Context) (context.Context, error)

Types

type AddressFlag

type AddressFlag struct {
	// contains filtered or unexported fields
}

func (*AddressFlag) Encode

func (v *AddressFlag) Encode(enc encoder.Encoder) (base.Address, error)

func (*AddressFlag) String

func (v *AddressFlag) String() string

func (*AddressFlag) UnmarshalText

func (v *AddressFlag) UnmarshalText(b []byte) error

type BaseCommand

type BaseCommand struct {
	*mitumcmds.BaseCommand
	Out io.Writer `kong:"-"`
}

func NewBaseCommand

func NewBaseCommand(name string) *BaseCommand

type BaseNodeCommand

type BaseNodeCommand struct {
	*logging.Logging
}

func NewBaseNodeCommand

func NewBaseNodeCommand(l *logging.Logging) *BaseNodeCommand

func (*BaseNodeCommand) BaseProcesses

func (cmd *BaseNodeCommand) BaseProcesses(ps *pm.Processes) (*pm.Processes, error)

type CleanByHeightStorageCommand

type CleanByHeightStorageCommand struct {
	*mitumcmds.CleanByHeightStorageCommand
	*BaseNodeCommand
}

type CleanStorageCommand

type CleanStorageCommand struct {
	*mitumcmds.CleanStorageCommand
	*BaseNodeCommand
}

type ContractIDFlag

type ContractIDFlag struct {
	ID extensioncurrency.ContractID
}

func (*ContractIDFlag) String

func (v *ContractIDFlag) String() string

func (*ContractIDFlag) UnmarshalText

func (v *ContractIDFlag) UnmarshalText(b []byte) error

type CreateContractAccountCommand

type CreateContractAccountCommand struct {
	*BaseCommand
	OperationFlags
	Sender    AddressFlag                       `arg:"" name:"sender" help:"sender address" required:"true"`
	Threshold uint                              `help:"threshold for keys (default: ${create_account_threshold})" default:"${create_account_threshold}"` // nolint
	Keys      []currencycmds.KeyFlag            `name:"key" help:"key for new account (ex: \"<public key>,<weight>\")" sep:"@"`
	Seal      mitumcmds.FileLoad                `help:"seal" optional:""`
	Amounts   []currencycmds.CurrencyAmountFlag `arg:"" name:"currency-amount" help:"amount (ex: \"<currency>,<amount>\")"`
	// contains filtered or unexported fields
}

func NewCreateContractAccountCommand

func NewCreateContractAccountCommand() CreateContractAccountCommand

func (*CreateContractAccountCommand) Run

func (cmd *CreateContractAccountCommand) Run(version util.Version) error

type CurrencyDesign

type CurrencyDesign struct {
	CurrencyString             *string         `yaml:"currency"`
	BalanceString              *string         `yaml:"balance"`
	NewAccountMinBalanceString *string         `yaml:"new-account-min-balance"`
	Feeer                      *FeeerDesign    `yaml:"feeer"`
	Balance                    currency.Amount `yaml:"-"`
	NewAccountMinBalance       currency.Big    `yaml:"-"`
}

func (*CurrencyDesign) IsValid

func (de *CurrencyDesign) IsValid([]byte) error

type CurrencyDesignFlags

type CurrencyDesignFlags struct {
	Currency                currencycmds.CurrencyIDFlag `arg:"" name:"currency-id" help:"currency id" required:"true"`
	GenesisAmount           currencycmds.BigFlag        `arg:"" name:"genesis-amount" help:"genesis amount" required:"true"`
	GenesisAccount          AddressFlag                 `arg:"" name:"genesis-account" help:"genesis-account address for genesis balance" required:"true"` // nolint lll
	CurrencyPolicyFlags     `prefix:"policy-" help:"currency policy" required:"true"`
	FeeerString             string `name:"feeer" help:"feeer type, {nil, fixed, ratio}" required:"true"`
	CurrencyFixedFeeerFlags `prefix:"feeer-fixed-" help:"fixed feeer"`
	CurrencyRatioFeeerFlags `prefix:"feeer-ratio-" help:"ratio feeer"`
	// contains filtered or unexported fields
}

func (*CurrencyDesignFlags) CurrencyDesign

func (*CurrencyDesignFlags) IsValid

func (fl *CurrencyDesignFlags) IsValid([]byte) error

type CurrencyFixedFeeerFlags

type CurrencyFixedFeeerFlags struct {
	Receiver          AddressFlag          `name:"receiver" help:"fee receiver account address"`
	Amount            currencycmds.BigFlag `name:"amount" help:"fee amount"`
	ExchangeMinAmount currencycmds.BigFlag `name:"exchange-min-amount" help:"exchange fee amount"`
	// contains filtered or unexported fields
}

func (*CurrencyFixedFeeerFlags) Feeer

func (*CurrencyFixedFeeerFlags) IsValid

func (fl *CurrencyFixedFeeerFlags) IsValid([]byte) error

type CurrencyPolicyFlags

type CurrencyPolicyFlags struct {
	NewAccountMinBalance currencycmds.BigFlag `name:"new-account-min-balance" help:"minimum balance for new account"` // nolint lll
}

func (*CurrencyPolicyFlags) IsValid

func (*CurrencyPolicyFlags) IsValid([]byte) error

type CurrencyPolicyUpdaterCommand

type CurrencyPolicyUpdaterCommand struct {
	*BaseCommand
	OperationFlags
	Currency                currencycmds.CurrencyIDFlag `arg:"" name:"currency-id" help:"currency id" required:"true"`
	CurrencyPolicyFlags     `prefix:"policy-" help:"currency policy" required:"true"`
	FeeerString             string `name:"feeer" help:"feeer type, {nil, fixed, ratio}" required:"true"`
	CurrencyFixedFeeerFlags `prefix:"feeer-fixed-" help:"fixed feeer"`
	CurrencyRatioFeeerFlags `prefix:"feeer-ratio-" help:"ratio feeer"`
	// contains filtered or unexported fields
}

func NewCurrencyPolicyUpdaterCommand

func NewCurrencyPolicyUpdaterCommand() CurrencyPolicyUpdaterCommand

func (*CurrencyPolicyUpdaterCommand) Run

func (cmd *CurrencyPolicyUpdaterCommand) Run(version util.Version) error

type CurrencyRatioFeeerFlags

type CurrencyRatioFeeerFlags struct {
	Receiver          AddressFlag          `name:"receiver" help:"fee receiver account address"`
	Ratio             float64              `name:"ratio" help:"fee ratio, multifly by operation amount"`
	Min               currencycmds.BigFlag `name:"min" help:"minimum fee"`
	Max               currencycmds.BigFlag `name:"max" help:"maximum fee"`
	ExchangeMinAmount currencycmds.BigFlag `name:"exchange-min-amount" help:"exchange fee amount"`
	// contains filtered or unexported fields
}

func (*CurrencyRatioFeeerFlags) Feeer

func (*CurrencyRatioFeeerFlags) IsValid

func (fl *CurrencyRatioFeeerFlags) IsValid([]byte) error

type CurrencyRegisterCommand

type CurrencyRegisterCommand struct {
	*BaseCommand
	OperationFlags
	CurrencyDesignFlags
}

func NewCurrencyRegisterCommand

func NewCurrencyRegisterCommand() CurrencyRegisterCommand

func (*CurrencyRegisterCommand) Run

func (cmd *CurrencyRegisterCommand) Run(version util.Version) error

type FeeerDesign

type FeeerDesign struct {
	Type   string
	Extras map[string]interface{} `yaml:",inline"`
}

FeeerDesign is used for genesis currencies and naturally it's receiver is genesis account

func (*FeeerDesign) IsValid

func (no *FeeerDesign) IsValid([]byte) error

type GenesisCurrenciesDesign

type GenesisCurrenciesDesign struct {
	AccountKeys *currencycmds.AccountKeysDesign `yaml:"account-keys"`
	Currencies  []*CurrencyDesign               `yaml:"currencies"`
}

func (*GenesisCurrenciesDesign) IsValid

func (de *GenesisCurrenciesDesign) IsValid([]byte) error

type InitCommand

type InitCommand struct {
	*BaseNodeCommand
	*mitumcmds.InitCommand
}

func NewInitCommand

func NewInitCommand(dryrun bool) (InitCommand, error)

type NodeCommand

type NodeCommand struct {
	Init          InitCommand                    `cmd:"" help:"initialize node"`
	Run           RunCommand                     `cmd:"" help:"run node"`
	Info          currencycmds.NodeInfoCommand   `cmd:"" help:"node information"`
	StartHandover mitumcmds.StartHandoverCommand `cmd:"" name:"start-handover" help:"start handover"`
}

func NewNodeCommand

func NewNodeCommand() (NodeCommand, error)

type OperationFlags

type OperationFlags struct {
	Privatekey currencycmds.PrivatekeyFlag `arg:"" name:"privatekey" help:"privatekey to sign operation" required:"true"`
	Token      string                      `help:"token for operation" optional:""`
	NetworkID  mitumcmds.NetworkIDFlag     `name:"network-id" help:"network-id" required:"true"`
	Memo       string                      `name:"memo" help:"memo"`
	Pretty     bool                        `name:"pretty" help:"pretty format"`
}

func (*OperationFlags) IsValid

func (op *OperationFlags) IsValid([]byte) error

type RunCommand

type RunCommand struct {
	*mitumcmds.RunCommand
	*BaseNodeCommand
}

func NewRunCommand

func NewRunCommand(dryrun bool) (RunCommand, error)

type SealCommand

type SealCommand struct {
	Send                  SendCommand                           `cmd:"" name:"send" help:"send seal to remote mitum node"`
	CreateAccount         currencycmds.CreateAccountCommand     `cmd:"" name:"create-account" help:"create new account"`
	CreateContractAccount CreateContractAccountCommand          `cmd:"" name:"create-contract-account" help:"create new contract account"`
	Withdraw              WithdrawCommand                       `cmd:"" name:"withdraw" help:"withdraw contract account"`
	Transfer              currencycmds.TransferCommand          `cmd:"" name:"transfer" help:"transfer big"`
	KeyUpdater            currencycmds.KeyUpdaterCommand        `cmd:"" name:"key-updater" help:"update keys"`
	CurrencyRegister      CurrencyRegisterCommand               `cmd:"" name:"currency-register" help:"register new currency"`
	CurrencyPolicyUpdater CurrencyPolicyUpdaterCommand          `cmd:"" name:"currency-policy-updater" help:"update currency policy"`  // revive:disable-line:line-length-limit
	SuffrageInflation     currencycmds.SuffrageInflationCommand `cmd:"" name:"suffrage-inflation" help:"suffrage inflation operation"` // revive:disable-line:line-length-limit
	Sign                  currencycmds.SignSealCommand          `cmd:"" name:"sign" help:"sign seal"`
	SignFact              currencycmds.SignFactCommand          `cmd:"" name:"sign-fact" help:"sign facts of operation seal"`
}

func NewSealCommand

func NewSealCommand() SealCommand

type SendCommand

type SendCommand struct {
	*BaseCommand
	URL        []*url.URL                  `name:"node" help:"remote mitum url (default: ${node_url})" default:"${node_url}"` // nolint
	NetworkID  mitumcmds.NetworkIDFlag     `name:"network-id" help:"network-id" `
	Seal       mitumcmds.FileLoad          `help:"seal" optional:""`
	DryRun     bool                        `help:"dry-run, print operation" optional:"" default:"false"`
	Pretty     bool                        `name:"pretty" help:"pretty format"`
	Privatekey currencycmds.PrivatekeyFlag `arg:"" name:"privatekey" help:"privatekey for sign"`
	Timeout    time.Duration               `name:"timeout" help:"timeout; default: 5s"`
	TLSInscure bool                        `name:"tls-insecure" help:"allow inseucre TLS connection; default is false"`
	From       string                      `name:"from" help:"from conninfo; default is empty"`
}

func NewSendCommand

func NewSendCommand() SendCommand

func (*SendCommand) Run

func (cmd *SendCommand) Run(version util.Version) error

type StorageCommand

type StorageCommand struct {
	Download                    mitumcmds.BlockDownloadCommand    `cmd:"" name:"download" help:"download block data"`
	BlockdataVerify             mitumcmds.BlockdataVerifyCommand  `cmd:"" name:"verify-blockdata" help:"verify block data"` // revive:disable-line:line-length-limit
	DatabaseVerify              mitumcmds.DatabaseVerifyCommand   `cmd:"" name:"verify-database" help:"verify database"`    // revive:disable-line:line-length-limit
	CleanStorage                CleanStorageCommand               `cmd:"" name:"clean" help:"clean storage"`
	CleanByHeightStorageCommand CleanByHeightStorageCommand       `cmd:"" name:"clean-by-height" help:"clean storage by height"` // revive:disable-line:line-length-limit
	Restore                     restoreCommand                    `cmd:"" help:"restore blocks from blockdata"`
	SetBlockdataMaps            mitumcmds.SetBlockdataMapsCommand `cmd:"" name:"set-blockdatamaps" help:"set blockdatamaps"` // revive:disable-line:line-length-limit
}

func NewStorageCommand

func NewStorageCommand() (StorageCommand, error)

type WithdrawCommand

type WithdrawCommand struct {
	*BaseCommand
	OperationFlags
	Sender  AddressFlag                       `arg:"" name:"sender" help:"sender address" required:"true"`
	Target  AddressFlag                       `arg:"" name:"target" help:"target contract account address" required:"true"`
	Seal    mitumcmds.FileLoad                `help:"seal" optional:""`
	Amounts []currencycmds.CurrencyAmountFlag `arg:"" name:"currency-amount" help:"amount (ex: \"<currency>,<amount>\")"`
	// contains filtered or unexported fields
}

func NewWithdrawCommand

func NewWithdrawCommand() WithdrawCommand

func (*WithdrawCommand) Run

func (cmd *WithdrawCommand) Run(version util.Version) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL