45 lines
1.0 KiB
Rust
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,
|
|
}
|