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
Fixes#780. Prior to this commit, a user choosing to
follow manual install for Linux via INSTALL.md would be
left with a non-working install of Joinmarket due to the
absence of the specific libsecp256k1 library installation
needed to run python-bitcointx. This commit adds those
manual instructions and also warns users that the install.sh
handles this (and other tricky details of installation) better.
Before this commit, the help message for wallet-tool was
very hard to read; this improves the format of the message
by overriding optparse's default handling of description
paragraphs, making it pass through the string exactly as is,
and also reformatting the string itself.
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.
Using relative links instead of root-relative links allows hosting ob-watcher with an
arbitrary URL path prefix, like 'orderbook' (https://example.com/orderbook).
81982c729f Drop support for pre-0.17 Bitcoin Core (Kristaps Kaupe)
Pull request description:
Simplifies code, resolves#452.
I would like also drop official support for versions older than 0.18 (still support 0.17 at first, but put 0.18 as a requirement in docs), as 0.18 is minimum required for [wallet no history sync](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/444). In future that would allow [some more optimizations](https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/462). Asked it [here](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/452#issuecomment-742166828), want to hear some comments about that. In any case, these would be changes on top of this anyway.
Tested by running test suite with 0.17.1 (where 4 of tests of `jmclient/test/test_core_nohistory_sync.py` fail as expected) and 0.20.1.
Top commit has no ACKs.
Tree-SHA512: 240a0dc0887465ecc5545dffa3759e9b03cc41fc54a759c6757328949d4b40621e029b7f3acfe6d456b659d3d62a9d1df1c6a39594dd2c94ee66b71a267a65bb
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
721b6ede78 Allow any case for scheme part of BIP21 URI as per spec (Kristaps Kaupe)
Pull request description:
https://github.com/btcpayserver/btcpayserver/issues/2110
[BIP21](https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki) states that scheme part of URI must be case insensitive:
> The scheme component ("bitcoin:") is case-insensitive, and implementations must accept any combination of uppercase and lowercase letters. The rest of the URI is case-sensitive, including the query parameter keys.
We required `bitcoin:` part to be lowercase, this is a fix for that.
Top commit has no ACKs.
Tree-SHA512: b33c89893cb13a1d23742bfb129ae9b86a367d7fda003a1eac4953b667bbc076780f31515aeff92edad214023ce9fdbc46416a9cf1f98a1c9bc385eb721821aa
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.
Before this commit, if an RPC connection failure occurred,
while the program is shutting down, it could raise an Exception
in the BitcoinCoreInterface.get_transaction() call triggered
by the WalletService.transaction_monitor loop. This commit
prevents that.
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.
Before this commit, if a user specified a wallet filename argument
to `wallet-tool.py` and also one of the noseed methods 'generate',
'recover' or 'createwatchonly', it would cause a crash. This is
now checked for and a readable parser error is provided instead.
Fixes#737. Before this commit, startup of
Joinmarket-Qt does not necessarily work "out
of the box" due to changes in PyQt 5.15 that
create external dependencies on shared libraries,
see comments on the Issue for details.
While we had formerly pinned PyQt 5.14, it is
in fact necessary to also pin the version of
PySide2 to the same 5.14.2 to remove the
problem.
Before this commit, the taker would choose offers from
the pit based on the setting of `native` in the `[POLICY]`
section of the config object; however this could lead to
users unwittingly choosing the wrong offer type, i.e. one
that is incompatible with their own wallets, which could
result in coinjoins with mixed address types.
This commit fixes that error by only selecting offers that
are compatible with the return value of `BaseWallet.get_txtype()`.
Also fixes up tests for this wallet type enforcement.
d5cf3878ae Get rid of remaining direct rpc() calls outside blockchaininterface.py (Kristaps Kaupe)
Pull request description:
Follow-up to #501.
Test suite passes and also did some manual testnet testing. Had error receiving payjoin from testnet.demo.btcpayserver.org, but that doesn't seem related. More testing is needed before merging.
Top commit has no ACKs.
Tree-SHA512: 036483b0f47349dc3bd6fd8bb5be153e338f7fe547c7e5194becd1ba5975fe1d9880f2d557519a7a9a708da263dd18e38cf4c28a03d5fd9348fef73032b1e6e9