Retrieve escrow details
fn get_escrow(
env: soroban_sdk::Env,
escrow_id: u32,
) -> Result
Cancel an escrow (dispute resolution — manager only)
fn cancel_escrow(env: soroban_sdk::Env, escrow_id: u32) -> Result<(), ContractError>
Finance approval of payment(s)
fn finance_approve(env: soroban_sdk::Env, escrow_id: u32) -> Result<(), ContractError>
Manager approval of payment(s)
fn manager_approve(env: soroban_sdk::Env, escrow_id: u32) -> Result<(), ContractError>
Finalize payment once both approvals are obtained
fn finalize_payment(
env: soroban_sdk::Env,
escrow_id: u32,
) -> Result, ContractError>
Submit hours proof with Ed25519 signature (simulates oracle integration)
fn submit_hours_proof(
env: soroban_sdk::Env,
escrow_id: u32,
payment_id: u32,
hours_logged: i128,
signature: soroban_sdk::Bytes,
) -> Result<(), ContractError>
Initialize a multi-signature escrow with payment schedules
fn initialize_multi_sig_escrow(
env: soroban_sdk::Env,
manager: soroban_sdk::Address,
finance_approver: soroban_sdk::Address,
payments: soroban_sdk::Vec,
) -> Result