Commit graph

5342 commits

Author SHA1 Message Date
chimp1984
ed099981fa
Make findWitness public
Improve logs if trade limit was violated
2020-12-09 13:58:16 -05:00
ghubstan
144c5a82cc
Merge branch 'master' into 04-add-sendbtc-impl 2020-12-09 10:44:17 -03:00
ghubstan
6c9f0c252d
Add new api method 'sendbtc' and test
Takes an address, amount, and optional txfeerate param,
returns a lightweight TxInfo proto.

Also overloaded two BtcWalletService methods to allow sendbtc
to pass in the tx fee rate -- overriding the fee service and
custom fee rate setting.
2020-12-08 21:12:02 -03:00
chimp1984
ce68f2e24a
Check also for depositTxId in trade and check if both
txId and tx.getId are the same.

We got some reports where users have no deposit tx displayed in the
trade after spv resync but cannot move the trade to failed trades.
It seems the invalid txId is still stored in the trade but the tx itself
got removed from the wallet after reysnc. We check not that both the tx
and the txId need to be present.
2020-12-08 17:11:58 -05:00
ghubstan
2842070afd
Merge branch 'master' into 03-add-txFeeRate-param 2020-12-08 19:04:27 -03:00
Christoph Atteneder
29c2e0002d
Merge branch 'master' of github.com:bisq-network/bisq into hotfix/v1.5.1
# Conflicts:
#	build.gradle
#	core/src/main/java/bisq/core/btc/setup/WalletConfig.java
#	desktop/package/linux/Dockerfile
#	desktop/package/linux/package.sh
#	desktop/package/linux/release.sh
#	desktop/package/macosx/create_app.sh
#	desktop/package/macosx/finalize.sh
#	desktop/package/macosx/insert_snapshot_version.sh
#	desktop/package/windows/package.bat
#	desktop/package/windows/release.bat
#	relay/src/main/resources/version.txt
#	seednode/src/main/java/bisq/seednode/SeedNodeMain.java
2020-12-08 22:19:11 +01:00
chimp1984
960b835f3f
Check if maker fee tx is already spent or has invalid structure.
If so show popup to remove that offer.
Add maker fee tx ix to offer details window.
If invalid, add error msg to offer details window.
2020-12-08 15:45:51 -05:00
chimp1984
cd98617ec8
Property fields must not bet set from non JavaFX threads.
So we map those setters to our UserThread.

How to reproduce issue?
Restore from seed triggered following exception:

Dec-08 13:20:04.547 [ STARTING] ERROR bisq.common.setup.CommonSetup: Stack trace:
java.lang.IllegalStateException: Not on FX application thread; currentThread =  STARTING
	at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:291)
	at com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:424)
	at javafx.scene.Parent$3.onProposedChange(Parent.java:471)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:113)
	at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:108)
	at javafx.scene.control.skin.LabeledSkinBase.updateChildren(LabeledSkinBase.java:272)
	at javafx.scene.control.skin.LabeledSkinBase.lambda$new$11(LabeledSkinBase.java:220)
	at com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(LambdaMultiplePropertyChangeListenerHandler.java:49)
	at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:86)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:104)
	at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:111)
	at javafx.beans.property.StringPropertyBase.access$000(StringPropertyBase.java:50)
	at javafx.beans.property.StringPropertyBase$Listener.invalidated(StringPropertyBase.java:231)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:104)
	at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:111)
	at javafx.beans.property.StringPropertyBase.access$000(StringPropertyBase.java:50)
	at javafx.beans.property.StringPropertyBase$Listener.invalidated(StringPropertyBase.java:231)
	at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:348)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.StringPropertyBase.fireValueChangedEvent(StringPropertyBase.java:104)
	at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:111)
	at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:145)
	at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:50)
	at bisq.core.app.WalletAppSetup.lambda$init$1(WalletAppSetup.java:170)
	at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.binding.ObjectBinding.invalidate(ObjectBinding.java:170)
	at com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:52)
	at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:136)
	at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
	at javafx.beans.property.IntegerPropertyBase.fireValueChangedEvent(IntegerPropertyBase.java:107)
	at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:114)
	at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:148)
	at bisq.core.btc.setup.WalletsSetup$1.onSetupCompleted(WalletsSetup.java:245)
