pessimistic_proof_core/
multi_batch_header.rs1#![allow(clippy::too_many_arguments)]
2use std::collections::BTreeMap;
3
4use agglayer_primitives::{Digest, U256};
5use serde::{Deserialize, Serialize};
6use unified_bridge::{
7 BridgeExit, ImportedBridgeExit, ImportedBridgeExitCommitmentValues, NetworkId, TokenInfo,
8};
9
10use crate::{
11 aggchain_data::AggchainData, local_balance_tree::LocalBalancePath,
12 nullifier_tree::NullifierPath,
13};
14
15#[derive(Clone, Debug, Serialize, Deserialize)]
17pub struct MultiBatchHeader {
18 pub origin_network: NetworkId,
20 pub height: u64,
22 pub prev_pessimistic_root: Digest,
24 pub bridge_exits: Vec<BridgeExit>,
26 pub imported_bridge_exits: Vec<(ImportedBridgeExit, NullifierPath)>,
28 pub l1_info_root: Digest,
30 pub balances_proofs: BTreeMap<TokenInfo, (U256, LocalBalancePath)>,
33 pub aggchain_data: AggchainData,
35 pub certificate_id: Digest,
37}
38
39impl MultiBatchHeader {
40 pub fn commit_imported_bridge_exits(&self) -> ImportedBridgeExitCommitmentValues {
42 ImportedBridgeExitCommitmentValues {
43 claims: self
44 .imported_bridge_exits
45 .iter()
46 .map(|(exit, _)| exit.to_indexed_exit_hash())
47 .collect(),
48 }
49 }
50}