Data Structures
Protocol

Data Structures

Soroban contract types: Pool, Member, Payment, Distribution, and Enums.

Complete Rust source code for all data structures defined in contracts/splitpay/src/types.rs.

Protocol Enums

rustcontracts/splitpay/src/types.rs
#[contracttype]
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
#[repr(u32)]
pub enum PoolStatus {
Active = 1,
Inactive = 2,
}
#[contracttype]
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
#[repr(u32)]
pub enum PaymentStatus {
Pending = 1,
Settled = 2,
}

Protocol Structs

rustcontracts/splitpay/src/types.rs
#[contracttype]
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Pool {
pub id: u64,
pub owner: Address,
pub asset: Address,
pub status: PoolStatus,
pub created_at: u64,
}
#[contracttype]
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Member {
pub pool_id: u64,
pub address: Address,
pub share_bps: u32,
}
#[contracttype]
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Payment {
pub id: u64,
pub pool_id: u64,
pub payer: Address,
pub asset: Address,
pub amount: i128,
pub status: PaymentStatus,
pub created_at: u64,
}
#[contracttype]
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Distribution {
pub payment_id: u64,
pub recipient: Address,
pub amount: i128,
pub share_bps: u32,
}
#[contracttype]
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ContractConfig {
pub admin: Address,
}