From 3753a42023c5cdc85f1f30b90c25de5f64dda673 Mon Sep 17 00:00:00 2001 From: woodser Date: Sat, 6 Aug 2022 18:36:09 -0400 Subject: [PATCH] update to monero-project v0.18.0.0, monero-java v0.7.2 --- Makefile | 4 +- build.gradle | 2 +- core/src/main/java/bisq/core/trade/Trade.java | 1 + .../trade/messages/InitMultisigRequest.java | 11 ++- .../core/trade/protocol/ProcessModel.java | 12 --- .../bisq/core/trade/protocol/TradingPeer.java | 4 + ...atorSendsInitTradeAndMultisigRequests.java | 3 +- .../tasks/ProcessInitMultisigRequest.java | 40 ++++++---- .../main/funds/deposit/DepositView.java | 2 +- gradle/verification-metadata.xml | 8 ++ proto/src/main/proto/pb.proto | 77 ++++++++++--------- 11 files changed, 93 insertions(+), 71 deletions(-) diff --git a/Makefile b/Makefile index e2dbaf22ac..ff3ce2cd94 100644 --- a/Makefile +++ b/Makefile @@ -68,7 +68,7 @@ monerod-local1: --no-zmq \ --add-exclusive-node 127.0.0.1:28080 \ --rpc-access-control-origins http://localhost:8080 \ - --fixed-difficulty 100 + --fixed-difficulty 400 monerod-local2: ./.localnet/monerod \ @@ -82,7 +82,7 @@ monerod-local2: --confirm-external-bind \ --add-exclusive-node 127.0.0.1:48080 \ --rpc-access-control-origins http://localhost:8080 \ - --fixed-difficulty 100 + --fixed-difficulty 400 funding-wallet-local: ./.localnet/monero-wallet-rpc \ diff --git a/build.gradle b/build.gradle index 3d19f8621d..9de3750901 100644 --- a/build.gradle +++ b/build.gradle @@ -42,7 +42,7 @@ configure(subprojects) { grpcVersion = '1.25.0' gsonVersion = '2.8.5' guavaVersion = '28.2-jre' - moneroJavaVersion = '0.7.0' + moneroJavaVersion = '0.7.2' httpclient5Version = '5.0' guiceVersion = '4.2.2' hamcrestVersion = '1.3' diff --git a/core/src/main/java/bisq/core/trade/Trade.java b/core/src/main/java/bisq/core/trade/Trade.java index 4024d43a1f..5de5a7d868 100644 --- a/core/src/main/java/bisq/core/trade/Trade.java +++ b/core/src/main/java/bisq/core/trade/Trade.java @@ -109,6 +109,7 @@ public abstract class Trade implements Tradable, Model { PREPARATION(Phase.INIT), MULTISIG_PREPARED(Phase.INIT), MULTISIG_MADE(Phase.INIT), + MULTISIG_EXCHANGED(Phase.INIT), MULTISIG_COMPLETED(Phase.INIT), CONTRACT_SIGNATURE_REQUESTED(Phase.INIT), CONTRACT_SIGNED(Phase.INIT), diff --git a/core/src/main/java/bisq/core/trade/messages/InitMultisigRequest.java b/core/src/main/java/bisq/core/trade/messages/InitMultisigRequest.java index a2a695ffdf..1f56091326 100644 --- a/core/src/main/java/bisq/core/trade/messages/InitMultisigRequest.java +++ b/core/src/main/java/bisq/core/trade/messages/InitMultisigRequest.java @@ -42,6 +42,8 @@ public final class InitMultisigRequest extends TradeMessage implements DirectMes private final String preparedMultisigHex; @Nullable private final String madeMultisigHex; + @Nullable + private final String exchangedMultisigHex; public InitMultisigRequest(String tradeId, NodeAddress senderNodeAddress, @@ -50,13 +52,15 @@ public final class InitMultisigRequest extends TradeMessage implements DirectMes String messageVersion, long currentDate, String preparedMultisigHex, - String madeMultisigHex) { + String madeMultisigHex, + String exchangedMultisigHex) { super(messageVersion, tradeId, uid); this.senderNodeAddress = senderNodeAddress; this.pubKeyRing = pubKeyRing; this.currentDate = currentDate; this.preparedMultisigHex = preparedMultisigHex; this.madeMultisigHex = madeMultisigHex; + this.exchangedMultisigHex = exchangedMultisigHex; } @@ -74,6 +78,7 @@ public final class InitMultisigRequest extends TradeMessage implements DirectMes Optional.ofNullable(preparedMultisigHex).ifPresent(e -> builder.setPreparedMultisigHex(preparedMultisigHex)); Optional.ofNullable(madeMultisigHex).ifPresent(e -> builder.setMadeMultisigHex(madeMultisigHex)); + Optional.ofNullable(exchangedMultisigHex).ifPresent(e -> builder.setExchangedMultisigHex(exchangedMultisigHex)); builder.setCurrentDate(currentDate); @@ -90,7 +95,8 @@ public final class InitMultisigRequest extends TradeMessage implements DirectMes messageVersion, proto.getCurrentDate(), ProtoUtil.stringOrNullFromProto(proto.getPreparedMultisigHex()), - ProtoUtil.stringOrNullFromProto(proto.getMadeMultisigHex())); + ProtoUtil.stringOrNullFromProto(proto.getMadeMultisigHex()), + ProtoUtil.stringOrNullFromProto(proto.getExchangedMultisigHex())); } @Override @@ -101,6 +107,7 @@ public final class InitMultisigRequest extends TradeMessage implements DirectMes ",\n currentDate=" + currentDate + ",\n preparedMultisigHex='" + preparedMultisigHex + ",\n madeMultisigHex='" + madeMultisigHex + + ",\n exchangedMultisigHex='" + exchangedMultisigHex + "\n} " + super.toString(); } } diff --git a/core/src/main/java/bisq/core/trade/protocol/ProcessModel.java b/core/src/main/java/bisq/core/trade/protocol/ProcessModel.java index 7935fde897..81f9814be9 100644 --- a/core/src/main/java/bisq/core/trade/protocol/ProcessModel.java +++ b/core/src/main/java/bisq/core/trade/protocol/ProcessModel.java @@ -173,14 +173,6 @@ public class ProcessModel implements Model, PersistablePayload { @Nullable @Getter @Setter - private String preparedMultisigHex; // TODO (woodser): ProcessModel shares many fields with TradingPeer; switch to trade getMaker(), getTaker(), getArbitrator(), getSelf(), with common TradingPeer object? - @Nullable - @Getter - @Setter - private String madeMultisigHex; - @Nullable - @Getter - @Setter private String multisigAddress; @Nullable @@ -240,8 +232,6 @@ public class ProcessModel implements Model, PersistablePayload { Optional.ofNullable(tempTradingPeerNodeAddress).ifPresent(e -> builder.setTempTradingPeerNodeAddress(tempTradingPeerNodeAddress.toProtoMessage())); Optional.ofNullable(makerSignature).ifPresent(e -> builder.setMakerSignature(makerSignature)); Optional.ofNullable(backupArbitrator).ifPresent(e -> builder.setBackupArbitrator(backupArbitrator.toProtoMessage())); - Optional.ofNullable(preparedMultisigHex).ifPresent(e -> builder.setPreparedMultisigHex(preparedMultisigHex)); - Optional.ofNullable(madeMultisigHex).ifPresent(e -> builder.setMadeMultisigHex(madeMultisigHex)); Optional.ofNullable(multisigAddress).ifPresent(e -> builder.setMultisigAddress(multisigAddress)); return builder.build(); } @@ -271,8 +261,6 @@ public class ProcessModel implements Model, PersistablePayload { processModel.setMediatedPayoutTxSignature(ProtoUtil.byteArrayOrNullFromProto(proto.getMediatedPayoutTxSignature())); processModel.setMakerSignature(proto.getMakerSignature()); processModel.setBackupArbitrator(proto.hasBackupArbitrator() ? NodeAddress.fromProto(proto.getBackupArbitrator()) : null); - processModel.setPreparedMultisigHex(ProtoUtil.stringOrNullFromProto(proto.getPreparedMultisigHex())); - processModel.setMadeMultisigHex(ProtoUtil.stringOrNullFromProto(proto.getMadeMultisigHex())); processModel.setMultisigAddress(ProtoUtil.stringOrNullFromProto(proto.getMultisigAddress())); String paymentStartedMessageStateString = ProtoUtil.stringOrNullFromProto(proto.getPaymentStartedMessageState()); diff --git a/core/src/main/java/bisq/core/trade/protocol/TradingPeer.java b/core/src/main/java/bisq/core/trade/protocol/TradingPeer.java index 37c5d9ed79..7302ee3e19 100644 --- a/core/src/main/java/bisq/core/trade/protocol/TradingPeer.java +++ b/core/src/main/java/bisq/core/trade/protocol/TradingPeer.java @@ -108,6 +108,8 @@ public final class TradingPeer implements PersistablePayload { @Nullable private String madeMultisigHex; @Nullable + private String exchangedMultisigHex; + @Nullable private String depositTxHash; @Nullable private String depositTxHex; @@ -150,6 +152,7 @@ public final class TradingPeer implements PersistablePayload { Optional.ofNullable(reserveTxKey).ifPresent(e -> builder.setReserveTxKey(reserveTxKey)); Optional.ofNullable(preparedMultisigHex).ifPresent(e -> builder.setPreparedMultisigHex(preparedMultisigHex)); Optional.ofNullable(madeMultisigHex).ifPresent(e -> builder.setMadeMultisigHex(madeMultisigHex)); + Optional.ofNullable(exchangedMultisigHex).ifPresent(e -> builder.setExchangedMultisigHex(exchangedMultisigHex)); Optional.ofNullable(payoutTxHex).ifPresent(e -> builder.setPayoutTxHex(payoutTxHex)); Optional.ofNullable(depositTxHash).ifPresent(e -> builder.setDepositTxHash(depositTxHash)); Optional.ofNullable(depositTxHex).ifPresent(e -> builder.setDepositTxHex(depositTxHex)); @@ -194,6 +197,7 @@ public final class TradingPeer implements PersistablePayload { tradingPeer.setReserveTxKeyImages(proto.getReserveTxKeyImagesList()); tradingPeer.setPreparedMultisigHex(ProtoUtil.stringOrNullFromProto(proto.getPreparedMultisigHex())); tradingPeer.setMadeMultisigHex(ProtoUtil.stringOrNullFromProto(proto.getMadeMultisigHex())); + tradingPeer.setExchangedMultisigHex(ProtoUtil.stringOrNullFromProto(proto.getExchangedMultisigHex())); tradingPeer.setDepositTxHash(ProtoUtil.stringOrNullFromProto(proto.getDepositTxHash())); tradingPeer.setDepositTxHex(ProtoUtil.stringOrNullFromProto(proto.getDepositTxHex())); tradingPeer.setDepositTxKey(ProtoUtil.stringOrNullFromProto(proto.getDepositTxKey())); diff --git a/core/src/main/java/bisq/core/trade/protocol/tasks/ArbitratorSendsInitTradeAndMultisigRequests.java b/core/src/main/java/bisq/core/trade/protocol/tasks/ArbitratorSendsInitTradeAndMultisigRequests.java index 461692194a..cd20e5e936 100644 --- a/core/src/main/java/bisq/core/trade/protocol/tasks/ArbitratorSendsInitTradeAndMultisigRequests.java +++ b/core/src/main/java/bisq/core/trade/protocol/tasks/ArbitratorSendsInitTradeAndMultisigRequests.java @@ -148,7 +148,7 @@ public class ArbitratorSendsInitTradeAndMultisigRequests extends TradeTask { // prepare multisig String preparedHex = multisigWallet.prepareMultisig(); - processModel.setPreparedMultisigHex(preparedHex); + trade.getSelf().setPreparedMultisigHex(preparedHex); // create message to initialize multisig InitMultisigRequest initMultisigRequest = new InitMultisigRequest( @@ -159,6 +159,7 @@ public class ArbitratorSendsInitTradeAndMultisigRequests extends TradeTask { Version.getP2PMessageVersion(), new Date().getTime(), preparedHex, + null, null); // send request to maker diff --git a/core/src/main/java/bisq/core/trade/protocol/tasks/ProcessInitMultisigRequest.java b/core/src/main/java/bisq/core/trade/protocol/tasks/ProcessInitMultisigRequest.java index dfe516ff6b..ad0635b502 100644 --- a/core/src/main/java/bisq/core/trade/protocol/tasks/ProcessInitMultisigRequest.java +++ b/core/src/main/java/bisq/core/trade/protocol/tasks/ProcessInitMultisigRequest.java @@ -83,13 +83,15 @@ public class ProcessInitMultisigRequest extends TradeTask { else if (request.getPreparedMultisigHex() != null && !multisigParticipant.getPreparedMultisigHex().equals(request.getPreparedMultisigHex())) throw new RuntimeException("Message's prepared multisig differs from previous messages, previous: " + multisigParticipant.getPreparedMultisigHex() + ", message: " + request.getPreparedMultisigHex()); if (multisigParticipant.getMadeMultisigHex() == null) multisigParticipant.setMadeMultisigHex(request.getMadeMultisigHex()); else if (request.getMadeMultisigHex() != null && !multisigParticipant.getMadeMultisigHex().equals(request.getMadeMultisigHex())) throw new RuntimeException("Message's made multisig differs from previous messages: " + request.getMadeMultisigHex() + " versus " + multisigParticipant.getMadeMultisigHex()); + if (multisigParticipant.getExchangedMultisigHex() == null) multisigParticipant.setExchangedMultisigHex(request.getExchangedMultisigHex()); + else if (request.getExchangedMultisigHex() != null && !multisigParticipant.getExchangedMultisigHex().equals(request.getExchangedMultisigHex())) throw new RuntimeException("Message's exchanged multisig differs from previous messages: " + request.getExchangedMultisigHex() + " versus " + multisigParticipant.getExchangedMultisigHex()); // prepare multisig if applicable boolean updateParticipants = false; - if (processModel.getPreparedMultisigHex() == null) { + if (trade.getSelf().getPreparedMultisigHex() == null) { log.info("Preparing multisig wallet for trade {}", trade.getId()); multisigWallet = xmrWalletService.createMultisigWallet(trade.getId()); - processModel.setPreparedMultisigHex(multisigWallet.prepareMultisig()); + trade.getSelf().setPreparedMultisigHex(multisigWallet.prepareMultisig()); trade.setStateIfValidTransitionTo(Trade.State.MULTISIG_PREPARED); updateParticipants = true; } else if (processModel.getMultisigAddress() == null) { @@ -98,23 +100,32 @@ public class ProcessInitMultisigRequest extends TradeTask { // make multisig if applicable TradingPeer[] peers = getMultisigPeers(); - if (processModel.getMadeMultisigHex() == null && peers[0].getPreparedMultisigHex() != null && peers[1].getPreparedMultisigHex() != null) { + if (trade.getSelf().getMadeMultisigHex() == null && peers[0].getPreparedMultisigHex() != null && peers[1].getPreparedMultisigHex() != null) { log.info("Making multisig wallet for trade {}", trade.getId()); - MoneroMultisigInitResult result = multisigWallet.makeMultisig(Arrays.asList(peers[0].getPreparedMultisigHex(), peers[1].getPreparedMultisigHex()), 2, xmrWalletService.getWalletPassword()); // TODO (woodser): xmrWalletService.makeMultisig(tradeId, multisigHexes, threshold)? - processModel.setMadeMultisigHex(result.getMultisigHex()); + String multisigHex = multisigWallet.makeMultisig(Arrays.asList(peers[0].getPreparedMultisigHex(), peers[1].getPreparedMultisigHex()), 2, xmrWalletService.getWalletPassword()); // TODO (woodser): xmrWalletService.makeMultisig(tradeId, multisigHexes, threshold)? + trade.getSelf().setMadeMultisigHex(multisigHex); trade.setStateIfValidTransitionTo(Trade.State.MULTISIG_MADE); updateParticipants = true; } - // exchange multisig keys if applicable - if (processModel.getMultisigAddress() == null && peers[0].getMadeMultisigHex() != null && peers[1].getMadeMultisigHex() != null) { - log.info("Exchanging multisig wallet keys for trade {}", trade.getId()); - multisigWallet.exchangeMultisigKeys(Arrays.asList(peers[0].getMadeMultisigHex(), peers[1].getMadeMultisigHex()), xmrWalletService.getWalletPassword()); - processModel.setMultisigAddress(multisigWallet.getPrimaryAddress()); - trade.setStateIfValidTransitionTo(Trade.State.MULTISIG_COMPLETED); - processModel.getProvider().getXmrWalletService().closeMultisigWallet(trade.getId()); // save and close multisig wallet once it's created + // import made multisig keys if applicable + if (trade.getSelf().getExchangedMultisigHex() == null && peers[0].getMadeMultisigHex() != null && peers[1].getMadeMultisigHex() != null) { + log.info("Importing made multisig hex for trade {}", trade.getId()); + MoneroMultisigInitResult result = multisigWallet.exchangeMultisigKeys(Arrays.asList(peers[0].getMadeMultisigHex(), peers[1].getMadeMultisigHex()), xmrWalletService.getWalletPassword()); + trade.getSelf().setExchangedMultisigHex(result.getMultisigHex()); + trade.setStateIfValidTransitionTo(Trade.State.MULTISIG_EXCHANGED); + updateParticipants = true; } + // import exchanged multisig keys if applicable + if (processModel.getMultisigAddress() == null && peers[0].getExchangedMultisigHex() != null && peers[1].getExchangedMultisigHex() != null) { + log.info("Importing exchanged multisig hex for trade {}", trade.getId()); + MoneroMultisigInitResult result = multisigWallet.exchangeMultisigKeys(Arrays.asList(peers[0].getExchangedMultisigHex(), peers[1].getExchangedMultisigHex()), xmrWalletService.getWalletPassword()); + processModel.setMultisigAddress(result.getAddress()); + trade.setStateIfValidTransitionTo(Trade.State.MULTISIG_COMPLETED); + processModel.getProvider().getXmrWalletService().closeMultisigWallet(trade.getId()); // save and close multisig wallet once it's created + } + // update multisig participants if new state to communicate if (updateParticipants) { @@ -209,8 +220,9 @@ public class ProcessInitMultisigRequest extends TradeTask { UUID.randomUUID().toString(), Version.getP2PMessageVersion(), new Date().getTime(), - processModel.getPreparedMultisigHex(), - processModel.getMadeMultisigHex()); + trade.getSelf().getPreparedMultisigHex(), + trade.getSelf().getMadeMultisigHex(), + trade.getSelf().getExchangedMultisigHex()); log.info("Send {} with offerId {} and uid {} to peer {}", request.getClass().getSimpleName(), request.getTradeId(), request.getUid(), recipient); processModel.getP2PService().sendEncryptedDirectMessage(recipient, pubKeyRing, request, listener); diff --git a/desktop/src/main/java/bisq/desktop/main/funds/deposit/DepositView.java b/desktop/src/main/java/bisq/desktop/main/funds/deposit/DepositView.java index 2352db1712..84cc710d15 100644 --- a/desktop/src/main/java/bisq/desktop/main/funds/deposit/DepositView.java +++ b/desktop/src/main/java/bisq/desktop/main/funds/deposit/DepositView.java @@ -306,7 +306,7 @@ public class DepositView extends ActivatableView { @NotNull private String getPaymentUri() { - return xmrWalletService.getWallet().createPaymentUri(new MoneroTxConfig() + return xmrWalletService.getWallet().getPaymentUri(new MoneroTxConfig() .setAddress(addressTextField.getAddress()) .setAmount(ParsingUtils.coinToAtomicUnits(getAmountAsCoin())) .setNote(paymentLabelString)); diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 0d18c76ed1..c4e21805d7 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -853,6 +853,14 @@ + + + + + + + + diff --git a/proto/src/main/proto/pb.proto b/proto/src/main/proto/pb.proto index a325f9ec16..664d91553a 100644 --- a/proto/src/main/proto/pb.proto +++ b/proto/src/main/proto/pb.proto @@ -307,6 +307,7 @@ message InitMultisigRequest { int64 current_date = 5; string prepared_multisig_hex = 6; string made_multisig_hex = 7; + string exchanged_multisig_hex = 8; } message SignContractRequest { @@ -1626,36 +1627,37 @@ message Trade { PREPARATION = 1; MULTISIG_PREPARED = 2; MULTISIG_MADE = 3; - MULTISIG_COMPLETED = 4; - CONTRACT_SIGNATURE_REQUESTED = 5; - CONTRACT_SIGNED = 6; - SENT_PUBLISH_DEPOSIT_TX_REQUEST = 7; - SAW_ARRIVED_PUBLISH_DEPOSIT_TX_REQUEST = 8; - STORED_IN_MAILBOX_PUBLISH_DEPOSIT_TX_REQUEST = 9; - SEND_FAILED_PUBLISH_DEPOSIT_TX_REQUEST = 10; - ARBITRATOR_PUBLISHED_DEPOSIT_TXS = 11; - SAW_DEPOSIT_TXS_IN_NETWORK = 12; - DEPOSIT_TXS_UNLOCKED_IN_BLOCKCHAIN = 13; - BUYER_CONFIRMED_IN_UI_PAYMENT_SENT = 14; - BUYER_SENT_PAYMENT_SENT_MSG = 15; - BUYER_SAW_ARRIVED_PAYMENT_SENT_MSG = 16; - BUYER_STORED_IN_MAILBOX_PAYMENT_SENT_MSG = 17; - BUYER_SEND_FAILED_PAYMENT_SENT_MSG = 18; - SELLER_RECEIVED_PAYMENT_SENT_MSG = 19; - SELLER_CONFIRMED_IN_UI_PAYMENT_RECEIPT = 20; - SELLER_SENT_PAYMENT_RECEIVED_MSG = 21; - SELLER_SAW_ARRIVED_PAYMENT_RECEIVED_MSG = 22; - SELLER_STORED_IN_MAILBOX_PAYMENT_RECEIVED_MSG = 23; - SELLER_SEND_FAILED_PAYMENT_RECEIVED_MSG = 24; - SELLER_PUBLISHED_PAYOUT_TX = 25; - SELLER_SENT_PAYOUT_TX_PUBLISHED_MSG = 26; - SELLER_SAW_ARRIVED_PAYOUT_TX_PUBLISHED_MSG = 27; - SELLER_STORED_IN_MAILBOX_PAYOUT_TX_PUBLISHED_MSG = 28; - SELLER_SEND_FAILED_PAYOUT_TX_PUBLISHED_MSG = 29; - BUYER_RECEIVED_PAYOUT_TX_PUBLISHED_MSG = 30; - BUYER_SAW_PAYOUT_TX_IN_NETWORK = 31; - BUYER_PUBLISHED_PAYOUT_TX = 32; - WITHDRAW_COMPLETED = 33; + MULTISIG_EXCHANGED = 4; + MULTISIG_COMPLETED = 5; + CONTRACT_SIGNATURE_REQUESTED = 6; + CONTRACT_SIGNED = 7; + SENT_PUBLISH_DEPOSIT_TX_REQUEST = 8; + SAW_ARRIVED_PUBLISH_DEPOSIT_TX_REQUEST = 9; + STORED_IN_MAILBOX_PUBLISH_DEPOSIT_TX_REQUEST = 10; + SEND_FAILED_PUBLISH_DEPOSIT_TX_REQUEST = 11; + ARBITRATOR_PUBLISHED_DEPOSIT_TXS = 12; + SAW_DEPOSIT_TXS_IN_NETWORK = 13; + DEPOSIT_TXS_UNLOCKED_IN_BLOCKCHAIN = 14; + BUYER_CONFIRMED_IN_UI_PAYMENT_SENT = 15; + BUYER_SENT_PAYMENT_SENT_MSG = 16; + BUYER_SAW_ARRIVED_PAYMENT_SENT_MSG = 17; + BUYER_STORED_IN_MAILBOX_PAYMENT_SENT_MSG = 18; + BUYER_SEND_FAILED_PAYMENT_SENT_MSG = 19; + SELLER_RECEIVED_PAYMENT_SENT_MSG = 20; + SELLER_CONFIRMED_IN_UI_PAYMENT_RECEIPT = 21; + SELLER_SENT_PAYMENT_RECEIVED_MSG = 22; + SELLER_SAW_ARRIVED_PAYMENT_RECEIVED_MSG = 23; + SELLER_STORED_IN_MAILBOX_PAYMENT_RECEIVED_MSG = 24; + SELLER_SEND_FAILED_PAYMENT_RECEIVED_MSG = 25; + SELLER_PUBLISHED_PAYOUT_TX = 26; + SELLER_SENT_PAYOUT_TX_PUBLISHED_MSG = 27; + SELLER_SAW_ARRIVED_PAYOUT_TX_PUBLISHED_MSG = 28; + SELLER_STORED_IN_MAILBOX_PAYOUT_TX_PUBLISHED_MSG = 29; + SELLER_SEND_FAILED_PAYOUT_TX_PUBLISHED_MSG = 30; + BUYER_RECEIVED_PAYOUT_TX_PUBLISHED_MSG = 31; + BUYER_SAW_PAYOUT_TX_IN_NETWORK = 32; + BUYER_PUBLISHED_PAYOUT_TX = 33; + WITHDRAW_COMPLETED = 34; } enum Phase { @@ -1781,9 +1783,7 @@ message ProcessModel { TradingPeer taker = 1004; TradingPeer arbitrator = 1005; NodeAddress temp_trading_peer_node_address = 1006; - string prepared_multisig_hex = 1007; - string made_multisig_hex = 1008; - string multisig_address = 1009; + string multisig_address = 1007; } message TradingPeer { @@ -1812,11 +1812,12 @@ message TradingPeer { repeated string reserve_tx_key_images = 1004; string prepared_multisig_hex = 1005; string made_multisig_hex = 1006; - string payout_tx_hex = 1007; - string deposit_tx_hash = 1008; - string deposit_tx_hex = 1009; - string deposit_tx_key = 1010; - string updated_multisig_hex = 1011; + string exchanged_multisig_hex = 1007; + string payout_tx_hex = 1008; + string deposit_tx_hash = 1009; + string deposit_tx_hex = 1010; + string deposit_tx_key = 1011; + string updated_multisig_hex = 1012; } ///////////////////////////////////////////////////////////////////////////////////////////