Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BSQ swaps: Low risk refactorings [2] #5770

Merged
merged 202 commits into from Nov 4, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
202 commits
Select commit Hold shift + click to select a range
577b07b
Move OfferPayload into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
19f813e
Move CreateOfferService into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
d98cb27
Move MarketPriceNotAvailableException into package bisq.core.offer.bi…
chimp1984 Oct 19, 2021
346fc79
Move MutableOfferPayloadFields into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
8a4c05c
Move TriggerPriceService into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
ade5d32
Move TakeOfferModel into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
20d2980
Move AvailabilityResult into package bisq.core.offer.availability
chimp1984 Oct 19, 2021
0107519
Move bisq.core.offer.messages package into package bisq.core.offer.av…
chimp1984 Oct 19, 2021
ed9f248
Move content of bisq.core.offer.placeoffer package into package bisq.…
chimp1984 Oct 19, 2021
b584fdf
Rename OfferFilter to OfferFilterService
chimp1984 Oct 19, 2021
0e23cbe
Move Contract, SellerAsMakerTrade, SellerAsTakerTrade, SellerTrade,
chimp1984 Oct 19, 2021
c0cca78
Make updateDepositTxFromWallet public
chimp1984 Oct 19, 2021
0f7cfa9
Move Trade to bisq.core.trade.model.bisq_v1 package
chimp1984 Oct 19, 2021
5944218
Move MakerTrade and TakerTrade to bisq.core.trade.model package
chimp1984 Oct 19, 2021
5a0145d
Move Tradable to bisq.core.trade.model package
chimp1984 Oct 19, 2021
81ec06d
Move TradableList to bisq.core.trade.model package
chimp1984 Oct 19, 2021
2489bbc
Make FluentProtocol.Event public
chimp1984 Oct 19, 2021
c0d1308
Make setup in FluentProtocol public
chimp1984 Oct 19, 2021
87c12fd
Move protocol classes to bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
babd70c
Move tasks package into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
5099d97
Move TradingPeer into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
a212cec
Move messages package into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
c9817ed
Move ClosedTradableManager, FailedTradesManager into bisq.core.trade.…
chimp1984 Oct 19, 2021
1b74b4e
Rename CleanupMailboxMessages to CleanupMailboxMessagesService
chimp1984 Oct 19, 2021
2141f8f
Move CleanupMailboxMessagesService, ClosedTradeUtil to package bisq.c…
chimp1984 Oct 19, 2021
f871e83
Move TransactionResultHandler, TradeResultHandler to package bisq.cor…
chimp1984 Oct 19, 2021
71c663e
Move TradeDataValidation, DumpDelayedPayoutTx, TradeDataValidation, T…
chimp1984 Oct 19, 2021
26e2676
Rename ProcessModelServiceProvider to Provider
chimp1984 Oct 19, 2021
c282b70
Rename txID to txId
chimp1984 Oct 19, 2021
30dd568
Move createoffer package inside bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
0cd0e16
Move takeoffer package inside bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
4169a87
Move MutableOffer view classes into bisq.desktop.main.offer.bisq_v1 p…
chimp1984 Oct 19, 2021
a2a7e87
Move OfferDataModel, OfferViewUtil into bisq.desktop.main.offer.bisq_…
chimp1984 Oct 19, 2021
a9f4bb7
Rename FeeUtil to OfferViewModelUtil
chimp1984 Oct 19, 2021
1e03aae
Move OfferViewModelUtil into bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
72284d7
Cleanups, refromatting, add final qualifier
chimp1984 Oct 19, 2021
71eec7b
Move TradingPeer to package bisq.core.trade.protocol.bisq_v1.model
chimp1984 Oct 19, 2021
e1efc5e
Make setPaymentStartedAckMessage and setDepositTxSentAckMessage public
chimp1984 Oct 19, 2021
760732f
Move ProcessModel to package bisq.core.trade.protocol.bisq_v1.model
chimp1984 Oct 19, 2021
41d9d3f
Move OfferPayload into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
edf5c3e
Move CreateOfferService into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
4341a7e
Move MarketPriceNotAvailableException into package bisq.core.offer.bi…
chimp1984 Oct 19, 2021
042476a
Move MutableOfferPayloadFields into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
d9fd8a4
Move TriggerPriceService into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
e348000
Move TakeOfferModel into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
a2d1e88
Move AvailabilityResult into package bisq.core.offer.availability
chimp1984 Oct 19, 2021
1badd69
Move bisq.core.offer.messages package into package bisq.core.offer.av…
chimp1984 Oct 19, 2021
7197b31
Move content of bisq.core.offer.placeoffer package into package bisq.…
chimp1984 Oct 19, 2021
1b4c487
Rename OfferFilter to OfferFilterService
chimp1984 Oct 19, 2021
1e9b606
Move Contract, SellerAsMakerTrade, SellerAsTakerTrade, SellerTrade,
chimp1984 Oct 19, 2021
8b21b85
Make updateDepositTxFromWallet public
chimp1984 Oct 19, 2021
d422427
Move Trade to bisq.core.trade.model.bisq_v1 package
chimp1984 Oct 19, 2021
fc3177c
Move MakerTrade and TakerTrade to bisq.core.trade.model package
chimp1984 Oct 19, 2021
58cfcff
Move Tradable to bisq.core.trade.model package
chimp1984 Oct 19, 2021
3474a2b
Move TradableList to bisq.core.trade.model package
chimp1984 Oct 19, 2021
d7b2e99
Make FluentProtocol.Event public
chimp1984 Oct 19, 2021
e3eea63
Make setup in FluentProtocol public
chimp1984 Oct 19, 2021
1b2e798
Move protocol classes to bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
508296c
Move tasks package into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
97906e0
Move TradingPeer into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
cbf2822
Move messages package into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
fd6934c
Move ClosedTradableManager, FailedTradesManager into bisq.core.trade.…
chimp1984 Oct 19, 2021
fe2871b
Rename CleanupMailboxMessages to CleanupMailboxMessagesService
chimp1984 Oct 19, 2021
e80cdf8
Move CleanupMailboxMessagesService, ClosedTradeUtil to package bisq.c…
chimp1984 Oct 19, 2021
956ffc9
Move TransactionResultHandler, TradeResultHandler to package bisq.cor…
chimp1984 Oct 19, 2021
eacf446
Move TradeDataValidation, DumpDelayedPayoutTx, TradeDataValidation, T…
chimp1984 Oct 19, 2021
e1de502
Rename ProcessModelServiceProvider to Provider
chimp1984 Oct 19, 2021
2733af9
Rename txID to txId
chimp1984 Oct 19, 2021
932c0f8
Move createoffer package inside bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
0efa0bd
Move takeoffer package inside bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
601956d
Move MutableOffer view classes into bisq.desktop.main.offer.bisq_v1 p…
chimp1984 Oct 19, 2021
9777005
Move OfferDataModel, OfferViewUtil into bisq.desktop.main.offer.bisq_…
chimp1984 Oct 19, 2021
4a9db79
Rename FeeUtil to OfferViewModelUtil
chimp1984 Oct 19, 2021
25bbad1
Move OfferViewModelUtil into bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
777287a
Cleanups, refromatting, add final qualifier
chimp1984 Oct 19, 2021
401880b
Move TradingPeer to package bisq.core.trade.protocol.bisq_v1.model
chimp1984 Oct 19, 2021
afed788
Make setPaymentStartedAckMessage and setDepositTxSentAckMessage public
chimp1984 Oct 19, 2021
734d429
Move ProcessModel to package bisq.core.trade.protocol.bisq_v1.model
chimp1984 Oct 19, 2021
dca0c93
Cleanups
chimp1984 Oct 20, 2021
e752965
Add linebreak in error popup
chimp1984 Oct 20, 2021
9f3034e
Fix layout/text issues
chimp1984 Oct 20, 2021
dc82fba
Increase visibility
chimp1984 Oct 20, 2021
8768345
Remove Inject annotation at abstract classes
chimp1984 Oct 20, 2021
d1d1706
Add delegate methods to offer
chimp1984 Oct 20, 2021
dfbc746
Move Offer.Direction one level up and rename to OfferDirection
chimp1984 Oct 20, 2021
6cf0a7c
Rename paymentMethod.isAsset to paymentMethod.isBlockchain
chimp1984 Oct 20, 2021
dad19ba
Add isFiat and isAltcoin methods.
chimp1984 Oct 20, 2021
88198be
Rename availableConfirmedBalance to availableBalance
chimp1984 Oct 20, 2021
d4bb026
Only check for localhost btc node if mainnet
chimp1984 Oct 20, 2021
f8751a8
Make TxConfidenceListener and its onTransactionConfidenceChanged meth…
chimp1984 Oct 20, 2021
a927bea
Add scriptTypeId to RawTransactionInput
chimp1984 Oct 20, 2021
75072eb
Add deprecated annotation, null checks and comment to getRawInputFrom…
chimp1984 Oct 20, 2021
561ebe9
Move test classes into bisq.desktop.main.offer.bisq_v1.createoffer
chimp1984 Oct 20, 2021
8ee2554
Merge branch 'bsq-swap-low-risk-refactorings' into wip-merge2
chimp1984 Oct 20, 2021
559bc58
Fix merge issues
chimp1984 Oct 20, 2021
34c4eef
Add allowSpendMyOwnUnconfirmedTxOutputs flag to BsqCoinSelector
chimp1984 Oct 20, 2021
4757288
Add isMine method. Add error logs
chimp1984 Oct 20, 2021
0f6364d
Inline TransactionWitness
chimp1984 Oct 20, 2021
e582ffd
Add new methods
chimp1984 Oct 20, 2021
54e81d1
Add signTx and verifyNonDustTxo methods
chimp1984 Oct 20, 2021
5f8bc83
Remove unused signTx method
chimp1984 Oct 20, 2021
d95356b
Add verifiedBalance field.
chimp1984 Oct 20, 2021
cfc404b
Rename signTx to signTxAndVerifyNoDustOutputs (no code change)
chimp1984 Oct 20, 2021
82c1be1
Change log level
chimp1984 Oct 20, 2021
c15fc0c
Add comment, cleanups
chimp1984 Oct 20, 2021
d7f1b00
Rename processModel.getTradingPeer to getTradePeer
chimp1984 Oct 20, 2021
02d7dfd
Only print stack trace if dev mode
chimp1984 Oct 20, 2021
9e4be13
Change log level
chimp1984 Oct 20, 2021
8d25798
Replace Value annotation with Getter and EqualsAndHashCode
chimp1984 Oct 20, 2021
d976f11
Add methods
chimp1984 Oct 20, 2021
a3b3d56
Simplify
chimp1984 Oct 20, 2021
9d10646
Move getRandomOfferId method to OfferUtil
chimp1984 Oct 20, 2021
e061d6a
Replace Value with Getter
chimp1984 Oct 20, 2021
5b0e9ab
Rename trade.getPhase to getTradePhase
chimp1984 Oct 20, 2021
544dd89
Rename trade.getState to getTradeState
chimp1984 Oct 20, 2021
12fff54
Cleanup
chimp1984 Oct 20, 2021
2440d72
Extract methods, Cleanups
chimp1984 Oct 20, 2021
4cb0746
Extract methods, cleanups. Rename methods and vars
chimp1984 Oct 20, 2021
7211f89
Add exclude fields to EqualsAndHashCode
chimp1984 Oct 20, 2021
07883e9
Rename trade.getPhase to getTradePhase
chimp1984 Oct 20, 2021
0148a36
Extract to method in TradeUtil
chimp1984 Oct 20, 2021
1051640
Use early return. cleanup
chimp1984 Oct 20, 2021
8219bf8
Extract method. Rename vars
chimp1984 Oct 20, 2021
ee374c3
Cleanups, apply rename of getTradePhase
chimp1984 Oct 20, 2021
e940f6f
Add method. Dont return null in case of no amount but min fee
chimp1984 Oct 21, 2021
19aabba
Add method. cleanups
chimp1984 Oct 21, 2021
1c0b52c
Move OfferDirection from bisq.core.offer.bisq_v1 to bisq.core.offer
chimp1984 Oct 21, 2021
0735419
Remove handling of BundleOfEnvelopes in send method.
chimp1984 Oct 21, 2021
b80b6ec
Cleanups
chimp1984 Oct 21, 2021
23af455
Add filterPredicate
chimp1984 Oct 21, 2021
2e384ed
Make onDeleteAccount more clear
chimp1984 Oct 21, 2021
9d8c705
Only add delay if not devmode
chimp1984 Oct 21, 2021
d285157
Reduce visibility
chimp1984 Oct 21, 2021
8bb42e1
Add methods, move field up
chimp1984 Oct 21, 2021
1aa5e70
Add method
chimp1984 Oct 21, 2021
8ac40a3
Add style
chimp1984 Oct 21, 2021
c60df6e
Add linebreak (no code change)
chimp1984 Oct 21, 2021
9fb6a6c
Add isNotPublished method (will be combined later with bsq swap checks)
chimp1984 Oct 21, 2021
cfae096
Add null checks, extract variables, cleanups
chimp1984 Oct 21, 2021
2ae1860
Move tests to package bisq.desktop.main.offer.bisq_v1.createoffer
chimp1984 Oct 21, 2021
080dc3e
Merge branch 'chimp-bsq-swap' into wip-merge021.10
chimp1984 Oct 21, 2021
ab6e4e1
Dummy commit to enforce rebuild at CI
chimp1984 Oct 21, 2021
5412f8b
Merge branch 'chimp-bsq-swap' into bsq-swap-low-risk-refactorings
chimp1984 Oct 21, 2021
c920da3
Add abstract classes and interfaces. Let ProcessModel and TradingPeer…
chimp1984 Oct 21, 2021
8cd85a7
Let Trade extend TradeModel
chimp1984 Oct 21, 2021
dcd0101
Generify TradeResultHandler
chimp1984 Oct 21, 2021
5d687bd
Use TradeModel and ProtocolModel in TradeTaskRunner, TradeTask, Trade…
chimp1984 Oct 21, 2021
308bb68
Use TradeModel
chimp1984 Oct 21, 2021
453229e
Impl. onAckMessage. Add fields for concrete types
chimp1984 Oct 21, 2021
c0e70b8
Use TradeModel in trade domain
chimp1984 Oct 21, 2021
d063aff
Let OfferPayload extend OfferPayloadBase
chimp1984 Oct 21, 2021
b194960
Use TradeModel instead of Trade where appropriate.
chimp1984 Oct 21, 2021
14765d6
Move protobuf OfferPayload.Direction to OfferDirection
chimp1984 Oct 21, 2021
611b944
Move protobuf OfferPayload.Direction to OfferDirection
chimp1984 Oct 21, 2021
2f40edd
Use bitcoinj 42bbae9 (with fix required for bsq swaps)
chimp1984 Oct 21, 2021
63c385b
Add support for RemoveDataMessage in testCapability
chimp1984 Oct 21, 2021
54f17b0
Cleanups
chimp1984 Oct 21, 2021
ebfd1b5
Remove todo
chimp1984 Oct 21, 2021
0942d8f
Move OfferPayload into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
3838b45
Move CreateOfferService into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
76441ff
Move MarketPriceNotAvailableException into package bisq.core.offer.bi…
chimp1984 Oct 19, 2021
b93295a
Move MutableOfferPayloadFields into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
990c62b
Move TriggerPriceService into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
0e8ff7d
Move TakeOfferModel into package bisq.core.offer.bisq_v1
chimp1984 Oct 19, 2021
ab91be8
Move AvailabilityResult into package bisq.core.offer.availability
chimp1984 Oct 19, 2021
fa9896d
Move bisq.core.offer.messages package into package bisq.core.offer.av…
chimp1984 Oct 19, 2021
aa02ac8
Move content of bisq.core.offer.placeoffer package into package bisq.…
chimp1984 Oct 19, 2021
4b968ce
Rename OfferFilter to OfferFilterService
chimp1984 Oct 19, 2021
09aa24c
Move Contract, SellerAsMakerTrade, SellerAsTakerTrade, SellerTrade,
chimp1984 Oct 19, 2021
b580a61
Make updateDepositTxFromWallet public
chimp1984 Oct 19, 2021
4dc7121
Move Trade to bisq.core.trade.model.bisq_v1 package
chimp1984 Oct 19, 2021
2b57309
Move MakerTrade and TakerTrade to bisq.core.trade.model package
chimp1984 Oct 19, 2021
eef55b7
Move Tradable to bisq.core.trade.model package
chimp1984 Oct 19, 2021
5b59d50
Move TradableList to bisq.core.trade.model package
chimp1984 Oct 19, 2021
838f7e2
Make FluentProtocol.Event public
chimp1984 Oct 19, 2021
e2f8236
Make setup in FluentProtocol public
chimp1984 Oct 19, 2021
21e9bb4
Move protocol classes to bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
8305434
Move tasks package into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
97903e6
Move TradingPeer into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
69ca8de
Move messages package into bisq.core.trade.protocol.bisq_v1 package
chimp1984 Oct 19, 2021
c090116
Move ClosedTradableManager, FailedTradesManager into bisq.core.trade.…
chimp1984 Oct 19, 2021
bd7af46
Rename CleanupMailboxMessages to CleanupMailboxMessagesService
chimp1984 Oct 19, 2021
0bc5ede
Move CleanupMailboxMessagesService, ClosedTradeUtil to package bisq.c…
chimp1984 Oct 19, 2021
3b7a14c
Move TransactionResultHandler, TradeResultHandler to package bisq.cor…
chimp1984 Oct 19, 2021
ac8dd03
Move TradeDataValidation, DumpDelayedPayoutTx, TradeDataValidation, T…
chimp1984 Oct 19, 2021
449472e
Rename ProcessModelServiceProvider to Provider
chimp1984 Oct 19, 2021
3dd4a75
Rename txID to txId
chimp1984 Oct 19, 2021
f25d0d1
Move createoffer package inside bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
9a1306a
Move takeoffer package inside bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
cc4b001
Move MutableOffer view classes into bisq.desktop.main.offer.bisq_v1 p…
chimp1984 Oct 19, 2021
4ebbaa3
Move OfferDataModel, OfferViewUtil into bisq.desktop.main.offer.bisq_…
chimp1984 Oct 19, 2021
fbfdaf4
Rename FeeUtil to OfferViewModelUtil
chimp1984 Oct 19, 2021
3b5b20d
Move OfferViewModelUtil into bisq.desktop.main.offer.bisq_v1 package
chimp1984 Oct 19, 2021
6a8f612
Cleanups, refromatting, add final qualifier
chimp1984 Oct 19, 2021
3bb303b
Move TradingPeer to package bisq.core.trade.protocol.bisq_v1.model
chimp1984 Oct 19, 2021
993c602
Make setPaymentStartedAckMessage and setDepositTxSentAckMessage public
chimp1984 Oct 19, 2021
ed13d72
Move ProcessModel to package bisq.core.trade.protocol.bisq_v1.model
chimp1984 Oct 19, 2021
7d48cdb
Cleanups
chimp1984 Oct 20, 2021
56759be
Move tests to package bisq.desktop.main.offer.bisq_v1.createoffer
chimp1984 Oct 21, 2021
d5dfdb4
Merge branch 'chimp-bsq-swap-1' into bsq-swap-low-risk-refactorings-2
chimp1984 Nov 2, 2021
fd28c63
Fix merge issues (nothing critical)
chimp1984 Nov 2, 2021
ab7d6ed
Add missing class (merge mistake)
chimp1984 Nov 2, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
112 changes: 63 additions & 49 deletions core/src/main/java/bisq/core/offer/Offer.java
Expand Up @@ -77,7 +77,6 @@ public class Offer implements NetworkPayload, PersistablePayload {
// from one provider.
private final static double PRICE_TOLERANCE = 0.01;


///////////////////////////////////////////////////////////////////////////////////////////
// Enums
///////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -96,7 +95,7 @@ public enum State {
///////////////////////////////////////////////////////////////////////////////////////////

@Getter
private final OfferPayload offerPayload;
private final OfferPayloadBase offerPayloadBase;
chimp1984 marked this conversation as resolved.
Show resolved Hide resolved
@JsonExclude
@Getter
final transient private ObjectProperty<Offer.State> stateProperty = new SimpleObjectProperty<>(Offer.State.UNKNOWN);
Expand All @@ -121,8 +120,8 @@ public enum State {
// Constructor
///////////////////////////////////////////////////////////////////////////////////////////

public Offer(OfferPayload offerPayload) {
this.offerPayload = offerPayload;
public Offer(OfferPayloadBase offerPayloadBase) {
this.offerPayloadBase = offerPayloadBase;
}


Expand All @@ -132,7 +131,8 @@ public Offer(OfferPayload offerPayload) {

@Override
public protobuf.Offer toProtoMessage() {
return protobuf.Offer.newBuilder().setOfferPayload(offerPayload.toProtoMessage().getOfferPayload()).build();
return protobuf.Offer.newBuilder().setOfferPayload(((OfferPayload) offerPayloadBase)
.toProtoMessage().getOfferPayload()).build();
}

public static Offer fromProto(protobuf.Offer proto) {
Expand Down Expand Up @@ -168,8 +168,14 @@ public void cancelAvailabilityRequest() {
@Nullable
public Price getPrice() {
String currencyCode = getCurrencyCode();
Optional<OfferPayload> optionalOfferPayload = getOfferPayload();
if (!optionalOfferPayload.isPresent()) {
return Price.valueOf(currencyCode, offerPayloadBase.getPrice());
}

OfferPayload offerPayload = optionalOfferPayload.get();
if (!offerPayload.isUseMarketBasedPrice()) {
return Price.valueOf(currencyCode, offerPayload.getPrice());
return Price.valueOf(currencyCode, offerPayloadBase.getPrice());
}

checkNotNull(priceFeedService, "priceFeed must not be null");
Expand Down Expand Up @@ -206,7 +212,7 @@ public Price getPrice() {
}

public long getFixedPrice() {
return offerPayload.getPrice();
return offerPayloadBase.getPrice();
}

public void checkTradePriceTolerance(long takersTradePrice) throws TradePriceOutOfToleranceException,
Expand Down Expand Up @@ -244,9 +250,9 @@ public Volume getVolumeByAmount(Coin amount) {
return null;
}
Volume volumeByAmount = price.getVolumeByAmount(amount);
if (offerPayload.getPaymentMethodId().equals(PaymentMethod.HAL_CASH_ID))
if (offerPayloadBase.getPaymentMethodId().equals(PaymentMethod.HAL_CASH_ID))
volumeByAmount = VolumeUtil.getAdjustedVolumeForHalCash(volumeByAmount);
else if (CurrencyUtil.isFiatCurrency(offerPayload.getCurrencyCode()))
else if (CurrencyUtil.isFiatCurrency(offerPayloadBase.getCurrencyCode()))
volumeByAmount = VolumeUtil.getRoundedFiatVolume(volumeByAmount);

return volumeByAmount;
Expand All @@ -270,7 +276,7 @@ public ObjectProperty<Offer.State> stateProperty() {
}

public void setOfferFeePaymentTxId(String offerFeePaymentTxID) {
offerPayload.setOfferFeePaymentTxId(offerFeePaymentTxID);
getOfferPayload().ifPresent(p -> p.setOfferFeePaymentTxId(offerFeePaymentTxID));
}

public void setErrorMessage(String errorMessage) {
Expand All @@ -284,52 +290,52 @@ public void setErrorMessage(String errorMessage) {

// converted payload properties
public Coin getTxFee() {
return Coin.valueOf(offerPayload.getTxFee());
return Coin.valueOf(getOfferPayload().map(OfferPayload::getTxFee).orElse(0L));
}

public Coin getMakerFee() {
return Coin.valueOf(offerPayload.getMakerFee());
return getOfferPayload().map(OfferPayload::getMakerFee).map(Coin::valueOf).orElse(Coin.ZERO);
}

public boolean isCurrencyForMakerFeeBtc() {
return offerPayload.isCurrencyForMakerFeeBtc();
return getOfferPayload().map(OfferPayload::isCurrencyForMakerFeeBtc).orElse(false);
}

public Coin getBuyerSecurityDeposit() {
return Coin.valueOf(offerPayload.getBuyerSecurityDeposit());
return Coin.valueOf(getOfferPayload().map(OfferPayload::getBuyerSecurityDeposit).orElse(0L));
}

public Coin getSellerSecurityDeposit() {
return Coin.valueOf(offerPayload.getSellerSecurityDeposit());
return Coin.valueOf(getOfferPayload().map(OfferPayload::getSellerSecurityDeposit).orElse(0L));
}

public Coin getMaxTradeLimit() {
return Coin.valueOf(offerPayload.getMaxTradeLimit());
return getOfferPayload().map(OfferPayload::getMaxTradeLimit).map(Coin::valueOf).orElse(Coin.ZERO);
}

public Coin getAmount() {
return Coin.valueOf(offerPayload.getAmount());
return Coin.valueOf(offerPayloadBase.getAmount());
}

public Coin getMinAmount() {
return Coin.valueOf(offerPayload.getMinAmount());
return Coin.valueOf(offerPayloadBase.getMinAmount());
}

public boolean isRange() {
return offerPayload.getAmount() != offerPayload.getMinAmount();
return offerPayloadBase.getAmount() != offerPayloadBase.getMinAmount();
}

public Date getDate() {
return new Date(offerPayload.getDate());
return new Date(offerPayloadBase.getDate());
}

public PaymentMethod getPaymentMethod() {
return PaymentMethod.getPaymentMethodById(offerPayload.getPaymentMethodId());
return PaymentMethod.getPaymentMethodById(offerPayloadBase.getPaymentMethodId());
}

// utils
public String getShortId() {
return Utilities.getShortId(offerPayload.getId());
return Utilities.getShortId(offerPayloadBase.getId());
}

@Nullable
Expand Down Expand Up @@ -405,31 +411,31 @@ public String getErrorMessage() {
///////////////////////////////////////////////////////////////////////////////////////////

public OfferDirection getDirection() {
return offerPayload.getDirection();
return offerPayloadBase.getDirection();
}

public String getId() {
return offerPayload.getId();
return offerPayloadBase.getId();
}

@Nullable
public List<String> getAcceptedBankIds() {
return offerPayload.getAcceptedBankIds();
return getOfferPayload().map(OfferPayload::getAcceptedBankIds).orElse(null);
}

@Nullable
public String getBankId() {
return offerPayload.getBankId();
return getOfferPayload().map(OfferPayload::getBankId).orElse(null);
}

@Nullable
public List<String> getAcceptedCountryCodes() {
return offerPayload.getAcceptedCountryCodes();
return getOfferPayload().map(OfferPayload::getAcceptedCountryCodes).orElse(null);
}

@Nullable
public String getCountryCode() {
return offerPayload.getCountryCode();
return getOfferPayload().map(OfferPayload::getCountryCode).orElse(null);
}

public String getCurrencyCode() {
Expand All @@ -444,73 +450,73 @@ public String getCurrencyCode() {
}

public String getCounterCurrencyCode() {
return offerPayload.getCounterCurrencyCode();
return offerPayloadBase.getCounterCurrencyCode();
}

public String getBaseCurrencyCode() {
return offerPayload.getBaseCurrencyCode();
return offerPayloadBase.getBaseCurrencyCode();
}

public String getPaymentMethodId() {
return offerPayload.getPaymentMethodId();
return offerPayloadBase.getPaymentMethodId();
}

public long getProtocolVersion() {
return offerPayload.getProtocolVersion();
return offerPayloadBase.getProtocolVersion();
}

public boolean isUseMarketBasedPrice() {
return offerPayload.isUseMarketBasedPrice();
return getOfferPayload().map(OfferPayload::isUseMarketBasedPrice).orElse(false);
}

public double getMarketPriceMargin() {
return offerPayload.getMarketPriceMargin();
return getOfferPayload().map(OfferPayload::getMarketPriceMargin).orElse(0D);
}

public NodeAddress getMakerNodeAddress() {
return offerPayload.getOwnerNodeAddress();
return offerPayloadBase.getOwnerNodeAddress();
}

public PubKeyRing getPubKeyRing() {
return offerPayload.getPubKeyRing();
return offerPayloadBase.getPubKeyRing();
}

public String getMakerPaymentAccountId() {
return offerPayload.getMakerPaymentAccountId();
return offerPayloadBase.getMakerPaymentAccountId();
}

public String getOfferFeePaymentTxId() {
return offerPayload.getOfferFeePaymentTxId();
return getOfferPayload().map(OfferPayload::getOfferFeePaymentTxId).orElse(null);
}

public String getVersionNr() {
return offerPayload.getVersionNr();
return offerPayloadBase.getVersionNr();
}

public long getMaxTradePeriod() {
return offerPayload.getMaxTradePeriod();
return getOfferPayload().map(OfferPayload::getMaxTradePeriod).orElse(0L);
}

public NodeAddress getOwnerNodeAddress() {
return offerPayload.getOwnerNodeAddress();
return offerPayloadBase.getOwnerNodeAddress();
}

// Yet unused
public PublicKey getOwnerPubKey() {
return offerPayload.getOwnerPubKey();
return offerPayloadBase.getOwnerPubKey();
}

@Nullable
public Map<String, String> getExtraDataMap() {
return offerPayload.getExtraDataMap();
return offerPayloadBase.getExtraDataMap();
}

public boolean isUseAutoClose() {
return offerPayload.isUseAutoClose();
return getOfferPayload().map(OfferPayload::isUseAutoClose).orElse(false);
}

public boolean isUseReOpenAfterAutoClose() {
return offerPayload.isUseReOpenAfterAutoClose();
return getOfferPayload().map(OfferPayload::isUseReOpenAfterAutoClose).orElse(false);
}

public boolean isXmrAutoConf() {
Expand All @@ -528,8 +534,15 @@ public boolean isXmr() {
return getCurrencyCode().equals("XMR");
}

public Optional<OfferPayload> getOfferPayload() {
if (offerPayloadBase instanceof OfferPayload) {
return Optional.of((OfferPayload) offerPayloadBase);
}
return Optional.empty();
}

public byte[] getOfferPayloadHash() {
return offerPayload.getHash();
return offerPayloadBase.getHash();
}

@Override
Expand All @@ -539,7 +552,8 @@ public boolean equals(Object o) {

Offer offer = (Offer) o;

if (offerPayload != null ? !offerPayload.equals(offer.offerPayload) : offer.offerPayload != null) return false;
if (offerPayloadBase != null ? !offerPayloadBase.equals(offer.offerPayloadBase) : offer.offerPayloadBase != null)
return false;
//noinspection SimplifiableIfStatement
if (getState() != offer.getState()) return false;
return !(getErrorMessage() != null ? !getErrorMessage().equals(offer.getErrorMessage()) : offer.getErrorMessage() != null);
Expand All @@ -548,7 +562,7 @@ public boolean equals(Object o) {

@Override
public int hashCode() {
int result = offerPayload != null ? offerPayload.hashCode() : 0;
int result = offerPayloadBase != null ? offerPayloadBase.hashCode() : 0;
result = 31 * result + (getState() != null ? getState().hashCode() : 0);
result = 31 * result + (getErrorMessage() != null ? getErrorMessage().hashCode() : 0);
return result;
Expand All @@ -559,7 +573,7 @@ public String toString() {
return "Offer{" +
"getErrorMessage()='" + getErrorMessage() + '\'' +
", state=" + getState() +
", offerPayload=" + offerPayload +
", offerPayloadBase=" + offerPayloadBase +
'}';
}
}