This would fail once we update trade protocol version when we release segwit. So this fixes that as it only checks if the version is not the old version (1) where refund agents have not been part of the system.
Also checks for legacy arbitrator that it only can be used for version 1 cases. Not tested and not assumed that this code will be executed as old arbitrators would use the old app in case they need to still work on a old case.
Add shutdown method to TradeStatisticsConverter and call it via TradeStatisticsManager. Now as we have a reference to TradeStatisticsConverter in we don't need the hack anymore in applyInjector.
Set log level for com.neemre.btcdcli4j.core.client.ClientConfigurator to error as there is an expected warn log because of the outdated version.
We let seller publish trade stats to avoid those issues with duplicated entries as trade date is different.
We could fix that to use the same trade date, but it seems to be not needed that both traders are publishing and the
risk if a trade stat does not get successfully published does not cause real problems.
There is guarantee anyway that the data is broadcast even if both do it.
In case we still want to do it from both sides we need to use the sellers trade date which is exchanged early in the trade
protocol but yet not further used beside for account age check.
Not sure how to add it to gradle so its set at normal compilation as well...
User get confused by the warning as it sounds somehow alerting.
`WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/Users/dev/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.2.2/6dacbe18e5eaa7f6c9c36db33b42e7985e94ce77/guice-4.2.2.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release`
Rename:
LOW to NETWORK
MID to PRIVATE_LOW_PRIO
HIGH to PRIVATE
Change delay of MID/PRIVATE_LOW_PRIO from 30 min to 2 hours (we had different datastores before using it, now its only real low prio stores)
Add comment to each enum
Make initializePersistenceManager in StorageService abstract to enforce in concrete class to define priority.
Change priorities for future renaming to a different meaning. instead of priority we want to describe the category: private data, public data,.... will come in next commit
Since this is a legal agreement, the goal is to limit the liability of
the facilitators of the service, not to explain how we calculate the
price indicies - users can find that information on the "about" page.
Also updates URL for Dispute Resolution to the new wiki article.
Fixes#4571
Add info to tooltip and to offer window
Add center css to actions column. It looks weird that title is left aligned and button is centered.
only "last-column", "avatar-column" worked, making an new style e.g. center-column did not succeed... css is not my friend....
Shorten "Time since signing" to "Signed since" header to avoid truncation
We keep the TradeProtocol now in TradeManager in a hashmap.
As TradeProtocol constructors get called now earlier we need to add an onInitialized method which signals that the TradeProtocol is ready.
The processModel needs to get set the transient fields after construction.
Set trash button disabled if the tx chain is valid to avoid that users move to failed while trade is valid to be completed.
Contract: Add isMyRoleMaker method
Trade: Add hasErrorMessage and isTxChainInvalid methods
The info icon next to the trade ID is then a warning icon (should be red but css is not my best friend) and if opening trade details window we also color the missing txs red with a warn icon and tooltip.
When clicking the trash button a popup is displayed with detail info.
At failed trades there is a "undo" icon for reverting the trade back to pending (if user wants to open mediation, etc).
All the automatic handling of the failed trades and popups are removed as it never worked well and just confused users...
In next commits we will add more instructions what a user should/can do for diff. error cases.
TradeManger:
- Remove all the failed checks at initPendingTrade.
- Remove tradesWithoutDepositTx
- Remove tradesForStatistics as it was never read
- Remove cleanUpAddressEntries
- Rename addTradeToClosedTrades to onTradeCompleted
TxIdTextField accepts a null for tx ID and shows then red colored N/A and a warning icon.
HyperlinkWithIcon exposed the icon to be accessible for style change.
DebugWindow was updated for one variation of the trade protocol (other is missing still).
Trade detail window show now always all 4 mandatory txs.
Beside that this commit has some cleanups and null pointer fixes (when testing error scenarios i got those NP).
Add signed witness to PayoutTxPublishedMessage
Remove usage of RefreshTradeStateRequest but leave it for backward compatibility
Move removeMailboxMessageAfterProcessing calls in finally branch
Rename methods
* If Tor *.onion hostname, use HTTP with Tor proxy
* If 127.0.0.1 or localhost, use HTTP without Tor proxy
* If LAN address or *.local FQDN, use HTTP without Tor proxy
* If any other FQDN hostname, use HTTPS with Tor proxy
at restore from seed and create a backup copy.
I don't know what was the motivation of removing the original file
(probably the use case that the seeds are different and thus there
is no match of existing entries with the new addresses) as
that breaks the internal association of addresses with trades/offers and
the reserved balances display.
This should be tested well though with the related use cases
(diff. offer and trade states, wallet restore with same seed of with
foreign seed -> in that case we need to recreated the AddressEntryList
but that should be handled in the related domain)
- Add copyFile method
* If Tor *.onion hostname, use HTTP with Tor proxy
* If 127.0.0.1 or localhost, use HTTP without Tor proxy
* If LAN address or *.local FQDN, use HTTP without Tor proxy
* If any other FQDN hostname, use HTTPS with Tor proxy
- useXmrTxProof was set at active but used in addContent which was
called before activate.
- Fix bug with using currencyName instead of currencyCode
- Refactor: Use methods in base class instead of repeated code
Fix missing CSS color code xmr-orange, was missing from dark mode.
Fix log message spelling/typo errors.
Removed 2 fixes from SellerStep3View so that chimp1984 can make
changes.
Remove address validator from XMR service address settings because
it does not support https prefix.
We apply userName to accountId if it is not set (e.g. new account
created with new version). We do not use that for display or for
account signing in case both fields are the same but we need to use
accountId in case the user trades with a not updated user who expects
accountId as only field.
I improved a bit the display of account data in the trade screens.
In case accountId was set with the phone number (updated account with
phone nr used for account signing) we show both userName and phone nr.
- Show phone number if accountId was set by old account. Otherwise
show only userName
- For old users they will see the user name as phone number displayed
if they trade with new users if the new user has created a new account.
If he has updated an existing account the accountId (phone number) is
used, so it displays the phone number.
- At step 2 changed display of own account data to show account name
- Add 'Recipients' prefix to account data of peer at step 2
Step 3: Buyers account data can be
- Phone number if peer is using old version
- User name if peer is updated user with new account (we apply userName
to accountId)
- Phone number if user is on old version and peer is updated user with
updated account (we keep accountId as phone number)
- User name/Phone number if peer is updated user with updated account
Support agent can mark a suspicious dispute as resolved so it does not
show the alert icon anymore. In the full report a [ACK] got added to
that dispute.
We do not wait until the offer got removed by a network remove message but remove it
directly from the offer book. The broadcast gets now bundled and has 2 sec. delay so the
removal from the network is a bit slower as it has been before. To avoid that the taker gets
confused to see the same offer still in the offerbook we remove it manually. This removal has
only local effect. Other trader might see the offer for a few seconds
still (but cannot take it).
Fix missing CSS color code xmr-orange, was missing from dark mode.
Fix log message spelling/typo errors.
Removed 2 fixes from SellerStep3View so that chimp1984 can make
changes.
Remove address validator from XMR service address settings because
it does not support https prefix.
- useXmrTxProof was set at active but used in addContent which was
called before activate.
- Fix bug with using currencyName instead of currencyCode
- Refactor: Use methods in base class instead of repeated code
We do not wait until the offer got removed by a network remove message but remove it
directly from the offer book. The broadcast gets now bundled and has 2 sec. delay so the
removal from the network is a bit slower as it has been before. To avoid that the taker gets
confused to see the same offer still in the offerbook we remove it manually. This removal has
only local effect. Other trader might see the offer for a few seconds
still (but cannot take it).
Support agent can mark a suspicious dispute as resolved so it does not
show the alert icon anymore. In the full report a [ACK] got added to
that dispute.
We apply userName to accountId if it is not set (e.g. new account
created with new version). We do not use that for display or for
account signing in case both fields are the same but we need to use
accountId in case the user trades with a not updated user who expects
accountId as only field.
I improved a bit the display of account data in the trade screens.
In case accountId was set with the phone number (updated account with
phone nr used for account signing) we show both userName and phone nr.
- Show phone number if accountId was set by old account. Otherwise
show only userName
- For old users they will see the user name as phone number displayed
if they trade with new users if the new user has created a new account.
If he has updated an existing account the accountId (phone number) is
used, so it displays the phone number.
- At step 2 changed display of own account data to show account name
- Add 'Recipients' prefix to account data of peer at step 2
Step 3: Buyers account data can be
- Phone number if peer is using old version
- User name if peer is updated user with new account (we apply userName
to accountId)
- Phone number if user is on old version and peer is updated user with
updated account (we keep accountId as phone number)
- User name/Phone number if peer is updated user with updated account
Some wallets copy the address with a 'monero:' prefix. If user pastes
that directly into the form he gets a validation error. We remove now
that prefix so the input is automatically adjusted to the address only.
If we would add DisputeManager to previous structure it would cause a
circular dependency error from guice. We change dependency structure so
that TradeManager does not know XmrTxProofService but XmrTxProofService
gets an instance of TradeManager. It makes code cleaner in total as well
as responsibility is better defined.
Next commit will contain the DisputeManager addition.
If we would add DisputeManager to previous structure it would cause a
circular dependency error from guice. We change dependency structure so
that TradeManager does not know XmrTxProofService but XmrTxProofService
gets an instance of TradeManager. It makes code cleaner in total as well
as responsibility is better defined.
Next commit will contain the DisputeManager addition.
at merge.
We keep daoPresentation and accountPresentation support even it is
not used atm. But if we add a new feature and add a badge again it
will be needed.
// ObjectProperty with AssetTxProofResult does not notify changeListeners. Probably because AssetTxProofResult is
// an enum and enum does not support EqualsAndHashCode. Alternatively we could add a addListener and removeListener
// method and a listener interface, but the IntegerProperty seems to be less boilerplate.
This allows the user to change required confirmation and it has impact
on open requests. Will be read at parsing the result.
Changed also the text field to not listen on text change but on focus
out so that the values are only updated once the user has left the
field and the value is valid. Otherwise small numbers like 1 might be
written during typing. The other values are only read at request start
and changes will have no impact on already started requests.
Also applies previous value in case the user added an invalid value at
focus out.
- Made display text shorter and added a tooltip.
- Allow very high numbers in devmode as max conf value
This is another larger refactoring, sorry ;-)
But the structure was just not correct before. We had handled multiple
trades with multiple results and that is error prone. Now each class
has much more clear responsibilities. Also the result enums are not
changes so that they are better separated between result based and
service bases states.
All different states are still hard to test. We should set up some mock
service to simulate confirmations counting up and error scenarios.