diff --git a/crates/bin/prove_block/src/lib.rs b/crates/bin/prove_block/src/lib.rs index f0bd0f0b..23a225ac 100644 --- a/crates/bin/prove_block/src/lib.rs +++ b/crates/bin/prove_block/src/lib.rs @@ -309,8 +309,15 @@ pub async fn prove_block( let updated_root = block_hash_storage_proof.class_commitment.unwrap_or(Felt::ZERO); let previous_root = previous_block_hash_storage_proof.class_commitment.unwrap_or(Felt::ZERO); - let previous_contract_trie_root = previous_block_hash_storage_proof.contract_proof[0].hash::(); - let current_contract_trie_root = block_hash_storage_proof.contract_proof[0].hash::(); + // TODO: explain this + let previous_contract_trie_root = match previous_block_hash_storage_proof.contract_proof.first() { + Some(proof) => proof.hash::(), + None => Felt252::ZERO, + }; + let current_contract_trie_root = match block_hash_storage_proof.contract_proof.first() { + Some(proof) => proof.hash::(), + None => Felt252::ZERO, + }; let previous_contract_proofs: Vec<_> = previous_storage_proofs.values().map(|proof| proof.contract_proof.clone()).collect(); diff --git a/crates/rpc-client/src/pathfinder/proofs.rs b/crates/rpc-client/src/pathfinder/proofs.rs index 38a8005e..f0315a40 100644 --- a/crates/rpc-client/src/pathfinder/proofs.rs +++ b/crates/rpc-client/src/pathfinder/proofs.rs @@ -75,7 +75,7 @@ impl ContractData { #[derive(Debug, Clone, Deserialize)] pub struct PathfinderProof { - pub state_commitment: Felt, + pub state_commitment: Option, pub class_commitment: Option, pub contract_proof: Vec, pub contract_data: Option,