Commit graph

343 commits

Author SHA1 Message Date
Adam Gibson
d23b0b6e46
release notes and version update for 0.6.3.1 2020-06-29 16:53:47 +01:00
chris-belcher
035fae452c
Fix JM-Qt recover wallet bug
Fixes issue #610
2020-06-27 12:42:54 +01:00
Adam Gibson
bd7930b000
Add release notes and version numbers for 0.6.3 2020-06-25 11:41:41 +01:00
Adam Gibson
52b9ba8573
Initialization of BCI raises Exception not sys.exit
Reasoning for this change: to ensure that Qt will show
a message and gracefully exit (or quit attempting to
load a wallet) in all 3 cases: on startup it show an
intelligible message if the RPC connection fails (as
before this PR), if the RPC fails while no wallet is
loaded and thus no wallet service is started, it should
show an intelligible error message when you attempt to
load a wallet and it fails, and finally it should show
an intelligible error message before quitting, if the rpc
connection fails during the period when the wallet is
already loaded.
By switching to an Exception instead of sys.exit, it does
mean that starting a yieldgenerator shows a stack trace,
but it also shows an intelligible error message (in red),
and this is command line, so UI requirements are less strong.
We preserve the "good" behaviour of no stack trace, but
only error message, if the rpc connection is lost during
running.
2020-06-12 20:28:29 +01:00
Adam Gibson
cc219ccba1
Handles RPC failure in Qt with message box and quit. 2020-06-11 15:48:56 +01:00
Adam Gibson
0c73074bf7
Close wallet when WalletService is stopped.
Fixes #594.
2020-06-10 15:41:12 +01:00
Kristaps Kaupe
ebd4a82403
Merge #589: Allow accessing basic wallet info without blockchain source
f26186d1bd Allow accessing basic wallet info without blockchain source (Kristaps Kaupe)

Pull request description:

  In both GUI and `wallet-tool.py`. Useful to, for example, extract recovery seed from a .jmdat wallet file without blockchain source. Resolves #545.

Top commit has no ACKs.

Tree-SHA512: c9c2d3b8601eac5dd55a05694c3fbd0873007abc666170e43cf26d745602db84200f5000355e4cc1c3be8085c78764f7d1d6cec87552d4e5775d47aa3d835208
2020-06-03 13:55:45 +03:00
Kristaps Kaupe
f26186d1bd
Allow accessing basic wallet info without blockchain source 2020-06-03 13:48:11 +03:00
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
869ef55ef9
Disable loading of fidelity bond wallets by Qt 2020-06-02 21:33:25 +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
chris-belcher
dc715c9481
Add timelock fidelity bond wallet sync and display
Fidelity bond wallets are intended to be used when at a later date
using fidelity bonds to greatly increase joinmarket's resistance to
sybil attacks. This commit adds support for timelocked addresses.
It allows users to optionally create wallet which support such
addresses. The synchronization code is modified to also scan for
timelocked addresses. The keypairs of the timelocked addresses go in
the newly created 2nd address type, where before the zeroth index were
receive addresses and first index was change.

The locktime dates are fixed at the first of each month for the next 30
years. This means users dont need to remember any dates, and so just
their seed phrase and wallet type will still be enough to recover all
funds. Each keypair used for timelocking requires an additional 360
addresses to be scanned for, which isn't a problem for Bitcoin Core.
Fidelity bonds are only stored in the zeroth mixdepth, as they are not
used in repeated coinjoins so theres no point having them in multiple
mixdepths.

