Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dispute subsystem enhancements #6099

Merged
merged 1 commit into from Mar 11, 2022
Merged

Dispute subsystem enhancements #6099

merged 1 commit into from Mar 11, 2022

Conversation

ghost
Copy link

@ghost ghost commented Mar 9, 2022

Requested by @leo816 and @pazza83

  • In mediation summary, show payout suggestion and penalty when applicable
  • Add feature enabling traders to upload their chat session to the dispute agent.

Screenshots

 

Show payout suggestion and penalty:

Payout suggestion text is from the option chosen in the dispute ticket.

image

image

 

Upload trader chat to dispute agent:

image

 

Dispute agent receives trader chat as an attachment:

image

@ghost ghost closed this Mar 9, 2022
@ghost ghost reopened this Mar 9, 2022
@ripcurlx
Copy link
Contributor

Tested it on Regtest and everything works as expected. Only one NIT: I think it would be more consistent with the other UI to put More... also in upper case MORE.... The dropdown text is fine.

Dispute result show payout suggestion and penalty.
Feature allowing trader chat upload to dispute agents.
@ghost
Copy link
Author

ghost commented Mar 11, 2022

NIT fixed. 👍

Copy link
Contributor

@ripcurlx ripcurlx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK - Tested it on Regtest

@ripcurlx ripcurlx added this to the v1.8.5 milestone Mar 11, 2022
@ripcurlx ripcurlx merged commit a188266 into bisq-network:master Mar 11, 2022
@ghost ghost mentioned this pull request Mar 26, 2022
@w0000000t
Copy link
Contributor

Would this provide any means for the mediator to verify the log is "untampered with"?

@ghost
Copy link
Author

ghost commented Apr 27, 2022

If they wanted to compare them for tampering, the mediator could get chat logs from both traders.

@w0000000t
Copy link
Contributor

w0000000t commented Apr 29, 2022

No idea if related, this will happen when trying to close a dispute as the mediator.
image

[Write-UserPayload_to-disk] INFO  b.c.p.PersistenceManager: Writing the serialized UserPayload completed in 1616 msec 
[JavaFX Application Thread] INFO  b.n.p2p.peers.PeerManager: Num of latestLivePeers=2 
[JavaFX Application Thread] INFO  b.n.p2p.peers.PeerManager: We have 3 connections open. Our limit is 12 
[JavaFX Application Thread] INFO  b.core.provider.fee.FeeService: BTC tx fee: txFeePerVbyte=10 minFeePerVbyte=2 
[Write-PreferencesPayload_to-disk] INFO  b.c.p.PersistenceManager: Writing the serialized PreferencesPayload completed in 258 msec 
[JavaFX Application Thread] INFO  b.c.s.d.m.MediationManager: Received ChatMessage with tradeId cvdey-eda12fc3-a737-4de7-9eb5-16997c870687-181 and uid 7d35cd9d-993b-4eef-bd04-52f07b829441 
[JavaFX Application Thread] INFO  b.core.support.SupportManager: Send AckMessage for ChatMessage to peer localhost:5555. tradeId=cvdey-eda12fc3-a737-4de7-9eb5-16997c870687-181, uid=7d35cd9d-993b-4eef-bd04-52f07b829441 
[JavaFX Application Thread] INFO  b.core.support.SupportManager: AckMessage for ChatMessage arrived at peer localhost:5555. tradeId=cvdey-eda12fc3-a737-4de7-9eb5-16997c870687-181, uid=7d35cd9d-993b-4eef-bd04-52f07b829441 
[Write-MediationDisputeList_to-disk] INFO  b.c.p.PersistenceManager: Writing the serialized MediationDisputeList completed in 153 msec 
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jfoenix.adapters.ReflectionHelper (file:/home/mauro/bisq/lib/jfoenix-9.0.10.jar) to method java.lang.reflect.AccessibleObject.setAccessible0(boolean)
WARNING: Please consider reporting this to the maintainers of com.jfoenix.adapters.ReflectionHelper
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
[Write-MediationDisputeList_to-disk] INFO  b.c.p.PersistenceManager: Writing the serialized MediationDisputeList completed in 308 msec 
[Write-MediationDisputeList_to-disk] INFO  b.c.p.PersistenceManager: Writing the serialized MediationDisputeList completed in 167 msec 
[JavaFX Application Thread] INFO  b.c.s.d.a.DisputeAgentManager: DisputeAgent successfully saved in P2P network 
[JavaFX Application Thread] INFO  b.c.s.d.a.DisputeAgentManager: DisputeAgent successfully saved in P2P network 
[JavaFX Application Thread] INFO  b.c.p.mempool.MempoolService: MempoolService only supports mainnet 
[JavaFX Application Thread] INFO  b.c.p.mempool.TxValidator: mempool request not supported, bypassing : SUCCESS 
[JavaFX Application Thread] INFO  b.d.m.o.w.DisputeSummaryWindow: Mempool check confirmation status of DelayedPayoutTxId returned: [-1] 
[JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Uncaught Exception from thread JavaFX Application Thread 
[JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableMessage= null 
[JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: throwableClass= class java.lang.NullPointerException 
[JavaFX Application Thread] ERROR bisq.common.setup.CommonSetup: Stack trace:
java.lang.NullPointerException
	at bisq.core.support.dispute.DisputeResult.getPayoutSuggestionText(DisputeResult.java:280)
	at bisq.desktop.main.overlays.windows.DisputeSummaryWindow.doClose(DisputeSummaryWindow.java:894)
	at bisq.desktop.main.overlays.windows.DisputeSummaryWindow.doCloseIfValid(DisputeSummaryWindow.java:819)
	at bisq.desktop.main.overlays.windows.DisputeSummaryWindow.lambda$addButtons$13(DisputeSummaryWindow.java:697)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Node.fireEvent(Node.java:8889)
	at javafx.scene.control.Button.fire(Button.java:203)
	at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
	at com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
	at javafx.scene.Scene.processMouseEvent(Scene.java:1851)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:556)
	at com.sun.glass.ui.View.notifyMouse(View.java:942)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:834)
 
java.lang.NullPointerException
	at bisq.core.support.dispute.DisputeResult.getPayoutSuggestionText(DisputeResult.java:280)
	at bisq.desktop.main.overlays.windows.DisputeSummaryWindow.doClose(DisputeSummaryWindow.java:894)
	at bisq.desktop.main.overlays.windows.DisputeSummaryWindow.doCloseIfValid(DisputeSummaryWindow.java:819)
	at bisq.desktop.main.overlays.windows.DisputeSummaryWindow.lambda$addButtons$13(DisputeSummaryWindow.java:697)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Node.fireEvent(Node.java:8889)
	at javafx.scene.control.Button.fire(Button.java:203)
	at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
	at com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
	at javafx.scene.Scene.processMouseEvent(Scene.java:1851)
	at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
	at com.sun.glass.ui.View.handleMouseEvent(View.java:556)
	at com.sun.glass.ui.View.notifyMouse(View.java:942)
	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
	at com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277)
	at java.base/java.lang.Thread.run(Thread.java:834)
	```

@w0000000t
Copy link
Contributor

BTW the above was for custom payout, while choosing one random "pre-compiled" payout worked

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants