From a6c2d688109c5282d65c7639ee282aeaf15c7d2f Mon Sep 17 00:00:00 2001 From: Adam Gibson Date: Wed, 25 Nov 2020 14:45:12 +0000 Subject: [PATCH] Add release notes and version for 0.8.0 --- docs/JOINMARKET-QT-GUIDE.md | 2 +- docs/NATIVE-SEGWIT-UPGRADE.md | 113 ++++++++++++++++++++++ docs/TODO.md | 49 +++++++--- docs/release-notes/release-notes-0.8.0.md | 111 +++++++++++++++++++++ jmbase/jmbase/support.py | 2 +- jmbase/setup.py | 2 +- jmbitcoin/setup.py | 2 +- jmclient/setup.py | 4 +- jmdaemon/setup.py | 4 +- scripts/joinmarket-qt.py | 2 +- 10 files changed, 268 insertions(+), 23 deletions(-) create mode 100644 docs/NATIVE-SEGWIT-UPGRADE.md create mode 100644 docs/release-notes/release-notes-0.8.0.md diff --git a/docs/JOINMARKET-QT-GUIDE.md b/docs/JOINMARKET-QT-GUIDE.md index fcd3cf1..21eef4e 100644 --- a/docs/JOINMARKET-QT-GUIDE.md +++ b/docs/JOINMARKET-QT-GUIDE.md @@ -4,7 +4,7 @@ The gui can be run directly from Python script by doing `python joinmarket-qt.py` from within `scripts/`, or by running the executable file/binary (**[CLICK HERE](https://github.com/AdamISZ/joinmarket-clientserver/releases/)** to download the latest release). -**LATEST VERSION of JoinMarket-Qt is GUI version 17**. You can check the version via `About` in the menu. +**LATEST VERSION of JoinMarket-Qt is GUI version 18**. You can check the version via `About` in the menu. No other files / setup should be needed. You might need to `chmod 755` on Linux. diff --git a/docs/NATIVE-SEGWIT-UPGRADE.md b/docs/NATIVE-SEGWIT-UPGRADE.md new file mode 100644 index 0000000..1eb3f45 --- /dev/null +++ b/docs/NATIVE-SEGWIT-UPGRADE.md @@ -0,0 +1,113 @@ +# UPGRADING YOUR JOINMARKET TO NATIVE SEGWIT (bech32) + +## Motivation: why? + +I guess the large majority of Joinmarket users know, but for completeness: native segwit p2wpkh is substantially (perhaps 25% on average?) cheaper than p2sh-p2wpkh which we currently use, and is rapidly becoming industry standard amongst most users wallets and other Bitcoin transaction operators, including other coinjoin systems, e.g. Wasabi - this latter point is very important in that it helps with privacy to join in with the crowd. In particular, Payjoins require both wallets to use the same scriptPubkey (or address) type. + +## Do I need to do anything at all? + +Technically, no, but realistically, yes. + +If you do nothing here's what will happen: + +### As a maker + +You can continue to run your maker bot (yield generator), serving Taker customers still using p2sh ('3') addresses with your existing wallet. The traffic on these will go down over time because (a) native segwit transactions are cheaper, and Takers bear most of that cost, and (b) the default new wallet type is now native segwit, so new entrants will be creating wallets of that type, and using the native segwit pit, and so ignoring your bots. + +### As a taker + +If you have an existing wallet and still want to do joins with it with '3' addresses, you can do so, but you must set `native=false` in `[POLICY]` section of `joinmarket.cfg` - assuming you don't have this setting already (the point here is that the *default* value of that setting has changed from `false` to `true` as of 0.8.0). If you are just using `wallet-tool` or direct-sending payments, you don't even need to make that change, but you may as well do it, for as long as you are using the old wallet type. + +## How is the orderbook changing? + +So what we sometimes call the "trading pit" is basically all the bots announcing their offers on the different IRC servers. Currently they all take the form: + +`!swreloffer blah blah` +`!swabsoffer blah blah` + +(because there are no bots left using non-segwit offers or wallets). These offers will continue for some time, but in parallel, as of v0.8.0, you will start to see bots making offers with '0' included ('0' because segwit v0, albeit this is not a scientific distinction, but it was just easiest to use a single character): + +`!sw0reloffer blah blah` +`!sw0absoffer blah blah` + +Under the hood, there will be very little difference in the way the bots behave; the set of messages they pass is almost the same (but not quite, technical details). **This set of offers is entirely distinct; we are creating new coinjoins with native coinjoin outputs only, not a mixture of native and p2sh together**. This is unfortunately necessary in order for users to be able to make reasonable assumptions about anonymity sets (i.e. mixed address types screw that up). + +## How is the wallet changing, when I make a new one? + +First, this feature has been present in Joinmarket since early 2019 (see [release notes for v0.5.1](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.5.1.md#add-native-segwit-wallet-to-backend); it is not actually new. +Second the actual wallet type is [BIP 84](https://github.com/bitcoin/bips/blob/master/bip-0084.mediawiki), the de facto industry standard for native segwit single-key wallets, and is directly analogous to [BIP49](https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki) that we use for p2sh-p2wpkh addresses. +The seed creation and recovery are therefore unchanged: we use the same BIP39 12 word seed phrase, with optional mnemonic extension as before. What changes is the HD path (e.g. m/84'/0'/0'/0/0) and address, of course. At the bottom of this page is an example mainnet wallet-tool output for the new wallet type. + +## OK, so how do I actually migrate, i.e. move to the new wallet type and orderbook? + +* Create a new wallet: either omitting the `native=` setting or setting it to `true`, *before* you run `python wallet-tool.py generate` or 'Generate' in Qt. +* Move funds into it, like any new wallet; if you are moving from an old Joinmarket wallet to this new one, I suggest doing sweeps per-mixdepth, but (a) you can use coin-freezing to use individual coins and not connect them, if you prefer, (b) using a coinjoin on the *old* Joinmarket pit to do the transfer may not make much sense, since the output address will be 'bc1' not '3' and so the anon set effect will be lost. + +Once the funds are migrated, you can just go back to what you were doing before - except with lower fees. All pre-existing functions work the same way with these BIP84 wallets. + +##### Example output of wallet-tool display: + +``` +JM wallet +mixdepth 0 xpub6CnATD8P29cQT8q4TWBFjGeAtxzq87WsoiCdmMTxBWu9mgpW1kruDA6kHrcYPYiYbjGWnM6wrFZN18MqYgcpyRjmrfVvxVUUTaD6F3mvqM3 +external addresses m/84'/0'/0'/0 xpub6EUm47xofFfo6QY1nYq6ASX3xfbhfFqS1XqMqayNUsjzTze2sPvCHtd9MmZ258jmMq26ViDUsXjEEmUVvTNyW72P688nVHn4gHBs59oR55F +m/84'/0'/0'/0/0 bc1qfljx5g2jdgf8y6r5mx94um43vqy73uxrrfu2rc 0.00000000 new +m/84'/0'/0'/0/1 bc1qq2y0vnzdxmvelfgp9au37v4acqc9vapkpn6s0e 0.00000000 new +m/84'/0'/0'/0/2 bc1qkeaqdwn49djzwqmaqgqathd23ygq0reu9clgl2 0.00000000 new +m/84'/0'/0'/0/3 bc1qj0e2kjc2dkqn4drh4l8vdmygdp5z6mzqm84xlj 0.00000000 new +m/84'/0'/0'/0/4 bc1qwrfpc565l4n5yq073lkht62zztfjy8qck5c75r 0.00000000 new +m/84'/0'/0'/0/5 bc1q4ju2gvrqdv4epxcezydmd9jjuk7yf4l6trnmsl 0.00000000 new +Balance: 0.00000000 +internal addresses m/84'/0'/0'/1 +Balance: 0.00000000 +Balance for mixdepth 0: 0.00000000 +mixdepth 1 xpub6CnATD8P29cQWAVv5chkF9dShxFTtkp68C92d6XvWneqMpqgxd5V3kxCJkiCBGfuMvHNa8MAiJ28THMSGGaQdScJBiEdvDBUnybJz8JZUW5 +external addresses m/84'/0'/1'/0 xpub6Ebnfv1i4JTB9hR7fsTQeoFK9pTkJ1C1xUcWh63e2nfs8ECSAsMLtdGfZCogpSRBcua8q1YzPg4LtigW4mZW8kNUqGeyKfbv1FL7PYB73Bi +m/84'/0'/1'/0/0 bc1q26rwwgl72qgq2jpc8jemkv2d6chegcjldl3tmu 0.00000000 new +m/84'/0'/1'/0/1 bc1qvh5d5n84rehtjugzvckel7av2cenw4aejdv3wp 0.00000000 new +m/84'/0'/1'/0/2 bc1qhtg32hj93nvaj0j3mtmf83k7957agl30484yka 0.00000000 new +m/84'/0'/1'/0/3 bc1qq34fnkdjewvsq4ftrpgjf39724kwae7gn5fs6f 0.00000000 new +m/84'/0'/1'/0/4 bc1q8s6c25qahuzgrhd79engxgsk83ykmgxc26gwny 0.00000000 new +m/84'/0'/1'/0/5 bc1qjmd2arkjr03z70h7jeueg8yq84c4c0ae8mlgcq 0.00000000 new +Balance: 0.00000000 +internal addresses m/84'/0'/1'/1 +Balance: 0.00000000 +Balance for mixdepth 1: 0.00000000 +mixdepth 2 xpub6CnATD8P29cQYCTdfy2CyXGTYssFdZ3Ah3pkSyQbeBLTHbBzFwa1t6nbdHWGswECMhzeYDrkfd2TBZbAdiMcsXqSUqfPfh3B2zAuv8cS4RJ +external addresses m/84'/0'/2'/0 xpub6Dax3dojj4m54pE9CgTm3mEuXxEG6wu1yv4qoJcBng7ip7UKJqmfphXKySjkiDaX8tRFdPc7uNbrZuteHJxxRtQcCJw9gG2hnwALAJJwuHH +m/84'/0'/2'/0/0 bc1qsjq3fqlhpvl6zdlx4keaptqvnsvlq9wvs6htnp 0.00000000 new +m/84'/0'/2'/0/1 bc1qfhwq2nl3s3wvd87ecs7n5y4eg48wggumznx8gv 0.00000000 new +m/84'/0'/2'/0/2 bc1qcp8ksz9jlkeltkuvxqypmkd92jtdsw8z6v9zuz 0.00000000 new +m/84'/0'/2'/0/3 bc1q7mnglcgdcshnuc9p0s50slr98ysmur8qvqzlc9 0.00000000 new +m/84'/0'/2'/0/4 bc1qk9ewvfet6a2cw2rzykwz2q96ue8amras4j9676 0.00000000 new +m/84'/0'/2'/0/5 bc1qatmlhx4zphrsh3p97c2kvhmze8k556592pl6wx 0.00000000 new +Balance: 0.00000000 +internal addresses m/84'/0'/2'/1 +Balance: 0.00000000 +Balance for mixdepth 2: 0.00000000 +mixdepth 3 xpub6CnATD8P29cQcqg9mDxc2pRMT5syBfLsVMJdJ2QbvpV52VHbBrjRpYgwg9rtAVRYuWnDGdk9T2ZXhD9XhbTnZnd5k8QxPXKXFwXKCGDNAM4 +external addresses m/84'/0'/3'/0 xpub6FAfwaxVRmjFadt3hmR9dnALSCQ6Gs3ZzfLVodLnkyBVNhpeZaUD2ePWCqYdmsPbW8XcvTB3ZoW2wWXBhAsNNPbyFrJevnuisBG1XhLbRpU +m/84'/0'/3'/0/0 bc1qnvc2v6y5xp00ps7c7xe7762d033hfeunu93txk 0.00000000 new +m/84'/0'/3'/0/1 bc1q4tcwnjp4afywkknr3vnsfnfkancdgtty9wpduw 0.00000000 new +m/84'/0'/3'/0/2 bc1qtwgfxgjuh2qt5mss0yu4f8gtfyl6qx40et00s0 0.00000000 new +m/84'/0'/3'/0/3 bc1q6dqwcztdxd8j0t4md8knrs9mj2tn5pyxjlv6gw 0.00000000 new +m/84'/0'/3'/0/4 bc1qwsf8jtu3rcvhfr2z9qm5umwz75q88pp3wsclu8 0.00000000 new +m/84'/0'/3'/0/5 bc1q669ss06j9c7ycf5jdg7zf8ctxa4yudn4tyug2y 0.00000000 new +Balance: 0.00000000 +internal addresses m/84'/0'/3'/1 +Balance: 0.00000000 +Balance for mixdepth 3: 0.00000000 +mixdepth 4 xpub6CnATD8P29cQemJKvXNbkw7VhmezjUJAzTan2TsRKCai4ssTVWdghHNa9TaSggZtctToaewCA1KzBA8zdbx3ZCc8ez3cJQxAx96HhgABx6i +external addresses m/84'/0'/4'/0 xpub6ExY4c7otX7GvGHuL4NZpoLhxzfEkyiKngcmqeYnNQpiwBpPmEgDWAqr5qu7dPUTwHNsjUyWPrBJo9e9MNPsonnfxc4fnT2XtgBMDwN8T5h +m/84'/0'/4'/0/0 bc1q8xvvyzty8ejy6epywekjzakkt7nutxxmvq0u9w 0.00000000 new +m/84'/0'/4'/0/1 bc1q9mn6e64zmuzccqa4xeh80zm2nqqmylpa8w7ndj 0.00000000 new +m/84'/0'/4'/0/2 bc1qrgstfgjzmrvwcv6v05ugl28ss46qywk92ksn30 0.00000000 new +m/84'/0'/4'/0/3 bc1qc06d3xdfj5lq8slezk2sl8krrr08qzku07gewr 0.00000000 new +m/84'/0'/4'/0/4 bc1qz0tfa6e9yqzxqzlj56ge24t7z7rftj9janpsed 0.00000000 new +m/84'/0'/4'/0/5 bc1q2utkj2rqqw4wdr7z2fu9cgfv5zdpsnt47uns6u 0.00000000 new +Balance: 0.00000000 +internal addresses m/84'/0'/4'/1 +Balance: 0.00000000 +Balance for mixdepth 4: 0.00000000 +Total balance: 0.00000000 +``` \ No newline at end of file diff --git a/docs/TODO.md b/docs/TODO.md index a0c780e..d769692 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -25,7 +25,10 @@ like `commitmentlist`. ### Architecture -* Probably move all user data to ~ ; see [comment](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/62#issuecomment-318890399). +~~* Probably move all user data to ~ ; see [comment](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/62#issuecomment-318890399).~~ + +This was done as of v0.6.2 + * Make use of the schedule design to fold together sendpayment and tumbler (they share a lot of cli options anyway). * Investigate what refactoring of the daemon protocol is necessary so it is possible to run protocol instances concurrently. * Moving elements shared into joinmarketbase - in particular, an object representing offers like `JMOffer`, which @@ -45,17 +48,25 @@ This was previously marked 'done' but is now very much "un-done" since the code * The [issue693](https://github.com/JoinMarket-Org/joinmarket/issues/693) problem is by far the most important one to spend time on. +The fidelity bond code introduced in #544 can serve as a basis for removing this issue, but it will most sensibly fold into a broader protocol upgrade. On that: + Possible future update ("hard fork") for Joinmarket protocol may include: -* bech32 addresses for joins; possibly mixed address types, needs discussion. + +~~* bech32 addresses for joins; possibly mixed address types, needs discussion.~~ + +Bech32 native segwit has become default for coinjoins as of 0.8.0. + * change format of data transfer (in particular, avoid double encoding which wastes space) -* with respect to above issue693, see fidelity bonds discussion in #371 ; if implemented this may (will?) require some changes to protocol messages. An additional possibility is discussesd in #415 namely, possible decentralized architecture for Joinmarket inter-participant communication. + ### Qt GUI -* Binary build process automated and, more importantly, working for Linux, Windows and Mac. +~~* Binary build process automated and, more importantly, working for Linux, Windows and Mac.~~ + +~~There is no current process for building binaries on Mac or Windows (theoretically the latter is possible but a mess, so I'm not doing it).~~ -There is no current process for building binaries on Mac or Windows (theoretically the latter is possible but a mess, so I'm not doing it). +Windows binaries are now being built in an automated way via #641. The same process for Mac does not yet exist, however (though it is probably fairly feasible). * ~~Qt5 support, as Qt4 is being deprecated (see [issue204](https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/204)).~~ Done as of 0.5.0. @@ -63,19 +74,29 @@ There is no current process for building binaries on Mac or Windows (theoretical * Build an alternative client implementation in Java or Javascript for example, using some existing Bitcoin library in that language, perhaps using some lite client solution e.g. SPV, and then connecting to the daemon (executable or Python script). +Some minor progress on this can be seen in #670 and in the repo https://github.com/JoinMarket-Org/jmcontrolcenter + ### Bitcoin We use coincurve as a binding to libsecp256k1. -The current jmbitcoin package morphed over many iterations from the original pybitcointools base code. -We need to rework it considerably as it is very messy architecturally, particularly in regard to data types. -A full rewrite is likely the best option, including in particular the removal of data type flexibility; use binary -only within the package (which will also require rewrite and simplification of some parts of the wallet code). +~~The current jmbitcoin package morphed over many iterations from the original pybitcointools base code.~~ +~~We need to rework it considerably as it is very messy architecturally, particularly in regard to data types.~~ +~~A full rewrite is likely the best option, including in particular the removal of data type flexibility; use binary~~ +~~only within the package (which will also require rewrite and simplification of some parts of the wallet code).~~ + +~~A rewrite of the transaction signing portion of the jmbitcoin code will need to account for the future~~ +~~probable need to support taproot and Schnorr (without yet implementing it).~~ + +This was all done in the switch to [python-bitcointx](https://github.com/Simplexum/python-bitcointx) included in 0.7.0 via #536 . +Complete removal of coincurve for all functions is still to be done. -A rewrite of the transaction signing portion of the jmbitcoin code will need to account for the future -probable need to support taproot and Schnorr (without yet implementing it). ### Extra features. -PayJoin is already implemented, though not in GUI, that could be added. -Maker functionality is not in GUI, that could quite plausibly added and is quite widely requested. -SNICKER exists currently as a proposed code update but is not quite ready, see #403. \ No newline at end of file +PayJoin is already implemented, ~~though not in GUI, that could be added.~~ Full BIP78 Payjoin now in GUI also. + +Maker functionality is not in GUI, that could quite plausibly be added and is quite widely requested. - See #487, this is now largely functional but still needs work. + +SNICKER exists currently as a proposed code update but is not quite ready, see #403. + +Hardware wallet support is a tough one, but there is some interesting discussion around possibilities, see #663. \ No newline at end of file diff --git a/docs/release-notes/release-notes-0.8.0.md b/docs/release-notes/release-notes-0.8.0.md new file mode 100644 index 0000000..c278a42 --- /dev/null +++ b/docs/release-notes/release-notes-0.8.0.md @@ -0,0 +1,111 @@ +Joinmarket-clientserver 0.8.0: +================= + + + +This is a major upgrade release, in one specific sense: the native segwit orderbook is now available, and wallets, by default, are created native segwit (bech32, i.e. addresses starting with bc1 on mainnet). Please read "Native segwit (bech32) order book" below for details. + +There are also several minor bugfixes. + +Please report bugs using the issue tracker at github: + + + +Upgrading +========= + +To upgrade: + +(If you are upgrading from a version pre-0.6.2 then please see the section "Move user data to home directory" in [the 0.6.2 release notes](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.6.2.md), and follow the instructions there (except the `commitmentlist` file - that can actually be left alone, the previous release notes were wrong on this point).) + +(If you are upgrading from a version pre-0.7.0 please read the "Upgrading" section in [the 0.7.0 release notes](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.7.0.md).) + +First run the `install.sh` script as mentioned in the README. When prompted to overwrite the directory `jmvenv`, accept. + +Note that `./install.sh -?` will show the options for installation. + +Notable changes +=============== + +### Native segwit (bech32) order book + +See the [native segwit upgrade guide](../NATIVE-SEGWIT-UPGRADE.md) for details. From this release, new wallets will be created as native segwit by default. This setting can be changed by setting `native=false` in the `[POLICY]` section of `joinmarket.cfg`. + +*Note that native segwit wallets are not a new feature: we have had them since [version 0.5.1](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/release-notes/release-notes-0.5.1.md#add-native-segwit-wallet-to-backend) and they have been used for payjoin experimentation*, what is new is only the default, and the use in Joinmarket coinjoins. + +If you create wallets, and run Takers and Makers with the default settings, you will be using only native segwit for your coinjoins and other transactions, and will only join with other participants using native segwit. Note that everything about pre-existing p2sh coinjoins and transactions still works as before, if you disable as per the above `native=false`. + +`ab87db2` Create native segwit v0 order type + +`2ae348b` Update signature exchange and verification for bech32 + +`3c96d41` Several tweaks for bech32 orderbook, plus docs + +`ebd54d6` Bugfix: yg-privacyenhanced non-integer fees + +`3537b70` Update transaction parameters + +`9e66bc5` Update ob-watcher + +`f69cb37` Choose maker offers based only on our wallet type + +#### Bugfix: correct minsize calculation for yield generators with reloffers, and txfee contribution + +A bug in the calculation of yield generator minsize, for reloffers, was previously not resetting it to a higher value to account for the txfee contribution; this is fixed. A consequence of this: default txfee contribution value is changed from 100 to 0, to avoid confusing yield generator users who might not understand the reason their number of coins is insufficient (it is a function of both the relative fee setting and the txfee contribution setting, to ensure that the profit is always at least 20% of the latter). The complexity of this should probably be removed in future updates to the protocol. + +`dcfc610` Bugfix: allow minsize dynamic update + +`d1ae07d` set default txfee contrib to zero, improve error message + +#### Don't fail on whitespace in recovery seed entry + +In entering recovery seed phrases on Qt and command line, we now ensure that white space is always stripped appropriately; prior to this fix, unexpected failures could occur due to whitespace being interpreted as a word in the seed phrase. + +`29b274e` Strip whitespace from beginning and end of mnemonic on wallet recovery + +`5f07872` allow multiple whitespace in mnemonic entry + +#### Make libsecp256k1 tests optional in installation script + +This option is enabled with the `--disable-secp-check` parameter of `install.sh`, and is useful for people on more constrained devices who want to speed up installation. + +`aa3cec4` Make libsecp256k1 tests optional + +#### Update commitments utilities scripts + +These fairly minor scripts needed to be updated for the new bitcoin backend, and bech32 wallets. + +`cc78dae` Update commitments utility scripts + +##### Various improvements and bugfixes + +`d5cf387` Get rid of remaining direct rpc() calls outside blockchaininterface.py + +`f314333` Add commitmentlist from rootdir to gitignore + +`6aa300a` (pr_728) Fix relunit selector + +`6300eda` Re-introduce pillow dependency, seems to be need by qrcode itself. + +`44c9dcd` (pr_726) Remove twisted logging on testnet + +`394e672` Add link to orderbook.md + +`29458f8` Remove dead code + +`1b6beda` Remove /shutdown from ob-watcher + + +Credits +======= + +Thanks to everyone who directly contributed to this release - + +- @jules23 +- @kristapsk +- @PulpCattel +- @nixbitcoin +- @AdamISZ + + +And thanks also to those who submitted bug reports, tested (especially bech32 testing!), reviewed and otherwise helped out. diff --git a/jmbase/jmbase/support.py b/jmbase/jmbase/support.py index 7415cb2..8f7036a 100644 --- a/jmbase/jmbase/support.py +++ b/jmbase/jmbase/support.py @@ -5,7 +5,7 @@ from getpass import getpass from os import path, environ from functools import wraps # JoinMarket version -JM_CORE_VERSION = '0.7.2' +JM_CORE_VERSION = '0.8.0' # global Joinmarket constants JM_WALLET_NAME_PREFIX = "joinmarket-wallet-" diff --git a/jmbase/setup.py b/jmbase/setup.py index 7a5c905..ff62f58 100644 --- a/jmbase/setup.py +++ b/jmbase/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup(name='joinmarketbase', - version='0.7.2', + version='0.8.0', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbase', author='', diff --git a/jmbitcoin/setup.py b/jmbitcoin/setup.py index b38841c..52c063d 100644 --- a/jmbitcoin/setup.py +++ b/jmbitcoin/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup(name='joinmarketbitcoin', - version='0.7.2', + version='0.8.0', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmbitcoin', author='', diff --git a/jmclient/setup.py b/jmclient/setup.py index 09bd850..96eaf8f 100644 --- a/jmclient/setup.py +++ b/jmclient/setup.py @@ -2,14 +2,14 @@ from setuptools import setup setup(name='joinmarketclient', - version='0.7.2', + version='0.8.0', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmclient', author='', author_email='', license='GPL', packages=['jmclient'], - install_requires=['joinmarketbase==0.7.2', 'mnemonic', 'argon2_cffi', + install_requires=['joinmarketbase==0.8.0', 'mnemonic', 'argon2_cffi', 'bencoder.pyx>=2.0.0', 'pyaes'], python_requires='>=3.6', zip_safe=False) diff --git a/jmdaemon/setup.py b/jmdaemon/setup.py index 5e9e055..e68e253 100644 --- a/jmdaemon/setup.py +++ b/jmdaemon/setup.py @@ -2,13 +2,13 @@ from setuptools import setup setup(name='joinmarketdaemon', - version='0.7.2', + version='0.8.0', description='Joinmarket client library for Bitcoin coinjoins', url='http://github.com/Joinmarket-Org/joinmarket-clientserver/jmdaemon', author='', author_email='', license='GPL', packages=['jmdaemon'], - install_requires=['txtorcon', 'pyopenssl', 'libnacl', 'joinmarketbase==0.7.2'], + install_requires=['txtorcon', 'pyopenssl', 'libnacl', 'joinmarketbase==0.8.0'], python_requires='>=3.6', zip_safe=False) diff --git a/scripts/joinmarket-qt.py b/scripts/joinmarket-qt.py index 3e1269e..157613b 100755 --- a/scripts/joinmarket-qt.py +++ b/scripts/joinmarket-qt.py @@ -58,7 +58,7 @@ donation_address_sw = "bc1q5x02zqj5nshw0yhx2s4tj75z6vkvuvww26jak5" donation_address_url = "https://bitcoinprivacy.me/joinmarket-donations" #Version of this Qt script specifically -JM_GUI_VERSION = '17' +JM_GUI_VERSION = '18' from jmbase import get_log, stop_reactor from jmbase.support import DUST_THRESHOLD, EXIT_FAILURE, utxo_to_utxostr,\