Commit graph

68 commits

Author SHA1 Message Date
chris-belcher
c1f34f08c5
Merge #544: Fidelity bond wallets
6b41b8b Disable creation of fidelity bond wallets (chris-belcher)
869ef55 Disable loading of fidelity bond wallets by Qt (chris-belcher)
14f086b Add usage guide for fidelity bond wallets (chris-belcher)
2860c4f Freeze timelocked UTXOs with locktimes in future (chris-belcher)
ddb32ce Rename functions to say "key" instead of "privkey" (chris-belcher)
c70183b Create tests for fidelity bond wallets (chris-belcher)
a0a0d28 Add support for spending timelocked UTXOs (chris-belcher)
762b1f6 Add watch only wallets for fidelity bonds (chris-belcher)
a937c44 Add wallet-tool addtxoutproof method (chris-belcher)
97216d3 Sync burner outputs and display in wallet-tool (chris-belcher)
255d155 Add merkle proof functions to BitcoinCoreInterface (chris-belcher)
2271ce0 Add support for burning coins with sendpayment (chris-belcher)
dc715c9 Add timelock fidelity bond wallet sync and display (chris-belcher)
ee70cd7 Add support for OP_CLTV timelock addresses (chris-belcher)
d86df33 Rename functions which create multisig scripts (chris-belcher)
53b056e Rename variable internal to address_type (chris-belcher)

Tree-SHA512: 9f24000b0ebb4524b30c8afaa4416e516c7241c565dd21a96f83b70d6b6c42e83ad20bfd4f6e85545a855af4fcfd6065feb674f5ed270ca51ac814b4c3684ab4
2020-06-02 22:25:36 +01:00
chris-belcher
2271ce05d7
Add support for burning coins with sendpayment
Users burn coins by passing "BURN" as an address to sendpayment
2020-06-02 21:33:17 +01:00
Adam Gibson
ec2fd725ad
Change initial fee guess logic in taker scripts
As per discussion in #569 the use of options.txfee
to set fee rates conflicted with its earlier use
to make a first guess of fees for user warnings.
Now this connection is removed, the guess for warning
calculation is done independent of this option setting.
2020-05-11 11:22:11 +01:00
Kristaps Kaupe
3876c1cf97 Change shebang to python3 and +x for scripts 2020-05-04 23:48:19 +03:00
Kristaps Kaupe
4eced504b2
Add BIP21 support for Payjoin 2020-05-03 12:13:55 +03:00
Kristaps Kaupe
faaf51eada
Add BIP21 bitcoin payment URI support to sendpayment.py 2020-04-26 23:34:11 +03:00
Kristaps Kaupe
5976db7d4f
Abort single join early if maker count below minimum_makers 2020-03-29 02:19:48 +02:00
James Hilliard
b3e9a6f270 Fix sweep in scripts/sendpayment.py 2020-03-05 13:16:23 -07:00
Kristaps Kaupe
f51990900f
Check against dust threshold for single joins 2020-02-29 19:04:58 +02:00
James Hilliard
4bf1f50d4e Remove Python 2 compatibility imports and disable Python 2 installation in setuptools. 2020-01-19 11:31:57 -07:00
Adam Gibson
8c8e6e2fa8
Move all user data to home directory
To facilitate easier management by users and to
follow generally accepted standards, this PR moves
the following all to user home directory, subdir
.joinmarket :
joinmarket.cfg file
wallets/ directory
logs/ directory
cmtdata/ directory
commitmentlist file

User can override location with --datadir option.
An info message is added on startup showing location.
2020-01-06 13:49:47 +00:00
chris-belcher
c52d1fb0d6
Merge #387: Implement 2/2019 plan to improve tumbler privacy
32479ae Modify tumbler defaults to improve privacy (chris-belcher)
b79d34a Remove amountpower and use uniform distn instead (chris-belcher)
f40ef2c Occasionally round amounts in tumbler schedule (chris-belcher)
35f23eb Add sweep coinjoins to start of tumbler schedule (chris-belcher)

Tree-SHA512: 8b1dc978b69deccc62cec43d22254a18f4860aae6fd87026e7b86d8f537a302ec5ed34f26efa04e1e29648cabe9dac57e0b452fa9fe6f74f6a22b0ce6b2be04a
2019-11-23 11:07:27 +00:00
Adam Gibson
d9bcca3901
Allow custom schedules to work again after #367
PR #367 and follow up edits were designed to give a sanity
check to users for fees, but require specifying a payment
amount, this could be generalised to custom schedules but
for now the simplest change is to remove this check for
schedules. Thanks to @roshii for flagging the error.
2019-11-18 17:17:46 +00:00
cindiv
52108b62d8 Update exit codes
Many exit codes were 0 (success) when they should have been 1
(general failure) or 2 (argument error). This corrects that.

Related: #409
2019-11-17 03:51:04 +00:00
chris-belcher
f40ef2c795
Occasionally round amounts in tumbler schedule
The schedule format gets an extra field added denoting the number of
significant figures to round the coinjoin amounts to, with 16 meaning
no rounding.

This is part of the 2/2019 Plan to improve the privacy of JoinMarket's
tumbler script:
https://gist.github.com/chris-belcher/7e92810f07328fdfdef2ce444aad0968
2019-11-14 17:49:06 +00:00
Kristaps Kaupe
b2e4308a90
Allow both BTC and sat amounts for single send / CJ 2019-11-08 00:37:09 +02:00
cindiv
b83e27c391 Add --wallet-password-stdin
Related: Issue #409
2019-11-02 19:01:08 +00:00
AlexCato
0ab5b6560c Redefine cli-option --txfee: Treat it as txfee to be used
in the JM TX's instead of just for preliminary
    estimations. Now it is a way to temporarily override
    the tx_fees setting in joinmarket.cfg and behaves
    exactly the same way as describes there.
2019-10-30 08:58:13 +01:00
AdamISZ
c654de05ff
Wallet and blockchain refactoring
Introduces WalletService object which is in control of
blockchain and wallet access.
The service manages a single transaction monitoring loop,
instead of multiple, and allows updates to the wallet from
external sources to be handled in real time, so that both Qt
and other apps (yg) can respond to deposits or withdrawals
automatically.
The refactoring also controls access to both wallet and
blockchain so that client apps (Taker, Maker) will not need
to be changed for future new versions e.g. client-side filtering.
Also updates and improves Wallet Tab behaviour in Qt (memory
of expansion state).
Additionally, blockchain sync is now --fast by default, with
the former default of detailed sync being renamed --recoversync.
2019-10-25 11:33:39 +01:00
AlexCato
d62a3001bc Fix sweeps with N=0 counterparties, which otherwise fails because the amount was changed from 0 too early 2019-08-21 17:24:30 +02:00
AlexCato
b656f85344 Sendpayment/Tumbler: fix division by 0 error on sweeps 2019-08-20 22:42:17 +02:00
AlexCato
af11116ad7 Estimate tx fees for sendpayment or full tumbler run and
warn the user if the tx fee estimation exceeds 5% of
the funds to be coinjoined/tumbled.
2019-08-18 12:13:37 +02:00
Kristaps Kaupe
5026809a5a Don't ask for maxcjfee limits when manual order picking is selected 2019-02-11 01:02:05 +02:00
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