Skip to main content

sla_escrow_api/state/
escrow.rs

1use super::EscrowAccount;
2use steel::*;
3
4#[repr(C)]
5#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
6pub struct Escrow {
7    pub mint: Pubkey,            // 32 bytes - kept for developer experience
8    pub escrow_tokens: Pubkey,   // 32 bytes - ATA for SPL tokens, SOL storage PDA for SOL
9    pub open_at: i64,            // 8 bytes
10    pub fee_balance: u64,        // 8 bytes
11    pub token_liquidity: u64,    // 8 bytes
12    pub min_payment_amount: u64, // 8 bytes
13    pub max_payment_amount: u64, // 8 bytes
14    pub min_fee_amount: u64,     // 8 bytes - Minimum absolute fee constraint
15    pub fee_bps: u16,            // 2 bytes
16    pub oracle_fee_bps: u16,     // 2 bytes — oracle tip on release/refund (0 = disabled)
17    pub paused: u8,              // 1 byte
18    pub _padding: [u8; 3],       // 3 bytes padding
19}
20
21account!(EscrowAccount, Escrow);