tasm_lib/rust_shadowing_helper_functions/
claim.rs1use std::collections::HashMap;
2
3use num::Zero;
4use triton_vm::prelude::*;
5
6use crate::prelude::*;
7use crate::structure::tasm_object::decode_from_memory_with_size;
8
9pub fn load_claim_from_memory(
10 claim_pointer: BFieldElement,
11 memory: &HashMap<BFieldElement, BFieldElement>,
12) -> Claim {
13 let output_field_size_pointer = claim_pointer;
14 let output_field_size = memory
15 .get(&output_field_size_pointer)
16 .unwrap_or(&BFieldElement::zero())
17 .value();
18 let input_field_size_pointer = claim_pointer + BFieldElement::new(output_field_size + 1);
19 let input_field_size = memory
20 .get(&input_field_size_pointer)
21 .unwrap_or(&BFieldElement::zero())
22 .value();
23 let version_field_size = 1;
24 let size = input_field_size + output_field_size + version_field_size + Digest::LEN as u64 + 2;
25
26 *decode_from_memory_with_size(memory, claim_pointer, size as usize).unwrap()
31}