Execute the atomic XLM/USDC swap for a matched pair. Called ONLY by MatchingEngine — no other caller can release escrow funds.
Buyer deposited USDC to buy XLM → seller receives USDC. Seller deposited XLM to sell → buyer receives XLM.
fn settle(
env: soroban_sdk::Env,
buyer_nullifier: soroban_sdk::BytesN<32>,
seller_nullifier: soroban_sdk::BytesN<32>,
buyer_address: soroban_sdk::Address,
seller_address: soroban_sdk::Address,
xlm_amount: i128,
usdc_amount: i128,
)
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
matching_engine: soroban_sdk::Address,
escrow_vault: soroban_sdk::Address,
xlm_token: soroban_sdk::Address,
usdc_token: soroban_sdk::Address,
)
fn get_settlement_count(env: soroban_sdk::Env) -> u64
fn get_total_volume_xlm(env: soroban_sdk::Env) -> i128
fn get_total_volume_usdc(env: soroban_sdk::Env) -> i128