grin-wallet/src/bin/grin-wallet.yml

378 lines
13 KiB
YAML
Raw Normal View History

2019-05-20 13:29:00 +03:00
name: grin-wallet
about: Reference Grin Wallet
2019-02-13 18:05:19 +03:00
author: The Grin Team
args:
- floonet:
help: Run grin against the Floonet (as opposed to mainnet)
long: floonet
takes_value: false
- usernet:
help: Run grin as a local-only network. Doesn't block peer connections but will not connect to any peer or seed
long: usernet
takes_value: false
2019-02-13 19:39:34 +03:00
- pass:
help: Wallet passphrase used to encrypt wallet seed
short: p
long: pass
takes_value: true
- account:
help: Wallet account to use for this operation
short: a
long: account
takes_value: true
default_value: default
2019-12-03 12:56:43 +03:00
- top_level_dir:
help: Top directory in which wallet files are stored (location of 'grin-wallet.toml')
short: t
long: top_level_dir
2019-02-13 19:39:34 +03:00
takes_value: true
- external:
help: Listen on 0.0.0.0 interface to allow external connections (default is 127.0.0.1)
short: e
long: external
takes_value: false
- show_spent:
help: Show spent outputs on wallet output commands
short: s
long: show_spent
takes_value: false
- api_server_address:
help: Api address of running node on which to check inputs and post transactions
short: r
long: api_server_address
takes_value: true
2019-02-13 18:05:19 +03:00
subcommands:
- cli:
about: Start the wallet in interactive CLI mode (EXPERIMENTAL and UNDER DEVELOPMENT)
2019-02-13 19:39:34 +03:00
- account:
about: List wallet accounts or create a new account
2019-02-13 18:05:19 +03:00
args:
2019-02-13 19:39:34 +03:00
- create:
help: Create a new wallet account with provided name
2019-02-13 18:05:19 +03:00
short: c
2019-02-13 19:39:34 +03:00
long: create
2019-02-13 18:05:19 +03:00
takes_value: true
2019-02-13 19:39:34 +03:00
- listen:
about: Runs the wallet in listening mode waiting for transactions
args:
2019-02-13 18:05:19 +03:00
- port:
2019-02-13 19:39:34 +03:00
help: Port on which to run the wallet listener
short: l
2019-02-13 18:05:19 +03:00
long: port
takes_value: true
2019-02-13 19:39:34 +03:00
- method:
help: Which method to use for communication
short: m
long: method
possible_values:
- http
- keybase
default_value: http
takes_value: true
- no_tor:
help: Don't start TOR listener when starting HTTP listener
short: n
long: no_tor
takes_value: false
2019-02-13 19:39:34 +03:00
- owner_api:
about: Runs the wallet's local web API
args:
- port:
help: Port on which to run the wallet owner listener
short: l
long: port
takes_value: true
- run_foreign:
help: Also run the Foreign API
long: run_foreign
takes_value: false
2019-02-13 19:39:34 +03:00
- send:
2020-06-11 10:34:00 +03:00
about: Builds a transaction to send coins and sends to the recipient via the Slatepack workflow
2019-02-13 19:39:34 +03:00
args:
- amount:
help: Number of coins to send with optional fraction, e.g. 12.423
index: 1
- minimum_confirmations:
help: Minimum number of confirmations required for an output to be spendable
short: c
long: min_conf
default_value: "10"
2019-02-13 18:05:19 +03:00
takes_value: true
2019-02-13 19:39:34 +03:00
- selection_strategy:
help: Coin/Output selection strategy.
2019-02-13 18:05:19 +03:00
short: s
2019-02-13 19:39:34 +03:00
long: selection
possible_values:
- all
- smallest
default_value: smallest
2019-02-13 19:39:34 +03:00
takes_value: true
- estimate_selection_strategies:
help: Estimates all possible Coin/Output selection strategies.
short: e
long: estimate-selection
- change_outputs:
help: Number of change outputs to generate (mainly for testing)
short: o
long: change_outputs
default_value: "1"
2019-02-13 18:05:19 +03:00
takes_value: true
2019-02-13 19:39:34 +03:00
- dest:
2020-06-11 10:34:00 +03:00
help: Intended recipient's Slatepack Address (or http listener address (DEPRECATED))
2019-02-13 19:39:34 +03:00
short: d
long: dest
takes_value: true
- no_payment_proof:
help: Don't request a payment proof, even if the Recipient's Slatepack address is provided in the -dest argument
short: n
long: no_payment_proof
2019-02-13 19:39:34 +03:00
- fluff:
help: Fluff the transaction (ignore Dandelion relay protocol)
short: f
long: fluff
- stored_tx:
help: If present, use the previously stored Unconfirmed transaction with given id
short: t
long: stored_tx
takes_value: true
- ttl_blocks:
help: If present, the number of blocks from the current after which wallets should refuse to process transactions further
short: b
long: ttl_blocks
takes_value: true
- manual:
help: If present, don't attempt to send the resulting Slatepack via TOR
short: m
long: manual
Compact slate merge (#404) * Add support for sending compact slates (#366) * WIP add support for sending compact slates * add repopulate_tx function to internal API * first pass at compacted slate working * move slate compaction to separate function * test fixes * support compact slate inits in invoice workflow * add compress flags to send and invoice * attempting to remove is_compact and assume all V4 slates begin as compact * attempting to calculate offsets when full tx data isn't available * update calc_commit to use participant blind data * update doctests for compact slates * start to remove unneeded fields from serialization * make num_participants optional * remove other_version from slate * use grin master branch * remove message field * lock height assumed to be 0 if it doesn't exist * don't serialise receiver signature when null * don't serialize payment_info if not needed * remove participant id from participant info * add note on id field * fix finalize and receive doctests * finalize_tx tests, init_send_tx tests * doctests for process_invoice_tx, retrieve_tx, tx_lock_outputs * finished test changes * update from grin master * rebuild PR from diff (#380) * recreate PR from diff (#381) * serialize tx struct into top level coms object (#382) * remove height (#383) * Add State Slate (#384) * add state field to slate and SlateV4 * set slate state at each transaction stage, add check to tests * serialize slate status properly * V4 Slate field tweaks (#386) * various tweaks to V4 slate * field renaming * serialize slate v4 ID as base64 (#387) * remove amount and fee where not needed (#388) * Final Changes for compact Slate (#389) * add tests for all types of file output, remove message args * default range proof serialization * shorten output features serialization * rename payment proof fields in slate v4 * v4 payment proof serialization * Binary Slates (#385) * start test implementation * add experimental binary serialization to slate * serialize id * serialize fields that can be skipped as a separate struct * factor out sigs serialization * clean up sigs and coms serialization * completed v4 bin serialization * add manual de/ser traits for V4 bin slate * add simple byte array serializer * complete wiring in of bin slate serialization * clarify comment * clarify comment * update version * test output dir name fix * update slate v4 change description * add binary output to command line * Remove unneeded signature data during S2 and I2 stages (#390) * remove unneeded return signature data during S2 * remove unneeded sig data from I2 * Doctest Fixes for compact slate branch (#392) * begin to fix doctests * more doctest fixes * fix receive_tx * update get_stored_tx to accept an UUID instead of a tx object, and operate on a raw Transaction object (#394) * Fixes to async transaction posting (#395) * unstash post_tx changes * add offset during S3 and I3 * Revert slate id serialization to hex-string uuid (#396) * update from master (#397) * v3.x.x - v4.0.0 wallet compatibility fixes (#398) * changes to support http sending to v3 wallets * sending via http/tor TO 3.0.0 wallet works * receiving FROM 3.0.0 wallets works over http/tor * output converted V3 slate when needed * paying invoices from 3.0.0 wallets working * handle all participant info in slate states * sending and receiving standard file transactions between v3 and 4 wallets confirmed working * all file-based workflows working * fixes resulting from tests * remove reminder warnings * remove lock_height, add kernel_features + arguments (#399) * grin-wallet master now building against grin master (#402) (#403) Co-authored-by: Antioch Peverell <apeverell@protonmail.com> * Enhanced offset creation (#407) * initial tests reworking offset creation * invoice flow fixing + tests * further test fixes * change offset name in v4 slate, base64 serialize * logic optimisation * changes based on review feedback Co-authored-by: Antioch Peverell <apeverell@protonmail.com>
2020-05-19 13:19:03 +03:00
#TODO: Remove HF3
- v4:
help: Output a V4 slate prior to HF3 block
long: v4
takes_value: false
2020-06-11 10:34:00 +03:00
- unpack:
about: Unpack and display an armored Slatepack Message, decrypting if possible
args:
- input:
help: File containing a Slatepack Message
short: i
long: input
takes_value: true
2019-02-13 19:39:34 +03:00
- receive:
2020-06-11 10:34:00 +03:00
about: Processes a Slatepack Message to accept a transfer from a sender
2019-02-13 18:05:19 +03:00
args:
2019-02-13 19:39:34 +03:00
- input:
2020-06-11 10:34:00 +03:00
help: File containing a Slatepack Message
2019-02-13 19:39:34 +03:00
short: i
long: input
2019-02-13 18:05:19 +03:00
takes_value: true
- manual:
help: If present, don't attempt to send the resulting Slatepack via TOR
short: m
long: manual
2019-02-13 19:39:34 +03:00
- finalize:
2020-06-11 10:34:00 +03:00
about: Processes a Slatepack Message to finalize a transfer.
2019-02-13 19:39:34 +03:00
args:
- input:
help: Partial transaction to process, expects the receiver's transaction file.
short: i
long: input
2019-02-13 18:05:19 +03:00
takes_value: true
2019-02-13 19:39:34 +03:00
- fluff:
help: Fluff the transaction (ignore Dandelion relay protocol)
short: f
long: fluff
- nopost:
help: Do not post the transaction.
short: n
long: nopost
- invoice:
2020-06-11 10:34:00 +03:00
about: Initialize an invoice transaction, outputting a Slatepack Message with the result
args:
- amount:
help: Number of coins to invoice with optional fraction, e.g. 12.423
index: 1
- dest:
2020-06-11 10:34:00 +03:00
help: Intended recipient's Slatepack Address
short: d
long: dest
takes_value: true
#TODO: Remove HF3
Compact slate merge (#404) * Add support for sending compact slates (#366) * WIP add support for sending compact slates * add repopulate_tx function to internal API * first pass at compacted slate working * move slate compaction to separate function * test fixes * support compact slate inits in invoice workflow * add compress flags to send and invoice * attempting to remove is_compact and assume all V4 slates begin as compact * attempting to calculate offsets when full tx data isn't available * update calc_commit to use participant blind data * update doctests for compact slates * start to remove unneeded fields from serialization * make num_participants optional * remove other_version from slate * use grin master branch * remove message field * lock height assumed to be 0 if it doesn't exist * don't serialise receiver signature when null * don't serialize payment_info if not needed * remove participant id from participant info * add note on id field * fix finalize and receive doctests * finalize_tx tests, init_send_tx tests * doctests for process_invoice_tx, retrieve_tx, tx_lock_outputs * finished test changes * update from grin master * rebuild PR from diff (#380) * recreate PR from diff (#381) * serialize tx struct into top level coms object (#382) * remove height (#383) * Add State Slate (#384) * add state field to slate and SlateV4 * set slate state at each transaction stage, add check to tests * serialize slate status properly * V4 Slate field tweaks (#386) * various tweaks to V4 slate * field renaming * serialize slate v4 ID as base64 (#387) * remove amount and fee where not needed (#388) * Final Changes for compact Slate (#389) * add tests for all types of file output, remove message args * default range proof serialization * shorten output features serialization * rename payment proof fields in slate v4 * v4 payment proof serialization * Binary Slates (#385) * start test implementation * add experimental binary serialization to slate * serialize id * serialize fields that can be skipped as a separate struct * factor out sigs serialization * clean up sigs and coms serialization * completed v4 bin serialization * add manual de/ser traits for V4 bin slate * add simple byte array serializer * complete wiring in of bin slate serialization * clarify comment * clarify comment * update version * test output dir name fix * update slate v4 change description * add binary output to command line * Remove unneeded signature data during S2 and I2 stages (#390) * remove unneeded return signature data during S2 * remove unneeded sig data from I2 * Doctest Fixes for compact slate branch (#392) * begin to fix doctests * more doctest fixes * fix receive_tx * update get_stored_tx to accept an UUID instead of a tx object, and operate on a raw Transaction object (#394) * Fixes to async transaction posting (#395) * unstash post_tx changes * add offset during S3 and I3 * Revert slate id serialization to hex-string uuid (#396) * update from master (#397) * v3.x.x - v4.0.0 wallet compatibility fixes (#398) * changes to support http sending to v3 wallets * sending via http/tor TO 3.0.0 wallet works * receiving FROM 3.0.0 wallets works over http/tor * output converted V3 slate when needed * paying invoices from 3.0.0 wallets working * handle all participant info in slate states * sending and receiving standard file transactions between v3 and 4 wallets confirmed working * all file-based workflows working * fixes resulting from tests * remove reminder warnings * remove lock_height, add kernel_features + arguments (#399) * grin-wallet master now building against grin master (#402) (#403) Co-authored-by: Antioch Peverell <apeverell@protonmail.com> * Enhanced offset creation (#407) * initial tests reworking offset creation * invoice flow fixing + tests * further test fixes * change offset name in v4 slate, base64 serialize * logic optimisation * changes based on review feedback Co-authored-by: Antioch Peverell <apeverell@protonmail.com>
2020-05-19 13:19:03 +03:00
- v4:
help: Output a V4 slate prior to HF3 block
long: v4
takes_value: false
- pay:
about: Spend coins to pay the provided invoice transaction
args:
- minimum_confirmations:
help: Minimum number of confirmations required for an output to be spendable
short: c
long: min_conf
default_value: "10"
takes_value: true
- selection_strategy:
help: Coin/Output selection strategy.
short: s
long: selection
possible_values:
- all
- smallest
default_value: all
takes_value: true
- estimate_selection_strategies:
help: Estimates all possible Coin/Output selection strategies.
short: e
long: estimate-selection
- dest:
2020-06-11 10:34:00 +03:00
help: The Slatepack address of the invoicing party's wallet (will override the address contained in the Slatepack)
short: d
long: dest
takes_value: true
- input:
2020-06-11 10:34:00 +03:00
help: Incoming Slatepack Message to process
short: i
long: input
takes_value: true
- ttl_blocks:
help: If present, the number of blocks from the current after which wallets should refuse to process transactions further
short: b
long: ttl_blocks
takes_value: true
- manual:
help: If present, don't attempt to send the resulting Slatepack via TOR
short: m
long: manual
2019-02-13 19:39:34 +03:00
- outputs:
about: Raw wallet output info (list of outputs)
2019-02-13 19:39:34 +03:00
- txs:
about: Display transaction information
args:
- id:
help: If specified, display transaction with given Id and all associated Inputs/Outputs
short: i
long: id
2019-02-13 18:05:19 +03:00
takes_value: true
- txid:
help: If specified, display transaction with given TxID UUID and all associated Inputs/Outputs
short: t
long: txid
takes_value: true
- post:
about: Posts a finalized transaction to the chain
args:
- input:
help: File name of the transaction to post
short: i
long: input
takes_value: true
- fluff:
help: Fluff the transaction (ignore Dandelion relay protocol)
short: f
long: fluff
2019-02-13 19:39:34 +03:00
- repost:
about: Reposts a stored, completed but unconfirmed transaction to the chain, or dumps it to a file
args:
- id:
help: Transaction ID containing the stored completed transaction
short: i
long: id
takes_value: true
- dumpfile:
help: File name to duMp the transaction to instead of posting
short: m
long: dumpfile
takes_value: true
- fluff:
help: Fluff the transaction (ignore Dandelion relay protocol)
short: f
long: fluff
- cancel:
about: Cancels a previously created transaction, freeing previously locked outputs for use again
2019-02-13 19:39:34 +03:00
args:
- id:
help: The ID of the transaction to cancel
short: i
long: id
takes_value: true
- txid:
help: The TxID UUID of the transaction to cancel
short: t
long: txid
takes_value: true
- info:
about: Basic wallet contents summary
args:
- minimum_confirmations:
help: Minimum number of confirmations required for an output to be spendable
short: c
long: min_conf
default_value: "10"
takes_value: true
- init:
about: Initialize a new wallet seed file and database
args:
- here:
help: Create wallet files in the current directory instead of the default ~/.grin directory
short: h
long: here
2019-02-13 18:05:19 +03:00
takes_value: false
2019-02-13 19:39:34 +03:00
- short_wordlist:
help: Generate a 12-word recovery phrase/seed instead of default 24
2019-02-13 18:05:19 +03:00
short: s
2019-02-13 19:39:34 +03:00
long: short_wordlist
2019-02-13 18:05:19 +03:00
takes_value: false
- recover:
2019-02-13 19:39:34 +03:00
help: Initialize new wallet using a recovery phrase
short: r
long: recover
takes_value: false
- open:
about: Opens a wallet (interactive mode only)
- close:
about: Closes the wallet (interactive mode only)
2019-02-13 19:39:34 +03:00
- recover:
about: Displays a recovery phrase for the wallet. (use `init -r` to perform recovery)
- address:
about: Display the wallet's Slatepack address
- scan:
2019-02-13 19:39:34 +03:00
about: Checks a wallet's outputs against a live node, repairing and restoring missing outputs if required
args:
- delete_unconfirmed:
help: Delete any unconfirmed outputsm unlock any locked outputs and delete associated transactions while doing the check.
short: d
long: delete_unconfirmed
takes_value: false
- start_height:
help: If given, the first block from which to start the scan (default 1)
short: h
long: start_height
takes_value: true
- backwards_from_tip:
help: If given, start scan b blocks back from the tip
short: b
long: backwards_from_tip,
takes_value: true
- export_proof:
about: Export a payment proof from a completed transaction
args:
- output:
help: Output proof file
index: 1
- id:
help: If specified, retrieve the proof for the given transaction ID
short: i
long: id
takes_value: true
- txid:
help: If specified, retrieve the proof for the given Slate ID
short: t
long: txid
takes_value: true
- verify_proof:
about: Verify a payment proof
args:
- input:
help: Filename of a proof file
index: 1