Timelocked addresses don't use the get_new_script() family of functions
because they all assume that one index equals one address, and that
therefore it's possible to ask for a "next" address. For timelocked
addresses knowing the index is not enough to know the address, the
timestamp must be known too. Also once one address made of
(index, timestamp) is used you mustn't use that index and pubkey again,
even though all the other timelocks for that index/pubkey are unused.
This is for privacy reasons, as its equivalent to address reuse.
2020-06-02 21:33:17 +01:00
Adam Gibson
118c8ac803
Merge #588: QValidator port number restriction only for ports
3cd54cb Adds JMIntValidator to ensure exact integer range (Adam Gibson)
48f5ddf QValidator port number restriction only for ports (Adam Gibson)
2020-06-02 19:41:27 +01:00
Adam Gibson
3cd54cb4c3
Adds JMIntValidator to ensure exact integer range
Makes BitcoinSatValidator a derived class with a specific
range. Makes all port fields respond correctly to correct
or incorrect entries of port numbers. Changes badly named
'qt' variable to 'sf' in getSettingsFields.
2020-06-02 15:55:43 +01:00
Adam Gibson
ce35dee4ad
Merge #586: Make BitcoinAmountEdit behave the same on resize as QLineEdit
b1ee2f0 Make BitcoinAmountEdit behave the same on resize as QLineEdit (Kristaps Kaupe)
2020-05-27 16:38:16 +01:00
Adam Gibson
48f5ddf4fd
QValidator port number restriction only for ports
Prior to this fix, the settings which were integers
were all restricted to numbers <= 65535, but this is
not acceptable for the tx_fees setting which can be
sats per kilobyte. Note that several other integer inputs
are left without any specific validation; this change
is considered important because there will be use cases
where a large sat/kB is needed.
2020-05-27 15:50:08 +01:00
Kristaps Kaupe
bfe9f3531e
Raise ValueError on invalid Bitcoin amount strings 2020-05-25 23:14:39 +03:00
Kristaps Kaupe
b1ee2f0891
Make BitcoinAmountEdit behave the same on resize as QLineEdit 2020-05-25 21:55:46 +03:00
Kristaps Kaupe
6bd101ebb3
Remove link to old non segwit version and change new version link to use JoinMarket github organization 2020-05-20 23:24:59 +03:00
Kristaps Kaupe
e8ec595d31
Shebang and +x for ob-watcher.py 2020-05-20 20:31:38 +03:00
Kristaps Kaupe
80333b2872
Make ob-watcher independent of current working directory 2020-05-20 20:30:20 +03:00
Kristaps Kaupe
8997147848
Terminate ob-watcher immediately if HTTP server fails to start 2020-05-20 20:18:57 +03:00
chris-belcher
02bb537c3a
Merge #580: Update tumbler doc for the new schedule format
f2e100e fix sample schedule for testnet (Adam Gibson)
031b8f6 Update tumbler doc for the new schedule format (chris-belcher)

Tree-SHA512: c456863cfe4e18a81e4e769a6c28ef1b01c2a516332281cb7868cb2c7e7e9f62e0c566185911958803ca3c22ae03b764b4c2b3ac969fd47614d728cca15b88f3
2020-05-20 15:33:24 +01:00
Kristaps Kaupe
d1323f65b8
BitcoinAmountEdit Qt widget 2020-05-19 18:08:50 +03:00
Adam Gibson
f2e100ed7c
fix sample schedule for testnet 2020-05-18 15:06: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
chris-belcher
d277b448f5
Merge #466: Add --version option to cli scripts
e5cf95d Add --version option to cli scripts (Kristaps Kaupe)

Tree-SHA512: 689910bbbb4b5836393bd8e211ba117dbed9fca6c616c3599a46fc53be9c070e4803138e5b242358f54fdbff20cca2da48d1e27ceaa637674289d24293b1d6a9
2020-05-09 14:44:28 +01:00
Kristaps Kaupe
01d8857bd9
Merge #567: Implement BIP21 in GUI
a539345be3 Implement BIP21 in GUI (Kristaps Kaupe)

Pull request description:

  Allows pasting BIP21 URI in address field for single sends. See https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/560#issuecomment-622920476. Also added stripping address field input of extra whitespace at beginning / end. <del>Change with `raise ValueError` in `decode_bip21_uri()` is needed because `amount_str` can be invalid and that raised `decimal.InvalidOperation` on `amount_to_sat()` call.</del><ins>(UPDATE - that one is already merged in with #568)</ins>

Top commit has no ACKs.

Tree-SHA512: 079ca866cc0cded1624531ad6397fcdeeb7ebed7c6eab778e8640561387a3c08e39be2dc137df785f3aae2ad1b4a56b636d1f304ef854da27cf651293d78266f
2020-05-09 16:11:50 +03:00
Adam Gibson
839357897c
Merge #524: Change shebang to python3 and +x for scripts
e536eb1 Add wrapper shell script for JoinMarketQt (Kristaps Kaupe)
3876c1c Change shebang to python3 and +x for scripts (Kristaps Kaupe)
2020-05-08 15:29:09 +01:00
AlexCato
d2a1a9cf17
yg-privacyenhanced: change default cj min size to 0.001 btc
Probably a value from the past, when BTC was worth considerably less.
To align with yg-basic, which already uses this lower min size.

