Admin swaps the contract's executable WASM. Preserves storage. Mainnet escape hatch for bug fixes — no redeploy = no new contract ID = no state migration.
fn upgrade(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
new_wasm_hash: soroban_sdk::BytesN<32>,
)
fn has_rated(
env: soroban_sdk::Env,
vendor: soroban_sdk::Address,
tx_hash: soroban_sdk::BytesN<32>,
) -> bool
fn get_rating(
env: soroban_sdk::Env,
vendor: soroban_sdk::Address,
tx_hash: soroban_sdk::BytesN<32>,
) -> Rating
fn get_vendor(env: soroban_sdk::Env, wallet: soroban_sdk::Address) -> VendorRecord
fn initialize(env: soroban_sdk::Env, admin: soroban_sdk::Address)
fn apply_vendor(
env: soroban_sdk::Env,
wallet: soroban_sdk::Address,
market_id: soroban_sdk::String,
name: soroban_sdk::String,
stall_number: soroban_sdk::String,
phone: soroban_sdk::String,
product_type: soroban_sdk::String,
)
fn vendor_count(env: soroban_sdk::Env) -> u64
fn pending_count(env: soroban_sdk::Env) -> u32
fn reject_vendor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
wallet: soroban_sdk::Address,
)
fn submit_rating(
env: soroban_sdk::Env,
customer: soroban_sdk::Address,
vendor: soroban_sdk::Address,
tx_hash: soroban_sdk::BytesN<32>,
stars: u32,
comment_hash: soroban_sdk::BytesN<32>,
)
fn approve_vendor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
wallet: soroban_sdk::Address,
)
Admin reports a defaulted utang. Increments vendor's defaults-received count and customer's defaults-history count. Idempotent only via caller — utang-escrow's mark_default is the canonical source of truth for which utang defaulted; this contract just mirrors aggregate counts for reputation.
fn report_default(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
vendor: soroban_sdk::Address,
customer: soroban_sdk::Address,
)
fn update_profile(
env: soroban_sdk::Env,
vendor: soroban_sdk::Address,
name: soroban_sdk::String,
stall_number: soroban_sdk::String,
phone: soroban_sdk::String,
product_type: soroban_sdk::String,
)
fn get_all_vendors(
env: soroban_sdk::Env,
limit: u32,
offset: u32,
) -> soroban_sdk::Vec
fn get_application(
env: soroban_sdk::Env,
wallet: soroban_sdk::Address,
) -> VendorApplication
fn increment_stats(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
vendor: soroban_sdk::Address,
amount: i128,
)
fn register_vendor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
wallet: soroban_sdk::Address,
market_id: soroban_sdk::String,
name: soroban_sdk::String,
stall_number: soroban_sdk::String,
phone: soroban_sdk::String,
product_type: soroban_sdk::String,
) -> u64
fn deactivate_vendor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
wallet: soroban_sdk::Address,
)
fn get_vendor_rating(env: soroban_sdk::Env, vendor: soroban_sdk::Address) -> (u32, u32)
fn get_pending_vendors(
env: soroban_sdk::Env,
limit: u32,
offset: u32,
) -> soroban_sdk::Vec
fn vendor_defaults_received(env: soroban_sdk::Env, vendor: soroban_sdk::Address) -> u32
fn customer_defaults_history(
env: soroban_sdk::Env,
customer: soroban_sdk::Address,
) -> u32