2020-12-08 13:22:43 -05:00
Christoph Atteneder
6431d639ae
Merge pull request #4908 from chimp1984/add-memo-field-at-step4
Add memo field at step4
2020-12-08 16:35:16 +01:00
chimp1984
455c9b0ff3
Avoid logging warning at startup 2020-12-08 10:13:31 -05:00
Christoph Atteneder
d41692602a
Merge pull request #4903 from oscarguindzberg/bloomFilterFix
Upate bitcoinj to commit dcf8af0 - Bloom filter fix
2020-12-08 15:03:28 +01:00
Christoph Atteneder
89e55774c7
Merge pull request #4910 from chimp1984/remove-log-entry
Improve logs
2020-12-08 15:03:09 +01:00
sqrrm
2a2f05f408
Merge pull request #4912 from chimp1984/add-serialized-tx-as-hex-to-trade-details
Add "Raw deposit transaction as hex" to details window
2020-12-08 12:28:15 +01:00
chimp1984
25d227556b
Add "Raw deposit transaction as hex" to details window
Rename Contract as json button to detail data
2020-12-07 20:25:29 -05:00
chimp1984
d0005e45f4
Add logs of tx in case of exceptions 2020-12-07 19:47:44 -05:00
chimp1984
a3df372ecd
Apply project format rules (no code change) 2020-12-07 19:47:05 -05:00
chimp1984
b5e19312c5
Remove logs logging absolute path to data directory 2020-12-07 19:35:01 -05:00
chimp1984
38d52ff6f9
Add more logs to AddressEntry domain 2020-12-07 19:32:32 -05:00
chimp1984
f4fd286b86
Remove verbose log 2020-12-07 17:56:28 -05:00
chimp1984
30ff8c3853
Remove paymentAccount from log 2020-12-07 14:53:45 -05:00
chimp1984
249c6143c9
Use preferredTradeCurrency is fiat, otherwise the users country currency 2020-12-07 13:48:43 -05:00
chimp1984
a7765d0cce
Use 30 day average BSQ price for calculating BSQ fee 2020-12-07 13:45:02 -05:00
chimp1984
5a0634f94d
Move methods to AveragePriceUtil 2020-12-07 13:24:17 -05:00
chimp1984
f745f0f0d6
Move methods from AxisInlierUtils to InlierUtil
We will need some of those methods later inside another core util class.
2020-12-07 13:21:44 -05:00
chimp1984
104b7edc99
Add memo field at withdraw to external wallet screen
Implements https://github.com/bisq-network/bisq/issues/4869
2020-12-07 12:32:56 -05:00
chimp1984
959c53c18d
Apply project format rules (no code change) 2020-12-07 12:31:34 -05:00
chimp1984
e2f9009fce
Remove dev log, fix typo in log 2020-12-07 10:33:41 -05:00
Oscar Guindzberg
9ca20d8b3d
Use bitcoinj 0.15.8 (commit dcf8af0) 2020-12-07 11:39:58 -03:00
sqrrm
74485f0844
Merge pull request #4884 from ghubstan/01-refactor-getdust
Refactor: move getDust(Transaction transaction)
2020-12-07 14:12:59 +01:00
ghubstan
159d4cc6f5
Add optional txFeeRate parameter to api sendbsq
If present in the sendbsq command, the parameter will override the fee
service and custom fee rate setting for the BSQ transaction.

Also changed the sendbsq grpc return type to a lightweight TX proto wrapper.

