Contract 06ff8ea2bb326e53993bf75571f17636380210b1bf450714b9672f2b234b0be9

← Back to Index 📥 Download WASM

Meta

cliver 27.0.0#5a7c5fe76530bf4248477ac812fc757146b98cc4
rssdkver 27.0.0-rc.1#6656a27d81fe6832919c49f226b9fc76b7dae5c1
rsver 1.94.1

Instances

  • CAQCA3H4UIGESIJZE3LF7TYKQY6TBQV2OQ7OVBRRRRIARX5JOTXZUNVT

Interface

Subscribe a farm to a parametric insurance policy for a specific season

fn subscribe(
    env: soroban_sdk::Env,
    farmer: soroban_sdk::Address,
    farm_id: soroban_sdk::Symbol,
    region: soroban_sdk::Symbol,
    season: soroban_sdk::Symbol,
    premium: i128,
) -> Result<(), soroban_sdk::Error>

Initialize the contract with admin, token address, oracle parameters, and mainnet/testnet flag

fn initialize(
    env: soroban_sdk::Env,
    admin_keys: soroban_sdk::Vec>,
    admin_threshold: u32,
    xlm_token: soroban_sdk::Address,
    quorum: u32,
    is_mainnet_mode: bool,
    single_oracle: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Set the active status of a weather oracle (Testnet consensus)

fn set_oracle(
    env: soroban_sdk::Env,
    payload: soroban_sdk::Bytes,
    signatures: soroban_sdk::Vec<(soroban_sdk::BytesN<32>, soroban_sdk::BytesN<64>)>,
    oracle: soroban_sdk::Address,
    is_active: bool,
) -> Result<(), soroban_sdk::Error>

Claim payout based on dynamic network-configured parametric curves for a specific farm and season

fn claim_payout(
    env: soroban_sdk::Env,
    farmer: soroban_sdk::Address,
    farm_id: soroban_sdk::Symbol,
    season: soroban_sdk::Symbol,
    typhoon_id: soroban_sdk::Symbol,
) -> Result

Get details of LP shares

fn get_lp_shares(env: soroban_sdk::Env, lp: soroban_sdk::Address) -> i128

Official KYC/RSBSA Verification of farmers

fn verify_farmer(
    env: soroban_sdk::Env,
    payload: soroban_sdk::Bytes,
    signatures: soroban_sdk::Vec<(soroban_sdk::BytesN<32>, soroban_sdk::BytesN<64>)>,
    farmer: soroban_sdk::Address,
    is_verified: bool,
) -> Result<(), soroban_sdk::Error>

Check if contract is initialized

fn is_initialized(env: soroban_sdk::Env) -> bool

Donors can deposit XLM into the public premium subsidy pool

fn deposit_subsidy(
    env: soroban_sdk::Env,
    donor: soroban_sdk::Address,
    amount: i128,
) -> Result<(), soroban_sdk::Error>

Check if running in mainnet mode

fn is_mainnet_mode(env: soroban_sdk::Env) -> bool

Repay a microloan

fn repay_microloan(
    env: soroban_sdk::Env,
    farmer: soroban_sdk::Address,
    loan_id: soroban_sdk::Symbol,
    amount: i128,
) -> Result<(), soroban_sdk::Error>

Set the DAO Address (Admin transition)

fn set_dao_address(
    env: soroban_sdk::Env,
    payload: soroban_sdk::Bytes,
    signatures: soroban_sdk::Vec<(soroban_sdk::BytesN<32>, soroban_sdk::BytesN<64>)>,
    dao: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Transfer reinsurance bond shares to another address (Tokenized Bond Trading)

fn transfer_shares(
    env: soroban_sdk::Env,
    from: soroban_sdk::Address,
    to: soroban_sdk::Address,
    amount: i128,
) -> Result<(), soroban_sdk::Error>

Set the single authorized oracle (Mainnet mode)

fn set_single_oracle(
    env: soroban_sdk::Env,
    payload: soroban_sdk::Bytes,
    signatures: soroban_sdk::Vec<(soroban_sdk::BytesN<32>, soroban_sdk::BytesN<64>)>,
    single_oracle: soroban_sdk::Address,
) -> Result<(), soroban_sdk::Error>

Reinsurance pool deposits (Yield Seekers back the pool to gain interest from premiums)

fn deposit_reinsurance(
    env: soroban_sdk::Env,
    lp: soroban_sdk::Address,
    amount: i128,
) -> Result

Get total subsidy pool balance

fn get_subsidy_balance(env: soroban_sdk::Env) -> i128

Originate an uncollateralized rebuilding micro-loan

fn originate_microloan(
    env: soroban_sdk::Env,
    farmer: soroban_sdk::Address,
    loan_id: soroban_sdk::Symbol,
    amount: i128,
    yield_prediction: u32,
) -> Result<(), soroban_sdk::Error>

DAO ONLY: Update premium rate multiplier for a geospatial risk zone

fn update_premium_rate(
    env: soroban_sdk::Env,
    region: soroban_sdk::Symbol,
    multiplier: u32,
) -> Result<(), soroban_sdk::Error>

Set the consensus quorum threshold

fn set_quorum_threshold(
    env: soroban_sdk::Env,
    payload: soroban_sdk::Bytes,
    signatures: soroban_sdk::Vec<(soroban_sdk::BytesN<32>, soroban_sdk::BytesN<64>)>,
    threshold: u32,
) -> Result<(), soroban_sdk::Error>
fn verify_and_liquidate(
    env: soroban_sdk::Env,
    proof: soroban_sdk::Bytes,
    public_inputs: soroban_sdk::Vec,
    recipient: soroban_sdk::Address,
    amount: u128,
) -> Result

Reinsurance pool withdrawals (burning LP shares for XLM)

fn withdraw_reinsurance(
    env: soroban_sdk::Env,
    lp: soroban_sdk::Address,
    shares: i128,
) -> Result

Oracles submit damage estimation reports (Combined Oracle + AI) for a typhoon in a region, along with raw wind speed

fn submit_weather_report(
    env: soroban_sdk::Env,
    oracle: soroban_sdk::Address,
    typhoon_id: soroban_sdk::Symbol,
    region: soroban_sdk::Symbol,
    damage_percentage: u32,
    wind_speed: u32,
) -> Result<(), soroban_sdk::Error>

Admin Multi-sig: Update parametric payout bands for a region

fn update_parametric_bands(
    env: soroban_sdk::Env,
    payload: soroban_sdk::Bytes,
    signatures: soroban_sdk::Vec<(soroban_sdk::BytesN<32>, soroban_sdk::BytesN<64>)>,
    region: soroban_sdk::Symbol,
    bands: soroban_sdk::Vec,
) -> Result<(), soroban_sdk::Error>

Get total reinsurance shares

fn get_total_reinsurance_shares(env: soroban_sdk::Env) -> i128

Get total reinsurance deposited

fn get_total_reinsurance_deposited(env: soroban_sdk::Env) -> i128

Imports

WebAssembly Text (WAT) ▶