Refactoring: cleanups

This commit is contained in:
chimp1984 2020-09-21 20:31:22 -05:00
parent 3a7af57a43
commit dc8ddbd4ae
No known key found for this signature in database
GPG key ID: 9801B4EC591F90E3
2 changed files with 23 additions and 20 deletions

View file

@ -55,18 +55,21 @@ public class BuyerSetupDepositTxListener extends TradeTask {
if (trade.getDepositTx() == null && processModel.getPreparedDepositTx() != null) {
BtcWalletService walletService = processModel.getBtcWalletService();
final NetworkParameters params = walletService.getParams();
NetworkParameters params = walletService.getParams();
Transaction preparedDepositTx = new Transaction(params, processModel.getPreparedDepositTx());
checkArgument(!preparedDepositTx.getOutputs().isEmpty(), "preparedDepositTx.getOutputs() must not be empty");
//TODO update to new bitcoinj API
Address depositTxAddress = preparedDepositTx.getOutput(0).getAddressFromP2SH(params);
final TransactionConfidence confidence = walletService.getConfidenceForAddress(depositTxAddress);
if (isInNetwork(confidence)) {
TransactionConfidence confidence = walletService.getConfidenceForAddress(depositTxAddress);
if (isVisibleInNetwork(confidence)) {
applyConfidence(confidence);
} else {
confidenceListener = new AddressConfidenceListener(depositTxAddress) {
@Override
public void onTransactionConfidenceChanged(TransactionConfidence confidence) {
if (isInNetwork(confidence))
if (isVisibleInNetwork(confidence))
applyConfidence(confidence);
}
};
@ -77,7 +80,7 @@ public class BuyerSetupDepositTxListener extends TradeTask {
swapReservedForTradeEntry();
// hack to remove tradeStateSubscription at callback
UserThread.execute(this::unSubscribe);
UserThread.execute(this::unSubscribeAndRemoveListener);
}
});
}
@ -103,10 +106,10 @@ public class BuyerSetupDepositTxListener extends TradeTask {
swapReservedForTradeEntry();
// need delay as it can be called inside the listener handler before listener and tradeStateSubscription are actually set.
UserThread.execute(this::unSubscribe);
UserThread.execute(this::unSubscribeAndRemoveListener);
}
private boolean isInNetwork(TransactionConfidence confidence) {
private boolean isVisibleInNetwork(TransactionConfidence confidence) {
return confidence != null &&
(confidence.getConfidenceType().equals(TransactionConfidence.ConfidenceType.BUILDING) ||
confidence.getConfidenceType().equals(TransactionConfidence.ConfidenceType.PENDING));
@ -114,14 +117,17 @@ public class BuyerSetupDepositTxListener extends TradeTask {
private void swapReservedForTradeEntry() {
log.info("swapReservedForTradeEntry");
processModel.getBtcWalletService().swapTradeEntryToAvailableEntry(trade.getId(), AddressEntry.Context.RESERVED_FOR_TRADE);
processModel.getBtcWalletService().swapTradeEntryToAvailableEntry(trade.getId(),
AddressEntry.Context.RESERVED_FOR_TRADE);
}
private void unSubscribe() {
if (tradeStateSubscription != null)
private void unSubscribeAndRemoveListener() {
if (tradeStateSubscription != null) {
tradeStateSubscription.unsubscribe();
}
if (confidenceListener != null)
if (confidenceListener != null) {
processModel.getBtcWalletService().removeAddressConfidenceListener(confidenceListener);
}
}
}

View file

@ -38,6 +38,8 @@ import java.util.Optional;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Nullable;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
@ -51,20 +53,15 @@ public class BuyerAsMakerCreatesAndSignsDepositTx extends TradeTask {
protected void run() {
try {
runInterceptHook();
checkNotNull(trade.getTradeAmount(), "trade.getTradeAmount() must not be null");
Coin tradeAmount = checkNotNull(trade.getTradeAmount(), "trade.getTradeAmount() must not be null");
BtcWalletService walletService = processModel.getBtcWalletService();
String id = processModel.getOffer().getId();
TradingPeer tradingPeer = processModel.getTradingPeer();
Offer offer = checkNotNull(trade.getOffer());
// params
byte[] contractHash = Hash.getSha256Hash(checkNotNull(trade.getContractAsJson()));
trade.setContractHash(contractHash);
log.debug("\n\n------------------------------------------------------------\n"
+ "Contract as json\n"
+ trade.getContractAsJson()
+ "\n------------------------------------------------------------\n");
Coin makerInputAmount = offer.getBuyerSecurityDeposit();
Optional<AddressEntry> addressEntryOptional = walletService.getAddressEntry(id, AddressEntry.Context.MULTI_SIG);
@ -76,15 +73,15 @@ public class BuyerAsMakerCreatesAndSignsDepositTx extends TradeTask {
Coin msOutputAmount = makerInputAmount
.add(trade.getTxFee())
.add(offer.getSellerSecurityDeposit())
.add(trade.getTradeAmount());
.add(tradeAmount);
List<RawTransactionInput> takerRawTransactionInputs = checkNotNull(tradingPeer.getRawTransactionInputs());
long takerChangeOutputValue = tradingPeer.getChangeOutputValue();
String takerChangeAddressString = tradingPeer.getChangeOutputAddress();
@Nullable String takerChangeAddressString = tradingPeer.getChangeOutputAddress();
Address makerAddress = walletService.getOrCreateAddressEntry(id, AddressEntry.Context.RESERVED_FOR_TRADE).getAddress();
Address makerChangeAddress = walletService.getFreshAddressEntry().getAddress();
byte[] buyerPubKey = processModel.getMyMultiSigPubKey();
byte[] sellerPubKey = tradingPeer.getMultiSigPubKey();
byte[] sellerPubKey = checkNotNull(tradingPeer.getMultiSigPubKey());
checkArgument(Arrays.equals(buyerPubKey,
makerMultiSigAddressEntry.getPubKey()),
"buyerPubKey from AddressEntry must match the one from the trade data. trade id =" + id);