Commit graph

410 commits

Author SHA1 Message Date
undeath
ddcfd608e4
simplify ob-watcher.py static file serving code 2021-02-10 17:54:07 +01:00
3nprob
693609e095 Vendorize js and css dependencies 2021-02-10 22:59:35 +09:00
Adam Gibson
990faace9f
Add release notes and version for 0.8.1 2021-02-09 17:57:49 +00:00
Kristaps Kaupe
8526d73014
Add signet support 2021-01-30 22:12:00 +02:00
Kristaps Kaupe
184c27483d
Delete logs and wallets subdirectories from scripts directory.
They were moved to datadir long time ago.
2021-01-25 20:05:58 +02:00
dchoe
a490ddf3d1
Move YG settings to a config file
Allow YG settings to be saved to joinmarket.cfg.
Before this commit, yield generator settings were
set inside the python script, which is not good.
After this commit, the order of precedence for the
settings for a yield generator is:
* Command line arguments, or
* Settings in [YIELDGENERATOR] in joinmarket.cfg, or
* default config settings in jmclient.configure.py
2021-01-20 12:45:47 +00:00
Adam Gibson
462a95db1e
Allow schedule files without payment arguments.
Fixes #778. Prior to this commit, attempting to run
sendpayment with a schedule specified with -S would
fail due to a bug. This is now fixed, and the
sendpayment help message now accurately reflects the
facts that no arguments other than the wallet name are
needed in case -S is used.
2021-01-13 16:47:41 +00:00
ph0cion
6e51e8c4e3
Update README.md 2021-01-10 13:48:10 -05:00
Erik Arvstedt
00be3a3748 ob-watcher: Use relative links
Using relative links instead of root-relative links allows hosting ob-watcher with an
arbitrary URL path prefix, like 'orderbook' (https://example.com/orderbook).
2021-01-01 14:27:45 +01:00
Kristaps Kaupe
bcfa7eb4ea
Merge #758: genwallet p2sh -> p2wpkh
0cd8a73a26 genwallet p2sh -> p2wpkh (nixbitcoin)

Pull request description:

  This PR updates `scripts/genwallet.py` to generate native segwit/bech32 wallets in line with JoinMarket release v0.8.0.

ACKs for top commit:
  kristapsk:
    ACK 0cd8a73a26

Tree-SHA512: 00d4e843bbf12d93855f7741c1321b929278e28545fd02cce51dd6587b7f400fbaeae423f2568e23012271338ba4e1f1f0d8fab6b8fa93eedd5c6e90e48767e8
2020-12-13 19:39:11 +02:00
nixbitcoin
0cd8a73a26
genwallet p2sh -> p2wpkh 2020-12-13 15:59:44 +00:00
Adam Gibson
743de9cc9f
Merge #747: Fix bugs in utxo parsing in add-utxo.py
f21c905 Fix bugs in utxo parsing in add-utxo.py (Adam Gibson)
2020-12-09 16:02:07 -03:00
Adam Gibson
f21c905128
Fix bugs in utxo parsing in add-utxo.py
Fixes #743. The utility function `get_utxo_info`
tests the validity of the utxo string and the private
key, so there is no need to repeat this test; but we
need to add utxo data in binary format, so an option
is included to return it in this form.
The 4 ways of adding external commitments were tested
as all working after this commit: read in from json,
read in from file (csv format), read in from command
line and read from wallet.
Also fixes #741 - help message refers to correct
scriptpubkey types.
2020-12-09 15:59:25 -03:00
Adam Gibson
8cdf3e0a4a
address comments of @kristapsk and @PulpCattel 2020-12-01 16:25:45 +00:00
Adam Gibson
bb15aa0312
Quiet/make more accurate fee information in sends
Fixes #736. Prior to this commit, the 'relay fee floor'
was being shown at INFO level in the command line output,
but not the actual feerate paid (in direct send scenarios;
the coinjoin scenario is rather more complex since fees are
not known before negotiation flow, but estimates are printed).
After this commit, the output at INFO level for direct
sends shows specifically the feerate and then the actual fee,
with min relay feerate relegated to DEBUG messages only, for
cases of manual feerate setting.
There is also some minor cleanup in comments and coinjoin fee
estimate messages are removed for non-coinjoins.
2020-11-30 16:43:50 +00:00
Adam Gibson
13661583b9
update version to 0.8.1dev 2020-11-29 13:07:33 +00:00
Adam Gibson
a6c2d68810
Add release notes and version for 0.8.0 2020-11-27 11:50:41 +00:00
Adam Gibson
8f8c52afb2
Merge #729: Update commitments utility scripts
cc78dae Update commitments utility scripts (Adam Gibson)
2020-11-24 10:00:34 +00:00
Adam Gibson
d1ae07d81d
set default txfee contrib to zero, improve error message 2020-11-23 12:45:00 +00:00
Adam Gibson
cc78daead9
Update commitments utility scripts
This commit updates sendtomany.py and add-utxo.py to reflect
the new default wallet type (p2wpkh) and the new bitcoin
backend code; in doing this it slightly modifies the functions
in commitment_utils.py.
2020-11-13 17:33:44 +00:00
Adam Gibson
97f941e255
Merge #726: Remove twisted logging on testnet
44c9dcd Remove twisted logging on testnet (Kristaps Kaupe)
2020-11-13 10:06:03 +00:00
Kristaps Kaupe
6aa300ae8e
Fix relunit selector 2020-11-13 11:48:10 +02:00
Adam Gibson
ebd54d68e1
Bugfix: yg-privacyenhanced non-integer fees
Before this commit, the yg-privacyenhanced.py script,
which always randomizes coinjoin fees, was not including
`sw0absoffer` in the offertypes for which the randomized
fee must be kept as an integer, not as a decimal, resulting
in those offers being ignored by other bots.
After this commit, `sw0absoffer` (as well as `swabsoffer`)
offers always use integer coinjoin fees, as intended.
2020-11-12 15:44:55 +00:00
Kristaps Kaupe
44c9dcde65
Remove twisted logging on testnet 2020-11-11 04:33:41 +02:00
Adam Gibson
3c96d412e1
Several tweaks for bech32 orderbook, plus docs
* yg scripts set reloffer/absoffer only:

Prior to this commit, the yield generator user
level scripts required the user to specify offer
types depending on the wallet, but only 'rel/abs'
distinction is user choice; the other element
(native segwit, p2sh or p2pkh) must be defined
by the wallet, so we now call `wallet.get_txtype()`
to translate from reloffer/absoffer to sw0.. etc.

* Taker chooses nversion, nlocktime per wallet type:

Takers who are still using p2sh-p2wpkh wallets will
not want to flag their transactions with different
tx metadata than previous versions that are still
running, so we check the `get_txtype()` output to
decide which nVersion and nLockTime to use.
Also, the SNICKER locktime is reverted to zero as
according to draft spec.

* change offer type in test_coinjoin

* update docs for bech32 wallets
2020-11-10 15:28:05 +00:00
Jules Comte
9e66bc54af Update ob-watcher 2020-11-07 22:23:16 -05:00
Jules Comte
ab87db2477 Create native segwit v0 order type
Note: The defaults for the fake offer and yg-privacyenhanced remain
on nested segwit
2020-11-06 18:34:27 -05:00
Kristaps Kaupe
1b6beda013
Remove /shutdown from ob-watcher
1) It is bad, people run public orderbooks;
2) It is broken anyway, both by throwing exception and then reconnecting
   to IRC servers instead of shutdown;
