diff --git a/rust/cardano-blockchain-types/Cargo.toml b/rust/cardano-blockchain-types/Cargo.toml
index 606801e59ee..60db45fc7dd 100644
--- a/rust/cardano-blockchain-types/Cargo.toml
+++ b/rust/cardano-blockchain-types/Cargo.toml
@@ -18,7 +18,7 @@ crate-type = ["cdylib", "rlib"]
workspace = true
[dependencies]
-catalyst-types = { version = "0.0.6", git = "https://github.com/input-output-hk/catalyst-libs.git", tag = "catalyst-types/v0.0.6" }
+catalyst-types = { version = "0.0.9", git = "https://github.com/input-output-hk/catalyst-libs.git", tag = "catalyst-types/v0.0.9" }
cbork-utils = { version = "0.0.2", git = "https://github.com/input-output-hk/catalyst-libs.git", tag = "cbork-utils-v0.0.2" }
ouroboros = "0.18.4"
@@ -35,7 +35,6 @@ num-traits = "0.2.19"
ed25519-dalek = "2.1.1"
serde = "1.0.210"
num-bigint = "0.4.6"
-serde_json = "1.0.134"
displaydoc = "0.2.5"
thiserror = "2.0.11"
diff --git a/rust/cardano-blockchain-types/src/metadata/cip36/mod.rs b/rust/cardano-blockchain-types/src/metadata/cip36/mod.rs
index 340ca7df9f2..fd9ce92b837 100644
--- a/rust/cardano-blockchain-types/src/metadata/cip36/mod.rs
+++ b/rust/cardano-blockchain-types/src/metadata/cip36/mod.rs
@@ -51,7 +51,7 @@ impl fmt::Display for Cip36 {
) -> fmt::Result {
write!(
f,
- "Cip36 {{ network: {network}, slot: {slot:?}, txn_idx: {txn_idx:?}, is_catalyst_strict: {is_catalyst_strict}, key_registration: {key_registration:?}, registration_witness: {registration_witness:?}, validation: {{ signature: {is_valid_signature}, payment_address_network: {is_valid_payment_address_network}, voting_keys: {is_valid_voting_keys}, purpose: {is_valid_purpose} }}, err_report: {err_report} }}",
+ "Cip36 {{ network: {network}, slot: {slot:?}, txn_idx: {txn_idx:?}, is_catalyst_strict: {is_catalyst_strict}, key_registration: {key_registration:?}, registration_witness: {registration_witness:?}, validation: {{ signature: {is_valid_signature}, payment_address_network: {is_valid_payment_address_network}, voting_keys: {is_valid_voting_keys}, purpose: {is_valid_purpose} }}, problematic: {is_problematic} }}",
key_registration = self.key_registration,
registration_witness = self.registration_witness,
network = self.network,
@@ -62,34 +62,7 @@ impl fmt::Display for Cip36 {
is_valid_payment_address_network = self.is_valid_payment_address_network,
is_valid_voting_keys = self.is_valid_voting_keys,
is_valid_purpose = self.is_valid_purpose,
- err_report = serde_json::to_string(&self.err_report)
- .unwrap_or_else(|_| String::from("Failed to serialize ProblemReport"))
- )
- }
-}
-
-/// CIP-36 Catalyst registration error
-#[allow(dead_code, clippy::module_name_repetitions)]
-#[derive(Debug)]
-pub struct Cip36Error {
- /// The decoding error that make the code not able to process.
- error: anyhow::Error,
- /// The problem report that contains the errors found during decoding and validation.
- report: ProblemReport,
-}
-
-impl fmt::Display for Cip36Error {
- fn fmt(
- &self,
- fmt: &mut fmt::Formatter<'_>,
- ) -> fmt::Result {
- let report_json = serde_json::to_string(&self.report)
- .unwrap_or_else(|_| String::from("Failed to serialize ProblemReport"));
-
- write!(
- fmt,
- "Cip36Error {{ error: {}, report: {} }}",
- self.error, report_json
+ is_problematic = self.err_report.is_problematic(),
)
}
}
@@ -118,7 +91,7 @@ impl Cip36 {
block: &MultiEraBlock,
txn_idx: TxnIndex,
is_catalyst_strict: bool,
- ) -> Result