Before this bugfix, the user-chosen minsize is passed
to the constructor of the YieldGenerator class unaltered,
even though it was dynamically updated to ensure 20% of
txfee profit in all cases (the wrong variable was passed).
This commit fixes that (`minsize` not `options.minsize`).
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.
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.
* 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
aa3cec4623 Make libsecp256k1 tests optional (Kristaps Kaupe)
Pull request description:
They are expensive and slow, especially on a slow hardware like
Raspberry Pi.
Inspired by https://github.com/bitcoin/bitcoin/pull/20264.
Top commit has no ACKs.
Tree-SHA512: ad23f8bab1f95fb5d0d7c6f2bcbe1a6950f7f62dd82e8d34d65abf6dffcfd1e7f9100d7c1423d1d8764ba6ce5145f5df17035130314432bb6e44361e7d773960
394e6727e6 Add link to orderbook.md (Luke)
Pull request description:
This is the continuation of #716, now that we have a doc file for the orderbook I think we should advertise it somewhere.
Joinmarket is, as the name suggest, a market and an orderbook is a fundamental part of a market.
Under `Usage` seems a natural fit, as the orderbook should be one of the use cases of the repo, and gives it max visibility, but I don't have strong opinion if you have a better place (I thought about the `USAGE.md` file but I'm not sure where to put it there).
ACKs for top commit:
kristapsk:
ACK 394e6727e6
Tree-SHA512: fea1a949e3b48275c714ceb6a460a414af463c8e6298f055f6a94578d49a30051f93cd55a284704452e2a021aea75d2f07a12267d34ca6550ab3465cef73df28
1b6beda013 Remove /shutdown from ob-watcher (Kristaps Kaupe)
Pull request description:
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.
Top commit has no ACKs.
Tree-SHA512: 899752fe785d8ef5d609f339a9c6e8b281c2cf7b9bcac17c644d5d313f377b8b93239b71954af82740eff611772a0fb8c18a97078e93542f6d7771e921222972
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.
As per BIP78, new inputs or outputs must be
inserted, without changing the original order;
since we don't add extra outputs, we should leave
them in an unchanged order. Previously they were
shuffled.
Before this commit, if a BIP78 sender rejected the
PSBT sent by the receiver in the negotiation, JM's
receiver was hanging as the fallback broadcast was not
triggered. This commit corrects that error, and also
makes the fallback message visible on the GUI, and makes
it more ambiguous (since it not always clear whether
the transaction was broadcast or not, in this case).
6a8149fe96 Removes utxo field from non-receiver inputs (Adam Gibson)
Pull request description:
Prior to this commit, the payjoin receiver code
was signing a PSBT containing the utxo field
for every input, including the ones it did not
own, and transferring this to the sender.
However BIP78 specifies that, for inputs belonging
to the sender, no utxo field should be included.
This is corrected in this commit.
ACKs for top commit:
kristapsk:
Tested this with BTCPay Server and it succeeded! ACK 6a8149fe96
Tree-SHA512: df5b8770ef9398ede622a4584edc75d3da2665936136b2705c0b72ba108d6268c20e238cb635a97799e1279d468fcd94d47c0b4d87af5e26c4f2790b952f68bc
The handle_unbroadcast_transaction fallback in Taker
is useful because Makers may not cooperate in broadcasting
a transaction, but it is only appropriate for the
random-peer option of `tx_broadcast`; for not-self the
user has chosen to avoid using their own IP, so this
commit simply abandons the attempt to broadcast the
transaction in that case.
The comments added to the config emphasize the problematic
aspect of this, which is that the tx may need to be
manually broadcast via another channel.
Prior to this commit, the payjoin receiver code
was signing a PSBT containing the utxo field
for every input, including the ones it did not
own, and transferring this to the sender.
However BIP78 specifies that, for inputs belonging
to the sender, no utxo field should be included.
This is corrected in this commit.