Improves orderbook liquidity for smaller amounts.
2020-05-06 19:40:01 +00:00
chris-belcher
f174f7785e
Merge #523: Qt: Freeze/unfreeze all selected UTXO's from context menu
34fe703 Freeze/unfreeze all selected UTXO's from context menu (Kristaps Kaupe)

Tree-SHA512: 5737ae7f2bfd11a6dda21a69d878ae17a200562f73486948c4ff85f81b1f7e2f3131060041f55a580daa8118633490af69fdb4765356e1cb8b3de27a8543201c
2020-05-05 01:13:28 +01:00
Kristaps Kaupe
e536eb1f20 Add wrapper shell script for JoinMarketQt 2020-05-04 23:48:22 +03:00
Kristaps Kaupe
3876c1cf97 Change shebang to python3 and +x for scripts 2020-05-04 23:48:19 +03:00
Kristaps Kaupe
a539345be3 Implement BIP21 in GUI 2020-05-04 23:45:16 +03:00
Kristaps Kaupe
4eced504b2
Add BIP21 support for Payjoin 2020-05-03 12:13:55 +03:00
Kristaps Kaupe
6f90e30424
Fix "Show seed" in Qt for wallets with mnemonic extension 2020-04-29 23:20:13 +03:00
nixbitcoin
c8d10e5d85
Add python shebangs to joinmarketd.py and wallet-tool.py 2020-04-28 16:02:00 +02:00
Kristaps Kaupe
faaf51eada
Add BIP21 bitcoin payment URI support to sendpayment.py 2020-04-26 23:34:11 +03:00
Adam Gibson
b50622af1f
Merge #550: Abort single join early if maker count below minimum_makers
5976db7 Abort single join early if maker count below minimum_makers (Kristaps Kaupe)
2020-03-30 12:11:19 +01:00
Kristaps Kaupe
5976db7d4f
Abort single join early if maker count below minimum_makers 2020-03-29 02:19:48 +02:00
Adam Gibson
554ced0f01
Update all exit() calls to sys.exit()
Prior to this commit, the function `exit()` was unavailable
due to the removal of the builtins import in 4bf1f50.
This led to NameError exceptions instead of the intended error
messages in Qt startup with wrong configuration (I did not
investigate if it could also happen on command line).
Fix was to make all exit() calls sys.exit().
2020-03-27 16:10:38 +00:00
Kristaps Kaupe
e5cf95d0d2 Add --version option to cli scripts 2020-03-24 01:15:15 +02:00
Adam Gibson
d8fef959f9
Bugfix: recovered wallet file location
Prior to this commit, the recoverWallet method in Qt
was specifying a directory `./wallets` instead of the
same directory in the datadir location.
2020-03-22 18:52:09 +00:00
Adam Gibson
f58652908f
add release notes and version numbers for 0.6.2 2020-03-16 17:04:53 +00:00
Kristaps Kaupe
5dd95befa9
Merge #534: Fix sweep in GUI
a51bd55903 Fix sweep in GUI (Kristaps Kaupe)

Pull request description:

  Same fix as #533, but for GUI. Fixes bug introduced with #529.

Top commit has no ACKs.

Tree-SHA512: 4a347307ce7b306087c202220b8f68f14022362051fb5e02f4c59a51aed1786092dde0ea82abde4f6eaa4461a7296ce7967803ef0a121075e87f9965e4bcbf42
2020-03-10 15:10:23 +02:00
Adam Gibson
fdb6b261d4
Merge #537: Fixed path for accessing wallets when receiving payjoin transactions
a0c8446 fixed location path for accessing wallets (Tim Akinbo)
2020-03-10 12:47:32 +00:00
Tim Akinbo
a0c8446552 fixed location path for accessing wallets 2020-03-10 03:56:57 +00:00
Kristaps Kaupe
a51bd55903
Fix sweep in GUI 2020-03-06 14:37:08 +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