| initialize |
env: Env, admin: Address, usdc_token: Address, eurc_token: Address, xlm_token: Address, |
Result<(), ContractError> |
Access: Anyone |
| get_version |
env: Env |
soroban_sdk::String |
Access: Anyone |
| set_admin |
env: Env, new_admin: Address |
Result<(), ContractError> |
Access: Admin only |
| update_fee_rate |
env: Env, rate: u32 |
Result<(), ContractError> |
Access: Admin only |
| update_max_discount |
env: Env, rate: u32 |
Result<(), ContractError> |
Access: Admin only |
| set_distribution_contract |
env: Env, distribution_contract: Address, |
Result<(), ContractError> |
Access: Admin only |
| set_price_oracle |
env: Env, oracle: Address |
Result<(), ContractError> |
Access: Admin only |
| get_price_oracle |
env: Env |
Option |
Access: Anyone |
| set_max_oracle_age |
env: Env, max_age_ledgers: u64 |
Result<(), ContractError> |
Access: Admin only |
| get_max_oracle_age |
env: Env |
u64 |
Access: Anyone |
| add_token |
env: Env, token: Address, decimals: u32 |
Result<(), ContractError> |
Access: Admin only |
| remove_token |
env: Env, token: Address |
Result<(), ContractError> |
Access: Admin only |
| get_token_decimals |
env: Env, token: Address |
Option |
/// Access: Anyone |
| pause |
env: Env |
Result<(), ContractError> |
Access: Admin only |
| unpause |
env: Env |
Result<(), ContractError> |
Access: Admin only |
| upgrade |
env: Env, new_wasm_hash: BytesN<32> |
Result<(), ContractError> |
/// Access: Admin only |
| get_contract_stats |
env: Env |
ContractStats |
Access: Anyone |
| list_invoices_by_submitter |
env: Env, submitter: Address, page: u32, page_size: u32, |
Vec |
Access: Anyone |
| list_invoices_by_lp |
env: Env, lp: Address, page: u32, page_size: u32 |
Vec |
Access: Anyone |
| submit_invoice |
env: Env, freelancer: Address, payer: Address, amount: i128, due_date: u64, discount_rate: u32, token: Address, referral_code: ReferralCode, |
Result<u64, ContractError> |
Access: Submitter only |
| update_invoice |
env: Env, freelancer: Address, invoice_id: u64, amount: i128, due_date: u64, discount_rate: u32, |
Result<(), ContractError> |
Access: Submitter only |
| convert_invoice_token |
env: Env, freelancer: Address, invoice_id: u64, new_token: Address, |
Result<(), ContractError> |
Access: Submitter only |
| submit_invoices_batch |
env: Env, invoices: Vec, |
Result<Vec, ContractError> |
Access: Submitter only |
| get_referral_stats |
env: Env, code: BytesN<32> |
u64 |
Access: Anyone |
| join_fund_queue |
env: Env, lp: Address, invoice_id: u64 |
Result<(), ContractError> |
Access: LP only |
| resolve_fund_queue |
env: Env, invoice_id: u64 |
Result<Address, ContractError> |
Access: Anyone |
| fund_invoice |
env: Env, funder: Address, invoice_id: u64, fund_amount: i128, require_oracle_verification: bool, |
Result<(), ContractError> |
consulted and the existing behaviour is preserved. |
| transfer_invoice |
env: Env, invoice_id: u64, new_freelancer: Address, |
Result<(), ContractError> |
Access: Submitter only |
| transfer_lp_position |
env: Env, invoice_id: u64, new_lp: Address, |
Result<(), ContractError> |
Access: Current LP only |
| cancel_invoice |
env: Env, invoice_id: u64 |
Result<(), ContractError> |
Access: Submitter only |
| expire_invoice |
env: Env, invoice_id: u64 |
Result<(), ContractError> |
Access: Anyone |
| mark_paid |
env: Env, invoice_id: u64, amount: i128 |
Result<(), ContractError> |
Access: Payer only |
| claim_yield |
env: Env, invoice_id: u64 |
Result<i128, ContractError> |
Access: LP only |
| claim_default |
env: Env, funder: Address, invoice_id: u64 |
Result<(), ContractError> |
Access: LP only |
| appeal_default |
env: Env, invoice_id: u64, evidence_hash: BytesN<32>, |
Result<(), ContractError> |
Access: Payer only |
| resolve_appeal |
env: Env, invoice_id: u64, upheld: bool |
Result<(), ContractError> |
Access: Admin only |
| dispute_invoice |
env: Env, invoice_id: u64, reason_hash: BytesN<32>, |
Result<(), ContractError> |
Access: Payer only |
| resolve_dispute |
env: Env, invoice_id: u64, resolution_hash: BytesN<32>, resolution: u32, |
Result<(), ContractError> |
Access: Admin only |
| auto_resolve_dispute |
env: Env, invoice_id: u64 |
Result<(), ContractError> |
Access: Anyone |
| update_config |
env: Env, caller: Address, high_rep_threshold: u32, bonus_bps: u32, min_discount_rate_bps: u32, decay_rate_bps: u32, decay_period_ledgers: u64, dispute_timeout_ledgers: u64, xlm_sac_address: Address, usdc_sac_address: Address, eurc_sac_address: Address, |
Result<(), ContractError> |
No description |
| get_config |
env: Env |
Result<Config, ContractError> |
No description |
| payer_score |
env: Env, payer: Address |
u32 |
Access: Anyone |
| lp_score |
env: Env, lp: Address |
u32 |
Access: Anyone |
| get_top_payers |
env: Env, limit: u32 |
Vec |
Access: Anyone |
| get_reputation |
env: Env, address: Address |
ReputationProfile |
Access: Anyone |
| min_payer_reputation |
env: Env |
u32 |
Access: Anyone |
| set_min_payer_reputation |
env: Env, value: u32 |
Result<(), ContractError> |
Access: Admin only |
| suggested_discount_rate |
env: Env, payer: Address |
u32 |
Access: Anyone |
| get_invoice |
env: Env, invoice_id: u64 |
Result<Invoice, ContractError> |
Access: Anyone |
| get_invoice_count |
env: Env |
u64 |
Access: Anyone |
| query_nft_metadata |
env: Env, invoice_id: u64 |
Optioncrate::nft::InvoiceNftMetadata |
Anyone |
| query_nft_owner |
env: Env, invoice_id: u64 |
Option |
Anyone |