mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 09:52:23 +01:00
c84f8a41b3
28 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
Alva Swanson
|
bca59afa8a
|
Enforce Official Kotlin Codestyle | ||
Chris Beams
|
ccde089af3
|
Rename :protodefintion subproject to :proto
This is done primarily for concision. This change also repackages bisq.grpc => bisq.proto.grpc in anticipation of repackaging the definitions in pb.proto from 'protobuf' to 'bisq.proto'. There should not be any compatibility issues with doing this, but it's out of scope here. When complete, the relationship between bisq.proto.grpc and bisq.proto will be more intuitively clear, i.e. that bisq.proto.grpc has certain dependencies on bisq.proto classes, but not the other way around. |
||
Chris Beams
|
b8db1cdf78
|
Organize grpc/protobuf imports properly | ||
Chris Beams
|
b34d59c0a9
|
Introduce Config as replacement for BisqEnvironment
Prior to this commit, BisqExecutable has been responsible for parsing command line and config file options and BisqEnvironment has been responsible for assigning default values to those options and providing access to option values to callers throughout the codebase. This approach has worked, but at considerable costs in complexity, verbosity, and lack of any type-safety in option values. BisqEnvironment is based on the Spring Framework's Environment abstraction, which provides a great deal of flexibility in handling command line options, environment variables, and more, but also operates on the assumption that such inputs have String-based values. After having this infrastructure in place for years now, it has become evident that using Spring's Environment abstraction was both overkill for what we needed and limited us from getting the kind of concision and type saftey that we want. The Environment abstraction is by default actually too flexible. For example, Bisq does not want or need to have environment variables potentially overriding configuration file values, as this increases our attack surface and makes our threat model more complex. This is why we explicitly removed support for handling environment variables quite some time ago. The BisqEnvironment class has also organically evolved toward becoming a kind of "God object", responsible for more than just option handling. It is also, for example, responsible for tracking the status of the user's local Bitcoin node, if any. It is also responsible for writing values to the bisq.properties config file when certain ban filters arrive via the p2p network. In the commits that follow, these unrelated functions will be factored out appropriately in order to separate concerns. As a solution to these problems, this commit begins the process of eliminating BisqEnvironment in favor of a new, bespoke Config class custom-tailored to Bisq's needs. Config removes the responsibility for option parsing from BisqExecutable, and in the end provides "one-stop shopping" for all option parsing and access needs. The changes included in this commit represent a proof of concept for the Config class, where handling of a number of options has been moved from BisqEnvironment and BisqExecutable over to Config. Because the migration is only partial, both Config and BisqEnvironment are injected side-by-side into calling code that needs access to options. As the migration is completed, BisqEnvironment will be removed entirely, and only the Config object will remain. An additional benefit of the elimination of BisqEnvironment is that it will allow us to remove our dependency on the Spring Framework (with the exception of the standalone pricenode application, which is Spring-based by design). Note that while this change and those that follow it are principally a refactoring effort, certain functional changes have been introduced. For example, Bisq now supports a `--configFile` argument at the command line that functions very similarly to Bitcoin Core's `-conf` option. |
||
Chris Beams
|
1e8633b03b
|
Organize io.grpc imports correctly
And remove entry for the no longer used io.bisq.generated package. |
||
Christoph Atteneder
|
b976570426
|
Release/v1.2.0 (#3532)
* New trade protocol (#3333) * Remove arbitration key, cleanup * Add BuyerAsMakerProcessDepositTxAndDelayedPayoutTxMessage * Adopt trade protocol - Add handler for DepositTxAndDelayedPayoutTxMessage - Change handler for DepositTxPublishedMessage - Add MakerSetsLockTime - Rename MakerProcessPayDepositRequest to MakerProcessPayDepositRequest - Rename MakerSendPublishDepositTxRequest to MakerSendsProvideInputsForDepositTxMessage - Rename DepositTxPublishedMessage to DelayedPayoutTxSignatureRequest - Rename MakerProcessDepositTxPublishedMessage to MakerAsBuyerProcessSignDelayedPayoutTxMessage * Remove arbitratorKey * Add new classes * Add new message classes * Add new task classes * Renamed classed (no functional change yet) * Add lockTime * Add delayedPayoutTxSignature field * Add useReimbursementModel field * Add new classes * Add setting.preferences.useReimbursementModel * Apply renamed classes (new classes not added yet) * Add useReimbursementModel * Add preferences param * Add new methods, cleanup * Add daoFacade param, apply renaming * Add delayedPayoutTx, lockTime and delayedPayoutTxId - Support daoFacade param * Remove DirectMessage interface * Rename emergencySignAndPublishPayoutTx method, add new one for 2of2 MS * Apply new protocol * Apply new protocol * Add renaming (no functional change yet) * Add new messages, apply renaming * Remove unneeded P2SHMultiSigOutputScript * Remove PREFERRED_PROJECT_CODE_STYLE * Refactor: Rename class * Use InputsForDepositTxRequest instead of TradeMessage in handleTakeOfferRequest * Do not sign deposit tx if maker is seller We change behaviour that the maker as seller does not send the pre signed deposit tx to the taker as the seller has more to lose and he wants to control the creation process of the delayed payout tx. * Apply new trade protocol to seller as maker version * Apply new trade protocol Delayed payout tx are now working for all scenarios but we use a small hack to get around an issue with not receiving confirmations and the peers tx. We add a tiny output to both peers, so we see the tx and confirmation. Without that only the publisher sees the tx and confirmations are not displayed. Need further work to get that working without that extra outputs. * Set TRADE_PROTOCOL_VERSION to 2 * Add PeerPublishedDelayedPayoutTxMessage We need add the delayed payout tx to the wallet once the peer publishes it. We will not see the confidence as we do not receive or sent funds from our address. Same is with dispute payouts where one peer does not receive anything. Then the confidence is not set. It seems that is a restriction in BitcoinJ or it requires some extra handling. We set the confidence indicator invisible in the dispute case and that might be an acceptable option here as well. * Add refund agent domain * Add refundAgentNodeAddress * Apply refund domain * Add refund views * Apply refundAgent domain * Support refundAgent * Remove useReimbursementModel field We dont need in the offer anymore the decision if reimbursement or arbitration is chosen. * Apply refundAgent payout * Handle tx info and balances * Remove mediation activation * Add new tac accepted flag for v1.2.0 and adjust text * Fix params for test classes * Signed witness trading (#3334) * Added basic UI for account signing for arbitrators * Add domain layer for signed account age witnesses (credits ManfredKarrer and oscarguindzberg) * Remove testing gridlines * Arbitrator sign accountAgeWitnesses Automatically filter to only sign accounts that - have chargeback risk - bought BTC - was winner in dispute * Handle chargebackrisk by currency * Check winners only for closed disputes * Show sign status of paymentaccounts in AccountsView * Rename service to accountAgeWitnessService * Refactor: Move account signing helpers to AccountAgeWitnessService * Refactor: rename hasSignedWitness to myHasSignedWitness * Show if witness is signed in offerbook view * Use witness sign age for age comparison * Refactor: rename to isTaker... to isMyTaker... * Allow trading with signed witnesses * Use witness age for showing account age icon * Move AccountAgeRestrictions into AccountAgeWitnessService * Handle trade limit of unverified accounts as normal case * Avoid optional as argument * Set trade limit depending on trade direction * Avoid optional arguments * Add text for seller as signer * Seller with signer privilege signs buyer witness * Fix merge issues * Remove explicit check for risky offers * Remove sellers explicit account age check * Add limit check based on common accountAgeWitness function * Fix arbitrator key event handling * Filter accounts on tradelimit instead of maturity * Fix test * Buyer sign seller account Add SIGNED_ACCOUNT_AGE_WITNESS capability * Fix checks for signing at end of trade Get correct valid accounts for offer * Rename BuyerDataItem -> TraderDataItem * Arbitrator sign both parties in a buyer payout dispute * Only sign unsigned accountAgeWitnesses * Remove unused code * Add demo for material design icons * Use different account age limits for sell/buy * Fix signing interface for arbitrator * Add signing state column to offer book * Add signing state to fiat accounts overview * Add signing state to selected fiat account * Fix popover padding * Add account signing state to peer info popup * Retrieve only unsigned witnesses for arbitrator to sign * Accounts signed by arbitrators are signers * Disable test due to travis issues * Improve witness handling (#3342) * Fix comparison * Add display strings for witness sign state * Fix immaturity check * Use accountAgeWitness age for non risky payment methods * Show information about non risky account types * Fix peer info icon account age text * Complete new trade protocol (#3340) * Improve handling of adding tx to wallet * Add delayedPayoutTx to dispute * Fix test * Use RECIPIENT_BTC_ADDRESS from DAO for trade fee * Set lockTime to 10 days for altcoins, 20 days others. - Devmode uses 1 block * Fix params * Update text * Update docs * Update logging if (log.isDebugEnabled()) only matches if logLevel is debug not if it is INFO * Remove log * Remove arbitrator checks * Remove arbitrator address - It works not if not legacy arbitrator is registered. We cannot remove too much from arbitration as we would risk to break account signing and display of old arbitration cases. Though if testing time permits we should try to clean out more of arbitration domain what is not needed anymore. * Use account signing state in accounts view (#3365) * Add account signing icons to signing state in account display * Remove unnecessary "." that caused layout issues in the past * Add additional warning in the received payment popup for account signer * Fix Revolut padding issues for currencies * Hide signing icon for non-high-risk payment methods * Add correct icon state and info text for account signing state * Remove not implemented notification part * Test self signing witnesses * Change verified account limit factor to 0.5 * Account Signing: Add information popups for signing state (#3374) * Add account signing icons to signing state in account display * Remove not implemented notification part * Hide time since signing column when not needed * Remove fiat rounding popup as feature was introduced a long time ago already * Add information popups for new signed states (only shown once for user) and minor clean-ups * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: sqrrm <sqrrm@users.noreply.github.com> * Account Signing: Improve signed state notificaton (#3388) * Remove new badge from Altcoin instant feature * Remove new badge from percentage user deposit feature * Fix line break issues in received payment confirmation popup * Check if received payload fulfills signing state condition and not any personal witness * Show additional badge for account sections to guide user to check out new signing states * Fix account signing state in offer book (#3390) * Account Signing: Fix verified usage (#3392) * Rename witnessHash -> accountAgeWitnessHash * Add enum for SignedWitness verification method * Fix usage of isValidAccountAgeWitness * Revert icon for signstate change * Account signing: add signing state to payment account selection (#3403) * Clean up dead code parts * Add account signing state to payment account selection * Account signing: revert dev date setting for trusted accounts (#3404) * Revert temporary value for dev testing * Only enable button if there are accounts to be signed * Add trade limit exceptions (#3406) * Remove dead code * Add trade limit exception for accounts signed by arbitrator * Update translations to adapt to new unified delay (#3409) * NTP: Fix a couple of UI issues in the New Trade Protocol (#3410) * Add badge support for refund agent (new arbitrator) tickets * Fix translation typo * Clean up arbitrator issues in translation * Only show refund agent label to support staff Every user should still see this role as arbitration * NTP: Improve differentiation between mediation and new arbitration (#3414) * Clean up property exposure * Improve differentiation between mediation and arbitration cases * Go to new refund view if it is no mediation and not open mediation notification if refund is already in progress * Don't sign filtered accounts * NTP: merge with master (#3420) * Temporarily disable onion host for @KanoczTomas's BTC node * Add Ergo (ERG) without Bouncy Castle dependency. See #3195. * List CTSCoin (CTSC) * Tweak the English name of Japan Bank Transfer payment method * Add mediator prefix to trade statistics * List Faircoin (FAIR) * List uPlexa (UPX) * Remove not used private methods from BisqEnvironment * Add onInitP2pNetwork and onInitWallet to BisqSetupListener - Rename BisqSetupCompleteListener to BisqSetupListener - Add onInitP2pNetwork and onInitWallet to BisqSetupListener - make onInitP2pNetwork and onInitWallet default so no impl. required * Start server at onInitWallet and add wallet password handler - Add onInitWallet to HttpApiMain and start http server there - Add onRequestWalletPassword to BisqSetupListener - Override setupHandlers in HttpApiHeadlessApp and adjust setRequestWalletPasswordHandler (impl. missing) - Add onRequestWalletPassword to HttpApiMain * Add combination (Blockstream.info + Mempool.space) block explorer * Revert "Temporarily disable onion host for @KanoczTomas's BTC node" This reverts commit |
||
chimp1984
|
d26b451698
|
Revert recent code format changes
The recent changes breaks current formatting radically and does not lead to better results as it was before. Before applying new changes, please test it with bigger classes to see if the result is as intended. |
||
Christoph Sturm
|
b6b0d6c272 | chop down long chained calls and force brackets on if | ||
Christoph Atteneder
|
cc3128d4e0
|
Merge branch 'master' of github.com:bisq-network/bisq into release/v1.1.6
# Conflicts: # core/src/main/java/bisq/core/offer/OfferUtil.java # core/src/main/resources/i18n/displayStrings.properties # desktop/src/main/java/bisq/desktop/main/MainView.java # desktop/src/main/java/bisq/desktop/main/MainViewModel.java # desktop/src/main/java/bisq/desktop/main/market/trades/TradesChartsViewModel.java # desktop/src/main/java/bisq/desktop/main/offer/MutableOfferDataModel.java # desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java # desktop/src/main/java/bisq/desktop/main/overlays/windows/OfferDetailsWindow.java # desktop/src/main/java/bisq/desktop/main/portfolio/openoffer/OpenOffersViewModel.java # desktop/src/main/java/bisq/desktop/main/portfolio/pendingtrades/PendingTradesView.java # desktop/src/main/java/bisq/desktop/main/support/dispute/DisputeView.java # desktop/src/main/java/bisq/desktop/main/support/dispute/agent/DisputeAgentView.java |
||
chimp1984
|
d55114e019 |
Add mediation support (#3221)
* Refactoring: Move arbitration package inside dispute package * Use abstract base class DisputeResolver for arbitrator * Refactoring: Move mediator to mediator package. * Let Mediator inherit DisputeResolver. * Do not use protobuf inheritance - Do not use protobuf inheritance for Arbitrator and Mediator as it would break backward compatibility (and protobuf inheritance sucks anyway) * Refactoring: Move ArbitratorModule to parent package * Refactoring: Rename ArbitratorModule to DisputeModule * Add mediators to Filter * Add mediators to filter window * Use abstract DisputeResolverService as base class for ArbitratorService - Add common base class for ArbitratorService and MediatorService * Fix test * Use abstract DisputeResolverManager as base class for ArbitratorManager - Add common base class for ArbitratorManager and MediatorManager * Refactor: Move arbitratorregistration package inside register pkg * Refactor: Rename arbitratorregistration package to arbitrator * Add registration view for mediator - With cmd+D one can open the mediator regisration in account screen. For arbitrator its cmd+R * Separate pub key list for mediator (no new keys added yet) * Set new pubkeys for mediator registration - Before release set new keys from maintainer who manages keys * Set disputes @Nullable. Add null checks * Remove pre v0.9 handling for supported arbitrators from offer - We changed handling of arbitrator selection with v0.9 so the supported arbitrators in the offer is not used anymore. As we enforced v1.2 a while back for trading we can be sure no pre v0.9 clients are used anymore and we can remove the optional code part. * Remove supported arbitrators info in offer details window - As we do not use supported arbitraors in offer anymore since v0.9 we can remove that. * Remove check for matching arbitrator languages As we do not use the supported arbitratos from offer since v0.9 we can remove that check. * Remove not used classes * Remove checks for arbitrator and mediator in offer We do not use those fields anymore. We still need to keep the fields not nullable as old clients have the check still. * Add check if sig of proto object is not empty We got in dev testing sometimes an empty protobuf Alert. Might be caused from protobuf copatibility issues during development but not 100% clear. As it causes an exception and corrupted user db file we prefer to set it to null. * Remove TakerSelectMediator This is not used anymore. Currently we would get an exception in the trade but with follow up changes we will fix that... Mediator handling and selection will be done the same way like arbitrator. The current mediator handling was a relict from earlier partial support for mediators which never got completed. As still a null check is in place we need to ensure backward compatibility. * Set arbitratorNodeAddresses and mediatorNodeAddresses to deprecated We do not use arbitratorNodeAddresses and mediatorNodeAddresses anymore but as there is a null check we still need to keep the field ans set it to an empty arrayList. * Make ArbitratorSelection generic. Add MEDIATOR_ADDRESS We want to use the same selection algorithm for mediators as for arbitrators, so we make ArbitratorSelection generic. We add MEDIATOR_ADDRESS as extraMap entry to TradeStatistics2 to be able to track number of trades with specific mediators. ExtraMap is used to add new data to existing protobuf definitions which is supported also by not updated clients. Adding a new protobuf field would only be supported by new clients. As mediator support is a new feature we could add a new field but to keep it in the same style like arbitrator we prefer to use the map here as well. * Refactor: Rename ArbitratorSelection to DisputeResolverSelection * Add mediator to OfferAvailabilityResponse and mediatorNodeAddress to OpenOffer WIP for supporting mediator selection the same way like arbitrators. * Make arbitrator not nullable We can ensure that all users are post v0.9 so we can remove the nullable support. * Add selectedMediator to OfferAvailabilityModel Remove nullable support in ProcessOfferAvailabilityResponse as we can ensure all clients are post v0.9 * Refactor: Rename method * Add todo for using more generic keys for display strings * Refactor: Rename method * Fix wrong handling of registeredMediator Fix copy/paste error * Add mediatorNodeAddress to trade * Handle nullable mediator in ProcessOfferAvailabilityResponse We do not get the mediator set from old clients but we expect a not null value so we use the DisputeResolverSelection in case it is null. We need to pass mediatorManager and tradeStatisticsManager to the OfferAvailabilityModel. * Change log level, cleanup * Revert changes in OfferPayload due backward compatibility issues Because of backward compatibility issues we needed to revert the removal of arbitratorNodeAddresses and mediatorNodeAddresses. The signature check for the offer would fail as an old client would send a not-empty list but new clients would have had an empty list, so the hash would be different and the sig check fail and we would not accept that offer. That is the reason why we still need to support those data even it is not used anymore. This is one of the more tricky cases for backward compatibility issues. This version now is tested between new and old clients and trade and disputes work. * Add checks if any mediator is available * Cleanup classes * Fix test * Add mediator DisputeStates Add isMediationDispute to Dispute class. If a dispute opening gets requested we check if state is DisputeState.NO_DISPUTE and the open mediation. If state is DisputeState.MEDIATION_REQUESTED we open arbitration. * Cleanup; support isMediationDispute * Handle mediator data in Dispute domain - Add getConflictResolverNodeAddress method to Dispute to resolve arbitrator or mediator address based on isMediationDispute flag. - Rename arbitratorPubKeyRing to conflictResolverPubKeyRing in Dispute. We cannot rename arbitratorPubKeyRing in the protobuf definition as it would break backward compatibility. * Add support for mediation in dispute domain - Add isMediationDispute method to ChatSession - Add isMediationDispute method to DisputeCommunicationMessage - Add isMediationDispute to dispute id - Refactor findDispute method - Add null checks - Cleanups * Remove impossible case Reserved and locked funds are used for offers and trades only. * Fix typos * Handle mediator and arbitrator strings - Work in progress of adjusting correct terms. - Cleanups * Refactor: Rename arbitrator package to disputeresolvers * Refactor: Rename ArbitratorDisputeView classes to DisputeResolverView * Add support for close ticket from mediator (WIP) In mediator case we do not create any transaction but only send the dispute result which contains the mediators recommended payout distribution. At teh traders we set the disputeState in the trade to closed. This will be used in the next commits to update the trade so that the traders get displayed the recommended payout and get asked if they agree to that. * Refactoring: Rename class Rename MessageDeliveryFailedException to DisputeMessageDeliveryFailedException * Refactoring: Move dispute classes to dispute package * Refactoring: Move Attachment class to dispute package * Refactoring: Move package one level up Move bisq.core.dispute.arbitration.messages to bisq.core.dispute.messages * Add todo comment * Use ARBITRATION instead of DISPUTE * Make DisputeManager abstract base class for ArbitrationDisputeManager WIP for separating DisputeManager to ArbitrationDisputeManager and MediationDisputeManager * Add MediationDisputeManager * Add MediationDisputeManager and ArbitrationDisputeManager to test * Add mediationDisputeManager to relevant classes There are some cases where arbitrationDisputeManager only is used. Those are usually related to the payout tx. As mediators do not do a payout we don't need it there. * Add TradersArbitrationDisputeView and TradersMediationDisputeView WIP for separating TraderDisputeView * Refactor: Rename class * Refactor: Rename support.tab.support to support.tab.mediation.support I am aware that committing non default translation files is not recommended, but I think in that case it helps to avoid to show errors for developers who use non-english locale. The changes will be overwritten by transifex once it gets synced... * Add DisputeView as common base class Further refactor separation of diff. dispute views * Refactor: Rename package * Refactor: Rename DisputesView to SupportView * Refactor: Rename package * Add MediationDisputeManager to CorePersistedDataHost * Add MediationDisputeList as db file, refactor DisputeList WIP for making Dispute domain more generic. We want to separate arbitration and mediation clearly. * Further refactoring to split mediation and arbitration * Further refactoring to split mediation and arbitration Move methods used for arbitration only to ArbitrationDisputeManager * Refactor: Rename package Rename bisq.core.dispute to bisq.core.support No other changes in that commit. We want to improve the data structure with the trader chat. Support will be the top level. Then dispute containing arbitration and mediation. Next to dispute will be trader chat. bisq.core.support bisq.core.support.dispute.arbitration bisq.core.support.dispute.mediation bisq.core.support.traderchat (not happy with name for that yet) * Refactor: Move dispute domain classes into isq.core.support.dispute package * Refactor: Move classes Move bisq.core.chat.ChatSession to bisq.core.support.ChatSession Move bisq.core.chat.ChatManager to bisq.core.support.ChatManager Move bisq.core.trade.TradeChatSession to bisq.core.support.traderchat.TradeChatSession * Refactor: Move DisputeCommunicationMessage * Refactor: Rename DisputeCommunicationMessage to ChatMessage * Add comments * Refactor: Move class * Refactor: Rename class * Refactor: Rename addDisputeCommunicationMessage and strings and variables Rename disputeCommunicationMessage to chatMessage * Refactor: Rename method * Refactor: Rename methods and strings * Add ArbitrationChatMessage and DisputeChatMessage * Refactor: Rename class * Move ChatMessage.Type to SupportType Add to all supportMessages the SupportType so that we can filter in our chatSessions the messages we are interested in. * Refactor: Move classed to new package * Refactor: Rename package * Refactor: Move classed to new package * Refactor: Move classed to new package * Refactor: Rename classes * Refactor: Rename package * Refactor: Rename classes * Refactor: Rename classes * Remove empty DisputeModule * Refactor: Rename classes * Refactor SupportManager domain (WIP) * Refactor SupportSession domain (WIP) * Remove methods from SupportSession * Dont expose p2pService in SupportManager * Remove supportType in SupportSession * Remove supportSession from getPeerNodeAddress method * Remove isBuyer from supportSession * Move creation of ChatMessage to SupportManager * Remove isMediationDispute fielf in ChatMessage * Remove chatMessage.isMediationDispute() * Refactor: Rename trade.getCommunicationMessages() * Move creation of ChatMessage to Chat * Refactor: Rename class * Refactor: Move ChatView class * Refactor: Move PriceFeedComboBoxItem class to shared package * Refactor: Use 'public abstract' instead of 'abstract public' * Refactor: Use 'protected abstract' instead of 'abstract protected' * Add traderChatManager.onAllServicesInitialized() to BisqSetup * Remove unused param * Refactor: Rename addChatMessage to addAndPersistChatMessage * Fix missing check at ack msg handling Various WIP refactorings/improvements * Remove addAndPersistChatMessage from SupportSession * Remove disputeManager from DisputeSession * Fix missing getConcreteDisputeChatSession impl. * Refactor: Rename package * Refactor: Rename classes Avoid trader as it might confuse with trader chat. As for mediation/arbitration the agent (mediator/arbitrator) are acting a bit like a server we use the client terminology for the traders. * Refactor: Move classes to new package * Fix missing protobuf data - Add missing SupportType to protobuf - Remove is_mediation_dispute from Dispute protobuf definition - Add getAgentNodeAddress method - Var. other refactorings, cleanups * Clone list at persisting to avoid ConcurrentModificationException * Fix order of SupportType Old clients fall back to enum at slot 0. * Add getDisputeState_StartedByPeer template method * Add trade protocol tasks for mediation result tx signing and msg sending * Complete protocol tasks for mediation * Refactor: Remove unneeded SuppressWarnings type: "WeakerAccess" * Complete mediation result protocol Works now all but not much tested.... * Add activation date and capability We need to make sure that not updated users cannot cause problems once mediation is supported. We would get mixed cases where one has a mediation ticket and the not updated user an arbitration ticket. To avoid that we set an activation date with about 10 days from release. Until that date mediation is not supported. Additionally we use OfferRestrictions.REQUIRE_UPDATE_DATE for hiding offers from users how have not updated (we use the fact that mediator and arbitrator has been same in old version, in new version they are different). An old client cannot take an offer from a new maker as he does not has set the new MEDIATION capability. He will get an null value as AvailabilityResult as he has not the new entry MISSING_MANDATORY_CAPABILITY. We will also use the min version for trading in the filter, so that not updated users get a popup telling them to update and they see all offers deactivated. * Various fixes * Remove code part which does not make sense (anymore) Maybe in older versions there was use of openDisputes and closedDisputes but now it does not make sense anymore and arbitrator never gets 4 cases opened if offline. * Add check of balance is > 0 * Only close trade if payout tx is set * Add missing check if arbitrator and mediator are available * Fix wrong key * Improve handling of checks and popup display For create and take offer we check certain conditions and show a popup if not met. This commit moves that to GuiUtils. * Rename any occurrance of DisputeResolver to DisputeAgent * Fix handling of mediatorPubKeyRing * Remove disputeSummaryWindow.evidence fields * Add missing persistence for MediationResultState * Fix tests * Make text more compact to not exceed space * Refactor NotificationGroup * Improve text, add dev testing feature for popups * Improve text * Renamed a key and assigned a new text * Fix states * Do not set errorMessage Do not set errorMessage if both peers have opened a dispute and agent was not online * Remove logs used for dev testing * Fix getMedian method with empty list * Add new methods and tests Add fromCommaSeparatedOrdinals and toCommaSeparatedOrdinals to convert from string representations (used for handling backward compatibility with mediation release). Add check if int >= 0 to fromIntList * Move error log outside of delayed call * Add capabilities entry to extraDataMap in offer The previous implementation did not work for supporting updates and hiding offers from not updated clients. We use now the capabilities converted to a string list and put it into the extraDataMap. If a use with old persisted offers updates his offers gets converted to add the capabilities. Updated clients will ignore offers without the mediation capability set in the offer. * Rename non sync protobuf definitions As Christoph Sturm pointed out we can rename protobuf entries. Only index number must not be changed. * Fix UI state when arbitration has started Only set mediation state if we are not in arbitration state. * Remove restriction * Fix typo; remove errorMessage If both have opened a dispute and agent was not online we dont treat it as error. * Improve text * Store full address for localhost dev testing The arbitrator/mediator selection is based on statistics of usage of agents in past trades. We put the first 4 chars into the trade statistics, but for localhost that would be same vale for 2 diff nodes. * Remove errorMessage If both have opened a dispute and agent was not online we dont treat it as error. * Improve text * Keep accept or reject button enabled after accept - If peer never accepts the trader who has accepted first can change to reject to open a arbitration dispute. We could improve that by adding a new state to open arbitration directly and show a diff. button text and popup. But I think for now thats ok as well.... * Cleanups (no functional change) - remove unused params - remove not used code - reformat - clean up comments - fix log levels - remove redundant annotations * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Update core/src/main/resources/i18n/displayStrings.properties Co-Authored-By: Steve Jain <mfiver@gmail.com> * Improve text * Auto fill remaining amount in custom payout If mediator or arbitrator are doing a custom payout, we auto-fill counterpart field with remaining amount, so he does not need to calculate. |
||
Christoph Sturm
|
85e6da7f50 | Tweak code formatter settings | ||
Christoph Atteneder
|
28801acd2a
|
Revert "Add autogenerated entry by Intellij (2019.2)" | ||
Christoph Atteneder
|
305b5454dd
|
Add autogenerated entry by Intellij (2019.2) | ||
Christoph Sturm
|
aae430887e | fix formatting, set method parameter wrapping to "chop if long" | ||
Manfred Karrer
|
6861e76d61
|
Merge branch 'master' into release-candidate-0.9.0
# Conflicts: # desktop/src/main/java/bisq/desktop/util/GUIUtil.java # desktop/src/test/java/bisq/desktop/util/GUIUtilTest.java # gradle/witness/gradle-witness.gradle |
||
Chris Beams
|
34a82ba890
|
Deprecate insufficiently traded assets
- Remove assets from META-INF/services/bisq.asset.Asset - Preserve asset types but mark as @Deprecated - @Ignore asset tests Preserving the types is important from a compatibility perspective. Users who have traded these assets in the past, however few there may be, need to be able to classload the asset type(s) in order to avoid errors when browsing through their trade portfolio history. |
||
Christoph Atteneder
|
0edbb1733c
|
Merge branch 'master' of github.com:bisq-network/bisq-desktop into redesign
# Conflicts: # desktop/src/main/java/bisq/desktop/main/settings/preferences/PreferencesView.java # desktop/src/main/java/bisq/desktop/util/FormBuilder.java |
||
Manfred Karrer
|
3689e4cbf1
|
Merge remote-tracking branch 'upstream/master'
# Conflicts: # core/src/main/java/bisq/core/dao/state/SnapshotManager.java |
||
Christoph Atteneder
|
2dfb0de1aa
|
Update code style | ||
Christoph Atteneder
|
59551772a7
|
Redesign splash screen | ||
Christoph Atteneder
|
11384ab807
|
Update imports for de.jensd.fx and optimize imports | ||
Chris Beams
|
04bace7a28
|
Disable IDEA wrap on typing
See bisq-network/style#3 |
||
Chris Beams
|
730e583783
|
Add visual guide at 90-character Javadoc margin
Per bisq-network/style#5 |
||
Chris Beams
|
8f25bf3170
|
Wrap lines automatically at 120 character margin
Problem: bisq-network/style#3 indicates code should be wrapped at 120 characters, but it is likely that people will forget and that this habit will only change slowly. Solution: Configure IDEA to wrap lines automatically when typing past 120 characters, forcing the reminder to happen in real time. If this becomes a nuisance, we can remove it later. Note that this change also explicitly sets the RIGHT_MARGIN value to 120, even though this is already IDEA's default value. This is simply to be explicit and self-documenting. |
||
Chris Beams
|
35231e2ade
|
Preserve blank lines in .properties files
This setting is actually necessary only in bisq-common, but it has been added to the shared codeStyles/Project.xml in bisq-network/dao so as to be able to copy the same configuration file to all bisq-* projects. |
||
Chris Beams
|
63a5aaedf4
|
Normalize .idea/codeStyles/*.xml EOF newlines
IDEA does strips EOF newlines in these files, so this commit adds an exception to the usual rule about inserting them. This will avoid spurious whitespace diffs on these files in the future. |
||
Chris Beams
|
6e60f0aa74
|
Organize imports with common layout (bisq-network/style#2) | ||
Chris Beams
|
dc8150e7df
|
Organize imports
This change adds a .idea/codeStyles/Project.xml file that orders all imports from higher-level layers to lower-level layers, with blank lines between different major packages. The purpose of this approach is to allow the reader to scan the imports in a file efficiently to understand what kind of work the class does, what layers it touches, and so forth. Keeping imports clean and ordered by layer can be a powerful tool in keeping a codebase well organized and tangle-free over time. bisq.* packages are always sorted at the top. |