def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "network", "Get Network parameters, such as number of shards, chain identifier etc." ) subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "network", "num-shards", "Get the number of shards.") cli_shared.add_proxy_arg(sub) sub.set_defaults(func=get_num_shards) sub = cli_shared.add_command_subparser( subparsers, "network", "block-nonce", "Get the latest block nonce, by shard.") cli_shared.add_proxy_arg(sub) sub.add_argument("--shard", required=True, help="the shard ID (use 4294967295 for metachain)") sub.set_defaults(func=get_last_block_nonce) sub = cli_shared.add_command_subparser(subparsers, "network", "chain", "Get the chain identifier.") cli_shared.add_proxy_arg(sub) sub.set_defaults(func=get_chain_id) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "account", "Get Account data (nonce, balance) from the Network") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser( subparsers, "account", "get", "Query account details (nonce, balance etc.)") cli_shared.add_proxy_arg(sub) _add_address_arg(sub) mutex = sub.add_mutually_exclusive_group() mutex.add_argument("--balance", action="store_true", help="whether to only fetch the balance") mutex.add_argument("--nonce", action="store_true", help="whether to only fetch the nonce") mutex.add_argument("--username", action="store_true", help="whether to only fetch the username") cli_shared.add_omit_fields_arg(sub) sub.set_defaults(func=get_account) sub = cli_shared.add_command_subparser(subparsers, "account", "get-transactions", "Query account transactions") cli_shared.add_proxy_arg(sub) cli_shared.add_outfile_arg(sub) _add_address_arg(sub) sub.set_defaults(func=get_account_transactions) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "testnet", "Set up, start and control local testnets") subparsers = parser.add_subparsers() help_config_file = "An optional configuration file describing the testnet" # Prerequisites sub = cli_shared.add_command_subparser( subparsers, "testnet", "prerequisites", "Download and verify the prerequisites for running a testnet") sub.add_argument("--configfile", type=str, required=False, default=None, help=help_config_file) sub.set_defaults(func=testnet_prerequisites) # Start sub = cli_shared.add_command_subparser(subparsers, "testnet", "start", "Start a testnet") sub.add_argument("--configfile", type=str, required=False, default=None, help=help_config_file) sub.set_defaults(func=testnet_start) # Stop sub = cli_shared.add_command_subparser(subparsers, "testnet", "stop", "Stop a running testnet") sub.add_argument("--configfile", type=str, required=False, default=None, help=help_config_file) sub.set_defaults(func=testnet_stop) # Config sub = cli_shared.add_command_subparser( subparsers, "testnet", "config", "Configure a testnet (required before starting it the first time or after clean)" ) sub.add_argument("--configfile", type=str, required=False, default=None, help=help_config_file) sub.set_defaults(func=testnet_config) # Clean sub = cli_shared.add_command_subparser( subparsers, "testnet", "clean", "Erase the currently configured testnet (must be already stopped)") sub.add_argument("--configfile", type=str, required=False, default=None, help=help_config_file) sub.set_defaults(func=testnet_clean)
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "blockatlas", "Interact with an Block Atlas instance") subparsers = parser.add_subparsers() parser.add_argument("--url", required=True, help="🖧 URL of Block Atlas instance") parser.add_argument("--coin", required=True, help="coin identifier (e.g. erd, bnb)") sub = cli_shared.add_command_subparser( subparsers, "blockatlas", "current-block-number", "Get latest notarized metablock (number / nonce)") sub.set_defaults(func=blockatlas_get_current_block_number) sub = cli_shared.add_command_subparser(subparsers, "blockatlas", "block-by-number", "Get block by number (nonce)") sub.add_argument("--number", required=True, help="the number (nonce)") sub.set_defaults(func=blockatlas_get_block_by_number) sub = cli_shared.add_command_subparser(subparsers, "blockatlas", "transactions", "Get transactions by address") sub.add_argument("--address", required=True, help="🖄 the address to query") cli_shared.add_outfile_arg(sub) sub.set_defaults(func=blockatlas_get_txs_by_address) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "tx", "Create and broadcast Transactions") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "tx", "new", "Create a new transaction") _add_common_arguments(sub) cli_shared.add_outfile_arg(sub, what="signed transaction, hash") cli_shared.add_broadcast_args(sub, relay=True) cli_shared.add_proxy_arg(sub) sub.set_defaults(func=create_transaction) sub = cli_shared.add_command_subparser( subparsers, "tx", "send", "Send a previously saved transaction") cli_shared.add_infile_arg(sub, what="a previously saved transaction") cli_shared.add_outfile_arg(sub, what="the hash") cli_shared.add_proxy_arg(sub) sub.set_defaults(func=send_transaction) sub = cli_shared.add_command_subparser(subparsers, "tx", "get", "Get a transaction") sub.add_argument("--hash", required=True, help="the hash") sub.add_argument("--sender", required=False, help="the sender address") sub.add_argument("--with-results", action="store_true", help="will also return the results of transaction") cli_shared.add_proxy_arg(sub) cli_shared.add_omit_fields_arg(sub) sub.set_defaults(func=get_transaction) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "deps", "Manage dependencies or elrond-sdk modules") subparsers = parser.add_subparsers() choices = list(get_deps_dict().keys()) sub = cli_shared.add_command_subparser( subparsers, "deps", "install", "Install dependencies or elrond-sdk modules.") sub.add_argument("name", choices=choices, help="the dependency to install") sub.add_argument("--overwrite", action="store_true", default=False, help="whether to overwrite an existing installation") sub.add_argument("--tag", help="the tag or version to install") sub.set_defaults(func=install) sub = cli_shared.add_command_subparser( subparsers, "deps", "check", "Check whether a dependency is installed.") sub.add_argument("name", choices=choices, help="the dependency to check") sub.add_argument("--tag", help="the tag or version to check") sub.set_defaults(func=check) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "wallet", "Derive private key from mnemonic, bech32 address helpers etc." ) subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser( subparsers, "wallet", "derive", "Derive a PEM file from a mnemonic or generate a new PEM file (for tests only!)" ) sub.add_argument("pem", help="path of the output PEM file") sub.add_argument("--mnemonic", action="store_true", help="whether to derive from an existing mnemonic") sub.add_argument("--index", help="the account index", type=int, default=0) sub.set_defaults(func=generate_pem) sub = cli_shared.add_command_subparser( subparsers, "wallet", "bech32", "Helper for encoding and decoding bech32 addresses" ) sub.add_argument("value", help="the value to encode or decode") group = sub.add_mutually_exclusive_group(required=True) group.add_argument("--encode", action="store_true", help="whether to encode") group.add_argument("--decode", action="store_true", help="whether to decode") sub.set_defaults(func=do_bech32) sub = cli_shared.add_command_subparser( subparsers, "wallet", "pem-address", "Get the public address out of a PEM file as bech32" ) sub.add_argument("pem", help="path to the PEM file") sub.add_argument("--pem-index", default=0, help="🔑 the index in the PEM file (default: %(default)s)") sub.set_defaults(func=pem_address) sub = cli_shared.add_command_subparser( subparsers, "wallet", "pem-address-hex", "Get the public address out of a PEM file as hex" ) sub.add_argument("pem", help="path to the PEM file") sub.add_argument("--pem-index", default=0, help="🔑 the index in the PEM file (default: %(default)s)") sub.set_defaults(func=pem_address_hex) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser(subparsers, "hyperblock", "Get Hyperblock from the Network") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "hyperblock", "get", "Get hyperblock") cli_shared.add_proxy_arg(sub) sub.add_argument("--key", required=True, help="the hash or the nonce of the hyperblock") sub.set_defaults(func=get_hyperblock)
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "validator", "Stake, Unjail and other actions useful for " "Validators") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "validator", "stake", "Stake value into the Network") _add_common_arguments(sub) sub.add_argument("--reward-address", default="", help="the reward address") sub.add_argument("--validators-file", required=True, help="a JSON file describing the Nodes") sub.set_defaults(func=do_stake) sub = cli_shared.add_command_subparser(subparsers, "validator", "unstake", "Unstake value") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_unstake) sub = cli_shared.add_command_subparser(subparsers, "validator", "unjail", "Unjail a Validator Node") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_unjail) sub = cli_shared.add_command_subparser(subparsers, "validator", "unbond", "Unbond") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_unbond) sub = cli_shared.add_command_subparser(subparsers, "validator", "change-reward-address", "Change the reward address") _add_common_arguments(sub) sub.add_argument("--reward-address", required=True, help="the new reward address") sub.set_defaults(func=change_reward_address) sub = cli_shared.add_command_subparser(subparsers, "validator", "claim", "Claim rewards") _add_common_arguments(sub) sub.set_defaults(func=do_claim) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser(subparsers, "cost", "Estimate cost of Transactions") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "cost", "gas-price", "Query minimum gas price") cli_shared.add_proxy_arg(sub) sub.set_defaults(func=get_gas_price) sub = cli_shared.add_command_subparser( subparsers, "cost", "tx-transfer", "Query cost of regular transaction (transfer)") cli_shared.add_proxy_arg(sub) sub.add_argument( "--data", required=True, help="a transaction payload, required to estimate the cost") sub.set_defaults(func=lambda args: get_transaction_cost( args, proxy.TxTypes.MOVE_BALANCE)) sub = cli_shared.add_command_subparser( subparsers, "cost", "sc-deploy", "Query cost of Smart Contract deploy transaction") cli_shared.add_proxy_arg(sub) cli_contracts._add_project_or_bytecode_arg(sub) cli_contracts._add_arguments_arg(sub) sub.set_defaults( func=lambda args: get_transaction_cost(args, proxy.TxTypes.SC_DEPLOY)) sub = cli_shared.add_command_subparser( subparsers, "cost", "sc-call", "Query cost of Smart Contract call transaction") cli_shared.add_proxy_arg(sub) cli_contracts._add_contract_arg(sub) cli_contracts._add_function_arg(sub) cli_contracts._add_arguments_arg(sub) sub.set_defaults( func=lambda args: get_transaction_cost(args, proxy.TxTypes.SC_CALL)) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "config", "Configure elrond-sdk (default values etc.)") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "config", "dump", "Dumps configuration.") sub.set_defaults(func=dump) sub = cli_shared.add_command_subparser(subparsers, "config", "get", "Gets a configuration value.") _add_name_arg(sub) sub.set_defaults(func=get_value) sub = cli_shared.add_command_subparser(subparsers, "config", "set", "Sets a configuration value.") _add_name_arg(sub) sub.add_argument("value", help="the new value") sub.set_defaults(func=set_value) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "config", "Configure elrond-sdk (default values etc.)") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "config", "dump", "Dumps configuration.") sub.set_defaults(func=dump) sub = cli_shared.add_command_subparser(subparsers, "config", "get", "Gets a configuration value.") _add_name_arg(sub) sub.set_defaults(func=get_value) sub = cli_shared.add_command_subparser(subparsers, "config", "set", "Sets a configuration value.") _add_name_arg(sub) sub.add_argument("value", help="the new value") sub.set_defaults(func=set_value) sub = cli_shared.add_command_subparser(subparsers, "config", "new", "Creates a new configuration.") _add_name_arg(sub) sub.add_argument("--template", required=False, help="template from which to create the new config") sub.set_defaults(func=new_config) sub = cli_shared.add_command_subparser(subparsers, "config", "switch", "Switch to a different config") _add_name_arg(sub) sub.set_defaults(func=switch_config) sub = cli_shared.add_command_subparser(subparsers, "config", "list", "List available configs") sub.set_defaults(func=list_configs) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser(subparsers, "data", "Data manipulation omnitool") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "data", "parse", "Parses values from a given file") sub.add_argument("--file", required=True, help="path of the file to parse") sub.add_argument("--expression", required=True, help="the Python-Dictionary expression to evaluate in order to extract the data") sub.set_defaults(func=parse) sub = cli_shared.add_command_subparser(subparsers, "data", "store", "Stores a key-value pair within a partition") sub.add_argument("--key", required=True, help="the key") sub.add_argument("--value", required=True, help="the value to save") sub.add_argument("--partition", default="*", help="the storage partition (default: %(default)s)") sub.add_argument("--use-global", action="store_true", default=False, help="use the global storage (default: %(default)s)") sub.set_defaults(func=store) sub = cli_shared.add_command_subparser(subparsers, "data", "load", "Loads a key-value pair from a storage partition") sub.add_argument("--key", required=True, help="the key") sub.add_argument("--partition", default="*", help="the storage partition (default: %(default)s)") sub.add_argument("--use-global", action="store_true", default=False, help="use the global storage (default: %(default)s)") sub.set_defaults(func=load) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "dispatcher", "Enqueue transactions, then bulk dispatch them") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "dispatcher", "enqueue", "Enqueue a transaction") cli_shared.add_tx_args(sub, with_nonce=False) sub.set_defaults(func=enqueue_transaction) sub = cli_shared.add_command_subparser(subparsers, "dispatcher", "dispatch", "Dispatch queued transactions") cli_shared.add_proxy_arg(sub) cli_shared.add_wallet_args(sub) sub.set_defaults(func=dispatch_transactions) sub = cli_shared.add_command_subparser( subparsers, "dispatcher", "dispatch-continuously", "Continuously dispatch queued transactions") cli_shared.add_proxy_arg(sub) cli_shared.add_wallet_args(sub) sub.add_argument( "--interval", required=True, help="the interval to retrieve transactions from the queue, in seconds" ) sub.set_defaults(func=dispatch_transactions_continuously) sub = cli_shared.add_command_subparser(subparsers, "dispatcher", "clean", "Clear queue of transactions") sub.set_defaults(func=clean_transactions_queue) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "dns", "Operations related to the Domain Name Service") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser( subparsers, "dns", "register", "Send a register transaction to the appropriate DNS contract from given user and with given name" ) cli_shared.add_outfile_arg(sub) cli_shared.add_broadcast_args(sub, relay=True) cli_shared.add_wallet_args(sub) cli_shared.add_proxy_arg(sub) cli_shared.add_tx_args(sub, with_receiver=False, with_data=False) sub.add_argument("--name", help="the name to register") sub.set_defaults(func=register) sub = cli_shared.add_command_subparser(subparsers, "dns", "resolve", "Find the address for a name") _add_name_arg(sub) cli_shared.add_proxy_arg(sub) sub.set_defaults(func=dns_resolve) sub = cli_shared.add_command_subparser( subparsers, "dns", "validate-name", "Asks one of the DNS contracts to validate a name. Can be useful before registering it." ) _add_name_arg(sub) sub.add_argument( "--shard-id", default=0, help="shard id of the contract to call (default: %(default)s)") cli_shared.add_proxy_arg(sub) sub.set_defaults(func=dns_validate_name) sub = cli_shared.add_command_subparser( subparsers, "dns", "name-hash", "The hash of a name, as computed by a DNS smart contract") _add_name_arg(sub) sub.set_defaults(func=get_name_hash) sub = cli_shared.add_command_subparser( subparsers, "dns", "registration-cost", "Gets the registration cost from a DNS smart contract, by default the one with shard id 0." ) sub.add_argument( "--shard-id", default=0, help="shard id of the contract to call (default: %(default)s)") cli_shared.add_proxy_arg(sub) sub.set_defaults(func=get_registration_cost) sub = cli_shared.add_command_subparser( subparsers, "dns", "version", "Asks the contract for its version") sub.add_argument( "--shard-id", default=0, help="shard id of the contract to call (default: %(default)s)") sub.add_argument( "--all", action="store_true", default=False, help= "prints a list of all DNS contracts and their current versions (default: %(default)s)" ) cli_shared.add_proxy_arg(sub) sub.set_defaults(func=get_version) sub = cli_shared.add_command_subparser( subparsers, "dns", "dns-addresses", "Lists all 256 DNS contract addresses") sub.set_defaults(func=print_dns_addresses_table) sub = cli_shared.add_command_subparser( subparsers, "dns", "dns-address-for-name", "DNS contract address (bech32) that corresponds to a name") _add_name_arg(sub) sub.set_defaults(func=get_dns_address_for_name) sub = cli_shared.add_command_subparser( subparsers, "dns", "dns-address-for-name-hex", "DNS contract address (hex) that corresponds to a name") _add_name_arg(sub) sub.set_defaults(func=get_dns_address_for_name_hex) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "contract", "Build, deploy and interact with Smart Contracts") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser( subparsers, "contract", "new", "Create a new Smart Contract project based on a template.") sub.add_argument("name") sub.add_argument("--template", required=True, help="the template to use") sub.add_argument( "--directory", type=str, default=os.getcwd(), help= "🗀 the parent directory of the project (default: current directory)" ) sub.set_defaults(func=create) sub = cli_shared.add_command_subparser( subparsers, "contract", "templates", "List the available Smart Contract templates.") sub.set_defaults(func=list_templates) sub = cli_shared.add_command_subparser( subparsers, "contract", "build", "Build a Smart Contract project using the appropriate buildchain.") _add_project_arg(sub) sub.add_argument("--debug", action="store_true", default=False, help="set debug flag (default: %(default)s)") sub.add_argument( "--no-optimization", action="store_true", default=False, help="bypass optimizations (for clang) (default: %(default)s)") sub.add_argument("--cargo-target-dir", type=str, help="for rust projects, forward the parameter to Cargo") sub.add_argument( "--wasm-symbols", action="store_true", default=False, help= "for rust projects, does not strip the symbols from the wasm output. Useful for analysing the bytecode. Creates larger wasm files. Avoid in production (default: %(default)s)" ) sub.add_argument( "--wasm-name", type=str, help= "for rust projects, optionally specify the name of the wasm bytecode output file" ) sub.set_defaults(func=build) sub = cli_shared.add_command_subparser(subparsers, "contract", "clean", "Clean a Smart Contract project.") _add_project_arg(sub) sub.set_defaults(func=clean) sub = cli_shared.add_command_subparser(subparsers, "contract", "test", "Run Mandos tests.") _add_project_arg(sub) sub.add_argument( "--directory", default="mandos", help="🗀 the directory containing the tests (default: %(default)s)") sub.add_argument("--wildcard", required=False, help="wildcard to match only specific test files") sub.set_defaults(func=run_tests) sub = cli_shared.add_command_subparser(subparsers, "contract", "deploy", "Deploy a Smart Contract.") _add_project_or_bytecode_arg(sub) _add_metadata_arg(sub) cli_shared.add_outfile_arg(sub) cli_shared.add_wallet_args(sub) cli_shared.add_proxy_arg(sub) cli_shared.add_tx_args(sub, with_receiver=False, with_data=False) _add_arguments_arg(sub) cli_shared.add_broadcast_args(sub) sub.set_defaults(func=deploy) sub = cli_shared.add_command_subparser( subparsers, "contract", "call", "Interact with a Smart Contract (execute function).") _add_contract_arg(sub) cli_shared.add_outfile_arg(sub) cli_shared.add_wallet_args(sub) cli_shared.add_proxy_arg(sub) cli_shared.add_tx_args(sub, with_receiver=False, with_data=False) _add_function_arg(sub) _add_arguments_arg(sub) sub.add_argument( "--wait-result", action="store_true", default=False, help= "signal to wait for the transaction result - only valid if --send is set" ) sub.add_argument("--timeout", default=100, help="max num of seconds to wait for result" " - only valid if --wait-result is set") cli_shared.add_broadcast_args(sub, relay=True) sub.set_defaults(func=call) sub = cli_shared.add_command_subparser( subparsers, "contract", "upgrade", "Upgrade a previously-deployed Smart Contract") _add_contract_arg(sub) cli_shared.add_outfile_arg(sub) _add_project_or_bytecode_arg(sub) _add_metadata_arg(sub) cli_shared.add_wallet_args(sub) cli_shared.add_proxy_arg(sub) cli_shared.add_tx_args(sub, with_receiver=False, with_data=False) _add_arguments_arg(sub) cli_shared.add_broadcast_args(sub) sub.set_defaults(func=upgrade) sub = cli_shared.add_command_subparser( subparsers, "contract", "query", "Query a Smart Contract (call a pure function)") _add_contract_arg(sub) cli_shared.add_proxy_arg(sub) _add_function_arg(sub) _add_arguments_arg(sub) sub.set_defaults(func=query) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser(subparsers, "contract", "Build, deploy and interact with Smart Contracts") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "contract", "new", "Create a new Smart Contract project based on a template.") sub.add_argument("name") sub.add_argument("--template", required=True, help="the template to use") sub.add_argument("--directory", type=str, default=os.getcwd(), help="🗀 the parent directory of the project (default: current directory)") sub.set_defaults(func=create) sub = cli_shared.add_command_subparser(subparsers, "contract", "templates", "List the available Smart Contract templates.") sub.set_defaults(func=list_templates) sub = cli_shared.add_command_subparser(subparsers, "contract", "build", "Build a Smart Contract project using the appropriate buildchain.") _add_project_arg(sub) sub.add_argument("--debug", action="store_true", default=False, help="set debug flag (default: %(default)s)") sub.add_argument("--no-optimization", action="store_true", default=False, help="bypass optimizations (for clang) (default: %(default)s)") sub.set_defaults(func=build) sub = cli_shared.add_command_subparser(subparsers, "contract", "clean", "Clean a Smart Contract project.") _add_project_arg(sub) sub.set_defaults(func=clean) sub = cli_shared.add_command_subparser(subparsers, "contract", "test", "Run Mandos tests.") _add_project_arg(sub) sub.add_argument("--directory", default="mandos", help="🗀 the directory containing the tests (default: %(default)s)") sub.add_argument("--wildcard", required=False, help="wildcard to match only specific test files") sub.set_defaults(func=run_tests) sub = cli_shared.add_command_subparser(subparsers, "contract", "deploy", "Deploy a Smart Contract.") _add_project_or_bytecode_arg(sub) _add_metadata_arg(sub) cli_shared.add_outfile_arg(sub) cli_shared.add_wallet_args(sub) cli_shared.add_proxy_arg(sub) cli_shared.add_tx_args(sub, with_receiver=False, with_data=False) _add_arguments_arg(sub) cli_shared.add_broadcast_args(sub) sub.set_defaults(func=deploy) sub = cli_shared.add_command_subparser(subparsers, "contract", "call", "Interact with a Smart Contract (execute function).") _add_contract_arg(sub) cli_shared.add_outfile_arg(sub) cli_shared.add_wallet_args(sub) cli_shared.add_proxy_arg(sub) cli_shared.add_tx_args(sub, with_receiver=False, with_data=False) _add_function_arg(sub) _add_arguments_arg(sub) cli_shared.add_broadcast_args(sub) sub.set_defaults(func=call) sub = cli_shared.add_command_subparser(subparsers, "contract", "upgrade", "Upgrade a previously-deployed Smart Contract") _add_contract_arg(sub) cli_shared.add_outfile_arg(sub) _add_project_or_bytecode_arg(sub) _add_metadata_arg(sub) cli_shared.add_wallet_args(sub) cli_shared.add_proxy_arg(sub) cli_shared.add_tx_args(sub, with_receiver=False, with_data=False) _add_arguments_arg(sub) cli_shared.add_broadcast_args(sub) sub.set_defaults(func=upgrade) sub = cli_shared.add_command_subparser(subparsers, "contract", "query", "Query a Smart Contract (call a pure function)") _add_contract_arg(sub) cli_shared.add_proxy_arg(sub) _add_function_arg(sub) _add_arguments_arg(sub) sub.set_defaults(func=query) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser(subparsers, "validator", "Stake, UnStake, UnBond, Unjail and other " "actions useful for " "Validators") subparsers = parser.add_subparsers() sub = cli_shared.add_command_subparser(subparsers, "validator", "stake", "Stake value into the Network") _add_common_arguments(sub) sub.add_argument("--reward-address", default="", help="the reward address") sub.add_argument("--validators-file", required=not (utils.is_arg_present("--top-up", sys.argv)), help="a JSON file describing the Nodes") sub.add_argument("--top-up", action="store_true", default=False, required=not (utils.is_arg_present("--validators-file", sys.argv)), help="Stake value for top up") sub.set_defaults(func=do_stake) sub = cli_shared.add_command_subparser(subparsers, "validator", "unstake", "Unstake value") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_unstake) sub = cli_shared.add_command_subparser(subparsers, "validator", "unjail", "Unjail a Validator Node") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_unjail) sub = cli_shared.add_command_subparser(subparsers, "validator", "unbond", "Unbond tokens for a bls key") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_unbond) sub = cli_shared.add_command_subparser(subparsers, "validator", "change-reward-address", "Change the reward address") _add_common_arguments(sub) sub.add_argument("--reward-address", required=True, help="the new reward address") sub.set_defaults(func=change_reward_address) sub = cli_shared.add_command_subparser(subparsers, "validator", "claim", "Claim rewards") _add_common_arguments(sub) sub.set_defaults(func=do_claim) sub = cli_shared.add_command_subparser(subparsers, "validator", "unstake-nodes", "Unstake-nodes will unstake " "nodes for provided bls keys") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_unstake_nodes) sub = cli_shared.add_command_subparser(subparsers, "validator", "unstake-tokens", "This command will un-stake the " "given amount (if value is " "greater than the existing " "topUp value, it will unStake " "one or several nodes)") _add_common_arguments(sub) sub.add_argument("--unstake-value", default=0, help="the unstake value") sub.set_defaults(func=do_unstake_tokens) sub = cli_shared.add_command_subparser(subparsers, "validator", "unbond-nodes", "It will unBond nodes") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_unbond_nodes) sub = cli_shared.add_command_subparser(subparsers, "validator", "unbond-tokens", "It will unBond tokens, if " "provided value is bigger that " "topUp value will unBond nodes") _add_common_arguments(sub) sub.add_argument("--unbond-value", default=0, help="the unbond value") sub.set_defaults(func=do_unbond_tokens) sub = cli_shared.add_command_subparser(subparsers, "validator", "clean-registered-data", "Deletes duplicated keys " "from registered data") _add_common_arguments(sub) sub.set_defaults(func=do_clean_registered_data) sub = cli_shared.add_command_subparser(subparsers, "validator", "restake-unstaked-nodes", "It will reStake UnStaked nodes") _add_common_arguments(sub) _add_nodes_arg(sub) sub.set_defaults(func=do_restake_unstaked_nodes) parser.epilog = cli_shared.build_group_epilog(subparsers) return subparsers
def setup_parser(subparsers: Any) -> Any: parser = cli_shared.add_group_subparser( subparsers, "staking-provider", "Create New Delegation Contract " "and some more staking-provider related " "options") subparsers = parser.add_subparsers() # create new delegation contract sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "create-new-delegation-contract", "Create a new delegation system smart contract, transferred value must be" "greater than baseIssuingCost + min deposit value") _add_common_arguments(sub) sub.add_argument("--total-delegation-cap", required=True, help="the total delegation contract capacity") sub.add_argument("--service-fee", required=True, help="the delegation contract service fee") sub.set_defaults(func=do_create_delegation_contract) # get contract address sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "get-contract-address", "Get create contract address by transaction hash") sub.add_argument("--create-tx-hash", required=True, help="the hash") sub.add_argument("--sender", required=False, help="the sender address") cli_shared.add_proxy_arg(sub) cli_shared.add_omit_fields_arg(sub) sub.set_defaults(func=get_contract_address_by_deploy_tx_hash) # add a new node sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "add-nodes", "Add new nodes must be called by the contract owner") sub.add_argument("--validators-file", required=True, help="a JSON file describing the Nodes") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=add_new_nodes) # remove nodes sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "remove-nodes", "Remove nodes must be called by the contract owner") sub.add_argument("--bls-keys", required=True, help="a list with the bls keys of the nodes") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=remove_nodes) # stake nodes sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "stake-nodes", "Stake nodes must be called by the contract owner") sub.add_argument("--bls-keys", required=True, help="a list with the bls keys of the nodes") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=stake_nodes) # unbond nodes sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "unbond-nodes", "Unbond nodes must be called by the contract owner") sub.add_argument("--bls-keys", required=True, help="a list with the bls keys of the nodes") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=unbond_nodes) # unstake nodes sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "unstake-nodes", "Unstake nodes must be called by the contract owner") sub.add_argument("--bls-keys", required=True, help="a list with the bls keys of the nodes") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=unstake_nodes) # unjail nodes sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "unjail-nodes", "Unjail nodes must be called by the contract owner") sub.add_argument("--bls-keys", required=True, help="a list with the bls keys of the nodes") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=unjail_nodes) # change service fee sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "change-service-fee", "Change service fee must be called by the contract owner") sub.add_argument("--service-fee", required=True, help="new service fee value") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=change_service_fee) # modify total delegation cap sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "modify-delegation-cap", "Modify delegation cap must be called by the contract owner") sub.add_argument("--delegation-cap", required=True, help="new delegation contract capacity") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=modify_delegation_cap) # set automatic activation sub = cli_shared.add_command_subparser( subparsers, "staking-provider", "automatic-activation", "Automatic activation must be called by the contract owner") sub.add_argument("--set", action="store_true", required=not (utils.is_arg_present("--unset", sys.argv)), help="set automatic activation True") sub.add_argument("--unset", action="store_true", required=not (utils.is_arg_present("--set", sys.argv)), help="set automatic activation False") sub.add_argument("--delegation-contract", required=True, help="address of the delegation contract") _add_common_arguments(sub) sub.set_defaults(func=automatic_activation)