Commit graph

45 commits

Author SHA1 Message Date
AdamISZ
1c3a15343c
graceful sender-side timeout of PayJoin if fails 2019-01-25 18:12:39 +01:00
AdamISZ
9e7b619aff
bugfix jmprint call in taker_finished 2019-01-24 14:18:10 +01:00
AdamISZ
fd5e6d8d8b
Fixes #305
Previous to this commit, a user could create a direct payment or
Joinmarket coinjoin inadvertently by not using the correct arguments
to sendpayment.py (missing -T or setting -N0). After this commit,
the correct number of arguments (3) are insisted on, and -T takes
precedence over -N 0.
2019-01-21 16:17:21 +01:00
AdamISZ
28abddf062
Implement payjoin (p2ep) direct payment joins
- update mktx() to allow optional locktime setting (and sequence)
- add a mk_shuffled_tx method to the wallet module
- add a P2EPTaker and P2EPMaker class (inherit from Taker, Maker)
- add a -T option to sendpayment script for doing payjoins
- add a receive_payjoin script for receivers.
- add payjoin tests in jmclient/test/test_payjoin.py
- add a custom utxo selection method select_one_utxo to support.py
- support bech32 wallets (SegwitWallet, p2wpkh) with native=true
  in config POLICY for PayJoin and direct send (not Joinmarket CJ)
