mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-25 07:27:18 +01:00
Refactoring: cleanups
This commit is contained in:
parent
fdde4b552c
commit
e960e12084
13 changed files with 103 additions and 112 deletions
|
@ -146,9 +146,13 @@ public class DelayedPayoutTxValidation {
|
|||
|
||||
|
||||
NetworkParameters params = btcWalletService.getParams();
|
||||
|
||||
//TODO update to BitcoinJ API changes
|
||||
Address address = output.getAddressFromP2PKHScript(params);
|
||||
|
||||
if (address == null) {
|
||||
// The donation address can be as well be a multisig address.
|
||||
//TODO update to BitcoinJ API changes
|
||||
address = output.getAddressFromP2SH(params);
|
||||
if (address == null) {
|
||||
errorMsg = "Donation address cannot be resolved (not of type P2PKHScript or P2SH). Output: " + output;
|
||||
|
|
|
@ -178,6 +178,7 @@ public class BuyerAsMakerProtocol extends TradeProtocol implements BuyerProtocol
|
|||
processModel.logTrade(buyerAsMakerTrade);
|
||||
}
|
||||
|
||||
|
||||
private void handle(PayoutTxPublishedMessage tradeMessage, NodeAddress peerNodeAddress) {
|
||||
processModel.setTradeMessage(tradeMessage);
|
||||
processModel.setTempTradingPeerNodeAddress(peerNodeAddress);
|
||||
|
|
|
@ -45,14 +45,15 @@ public class PublishTradeStatistics extends TradeTask {
|
|||
protected void run() {
|
||||
try {
|
||||
runInterceptHook();
|
||||
if (trade.getDepositTx() != null) {
|
||||
|
||||
checkNotNull(trade.getDepositTx());
|
||||
|
||||
Map<String, String> extraDataMap = new HashMap<>();
|
||||
if (processModel.getReferralIdService().getOptionalReferralId().isPresent()) {
|
||||
extraDataMap.put(OfferPayload.REFERRAL_ID, processModel.getReferralIdService().getOptionalReferralId().get());
|
||||
}
|
||||
|
||||
NodeAddress mediatorNodeAddress = trade.getMediatorNodeAddress();
|
||||
if (mediatorNodeAddress != null) {
|
||||
NodeAddress mediatorNodeAddress = checkNotNull(trade.getMediatorNodeAddress());
|
||||
// The first 4 chars are sufficient to identify a mediator.
|
||||
// For testing with regtest/localhost we use the full address as its localhost and would result in
|
||||
// same values for multiple mediators.
|
||||
|
@ -61,19 +62,16 @@ public class PublishTradeStatistics extends TradeTask {
|
|||
mediatorNodeAddress.getFullAddress().substring(0, 4) :
|
||||
mediatorNodeAddress.getFullAddress();
|
||||
extraDataMap.put(TradeStatistics2.MEDIATOR_ADDRESS, address);
|
||||
}
|
||||
|
||||
Offer offer = trade.getOffer();
|
||||
checkNotNull(offer, "offer must not ne null");
|
||||
checkNotNull(trade.getTradeAmount(), "trade.getTradeAmount() must not ne null");
|
||||
Offer offer = checkNotNull(trade.getOffer());
|
||||
TradeStatistics2 tradeStatistics = new TradeStatistics2(offer.getOfferPayload(),
|
||||
trade.getTradePrice(),
|
||||
trade.getTradeAmount(),
|
||||
checkNotNull(trade.getTradeAmount()),
|
||||
trade.getDate(),
|
||||
trade.getDepositTxId(),
|
||||
extraDataMap);
|
||||
processModel.getP2PService().addPersistableNetworkPayload(tradeStatistics, true);
|
||||
}
|
||||
|
||||
complete();
|
||||
} catch (Throwable t) {
|
||||
failed(t);
|
||||
|
|
|
@ -40,14 +40,13 @@ public class BuyerProcessDelayedPayoutTxSignatureRequest extends TradeTask {
|
|||
protected void run() {
|
||||
try {
|
||||
runInterceptHook();
|
||||
DelayedPayoutTxSignatureRequest message = (DelayedPayoutTxSignatureRequest) processModel.getTradeMessage();
|
||||
checkNotNull(message);
|
||||
Validator.checkTradeId(processModel.getOfferId(), message);
|
||||
byte[] delayedPayoutTxAsBytes = checkNotNull(message.getDelayedPayoutTx());
|
||||
DelayedPayoutTxSignatureRequest request = (DelayedPayoutTxSignatureRequest) processModel.getTradeMessage();
|
||||
checkNotNull(request);
|
||||
Validator.checkTradeId(processModel.getOfferId(), request);
|
||||
byte[] delayedPayoutTxAsBytes = checkNotNull(request.getDelayedPayoutTx());
|
||||
Transaction preparedDelayedPayoutTx = processModel.getBtcWalletService().getTxFromSerializedTx(delayedPayoutTxAsBytes);
|
||||
processModel.setPreparedDelayedPayoutTx(preparedDelayedPayoutTx);
|
||||
|
||||
// update to the latest peer address of our peer if the message is correct
|
||||
trade.setTradingPeerNodeAddress(processModel.getTempTradingPeerNodeAddress());
|
||||
|
||||
complete();
|
||||
|
|
|
@ -26,13 +26,12 @@ import bisq.core.trade.protocol.tasks.TradeTask;
|
|||
import bisq.core.util.Validator;
|
||||
|
||||
import bisq.common.taskrunner.TaskRunner;
|
||||
import bisq.common.util.Utilities;
|
||||
|
||||
import org.bitcoinj.core.Transaction;
|
||||
import org.bitcoinj.wallet.Wallet;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
@Slf4j
|
||||
|
@ -45,34 +44,36 @@ public class BuyerProcessDepositTxAndDelayedPayoutTxMessage extends TradeTask {
|
|||
protected void run() {
|
||||
try {
|
||||
runInterceptHook();
|
||||
DepositTxAndDelayedPayoutTxMessage message = (DepositTxAndDelayedPayoutTxMessage) processModel.getTradeMessage();
|
||||
var message = (DepositTxAndDelayedPayoutTxMessage) processModel.getTradeMessage();
|
||||
checkNotNull(message);
|
||||
Validator.checkTradeId(processModel.getOfferId(), message);
|
||||
checkArgument(message.getDepositTx() != null);
|
||||
|
||||
// To access tx confidence we need to add that tx into our wallet.
|
||||
Transaction depositTx = processModel.getBtcWalletService().getTxFromSerializedTx(message.getDepositTx());
|
||||
byte[] depositTxBytes = checkNotNull(message.getDepositTx());
|
||||
Transaction depositTx = processModel.getBtcWalletService().getTxFromSerializedTx(depositTxBytes);
|
||||
// update with full tx
|
||||
Transaction committedDepositTx = WalletService.maybeAddSelfTxToWallet(depositTx, processModel.getBtcWalletService().getWallet());
|
||||
Wallet wallet = processModel.getBtcWalletService().getWallet();
|
||||
Transaction committedDepositTx = WalletService.maybeAddSelfTxToWallet(depositTx, wallet);
|
||||
trade.applyDepositTx(committedDepositTx);
|
||||
BtcWalletService.printTx("depositTx received from peer", committedDepositTx);
|
||||
|
||||
// To access tx confidence we need to add that tx into our wallet.
|
||||
byte[] delayedPayoutTxBytes = message.getDelayedPayoutTx();
|
||||
byte[] delayedPayoutTxBytes = checkNotNull(message.getDelayedPayoutTx());
|
||||
trade.applyDelayedPayoutTxBytes(delayedPayoutTxBytes);
|
||||
BtcWalletService.printTx("delayedPayoutTx received from peer", trade.getDelayedPayoutTx());
|
||||
log.info("DelayedPayoutTxBytes = {}", Utilities.bytesAsHexString(trade.getDelayedPayoutTxBytes()));
|
||||
BtcWalletService.printTx("delayedPayoutTx received from peer",
|
||||
checkNotNull(trade.getDelayedPayoutTx()));
|
||||
|
||||
// update to the latest peer address of our peer if the message is correct
|
||||
trade.setTradingPeerNodeAddress(processModel.getTempTradingPeerNodeAddress());
|
||||
|
||||
processModel.removeMailboxMessageAfterProcessing(trade);
|
||||
|
||||
// If we got already the confirmation we don't want to apply an earlier state
|
||||
if (trade.getState().ordinal() < Trade.State.BUYER_SAW_DEPOSIT_TX_IN_NETWORK.ordinal())
|
||||
if (trade.getState().ordinal() < Trade.State.BUYER_SAW_DEPOSIT_TX_IN_NETWORK.ordinal()) {
|
||||
trade.setState(Trade.State.BUYER_RECEIVED_DEPOSIT_TX_PUBLISHED_MSG);
|
||||
}
|
||||
|
||||
processModel.getBtcWalletService().swapTradeEntryToAvailableEntry(trade.getId(), AddressEntry.Context.RESERVED_FOR_TRADE);
|
||||
processModel.getBtcWalletService().swapTradeEntryToAvailableEntry(trade.getId(),
|
||||
AddressEntry.Context.RESERVED_FOR_TRADE);
|
||||
|
||||
complete();
|
||||
} catch (Throwable t) {
|
||||
|
|
|
@ -49,8 +49,6 @@ public class BuyerSendsDelayedPayoutTxSignatureResponse extends TradeTask {
|
|||
processModel.getMyNodeAddress(),
|
||||
delayedPayoutTxSignature);
|
||||
|
||||
// todo trade.setState
|
||||
|
||||
NodeAddress peersNodeAddress = trade.getTradingPeerNodeAddress();
|
||||
log.info("Send {} to peer {}. tradeId={}, uid={}",
|
||||
message.getClass().getSimpleName(), peersNodeAddress, message.getTradeId(), message.getUid());
|
||||
|
@ -63,7 +61,6 @@ public class BuyerSendsDelayedPayoutTxSignatureResponse extends TradeTask {
|
|||
public void onArrived() {
|
||||
log.info("{} arrived at peer {}. tradeId={}, uid={}",
|
||||
message.getClass().getSimpleName(), peersNodeAddress, message.getTradeId(), message.getUid());
|
||||
// todo trade.setState
|
||||
complete();
|
||||
}
|
||||
|
||||
|
@ -71,7 +68,6 @@ public class BuyerSendsDelayedPayoutTxSignatureResponse extends TradeTask {
|
|||
public void onFault(String errorMessage) {
|
||||
log.error("{} failed: Peer {}. tradeId={}, uid={}, errorMessage={}",
|
||||
message.getClass().getSimpleName(), peersNodeAddress, message.getTradeId(), message.getUid(), errorMessage);
|
||||
// todo trade.setState
|
||||
appendToErrorMessage("Sending message failed: message=" + message + "\nerrorMessage=" + errorMessage);
|
||||
failed(errorMessage);
|
||||
}
|
||||
|
|
|
@ -56,7 +56,11 @@ public class BuyerSignsDelayedPayoutTx extends TradeTask {
|
|||
btcWalletService.getOrCreateAddressEntry(id, AddressEntry.Context.MULTI_SIG).getPubKey()),
|
||||
"buyerMultiSigPubKey from AddressEntry must match the one from the trade data. trade id =" + id);
|
||||
byte[] sellerMultiSigPubKey = processModel.getTradingPeer().getMultiSigPubKey();
|
||||
byte[] delayedPayoutTxSignature = processModel.getTradeWalletService().signDelayedPayoutTx(preparedDelayedPayoutTx, myMultiSigKeyPair, buyerMultiSigPubKey, sellerMultiSigPubKey);
|
||||
byte[] delayedPayoutTxSignature = processModel.getTradeWalletService().signDelayedPayoutTx(
|
||||
preparedDelayedPayoutTx,
|
||||
myMultiSigKeyPair,
|
||||
buyerMultiSigPubKey,
|
||||
sellerMultiSigPubKey);
|
||||
processModel.setDelayedPayoutTxSignature(delayedPayoutTxSignature);
|
||||
|
||||
complete();
|
||||
|
|
|
@ -58,7 +58,8 @@ public class SellerFinalizesDelayedPayoutTx extends TradeTask {
|
|||
byte[] buyerSignature = processModel.getTradingPeer().getDelayedPayoutTxSignature();
|
||||
byte[] sellerSignature = processModel.getDelayedPayoutTxSignature();
|
||||
|
||||
Transaction signedDelayedPayoutTx = processModel.getTradeWalletService().finalizeDelayedPayoutTx(preparedDelayedPayoutTx,
|
||||
Transaction signedDelayedPayoutTx = processModel.getTradeWalletService().finalizeDelayedPayoutTx(
|
||||
preparedDelayedPayoutTx,
|
||||
buyerMultiSigPubKey,
|
||||
sellerMultiSigPubKey,
|
||||
buyerSignature,
|
||||
|
|
|
@ -38,18 +38,15 @@ public class SellerProcessDelayedPayoutTxSignatureResponse extends TradeTask {
|
|||
protected void run() {
|
||||
try {
|
||||
runInterceptHook();
|
||||
DelayedPayoutTxSignatureResponse delayedPayoutTxSignatureResponse = (DelayedPayoutTxSignatureResponse) processModel.getTradeMessage();
|
||||
checkNotNull(delayedPayoutTxSignatureResponse);
|
||||
checkTradeId(processModel.getOfferId(), delayedPayoutTxSignatureResponse);
|
||||
DelayedPayoutTxSignatureResponse response = (DelayedPayoutTxSignatureResponse) processModel.getTradeMessage();
|
||||
checkNotNull(response);
|
||||
checkTradeId(processModel.getOfferId(), response);
|
||||
|
||||
byte[] delayedPayoutTxSignature = checkNotNull(delayedPayoutTxSignatureResponse.getDelayedPayoutTxSignature());
|
||||
processModel.getTradingPeer().setDelayedPayoutTxSignature(delayedPayoutTxSignature);
|
||||
processModel.getTradingPeer().setDelayedPayoutTxSignature(checkNotNull(response.getDelayedPayoutTxSignature()));
|
||||
|
||||
// update to the latest peer address of our peer if the message is correct
|
||||
trade.setTradingPeerNodeAddress(processModel.getTempTradingPeerNodeAddress());
|
||||
|
||||
// todo trade.setState
|
||||
|
||||
complete();
|
||||
} catch (Throwable t) {
|
||||
failed(t);
|
||||
|
|
|
@ -20,7 +20,6 @@ package bisq.core.trade.protocol.tasks.seller;
|
|||
import bisq.core.btc.exceptions.TxBroadcastException;
|
||||
import bisq.core.btc.model.AddressEntry;
|
||||
import bisq.core.btc.wallet.TxBroadcaster;
|
||||
import bisq.core.trade.Contract;
|
||||
import bisq.core.trade.Trade;
|
||||
import bisq.core.trade.protocol.tasks.TradeTask;
|
||||
|
||||
|
@ -48,7 +47,8 @@ public class SellerPublishesDepositTx extends TradeTask {
|
|||
if (!completed) {
|
||||
trade.setState(Trade.State.SELLER_PUBLISHED_DEPOSIT_TX);
|
||||
|
||||
processModel.getBtcWalletService().swapTradeEntryToAvailableEntry(processModel.getOffer().getId(), AddressEntry.Context.RESERVED_FOR_TRADE);
|
||||
processModel.getBtcWalletService().swapTradeEntryToAvailableEntry(processModel.getOffer().getId(),
|
||||
AddressEntry.Context.RESERVED_FOR_TRADE);
|
||||
|
||||
complete();
|
||||
} else {
|
||||
|
@ -66,9 +66,6 @@ public class SellerPublishesDepositTx extends TradeTask {
|
|||
}
|
||||
});
|
||||
} catch (Throwable t) {
|
||||
Contract contract = trade.getContract();
|
||||
if (contract != null)
|
||||
contract.printDiff(processModel.getTradingPeer().getContractAsJson());
|
||||
failed(t);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,8 +52,6 @@ public class SellerSendDelayedPayoutTxSignatureRequest extends TradeTask {
|
|||
processModel.getMyNodeAddress(),
|
||||
preparedDelayedPayoutTx.bitcoinSerialize());
|
||||
|
||||
// todo trade.setState
|
||||
|
||||
NodeAddress peersNodeAddress = trade.getTradingPeerNodeAddress();
|
||||
log.info("Send {} to peer {}. tradeId={}, uid={}",
|
||||
message.getClass().getSimpleName(), peersNodeAddress, message.getTradeId(), message.getUid());
|
||||
|
@ -66,7 +64,6 @@ public class SellerSendDelayedPayoutTxSignatureRequest extends TradeTask {
|
|||
public void onArrived() {
|
||||
log.info("{} arrived at peer {}. tradeId={}, uid={}",
|
||||
message.getClass().getSimpleName(), peersNodeAddress, message.getTradeId(), message.getUid());
|
||||
// todo trade.setState
|
||||
complete();
|
||||
}
|
||||
|
||||
|
@ -74,7 +71,6 @@ public class SellerSendDelayedPayoutTxSignatureRequest extends TradeTask {
|
|||
public void onFault(String errorMessage) {
|
||||
log.error("{} failed: Peer {}. tradeId={}, uid={}, errorMessage={}",
|
||||
message.getClass().getSimpleName(), peersNodeAddress, message.getTradeId(), message.getUid(), errorMessage);
|
||||
// todo trade.setState
|
||||
appendToErrorMessage("Sending message failed: message=" + message + "\nerrorMessage=" + errorMessage);
|
||||
failed();
|
||||
}
|
||||
|
|
|
@ -44,9 +44,9 @@ public class SellerSendsDepositTxAndDelayedPayoutTxMessage extends TradeTask {
|
|||
protected void run() {
|
||||
try {
|
||||
runInterceptHook();
|
||||
if (trade.getDepositTx() != null) {
|
||||
|
||||
Transaction depositTx = checkNotNull(trade.getDepositTx(), "DepositTx must not be null");
|
||||
Transaction delayedPayoutTx = checkNotNull(trade.getDelayedPayoutTx());
|
||||
Transaction depositTx = checkNotNull(trade.getDepositTx());
|
||||
DepositTxAndDelayedPayoutTxMessage message = new DepositTxAndDelayedPayoutTxMessage(UUID.randomUUID().toString(),
|
||||
processModel.getOfferId(),
|
||||
processModel.getMyNodeAddress(),
|
||||
|
@ -89,10 +89,6 @@ public class SellerSendsDepositTxAndDelayedPayoutTxMessage extends TradeTask {
|
|||
}
|
||||
}
|
||||
);
|
||||
} else {
|
||||
log.error("trade.getDepositTx() = " + trade.getDepositTx());
|
||||
failed("DepositTx is null");
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
failed(t);
|
||||
}
|
||||
|
|
|
@ -57,7 +57,8 @@ public class SellerSignsDelayedPayoutTx extends TradeTask {
|
|||
"sellerMultiSigPubKey from AddressEntry must match the one from the trade data. trade id =" + id);
|
||||
byte[] buyerMultiSigPubKey = processModel.getTradingPeer().getMultiSigPubKey();
|
||||
|
||||
byte[] delayedPayoutTxSignature = processModel.getTradeWalletService().signDelayedPayoutTx(preparedDelayedPayoutTx,
|
||||
byte[] delayedPayoutTxSignature = processModel.getTradeWalletService().signDelayedPayoutTx(
|
||||
preparedDelayedPayoutTx,
|
||||
myMultiSigKeyPair,
|
||||
buyerMultiSigPubKey,
|
||||
sellerMultiSigPubKey);
|
||||
|
|
Loading…
Add table
Reference in a new issue