Initialize the contract with owner and token addresses
fn init(
env: soroban_sdk::Env,
owner_pubkey: soroban_sdk::Address,
native_asset: soroban_sdk::Address,
usdc_asset: soroban_sdk::Address,
eurc_asset: soroban_sdk::Address,
) -> Result<(), ContractError>
Purchase a nanosubscription using the provided route quote
fn buy(
env: soroban_sdk::Env,
route_quote: soroban_sdk::Bytes,
route_quote_signature: soroban_sdk::BytesN<64>,
requested_start_time: i64,
buyer: soroban_sdk::Address,
) -> Result<(), ContractError>
Withdraw accumulated fees to a specified recipient
fn withdraw_fees(
env: soroban_sdk::Env,
recipient: soroban_sdk::Address,
amount: i128,
currency: u32,
) -> Result<(), ContractError>
Update the fee percentage (in basis points)
fn update_fee_percentage(
env: soroban_sdk::Env,
new_fee_bps: u32,
) -> Result<(), ContractError>
Get current configuration (view function)
fn get_config(
env: soroban_sdk::Env,
) -> (
soroban_sdk::Address,
soroban_sdk::Address,
soroban_sdk::Address,
soroban_sdk::Address,
u32,
)