diff --git a/base_layer/wallet/src/output_manager_service/error.rs b/base_layer/wallet/src/output_manager_service/error.rs index 6339302ecc..0f0f31332b 100644 --- a/base_layer/wallet/src/output_manager_service/error.rs +++ b/base_layer/wallet/src/output_manager_service/error.rs @@ -120,6 +120,10 @@ pub enum OutputManagerError { InvalidCovenant, #[error("Unsupported Output Features")] InvalidOutputFeatures, + #[error("Unsupported Kernel Features")] + InvalidKernelFeatures, + #[error("Unsupported Lock Height")] + InvalidLockHeight, #[error("Tari script error: {0}")] ScriptError(#[from] ScriptError), #[error("Master secret key does not match persisted key manager state")] diff --git a/base_layer/wallet/src/output_manager_service/service.rs b/base_layer/wallet/src/output_manager_service/service.rs index 4949b07c24..c84c75750e 100644 --- a/base_layer/wallet/src/output_manager_service/service.rs +++ b/base_layer/wallet/src/output_manager_service/service.rs @@ -699,6 +699,16 @@ where return Err(OutputManagerError::InvalidOutputFeatures); } + // Confirm lock height is 0 + if single_round_sender_data.metadata.lock_height != 0 { + return Err(OutputManagerError::InvalidLockHeight); + } + + // Confirm kernel features + if single_round_sender_data.metadata.kernel_features != KernelFeatures::default() { + return Err(OutputManagerError::InvalidKernelFeatures); + } + let (spending_key_id, _, script_key_id, script_public_key) = self.resources.key_manager.get_next_spend_and_script_key_ids().await?;