hdp_primitives/processed_types/
account.rs

1//! Processed account type
2//! This contains the processed account type and its conversion to cairo format.
3
4use super::mpt::ProcessedMPTProof;
5use alloy::primitives::{keccak256, Address};
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Eq, Hash)]
9pub struct ProcessedAccount {
10    pub address: Address,
11    pub account_key: String,
12    pub proofs: Vec<ProcessedMPTProof>,
13}
14
15impl ProcessedAccount {
16    pub fn new(address: Address, proofs: Vec<ProcessedMPTProof>) -> Self {
17        // TODO: actually this is account trie leaf to be more accurate
18        let account_trie_leaf = keccak256(address).to_string();
19        ProcessedAccount {
20            address,
21            account_key: account_trie_leaf,
22            proofs,
23        }
24    }
25}