1use anchor_lang::{AnchorDeserialize, AnchorSerialize};
2use solana_program::pubkey::Pubkey;
3
4use crate::compressed_account::OutputCompressedAccountWithPackedContext;
5
6#[derive(Debug, Clone, AnchorDeserialize, AnchorSerialize, Default, PartialEq)]
7pub struct MerkleTreeSequenceNumber {
8 pub pubkey: Pubkey,
9 pub seq: u64,
10}
11
12#[derive(Debug, Clone, AnchorDeserialize, AnchorSerialize, Default, PartialEq)]
13pub struct PublicTransactionEvent {
14 pub input_compressed_account_hashes: Vec<[u8; 32]>,
15 pub output_compressed_account_hashes: Vec<[u8; 32]>,
16 pub output_compressed_accounts: Vec<OutputCompressedAccountWithPackedContext>,
17 pub output_leaf_indices: Vec<u32>,
18 pub sequence_numbers: Vec<MerkleTreeSequenceNumber>,
19 pub relay_fee: Option<u64>,
20 pub is_compress: bool,
21 pub compress_or_decompress_lamports: Option<u64>,
22 pub pubkey_array: Vec<Pubkey>,
23 pub message: Option<Vec<u8>>,
24}