Commit Graph

734 Commits

Author SHA1 Message Date
woodser
6c83fc4cf8 avoid fetching wallet subaddresses individually by caching 2024-01-09 06:59:45 -05:00
woodser
c28ffb70ff update state from wallet notifications on UserThread 2024-01-09 06:59:45 -05:00
woodser
a6f6f5c00a protocols skip resending payment sent/received if shut down 2024-01-09 06:59:45 -05:00
woodser
c06a85b929 clear and shut down inactive trades, move more to trade threads 2024-01-06 12:52:21 -05:00
woodser
c14f37b595 invoke main wallet listeners in thread pool 2024-01-06 12:52:21 -05:00
woodser
52a44d020e update trades on UserThread in TradeManager to fix npe 2024-01-06 12:52:21 -05:00
woodser
0d60df2aa7 refactor trade and connection threading to new ThreadUtils 2024-01-06 12:52:21 -05:00
woodser
497de47965 do not set daemon connection to null on disconnect 2024-01-06 12:52:21 -05:00
woodser
ba8a9ae21d await external prices on startup 2024-01-06 12:52:21 -05:00
woodser
f8d9c827ea skip wallet initialization if shut down started 2024-01-06 12:52:21 -05:00
woodser
2ee2b747f9 check for balance before deleting trade wallet 2024-01-06 12:52:21 -05:00
woodser
e7371d1299 process trade state notifications off UserThread 2024-01-04 14:54:15 -05:00
woodser
43bbb29384 try syncing main wallet when height > target height on startup 2024-01-04 14:54:15 -05:00
woodser
0a3736bba0 reprocess trade messages off UserThread 2024-01-04 14:54:15 -05:00
woodser
5d88936600 start main wallet when daemon synced with improved UserThread 2024-01-01 09:05:04 -05:00
woodser
5466689857 set progress listener state in same thread 2024-01-01 09:05:04 -05:00
woodser
7f3fd0af08 finish open offer manager tasks before shut down 2024-01-01 09:05:04 -05:00
woodser
342c212ba8 remove global error handler for taking offer 2024-01-01 09:05:04 -05:00
woodser
fdb24ba9f8 arbitrator sends nack if trade already taken 2024-01-01 09:05:04 -05:00
woodser
c6b1d03283 set price feed state in UserThread 2024-01-01 09:05:04 -05:00
woodser
c55fb927f2 rely on trade state to delete wallet 2023-12-31 10:14:13 -05:00
woodser
3aab3f57b1 set offer state on UserThread 2023-12-31 10:14:13 -05:00
woodser
e160499d30 sync main wallet outside lock on connection changed 2023-12-31 10:14:13 -05:00
woodser
bc4d8fc8c2 split output tx is null while awaiting scheduled tx 2023-12-31 10:14:13 -05:00
woodser
2e86d4a62a check local connection before switching 2023-12-31 10:14:13 -05:00
woodser
6c2f3ea154 improve trade state reliability
update trade state atomically on UserThread
nullify error handling on deposits confirmed message
set trade state before deposit request and relay
add checks before deleting wallet
UserThread.await() detects if on UserThread
2023-12-27 11:20:16 -05:00
woodser
3de4264c4b increase offer reliability with TTL, refresh period, max attempts 2023-12-24 11:55:47 -05:00
woodser
0d33959eeb republish offers on dedicated thread for open offer manager 2023-12-22 09:58:29 -05:00
woodser
a1f8f942fc poll daemon and trade wallets in dedicated lock and prevent queuing 2023-12-22 09:58:29 -05:00
woodser
1dab218d7e do not shut down connection pool in case account is re-recreated 2023-12-20 07:32:40 -05:00
woodser
c7b8571842 reset timeout timer on progress creating offer 2023-12-20 07:32:40 -05:00
woodser
1df2ab4389 replace AppSetupWithP2PAndDAO with AppSetupWithP2P 2023-12-20 07:32:40 -05:00
woodser
01a57c18f7 support setting custom node in UI with localhost running 2023-12-20 07:32:40 -05:00
woodser
f162cad439 handle connection change on dedicated thread, other thread improvements 2023-12-20 07:32:40 -05:00
woodser
b1f8411641 check local connection after setting 2023-12-20 07:32:40 -05:00
woodser
dffb676f4e reset address entries for open offer on error taking offer 2023-12-20 07:32:40 -05:00
woodser
30e199c56e shut down trades before main wallet to finish processing 2023-12-20 07:32:40 -05:00
woodser
e6775f3b58 move processing off UserThread for smoother experience 2023-12-18 13:45:04 -05:00
woodser
e11d65c038 check and extend timeout after taker creates reserve tx 2023-12-18 13:45:04 -05:00
woodser
48d902b58d close trader dispute ticket on payout published 2023-12-18 13:45:04 -05:00
woodser
c42471191a refactor trade state TRADE_COMPLETED to boolean 2023-12-18 13:45:04 -05:00
woodser
fd4e4d3917 remove warning that wallet is not synced when idling 2023-12-16 15:20:36 -05:00
woodser
66a152c888 close open dispute on preparing payment received message 2023-12-16 15:20:36 -05:00
woodser
26ea53883c republish offers awaits prices and runs off UserThread 2023-12-16 15:20:36 -05:00
woodser
dbd8db0e88 set open offer's reserve tx fields once known and repost if invalid 2023-12-16 15:20:36 -05:00
woodser
2e13bc0051 update translation: Taking offer: X% 2023-12-14 12:03:47 -05:00
woodser
c9a79888c8 change message when daemon synced and update translations 2023-12-14 12:03:47 -05:00
woodser
94eae8f945 add (via clearnet) to connection status 2023-12-14 12:03:47 -05:00
woodser
acfb4ae4c5 log price provider 2023-12-14 12:03:47 -05:00
woodser
c7277187c5 fix cycling through price providers 2023-12-11 09:06:20 -05:00
woodser
d8ac901d4a call wallet.sync() on startup after background sync with progress 2023-12-10 16:08:45 -05:00
woodser
74cfd474ad clear basic trade process data on payout unlocked 2023-12-10 16:08:45 -05:00
woodser
948be8ce29 rename trade getPayoutAmount() to getPayoutAmountBeforeCost() 2023-12-10 16:08:45 -05:00
woodser
7bfba15109 do not resend deposits confirmed message after payout published 2023-12-10 16:08:45 -05:00
woodser
0c149b780f mark dispute closed per ticket and sync for payout on ack 2023-12-10 16:08:45 -05:00
woodser
3730773006 replace BigInteger.valueOf(0) with BigInteger.ZERO 2023-12-10 16:08:45 -05:00
woodser
cd89b8bf15 update translations for startup syncs 2023-12-10 16:08:45 -05:00
woodser
41ed01dbde update translation: Connecting to Haveno network 2023-12-10 16:08:45 -05:00
woodser
8800d9ea46 set buyer and seller payout tx fee and amount, fix csv export #720 2023-12-10 16:08:45 -05:00
woodser
846a8634e5 process mailbox messages in sequential order per trade 2023-12-05 08:49:09 -05:00
woodser
da8474a0f4 fix npe when connection is null 2023-12-05 08:49:09 -05:00
woodser
38bbfafcbb show wallet sync progress on startup 2023-12-02 10:06:11 -05:00
woodser
f5d82df477 hide reserved subaddresses in deposit view 2023-11-29 20:31:00 -05:00
woodser
84c08e4c36 show that wallet is syncing on startup 2023-11-29 20:31:00 -05:00
woodser
9fb22f6d1f reset startup timeout on sync progress 2023-11-29 20:31:00 -05:00
woodser
9957aa6256 check that wallet is synced within tolerance 2023-11-28 11:48:25 -05:00
woodser
7b9773e3c6 update translation: chain not synced popup 2023-11-27 14:01:34 -05:00
woodser
644bb72957 rename services and objects from Monero to Xmr for consistency 2023-11-26 11:10:49 -05:00
napoly
497f987541 fix csv export by avoiding null pointer with ZERO 2023-11-26 11:10:37 -05:00
woodser
d094997666 show daemon sync progress on startup then sync wallet 2023-11-25 14:46:44 -05:00
woodser
846b278b5d set and display current monerod height instead of target 2023-11-24 13:31:48 -05:00
woodser
27bf72d432 poll local node for faster switching 2023-11-24 13:31:48 -05:00
woodser
3d0b8c0b09 process mailbox messages on main thread on startup 2023-11-21 13:01:10 -05:00
woodser
cfaca6e0d8 fetch txs on startup to fix balance with 0 conf PaymentReceivedMsg 2023-11-21 13:01:10 -05:00
woodser
013924b141 don't send payment sent message back to buyer 2023-11-21 13:01:10 -05:00
woodser
fc396f7478 fix peer deleting unique payment sent, received, dispute messages 2023-11-21 13:01:10 -05:00
woodser
5fc67ec65a fix app hanging after connection change with parallel handling 2023-11-19 14:31:03 -05:00
woodser
f6f4fb014e stop polling trade wallet after marking shut down started 2023-11-17 12:13:27 -05:00
woodser
5294baf949 reset timeout timer after maker sends sign offer request 2023-11-17 12:13:27 -05:00
woodser
83352ec1e3 set or clear connection error message on each daemon poll 2023-11-17 12:13:27 -05:00
woodser
0bc5300a27 synchronize on wallet while importing multisig hex 2023-11-16 10:15:13 -05:00
woodser
9eea422c9e sync main wallet on payout to update pending balance 2023-11-16 10:15:13 -05:00
woodser
35be468de0 fixes to warning when wallet is too far behind daemon 2023-11-16 10:15:13 -05:00
woodser
9ca263927f fix typo in logging 2023-11-15 07:13:41 -05:00
woodser
dd71423d95 fix concurrent modification exception when trades added to main view 2023-11-15 07:13:41 -05:00
woodser
f9afd44345 synchronize on wallet lock getting address entries 2023-11-15 07:13:41 -05:00
woodser
e2369480b2 loser pays mining fee on resolve dispute with custom amount 2023-11-15 07:13:41 -05:00
woodser
51d5f0e1d3 synchronize wallet poll and stop polling on shut down started 2023-11-15 07:13:41 -05:00
woodser
fd0bf23867 fix npe on first start with offline --xmrNode 2023-11-13 15:40:51 -05:00
woodser
606b2cef23 resume syncing wallet after applying proxy uri change 2023-11-13 15:40:51 -05:00
woodser
9b79faf29a increase max trade limit to 64 xmr 2023-11-12 06:03:45 -05:00
woodser
af38f82406 document signing accounts in deployment guide, minor fixes 2023-11-12 06:03:45 -05:00
woodser
5c9a6b9ed6 move redundant deposit tx from ProcessModel to getSelf().getDepositTx() 2023-11-10 15:58:58 -05:00
woodser
74b0e42dae remove getFeePerVbyte() for btc 2023-11-10 15:58:58 -05:00
woodser
4cc2d7d112 trade history casts trade to get security deposit when available 2023-11-03 10:27:37 -04:00
woodser
8a89be1636 fix too much precision calculating security deposit 2023-11-03 10:27:37 -04:00
woodser
0f7ace7326 fix adjusting amounts by smallest volume increments 2023-11-03 10:27:37 -04:00
woodser
4749d286da re-enable posting offers above new account limits 2023-11-03 10:27:37 -04:00
woodser
4df59bc546 update translation: Confirmed in X block(s) -> X confirmation(s) 2023-11-01 14:41:21 -04:00
woodser
2839f33696 do not update peer node address on dispute opened 2023-11-01 14:41:21 -04:00
woodser
9d5ea3db4c adjust amount by smallest volume increments 2023-11-01 14:41:21 -04:00
woodser
23525d89ee security deposit is based on trade amount 2023-10-31 17:56:34 -04:00
woodser
f261a38cce fix adjustment < min amount creating offers 2023-10-31 17:56:34 -04:00
woodser
4f5f82bf0f fix xag and xau names inverted 2023-10-29 14:13:42 -04:00
woodser
ed93096a4b arbitrator reserved trade amount = 0 2023-10-29 14:13:42 -04:00
woodser
8f8d653871 replace trade.getBuyerSecurityDeposit() w/ getBuyer().getSecurityDeposit() 2023-10-29 14:13:42 -04:00
woodser
7592d8fbca fix payment sent ack after offline: 'Cannot get peer's pub key ring' 2023-10-29 14:13:42 -04:00
woodser
3450f3799e process ack on DepositsConfirmedMessage from peer with changed address 2023-10-29 14:13:42 -04:00
woodser
05e2d925f0 fix incorrect deposit amount for range trades
improve display of reserved and pending balances by adjusting
support subtracting fee from buyer and/or seller on dispute resolution
validate trade amount is within offer amount
expose maker's split output tx fee
expose security deposit received from buyer and seller
2023-10-28 14:45:33 -04:00
woodser
0294062312 parse commas in xmr amounts to decimal 2023-10-18 05:58:45 -04:00
woodser
4217424c6e update translations: remove DAO from signature verification 2023-10-18 05:58:45 -04:00
woodser
df34b2e534 remove {4} from itemized offer cost in german translation 2023-10-13 10:10:15 -04:00
woodser
02987075d3 remove total mining fee from itemized offer cost 2023-10-13 09:24:19 -04:00
woodser
d65f36f122 fix decimal formatting to US convention (no commas) in offer book 2023-10-12 13:34:31 -04:00
woodser
23c14a496a fix auto correction to < min amount when creating non-fiat offers #688 2023-10-10 16:08:19 -04:00
woodser
222af4768b replace variations of btc with xmr in app resources 2023-10-10 16:08:19 -04:00
woodser
fe543e7c58 update support tab's description; remove DAO 2023-10-10 16:08:19 -04:00
woodser
f2a89108e8 replace bisq.wiki with haveno.exchange/wiki as placeholder 2023-10-10 16:08:19 -04:00
woodser
32a1a49d7e fiat trigger price has 4 decimals by fixing PriceUtil.formatMarketPrice() 2023-10-09 12:51:47 -04:00
woodser
75f5255050 update block explorer preferences for xmr, remove address url 2023-10-05 06:58:16 -04:00
woodser
9aea5e0c58 PaymentAccount.java uses Res.get() instead of hardcoded labels 2023-10-05 06:58:16 -04:00
woodser
9b88b54729 update description and translations for pay by mail info 2023-10-04 06:53:57 -04:00
woodser
057c629629 connectionService.getRefreshPeriodMs() is always positive, add docs 2023-10-04 06:53:57 -04:00
woodser
849a1c9c55 automatically adjust offer and trade amount for grpc fixed-price offers 2023-09-11 05:55:32 -04:00
woodser
4017fa108a support cash at atm over grpc 2023-09-11 05:55:32 -04:00
woodser
77cf67e6f0 start polling for best connection after delay 2023-09-08 13:34:13 -04:00
woodser
da9b251f12 update to monero-java v0.8.6 2023-09-08 13:34:13 -04:00
woodser
f78a9cd907 remove signed offers with common key images 2023-09-05 10:04:08 -04:00
woodser
9c2308f7a3 support goldback (XGB) 2023-09-04 09:14:39 -04:00
woodser
f19bc2ad4b monero wallets switch to tor after initial sync by default 2023-09-03 10:46:32 -04:00
woodser
4cde0103b3 validate payment method id and improve error message 2023-08-30 08:58:56 -04:00
woodser
e6853d2e76 remove account id from revolut 2023-08-30 08:58:56 -04:00
woodser
c46d210822 payment method ids are case insensitive 2023-08-30 08:58:56 -04:00
woodser
6e768acd1b support pay by mail over grpc api 2023-08-30 08:58:56 -04:00
woodser
c634d9d0a6 F2F payment account form has single trade currency 2023-08-30 08:58:56 -04:00
woodser
03a703b183 fix missing dispute summary text by creating new chat message if empty 2023-08-21 14:51:52 -04:00
woodser
8460346feb arbitrator can resolve their disputes after unregistered 2023-08-21 14:51:52 -04:00
woodser
a35f38b76d remove arbitrator chat next steps on dispute closed 2023-08-20 12:05:13 -04:00
woodser
c0a2fb92ec use elevated priority for protocol tx fees 2023-08-20 12:05:13 -04:00
woodser
26c95cb61d update translation: your offer has been created 2023-08-20 12:05:13 -04:00
woodser
ec7bd3aa51 do not use tor for monero connections by default 2023-08-20 12:05:13 -04:00
woodser
5e7b6c2ccd replace links with haveno.exchange domain 2023-08-20 12:05:13 -04:00
woodser
b077d532fa re-enable testStartEditOfferForActiveOffer() 2023-08-20 12:05:13 -04:00
woodser
8985f84d77 update translation: enter password on startup, withdraw, view seed words 2023-08-19 11:45:09 -04:00
woodser
9b873cf149 remove password from logging 2023-08-19 11:45:09 -04:00
woodser
58d8fdafe5 update translation: offer funds will remain in local Haveno wallet 2023-08-19 11:45:09 -04:00
woodser
7a0f1fc4d5 update translation: withdraw or keep funds in wallet 2023-08-19 11:45:09 -04:00
woodser
1dfa19dd84 update translation: detected a Monero node running 2023-08-19 11:45:09 -04:00
woodser
22ddf0999f restart attempts to sync main wallet on init failure 2023-08-18 12:28:12 -04:00
woodser
740374c9db replace LocalBitcoinNode with LocalMoneroNode 2023-08-18 12:28:12 -04:00
woodser
f08735e1e0 arbitrator can re-sign offer 2023-08-17 14:02:12 -04:00
woodser
f842a9856f save only one backup of each wallet 2023-08-17 14:02:12 -04:00
woodser
6d90d458f9 improve error message on withdraw invalid amount 2023-08-17 14:02:12 -04:00
woodser
de7e40e0f0 remove 'danger' from warning on shut down with offers 2023-08-17 14:02:12 -04:00
woodser
9c5d0702ba remove offerFeeTxId from models 2023-08-17 14:02:12 -04:00
woodser
9fb5dfb788 arbitrator verifies offer not signed before 2023-08-16 11:19:00 -04:00
woodser
20f26ea623 reduce penalty fee to trade fee 2023-08-16 11:19:00 -04:00
woodser
f112760432 remove and repost offers if signing arbitrator unregistered 2023-08-16 11:19:00 -04:00
woodser
b2b4706f14 enable editing offers 2023-08-15 14:04:18 -04:00
woodser
cb7d9364e5 check trades, disputes, and offers and add prompt on shut down
Co-authored-by: jmacxx <47253594+jmacxx@users.noreply.github.com>
2023-08-15 14:04:18 -04:00
napoly
3b89212c6f fix junit test failures for subprojects
Co-authored-by: woodser <woodser@protonmail.com>
2023-08-15 07:53:14 -04:00
woodser
4ca5974493 local network uses .localnet binaries for permissions 2023-08-13 15:26:47 -04:00
woodser
b4ddb46f60 always start syncing main wallet after setting connection 2023-08-12 12:42:05 -04:00
woodser
586a2478fc update monero binaries in app directory #655 2023-08-11 10:07:00 -04:00
woodser
3c8c0034d0 refresh offer TTL only if available 2023-08-11 10:07:00 -04:00
woodser
7fc2f5de52 fix npe resuming from standby without monero connection 2023-08-11 10:07:00 -04:00
woodser
34f68c474a don't try to start local node if seed node 2023-08-02 09:44:47 -04:00
woodser
02ba804432 fix link to open default monero wallet from deposit view 2023-08-02 09:44:47 -04:00
woodser
a5663e1411 add deployment guide and support for mainnet 2023-08-02 09:44:47 -04:00
woodser
05520d51a3 expect .address.txt to be missing on mainnet 2023-08-02 09:44:47 -04:00
woodser
5d52366861 --xmrNode starts local node if used last and offline 2023-08-02 09:44:47 -04:00
woodser
a01a6f7f95 drop --mainnet param from monerod startup config 2023-08-02 09:44:47 -04:00
woodser
f9d0bb414e fix npe if no monero connection on startup 2023-08-02 09:44:47 -04:00
woodser
0594fe2dbe remove warning on expected invalid state transition 2023-08-01 06:51:37 -04:00
woodser
141f1fd2db replace 'btc' with 'xmr' in protobuf definition 2023-08-01 06:51:37 -04:00
woodser
2a3c52b943 fix typo 'what we have already' 2023-08-01 06:51:37 -04:00
woodser
26117c2d10 my offers return open offers, improve synchronization 2023-08-01 06:51:37 -04:00
woodser
3aa5fef8ab fix concurrent modification exception in ArbitrationDisputeList 2023-08-01 06:51:37 -04:00
woodser
74b2db7524 improve error logging on shut down 2023-08-01 06:51:37 -04:00
woodser
473100620e refactor monero connection initialization
re-prioritize default connections
monero network status turns red on connection error
remove popup on connection error
remove popup on 0 monero peers which aren't reported
increase main wallet max sync attempts on startup
renames from btc to xmr
2023-08-01 06:51:37 -04:00
woodser
12b6585779 save wallet on same thread to avoid disconnect on awake from standby 2023-08-01 06:51:37 -04:00
woodser
39b8afa528 create split output tx only once on error 2023-08-01 06:51:37 -04:00
woodser
b3c607152d tolerate errors resuming from standby 2023-08-01 06:51:37 -04:00
woodser
a088f685c1 process unposted offers within lock 2023-07-28 08:01:50 -04:00
woodser
900d3a91e1 fix bugs resetting trade payout address entries 2023-07-28 08:01:50 -04:00
woodser
aa36518f69 initialize trades when all services initialized and p2p bootstrapped 2023-07-28 08:01:50 -04:00
woodser
c548fdaf29 shutting down TorNetworkNode invokes callback handler if already complete 2023-07-28 08:01:50 -04:00
woodser
c39c5cf387 synchronize on wallet lock in XmrWalletService 2023-07-26 09:24:29 -04:00
woodser
426d25f78c rename splitOutput to reserveExactAmount 2023-07-26 09:24:29 -04:00
woodser
242bc0e3bb subtract mining fees from destinations in trade protocol
fixes to scheduling and the deposit view
display address usage context
fix npe when price is null
2023-07-26 09:24:29 -04:00
woodser
13d87a32a5 update monero-java (v0.8.0) and monero-project (v0.18.2.2 w/ extensions)
subtract mining fees from payment destinations
optimize wallet rpc calls for periodic refresh from 3 to 1
fixes to saving wallet files
respect frozen outputs
restore from multisig seed (experimental)
2023-07-26 09:24:29 -04:00
woodser
6188905848 deposit view shows 'Balance in XMR' 2023-07-26 09:24:29 -04:00
woodser
fff04dd936 update description to reserve exact amount 2023-07-26 09:24:29 -04:00
woodser
5c814700fb fixes to persisted trades initialization 2023-07-26 09:24:29 -04:00
woodser
9f3b0c96c4 synchronize on trade during initialization 2023-07-26 09:24:29 -04:00
woodser
a1829ee9f3 remove mempool service 2023-07-14 08:30:46 -04:00
woodser
6b6e1e15d4 sync wallet on dispute chat message ack 2023-07-13 05:12:33 -04:00
woodser
7040ce0da0 fix Dispute.getRoleString() with opener context 2023-07-13 05:12:33 -04:00
woodser
5c6ef41511 process unposted offers after app bootstrapped 2023-07-13 05:12:33 -04:00
woodser
290912c333 synchronize on wallet during restart 2023-07-13 05:12:33 -04:00