- add a PayJoin.md usage guide in docs/
- include version bytes in pubkey message for forward compat
- taker pays fees but controls size (utxo number and fee/kB)
- add P2WPKH fee estimator
- Enforce INFO level logging in payjoin
- refactors regtest config settings into one place
- bugfix: script_to_address vbyte argument is bytes not integer
2019-01-19 16:46:40 +01:00
AdamISZ
c139067be4
Include chromalog package for colorized logs
Also use this lib to print non-log messages with
standardized color formats.
Some clean up in jmbase, remove unused objects/methods.
2019-01-14 15:25:59 +01:00
James Hilliard
6dc3504f8a Convert jmclient to py3 style 2018-12-06 02:40:36 +08:00
undeath
a2c74ee563
add random-under-max order chooser 2018-11-01 23:44:54 +01:00
AdamISZ
697d8d7691
bugfix: sendpayment invalid reference to userpcwallet 2018-10-28 17:28:59 +01:00
undeath
392188209c change wallet mixdepth behaviour 2018-10-27 19:02:59 +02:00
undeath
bdbf62b3c0 fix flake8 warning 2018-10-27 14:01:14 +02:00
undeath
03ee77b96b
fix issues highlighted by flake8 2018-10-08 00:07:28 +02:00
undeath
1451c9e3ae remove unused imports 2018-08-19 18:21:28 +02:00
undeath
34f8600996 fix wallet syncing 2018-08-07 14:17:21 +02:00
undeath
995c123eec replace old wallet implementation with new one 2018-08-07 14:16:13 +02:00
AdamISZ
3bb6c785ff
Fixes bugs in restart-with-subset including #169; see PR for more 2018-07-22 16:13:37 +02:00
Adam Gibson
b741b24764
Allow sendpayment to restart with honest makers
If N makers are chosen and M fail to respond with sig,
this alteration to taker code allows restart of
entire transaction with that specific subset of makers (N-M)
that originally responded honestly.
2018-07-15 16:19:58 +02:00
AdamISZ
619b4a123f
Add support for taker using a non-segwit wallet
As for maker, to use this feature set segwit = false
in the POLICY section of the config file.
This commit does *not* include support in the GUI.
Additionally, minor fixes to utility scripts for non-sw wallets,
and updated add-utxo tool to support non-sw wallets.
Bugfixes to wallet_utils to support non-sw wallets
and signmessage.
2018-05-03 16:47:59 +02:00
AdamISZ
836dbc8d37
Full tx flow working on regtest/electrumX
taker side tx watcher fixed, detect p2pkh scripts in jmbitcoin
2017-09-16 16:54:11 +02:00
AdamISZ
5ebeb45786
fix maxmixdepth bug if requested higher than default 2017-09-03 15:10:21 +03:00
Adam Gibson
a46dbf5cfd
bugfix fee estimate 2017-08-25 21:14:29 +03:00
Adam Gibson
d50cc0eca8
Overhall bci to use twisted only, no threads
Updates to joinmarket-qt to reflect; no signals, only callbacks
Includes code for watching txs both via notify addr and txs;
taker uses the latter (knows full txid), maker the former
Additional code for watching tx spends included for downstream.
2017-08-17 20:07:35 +03:00
Adam Gibson
57116bff52
Legacy wallet direct-send support 2017-07-20 21:33:35 +03:00
Adam Gibson
bba43dbf2a
Added yieldgen functionality, both sides using segwit wallets. 2017-07-18 14:37:13 +03:00
Adam Gibson
caac18734d wallet-tool and directsend segwit working 2017-07-01 22:35:30 +03:00
Adam Gibson
3a43869ddf
Support direct send in Qt
via 0 entry in num counterparties. Modify tooltip to reflect.
Rename tumble_support to taker_utils for generic Taker code.
Refactor direct_send function to that module, shared with
sendpayment CLI script.
2017-02-27 14:46:45 +02:00
Adam Gibson
0752f4df58
Track state in Qt UI to enable actions for single/multi join.
Created simple state tracking class SpendStateMgr.
Also: remove stale comments and test code from sendpayment.
Also: don't continue aborted Taker in stallMonitor.
2017-02-21 15:53:58 +02:00
Adam Gibson
a7fb49fd75
Add direct-send to sendpayment 2017-02-13 16:04:49 +02:00
Adam Gibson
79cd916f58
Clean up log spam, finish on unconfirmed for sendpayment
Removed the full orderbook printout from even debug log; far
too big on mainnet. Also removed low level IRC logging, such
as MOTD and quit messages, this can be revisited if needed.
Sendpayment script should quit as soon as the final tx in the
schedule is seen on the network; no value in waiting for
confirmation.
2017-02-13 15:39:45 +02:00
Adam Gibson
dd8e441d95
Update utxo state inbetween runs using wallet functions
Also fix minor bug in blockr interface: a repeated sync in the same
run must reset the index to zeros.
2017-02-11 21:09:08 +02:00
Adam Gibson
074afc3106
Permit restart of tumbler with flag, persist state of tumbler in schedule file.
Also fixes minor bug in blockr data read.
Modifies schedule syntax to include complete/incomplete flag, so if
restart is chosen then the schedule is continued from the first
incomplete transaction in the sequence.
2017-02-10 14:42:45 +02:00
Adam Gibson
28e36a9477
change waittime between txs to minutes 2017-02-08 22:39:57 +02:00
Adam Gibson
21a0e499cf
Human readable tumbler log entries 2017-02-07 20:46:24 +02:00
Adam Gibson
ad0f407d0c
Tweak tumble schedule on failure to retry more effectively.
Separate tumbler log.
Also change schedules to lists from tuples for modification.
2017-02-07 15:24:13 +02:00
Adam Gibson
1cec53b7d5
Implemented tumbler
Refactor parsers into separate module (more code reuse to do).
Add a tumbler schedule generator in jmclient/schedule.py.
Alter syntax of schedules; taker interprets fractional amounts
as percentage of mixdepth (for tumbler), and integers as satoshi,
zero still sweep.
TODO tumbler is only a minor delta from sendpayment, fold them together.
2016-12-27 17:01:57 +02:00
Adam Gibson
47512a66db
can run daemon in same process as client; added DAEMON section to cfg 2016-12-26 16:20:33 +02:00
Adam Gibson
c1eb37af23
fix refactor bugs in sendpayment 2016-12-07 21:01:27 +02:00
Adam Gibson
bb07a09e25
a lot more coverage of jmclient; only client_protocol left 2016-12-06 23:44:39 +02:00
Adam Gibson
7714d0db53
Test coverage of support.py in jmclient
Also added some blockr tests (not complete). Minor packaging
changes, in particular pick_orders removed from package as
requires user intervention, moved to sendpayment.py for now.
2016-12-04 21:42:14 +02:00
Adam Gibson
7a1354fa22
Add test coverage of Taker
Also, some minor changes: filter_orders_callback taken outside
Taker since it involves user input necessarily. Related, answeryes
removed from module, can be done outside.
Donation code explicitly removed from all code branches for now.
A couple of very minor changes thrown up from testing.
Coverage of Taker now 100%, will work on the rest of jmclient.
2016-12-03 17:15:50 +02:00
Adam Gibson
68aec9c3dd
Refactor daemon protocol to jmdaemon package in prep. for binary.
Change default port to 27183.
Fix ref to location of commands module.
2016-11-26 17:50:08 +02:00
Adam Gibson
dfae19302a
add fastsync to sendpayment 2016-11-25 16:32:52 +02:00
Adam Gibson
027a7643fd
schedules read from files; joinmarketd state bugfix on ioauth receipt
New module jmclient.schedule currently only parses schedule files,
and returns an array of tuples as a schedule.
Option added to sendpayment (-S) to pass in a schedule file, instead
of using command line arguments (still valid for single joins).
Added intermediate state to daemon to track whether ioauths have been
already sent, to prevent duplicate sending on timeout.
2016-11-25 15:49:18 +02:00
Adam Gibson
e6b6a1aa7f
default filter orders for CLI sendpayment, add answeryes option 2016-11-24 00:35:54 +02:00
Adam Gibson
7dccb815ff Taker now schedules a sequence of transactions 2016-11-23 21:52:56 +02:00
Adam Gibson
6f12b59d9d
reorg user scripts to scripts dir 2016-11-23 20:08:03 +02:00
Renamed from sendpayment.py (Browse further)