Besides some small refactoring in the CLI, all the changes are
adjustments for this new sendbsq parameter and its new grpc return value.
2020-12-04 17:17:37 -03:00
chimp1984
82445c0e28
In case the peers witness is not found and the trade amount
is not exceeding TOLERATED_SMALL_TRADE_AMOUNT (0.01 BTC) we
return true for verifyPeersTradeAmount.
Before such offers could not be taken even the witness
check would be irrelevant as the trade amount is below the
threshold where we require account age witness.
2020-12-04 12:40:30 -05:00
ghubstan
900d498ee1
Merge branch 'master' into 02-refactor-completePreparedSendBsqTx 2020-12-04 14:22:45 -03:00
ghubstan
dc6144d337
Refactor BtcWalletService to let api override fee rates
BtcWalletService was changed to allow the api to override tx fee
rates from the sendbsq and sendbtc methods.  The api methods will
still be able to use the network fee service and custom tx fee rate
preference, and set / unset the custom tx fee rate preference, but
the change will permit the addition of an optional txFeeRate parameter
to the sendbsq and sendbtc methods (todo).  A few other minor changes
(style and removal of never thrown ex spec) were also made to this class.

Two BtcWalletService methods were refactored.

- The redundant (was always true) boolean isSendTx argument was removed
  from the completePreparedVoteRevealTx method signature.

- The redundant (was always true) boolean useCustomTxFee was removed
  from the completePreparedBsqTx method signature.

- The completePreparedSendBsqTx method was overloaded with a 2nd parameter
  (Coin txFeePerVbyte) to allow api to override fee service and custom
  tx fee rate when sending BSQ or BTC.

- The completePreparedBsqTx method was overloaded with a 3rd parameter
  (Coin txFeePerVbyte) to allow api to override fee service and custom
  tx fee rate when sending BSQ or BTC.

The following line was deleted from the completePreparedBsqTx method
because txFeePerVbyte is now an argument:

	Coin txFeePerVbyte = useCustomTxFee ? getTxFeeForWithdrawalPerVbyte() : feeService.getTxFeePerVbyte();

This useCustomTxFee value was always true, and redudant here because
getTxFeeForWithdrawalPerVbyte() returns feeService.getTxFeePerVbyte()
or the custom fee rate preference. i.e.,

Coin txFeePerVbyte = useCustomTxFee ? getTxFeeForWithdrawalPerVbyte() : feeService.getTxFeePerVbyte();

	is equivalent to

Coin txFeePerVbyte = getTxFeeForWithdrawalPerVbyte();

LockupTxService, UnlockTxService, BsqSendView, and BsqTransferService
were adjusted to this BtcWalletService refactoring.
2020-12-04 14:17:24 -03:00
Christoph Atteneder
588623eb2d
Merge pull request #4885 from chimp1984/fix-bug-with-reapplying-past-trade-state
Avoid that buyer switches back to trade step 2 at startup after payment confirmed
2020-12-04 16:41:41 +01:00
chimp1984
c04b95b996
Remove checkNotNull for takerFeeTxId 2020-12-04 10:10:57 -05:00
sqrrm
57681245ff
Merge pull request #4889 from chimp1984/avoid-case-of-multi-trades-with-same-offer-id
Avoid case of multi trades with same offer
2020-12-04 00:48:45 +01:00
chimp1984
8f99ca0b63
Add uid to trade to make sure that look up for process model cannot
fail in case of multiple trades with the same offer id.
Use uid instead of the weaker offerId as key for the tradeProtocolByTradeId map
2020-12-03 14:43:35 -05:00
chimp1984
2d5fc33ba4
Move MakerRemovesOpenOffer to first task to avoid that if take offer
fails early that we get another trade with same id at maker in case another use takes the offer afterwards.
2020-12-03 14:19:24 -05:00
Christoph Atteneder
91a1a92ac4
Merge pull request #4877 from Jakub-CZ/fix_warning_message
Fix warning about rejected transaction
2020-12-03 19:28:06 +01:00
Christoph Atteneder
baa038aa39
Merge pull request #4886 from jmacxx/hotfix/v1.5.1
add logging of Tx hex
2020-12-03 19:18:50 +01:00
chimp1984
1fdc43e4d0
Increase timeout for trade protocol task runners from 30 to 60 sec 2020-12-03 11:53:35 -05:00
jmacxx
fa80553890
add logging of Tx hex 2020-12-03 10:22:07 -06:00
chimp1984
f843b5477b
Fixes https://github.com/bisq-network/bisq/issues/4864
When seller if offline we resend the CounterCurrencyTransferStartedMessage at startup.
That caused the trade state set to BUYER_SENT_FIAT_PAYMENT_INITIATED_MSG and then after
the msg was stored in mailbox to BUYER_STORED_IN_MAILBOX_FIAT_PAYMENT_INITIATED_MSG.
Those 2 msg trigger diff. UI states which led to the UI glitch that the UI moved to
step 2 and then to step 3 which was correct but confusing to the user.

