Skip to main content

airbender_host/
receipt.rs

1/// Execution output captured from transpiler or prover results.
2#[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
3pub struct Receipt {
4    pub registers: [u32; 32],
5    pub output: [u32; 8],
6    pub output_extended: [u32; 16],
7}
8
9impl Receipt {
10    pub fn from_registers(registers: [u32; 32]) -> Self {
11        let mut output = [0u32; 8];
12        output.copy_from_slice(&registers[10..18]);
13        let mut output_extended = [0u32; 16];
14        output_extended.copy_from_slice(&registers[10..26]);
15        Self {
16            registers,
17            output,
18            output_extended,
19        }
20    }
21}