remove unused fields from TradePeer and Contract

fix concurrent modification exception applying prices to trade stats
standardize offer fee tx ids (unused)
This commit is contained in:
woodser 2023-03-09 13:00:49 -05:00
parent a16b03bb5c
commit 47f3d98597
28 changed files with 60 additions and 108 deletions

View file

@ -67,9 +67,6 @@ public final class Contract implements NetworkPayload {
private final String makerDepositTxHash;
private final String takerDepositTxHash;
// Added in v1.2.0
private long lockTime;
public Contract(OfferPayload offerPayload,
long tradeAmount,
long tradePrice,
@ -87,7 +84,6 @@ public final class Contract implements NetworkPayload {
PubKeyRing takerPubKeyRing,
String makerPayoutAddressString,
String takerPayoutAddressString,
long lockTime,
String makerDepositTxHash,
String takerDepositTxHash) {
this.offerPayload = offerPayload;
@ -107,7 +103,6 @@ public final class Contract implements NetworkPayload {
this.takerPubKeyRing = takerPubKeyRing;
this.makerPayoutAddressString = makerPayoutAddressString;
this.takerPayoutAddressString = takerPayoutAddressString;
this.lockTime = lockTime;
this.makerDepositTxHash = makerDepositTxHash;
this.takerDepositTxHash = takerDepositTxHash;
@ -143,7 +138,6 @@ public final class Contract implements NetworkPayload {
PubKeyRing.fromProto(proto.getTakerPubKeyRing()),
proto.getMakerPayoutAddressString(),
proto.getTakerPayoutAddressString(),
proto.getLockTime(),
proto.getMakerDepositTxHash(),
proto.getTakerDepositTxHash());
}
@ -168,7 +162,6 @@ public final class Contract implements NetworkPayload {
.setTakerPubKeyRing(takerPubKeyRing.toProtoMessage())
.setMakerPayoutAddressString(makerPayoutAddressString)
.setTakerPayoutAddressString(takerPayoutAddressString)
.setLockTime(lockTime)
.setMakerDepositTxHash(makerDepositTxHash)
.setTakerDepositTxHash(takerDepositTxHash)
.build();
@ -303,7 +296,6 @@ public final class Contract implements NetworkPayload {
",\n takerPubKeyRing=" + takerPubKeyRing +
",\n makerPayoutAddressString='" + makerPayoutAddressString + '\'' +
",\n takerPayoutAddressString='" + takerPayoutAddressString + '\'' +
",\n lockTime=" + lockTime +
",\n makerDepositTxHash='" + makerDepositTxHash + '\'' +
",\n takerDepositTxHash='" + takerDepositTxHash + '\'' +
"\n}";

View file

@ -866,7 +866,6 @@ public abstract class Trade implements Tradable, Model {
getTaker().getPubKeyRing(),
this instanceof MakerTrade ? xmrWalletService.getAddressEntry(getId(), XmrAddressEntry.Context.TRADE_PAYOUT).get().getAddressString() : getMaker().getPayoutAddressString(), // maker payout address
this instanceof TakerTrade ? xmrWalletService.getAddressEntry(getId(), XmrAddressEntry.Context.TRADE_PAYOUT).get().getAddressString() : getTaker().getPayoutAddressString(), // taker payout address
getLockTime(),
getMaker().getDepositTxHash(),
getTaker().getDepositTxHash()
);
@ -1594,9 +1593,7 @@ public abstract class Trade implements Tradable, Model {
}
public boolean isTxChainInvalid() {
return offer.getOfferFeePaymentTxId() == null ||
processModel.getMaker().getDepositTxHash() == null ||
processModel.getTaker().getDepositTxHash() == null;
return processModel.getMaker().getDepositTxHash() == null || processModel.getTaker().getDepositTxHash() == null;
}
/**

View file

@ -25,14 +25,12 @@ import haveno.common.proto.persistable.PersistablePayload;
import haveno.core.account.witness.AccountAgeWitness;
import haveno.core.payment.payload.PaymentAccountPayload;
import haveno.core.proto.CoreProtoResolver;
import haveno.core.xmr.model.RawTransactionInput;
import haveno.network.p2p.NodeAddress;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import lombok.Getter;
import lombok.Setter;
@ -82,15 +80,6 @@ public final class TradePeer implements PersistablePayload {
private String contractAsJson;
@Nullable
private String contractSignature;
@Nullable
private byte[] signature;
@Nullable
private byte[] multiSigPubKey;
@Nullable
private List<RawTransactionInput> rawTransactionInputs;
private long changeOutputValue;
@Nullable
private String changeOutputAddress;
// added in v 0.6
@Nullable
@ -145,8 +134,7 @@ public final class TradePeer implements PersistablePayload {
@Override
public Message toProtoMessage() {
final protobuf.TradePeer.Builder builder = protobuf.TradePeer.newBuilder()
.setChangeOutputValue(changeOutputValue);
final protobuf.TradePeer.Builder builder = protobuf.TradePeer.newBuilder();
Optional.ofNullable(nodeAddress).ifPresent(e -> builder.setNodeAddress(nodeAddress.toProtoMessage()));
Optional.ofNullable(pubKeyRing).ifPresent(e -> builder.setPubKeyRing(pubKeyRing.toProtoMessage()));
Optional.ofNullable(accountId).ifPresent(builder::setAccountId);
@ -159,11 +147,7 @@ public final class TradePeer implements PersistablePayload {
Optional.ofNullable(payoutAddressString).ifPresent(builder::setPayoutAddressString);
Optional.ofNullable(contractAsJson).ifPresent(builder::setContractAsJson);
Optional.ofNullable(contractSignature).ifPresent(builder::setContractSignature);
Optional.ofNullable(signature).ifPresent(e -> builder.setSignature(ByteString.copyFrom(e)));
Optional.ofNullable(pubKeyRing).ifPresent(e -> builder.setPubKeyRing(e.toProtoMessage()));
Optional.ofNullable(multiSigPubKey).ifPresent(e -> builder.setMultiSigPubKey(ByteString.copyFrom(e)));
Optional.ofNullable(rawTransactionInputs).ifPresent(e -> builder.addAllRawTransactionInputs(ProtoUtil.collectionToProto(e, protobuf.RawTransactionInput.class)));
Optional.ofNullable(changeOutputAddress).ifPresent(builder::setChangeOutputAddress);
Optional.ofNullable(accountAgeWitnessNonce).ifPresent(e -> builder.setAccountAgeWitnessNonce(ByteString.copyFrom(e)));
Optional.ofNullable(accountAgeWitnessSignature).ifPresent(e -> builder.setAccountAgeWitnessSignature(ByteString.copyFrom(e)));
Optional.ofNullable(accountAgeWitness).ifPresent(e -> builder.setAccountAgeWitness(accountAgeWitness.toProtoAccountAgeWitness()));
@ -192,7 +176,6 @@ public final class TradePeer implements PersistablePayload {
TradePeer tradePeer = new TradePeer();
tradePeer.setNodeAddress(proto.hasNodeAddress() ? NodeAddress.fromProto(proto.getNodeAddress()) : null);
tradePeer.setPubKeyRing(proto.hasPubKeyRing() ? PubKeyRing.fromProto(proto.getPubKeyRing()) : null);
tradePeer.setChangeOutputValue(proto.getChangeOutputValue());
tradePeer.setAccountId(ProtoUtil.stringOrNullFromProto(proto.getAccountId()));
tradePeer.setPaymentAccountId(ProtoUtil.stringOrNullFromProto(proto.getPaymentAccountId()));
tradePeer.setPaymentMethodId(ProtoUtil.stringOrNullFromProto(proto.getPaymentMethodId()));
@ -203,16 +186,7 @@ public final class TradePeer implements PersistablePayload {
tradePeer.setPayoutAddressString(ProtoUtil.stringOrNullFromProto(proto.getPayoutAddressString()));
tradePeer.setContractAsJson(ProtoUtil.stringOrNullFromProto(proto.getContractAsJson()));
tradePeer.setContractSignature(ProtoUtil.stringOrNullFromProto(proto.getContractSignature()));
tradePeer.setSignature(ProtoUtil.byteArrayOrNullFromProto(proto.getSignature()));
tradePeer.setPubKeyRing(proto.hasPubKeyRing() ? PubKeyRing.fromProto(proto.getPubKeyRing()) : null);
tradePeer.setMultiSigPubKey(ProtoUtil.byteArrayOrNullFromProto(proto.getMultiSigPubKey()));
List<RawTransactionInput> rawTransactionInputs = proto.getRawTransactionInputsList().isEmpty() ?
null :
proto.getRawTransactionInputsList().stream()
.map(RawTransactionInput::fromProto)
.collect(Collectors.toList());
tradePeer.setRawTransactionInputs(rawTransactionInputs);
tradePeer.setChangeOutputAddress(ProtoUtil.stringOrNullFromProto(proto.getChangeOutputAddress()));
tradePeer.setAccountAgeWitnessNonce(ProtoUtil.byteArrayOrNullFromProto(proto.getAccountAgeWitnessNonce()));
tradePeer.setAccountAgeWitnessSignature(ProtoUtil.byteArrayOrNullFromProto(proto.getAccountAgeWitnessSignature()));
protobuf.AccountAgeWitness protoAccountAgeWitness = proto.getAccountAgeWitness();

View file

@ -91,8 +91,10 @@ public class TradeStatisticsManager {
if (!tradeStatistics.isValid()) {
return;
}
observableTradeStatisticsSet.add(tradeStatistics);
priceFeedService.applyLatestHavenoMarketPrice(observableTradeStatisticsSet);
synchronized (observableTradeStatisticsSet) {
observableTradeStatisticsSet.add(tradeStatistics);
priceFeedService.applyLatestHavenoMarketPrice(observableTradeStatisticsSet);
}
maybeDumpStatistics();
}
});
@ -102,8 +104,10 @@ public class TradeStatisticsManager {
.map(e -> (TradeStatistics3) e)
.filter(TradeStatistics3::isValid)
.collect(Collectors.toSet());
observableTradeStatisticsSet.addAll(set);
priceFeedService.applyLatestHavenoMarketPrice(observableTradeStatisticsSet);
synchronized (observableTradeStatisticsSet) {
observableTradeStatisticsSet.addAll(set);
priceFeedService.applyLatestHavenoMarketPrice(observableTradeStatisticsSet);
}
maybeDumpStatistics();
}