use anchor_lang::prelude::*; #[event] #[derive(Clone, Debug)] pub struct RegistryInitialized { pub registry: Pubkey, pub global_admin: Pubkey, pub eua_mint: Pubkey, pub ghg_mint: Pubkey, } #[event] #[derive(Clone, Debug)] pub struct LocalAdminRegistered { pub local_admin: Pubkey, pub admin_pubkey: Pubkey, pub state_name: String, pub registry: Pubkey, pub total_local_admins: u32, } #[event] #[derive(Clone, Debug)] pub struct CompanyRegistered { pub company: Pubkey, pub company_name: String, pub company_admin: Pubkey, pub local_admin: Pubkey, pub eua_vault: Pubkey, pub ghg_vault: Pubkey, pub usdc_vault: Pubkey, pub registry: Pubkey, pub total_companies: u32, pub local_admin_companies_managed: u32, } #[event] #[derive(Clone, Debug)] pub struct EuaMintedToVault { pub company: Pubkey, pub company_name: String, pub eua_vault: Pubkey, pub eua_balance: u64, pub amount: u64, pub minted_by: Pubkey, pub eua_mint: Pubkey, } #[event] #[derive(Clone, Debug)] pub struct GhgMintedToVault { pub company: Pubkey, pub company_name: String, pub ghg_vault: Pubkey, pub amount: u64, pub ghg_balance: u64, pub local_admin: Pubkey, pub local_admin_state: String, pub verification_note: String, pub ghg_mint: Pubkey, } #[event] #[derive(Clone, Debug)] pub struct EuaTransferredBetweenVaults { pub from_company: Pubkey, pub from_company_name: String, pub to_company: Pubkey, pub to_company_name: String, pub from_vault: Pubkey, pub to_vault: Pubkey, pub amount: u64, pub authorized_by: Pubkey, } #[event] #[derive(Clone, Debug)] pub struct CompanyStatusUpdated { pub company: Pubkey, pub company_name: String, pub is_active: bool, pub updated_by: Pubkey, pub registry: Pubkey, } #[event] #[derive(Clone, Debug)] pub struct LocalAdminStatusUpdated { pub local_admin: Pubkey, pub state_name: String, pub is_active: bool, pub updated_by: Pubkey, pub registry: Pubkey, }