- Previously we wrapped by default a proposal into a ballot and used that in the UI.
We changed that so in the proposal phase there is only the proposal used. Once we enter the blind vote phase we move to ballot representation.
- We also changed that the proposals for the append-only data store gets filled by the proposal domain once entering the blind vote phase.
- We moved also the publishing, removal and republishing to the myProposalListService.
- Remove PeriodState
- Add cycles to state
- Use stateService for getting chainHeight instead of periodService
- Let parser call stateService methods on start parsing and on new block
- Rename PeriodStateChangeListener to ChainHeightListener
- Rename PeriodStateUpdater to CycleService
- Use StartParsingListener to decouple CycleService with StateService
- Remove StateChangeEventsProvider interface from CycleService
- Let CycleService write to StateService not PeriodService
- Add PeriodStateMutator to guice module
- Add ConsensusServicesSetup and PresentationServicesSetup
- Separate code from onAllServicesInitialized into listener registration and start method
- Move MyProposalService and ProposalListService to bisq.core.dao.presentation.proposal (WIP)
- Add PresentationService marker interface
- Rename PHASE_ISSUANCE to PHASE_VOTE_RESULT
- Remove onInitialState from PeriodStateChangeListener
- Add getCloneOnUserThread method to PeriodState
- Change addListenerAndGetNotified to addPeriodStateChangeListener
- Call start on PeriodStateMutator from ConsensusServicesSetup instead of own constructor
- Use explicit interface StateChangeEventsProvider for registerStateChangeEventsProvider
- Set setChainHeight at onStartParsingNewBlock at the end to avoid that listeners get called before the cycle is added
- Use PeriodServiceFacade instead of PeriodService in ProposalListService
- Use StateServiceFacade instead of StateService in ProposalListService
- Add market interface StateChangeEventsProvider
- Reintroduce BlockListener and use it instead of PeriodStateChangeListener in most use cases as we are usually interested in the event when a block is complete not when the periods service chain height change gets triggered before parsing starts.