Files
descro/programs/descro_ext_resolvers/src/state.rs
2026-05-26 21:33:32 +02:00

45 lines
1.0 KiB
Rust

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,
}