Mark a PayNote as paid. In production this would be called by the backend listener after it detects a real Stellar payment, or by a trusted oracle/auth flow — for now it's an open function during dev.
fn mark_paid(
env: soroban_sdk::Env,
id: u64,
paid_amount: i128,
paid_asset: soroban_sdk::Symbol,
) -> PayNote
Fetch a PayNote by id. Panics if it doesn't exist.
fn get_paynote(env: soroban_sdk::Env, id: u64) -> PayNote
Explicitly check and update expiry status (useful for a cron-style call from the backend, separate from the auto-check in get_paynote).
fn check_expiry(env: soroban_sdk::Env, id: u64) -> PayNote
Create a new PayNote. Returns the new PayNote's id.
fn create_paynote(
env: soroban_sdk::Env,
creator: soroban_sdk::Address,
amount: i128,
asset: soroban_sdk::Symbol,
description: soroban_sdk::String,
expires_at: u64,
) -> u64