use anchor_lang::prelude::*; #[account] #[derive(InitSpace)] pub struct ResolverEntry { pub authority: Pubkey, pub resolver_type: ResolverType, pub acceptance_policy: AcceptancePolicy, #[max_len(64)] pub name: String, #[max_len(256)] pub description: String, pub fee_bps: u16, pub fee_recipient: Pubkey, #[max_len(256)] pub metadata_uri: String, pub total_resolved: u64, pub ruled_for_buyer: u64, pub ruled_for_seller: u64, pub registered_at: i64, } #[derive(AnchorSerialize, AnchorDeserialize, Clone, PartialEq, InitSpace, Debug)] pub enum ResolverType { CentralAuthority, JuryDAO, MAD, Algorithmic, Multisig, } #[derive(AnchorSerialize, AnchorDeserialize, Clone, PartialEq, InitSpace, Debug)] pub enum AcceptancePolicy { Open, SignatureGated, ProgramGated, } /// Passed to update_stats; mirrors the Escrow program's Winner enum. #[derive(AnchorSerialize, AnchorDeserialize, Clone, PartialEq)] pub enum Ruling { Buyer, Seller, }