fn pause(env: soroban_sdk::Env) -> Result<(), PaymentError>
fn unpause(env: soroban_sdk::Env) -> Result<(), PaymentError>
fn add_keeper(
env: soroban_sdk::Env,
keeper: soroban_sdk::Address,
) -> Result<(), PaymentError>
Initialize the Payment Engine with all dependent contract addresses.
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
auth_manager: soroban_sdk::Address,
sub_factory: soroban_sdk::Address,
token_wrapper: soroban_sdk::Address,
fee_recipient: soroban_sdk::Address,
fee_bps: u32,
) -> Result<(), PaymentError>
fn update_fee(env: soroban_sdk::Env, new_fee_bps: u32) -> Result<(), PaymentError>
fn total_volume(env: soroban_sdk::Env) -> i128
Mark a subscription as past due (called when payment fails).
fn mark_past_due(
env: soroban_sdk::Env,
subscription_id: soroban_sdk::String,
) -> Result<(), PaymentError>
fn total_payments(env: soroban_sdk::Env) -> u64
Execute a payment for a subscription. CRITICAL FUNCTION.
Uses (subscription_id, payment_number) to prevent double execution
fn execute_payment(
env: soroban_sdk::Env,
subscription_id: soroban_sdk::String,
) -> Result
fn get_subscription(
env: soroban_sdk::Env,
subscription_id: soroban_sdk::String,
) -> Result
Pause a subscription. Can be called by user or merchant.
fn pause_subscription(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
subscription_id: soroban_sdk::String,
) -> Result<(), PaymentError>
Cancel a subscription. Only the subscriber can cancel.
fn cancel_subscription(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
subscription_id: soroban_sdk::String,
) -> Result<(), PaymentError>
Create a new subscription. The user subscribes to a merchant's plan.
fn create_subscription(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
plan_id: soroban_sdk::String,
merchant: soroban_sdk::Address,
token: soroban_sdk::Address,
amount: i128,
interval: u64,
max_payments: u32,
) -> Result
Resume a paused subscription. Only the user can resume.
fn resume_subscription(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
subscription_id: soroban_sdk::String,
) -> Result<(), PaymentError>
fn get_user_subscriptions(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> soroban_sdk::Vec
fn get_merchant_subscriptions(
env: soroban_sdk::Env,
merchant: soroban_sdk::Address,
) -> soroban_sdk::Vec