Commit graph

13078 commits

Author SHA1 Message Date
Christoph Atteneder
740071d54c
Merge pull request #4859 from oscarguindzberg/fixEmergencyPayout
Fix emergency payout
2020-12-01 13:58:01 +01:00
Christoph Atteneder
49d0e75eac
Merge pull request #4852 from chimp1984/stop-rpc-service-at-shutdown
Shut down rpc service at app shut down routine
2020-11-30 15:29:36 +01:00
Christoph Atteneder
e8a8e3b3a1
Merge pull request #4785 from deusmax/dao_bsq_supply
Touch-ups to the DAO BSQ Supply page
2020-11-30 09:22:20 +01:00
Christoph Atteneder
c7b92c36c9
Merge pull request #4850 from chimp1984/improve-stratup-info-display
Improve startup info display
2020-11-27 16:08:07 +01:00
sqrrm
cae09f8ff5
Merge pull request #4860 from stejbac/add-deposit-amount-taker-check
Add taker check for deposit amount
2020-11-27 12:56:14 +01:00
Steven Barclay
d59b425c94
Add missing output value check to takerSignsDepositTx
Make sure the taker checks the value of the 2-of-2 multisig output of
the deposit tx created by the maker, before signing it. This avoids a
potential security hole, where the maker attempts to steal most of the
deposit by using the wrong output value and adding an extra 'change'
output to himself.

Note that there's no actual vulnerability at present, as the output
value is indirectly checked via the validation of the delayed payout tx.
In particular, the extra checks added in 345426f as part of #4789 (Fix
remaining blackmail vulnerabilities) place a lower bound on the delayed
payout tx input value and with it the deposit tx output value. However,
explicitly checking the amount is more robust.
2020-11-26 23:39:51 +00:00
Oscar Guindzberg
f2acf42edc
Set payoutTx as parent tx 2020-11-26 20:30:23 -03:00
Oscar Guindzberg
0b834a94f8
Use empty byte array for script sig 2020-11-26 20:30:00 -03:00
Oscar Guindzberg
91a2def86e
Use AddressEntry.getAddress() 2020-11-26 20:28:50 -03:00
Deus Max
9d8939c0ca
Touch ups on the DAO BSQ supply page.
* Formatting changes to chart lines and axes.
 * Removed middle chart as it displays no
   new info.
 * Function getMonthTickLabelFormatter rounds the
   tick label display to the nearest month.
   Only used for chart1.
 * New variable chart1XBounds to keep track of
   chart1 X-axis limits, as autoRanging set false.
