Commit Graph

276 Commits

Author SHA1 Message Date
woodser
f36dde2857 refactor payout protocol
send payment key & multisig hex on deposit confirm for resilience
support payout published, confirmed, unlocked states
keep trade wallets open throughout trade
close and delete trade wallets when payout unlocks
arbitrator idles trade wallets after deposits confirm (1/hour)
2022-10-27 08:06:18 -04:00
woodser
e79450f65e fix trade is in an invalid state warning
Co-authored-by: duriancrepe <duriancrepe@protonmail.com>
2022-10-17 11:22:01 -04:00
duriancrepe
2eb275281e fix packageInstallers for all platforms 2022-10-12 10:42:34 -04:00
woodser
79021dc9c6 revert getters for peer and arbitrator node addresses to avoid NPEs 2022-10-04 15:35:01 -04:00
woodser
767f4cf8c0 reset address entries of taker's offer model when done
fixes the "outdated addressEntry" warning
2022-10-04 15:35:01 -04:00
woodser
139896bced seller resets address entries on payout published 2022-10-02 14:41:24 -04:00
woodser
58aad5e6ae expect deposits to be confirmed or unlocked when payment sent 2022-10-02 14:41:24 -04:00
woodser
5bd05af890 synchronize price requests 2022-10-02 14:41:24 -04:00
woodser
dc9c04759f listen for published payout tx
fix "Swapping pending OFFER_FUNDING" warning
move payout tx from TradingPeer to Trade
2022-10-02 14:41:24 -04:00
woodser
5fbc41946e
refactor node addresses and pub key rings to TradingPeer (#460) 2022-10-01 13:29:38 -04:00
woodser
c153afff67
arbitrator does not share payment account key until after first confirmation (#457)
use payout address from contract instead of PaymentSentMessage
2022-10-01 07:47:18 -04:00
woodser
93472b9759
fixes based on refactored tests (#454)
log trade id with error
open dispute chat on user thread
fix null arbitrator signature by copying offer payload before modifying
2022-09-29 09:46:21 -04:00
woodser
5d45c08744 provide error message if price is unavailable for offer 2022-09-24 08:36:16 -04:00
woodser
c5f5a5af42 process messages on user thread and protocol tasks off user thread 2022-09-24 08:36:07 -04:00
woodser
d698555c9a trade completion fixes with payment key and multisig hex on confirmation
preserve peer multisig hex when arbitrator provides payment key
process payment received using persistent, non-transient data
payout_tx_published_msg represents payment_received_msg after payout
update arbitrator's peer address on payout published
schedule payment account key request after deposit request
2022-09-21 09:00:41 -04:00
woodser
c21ebe6a9d normalize names of protocol tasks 2022-09-21 09:00:41 -04:00
woodser
0388f283a7 remove open offer from books after deposit request 2022-09-21 09:00:41 -04:00
woodser
1f32fc2cbe seller decrypts buyer payment info on payment sent 2022-09-21 09:00:41 -04:00
woodser
64925d0137 close arbitrator trade by sending PayoutTxPublishedMessage 2022-09-21 09:00:41 -04:00
duriancrepe
9975d7398b
upgrade to Gradle 7.3.3 (#439)
* upgrade to Gradle 7.3.3

* add verification hashes for mac and windows

* add verification hash for windows
2022-09-19 08:59:57 -04:00
woodser
3f5fe671cd decrypt payment info after confirmation for double spend protection
retrieve decryption key from arbitrator if peer fails to send
2022-09-17 07:28:04 -04:00
woodser
355a6146b6 add confirmed trade state 2022-09-17 07:28:04 -04:00
erciccione
3b788d1fea fix typo in trade completed screen 2022-09-17 07:27:19 -04:00
woodser
a51aeeb484 offer book view checks for invalid signer or signature
merge OfferFilter into OfferFilterService
2022-09-17 07:26:12 -04:00
woodser
b95c689190 process payment confirmation messages off main thread 2022-09-02 14:28:00 -04:00
woodser
dbc7ff265a show wallet transaction dates 2022-09-02 14:28:00 -04:00
woodser
3da228750f fix jfx error on offer book added 2022-09-02 14:28:00 -04:00
woodser
b291fdae73 fix pub key validation error 2022-08-29 09:29:19 -04:00
woodser
857a1d0be8 fix npe validating pub key 2022-08-18 08:10:42 -04:00
woodser
f869aec688 change terminology from altcoins to cryptocurrencies 2022-08-18 08:10:42 -04:00
woodser
69899c8750 remove zec from main currency list 2022-08-17 14:49:49 -04:00
woodser
f464110fb5 update locked -> pending balance 2022-08-17 14:49:49 -04:00
woodser
cb10a65a83 fix npe in arbitrator when dispute is opened 2022-08-17 14:49:49 -04:00
erciccione
56412b749d improve some wording across the app 2022-08-17 09:08:21 -04:00
erciccione
2a50350cff prioritise conneting to our remote node RPC (if no local node)
and add credentials
2022-08-15 13:17:02 -04:00
woodser
f9d700074a cache txs fetched from daemon 2022-08-15 12:03:07 -04:00
woodser
54eee73c04 add mining fee padding to maker and taker reserve txs 2022-08-15 12:03:07 -04:00
woodser
2f1f1a788b fix issues going offline while completing trades 2022-08-15 12:03:07 -04:00
erciccione
12e3e3507e add 1 monero stagenet node and 2 haveno seednodes 2022-08-15 12:02:59 -04:00
woodser
3727d12ef6
select online, registered, and least used arbitrator (#400)
support registering and unregistering arbitrators over grpc
maker always sends InitTradeRequest to arbitrator
share original contract for comparision
remove backup arbitator from model
cleanup trade states
2022-08-13 09:47:33 -04:00
erciccione
757c7cf19c seednodes: update address 2022-08-12 09:09:29 -04:00
woodser
4901808844 fix possible concurrent modification exception 2022-08-09 14:21:38 -04:00
woodser
cebdef31c0 only remove trade if not in funded state
track sent vs seen deposit request state
cleanup trade phases
2022-08-09 14:21:38 -04:00
erciccione
fed7b22c90 pricenode: woodser's patch 2022-08-08 13:46:42 -04:00
woodser
f8f10a4d6b remove timeout processing payment sent message 2022-08-08 13:46:16 -04:00
woodser
3753a42023 update to monero-project v0.18.0.0, monero-java v0.7.2 2022-08-08 13:45:46 -04:00
woodser
333b7421f5 cleanup trade states, consolidate protocol tasks, remove old tasks 2022-07-31 14:51:27 -04:00
woodser
3d43ae1f20 confirm payment sent and received off main thread 2022-07-31 14:51:27 -04:00
woodser
50126874a0 add multisig wallet state and wait for multisig to complete
refactor trade protocol
2022-07-31 14:51:27 -04:00
woodser
f61fd09127 add grpc error handling for confirming payment sent and received 2022-07-31 14:51:27 -04:00
woodser
608c19a1d0 sync wallet on open 2022-07-29 18:04:47 -04:00
woodser
a5f457d8e9 fetch prices repeatedly when run as daemon 2022-07-29 18:04:35 -04:00
woodser
a3a5b96c06 stagenet deployment fixes
execute protocol tasks off main thread
fix confirmation progress indicators
fix expected unlock height
process sign contract request after contract signature requested
deposit listener only advances trade state
2022-07-28 14:35:40 -04:00
woodser
3dcaf67edd refactor trade protocol latch and timeouts 2022-07-25 22:57:06 -04:00
woodser
3f25a756ea fix legacy app freeze if insufficient funds to schedule offer 2022-07-25 22:57:06 -04:00
woodser
b6783dc732 thaw outputs not reserved for trade or offer on startup 2022-07-18 12:36:24 -04:00
woodser
a80a7eec5f check state before deleting trade wallet 2022-07-18 12:36:24 -04:00
woodser
477246f8f0 disconnect error handler when trade initialized 2022-07-18 12:36:24 -04:00
woodser
b4fe0f0ee6 handle timeout in trade initialization with protocol latch 2022-07-18 12:36:24 -04:00
woodser
83b8616f6f handle timeout during place offer protocol 2022-07-18 12:36:24 -04:00
erciccione
e726071841
replace stagenet seednode (#372) 2022-07-17 09:58:22 +02:00
woodser
6ca775da1b reserve correct offer amount based on buy or sell direction 2022-07-16 18:23:02 -04:00
woodser
c97ca852f5 remove btc fee rate from footer 2022-07-16 18:23:02 -04:00
woodser
588270678c remove seed from terminal 2022-07-16 18:23:02 -04:00
woodser
031f091f69 update trade completion message 2022-07-16 18:23:02 -04:00
woodser
14ada60c25 do not start local node when credentialed local node running
rename isMoneroNodeRunning() to isMoneroNodeOnline()
2022-07-16 18:23:02 -04:00
woodser
968a01abe1 handle error during sign offer protocol 2022-07-15 09:35:08 -04:00
woodser
7b355ff70a reset xmr address entries on offer removed 2022-07-15 09:35:08 -04:00
woodser
f9c5cd1f2c fix npe if no localhost connection 2022-07-15 09:34:52 -04:00
woodser
59e5f8e79a fix bug which caused monerod param to be ignored 2022-07-15 09:34:52 -04:00
woodser
e17b0f8ec8 remove input selection from withdraw view 2022-07-15 09:06:26 -04:00
woodser
fb3745c6df support funding tabs: receive, send, transactions 2022-07-15 09:06:26 -04:00
woodser
003fac3da4 update stagenet explorer 2022-07-15 05:50:35 -04:00
woodser
f36af3a557 update stagenet fee address 2022-07-15 05:50:24 -04:00
woodser
7945514c46 unfreeze funds if error during creating offer
fix jfx error
2022-07-13 18:09:42 -04:00
woodser
4a171c9baa
cap stagenet fiat offers to 1 xmr until trade credits supported (#355) 2022-07-13 18:09:19 -04:00
erciccione
7157defea5 edit some text and remove strings of removed entries 2022-07-13 08:15:54 -04:00
woodser
b89c0d720b buyer exports multisig hex only once during payout 2022-07-12 09:33:24 -04:00
woodser
f2cd9dd570 increase max trade limit for lowest risk payment from 2 to 20 xmr 2022-07-12 09:33:15 -04:00
woodser
defb82d240 treat SELLER_SAW_ARRIVED_PAYMENT_RECEIVED_MSG as payout until refactored 2022-07-12 09:33:00 -04:00
woodser
8980a8ec60 sync wallet when opened 2022-07-12 09:33:00 -04:00
woodser
008210abf6 fix reserved balance = frozen offer outputs + confirmed deposits 2022-07-12 09:33:00 -04:00
woodser
896380218e set xmr node on startup w/ xmrNode, xmrNodeUsername, and xmrNodePassword 2022-07-10 06:14:52 -04:00
erciccione
3c81558e11 add stagenet seednode 2022-07-08 10:04:09 -04:00
woodser
e2208355b1
support local, stagenet, and mainnet xmr network configuration (#335)
remove btc wallet
disable local zmq
2022-07-07 09:10:59 -04:00
woodser
c28108a4b6 support rolling backup of multisig wallets 2022-06-29 11:17:28 -04:00
woodser
f17c5803b5 stopping wallet rpc instance does not assume to close wallet 2022-06-29 11:17:28 -04:00
woodser
7ad2e20d95 support paxum 2022-06-24 15:46:54 -04:00
woodser
27f4b18330 support uphold 2022-06-24 15:46:54 -04:00
woodser
6dbd1660e5 support faster payments 2022-06-24 15:46:54 -04:00
woodser
d0c02acba1 support sepa instant 2022-06-24 15:46:54 -04:00
woodser
c40938f438 support MoneyGram form api 2022-06-23 11:24:28 -04:00
woodser
faeb9ca8db refactor payment account form api to support structured, dynamic forms 2022-06-23 11:24:28 -04:00
woodser
88578bed10 general rebase in order to update payment methods and desktop app
Co-authored-by: Alva Swanson <alvasw@protonmail.com>
Co-authored-by: andyheko <haoen.ko@gmail.com>
Co-authored-by: Bisq GitHub Admin <51445974+bisq-github-admin-3@users.noreply.github.com>
Co-authored-by: BtcContributor <79100296+BtcContributor@users.noreply.github.com>
Co-authored-by: cd2357 <cd2357@users.noreply.github.com>
Co-authored-by: chimp1984 <chimp1984@gmx.com>
Co-authored-by: Chris Beams <chris@beams.io>
Co-authored-by: Christoph Atteneder <christoph.atteneder@gmail.com>
Co-authored-by: Devin Bileck <603793+devinbileck@users.noreply.github.com>
Co-authored-by: ghubstan <36207203+ghubstan@users.noreply.github.com>
Co-authored-by: Huey <hueydane@gmail.com>
Co-authored-by: Jakub Loucký <jakub.loucky@outlook.cz>
Co-authored-by: jmacxx <47253594+jmacxx@users.noreply.github.com>
Co-authored-by: KanoczTomas <tomas.kanocz@cnl.sk>
Co-authored-by: m52go <735155+m52go@users.noreply.github.com>
Co-authored-by: Marcus0x <marcus0x@xrhodium.org>
Co-authored-by: MarnixCroes <93143998+MarnixCroes@users.noreply.github.com>
Co-authored-by: Martin Harrigan <martinharrigan@gmail.com>
Co-authored-by: MwithM <50149324+MwithM@users.noreply.github.com>
Co-authored-by: sqrrm <sqrrm@users.noreply.github.com>
Co-authored-by: Stan <36207203+ghubstan@users.noreply.github.com>
Co-authored-by: Stephan Oeste <emzy@emzy.de>
Co-authored-by: Steven Barclay <stejbac@gmail.com>
Co-authored-by: WAT <shiido.it@gmail.com>
Co-authored-by: wiz <j@wiz.biz>
Co-authored-by: xyzmaker123 <84982606+xyzmaker123@users.noreply.github.com>
2022-05-28 13:56:29 -04:00
woodser
ca9bdf7c29 set offer trigger price and state from open offer 2022-05-26 09:46:57 -04:00
woodser
e33d93eee8 fix npe on startup without monerod connection 2022-05-23 18:23:05 -04:00
woodser
ffccf83ac5 support getXmrPrimaryAddress(), getXmrNewSubaddress() 2022-05-16 13:33:07 -04:00
woodser
fa15612586 support scheduling offers with locked funds 2022-05-16 13:33:07 -04:00
woodser
a37df9281e add supported asset codes to payment methods 2022-05-12 14:05:57 -04:00
woodser
f4120b869d support getXmrSeed() 2022-05-11 17:03:34 -04:00
woodser
e4a8aa45e7 update to monero-java v0.7.0 2022-05-10 09:54:37 -04:00
woodser
ded73cad6c close multisig wallet after seller prepares payment received message 2022-05-06 08:56:29 -04:00
woodser
d87c679f4c resolve NPE on shutdown before account opened 2022-04-29 13:54:53 -04:00
woodser
716f62797d register arbitrator from api and use throughout trade 2022-04-28 11:46:34 -04:00
woodser
c2f5adac9b trigger price handled as string, same as price 2022-04-28 11:46:34 -04:00
woodser
272ae8bfa9
check account open on create crypto payment account (#281) 2022-04-12 07:49:40 -04:00
duriancrepe
5b38eab716
Encrypt persisted data using password protected symmetric key (#279) 2022-04-12 07:49:30 -04:00
woodser
2d3043093e seller state is PAYMENT_RECEIVED or PAYOUT_PUBLISHED after confirming 2022-04-07 14:12:03 -04:00
woodser
730bee3e71
renames in proto and api (#277)
rename to getNewDepositAddress()
rename trade phase DEPOSIT_CONFIRMED to DEPOSIT_UNLOCKED
rename fiat sent/received to payment sent/received
2022-04-07 10:45:35 -04:00
woodser
32070fbafb refactor payout protocol to work with or without updated multisig 2022-04-06 11:27:50 -04:00
woodser
bb95b4b1d6 support multithreading in api and protocols
close trade wallets while unused for scalability
verify txs do not use unlock height
increase trade init timeout to 60s
2022-04-06 11:27:50 -04:00
woodser
fdddc87477 app fully initialized before daemon connection or wallet by default
wallet initializes when first connected to get correct height
connect to local node if available and last connection offline
use only one internal daemon in monero node service
2022-04-04 15:28:54 -04:00
duriancrepe
9dfbb0d5a6 Add API functions to start and stop local Monero node 2022-04-04 15:28:54 -04:00
woodser
00765d7b32
Change network version to avoid connecting to bisq nodes (#275)
Co-authored-by: l0nelyc0w <coinrunner@danwin1210.me>
2022-04-04 14:17:44 -04:00
Christoph Atteneder
e0727f4934 tor v3 formatting and v3 btc nodes from bisq
Co-Authored-by: Christoph Atteneder <christoph.atteneder@gmail.com>
Co-Authored-by: Stephan Oeste <emzy@emzy.de>
2022-04-03 12:11:13 -04:00
duriancrepe
2851319e3b
Add API functions to support trade chat (#257) 2022-03-09 07:42:48 -05:00
duriancrepe
e7b4627102
Add API functions to open and resolve disputes (#244)
Co-authored-by: woodser <woodser@protonmail.com>
2022-03-07 12:56:39 -05:00
erciccione
07c48a04f5
settings for pricenodes and add our pricenodes 2022-03-06 10:45:18 -05:00
woodser
e91b96227f support Bitcoin Cash 2022-02-16 11:59:21 -05:00
woodser
45a61ae835
fix bug getting crypto offers caused by base/counter inversion (#245) 2022-02-16 10:09:52 -05:00
Randall B
5b038697c3
Add market depth info API call (#190) 2022-02-11 18:13:41 -05:00
duriancrepe
e3b9a9962b
Add API functions to initialize Haveno account (#216)
Co-authored-by: woodser@protonmail.com
2022-02-09 04:39:57 -05:00
woodser
1ae98094f3
stop arbitrator trade initialization timeout (#238) 2022-02-08 07:29:30 -05:00
Fritz Lumnitz
a3586fdef8 Add monero connections manager 2022-01-28 17:01:32 -05:00
woodser
2715e1bba8 support notification types: trade update, chat message, keep alive 2022-01-17 08:39:53 -05:00
premek
422267de79 FormattingUtilsTest locale fix
This test was failing sometimes (not consistently) on a system with non-en locale. GlobalSettings.setLocale is used in other tests like this
2022-01-14 16:34:12 -05:00
woodser
7b6b92d894 update to monero-java 0.6.0 with api updates & connection manager fixes 2022-01-14 16:33:56 -05:00
Fritz Lumnitz
800b309a4b Add notifications listener 2022-01-13 07:56:59 -05:00
woodser
9059974725 remove dependency on local BTC node
Co-authored-by: premek <1145361+premek@users.noreply.github.com>
2022-01-06 15:29:14 -05:00
woodser
1b78be689a maker waits for ack on sign offer request 2022-01-06 15:28:53 -05:00
woodser
253ef8fabe dispute agent registration uses host name and prevents re-registration 2022-01-06 15:27:07 -05:00
l0nelyc0w
c1699795e7 Add API functions to get wallet transfers and withdraw funds 2021-12-31 14:34:37 -05:00
woodser
e8cc3d20f5 update more names from bisq* to haveno* 2021-12-20 11:47:17 -05:00
woodser
ce538c5ca6 update copyright headers to Haveno 2021-12-16 13:33:12 -05:00
woodser
1be8e53ee9 rename classes and executables from Bisq* to Haveno* 2021-12-16 13:33:12 -05:00
woodser
7c9c35b1b8 improve error handling in protocol pipelines
support getTrades() from grpc api
consistently use timeouts in protocol pipelines
remove trade and repost offer on protocol errors
delete multisig wallet when trade removed
protocol advances on ack messages instead of network onArrived()
re-order protocol class methods to correct order
2021-12-15 13:19:05 -05:00
woodser
dd68760f27 handle errors making or taking offers with insufficient funds 2021-12-08 06:24:35 -05:00
Randall Coding
c7cc810d47 Handle arbitrator giving all payout to one trader 2021-11-22 14:18:49 -05:00
woodser
b6a1d7c652 adjust displayed currencies in desktop app 2021-11-22 08:02:06 -05:00
premek
f27e3e3d1a Implement getMarketPrices API endpoint
- Increase rate limit to 10 calls per second.
- Use the new API also for the getMarketPrice call, this makes the 'Can get market prices' API test pass
2021-11-20 19:41:26 -05:00
woodser
469c47b0c7 add balance to xmr balances
reduce trade api rate limiting
offer is set to available
2021-11-20 16:28:49 -05:00
woodser
f08c2036a7 api returns offers for unconfigured payment method 2021-11-19 17:14:21 -05:00
woodser
4dafd57026 use backup arbitrator if signing arbitrator not available 2021-11-18 13:04:25 -05:00
premek
7d21bdf9f3 add config option to specify wallet rpc bind port 2021-11-17 04:55:39 -05:00
woodser
4000fdc1e5 show warnings from wallet disconnect on manual shutdown, not stacktraces
quick build haveno apps with `make haveno-apps`
upgrade to monero-java 0.5.8
2021-11-13 12:58:54 -05:00
woodser
cd108387a2 restore dispute summary message 2021-11-11 16:21:22 -05:00
woodser
4d81d98e00 revert price feed changes of #129 due to error when all tests run
observing "error applying consumer" in alice console when all tests run
2021-10-30 10:00:40 -04:00
woodser
68e0bba6ac only print when outputs first confirm 2021-10-30 10:00:40 -04:00
woodser
728760bbc2 support price feed for btc and other cryptos
add btc and remove xmr from market price map
closes #125
2021-10-24 09:23:15 -04:00
woodser
ed4394dc5d set payment account trade currency
closes #115
2021-10-24 09:23:15 -04:00