[bisq-network/bisq] New trade protocol (#3311)

chimp1984 notifications at github.com
Sun Sep 22 23:52:30 UTC 2019


Implements https://github.com/bisq-network/proposals/issues/52

This is work in progress but as the protocol is already implemented I thought it might be useful to share progress on it via making a draft PR. 

It has already lots of code change and more will come. It is not expected that other devs review every commit here but to review the full diff once it is completed (similar to mediation support PR).

The new trade protocol will have a new TRADE_PROTOCOL_VERSION to separate it from not updated users, but it will not require a hard fork. Users need to complete their pending trades and distputes before updating. Updates while having pending trades and distputes would cause failures of the trade.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Remove code formatting rules
  * Remove arbitration key, cleanup
  * Add BuyerAsMakerProcessDepositTxAndDelayedPayoutTxMessage
  * Adopt trade protocol
  * Remove arbitratorKey
  * Add new classes
  * Add new message classes
  * Add new task classes
  * Renamed classed (no functional change yet)
  * Add lockTime
  * Add delayedPayoutTxSignature field
  * Add useReimbursementModel field
  * Add new classes
  * Add setting.preferences.useReimbursementModel
  * Apply renamed classes (new classes not added yet)
  * Add useReimbursementModel
  * Add preferences param
  * Add new methods, cleanup
  * Add daoFacade param, apply renaming
  * Add delayedPayoutTx, lockTime and delayedPayoutTxId
  * Remove DirectMessage interface
  * Rename emergencySignAndPublishPayoutTx method, add new one for 2of2 MS
  * Apply new protocol
  * Apply new protocol
  * Add renaming (no functional change yet)
  * Add new messages, apply renaming
  * Remove unneeded P2SHMultiSigOutputScript
  * Remove KEEP_LINE_BREAKS codeStyleSetting
  * Remove PREFERRED_PROJECT_CODE_STYLE
  * Refactor: Rename class
  * Use InputsForDepositTxRequest instead of TradeMessage in handleTakeOfferRequest
  * Do not sign deposit tx if maker is seller
  * Apply new trade protocol to seller as maker version
  * Apply new trade protocol
  * Set TRADE_PROTOCOL_VERSION to 2
  * Add PeerPublishedDelayedPayoutTxMessage

-- File Changes --

    M .idea/codeStyles/Project.xml (4)
    M .idea/codeStyles/codeStyleConfig.xml (1)
    M common/src/main/java/bisq/common/app/Version.java (4)
    M common/src/main/proto/pb.proto (72)
    M core/src/main/java/bisq/core/btc/wallet/TradeWalletService.java (815)
    M core/src/main/java/bisq/core/btc/wallet/TxBroadcaster.java (6)
    M core/src/main/java/bisq/core/offer/Offer.java (7)
    M core/src/main/java/bisq/core/offer/OfferPayload.java (3)
    M core/src/main/java/bisq/core/offer/OfferUtil.java (6)
    M core/src/main/java/bisq/core/offer/OpenOfferManager.java (9)
    M core/src/main/java/bisq/core/proto/network/CoreNetworkProtoResolver.java (31)
    M core/src/main/java/bisq/core/trade/BuyerAsMakerTrade.java (4)
    M core/src/main/java/bisq/core/trade/Contract.java (13)
    M core/src/main/java/bisq/core/trade/MakerTrade.java (4)
    M core/src/main/java/bisq/core/trade/SellerAsMakerTrade.java (4)
    M core/src/main/java/bisq/core/trade/Trade.java (68)
    M core/src/main/java/bisq/core/trade/TradeManager.java (101)
    A core/src/main/java/bisq/core/trade/messages/DelayedPayoutTxSignatureRequest.java (89)
    A core/src/main/java/bisq/core/trade/messages/DelayedPayoutTxSignatureResponse.java (90)
    A core/src/main/java/bisq/core/trade/messages/DepositTxAndDelayedPayoutTxMessage.java (98)
    R core/src/main/java/bisq/core/trade/messages/DepositTxMessage.java (61)
    R core/src/main/java/bisq/core/trade/messages/InputsForDepositTxRequest.java (65)
    R core/src/main/java/bisq/core/trade/messages/InputsForDepositTxResponse.java (87)
    A core/src/main/java/bisq/core/trade/messages/PeerPublishedDelayedPayoutTxMessage.java (77)
    M core/src/main/java/bisq/core/trade/messages/TradeMessage.java (3)
    M core/src/main/java/bisq/core/trade/protocol/BuyerAsMakerProtocol.java (96)
    M core/src/main/java/bisq/core/trade/protocol/BuyerAsTakerProtocol.java (116)
    M core/src/main/java/bisq/core/trade/protocol/MakerProtocol.java (4)
    M core/src/main/java/bisq/core/trade/protocol/ProcessModel.java (38)
    M core/src/main/java/bisq/core/trade/protocol/SellerAsMakerProtocol.java (101)
    M core/src/main/java/bisq/core/trade/protocol/SellerAsTakerProtocol.java (86)
    M core/src/main/java/bisq/core/trade/protocol/TradeProtocol.java (61)
    M core/src/main/java/bisq/core/trade/protocol/TradingPeer.java (14)
    A core/src/main/java/bisq/core/trade/protocol/tasks/ProcessPeerPublishedDelayedPayoutTxMessage.java (63)
    M core/src/main/java/bisq/core/trade/protocol/tasks/SetupPayoutTxListener.java (4)
    A core/src/main/java/bisq/core/trade/protocol/tasks/buyer/BuyerProcessDelayedPayoutTxSignatureRequest.java (59)
    R core/src/main/java/bisq/core/trade/protocol/tasks/buyer/BuyerProcessDepositTxAndDelayedPayoutTxMessage.java (30)
    A core/src/main/java/bisq/core/trade/protocol/tasks/buyer/BuyerSendsDelayedPayoutTxSignatureResponse.java (85)
    R core/src/main/java/bisq/core/trade/protocol/tasks/buyer/BuyerSetupDepositTxListener.java (10)
    R core/src/main/java/bisq/core/trade/protocol/tasks/buyer/BuyerSignPayoutTx.java (11)
    A core/src/main/java/bisq/core/trade/protocol/tasks/buyer/BuyerSignsDelayedPayoutTx.java (68)
    A core/src/main/java/bisq/core/trade/protocol/tasks/buyer/BuyerVerifiesDelayedPayoutTx.java (54)
    M core/src/main/java/bisq/core/trade/protocol/tasks/buyer_as_maker/BuyerAsMakerCreatesAndSignsDepositTx.java (39)
    A core/src/main/java/bisq/core/trade/protocol/tasks/buyer_as_maker/BuyerAsMakerSendsInputsForDepositTxResponse.java (38)
    M core/src/main/java/bisq/core/trade/protocol/tasks/buyer_as_taker/BuyerAsTakerCreatesDepositTxInputs.java (19)
    A core/src/main/java/bisq/core/trade/protocol/tasks/buyer_as_taker/BuyerAsTakerSendsDepositTxMessage.java (87)
    R core/src/main/java/bisq/core/trade/protocol/tasks/buyer_as_taker/BuyerAsTakerSignsDepositTx.java (54)
    M core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerCreateAndSignContract.java (5)
    R core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerProcessesInputsForDepositTxRequest.java (60)
    R core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerSendsInputsForDepositTxResponse.java (32)
    A core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerSetsLockTime.java (54)
    M core/src/main/java/bisq/core/trade/protocol/tasks/mediation/FinalizeMediatedPayoutTx.java (3)
    M core/src/main/java/bisq/core/trade/protocol/tasks/mediation/SignMediatedPayoutTx.java (3)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerCreatesDelayedPayoutTx.java (82)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerFinalizesDelayedPayoutTx.java (74)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerProcessDelayedPayoutTxSignatureResponse.java (59)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerPublishesDepositTx.java (76)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerSendDelayedPayoutTxSignatureRequest.java (87)
    R core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerSendsDepositTxAndDelayedPayoutTxMessage.java (31)
    M core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerSignAndFinalizePayoutTx.java (7)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller/SellerSignsDelayedPayoutTx.java (73)
    R core/src/main/java/bisq/core/trade/protocol/tasks/seller_as_maker/SellerAsMakerCreatesUnsignedDepositTx.java (36)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller_as_maker/SellerAsMakerFinalizesDepositTx.java (57)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller_as_maker/SellerAsMakerProcessDepositTxMessage.java (56)
    A core/src/main/java/bisq/core/trade/protocol/tasks/seller_as_maker/SellerAsMakerSendsInputsForDepositTxResponse.java (47)
    M core/src/main/java/bisq/core/trade/protocol/tasks/seller_as_taker/SellerAsTakerCreatesDepositTxInputs.java (20)
    R core/src/main/java/bisq/core/trade/protocol/tasks/seller_as_taker/SellerAsTakerSignsDepositTx.java (55)
    D core/src/main/java/bisq/core/trade/protocol/tasks/taker/TakerProcessPublishDepositTxRequest.java (79)
    A core/src/main/java/bisq/core/trade/protocol/tasks/taker/TakerProcessesInputsForDepositTxResponse.java (84)
    R core/src/main/java/bisq/core/trade/protocol/tasks/taker/TakerSendInputsForDepositTxRequest.java (8)
    M core/src/main/java/bisq/core/trade/protocol/tasks/taker/TakerVerifyAndSignContract.java (7)
    M core/src/main/java/bisq/core/user/Preferences.java (7)
    M core/src/main/java/bisq/core/user/PreferencesPayload.java (7)
    M core/src/main/resources/i18n/displayStrings.properties (1)
    M desktop/src/main/java/bisq/desktop/main/debug/DebugView.java (55)
    M desktop/src/main/java/bisq/desktop/main/offer/MutableOfferDataModel.java (5)
    M desktop/src/main/java/bisq/desktop/main/overlays/windows/ManualPayoutTxWindow.java (12)
    M desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesViewModel.java (18)
    M desktop/src/main/java/bisq/desktop/main/settings/preferences/PreferencesView.java (32)

-- Patch Links --

https://github.com/bisq-network/bisq/pull/3311.patch
https://github.com/bisq-network/bisq/pull/3311.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/3311
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20190922/e481a164/attachment-0001.html>


More information about the bisq-github mailing list