[bisq-network/bisq] [WIP] Add mediation (#3197)

chimp1984 notifications at github.com
Tue Sep 3 15:56:19 UTC 2019


Replaces https://github.com/bisq-network/bisq/pull/3169

It is too heavy to be reviewed by commits (though I tried to make small and contained commits). Best to review the whole trader chat and dispute domain once it is completed. I refactored a lot...
You can view, comment on, or merge this pull request online at:

  https://github.com/bisq-network/bisq/pull/3197

-- Commit Summary --

  * Refactoring: Move arbitration package inside dispute package
  * Use abstract base class DisputeResolver for arbitrator
  * Refactoring: Move mediator to mediator package.
  * Let Mediator inherit DisputeResolver.
  * Do not use protobuf inheritance
  * Refactoring: Move ArbitratorModule to parent package
  * Refactoring: Rename ArbitratorModule to DisputeModule
  * Add mediators to Filter
  * Add mediators to filter window
  * Use abstract DisputeResolverService as base class for ArbitratorService
  * Fix test
  * Use abstract DisputeResolverManager as base class for ArbitratorManager
  * Refactor: Move arbitratorregistration package inside register pkg
  * Refactor: Rename arbitratorregistration package to arbitrator
  * Add registration view for mediator
  * Separate pub key list for mediator (no new keys added yet)
  * Set new pubkeys for mediator registration
  * Set disputes @Nullable. Add null checks
  * Remove pre v0.9 handling for supported arbitrators from offer
  * Remove supported arbitrators info in offer details window
  * Remove check for matching arbitrator languages
  * Remove not used classes
  * Remove checks for arbitrator and mediator in offer
  * Add check if sig of proto object is not empty
  * Remove TakerSelectMediator
  * Set arbitratorNodeAddresses and mediatorNodeAddresses to deprecated
  * Make ArbitratorSelection generic. Add MEDIATOR_ADDRESS
  * Refactor: Rename ArbitratorSelection to DisputeResolverSelection
  * Add mediator to OfferAvailabilityResponse and mediatorNodeAddress to OpenOffer
  * Make arbitrator not nullable
  * Add selectedMediator to OfferAvailabilityModel
  * Refactor: Rename method
  * Add todo for using more generic keys for display strings
  * Refactor: Rename method
  * Fix wrong handling of registeredMediator
  * Add mediatorNodeAddress to trade
  * Handle nullable mediator in ProcessOfferAvailabilityResponse
  * Change log level, cleanup
  * Revert changes in OfferPayload due backward compatibility issues
  * Add checks if any mediator is available
  * Cleanup classes
  * Fix test
  * Add mediator DisputeStates
  * Cleanup; support isMediationDispute
  * Handle mediator data in Dispute domain
  * Add support for mediation in dispute domain
  * Remove impossible case
  * Fix typos
  * Handle mediator and arbitrator strings
  * Refactor: Rename arbitrator package to disputeresolvers
  * Refactor: Rename ArbitratorDisputeView classes to DisputeResolverView
  * Add support for close ticket from mediator (WIP)
  * Refactoring: Rename class
  * Refactoring: Move dispute classes to dispute package
  * Refactoring: Move Attachment class to dispute package
  * Refactoring: Move package one level up
  * Add todo comment
  * Use ARBITRATION instead of DISPUTE
  * Make DisputeManager abstract base class for ArbitrationDisputeManager
  * Add MediationDisputeManager
  * Add MediationDisputeManager and ArbitrationDisputeManager to test
  * Add mediationDisputeManager to relevant classes
  * Add TradersArbitrationDisputeView and TradersMediationDisputeView
  * Refactor:  Rename class
  * Refactor: Rename support.tab.support to support.tab.mediation.support
  * Add DisputeView as common base class
  * Refactor: Rename package
  * Refactor: Rename DisputesView to SupportView
  * Refactor: Rename package
  * Add MediationDisputeManager to CorePersistedDataHost
  * Add MediationDisputeList as db file, refactor DisputeList
  * Further refactoring to split mediation and arbitration
  * Further refactoring to split mediation and arbitration
  * Refactor: Rename package
  * Refactor: Move dispute domain classes into isq.core.support.dispute package
  * Refactor: Move classes
  * Refactor: Move DisputeCommunicationMessage
  * Refactor: Rename DisputeCommunicationMessage to ChatMessage
  * Add comments
  * Refactor: Move class
  * Refactor: Rename class
  * Refactor: Rename addDisputeCommunicationMessage and strings and variables
  * Refactor: Rename method
  * Refactor: Rename methods and strings
  * Add ArbitrationChatMessage and DisputeChatMessage
  * Refactor: Rename class
  * Move ChatMessage.Type to SupportType
  * Refactor: Move classed to new package
  * Refactor: Rename package
  * Refactor: Move classed to new package
  * Refactor: Move classed to new package
  * Refactor: Rename classes
  * Refactor: Rename package
  * Refactor: Rename classes
  * Refactor: Rename classes
  * Remove empty DisputeModule
  * Refactor: Rename classes
  * Refactor SupportManager domain (WIP)
  * Refactor SupportSession domain (WIP)
  * Remove methods from SupportSession
  * Dont expose p2pService in SupportManager
  * Remove supportType in SupportSession
  * Remove supportSession from getPeerNodeAddress method
  * Remove isBuyer from supportSession
  * Move creation of ChatMessage to SupportManager
  * Remove isMediationDispute fielf in ChatMessage
  * Remove chatMessage.isMediationDispute()
  * Refactor: Rename trade.getCommunicationMessages()
  * Move creation of ChatMessage to Chat
  * Refactor: Rename class
  * Refactor: Move ChatView class
  * Refactor: Move PriceFeedComboBoxItem class to shared package
  * Refactor: Use 'public abstract' instead of 'abstract public'
  * Refactor: Use 'protected abstract' instead of 'abstract protected'
  * Add traderChatManager.onAllServicesInitialized() to BisqSetup
  * Remove unused param
  * Refactor: Rename addChatMessage to addAndPersistChatMessage
  * Fix missing check at ack msg handling
  * Remove addAndPersistChatMessage from SupportSession
  * Remove disputeManager from DisputeSession
  * Fix missing getConcreteDisputeChatSession impl.
  * Refactor: Rename package
  * Refactor: Rename classes
  * Refactor: Move classes to new package
  * Fix missing protobuf data

-- File Changes --

    M common/src/main/java/bisq/common/taskrunner/Task.java (2)
    M common/src/main/proto/pb.proto (48)
    M core/src/main/java/bisq/core/CoreModule.java (6)
    M core/src/main/java/bisq/core/account/sign/SignedWitnessService.java (18)
    M core/src/main/java/bisq/core/alert/Alert.java (8)
    M core/src/main/java/bisq/core/app/BisqExecutable.java (2)
    M core/src/main/java/bisq/core/app/BisqSetup.java (27)
    M core/src/main/java/bisq/core/app/misc/ExecutableForAppWithP2p.java (2)
    M core/src/main/java/bisq/core/app/misc/ModuleForAppWithP2p.java (6)
    D core/src/main/java/bisq/core/arbitration/ArbitratorManager.java (375)
    D core/src/main/java/bisq/core/arbitration/ArbitratorService.java (123)
    D core/src/main/java/bisq/core/arbitration/DisputeChatSession.java (177)
    D core/src/main/java/bisq/core/arbitration/DisputeManager.java (929)
    D core/src/main/java/bisq/core/chat/ChatManager.java (219)
    D core/src/main/java/bisq/core/chat/ChatSession.java (66)
    M core/src/main/java/bisq/core/dao/governance/bond/BondRepository.java (6)
    M core/src/main/java/bisq/core/dao/node/BsqNode.java (2)
    M core/src/main/java/bisq/core/filter/Filter.java (18)
    M core/src/main/java/bisq/core/notifications/alerts/DisputeMsgEvents.java (28)
    M core/src/main/java/bisq/core/offer/Offer.java (8)
    M core/src/main/java/bisq/core/offer/OfferPayload.java (4)
    M core/src/main/java/bisq/core/offer/OpenOffer.java (23)
    M core/src/main/java/bisq/core/offer/OpenOfferManager.java (74)
    D core/src/main/java/bisq/core/offer/availability/ArbitratorSelection.java (92)
    A core/src/main/java/bisq/core/offer/availability/DisputeResolverSelection.java (110)
    M core/src/main/java/bisq/core/offer/availability/OfferAvailabilityModel.java (19)
    M core/src/main/java/bisq/core/offer/availability/tasks/ProcessOfferAvailabilityResponse.java (51)
    M core/src/main/java/bisq/core/offer/messages/OfferAvailabilityResponse.java (25)
    M core/src/main/java/bisq/core/offer/placeoffer/PlaceOfferModel.java (2)
    M core/src/main/java/bisq/core/offer/placeoffer/tasks/CreateMakerFeeTx.java (6)
    M core/src/main/java/bisq/core/offer/placeoffer/tasks/ValidateOffer.java (2)
    M core/src/main/java/bisq/core/payment/payload/CountryBasedPaymentAccountPayload.java (4)
    M core/src/main/java/bisq/core/payment/payload/PaymentAccountPayload.java (4)
    M core/src/main/java/bisq/core/presentation/DisputePresentation.java (6)
    M core/src/main/java/bisq/core/proto/ProtoDevUtil.java (2)
    M core/src/main/java/bisq/core/proto/network/CoreNetworkProtoResolver.java (16)
    M core/src/main/java/bisq/core/proto/persistable/CorePersistenceProtoResolver.java (9)
    M core/src/main/java/bisq/core/setup/CorePersistedDataHost.java (6)
    A core/src/main/java/bisq/core/support/SupportManager.java (318)
    A core/src/main/java/bisq/core/support/SupportSession.java (56)
    R core/src/main/java/bisq/core/support/SupportType.java (24)
    R core/src/main/java/bisq/core/support/dispute/Attachment.java (2)
    R core/src/main/java/bisq/core/support/dispute/Dispute.java (49)
    R core/src/main/java/bisq/core/support/dispute/DisputeAlreadyOpenException.java (2)
    R core/src/main/java/bisq/core/support/dispute/DisputeList.java (50)
    A core/src/main/java/bisq/core/support/dispute/DisputeListService.java (203)
    A core/src/main/java/bisq/core/support/dispute/DisputeManager.java (700)
    R core/src/main/java/bisq/core/support/dispute/DisputeMessageDeliveryFailedException.java (6)
    R core/src/main/java/bisq/core/support/dispute/DisputeResult.java (18)
    A core/src/main/java/bisq/core/support/dispute/DisputeSession.java (79)
    A core/src/main/java/bisq/core/support/dispute/agent/DisputeAgent.java (113)
    A core/src/main/java/bisq/core/support/dispute/agent/DisputeAgentManager.java (345)
    A core/src/main/java/bisq/core/support/dispute/agent/DisputeAgentService.java (121)
    A core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationDisputeList.java (82)
    A core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationDisputeListService.java (48)
    A core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationManager.java (365)
    A core/src/main/java/bisq/core/support/dispute/arbitration/ArbitrationSession.java (33)
    R core/src/main/java/bisq/core/support/dispute/arbitration/BuyerDataItem.java (3)
    R core/src/main/java/bisq/core/support/dispute/arbitration/arbitrator/Arbitrator.java (82)
    A core/src/main/java/bisq/core/support/dispute/arbitration/arbitrator/ArbitratorManager.java (103)
    A core/src/main/java/bisq/core/support/dispute/arbitration/arbitrator/ArbitratorService.java (61)
    A core/src/main/java/bisq/core/support/dispute/arbitration/messages/ArbitrationMessage.java (27)
    R core/src/main/java/bisq/core/support/dispute/arbitration/messages/PeerPublishedDisputePayoutTxMessage.java (27)
    A core/src/main/java/bisq/core/support/dispute/mediation/MediationDisputeList.java (81)
    A core/src/main/java/bisq/core/support/dispute/mediation/MediationDisputeListService.java (48)
    A core/src/main/java/bisq/core/support/dispute/mediation/MediationManager.java (164)
    A core/src/main/java/bisq/core/support/dispute/mediation/MediationSession.java (33)
    R core/src/main/java/bisq/core/support/dispute/mediation/mediator/Mediator.java (68)
    A core/src/main/java/bisq/core/support/dispute/mediation/mediator/MediatorManager.java (102)
    A core/src/main/java/bisq/core/support/dispute/mediation/mediator/MediatorService.java (66)
    A core/src/main/java/bisq/core/support/dispute/messages/DisputeMessage.java (28)
    R core/src/main/java/bisq/core/support/dispute/messages/DisputeResultMessage.java (23)
    R core/src/main/java/bisq/core/support/dispute/messages/OpenNewDisputeMessage.java (23)
    R core/src/main/java/bisq/core/support/dispute/messages/PeerOpenedDisputeMessage.java (23)
    R core/src/main/java/bisq/core/support/messages/ChatMessage.java (143)
    R core/src/main/java/bisq/core/support/messages/SupportMessage.java (13)
    A core/src/main/java/bisq/core/support/traderchat/TradeChatListService.java (40)
    A core/src/main/java/bisq/core/support/traderchat/TradeChatSession.java (73)
    A core/src/main/java/bisq/core/support/traderchat/TraderChatManager.java (181)
    M core/src/main/java/bisq/core/trade/BuyerAsMakerTrade.java (15)
    M core/src/main/java/bisq/core/trade/BuyerAsTakerTrade.java (15)
    M core/src/main/java/bisq/core/trade/BuyerTrade.java (24)
    M core/src/main/java/bisq/core/trade/Contract.java (21)
    M core/src/main/java/bisq/core/trade/SellerAsMakerTrade.java (4)
    M core/src/main/java/bisq/core/trade/SellerAsTakerTrade.java (15)
    M core/src/main/java/bisq/core/trade/SellerTrade.java (24)
    M core/src/main/java/bisq/core/trade/Trade.java (53)
    D core/src/main/java/bisq/core/trade/TradeChatSession.java (214)
    M core/src/main/java/bisq/core/trade/TradeManager.java (23)
    M core/src/main/java/bisq/core/trade/messages/PayDepositRequest.java (4)
    D core/src/main/java/bisq/core/trade/protocol/ArbitratorSelectionRule.java (51)
    M core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java (2)
    D core/src/main/java/bisq/core/trade/protocol/MediatorSelectionRule.java (53)
    M core/src/main/java/bisq/core/trade/protocol/ProcessModel.java (2)
    M core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java (2)
    D core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerVerifyArbitratorSelection.java (55)
    M core/src/main/java/bisq/core/trade/protocol/tasks/taker/CreateTakerFeeTx.java (6)
    D core/src/main/java/bisq/core/trade/protocol/tasks/taker/TakerSelectMediator.java (65)
    M core/src/main/java/bisq/core/trade/statistics/TradeStatistics2.java (1)
    M core/src/main/java/bisq/core/user/User.java (4)
    M core/src/main/java/bisq/core/user/UserPayload.java (6)
    M core/src/main/resources/i18n/displayStrings.properties (138)
    M core/src/main/resources/i18n/displayStrings_de.properties (2)
    M core/src/main/resources/i18n/displayStrings_el.properties (2)
    M core/src/main/resources/i18n/displayStrings_es.properties (2)
    M core/src/main/resources/i18n/displayStrings_fa.properties (2)
    M core/src/main/resources/i18n/displayStrings_fr.properties (2)
    M core/src/main/resources/i18n/displayStrings_ja.properties (2)
    M core/src/main/resources/i18n/displayStrings_pt.properties (2)
    M core/src/main/resources/i18n/displayStrings_ru.properties (2)
    M core/src/main/resources/i18n/displayStrings_th.properties (2)
    M core/src/main/resources/i18n/displayStrings_vi.properties (2)
    M core/src/main/resources/i18n/displayStrings_zh.properties (2)
    M core/src/test/java/bisq/core/account/sign/SignedWitnessServiceTest.java (8)
    M core/src/test/java/bisq/core/arbitration/ArbitratorManagerTest.java (23)
    M core/src/test/java/bisq/core/arbitration/ArbitratorTest.java (2)
    M core/src/test/java/bisq/core/arbitration/BuyerDataItemTest.java (1)
    M core/src/test/java/bisq/core/arbitration/MediatorTest.java (2)
    M core/src/test/java/bisq/core/offer/OpenOfferManagerTest.java (9)
    M core/src/test/java/bisq/core/offer/availability/ArbitratorSelectionTest.java (18)
    M core/src/test/java/bisq/core/user/UserPayloadModelVOTest.java (20)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/GeneralAccountNumberForm.java (2)
    M desktop/src/main/java/bisq/desktop/components/paymentmethods/PaymentMethodForm.java (6)
    M desktop/src/main/java/bisq/desktop/main/MainView.java (5)
    M desktop/src/main/java/bisq/desktop/main/MainViewModel.java (1)
    M desktop/src/main/java/bisq/desktop/main/account/AccountView.java (44)
    R desktop/src/main/java/bisq/desktop/main/account/register/DisputeResolverRegistrationView.java (44)
    R desktop/src/main/java/bisq/desktop/main/account/register/DisputeResolverRegistrationViewModel.java (109)
    R desktop/src/main/java/bisq/desktop/main/account/register/arbitrator/ArbitratorRegistrationView.fxml (2)
    A desktop/src/main/java/bisq/desktop/main/account/register/arbitrator/ArbitratorRegistrationView.java (45)
    A desktop/src/main/java/bisq/desktop/main/account/register/arbitrator/ArbitratorRegistrationViewModel.java (71)
    A desktop/src/main/java/bisq/desktop/main/account/register/mediator/MediatorRegistrationView.fxml (27)
    A desktop/src/main/java/bisq/desktop/main/account/register/mediator/MediatorRegistrationView.java (45)
    A desktop/src/main/java/bisq/desktop/main/account/register/mediator/MediatorRegistrationViewModel.java (67)
    M desktop/src/main/java/bisq/desktop/main/dao/governance/make/MakeProposalView.java (4)
    M desktop/src/main/java/bisq/desktop/main/debug/DebugView.java (2)
    D desktop/src/main/java/bisq/desktop/main/disputes/DisputesView.java (166)
    M desktop/src/main/java/bisq/desktop/main/funds/locked/LockedView.java (2)
    M desktop/src/main/java/bisq/desktop/main/funds/reserved/ReservedView.java (2)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionAwareTradableFactory.java (10)
    M desktop/src/main/java/bisq/desktop/main/funds/transactions/TransactionAwareTrade.java (12)
    M desktop/src/main/java/bisq/desktop/main/offer/BuyOfferView.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferDataModel.java (8)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferView.java (17)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java (4)
    M desktop/src/main/java/bisq/desktop/main/offer/OfferView.java (27)
    M desktop/src/main/java/bisq/desktop/main/offer/SellOfferView.java (2)
    M desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookView.java (9)
    M desktop/src/main/java/bisq/desktop/main/offer/offerbook/OfferBookViewModel.java (5)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferDataModel.java (8)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferView.java (8)
    M desktop/src/main/java/bisq/desktop/main/offer/takeoffer/TakeOfferViewModel.java (4)
    M desktop/src/main/java/bisq/desktop/main/overlays/notifications/NotificationCenter.java (80)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/ContractWindow.java (33)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java (117)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/FilterWindow.java (12)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/OfferDetailsWindow.java (29)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/TradeDetailsWindow.java (28)
    R desktop/src/main/java/bisq/desktop/main/overlays/windows/UnlockDisputeResolverRegistrationWindow.java (6)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesDataModel.java (292)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesView.java (63)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/TradeSubView.java (4)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/steps/TradeStepView.java (47)
    M desktop/src/main/java/bisq/desktop/main/presentation/MarketPricePresentation.java (2)
    M desktop/src/main/java/bisq/desktop/main/settings/preferences/PreferencesViewModel.java (6)
    R desktop/src/main/java/bisq/desktop/main/shared/ChatView.java (202)
    R desktop/src/main/java/bisq/desktop/main/shared/PriceFeedComboBoxItem.java (2)
    R desktop/src/main/java/bisq/desktop/main/support/SupportView.fxml (5)
    A desktop/src/main/java/bisq/desktop/main/support/SupportView.java (230)
    R desktop/src/main/java/bisq/desktop/main/support/dispute/DisputeView.java (100)
    R desktop/src/main/java/bisq/desktop/main/support/dispute/agent/DisputeAgentView.java (54)
    R desktop/src/main/java/bisq/desktop/main/support/dispute/agent/arbitration/ArbitratorView.fxml (3)
    A desktop/src/main/java/bisq/desktop/main/support/dispute/agent/arbitration/ArbitratorView.java (78)
    R desktop/src/main/java/bisq/desktop/main/support/dispute/agent/mediation/MediatorView.fxml (3)
    A desktop/src/main/java/bisq/desktop/main/support/dispute/agent/mediation/MediatorView.java (78)
    A desktop/src/main/java/bisq/desktop/main/support/dispute/client/DisputeClientView.java (58)
    A desktop/src/main/java/bisq/desktop/main/support/dispute/client/arbitration/ArbitrationClientView.fxml (29)
    A desktop/src/main/java/bisq/desktop/main/support/dispute/client/arbitration/ArbitrationClientView.java (72)
    A desktop/src/main/java/bisq/desktop/main/support/dispute/client/mediation/MediationClientView.fxml (28)
    A desktop/src/main/java/bisq/desktop/main/support/dispute/client/mediation/MediationClientView.java (72)
    M desktop/src/test/java/bisq/desktop/GuiceSetupTest.java (20)
    M desktop/src/test/java/bisq/desktop/main/funds/transactions/TransactionAwareTradableFactoryTest.java (6)
    M desktop/src/test/java/bisq/desktop/main/funds/transactions/TransactionAwareTradeTest.java (12)
    M desktop/src/test/java/bisq/desktop/main/settings/preferences/PreferencesViewModelTest.java (6)
    M monitor/src/main/java/bisq/monitor/metric/P2PSeedNodeSnapshotBase.java (6)
    M p2p/src/main/java/bisq/network/p2p/BootstrapListener.java (2)
    M p2p/src/main/java/bisq/network/p2p/network/NetworkNode.java (4)
    M p2p/src/main/java/bisq/network/p2p/storage/persistence/MapStoreService.java (4)
    M p2p/src/main/java/bisq/network/p2p/storage/persistence/StoreService.java (4)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/3197.patch
https://github.com/bisq-network/bisq/pull/3197.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/pull/3197
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20190903/51219180/attachment-0001.html>


More information about the bisq-github mailing list