Commit graph

5482 commits

Author SHA1 Message Date
Christoph Atteneder
6ae33fe5f2
Merge pull request #4935 from chimp1984/add-wallet-info-view
Add wallet info view
2020-12-14 19:48:23 +01:00
chimp1984
cb289845b6
Add reference to bitcoin RPC error codes 2020-12-14 13:08:12 -05:00
ghubstan
a0f1c22d19
Merge branch 'master' into 08-scratch 2020-12-14 15:02:21 -03:00
chimp1984
33cf657d1d
Clone txBroadcastServices so we do not manipulate source list 2020-12-14 13:02:15 -05:00
ghubstan
5522d0c53e
Add new api method gettransaction
This change was prompted by the recent changes in the main branch to
allow a tx memo field to be set from the UI and API.

This and the prior PR address the API's need to be able to fetch a
tx (with a memo).  The API can now get a completed trade's withdrawal
txid and pass it as a gettransaction parameter.

See previous PR "Append nullable withdrawalTxId field to Trade".

	https://github.com/bisq-network/bisq/pull/4937

A summary of changes by file:

grpc.proto

- Added withdrawalTxId field to existing TradeInfo proto & wrapper.
- Reordered fields in TradeInfo proto.
- Added new fields to be displayed by TxInfo proto in CLI.
- Fixed typo: unsetTxFeeRatePreference -> UnsetTxFeeRatePreference.
- Added new GetTransaction rpc.

GrpcWalletsService - Added new getTransaction gRPC boilerplate.

CoreWalletsService - Added new getTransaction implementation.

TxInfo - Added the new fields for displaying a tx summary from CLI.
This is not intended to be more than a brief summary;  a block explorer
or bitcoin-core client should be used to see the complete definition.

TradeInfo - Added the new withdrawalTxId field defined in grpc.proto.

CliMain - Added new 'case gettransaction'.

TransactionFormat - Formats a TxInfo sent from the server to CLI.

ColumnHeaderConstants - Added console headers used by TransactionFormat.

TradeFormat - Displays a completed trade's WithdrawalTxId if present.

Apitest - Adjusted affected tests: assert tx memo is persisted and
test gettransaction.
2020-12-14 15:01:03 -03:00
chimp1984
478e1224e8
Use MemPoolSpaceTxBroadcaster for withdrawing
funds and for empty wallet call.
2020-12-14 12:52:32 -05:00
chimp1984
f26e76c908
Only check for code 2020-12-14 12:30:37 -05:00
chimp1984
b9b4690671
Add null checks for txId 2020-12-14 12:28:08 -05:00
chimp1984
910441125e
Return if not mainnet 2020-12-14 12:11:24 -05:00
chimp1984
f0eefe7943
Add MemPoolSpaceTxBroadcaster 2020-12-14 11:35:24 -05:00
chimp1984
7d06bf3803
Add mempool nodes to Preferences 2020-12-14 11:23:51 -05:00
chimp1984
149b52859a
Add wallet info view with balance, xpub keys,
hd paths and button to open wallet details
2020-12-14 08:25:46 -05:00
Christoph Atteneder
810c0da0f9
Merge pull request #4930 from chimp1984/use-historical-data-store-for-account-age
Use HistoricalDataStoreService for AccountAgeWitnessStorageService
2020-12-14 11:28:18 +01:00
Christoph Atteneder
b8cec17f8e
Merge pull request #4944 from chimp1984/rename-tw-account-currency-selection
Improve TransferWise account
2020-12-14 11:26:50 +01:00
chimp1984
88f26f9324
Do not autofill all currencies by default but keep all unselected. 2020-12-13 23:50:28 -05:00
chimp1984
484a6be379
Rename 'Supported currencies' to
'Currencies for receiving funds'
2020-12-13 23:49:57 -05:00
chimp1984
ad2a329e08
Improve log 2020-12-13 17:26:09 -05:00
chimp1984
06ce1b6787
Improve thread name 2020-12-13 17:25:49 -05:00
chimp1984
f7790a6b50
Rename PriceNodeHttpClient to PriceHttpClient 2020-12-13 17:19:39 -05:00
chimp1984
3d8d445994
Use @Singleton annotation instead of definition in module 2020-12-13 17:19:02 -05:00
chimp1984
5d664e915e
Improve logs 2020-12-13 17:18:36 -05:00
chimp1984
5be2ea5830
Use dedicated HttpClient for fee requests
We used the same HttpClient for fee and price requests, which cause
problems when one request got completed and closed the connection
at finalize.
2020-12-13 17:17:52 -05:00
chimp1984
561639f046
Check if we have a pending request and return if thats the case 2020-12-13 17:04:24 -05:00
chimp1984
9496691f76
Refactor: Rename 'requestWithGET' to 'get' 2020-12-13 15:23:36 -05:00
ghubstan
6aa385e494
Append nullable withdrawalTxId field to Trade proto message
The withdrawalTxId field will be set in TradeManager#onWithdrawRequest
upon successful trade completion and withdrawal of funds.

Persisting withdrawalTxId will allow the api and ui to find the withdrawalTxId
for a completed trade after the seller withdraws funds to an external wallet.
In turn, the withdrawal tx's memo field will be accessible in a new (todo)
api getTx(txID) api method.

Changed:

- Appended field 'string withdrawal_tx_id = 40' to pb.proto's Trade message.

- Added nullable 'String withdrawalTxId' to Trade entity class.

- Added trade.setWithdrawalTxId(transaction.getTxId().toString()) in
  TradeManager#onWithdrawRequest's callback.
2020-12-12 12:01:55 -03:00
chimp1984
4d8a327567
Add enable/diable all toggle button to open offers
Add search field to openoffer and failed trades
Improve search
2020-12-11 00:21:47 -05:00
chimp1984
d3b68bf9e6
Add num items text field below tables
Move filter in history to top, fix wrong label
Add export to cvs to reserved and locked balances
2020-12-10 11:20:54 -05:00
chimp1984
bc1f6ddac5
Show num trades > 9 as number (not as star) for main menu badge 2020-12-10 11:18:27 -05:00
ghubstan
259bad629a
Merge branch 'master' into 05-use-memo-tx-field 2020-12-10 11:59:28 -03:00
Christoph Atteneder
f4df51c213
Merge pull request #4929 from chimp1984/make-sign-age-column-sortable
Make sign age column sortable
2020-12-10 12:00:04 +01:00
Christoph Atteneder
9498fd9b7d
Merge pull request #4917 from chimp1984/handle-invalid-maker-fee-tx
Detect and handle invalid maker fee tx
2020-12-10 11:57:32 +01:00
Christoph Atteneder
aa0e091906
Merge pull request #4927 from chimp1984/improve-shutdown-routine
Improve shutdown routine
2020-12-10 11:46:16 +01:00
chimp1984
fae8ddad4b
Add check in case bsqPrice is 0 (thrown an exception otherwise) 2020-12-10 00:12:11 -05:00
chimp1984
17ec32588b
Use HistoricalDataStoreService for AccountAgeWitnessStorageService 2020-12-09 23:46:44 -05:00
chimp1984
a2d2e6c4fb
Shutdown PriceFeedService and related services
at shutdown routine
2020-12-09 18:33:15 -05:00
chimp1984
de2755d2d7
Remove debug log 2020-12-09 18:32:24 -05:00
chimp1984
bcf956530f
Limit delay for remove offer result handler to 3 sec 2020-12-09 18:14:50 -05:00
sqrrm
63fc486896
Merge pull request #4918 from bisq-network/hotfix/v1.5.1
Hotfix/v1.5.1
2020-12-09 22:21:52 +01:00
ghubstan
bd66008062
Support tx memo field for btc withdrawals from api
- Added optional memo parameter to the api's sendbtc and
  withdrawfunds commands.

- Removed the @Nullable annotation was removed because protobuf
  does not support null.

- Visibility in two wallet check methods were changed from private
  to pkg protected so the CoreTradeService could use them.

- Adjusted affected tests.  (Asserting the memo field was set on a
  transaction cannot be checked from apitest yet.)
2020-12-09 16:51:56 -03:00
chimp1984
c962c1a183
Refactor: Rename presentation to displayString (no code change) 2020-12-09 14:02:57 -05:00
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