diff --git a/noir-projects/noir-protocol-circuits/crates/types/src/contract_class_id.nr b/noir-projects/noir-protocol-circuits/crates/types/src/contract_class_id.nr index c70783fd035c..2ff06c1d8e4f 100644 --- a/noir-projects/noir-protocol-circuits/crates/types/src/contract_class_id.nr +++ b/noir-projects/noir-protocol-circuits/crates/types/src/contract_class_id.nr @@ -1,5 +1,5 @@ use crate::constants::GENERATOR_INDEX__CONTRACT_LEAF; -use crate::traits::{Deserialize, FromField, Serialize, ToField}; +use crate::traits::{Deserialize, FromField, Packable, Serialize, ToField}; pub struct ContractClassId { pub inner: Field, @@ -35,6 +35,17 @@ impl Deserialize<1> for ContractClassId { } } +// Implement the Packable trait so ContractClassId can be stored in contract's storage. +impl Packable<1> for ContractClassId { + fn pack(self) -> [Field; 1] { + self.serialize() + } + + fn unpack(fields: [Field; 1]) -> Self { + Self::deserialize(fields) + } +} + impl ContractClassId { pub fn compute( artifact_hash: Field,