sla-escrow-api 0.2.6

SLA-Escrow: Service Level Agreement Enforcer for AI Agents
Documentation
use super::EscrowAccount;
use steel::*;

#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
pub struct Payment {
    pub payment_uid: [u8; 32],    // 32 bytes - payment unique identifier
    pub escrow: Pubkey,           // 32 bytes
    pub buyer: Pubkey,            // 32 bytes
    pub seller: Pubkey,           // 32 bytes
    pub mint: Pubkey,             // 32 bytes
    pub oracle_authority: Pubkey, // 32 bytes - oracle authority (Pubkey::default() for "None")
    pub sla_hash: [u8; 32],       // 32 bytes - hashed AI prompt / SLA requirements
    pub delivery_hash: [u8; 32],  // 32 bytes - hashed AI delivery payload
    pub amount: u64,              // 8 bytes

    pub created_at: i64,         // 8 bytes
    pub expires_at: i64,         // 8 bytes
    pub closed_at: i64,          // 8 bytes
    pub delivery_timestamp: i64, // 8 bytes
    pub state: u8,               // 1 byte
    pub resolution_state: u8,    // 1 byte  - 0: Pending, 1: Approved, 2: Rejected
    pub _padding: [u8; 6],       // 6 bytes padding for 8-byte alignment
}

account!(EscrowAccount, Payment);