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);