2020-11-26 18:58:14 +02:00
chimp1984
1b68b02857
Shut down rpc service at app shut down routine 2020-11-26 11:31:05 -05:00
chimp1984
81a41a25bb
Improve chainHeightSyncing display 2020-11-26 11:20:51 -05:00
chimp1984
673a4d8718
Improve block % and fee display 2020-11-26 11:19:01 -05:00
chimp1984
3ded086808
Add stateStartingOrRunning check (if we close before state
is ready we would get an exception in walletConfig.chain())
2020-11-26 11:18:38 -05:00
chimp1984
e1180d9662
Reformat, org imports (no code change) 2020-11-26 11:16:10 -05:00
Christoph Atteneder
99d5652aef
Merge pull request #4841 from jmacxx/fix_issue_4833
Prompt for confirmation before initiating SPV resync
2020-11-26 16:13:00 +01:00
Christoph Atteneder
4e4711a6f5
Merge pull request #4845 from jmacxx/fix_issue_4641
Show price deviation in portfolio open offers and history view
2020-11-26 15:33:50 +01:00
sqrrm
3cc9e63593
Merge pull request #4846 from bisq-network/release/v1.5.0
Release/v1.5.0
2020-11-26 12:42:14 +01:00
sqrrm
1110fb5d7d
Merge pull request #4822 from ripcurlx/improve-error-logging-for-disputes
Add error log for dispute failure
2020-11-26 12:41:32 +01:00
Christoph Atteneder
e7dbb973c6
Merge pull request #4848 from wiz/dont-install-git-lfs-from-packagecloud
In seednode installer, don't run random shell script to install git lfs
2020-11-25 19:37:57 +01:00
wiz
c0a03c7187
In seednode installer, don't run random shell script to install git lfs 2020-11-25 23:34:26 +09:00
Christoph Atteneder
11b0a466ce
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.5.0
# Conflicts:
#	core/src/main/java/bisq/core/provider/fee/FeeService.java
#	core/src/main/resources/i18n/displayStrings.properties
#	seednode/src/main/java/bisq/seednode/SeedNodeMain.java
2020-11-25 14:05:37 +01:00
Christoph Atteneder
dbb0160a35
Revert to SNAPSHOT version 2020-11-25 13:46:24 +01:00
jmacxx
2e52b5472f
Show price deviation in portfolio open offers and closed trades
Fixes #4641
2020-11-24 23:03:53 -06:00
sqrrm
3a5fba8196
Merge pull request #4838 from ripcurlx/update-resources-for-v1.5.0
Update resources for v1.5.0
2020-11-24 10:27:53 +01:00
Christoph Atteneder
f054e92cc6
Merge pull request #4843 from chimp1984/add-delay-to-exit
Add 1 sec delay before calling exit
2020-11-24 10:12:37 +01:00
Christoph Atteneder
788e0259d8
Merge branch 'release/v1.5.0' of github.com:bisq-network/bisq into add-delay-to-exit
# Conflicts:
#	core/src/main/java/bisq/core/app/BisqExecutable.java
2020-11-24 09:23:16 +01:00
Christoph Atteneder
94453cf27c
Merge pull request #4829 from chimp1984/prevent-downgrade
Check if user has downgraded to an older version
2020-11-24 09:15:47 +01:00
Christoph Atteneder
2e51805eb3
Merge pull request #4840 from oscarguindzberg/fixBitcoinSync
Upgrade bitcoinj to commit 60b4f2f
2020-11-24 09:11:39 +01:00
chimp1984
6b3a002b1c
Add 1 sec delay before calling exit
To persist in the very last moment before exit might cause problems on some OS.
We do not have confirmed that this might be an issue but to be on the safe side
we add a 1 sec. delay between persistence completed and exit.
2020-11-23 18:22:44 -05:00
Oscar Guindzberg
e667f8fbad
Upgrade bitcoinj to commit 60b4f2f 2020-11-23 14:39:26 -03:00
jmacxx
395af3c4c8
Prompt for confirmation before initiating SPV resync
Allows user to back off if invoked by accident.
2020-11-23 11:37:31 -06:00
Christoph Atteneder
06a7d6fb14
Update translations for v1.5.0 (update 2) 2020-11-23 11:23:25 +01:00
Christoph Atteneder
dd55beabac
Update data stores for v1.5.0 (update 2) 2020-11-23 11:23:15 +01:00
Christoph Atteneder
06c16a1734
Update bitcoinj checkpoints for v1.5.0 (update 2) 2020-11-23 11:23:04 +01:00
Christoph Atteneder
3c944722e9
Merge pull request #4831 from jmacxx/json_dump_active_currencies
Create JSON files of actively traded crypto and fiat assets
2020-11-23 09:46:13 +01:00
jmacxx
53a90f9d17
create JSON files of actively traded crypto and fiat assets 2020-11-21 23:23:16 -06:00
chimp1984
9360e89ae8
Check if user has downgraded to an older version. If so require shutdown
and do not read or write persisted data.

We had recently a case where a user downgraded from 1.4.2 to 1.3.9 and
this caused failed trades and the wallet funds have been missing due to
some complexities of the wallet wegwit upgrade. The fund could be recovered
but it took quite some effort.
As downgrade is never tested and can lead to all kind of weird bugs we
should prevent that users accidentally can do it.
If there is valid reason to downgrade they can remove the version file.
2020-11-20 15:27:50 -05:00
chimp1984
df9ef80edf
Avoid nullpointer 2020-11-20 15:10:39 -05:00
Christoph Atteneder
779c059a51
Merge pull request #4827 from chimp1984/fix-typo
Fix typo
2020-11-20 18:40:02 +01:00
chimp1984
9da231ed8b
Fix typo 2020-11-20 10:28:59 -05:00
Christoph Atteneder
2fe702cf3d
Merge pull request #4825 from huey735/rename-trade-payout-option
Rename getsAll payout option string
2020-11-20 09:49:59 +01:00
Christoph Atteneder
741425fad8
Merge pull request #4789 from stejbac/fix-remaining-blackmail-vulnerabilities
Fix remaining blackmail vulnerabilities
2020-11-19 19:01:06 +01:00
Huey
604a64e4a5
Rename getsAll payout option string
Renamed it to better represent the outcome of this option since
the winning party doesn't in fact get all the funds in escrow.
2020-11-19 17:41:39 +00:00
Steven Barclay
345426fb50
Add further validation checks for delayed payout tx
Do some extra sanity checks like tx.outputSum < tx.inputSum, to rule out
any edge cases where an invalid delayed payout tx might still arise.
2020-11-19 17:30:16 +00:00
Steven Barclay
3574204e7d
Fix faulty signature check in finalizeDelayedPayoutTx
Make sure to use the segwit version of Script.correctlySpends in
TradeWalletService.finalizeDelayedPayoutTx, which requires the input
value and witness to be passed explicitly (as the latter holds the
actual signature). This was causing BuyerFinalizesDelayedPayoutTx to
fail to do any kind of signature check.

Also refactor the method slightly and remove a redundant call to
WalletService.checkScriptSig (which does the same thing as
TransactionInput.verify) in the branch used by the seller.
2020-11-19 17:19:14 +00:00
Steven Barclay
69d1e16f5e
Prevent takers from using non-segwit deposit tx inputs
Disallow non-P2WH depositTx inputs from the taker, while continuing to
allow them from the maker, so that offers created pre-v1.5.0 can still
be taken. (After some time, those inputs could be disallowed too.)

This is mainly to prevent mass blackmail attacks, where more victims'
money could be locked up than the DAO could possibly compensate them all
for. (This is probably only an attractive attack for a buyer anyway, at
least with the earlier commits.)
2020-11-19 17:19:14 +00:00
Steven Barclay
5a3b072692
Withhold witnesses in buyer->seller depositTx data, until last step
Strip all input witnesses from the depositTx message fields sent from
the buyer, until the last (DelayedPayoutTxSignatureResponse) message is
sent, where they can be bundled in as an extra field. Since the witness
data doesn't affect the final deposit tx id, the seller does not need to
know it until actually publishing the tx.

In the (fully) segwit case, this allows the buyer to prevent the seller
from publishing the deposit tx until the buyer has a valid, fully signed
delayedPayoutTx. Provide the final witness data in an extra 'depositTx'
field in DelayedPayoutTxSignatureResponse, which the seller can merge
with his depositTx witness block (for his own input signatures).
2020-11-19 17:19:13 +00:00
Steven Barclay
803035bdbb
Add new BuyerFinalizesDelayedPayoutTx task
Improve validation of the buyer's delayed payout tx (both before & after
they get the final DepositTxAndDelayedPayoutTxMessage from the peer), by
finalising it independently of the seller. This is now possible since
their 2-of-2 signature is included in the DelayedPayoutSignatureRequest.
Check that the final delayedPayoutTx received from the seller matches it
byte-for-byte (which actually makes its receipt redundant now).

This also fixes an apparent security bug, where the final validation of
the delayedPayoutTx appears to skip any kind of signature check (only a
deposit tx hash check, which is still necessary).

Finally, optimistically check the deposit tx against the input of the
prepared delayedPayoutTx received from the seller, in the case that the
former is non-malleable (that is, the fully segwit case) and thus has a
stable ID given by the hash of the buyer's preparedDepositTx.
2020-11-19 17:19:13 +00:00
Steven Barclay
f02d5ee216
Send seller's delayedPayoutTx signature to peer ASAP
Include a new 'delayedPayoutTxSellerSignature' field with the prepared
delayed payout tx sent to the buyer, in DelayedPayoutTxSignatureRequest.
This will allow the buyer to compute the final, signed delayedPayoutTx
as early as possible and withhold their deposit tx witness from the
seller until they know they have a valid delayedPayoutTx, preventing its
premature publishing in the fully segwit case. (To be done in a later
commit - for now just save the seller's delayedPayoutTx signature.)

As part of this, run the SellerSignsDelayedPayoutTx trade task at an
earlier step (just after payout tx creation) to make its signature
available to the seller ASAP. Also rename 'delayedPayoutTxSignature' to
'delayedPayoutTxBuyerSignature' in DelayedPayoutTxSignatureResponse.
2020-11-19 17:19:12 +00:00