fn admin(env: soroban_sdk::Env) -> Result
Returns contract version.
fn version(env: soroban_sdk::Env) -> u32
fn treasury(env: soroban_sdk::Env) -> Result
fn get_claim(env: soroban_sdk::Env, claim_id: u64) -> Result
Admin records that treasury paid this claim (stores payout reference hash).
fn mark_paid(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
claim_id: u64,
payout_ref: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn government(
env: soroban_sdk::Env,
) -> Result
fn claim_count(env: soroban_sdk::Env) -> u64
Admin cancels a pending or approved claim.
fn cancel_claim(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
claim_id: u64,
) -> Result<(), soroban_sdk::Error>
Tourist submits a new claim. Claimant must sign the transaction.
fn submit_claim(
env: soroban_sdk::Env,
claimant: soroban_sdk::Address,
amount: i128,
receipt_hash: soroban_sdk::BytesN<32>,
country_code: soroban_sdk::Symbol,
) -> Result
Runs once at deploy. Sets admin and treasury reference addresses.
fn __constructor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
treasury: soroban_sdk::Address,
government: soroban_sdk::Address,
)
Admin approves a pending claim for payout.
fn approve_claim(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
claim_id: u64,
) -> Result<(), soroban_sdk::Error>
Admin blacklists a claim and blocks the claimant wallet from future submissions.
fn blacklist_claim(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
claim_id: u64,
) -> Result<(), soroban_sdk::Error>
Government rejects the claim after verification.
fn government_reject(
env: soroban_sdk::Env,
gov: soroban_sdk::Address,
claim_id: u64,
government_decision_ref: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
Government approves the claim after verification and authorizes reimbursement.
fn government_approve(
env: soroban_sdk::Env,
gov: soroban_sdk::Address,
claim_id: u64,
government_decision_ref: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
Gemetra/admin submits the verified claim package to the government/tax authority.
fn submit_to_government(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
claim_id: u64,
government_submission_ref: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>
fn is_wallet_blacklisted(env: soroban_sdk::Env, wallet: soroban_sdk::Address) -> bool
Government settles reimbursement back to Gemetra treasury. (We store the reimbursement reference hash; actual XLM settlement remains external today.)
fn mark_treasury_reimbursed(
env: soroban_sdk::Env,
gov: soroban_sdk::Address,
claim_id: u64,
treasury_reimbursement_ref: soroban_sdk::BytesN<32>,
) -> Result<(), soroban_sdk::Error>