The CoreTradesService was refactored to work for newly added api methods:
- keepfunds -- close trade, keep funds in bisq wallet
- withdrawfunds -- close trade, withdraw funds to external btc wallet
A getKey accessor was added to CoreWalletsService (needed by withdrawfunds impl).
This PR adds trade closing method stubs to keep funds in the
Bisq wallet or send them to an external BTC wallet.
- Add grpc protos
- Add new methods to GrpcTradesService, CoreApi
- Stub out implementations in CoreTradesService
- Add methods to CLI
API users will need to see their role as maker/taker when looking at trade details.
- Add getRole(trade) to TradeUtil.
- Add getTradeRole(tradeId) to CoreApi, CoreTradesService.
- Add role field to TradeInfo proto and its wrapper class.
Scope of this refactoring is small; more can be done, but the short
term goal is to share trade util logic with core api.
- Removed unused method getCurrencyCode()
- Made minor style changes
- Removed duplicated code block
- Add new core.offer.takeoffer.TakeOfferModel
Would have been nice to move more logic from
bisq.desktop.main.offer.takeoffer.TakeOfferDataModel,
but it has JFX dependencies that cannot be use in :core.
- Add grpc protos to support takeoffer, confirmpaymentsent, confirmpaymentreceived
Only takeoffer is implemented in this commit.
- Refactor OfferInfo grpc proto wrapper, and add offer state field
- Add new TradeInfo grpc proto wrapper
- Implement takeoffer on server and cli side
- Refactor offer/trade tests, add test cases
These refactoring changes are for reducing existing and potential
duplication coming with the addition of new trading protocol support
in the gRPC API. Some minor styling and logic simplification changes
are also include.
- Convert OfferUtil to injected singleton, and move various offer related
utility methods into it.
- Delete both MakerFeeProvider classes, which were wrappers around the same
static old OfferUtil method.
- Inject OfferUtil into CreateOfferDataModel, CreateOfferViewModel,
TakeOfferDataModel, TakeOfferViewModel, MutableOfferDataModel,
MutableOfferViewModel, OfferDataModel, EditOfferDataModel,
EditOfferViewModel
- Refactor TakeOfferViewModel
Use OfferUtil, remove unused fields & methods.
Made minor logic simplification, style and formatting changes.
- MutableOfferDataModel
Made minor logic simplification, style and formatting changes.
- MutableOfferView uses new paymentAccount.isHalCashAccount().
- MutableOfferViewModel
Refactored to use new VolumeUtil, CoinUtil, OfferUtil.
Removed unused fields & accessors.
Made minor style change.
- Refactored OfferDataModel to use new OfferUtil
- Refactor CreateOfferService
Inject and use OfferUtil
Move some utility methods to OfferUtil
Remove unused fields
- Offer
Refactored to use new VolumeUtil for volume calculations.
Made stateProperty and errorMessageProperty fields private.
- PaymentAccount
Moved isHalCashAccount type check to this class.
Moved getTradeCurrency logic to this class.
- Contract, radeStatistics2, TradeStatistics3
Refactored to use new VolumeUtil for volume calculations.
- Trade
Refactored to use new VolumeUtil for volume calculations.
Made minor logic simplification, style and formatting changes.
- CoinUtil
Moved some coin utility methods into this class
- CoinUtilTest
Moved (coin related) tests from CoinCryptoUtilsTest and OfferUtilTest
into CoinUtilTest, and deleted OfferUtilTest, CoinCryptoUtilsTest.
- Adjust create and edit offer tests to model refactoring
Remove republishing at SellerProtocol as we don't know the capability of the peer at that moment and as we also want to republish for completed trades.
For published delayed payout transactions we do not receive the tx confidence
so we cannot check if it is confirmed so we ignore it for that check. The check is any arbitrarily
using a limit of 20, so we don't need to be exact here. Should just reduce the likelihood of issues with
the too long chains of unconfirmed transactions.
Fixes#4623
URLs in Javafx label controls are not clickable, so separate them out to
one or more clickable Hyperlinks displayed at the footer of the popup.
The approach taken for this is to embed the tag `[HYPERLINK:]` in the
message around a link that you want to be handled this way. The links
can be anywhere within the popup message, in the same order that they
will be displayed. Using the tag has the advantage of being optional,
and does not require new code to be written for each individual popup.
Refactor to be more flexible; allowing inline hyperlinks
Codacy nits.
This will be used for monitoring seed nodes.
Instead of requesting all data (we cannot request all in fact as it is too large)
we request the number of items the node has.
This code will not have any impact atm. It will be triggered once a new monitor module gets added which
will send the GetInventoryRequest to the seeds.
Add DateSortedTruncatablePayload interface for TradeStatistics2
We check first if we need to truncate dateSortedTruncatablePayloads, if so we have sorted by date and truncate in the way that we receive the most recent data. We define the maxItems in the class implementing the interface (3000 for trade stats).
Later we apply the maxEntries check the combined list and if we need to truncate here as well (10 000) we have added the dateSortedTruncatablePayloads at the end so those will get truncated with higher prio.
There is also a bit wrong handling in the previous code that we check for max limits before the shouldTransmitPayloadToPeer filter. Should be fixed in another PR for master...