help notes cleanups throughout (whitespace, var renames)
This commit is contained in:
parent
27312d2e54
commit
db8b769faa
25 changed files with 110 additions and 133 deletions
|
|
@ -103,7 +103,9 @@ class Help:
|
||||||
|
|
||||||
def gen_output():
|
def gen_output():
|
||||||
yield ' {} {}'.format(gc.prog_name.upper() + ':', opts.opts_data['text']['desc'].strip())
|
yield ' {} {}'.format(gc.prog_name.upper() + ':', opts.opts_data['text']['desc'].strip())
|
||||||
|
yield ''
|
||||||
yield make_usage_str(cfg, caller='help')
|
yield make_usage_str(cfg, caller='help')
|
||||||
|
yield ''
|
||||||
yield self.help_type.upper().replace('_', ' ') + ':'
|
yield self.help_type.upper().replace('_', ' ') + ':'
|
||||||
|
|
||||||
# process code for options
|
# process code for options
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ def help(proto, cfg):
|
||||||
match proto.base_proto:
|
match proto.base_proto:
|
||||||
case 'Bitcoin':
|
case 'Bitcoin':
|
||||||
return """
|
return """
|
||||||
|
|
||||||
Rescanning now uses the ‘scantxoutset’ RPC call and a selective scan of
|
Rescanning now uses the ‘scantxoutset’ RPC call and a selective scan of
|
||||||
blocks containing the relevant UTXOs for much faster performance than the
|
blocks containing the relevant UTXOs for much faster performance than the
|
||||||
previous implementation. The rescan operation typically takes around two
|
previous implementation. The rescan operation typically takes around two
|
||||||
|
|
@ -31,9 +32,11 @@ the blockchain may take up to several hours.
|
||||||
A full rescan is required if you plan to use ‘mmgen-tool txhist’ or the
|
A full rescan is required if you plan to use ‘mmgen-tool txhist’ or the
|
||||||
automatic change address functionality of ‘mmgen-txcreate’, or wish to see
|
automatic change address functionality of ‘mmgen-txcreate’, or wish to see
|
||||||
which addresses in your tracking wallet are used. Without it, all addresses
|
which addresses in your tracking wallet are used. Without it, all addresses
|
||||||
without balances will be displayed as new."""
|
without balances will be displayed as new.
|
||||||
|
"""
|
||||||
case 'Monero':
|
case 'Monero':
|
||||||
return """
|
return """
|
||||||
|
|
||||||
For Monero, --autosign is required, and a key-address file on the removable
|
For Monero, --autosign is required, and a key-address file on the removable
|
||||||
device is used instead of a user-specified address file as with other coins.
|
device is used instead of a user-specified address file as with other coins.
|
||||||
|
|
||||||
|
|
@ -50,6 +53,7 @@ configured via --xmrwallets comprises the user’s tracking wallet.
|
||||||
If a view-only wallet for a given address already exists, it’s left untouched
|
If a view-only wallet for a given address already exists, it’s left untouched
|
||||||
and no action is performed. To add view-only wallets to your tracking wallet,
|
and no action is performed. To add view-only wallets to your tracking wallet,
|
||||||
just specify additional wallet indexes via --xmrwallets during the offline
|
just specify additional wallet indexes via --xmrwallets during the offline
|
||||||
setup process."""
|
setup process.
|
||||||
|
"""
|
||||||
case _:
|
case _:
|
||||||
return ''
|
return ''
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,9 @@
|
||||||
help: help notes functions for MMGen suite commands
|
help: help notes functions for MMGen suite commands
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# To permit concatenation of blocks of help text in any order, each block (if not empty)
|
||||||
|
# should start with two newlines and end with one newline.
|
||||||
|
|
||||||
class help_notes:
|
class help_notes:
|
||||||
|
|
||||||
def __init__(self, proto, cfg):
|
def __init__(self, proto, cfg):
|
||||||
|
|
@ -91,11 +94,10 @@ class help_notes:
|
||||||
def password_formats(self):
|
def password_formats(self):
|
||||||
from ..passwdlist import PasswordList
|
from ..passwdlist import PasswordList
|
||||||
pwi_fs = '{:8} {:1} {:26} {:<7} {:<7} {}'
|
pwi_fs = '{:8} {:1} {:26} {:<7} {:<7} {}'
|
||||||
return '\n '.join(
|
return '\n\n ' + '\n '.join(
|
||||||
[pwi_fs.format('Code', '', 'Description', 'Min Len', 'Max Len', 'Default Len')] +
|
[pwi_fs.format('Code', '', 'Description', 'Min Len', 'Max Len', 'Default Len')] +
|
||||||
[pwi_fs.format(k, '-', v.desc, v.min_len, v.max_len, v.dfl_len)
|
[pwi_fs.format(k, '-', v.desc, v.min_len, v.max_len, v.dfl_len)
|
||||||
for k, v in PasswordList.pw_info.items()]
|
for k, v in PasswordList.pw_info.items()])
|
||||||
)
|
|
||||||
|
|
||||||
def dfl_mmtype(self):
|
def dfl_mmtype(self):
|
||||||
from ..addr import MMGenAddrType
|
from ..addr import MMGenAddrType
|
||||||
|
|
@ -104,19 +106,21 @@ class help_notes:
|
||||||
def address_types(self):
|
def address_types(self):
|
||||||
from ..addr import MMGenAddrType
|
from ..addr import MMGenAddrType
|
||||||
return """
|
return """
|
||||||
|
|
||||||
ADDRESS TYPES:
|
ADDRESS TYPES:
|
||||||
|
|
||||||
Code Type Description
|
Code Type Description
|
||||||
---- ---- -----------
|
---- ---- -----------
|
||||||
""" + format('\n '.join(['‘{}’ {:<12} - {}'.format(k, v.name, v.desc)
|
""" + format('\n '.join(['‘{}’ {:<12} - {}'.format(k, v.name, v.desc)
|
||||||
for k, v in MMGenAddrType.mmtypes.items()]))
|
for k, v in MMGenAddrType.mmtypes.items()])) + '\n'
|
||||||
|
|
||||||
def fmt_codes(self):
|
def fmt_codes(self):
|
||||||
from ..wallet import format_fmt_codes
|
from ..wallet import format_fmt_codes
|
||||||
return """
|
return """
|
||||||
|
|
||||||
FMT CODES:
|
FMT CODES:
|
||||||
|
|
||||||
""" + '\n '.join(format_fmt_codes().splitlines())
|
""" + '\n '.join(format_fmt_codes().splitlines()) + '\n'
|
||||||
|
|
||||||
def coin_id(self):
|
def coin_id(self):
|
||||||
return self.proto.coin_id
|
return self.proto.coin_id
|
||||||
|
|
@ -148,6 +152,7 @@ FMT CODES:
|
||||||
|
|
||||||
def gas_limit(self, target):
|
def gas_limit(self, target):
|
||||||
return """
|
return """
|
||||||
|
|
||||||
GAS LIMIT
|
GAS LIMIT
|
||||||
|
|
||||||
This option specifies the maximum gas allowance for an Ethereum transaction.
|
This option specifies the maximum gas allowance for an Ethereum transaction.
|
||||||
|
|
@ -158,7 +163,6 @@ Parameter must be an integer or one of the special values ‘fallback’ (for a
|
||||||
locally computed sane default) or ‘auto’ (for gas estimate via an RPC call,
|
locally computed sane default) or ‘auto’ (for gas estimate via an RPC call,
|
||||||
in the case of a token transaction, or locally computed default, in the case
|
in the case of a token transaction, or locally computed default, in the case
|
||||||
of a standard transaction). The default is ‘auto’.
|
of a standard transaction). The default is ‘auto’.
|
||||||
|
|
||||||
""" if target == 'swaptx' or self.proto.base_coin == 'ETH' else ''
|
""" if target == 'swaptx' or self.proto.base_coin == 'ETH' else ''
|
||||||
|
|
||||||
def fee(self, all_coins=False):
|
def fee(self, all_coins=False):
|
||||||
|
|
@ -168,6 +172,7 @@ of a standard transaction). The default is ‘auto’.
|
||||||
|
|
||||||
from ..tx import BaseTX
|
from ..tx import BaseTX
|
||||||
text = """
|
text = """
|
||||||
|
|
||||||
FEE SPECIFICATION
|
FEE SPECIFICATION
|
||||||
|
|
||||||
Transaction fees, both on the command line and at the interactive prompt, may
|
Transaction fees, both on the command line and at the interactive prompt, may
|
||||||
|
|
@ -187,24 +192,26 @@ as {r}, using an integer followed by {l}, for{s}{u}""".format(
|
||||||
r = BaseTX(cfg=self.cfg, proto=eth_proto).rel_fee_desc,
|
r = BaseTX(cfg=self.cfg, proto=eth_proto).rel_fee_desc,
|
||||||
l = self.fee_spec_letters(use_quotes=True, proto=eth_proto),
|
l = self.fee_spec_letters(use_quotes=True, proto=eth_proto),
|
||||||
u = self.fee_spec_names(proto=eth_proto, linebreak='\n'))
|
u = self.fee_spec_names(proto=eth_proto, linebreak='\n'))
|
||||||
+ ' (for Ethereum)\n\n')
|
+ ' (for Ethereum)\n')
|
||||||
else:
|
else:
|
||||||
return text + '.\n\n'
|
return text + '.\n'
|
||||||
|
|
||||||
def passwd(self):
|
def passwd(self):
|
||||||
return """
|
return """
|
||||||
|
|
||||||
PASSPHRASE NOTE:
|
PASSPHRASE NOTE:
|
||||||
|
|
||||||
For passphrases all combinations of whitespace are equal, and leading and
|
For passphrases all combinations of whitespace are equal, and leading and
|
||||||
trailing space are ignored. This permits reading passphrase or brainwallet
|
trailing space are ignored. This permits reading passphrase or brainwallet
|
||||||
data from a multi-line file with free spacing and indentation.
|
data from a multi-line file with free spacing and indentation.
|
||||||
""".strip()
|
"""
|
||||||
|
|
||||||
def brainwallet(self):
|
def brainwallet(self):
|
||||||
return """
|
return """
|
||||||
|
|
||||||
BRAINWALLET NOTE:
|
BRAINWALLET NOTE:
|
||||||
|
|
||||||
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
To thwart dictionary attacks, it’s recommended to use a strong hash preset
|
||||||
with brainwallets. For a brainwallet passphrase to generate the correct
|
with brainwallets. For a brainwallet passphrase to generate the correct
|
||||||
seed, the same seed length and hash preset parameters must always be used.
|
seed, the same seed length and hash preset parameters must always be used.
|
||||||
""".strip()
|
"""
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ help.seedsplit: seedsplit help notes for MMGen suite
|
||||||
def help(proto, cfg):
|
def help(proto, cfg):
|
||||||
from ..seedsplit import SeedShareIdx, SeedShareCount, MasterShareIdx
|
from ..seedsplit import SeedShareIdx, SeedShareCount, MasterShareIdx
|
||||||
return """
|
return """
|
||||||
|
|
||||||
COMMAND NOTES:
|
COMMAND NOTES:
|
||||||
|
|
||||||
This command generates shares one at a time. Shares may be output to any
|
This command generates shares one at a time. Shares may be output to any
|
||||||
|
|
@ -98,8 +99,7 @@ EXAMPLES:
|
||||||
$ mmgen-seedsplit -M4 -o hincog -J my.hincog,1325 1:2 # Step M (share A)
|
$ mmgen-seedsplit -M4 -o hincog -J my.hincog,1325 1:2 # Step M (share A)
|
||||||
$ mmgen-seedsplit -M4 -o bip39 2:2 # Step N (share B)
|
$ mmgen-seedsplit -M4 -o bip39 2:2 # Step N (share B)
|
||||||
$ mmgen-seedjoin -M4 -H my.hincog,1325 <output_of_step_N>
|
$ mmgen-seedjoin -M4 -H my.hincog,1325 <output_of_step_N>
|
||||||
|
""".format(
|
||||||
""".strip().format(
|
|
||||||
si = SeedShareIdx,
|
si = SeedShareIdx,
|
||||||
sc = SeedShareCount,
|
sc = SeedShareCount,
|
||||||
mi = MasterShareIdx)
|
mi = MasterShareIdx)
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ help.subwallet: subwallet help notes for the MMGen Wallet suite
|
||||||
def help(proto, cfg):
|
def help(proto, cfg):
|
||||||
from ..subseed import SubSeedIdxRange
|
from ..subseed import SubSeedIdxRange
|
||||||
return f"""
|
return f"""
|
||||||
|
|
||||||
SUBWALLETS:
|
SUBWALLETS:
|
||||||
|
|
||||||
Subwallets (subseeds) are specified by a ‘Subseed Index’ consisting of:
|
Subwallets (subseeds) are specified by a ‘Subseed Index’ consisting of:
|
||||||
|
|
@ -49,4 +50,4 @@ Seed ID collisions among them doesn’t present a problem.
|
||||||
A safe rule of thumb, therefore, is for *each user* to derive all of his/her
|
A safe rule of thumb, therefore, is for *each user* to derive all of his/her
|
||||||
subwallets from a single parent. This leaves each user with a total of two
|
subwallets from a single parent. This leaves each user with a total of two
|
||||||
million subwallets, which should be enough for most practical purposes.
|
million subwallets, which should be enough for most practical purposes.
|
||||||
""".strip()
|
"""
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ help.swaptxcreate: swaptxcreate and swaptxdo help notes for the MMGen Wallet sui
|
||||||
|
|
||||||
def help(proto, cfg):
|
def help(proto, cfg):
|
||||||
return """
|
return """
|
||||||
|
|
||||||
This script is similar in operation to ‘mmgen-txcreate’, only with additional
|
This script is similar in operation to ‘mmgen-txcreate’, only with additional
|
||||||
steps. Users are advised to first familiarize themselves with the use of that
|
steps. Users are advised to first familiarize themselves with the use of that
|
||||||
script before attempting to perform a swap with this one.
|
script before attempting to perform a swap with this one.
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ from ..cfg import gc
|
||||||
def help(proto, cfg):
|
def help(proto, cfg):
|
||||||
|
|
||||||
return f"""
|
return f"""
|
||||||
|
|
||||||
EXAMPLES:
|
EXAMPLES:
|
||||||
|
|
||||||
Display available swap assets:
|
Display available swap assets:
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@ specified.
|
||||||
""" if proto.has_usr_fee else ''
|
""" if proto.has_usr_fee else ''
|
||||||
|
|
||||||
return f"""
|
return f"""
|
||||||
|
|
||||||
The transaction’s outputs are listed on the command line, while its inputs
|
The transaction’s outputs are listed on the command line, while its inputs
|
||||||
are chosen from a list of the wallet’s unspent outputs via an interactive
|
are chosen from a list of the wallet’s unspent outputs via an interactive
|
||||||
menu. Alternatively, inputs may be specified using the --inputs option.
|
menu. Alternatively, inputs may be specified using the --inputs option.
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ def help(proto, cfg):
|
||||||
match proto.base_proto:
|
match proto.base_proto:
|
||||||
case 'Bitcoin':
|
case 'Bitcoin':
|
||||||
return f"""
|
return f"""
|
||||||
|
|
||||||
EXAMPLES:
|
EXAMPLES:
|
||||||
|
|
||||||
Send 0.123 {proto.coin} to an external {proto.name} address, returning the change to a
|
Send 0.123 {proto.coin} to an external {proto.name} address, returning the change to a
|
||||||
|
|
@ -60,6 +61,7 @@ EXAMPLES:
|
||||||
|
|
||||||
case 'Monero':
|
case 'Monero':
|
||||||
return f"""
|
return f"""
|
||||||
|
|
||||||
EXAMPLES:
|
EXAMPLES:
|
||||||
|
|
||||||
Send 0.123 {proto.coin} to an external {proto.name} address:
|
Send 0.123 {proto.coin} to an external {proto.name} address:
|
||||||
|
|
@ -73,6 +75,7 @@ EXAMPLES:
|
||||||
|
|
||||||
case _:
|
case _:
|
||||||
return f"""
|
return f"""
|
||||||
|
|
||||||
EXAMPLES:
|
EXAMPLES:
|
||||||
|
|
||||||
Send 0.123 {proto.coin} to an external {proto.name} address:
|
Send 0.123 {proto.coin} to an external {proto.name} address:
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ def help(proto, cfg):
|
||||||
return CoinDaemon(cfg, network_id=proto.coin).exec_fn if proto.coin in CoinDaemon.coins else 'bitcoind'
|
return CoinDaemon(cfg, network_id=proto.coin).exec_fn if proto.coin in CoinDaemon.coins else 'bitcoind'
|
||||||
|
|
||||||
return """
|
return """
|
||||||
|
|
||||||
Transactions may contain both {pnm} or non-{pnm} input addresses.
|
Transactions may contain both {pnm} or non-{pnm} input addresses.
|
||||||
|
|
||||||
To sign non-{pnm} inputs, a coin daemon wallet dump or flat key list is used
|
To sign non-{pnm} inputs, a coin daemon wallet dump or flat key list is used
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ def help(proto, cfg):
|
||||||
from ..xmrwallet import uarg_info
|
from ..xmrwallet import uarg_info
|
||||||
|
|
||||||
return """
|
return """
|
||||||
|
|
||||||
Many operations take an optional ‘wallets’ argument: one or more address
|
Many operations take an optional ‘wallets’ argument: one or more address
|
||||||
indexes (expressed as a comma-separated list and/or hyphenated range) in
|
indexes (expressed as a comma-separated list and/or hyphenated range) in
|
||||||
the default or specified key-address file, each corresponding to a Monero
|
the default or specified key-address file, each corresponding to a Monero
|
||||||
|
|
@ -462,9 +463,8 @@ Tutorial above.
|
||||||
Once you’ve gained proficiency with the autosigning process and feel ready
|
Once you’ve gained proficiency with the autosigning process and feel ready
|
||||||
to delete your old hot wallets, make sure to do so securely using ‘shred’,
|
to delete your old hot wallets, make sure to do so securely using ‘shred’,
|
||||||
‘wipe’ or some other secure deletion utility.
|
‘wipe’ or some other secure deletion utility.
|
||||||
""".strip().format(
|
""".format(
|
||||||
newaddr_spec = uarg_info['newaddr_spec'].annot,
|
newaddr_spec = uarg_info['newaddr_spec'].annot,
|
||||||
label_spec = uarg_info['label_spec'].annot,
|
label_spec = uarg_info['label_spec'].annot,
|
||||||
transfer_spec = uarg_info['transfer_spec'].annot,
|
transfer_spec = uarg_info['transfer_spec'].annot,
|
||||||
sweep_spec = uarg_info['sweep_spec'].annot,
|
sweep_spec = uarg_info['sweep_spec'].annot)
|
||||||
)
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ if gc.prog_name == 'mmgen-keygen':
|
||||||
gen_clsname = 'KeyAddrList'
|
gen_clsname = 'KeyAddrList'
|
||||||
gen_desc = 'secret keys'
|
gen_desc = 'secret keys'
|
||||||
filter_codes = ['-', 'k']
|
filter_codes = ['-', 'k']
|
||||||
note_addrkey = 'By default, both addresses and secret keys are generated.\n\n'
|
note_addrkey = '\n\nBy default, both addresses and secret keys are generated.'
|
||||||
else:
|
else:
|
||||||
gen_what = 'addresses'
|
gen_what = 'addresses'
|
||||||
gen_clsname = 'AddrList'
|
gen_clsname = 'AddrList'
|
||||||
|
|
@ -86,19 +86,12 @@ opts_data = {
|
||||||
NOTES FOR THIS COMMAND
|
NOTES FOR THIS COMMAND
|
||||||
|
|
||||||
Address indexes are given as a comma-separated list and/or hyphen-separated
|
Address indexes are given as a comma-separated list and/or hyphen-separated
|
||||||
range(s).
|
range(s).{n_ak}
|
||||||
|
|
||||||
{n_addrkey}If available, the libsecp256k1 library will be used for address generation.
|
If available, the libsecp256k1 library will be used for address generation.
|
||||||
|
|
||||||
|
|
||||||
NOTES FOR ALL GENERATOR COMMANDS
|
NOTES FOR ALL GENERATOR COMMANDS{n_sw}{n_pw}{n_bw}{n_at}{n_fc}"""
|
||||||
|
|
||||||
{n_sw}{n_pw}{n_bw}
|
|
||||||
|
|
||||||
{n_at}
|
|
||||||
|
|
||||||
{n_fmt}
|
|
||||||
"""
|
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
'options': lambda proto, help_notes, cfg, s: s.format(
|
'options': lambda proto, help_notes, cfg, s: s.format(
|
||||||
|
|
@ -109,16 +102,14 @@ range(s).
|
||||||
pnm = gc.proj_name,
|
pnm = gc.proj_name,
|
||||||
what = gen_what,
|
what = gen_what,
|
||||||
cfg = cfg,
|
cfg = cfg,
|
||||||
gc = gc,
|
gc = gc),
|
||||||
),
|
|
||||||
'notes': lambda help_mod, help_notes, s: s.format(
|
'notes': lambda help_mod, help_notes, s: s.format(
|
||||||
n_addrkey = note_addrkey,
|
n_ak = note_addrkey,
|
||||||
n_sw = help_mod('subwallet')+'\n\n',
|
n_sw = help_mod('subwallet'),
|
||||||
n_pw = help_notes('passwd')+'\n\n',
|
n_pw = help_notes('passwd'),
|
||||||
n_bw = help_notes('brainwallet'),
|
n_bw = help_notes('brainwallet'),
|
||||||
n_fmt = help_notes('fmt_codes'),
|
n_fc = help_notes('fmt_codes'),
|
||||||
n_at = help_notes('address_types'),
|
n_at = help_notes('address_types'))
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -131,10 +131,8 @@ following format:
|
||||||
where ADDRTYPE_CODE is a one-letter address type code from the list below, and
|
where ADDRTYPE_CODE is a one-letter address type code from the list below, and
|
||||||
ADDR_IDX_SPEC is a comma-separated list of address indexes or hyphen-separated
|
ADDR_IDX_SPEC is a comma-separated list of address indexes or hyphen-separated
|
||||||
address index ranges.
|
address index ranges.
|
||||||
|
|
||||||
{n_at}
|
{n_at}
|
||||||
|
|
||||||
|
|
||||||
NOTES
|
NOTES
|
||||||
|
|
||||||
Message signing operations are supported for Bitcoin, Ethereum and code forks
|
Message signing operations are supported for Bitcoin, Ethereum and code forks
|
||||||
|
|
|
||||||
|
|
@ -80,9 +80,9 @@ range(s).
|
||||||
Changing either the password format (base32,base58) or length alters the seed
|
Changing either the password format (base32,base58) or length alters the seed
|
||||||
and thus generates a completely new set of passwords.
|
and thus generates a completely new set of passwords.
|
||||||
|
|
||||||
PASSWORD FORMATS:
|
|
||||||
|
|
||||||
{pfi}
|
PASSWORD FORMATS:{n_pf}
|
||||||
|
|
||||||
|
|
||||||
EXAMPLES:
|
EXAMPLES:
|
||||||
|
|
||||||
|
|
@ -104,14 +104,7 @@ EXAMPLES:
|
||||||
about inadvertent reuse of private data.
|
about inadvertent reuse of private data.
|
||||||
|
|
||||||
|
|
||||||
NOTES FOR ALL GENERATOR COMMANDS
|
NOTES FOR ALL GENERATOR COMMANDS{n_pw}{n_bw}{n_fc}"""
|
||||||
|
|
||||||
{n_pw}
|
|
||||||
|
|
||||||
{n_bw}
|
|
||||||
|
|
||||||
{n_fmt}
|
|
||||||
"""
|
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
'options': lambda cfg, help_notes, s: s.format(
|
'options': lambda cfg, help_notes, s: s.format(
|
||||||
|
|
@ -129,8 +122,8 @@ EXAMPLES:
|
||||||
fs = '", "'.join(MMGenPWIDString.forbidden),
|
fs = '", "'.join(MMGenPWIDString.forbidden),
|
||||||
n_pw = help_notes('passwd'),
|
n_pw = help_notes('passwd'),
|
||||||
n_bw = help_notes('brainwallet'),
|
n_bw = help_notes('brainwallet'),
|
||||||
pfi = help_notes('password_formats'),
|
n_pf = help_notes('password_formats'),
|
||||||
n_fmt = help_notes('fmt_codes'),
|
n_fc = help_notes('fmt_codes'),
|
||||||
gc = gc,
|
gc = gc,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,10 +70,7 @@ The --id-str option is required only for master share joins. For ordinary
|
||||||
joins it will be ignored.
|
joins it will be ignored.
|
||||||
|
|
||||||
For usage examples, see the help screen for the 'mmgen-seedsplit' command.
|
For usage examples, see the help screen for the 'mmgen-seedsplit' command.
|
||||||
|
{n_pw}{n_fc}
|
||||||
{n_pw}
|
|
||||||
|
|
||||||
{f}
|
|
||||||
"""
|
"""
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
|
|
@ -84,7 +81,7 @@ For usage examples, see the help screen for the 'mmgen-seedsplit' command.
|
||||||
gc = gc,
|
gc = gc,
|
||||||
),
|
),
|
||||||
'notes': lambda cfg, help_notes, s: s.format(
|
'notes': lambda cfg, help_notes, s: s.format(
|
||||||
f = help_notes('fmt_codes'),
|
n_fc = help_notes('fmt_codes'),
|
||||||
n_pw = help_notes('passwd'),
|
n_pw = help_notes('passwd'),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,8 @@ opts_data = {
|
||||||
-l, --locktime= t Lock time (block height or unix seconds)
|
-l, --locktime= t Lock time (block height or unix seconds)
|
||||||
(default: {bh})
|
(default: {bh})
|
||||||
""",
|
""",
|
||||||
'notes': f"""\n
|
'notes': f"""
|
||||||
|
|
||||||
This command creates two transactions: one (with the timelock) to be broadcast
|
This command creates two transactions: one (with the timelock) to be broadcast
|
||||||
on the long chain and one on the short chain after a replayable chain fork.
|
on the long chain and one on the short chain after a replayable chain fork.
|
||||||
Only {gc.proj_name} addresses may be spent to.
|
Only {gc.proj_name} addresses may be spent to.
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ opts_data = {
|
||||||
|
|
||||||
COMMANDS
|
COMMANDS
|
||||||
|
|
||||||
{ch}
|
{n_th}
|
||||||
Type ‘{pn} help <command>’ for help on a particular command
|
Type ‘{pn} help <command>’ for help on a particular command
|
||||||
"""
|
"""
|
||||||
},
|
},
|
||||||
|
|
@ -71,7 +71,7 @@ Type ‘{pn} help <command>’ for help on a particular command
|
||||||
gc = gc,
|
gc = gc,
|
||||||
),
|
),
|
||||||
'notes': lambda cfg, s, help_notes: s.format(
|
'notes': lambda cfg, s, help_notes: s.format(
|
||||||
ch = help_notes('tool_help'),
|
n_th = help_notes('tool_help'),
|
||||||
pn = gc.prog_name)
|
pn = gc.prog_name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -115,12 +115,9 @@ When bumping a swap transaction, the swap protocol’s quote server on the
|
||||||
Internet must be reachable either directly or via the SOCKS5 proxy specified
|
Internet must be reachable either directly or via the SOCKS5 proxy specified
|
||||||
with the --proxy option. To improve privacy, it’s recommended to proxy
|
with the --proxy option. To improve privacy, it’s recommended to proxy
|
||||||
requests to the quote server via Tor or some other anonymity network.
|
requests to the quote server via Tor or some other anonymity network.
|
||||||
|
{n_gl}{n_fe}{n_ts}
|
||||||
{g}{F}{s}
|
|
||||||
Seed source files must have the canonical extensions listed in the 'FileExt'
|
Seed source files must have the canonical extensions listed in the 'FileExt'
|
||||||
column below:
|
column below:{n_fc}
|
||||||
|
|
||||||
{f}
|
|
||||||
"""
|
"""
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
|
|
@ -138,10 +135,10 @@ column below:
|
||||||
dsl = help_notes('dfl_seed_len'),
|
dsl = help_notes('dfl_seed_len'),
|
||||||
cu = proto.coin),
|
cu = proto.coin),
|
||||||
'notes': lambda help_mod, help_notes, s: s.format(
|
'notes': lambda help_mod, help_notes, s: s.format(
|
||||||
g = help_notes('gas_limit', target=None),
|
n_gl = help_notes('gas_limit', target=None),
|
||||||
F = help_notes('fee'),
|
n_fe = help_notes('fee'),
|
||||||
s = help_mod('txsign'),
|
n_ts = help_mod('txsign'),
|
||||||
f = help_notes('fmt_codes')),
|
n_fc = help_notes('fmt_codes')),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ opts_data = {
|
||||||
-- -y, --yes Answer 'yes' to prompts, suppress non-essential output
|
-- -y, --yes Answer 'yes' to prompts, suppress non-essential output
|
||||||
e- -X, --cached-balances Use cached balances
|
e- -X, --cached-balances Use cached balances
|
||||||
""",
|
""",
|
||||||
'notes': '\n{c}\n{n_at}\n\n{g}{F}{x}',
|
'notes': '{n_tc}{n_at}{n_gl}{n_fe}{n_cx}',
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
'usage': lambda cfg, proto, help_notes, s: s.format(
|
'usage': lambda cfg, proto, help_notes, s: s.format(
|
||||||
|
|
@ -113,11 +113,11 @@ opts_data = {
|
||||||
x_all = fmt_list(cfg._autoset_opts['swap_proto'].choices, fmt='no_spc'),
|
x_all = fmt_list(cfg._autoset_opts['swap_proto'].choices, fmt='no_spc'),
|
||||||
x_dfl = cfg._autoset_opts['swap_proto'].choices[0]),
|
x_dfl = cfg._autoset_opts['swap_proto'].choices[0]),
|
||||||
'notes': lambda cfg, help_mod, help_notes, s: s.format(
|
'notes': lambda cfg, help_mod, help_notes, s: s.format(
|
||||||
c = help_mod(f'{target}create'),
|
n_tc = help_mod(f'{target}create'),
|
||||||
g = help_notes('gas_limit', target),
|
n_gl = help_notes('gas_limit', target),
|
||||||
F = help_notes('fee', all_coins={'tx': False, 'swaptx': True}[target]),
|
n_fe = help_notes('fee', all_coins={'tx': False, 'swaptx': True}[target]),
|
||||||
n_at = help_notes('address_types'),
|
n_at = help_notes('address_types'),
|
||||||
x = help_mod(f'{target}create_examples'))
|
n_cx = help_mod(f'{target}create_examples'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,19 +119,11 @@ opts_data = {
|
||||||
-- -y, --yes Answer 'yes' to prompts, suppress non-essential output
|
-- -y, --yes Answer 'yes' to prompts, suppress non-essential output
|
||||||
-- -z, --show-hash-presets Show information on available hash presets
|
-- -z, --show-hash-presets Show information on available hash presets
|
||||||
""",
|
""",
|
||||||
'notes': """
|
'notes': """{n_tc}{n_at}{n_gl}{n_fe}
|
||||||
{c}
|
|
||||||
{n_at}
|
|
||||||
|
|
||||||
{g}{F}
|
SIGNING NOTES{n_ts}
|
||||||
SIGNING NOTES
|
|
||||||
{s}
|
|
||||||
Seed source files must have the canonical extensions listed in the 'FileExt'
|
Seed source files must have the canonical extensions listed in the 'FileExt'
|
||||||
column below:
|
column below:{n_fc}{n_cx}"""
|
||||||
|
|
||||||
{f}
|
|
||||||
|
|
||||||
{x}"""
|
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
'usage': lambda cfg, proto, help_notes, s: s.format(
|
'usage': lambda cfg, proto, help_notes, s: s.format(
|
||||||
|
|
@ -157,13 +149,13 @@ column below:
|
||||||
x_all = fmt_list(cfg._autoset_opts['swap_proto'].choices, fmt='no_spc'),
|
x_all = fmt_list(cfg._autoset_opts['swap_proto'].choices, fmt='no_spc'),
|
||||||
x_dfl = cfg._autoset_opts['swap_proto'].choices[0]),
|
x_dfl = cfg._autoset_opts['swap_proto'].choices[0]),
|
||||||
'notes': lambda cfg, help_mod, help_notes, s: s.format(
|
'notes': lambda cfg, help_mod, help_notes, s: s.format(
|
||||||
c = help_mod(f'{target}create'),
|
n_tc = help_mod(f'{target}create'),
|
||||||
g = help_notes('gas_limit', target),
|
n_gl = help_notes('gas_limit', target),
|
||||||
F = help_notes('fee'),
|
n_fe = help_notes('fee'),
|
||||||
n_at = help_notes('address_types'),
|
n_at = help_notes('address_types'),
|
||||||
f = help_notes('fmt_codes'),
|
n_fc = help_notes('fmt_codes'),
|
||||||
s = help_mod('txsign'),
|
n_ts = help_mod('txsign'),
|
||||||
x = help_mod(f'{target}create_examples'))
|
n_cx = help_mod(f'{target}create_examples'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@ opts_data = {
|
||||||
-y, --yes Answer 'yes' to prompts, suppress non-essential output
|
-y, --yes Answer 'yes' to prompts, suppress non-essential output
|
||||||
""",
|
""",
|
||||||
'notes': """
|
'notes': """
|
||||||
|
|
||||||
With --autosign, combined with --status or --receipt, the optional index or
|
With --autosign, combined with --status or --receipt, the optional index or
|
||||||
range arg represents an index or range into the list of sent transaction files
|
range arg represents an index or range into the list of sent transaction files
|
||||||
on the removable device, in reverse chronological order. ‘0’ (the default)
|
on the removable device, in reverse chronological order. ‘0’ (the default)
|
||||||
|
|
|
||||||
|
|
@ -72,13 +72,9 @@ opts_data = {
|
||||||
to non-wallet addresses
|
to non-wallet addresses
|
||||||
-y, --yes Answer 'yes' to prompts, suppress non-essential output
|
-y, --yes Answer 'yes' to prompts, suppress non-essential output
|
||||||
""",
|
""",
|
||||||
'notes': """
|
'notes': """{n_ts}
|
||||||
{t}
|
|
||||||
Seed source files must have the canonical extensions listed in the 'FileExt'
|
Seed source files must have the canonical extensions listed in the 'FileExt'
|
||||||
column below:
|
column below:{n_fc}"""
|
||||||
|
|
||||||
{f}
|
|
||||||
"""
|
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
'options': lambda cfg, proto, help_notes, s: s.format(
|
'options': lambda cfg, proto, help_notes, s: s.format(
|
||||||
|
|
@ -93,8 +89,8 @@ column below:
|
||||||
ss_max = SubSeedIdxRange.max_idx,
|
ss_max = SubSeedIdxRange.max_idx,
|
||||||
cu = proto.coin),
|
cu = proto.coin),
|
||||||
'notes': lambda help_mod, help_notes, s: s.format(
|
'notes': lambda help_mod, help_notes, s: s.format(
|
||||||
t = help_mod('txsign'),
|
n_ts = help_mod('txsign'),
|
||||||
f = help_notes('fmt_codes')),
|
n_fc = help_notes('fmt_codes')),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,12 +119,7 @@ opts_data = {
|
||||||
-w -S, --stdout Write wallet data to stdout instead of file
|
-w -S, --stdout Write wallet data to stdout instead of file
|
||||||
-- -v, --verbose Produce more verbose output
|
-- -v, --verbose Produce more verbose output
|
||||||
""",
|
""",
|
||||||
'notes': """
|
'notes': '{n_ss}{n_sw}{n_pw}{n_bw}{n_fc}'
|
||||||
|
|
||||||
{n_ss}{n_sw}{n_pw}{n_bw}
|
|
||||||
|
|
||||||
{f}
|
|
||||||
"""
|
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
'options': lambda cfg, help_notes, s: s.format(
|
'options': lambda cfg, help_notes, s: s.format(
|
||||||
|
|
@ -134,15 +129,13 @@ opts_data = {
|
||||||
ms_max = help_notes('MasterShareIdx').max_val,
|
ms_max = help_notes('MasterShareIdx').max_val,
|
||||||
dsl = help_notes('dfl_seed_len'),
|
dsl = help_notes('dfl_seed_len'),
|
||||||
cfg = cfg,
|
cfg = cfg,
|
||||||
gc = gc,
|
gc = gc),
|
||||||
),
|
|
||||||
'notes': lambda cfg, help_mod, help_notes, s: s.format(
|
'notes': lambda cfg, help_mod, help_notes, s: s.format(
|
||||||
f = help_notes('fmt_codes'),
|
n_ss = ('', help_mod('seedsplit'))[do_ss_note],
|
||||||
n_ss = ('', help_mod('seedsplit')+'\n\n')[do_ss_note],
|
n_sw = ('', help_mod('subwallet'))[do_sw_note],
|
||||||
n_sw = ('', help_mod('subwallet')+'\n\n')[do_sw_note],
|
|
||||||
n_pw = help_notes('passwd'),
|
n_pw = help_notes('passwd'),
|
||||||
n_bw = ('', '\n\n'+help_notes('brainwallet'))[do_bw_note]
|
n_bw = ('', help_notes('brainwallet'))[do_bw_note],
|
||||||
)
|
n_fc = help_notes('fmt_codes'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -86,10 +86,7 @@ opts_data = {
|
||||||
-U, --wallet-rpc-user=user Wallet RPC username (currently: {cfg.monero_wallet_rpc_user!r})
|
-U, --wallet-rpc-user=user Wallet RPC username (currently: {cfg.monero_wallet_rpc_user!r})
|
||||||
-P, --wallet-rpc-password=pass Wallet RPC password (currently: [scrubbed])
|
-P, --wallet-rpc-password=pass Wallet RPC password (currently: [scrubbed])
|
||||||
""",
|
""",
|
||||||
'notes': """
|
'notes': '{n_xw}'
|
||||||
|
|
||||||
{xmrwallet_help}
|
|
||||||
"""
|
|
||||||
},
|
},
|
||||||
'code': {
|
'code': {
|
||||||
'options': lambda cfg, help_notes, s: s.format(
|
'options': lambda cfg, help_notes, s: s.format(
|
||||||
|
|
@ -101,7 +98,7 @@ opts_data = {
|
||||||
tp = fmt_dict(xmrwallet.tx_priorities, fmt='equal_compact')
|
tp = fmt_dict(xmrwallet.tx_priorities, fmt='equal_compact')
|
||||||
),
|
),
|
||||||
'notes': lambda help_mod, s: s.format(
|
'notes': lambda help_mod, s: s.format(
|
||||||
xmrwallet_help = help_mod('xmrwallet')
|
n_xw = help_mod('xmrwallet')
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue