Commit graph

5243 commits

Author SHA1 Message Date
ghubstan
2efd094f68
Remove method only used in class' toString 2020-12-02 15:01:34 -03:00
ghubstan
65df9e1503
Change sendbsq's amount parameter type to String 2020-12-02 14:52:05 -03:00
ghubstan
9b4bdfc5ad
Make salt an editable payment acct json form field
Users need to be able to preserve their acct age when moving a
payment account to a new client.

Also adjusted affected tests, and did some minor refactoring
of the custom gson type adaptor.
2020-12-02 13:52:39 -03:00
ghubstan
987d89319e
Use ListenableFuture and callback when requesting tx fee
This change fixes the blocking problem in the fee rate request api.
Also redefined the TxFeeRateInfo.

- Redefined grpc.proto message TxFeeRateInfo, added
  lastFeeServiceRequestTs field. (CLI user may want to know
  TS of last fee request.)

- Adjusted TxFeeRateInfo proto wrapper.

- Adjusted CurrencyFormat and BtcTxFeeRateTest to new TxFeeRateInfo.

- Added @Getter annotation to FeeService.  (CLI user may want to know
  TS of last fee request).

- Pass resultHandler from GrpcWalletsService through CoreApi, to
  CoreWalletsService's tx fee rate api methods.
2020-12-01 21:10:47 -03:00
ghubstan
faf030fbc5
Add useCustomTxFeeRate field to TxFeeRateInfo proto wrapper
This is set from the core preferences.isUseCustomWithdrawalTxFee(),
and simplifies fee changing logic in the API.
2020-12-01 17:14:08 -03:00
ghubstan
62a2aa8543
Don't be so polite 2020-12-01 15:55:53 -03:00
ghubstan
45cfb95245
Remove many log.isDebugEnabled() checks
These do not buy enough in the way of performance, at the cost of
so many additional lines.  Buy these checks should be done for
debug log statements that have expensive parameters.
2020-12-01 15:48:11 -03:00
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
c7b92c36c9
Merge pull request #4850 from chimp1984/improve-stratup-info-display
Improve startup info display
2020-11-27 16:08:07 +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
ghubstan
0b0f9f1120
Add gettxfeerate, settxfeerate, unsettxfeerate implementations 2020-11-26 18:36:15 -03:00
ghubstan
abe7160608
Add TxFeeRateInfo proto wrapper 2020-11-26 18:35:24 -03:00
ghubstan
5a06e4ea3e
Adjust to changed CoinUtil 2020-11-26 17:19:47 -03:00
ghubstan
8f13b85e19
Merge branch 'master' into 20-pr-change-requests-A 2020-11-26 17:19:00 -03:00
ghubstan
15592887dd
Implement fromProto
This is marked unused, but it will be in future tests.
2020-11-26 15:06:14 -03:00
ghubstan
9d863e5a40
Remove deprecated method long getAvailableBalance 2020-11-26 14:25:24 -03:00
chimp1984
1b68b02857
Shut down rpc service at app shut down routine 2020-11-26 11:31:05 -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
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
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
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
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
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
ghubstan
23bfa2e7fc
Refactor didReadCountryField to set country on MoneyGram acct
MoneyGram is not a CountryBasedPaymentAccount, but it does
have a country field.
2020-11-21 15:22:15 -03:00
ghubstan
636fac9170
Add isMoneyGramAccount to abstract PaymentAccount 2020-11-21 15:21:10 -03: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
9da231ed8b
Fix typo 2020-11-20 10:28:59 -05:00
ghubstan
58f1af6f45
Log server stack traces, pass concise err msgs to CLI
For exceptions caught in the server, we want to log a reason and a
full stack trace, then send less verbose exception msgs up to the CLI.
2020-11-20 12:00:22 -03: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
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