diff --git a/core/src/main/java/bisq/core/dao/governance/proposal/ProposalValidator.java b/core/src/main/java/bisq/core/dao/governance/proposal/ProposalValidator.java index d9be1f749a..e56f99fed6 100644 --- a/core/src/main/java/bisq/core/dao/governance/proposal/ProposalValidator.java +++ b/core/src/main/java/bisq/core/dao/governance/proposal/ProposalValidator.java @@ -17,6 +17,7 @@ package bisq.core.dao.governance.proposal; +import bisq.core.dao.governance.ConsensusCritical; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.state.DaoStateService; import bisq.core.dao.state.model.blockchain.BaseTx; @@ -33,8 +34,11 @@ import lombok.extern.slf4j.Slf4j; import static org.apache.commons.lang3.Validate.notEmpty; +/** + * Changes here can potentially break consensus! + */ @Slf4j -public abstract class ProposalValidator { +public abstract class ProposalValidator implements ConsensusCritical { protected final DaoStateService daoStateService; protected final PeriodService periodService; diff --git a/core/src/main/java/bisq/core/dao/governance/proposal/compensation/CompensationValidator.java b/core/src/main/java/bisq/core/dao/governance/proposal/compensation/CompensationValidator.java index 5d2ba66204..e76f77fa02 100644 --- a/core/src/main/java/bisq/core/dao/governance/proposal/compensation/CompensationValidator.java +++ b/core/src/main/java/bisq/core/dao/governance/proposal/compensation/CompensationValidator.java @@ -17,6 +17,7 @@ package bisq.core.dao.governance.proposal.compensation; +import bisq.core.dao.governance.ConsensusCritical; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.governance.proposal.ProposalValidationException; import bisq.core.dao.governance.proposal.ProposalValidator; @@ -33,8 +34,11 @@ import lombok.extern.slf4j.Slf4j; import static com.google.common.base.Preconditions.checkArgument; import static org.apache.commons.lang3.Validate.notEmpty; +/** + * Changes here can potentially break consensus! + */ @Slf4j -public class CompensationValidator extends ProposalValidator { +public class CompensationValidator extends ProposalValidator implements ConsensusCritical { @Inject public CompensationValidator(DaoStateService daoStateService, PeriodService periodService) { diff --git a/core/src/main/java/bisq/core/dao/governance/proposal/confiscatebond/ConfiscateBondValidator.java b/core/src/main/java/bisq/core/dao/governance/proposal/confiscatebond/ConfiscateBondValidator.java index 413c4aa5ec..dd6d68225d 100644 --- a/core/src/main/java/bisq/core/dao/governance/proposal/confiscatebond/ConfiscateBondValidator.java +++ b/core/src/main/java/bisq/core/dao/governance/proposal/confiscatebond/ConfiscateBondValidator.java @@ -17,6 +17,7 @@ package bisq.core.dao.governance.proposal.confiscatebond; +import bisq.core.dao.governance.ConsensusCritical; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.governance.proposal.ProposalValidationException; import bisq.core.dao.governance.proposal.ProposalValidator; @@ -30,8 +31,11 @@ import lombok.extern.slf4j.Slf4j; import static org.apache.commons.lang3.Validate.notEmpty; +/** + * Changes here can potentially break consensus! + */ @Slf4j -public class ConfiscateBondValidator extends ProposalValidator { +public class ConfiscateBondValidator extends ProposalValidator implements ConsensusCritical { @Inject public ConfiscateBondValidator(DaoStateService daoStateService, PeriodService periodService) { diff --git a/core/src/main/java/bisq/core/dao/governance/proposal/generic/GenericProposalValidator.java b/core/src/main/java/bisq/core/dao/governance/proposal/generic/GenericProposalValidator.java index b562393d46..f9d38a6d63 100644 --- a/core/src/main/java/bisq/core/dao/governance/proposal/generic/GenericProposalValidator.java +++ b/core/src/main/java/bisq/core/dao/governance/proposal/generic/GenericProposalValidator.java @@ -17,6 +17,7 @@ package bisq.core.dao.governance.proposal.generic; +import bisq.core.dao.governance.ConsensusCritical; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.governance.proposal.ProposalValidationException; import bisq.core.dao.governance.proposal.ProposalValidator; @@ -27,8 +28,11 @@ import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; +/** + * Changes here can potentially break consensus! + */ @Slf4j -public class GenericProposalValidator extends ProposalValidator { +public class GenericProposalValidator extends ProposalValidator implements ConsensusCritical { @Inject public GenericProposalValidator(DaoStateService daoStateService, PeriodService periodService) { diff --git a/core/src/main/java/bisq/core/dao/governance/proposal/param/ChangeParamValidator.java b/core/src/main/java/bisq/core/dao/governance/proposal/param/ChangeParamValidator.java index c257e4c67b..8555af9a93 100644 --- a/core/src/main/java/bisq/core/dao/governance/proposal/param/ChangeParamValidator.java +++ b/core/src/main/java/bisq/core/dao/governance/proposal/param/ChangeParamValidator.java @@ -19,6 +19,7 @@ package bisq.core.dao.governance.proposal.param; import bisq.core.app.BisqEnvironment; import bisq.core.btc.wallet.Restrictions; +import bisq.core.dao.governance.ConsensusCritical; import bisq.core.dao.governance.param.Param; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.governance.proposal.ProposalValidationException; @@ -45,11 +46,13 @@ import static com.google.common.base.Preconditions.checkArgument; //TODO Use translation properties in error messages a they are shown to user. /** + * Changes here can potentially break consensus! + * * We do not store the values as domain types (Coin, int, String) but all as Strings. So we need to parse it to the * expected data type even if we get the data not from user input. */ @Slf4j -public class ChangeParamValidator extends ProposalValidator { +public class ChangeParamValidator extends ProposalValidator implements ConsensusCritical { public enum Result { OK, SAME("New parameter value must be different to current value."), diff --git a/core/src/main/java/bisq/core/dao/governance/proposal/reimbursement/ReimbursementValidator.java b/core/src/main/java/bisq/core/dao/governance/proposal/reimbursement/ReimbursementValidator.java index 733a1718c4..23b7c9d84e 100644 --- a/core/src/main/java/bisq/core/dao/governance/proposal/reimbursement/ReimbursementValidator.java +++ b/core/src/main/java/bisq/core/dao/governance/proposal/reimbursement/ReimbursementValidator.java @@ -17,6 +17,7 @@ package bisq.core.dao.governance.proposal.reimbursement; +import bisq.core.dao.governance.ConsensusCritical; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.governance.proposal.ProposalValidationException; import bisq.core.dao.governance.proposal.ProposalValidator; @@ -34,8 +35,11 @@ import lombok.extern.slf4j.Slf4j; import static com.google.common.base.Preconditions.checkArgument; import static org.apache.commons.lang3.Validate.notEmpty; +/** + * Changes here can potentially break consensus! + */ @Slf4j -public class ReimbursementValidator extends ProposalValidator { +public class ReimbursementValidator extends ProposalValidator implements ConsensusCritical { @Inject public ReimbursementValidator(DaoStateService daoStateService, PeriodService periodService) { diff --git a/core/src/main/java/bisq/core/dao/governance/proposal/removeAsset/RemoveAssetValidator.java b/core/src/main/java/bisq/core/dao/governance/proposal/removeAsset/RemoveAssetValidator.java index 07792833a9..9a6f59d7c2 100644 --- a/core/src/main/java/bisq/core/dao/governance/proposal/removeAsset/RemoveAssetValidator.java +++ b/core/src/main/java/bisq/core/dao/governance/proposal/removeAsset/RemoveAssetValidator.java @@ -17,6 +17,7 @@ package bisq.core.dao.governance.proposal.removeAsset; +import bisq.core.dao.governance.ConsensusCritical; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.governance.proposal.ProposalValidationException; import bisq.core.dao.governance.proposal.ProposalValidator; @@ -30,8 +31,11 @@ import lombok.extern.slf4j.Slf4j; import static org.apache.commons.lang3.Validate.notEmpty; +/** + * Changes here can potentially break consensus! + */ @Slf4j -public class RemoveAssetValidator extends ProposalValidator { +public class RemoveAssetValidator extends ProposalValidator implements ConsensusCritical { @Inject public RemoveAssetValidator(DaoStateService daoStateService, PeriodService periodService) { diff --git a/core/src/main/java/bisq/core/dao/governance/proposal/role/RoleValidator.java b/core/src/main/java/bisq/core/dao/governance/proposal/role/RoleValidator.java index 04e0f82aa3..9f2ff334eb 100644 --- a/core/src/main/java/bisq/core/dao/governance/proposal/role/RoleValidator.java +++ b/core/src/main/java/bisq/core/dao/governance/proposal/role/RoleValidator.java @@ -17,6 +17,7 @@ package bisq.core.dao.governance.proposal.role; +import bisq.core.dao.governance.ConsensusCritical; import bisq.core.dao.governance.period.PeriodService; import bisq.core.dao.governance.proposal.ProposalValidationException; import bisq.core.dao.governance.proposal.ProposalValidator; @@ -30,8 +31,11 @@ import lombok.extern.slf4j.Slf4j; import static org.apache.commons.lang3.Validate.notNull; +/** + * Changes here can potentially break consensus! + */ @Slf4j -public class RoleValidator extends ProposalValidator { +public class RoleValidator extends ProposalValidator implements ConsensusCritical { @Inject public RoleValidator(DaoStateService daoStateService, PeriodService periodService) {