Now we only apply BUYER_SENT_FIAT_PAYMENT_INITIATED_MSG is trade state ordinal is
smaller avoiding that UI glitch.
2020-12-03 11:19:18 -05:00
ghubstan
74261b1749
Refactor: move getDust(Transaction transaction)
The api is going to need this method, so it was moved from desktop to core.

- Moved the method from WithdrawalView to WalletService.

- Removed an unused initilizer in WithdrawalView.
2020-12-03 12:16:04 -03:00
chimp1984
29d757b741
- revent that a wrong tx is set as deposit tx
We check if the txIds of the inputs matches our maker fee tx and taker fee tx and if the depositTxAddress we
use for the confidence lookup is use as an output address.
This prevents that past txs which have the our depositTxAddress as input or output (deposit or payout txs) could
be interpreted as our deposit tx. This happened because if a bug which caused re-use of the Multisig address
entries and if both traders use the same key for multiple trades the depositTxAddress would be the same.
We fix that bug as well but we also need to avoid that past already used addresses might be taken again
(the Multisig flag got reverted to available in the address entry).

- Add check to swapTradeEntryToAvailableEntry to not swap MULTI_SIG entries.

- Remove swap for MULTI_SIG entries at resetAddressEntriesForPendingTrade

- Add check to swapToAvailable to not swap MULTI_SIG entries.

- Remove swaps for MULTI_SIG entries

- Add setCoinLockedInMultiSigAddressEntry method

- Make coinLockedInMultiSig final and remove setter but use it in constructor.

- Rename getCoinLockedInMultiSig to getCoinLockedInMultiSigAsCoin
We use an immutable list when operating on AddressEntry so changes on the
object would not be reflected in the list.
The only mutable field (beside non critical cache fields) is the keyPair.
Might be good to refactor that as well at some point.

- Add setCoinLockedInMultiSigAddressEntrymethods

- Apply API changes:
-- resetCoinLockedInMultiSigAddressEntry
-- setCoinLockedInMultiSigAddressEntry
-- renamed methods
2020-12-03 10:01:01 -05:00
chimp1984
a39f2e8fcb
Apply project format rules (no code change) 2020-12-03 09:54:43 -05:00
sqrrm
9b774d1515
Merge pull request #4858 from ghubstan/21-fee-rate-apis
Add tx fee rate api methods:  gettxfeerate, settxfeerate, unsettxfeerate
2020-12-03 10:41:54 +01:00
Jakub Loucký
b8bdbbc551
Fix warning for rejected transaction 2020-12-02 21:16:41 +01:00
ghubstan
7f636e45f9
Prevent attempt to send amount of BSQ < dust 2020-12-02 15:21:20 -03:00
ghubstan
2efd094f68
Remove method only used in class' toString 2020-12-02 15:01:34 -03:00