You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Adam Gibson 57116bff52
Legacy wallet direct-send support
9 years ago
..
cmtdata Add commitments tools 9 years ago
logs Ignore *.egg-info, and scripts/logs/*.schedule 9 years ago
wallets schedules read from files; joinmarketd state bugfix on ioauth receipt 9 years ago
README.md fix scripts readme formatting 9 years ago
add-utxo.py a lot more coverage of jmclient; only client_protocol left 9 years ago
cli_options.py allow non-zero starting mixdepth in tumbler 9 years ago
joinmarket-qt.py update Taker code to use segwit wallet 9 years ago
joinmarketd.py Optional TLS client-server comms 9 years ago
qtsupport.py Qt: reset tumbler defaults to normal (non-test) values 9 years ago
sample-schedule-for-testnet extra features for test running (ygrunner) 9 years ago
sendpayment.py Legacy wallet direct-send support 9 years ago
sendtomany.py Add commitments tools 9 years ago
tumbler.py tumbler now working for segwit 9 years ago
wallet-tool.py complete rebase onto wallet-tool refactor 9 years ago
yield-generator-basic.py make YGBasic part of jmclient package for reuse 9 years ago

README.md

Command line scripts for Joinmarket

All user level scripts here.

(The phrase "normal Joinmarket" in the below refers to the existing repo.

The subdirectories logs and wallets have the same role as in normal Joinmarket. The subdirectory cmtdata contains only your commitments.json storage of your used commitments (ignored by github of course!). The filename is set in joinmarket.cfg.

The joinmarket.cfg will be created and maintained in this directory.

Brief explanation of the function of each of the scripts:

sendpayment.py

Either use the same syntax as for normal Joinmarket:

`python sendpayment.py --fast -N 3 -m 1 -P wallet.json 50000000 <address>`

or use the new schedule approach. For an example, see the sample schedule file. Do:

`python sendpayment.py --fast -S sample-schedule-for-testnet wallet.json`

Note that the magic string INTERNAL in the file creates a payment to a new address in the next mixdepth (wrapping around to zero if you reach the maximum mixdepth).

To pay a fraction of the total in a mixdepth you can simply make the amount field in the schedule a decimal instead of an integer (0.0 < amt < 1.0 of course).

The schedule file can have any name, and is a comma separated value file, the lists must follow that format; see the comment in the sample file above (each list is length 5 items).

*This part can be ignored for a first run:

Additional fields in config: in the config section [DAEMON] you can specify whether to run the daemon as a separate process or not. By default, the daemon will run in the same Python process, for maximum convenience, so you needn't separately start joinmarketd.py (see below).

You can run the daemon separately by setting nodaemon=0 in [DAEMON]. You can choose to use ssl within this single-process configuration with use_ssl=true (again, see below for more on this).*

tumbler.py

This is an extension of the functionality of sendpayment.py in that it auto-generates a schedule of payments to internal and external addresses, following the same algo as in normal Joinmarket and described here.

For detailed information on how to use this, please read this.

wallet-tool.py

This is the same as in normal Joinmarket.

joinmarketd.py

This file's role is explained in the main README in the top level directory. It only takes two arguments, the port it serves on (default 27183), and whether to use TLS for client-server communication (default 0=no tls, 1=tls):

`python joinmarketd.py [port number] [1/0]`

To use tls you must create a key.pem and cert.pem in a subdirectory /ssl, representing a self-signed certificate. This needs some work to be cleaned up, but does work already.

add-utxo.py

This works exactly as in normal Joinmarket, with the exception of the location of the commitments.json file, explained above.

sendtomany.py

As above.