@ -5,7 +5,7 @@ import sqlite3
import binascii
from datetime import datetime
from calendar import timegm
from optparse import OptionParser
from optparse import OptionParser , IndentedHelpFormatter
from numbers import Integral
from collections import Counter
from itertools import islice
@ -29,29 +29,36 @@ DEFAULT_MIXDEPTH = 4
def get_wallettool_parser ( ) :
description = (
' Use this script to monitor and manage your Joinmarket wallet. \n '
' The method is one of the following: \n '
' (display) Shows addresses and balances. \n '
' (displayall) Shows ALL addresses and balances. \n '
' (summary) Shows a summary of mixing depth balances. \n '
' (generate) Generates a new wallet. \n '
' (changepass) Changes the encryption passphrase of the wallet. \n '
' (history) Show all historical transaction details. Requires Bitcoin Core. '
' (recover) Recovers a wallet from the 12 word recovery seed. \n '
' (showutxos) Shows all utxos in the wallet. \n '
' (showseed) Shows the wallet recovery seed and hex seed. \n '
' (importprivkey) Adds privkeys to this wallet, privkeys are spaces or commas separated. \n '
' (dumpprivkey) Export a single private key, specify an hd wallet path \n '
' (signmessage) Sign a message with the private key from an address in \n '
' the wallet. Use with -H and specify an HD wallet path for the address. \n '
' (freeze) Freeze or un-freeze a specific utxo. Specify mixdepth with -m. \n '
' (gettimelockaddress) Obtain a timelocked address. Argument is locktime value as yyyy-mm. For example `2021-03` \n '
' (addtxoutproof) Add a tx out proof as metadata to a burner transaction. Specify path with '
' -H and proof which is output of Bitcoin Core \' s RPC call gettxoutproof \n '
' (createwatchonly) Create a watch-only fidelity bond wallet ' )
# optparse munges description paragraphs. Here we
# have a big, complex paragraph which we need to control:
class IndentedHelpFormatterWithNL ( IndentedHelpFormatter ) :
def format_description ( self , description ) :
return description
description = """ Use this script to monitor and manage your Joinmarket wallet.
The method is one of the following :
( display ) Shows addresses and balances .
( displayall ) Shows ALL addresses and balances .
( summary ) Shows a summary of mixing depth balances .
( generate ) Generates a new wallet .
( changepass ) Changes the encryption passphrase of the wallet .
( history ) Show all historical transaction details . Requires Bitcoin Core .
( recover ) Recovers a wallet from the 12 word recovery seed .
( showutxos ) Shows all utxos in the wallet .
( showseed ) Shows the wallet recovery seed and hex seed .
( importprivkey ) Adds privkeys to this wallet , privkeys are spaces or commas separated .
( dumpprivkey ) Export a single private key , specify an hd wallet path .
( signmessage ) Sign a message with the private key from an address in
the wallet . Use with - H and specify an HD wallet path for the address .
( freeze ) Freeze or un - freeze a specific utxo . Specify mixdepth with - m .
( gettimelockaddress ) Obtain a timelocked address . Argument is locktime value as yyyy - mm . For example ` 2021 - 03 ` .
( addtxoutproof ) Add a tx out proof as metadata to a burner transaction . Specify path with
- H and proof which is output of Bitcoin Core \' s RPC call gettxoutproof.
( createwatchonly ) Create a watch - only fidelity bond wallet .
"""
parser = OptionParser ( usage = ' usage: % prog [options] [wallet file] [method] [args..] ' ,
description = description )
description = description , formatter = IndentedHelpFormatterWithNL ( ) )
add_base_options ( parser )
parser . add_option ( ' -p ' ,
' --privkey ' ,