woodser
190003b5ba
migrate to DisputeValidation
...
Co-authored-by: HenrikJannsen <boilingfrog@gmx.com>
2023-02-11 16:50:32 -05:00
woodser
6f16a5ee92
remove unused protobuf fields
...
remove TraderSignedWitnessMessage
remove tx fee from offer and trade
set dispute's disputePayoutTxId when payout observed
synchronize access to PersistenceManager.persistNow()
fix concurrent modification exception in OfferBookChartView
2023-02-11 16:50:32 -05:00
woodser
0372af663a
synchronize access to account age witness maps to fix missing hash
2023-02-09 08:48:45 -05:00
woodser
5feb487039
arbitrator deletes signed offer when key image confirmed spent
2023-02-07 14:31:14 -05:00
woodser
60dc4901e4
move trade wallet management functions from XmrWalletService to Trade
...
persist security deposits in TradePeer
set deposit tx and reserved key images when deposit tx created
listen to account service in trade manager
2023-02-07 14:31:03 -05:00
woodser
aafb47e2ce
UI cleanup, can confirm payment sent and received after dispute opened
...
show buyer and seller trade fee in dispute summary window
remove "Error polling trade wallet warning" if disconnected
show notification when dispute opened or closed in legacy app
resolve disputes under Support > Arbitration, hide other views
show "support ticket opened" when dispute request is acked
rename all variations of TradingPeer to TradePeer
rename "payment started" to "payment sent" for consistency
2023-02-07 14:31:03 -05:00
woodser
15d2c24a82
reprocess payout messages on error to improve resilience
...
reprocess on curved schedule, restart, or connection change
invalid messages are nacked using IllegalArgumentException
disputes are considered open by ack on chat message
don't show trade completion screen until payout published
cannot confirm payment sent/received while disconnected from monerod
add operation manual w/ instructions to manually open dispute
close account before deletion
fix popup with error "still unconfirmed after X hours" for arbitrator
misc refactoring and cleanup
2023-02-02 15:23:48 -05:00
woodser
a0235c8ebd
add date and key images to SignedOffer
...
arbitrator retains failed trades after reserve tx received
legacy ui shows trade details including reserve tx, with or w/o contract
fix npe searching arbitrator tickets due to null payment accounts
synchronize offer book list items
fix npe before key image poller initialized
2023-01-26 08:26:22 -05:00
woodser
882f1c070a
fetch deposit txs unless cached and confirmed
2023-01-24 14:02:41 -05:00
woodser
23393bb4b8
resend dispute closed message with payout tx on updated multisig info
...
advance dispute state if progress
SupportManager processes messages in order
re-arrange domain initialization to fix null pub key in DisputeManager
2023-01-24 14:02:41 -05:00
woodser
533639bd19
send dispute closed messages independently
2023-01-24 14:02:41 -05:00
woodser
e6baf0260a
delete backup wallets if confirmed unfunded
2023-01-24 14:02:41 -05:00
woodser
9877ba87a4
delete and restore account restarts application automatically
...
added standard input to keepalive loop for issuing commands to daemon
Co-authored-by: duriancrepe <duriancrepe@protonmail.com>
2023-01-24 08:25:59 -05:00
woodser
350d2d5398
fix error changing wallet password from default password
...
HavenoUtils.executeTasks() throws exception from any tasks
2023-01-21 07:32:36 -05:00
woodser
f1b9829b09
remove sender node address and pub key ring from non-mailbox messages
2023-01-21 07:32:36 -05:00
woodser
932854d7b2
fix persistence of isDepositsConfirmedMessagesDelivered in ProcessModel
2023-01-19 19:14:34 -05:00
woodser
422819efb4
support actual buyer & seller security deposit in TradeInfo
2023-01-19 19:14:34 -05:00
woodser
b745eaccd4
improve tx verification
...
verify sufficient security deposit which may absorb tx fee
payout binary search applies tolerance to security deposit
verify payouts sum to wallet balance
verify custom winner amount <= wallet balance
2023-01-19 19:14:34 -05:00
woodser
7f26119515
check peer date while initializing trade instead of deposits confirmed
2023-01-16 16:27:15 -05:00
woodser
a49611a234
verify payout & dispute payout tx fees are within range of recreated tx
2023-01-16 16:27:15 -05:00
woodser
9260cf53ee
verify arbitrator signature when dispute closed
2023-01-16 11:35:09 -05:00
woodser
435fc164b2
resend deposits confirmed messages until delivered
2023-01-15 10:58:45 -05:00
woodser
cd7f176e2b
fix 'trade not found' bug caused by open offer being spent
...
do not remove open offer with spent funds if reserved for trade
fix concurrent modification exception
2023-01-15 10:58:45 -05:00
woodser
266d129462
don't delete wallet backup if possibly funded
...
support new trade state: PUBLISH_DEPOSIT_TX_REQUEST_FAILED
2023-01-15 10:58:45 -05:00
woodser
a8114e147d
change log warning to info on error fetching from price provider
2023-01-14 07:37:53 -05:00
woodser
5db80eac17
resend payment sent/received messages on startup if not arrived
2023-01-14 07:37:53 -05:00
woodser
21fcdc7e00
use unique deterministic ids for mailbox messages
2023-01-14 07:37:53 -05:00
woodser
308f6e8077
handle errors initializing trade after deposits requested
...
offer remains valid until trade initialized
delete maker and taker trades on error after deposits requested
schedule trade deletion if unfunded after timeout or startup
DepositResponse supports error message to confirm failure
show deposit tx ids in trade details window
2023-01-13 07:26:01 -05:00
woodser
646380bc7a
minimum support for account witness verification & storage based on bisq
...
verify peer witness data and share with arbitrator for signing
arbitrator can sign witness hash, owner pub key (see developer-guide.md)
taker signs offer id nonce in SendOfferAvailabilityRequest
maker signs deposit tx hash in SendSignContractRequest
buyer verifies witness with payload on deposit confirmation
seller verifies witness with payload on payment sent message
add synchronization to User paymentAccountsAsObservable and elsewhere
2023-01-11 08:54:37 -05:00
woodser
963d92478d
overwrite dispute agent with same address
2023-01-11 08:54:37 -05:00
woodser
be88f57e09
don't warn if trade wallet is null on poll
2023-01-11 08:54:37 -05:00
woodser
39f86817e0
fetch prices on same thread if 0 delay
2023-01-10 08:32:44 -05:00
woodser
3e0473719b
currency util uses uppercase currency code
2023-01-10 08:32:44 -05:00
woodser
9d3855ad2e
synchronize open offers to fix concurrent modification exception
2023-01-02 17:05:09 +00:00
woodser
2c3dabfbf7
recover from error closing dispute, show payout confirmation w/ tx fee
2022-12-30 18:49:07 +00:00
woodser
48baa1e602
use actual security deposits in dispute resolution
2022-12-30 18:49:07 +00:00
woodser
c5f6aeb4cc
sync and save wallet when closing ticket, fix NPE
2022-12-27 12:56:36 +00:00
woodser
f2892d5157
close open disputes on trade completion
2022-12-27 12:56:36 +00:00
woodser
2d7654b8d7
verify maker and taker fees
2022-12-27 12:56:36 +00:00
woodser
eae3060c63
start seednode with monerod address to resolve warning
...
initialize connection immediately if monerod address given
2022-12-23 16:21:24 +00:00
woodser
1c6d4cec83
cache incoming txs to improve performance of funds tab
2022-12-23 16:21:24 +00:00
woodser
a21628ad0d
grpc offer info returns atomic units
2022-12-23 16:21:24 +00:00
woodser
fb1b8f8bd8
PriceFeedService.requestAllPrices() cycles providers and updates cache
2022-12-23 16:21:24 +00:00
woodser
ad17228b38
separate withdraw tx fee and amount in ui
2022-12-23 08:53:26 +00:00
woodser
11c3a786c9
update price server links
2022-12-22 09:35:27 +00:00
woodser
06c2ce432b
take offer funded from available balance
2022-12-21 23:40:28 +00:00
woodser
2b7beff84e
remove "Returning balance for subaddress" printout
2022-12-21 15:29:12 +00:00
woodser
e8242612b2
update haveno support links to monero.social, update unconfirmed warning
2022-12-21 15:29:12 +00:00
woodser
67a8ac1236
dispute can be opened after 1d (mainnet), 30m (stagenet), or 1m (local)
2022-12-21 15:29:12 +00:00
woodser
a3f0543e4f
remove redundant MAX_FIAT_STAGENET_XMR
2022-12-21 15:29:12 +00:00
woodser
e5cf2f8429
fix potential double spend by locking wallet when thawing outputs
2022-12-21 15:29:12 +00:00
woodser
e4046bd84e
fix dispute and trader chat button and states
...
ui can open dispute after payment sent
ui indicates if dispute opened by self or peer
2022-12-21 08:33:59 +00:00
woodser
f13e1ec610
cannot open dispute until both deposits confirmed and available
2022-12-20 10:14:46 +00:00
woodser
e85682e635
fix resolved dispute chat message
2022-12-20 10:14:46 +00:00
woodser
38864d71ff
implement batch key image polling for offer book in background
2022-12-19 11:26:09 +00:00
napoly
1adf7bd73f
avoid redundant wallet backups, max 10 backups ( #505 )
...
Co-authored-by: woodser <woodser@protonmail.com>
2022-12-18 15:15:55 +00:00
napoly
217e7e03a2
dockerize deamons with docker compose
2022-12-16 15:01:58 +00:00
woodser
f11c816cda
enforce trade limit over grpc
2022-12-16 09:24:53 +00:00
woodser
31dfdd7710
remove btc fee service
2022-12-16 09:16:11 +00:00
woodser
3314eac881
stability improvements
...
synchronize timeout timer
fix concurrent modification exceptions
use wallet lock when saving multisig wallets
2022-12-16 09:16:11 +00:00
woodser
9fda20f88b
update to new xmr price server api
...
remove timestamp data structure
2022-12-16 09:16:11 +00:00
napoly
13b5d123bb
increase fiat trade limit to 2 XMR
2022-12-15 21:41:27 +00:00
napoly
3ba106d466
fix wallet rpc initialization
2022-12-04 17:20:40 +00:00
woodser
dd0a307a84
support funding make or take offer directly
...
QR code encodes payment URI
security deposit absorbs miner fee up to 5%
use binary search to maximize security deposit and minimize dust
show itemized funding popup on create offer
2022-12-04 14:38:22 +00:00
napoly
bd70b935e4
P2P status indicator with update prompt
...
Co-authored-by: jmacxx <47253594+jmacxx@users.noreply.github.com>
Co-authored-by: Christoph Atteneder <christoph.atteneder@gmail.com>
2022-12-01 10:14:07 +00:00
woodser
a2929035bc
only update balances if not terminated
2022-11-28 15:28:40 +00:00
woodser
a408b0e7ae
trade initialization defers opening and syncing wallet if idling
2022-11-28 15:28:40 +00:00
woodser
7ca3b8cee1
re-send payment sent/received messages on startup if not arrived
2022-11-28 15:28:40 +00:00
woodser
e20e23dbc5
stop initializing trades on shutdown
2022-11-28 15:28:40 +00:00
woodser
7062fa9e79
message handlers return synchronously
2022-11-28 15:28:40 +00:00
woodser
a266fab6ec
process mailbox messages in order
2022-11-28 15:28:40 +00:00
woodser
456ef912ed
delete trade wallet on error if deposit not requested
2022-11-26 22:28:30 +00:00
woodser
79db2bc0af
arbitrator submits deposit txs and checks result before relaying
2022-11-26 22:28:30 +00:00
woodser
9aa6bbeff6
must provide fixed price unless using market price
2022-11-26 22:28:30 +00:00
woodser
9c5fdb5d4a
finish processing PaymentReceivedMessage
2022-11-24 14:25:55 +00:00
woodser
4c7075b0bd
set payout tx hash on payment received unless unlocked
2022-11-24 12:33:00 +00:00
napoly
d3949614c6
reject creating crypto payment account with invalid currency code or address
2022-11-24 11:34:22 +00:00
napoly
27fdf87e84
fix dispute deposit transaction IDs in legacy UI
2022-11-23 09:55:35 +00:00
woodser
0d981a2df6
get trade account payloads over grpc, support crypto account forms
2022-11-23 09:42:43 +00:00
napoly
1f61e82946
fix transaction IDs in legacy UI trade info views
2022-11-13 07:45:25 -05:00
woodser
d9f2ce425f
improve performance by pre-fetching txs for subaddress queries
2022-11-07 08:26:30 -05:00
woodser
4fb62d8669
fix confirmation progress in ui
...
fix my role label to show during trade initialization
support arbitrator role label
2022-11-07 08:26:30 -05:00
woodser
247087ef46
refactor arbitration protocol
...
add dispute states and open/close messages routed through arbitrator
both traders publish dispute payout tx, winner is default
verify signatures of payment sent and received messages
seller sends deposit confirmed message to arbitrator
buyer sends payment sent message to arbitrator
arbitrator slows trade wallet sync rate after deposits confirmed
various refactoring, fixes, and cleanup
2022-11-07 08:26:30 -05:00
woodser
363f783f30
accurate tx fee estimation based on weight
2022-10-28 08:55:58 -04:00
woodser
416d21a8aa
update to monero-java v0.7.8
2022-10-28 08:55:58 -04:00
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