From 1fff7f29e7838aa568265aaebc88fd3b0116d5e0 Mon Sep 17 00:00:00 2001 From: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com> Date: Wed, 8 Apr 2026 09:34:07 -0500 Subject: [PATCH] fix(dpp): block pre-programmed distribution changes on token update --- .../validate_token_configuration_update/v0/mod.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/rs-dpp/src/data_contract/associated_token/token_configuration/methods/validate_token_configuration_update/v0/mod.rs b/packages/rs-dpp/src/data_contract/associated_token/token_configuration/methods/validate_token_configuration_update/v0/mod.rs index a8e8b55ba31..ccfb7265b98 100644 --- a/packages/rs-dpp/src/data_contract/associated_token/token_configuration/methods/validate_token_configuration_update/v0/mod.rs +++ b/packages/rs-dpp/src/data_contract/associated_token/token_configuration/methods/validate_token_configuration_update/v0/mod.rs @@ -256,6 +256,21 @@ impl TokenConfiguration { } } + // Check immutable fields: pre_programmed_distribution + if old.distribution_rules.pre_programmed_distribution() + != new.distribution_rules.pre_programmed_distribution() + { + return SimpleConsensusValidationResult::new_with_error( + DataContractTokenConfigurationUpdateError::new( + "update".to_string(), + "preProgrammedDistribution".to_string(), + self.clone(), + new_config.clone(), + ) + .into(), + ); + } + // Check changes to manual_minting_rules #[allow(clippy::collapsible_if)] if old.manual_minting_rules != new.manual_minting_rules {