universalsettle-api 0.1.2

X402-inspired settlement program for any token on Solana
Documentation
use steel::*;

use super::SettlementAccount;

/// SplitVault holds the identity of a seller's vault.
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
pub struct SplitVault {
    /// The destination wallet for the seller's revenue (signer for the vault)
    pub seller: Pubkey, // 32 bytes

    /// Total lamports diverted for provisioning recovery.
    pub sol_recovered: u64, // 8 bytes

    /// Total token units diverted for provisioning recovery.
    pub spl_recovered: u64, // 8 bytes

    /// Whether the one-time provisioning fee (rent recovery) has been satisfied.
    /// 0 = Not provisioned, 1 = Provisioned.
    pub is_provisioned: u8, // 1 byte

    /// PDA bump seed
    pub bump: u8, // 1 byte

    /// Whether the seller provisioned the vault themselves (Sovereign).
    /// Used to apply discounted fee bps.
    pub is_sovereign: u8, // 1 byte

    /// Padding for 8-byte alignment (Minimum wrap around 8)
    pub _padding: [u8; 5], // Pad to 56 bytes total
}

account!(SettlementAccount, SplitVault);