3) Same can be achieved locally by killing / restarting ob-watcher.py,
   if somebody wants such functionality from web interface, some access
   control needs to be introduced.
2020-10-28 00:41:50 +02:00
Adam Gibson
db7dd77403
update version and release notes 0.7.2 2020-10-27 12:07:28 +00:00
Adam Gibson
3b4683527e
Merge #705: QR code support for BIP78 payjoin receiver in Qt GUI
7414959 QR code support for BIP78 payjoin receiver in Qt GUI (Kristaps Kaupe)
2020-10-18 16:42:11 +01:00
Adam Gibson
fa65f7e536
update version to 0.7.2dev 2020-10-15 15:31:33 +01:00
Kristaps Kaupe
7414959604
QR code support for BIP78 payjoin receiver in Qt GUI 2020-10-14 19:55:20 +03:00
Adam Gibson
c7ee7ecf71
bugfix: remove P2EP factory from joinmarketd 2020-10-14 15:48:01 +01:00
Adam Gibson
cdccb958b6
Add release notes and update version 0.7.1 2020-10-13 12:04:51 +01:00
Adam Gibson
68cf5de051
Merge #696: Fix relfee cjfee display issues caused by the use of float in ob-watcher.py
942ea58 Fix relfee cjfee display issues caused by the use of float (Kristaps Kaupe)
2020-10-10 14:32:43 +02:00
Kristaps Kaupe
942ea588bb
Fix relfee cjfee display issues caused by the use of float 2020-10-08 03:57:49 +03:00
Adam Gibson
5604857ec1
quit scripts gracefully on walletservice rpc startup failure 2020-10-07 16:05:37 +02:00
Adam Gibson
5af2d49a8a
handle Qt wallet load failure 2020-10-05 13:16:49 +02:00
Adam Gibson
a2aafd254d
Fixes #673. Shutdown cleanly on failure to access blockheight
Prior to this commit, in case an RPC failure occurred when
accesing the block height, the program would continue but the
wallet would be in an un-writeable state (for command line
programs, specifically yield generators; for Qt the shutdown
would occur).
This commit slightly cleans up the process of shutting down,
ensuring that duplicate shutdown calls do not result in
stack traces. It also ensures that also for command line
programs, the application will immediately shutdown if the
regular heartbeat call to query the block height fails, as this
risks inconsistencies in the wallet (though the previous
situation luckily did not result in this as the call to
BaseWallet.close() resulted in the wallet being read only).
A future PR should develop a more sophisticated approach to
RPC call failures that may allow the program to wait.

stopservice
2020-10-01 15:25:39 +01:00
Adam Gibson
6545f36d60
Merge #688: Add genwallet.py script
2f53c5f add create_wallet tests (Adam Gibson)
93f0a67 Add genwallet.py script (nixbitcoin)
2020-09-27 23:40:25 +01:00
Kristaps Kaupe
2076dbff7d
Improve checks for send ("Single Join") in GUI 2020-09-25 02:29:23 +03:00
Adam Gibson
9886553865
Adds close button to BIP78 receiver dialog
Prior to this commit, the cancel button remained
activated when the BIP78 payjoin processing had
completed, either successfully or unsuccessfully
which could be confusing for the user.
After this commit, when the processing is complete,
the JMBIP78ReceiverManager object fires the shutdown
callback, which Qt uses to signal the dialog, which
then updates to disable the Cancel button and show
the Close button.
Additionally, line breaks were added to make tooltips
more readable.
2020-09-24 17:09:47 +01:00
Adam Gibson
acc00fc6f5
Merge #682: BIP78 receiver over a Tor hidden service.
23d0b8f BIP78 receiver over a Tor hidden service. (Adam Gibson)
2020-09-24 14:13:26 +01:00
Adam Gibson
23d0b8f39c
BIP78 receiver over a Tor hidden service.
This commit implements a command line script and a GUI
dialog to receive a payment using the BIP78 protocol,
by setting up an ephemeral hidden service.

It also deprecates the pre-existing inter-Joinmarket
protocol for payjoin payments, since we now have
both sending and receiving support for BIP78. Thus,
much code in Maker, Taker and client-daemon protocol
is removed, as is some documentation in docs/PAYJOIN.md.
Also the script `sendpayment.py` is altered to support
only the BIP78 variant.

The test in jmclient/test/test_payjoin now implements
BIP78 over a TCP connection, while the custom tests in
test/payjoinserver.py can support hidden service based
tests, but the latter is not included in the test suite
and may not always work (it is only for manual
investigations).

The following features of BIP78 are supported:
minfeerate
additionalfeeoutputindex - but *only* for single
change output transactions
maxadditionalfeecontribution

The receiver does not have nor request payment
output substitution.

Utxo selection is no longer sophisticated, instead
we only choose a single utxo to keep the size
increase of the transaction minimal. Thus UIH is
not addressed at the moment.

Errors returned are in line with BIP78.

Sequence numbers are checked by receiver, and
kept identical if uniform, otherwise respected.
Receiver uses transaction monitor to shut down
when the payment is seen.

The workflow is almost entirely implemented in
jmclient/payjoin.py and the command line script
is in scripts/receive-payjoin.py. The setup, including
configuration changes for Tor, are documented in
docs/PAYJOIN.md, including a user guide video linked.
2020-09-23 15:04:59 +01:00
nixbitcoin
93f0a67b88
Add genwallet.py script 2020-09-17 10:01:46 +00:00
Kristaps Kaupe
6d626614cb
Allow running ob-watcher without matplotlib installed 2020-09-09 20:22:10 +03:00
Adam Gibson
c90432e567
update version to 0.7.1dev 2020-08-25 18:27:09 +01:00
Adam Gibson
b7c98e918a
release notes and version update for 0.7.0 2020-08-20 17:25:05 +01:00
Kristaps Kaupe
2401c83c45
Implement BIP78 payjoin in JoinMarketQt GUI
Co-authored-by: Adam Gibson <ekaggata@gmail.com>
2020-08-19 22:20:17 +03:00
Kristaps Kaupe
ea855b302c
Correct import matplotlib exception handling
Error message about missing matplotlib is only correct in case of
exception during `import matplotlib`. If there is fatal exception
later, it is some other issue and it's better display it as is. On a
RaspiBolt for me `import matplotlib.pyplot as plt` causes
"ImportError: libopenjp2.so.7: cannot open shared object file: No such file or directory".
2020-08-05 21:08:54 +03:00