Contract 3eb9643f927f5992d68acdf0253d96e0ab56014e5a8200f97e68d271bd7193a2

← Back to Index 📥 Download WASM

Meta

cliver 25.2.0#
rssdkver 23.4.1#e671b396f8bacf1370925f722df158b31c0baae5
rsver 1.94.0

Instances

  • CDIORH7M2D3765E2DFKYHN7OVIU45M37A6AUV72EEMTIOQFABWEZSXEC

Interface

fn has_role(
    env: soroban_sdk::Env,
    account: soroban_sdk::Address,
    role: soroban_sdk::Symbol,
) -> Option
fn get_admin(env: soroban_sdk::Env) -> Option
fn grant_role(
    env: soroban_sdk::Env,
    account: soroban_sdk::Address,
    role: soroban_sdk::Symbol,
    caller: soroban_sdk::Address,
)
fn revoke_role(
    env: soroban_sdk::Env,
    account: soroban_sdk::Address,
    role: soroban_sdk::Symbol,
    caller: soroban_sdk::Address,
)

Get referral record for a user.

Arguments

  • referred - Address of the referred user

Returns

Referral record if found

fn get_referral(
    env: soroban_sdk::Env,
    referred: soroban_sdk::Address,
) -> Option

Initialize the Referral contract.

Arguments

  • admin - Address that will have admin privileges
  • reputation_contract - Address of the reputation contract for rewards

Errors

  • Error::AlreadyInitialized - If the contract has already been initialized
fn __constructor(
    env: soroban_sdk::Env,
    admin: soroban_sdk::Address,
    reputation_contract: soroban_sdk::Address,
)

Get list of users referred by a referrer.

Arguments

  • referrer - Address of the referrer

Returns

Vector of referred user addresses

fn get_referrals(
    env: soroban_sdk::Env,
    referrer: soroban_sdk::Address,
) -> soroban_sdk::Vec
fn renounce_role(
    env: soroban_sdk::Env,
    role: soroban_sdk::Symbol,
    caller: soroban_sdk::Address,
)
fn get_role_admin(
    env: soroban_sdk::Env,
    role: soroban_sdk::Symbol,
) -> Option

Mark referred user as onboarded.

Requires recorder role.

Arguments

  • caller - Address initiating the update (must have recorder role)
  • referred - Address of the referred user

Returns

Reward points awarded to referrer

fn mark_onboarded(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    referred: soroban_sdk::Address,
) -> u32
fn renounce_admin(env: soroban_sdk::Env)
fn set_role_admin(
    env: soroban_sdk::Env,
    role: soroban_sdk::Symbol,
    admin_role: soroban_sdk::Symbol,
)

Create a referral relationship.

Requires recorder role.

Arguments

  • caller - Address initiating the creation (must have recorder role)
  • referrer - Address of the referrer
  • referred - Address of the referred user

Errors

  • Error::SelfReferral - If user tries to refer themselves
  • Error::ReferralAlreadyExists - If referral already exists
fn create_referral(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    referrer: soroban_sdk::Address,
    referred: soroban_sdk::Address,
)
fn get_role_member(
    env: soroban_sdk::Env,
    role: soroban_sdk::Symbol,
    index: u32,
) -> soroban_sdk::Address

Record a donation by a referred user.

Requires recorder role.

Arguments

  • caller - Address initiating the record (must have recorder role)
  • referred - Address of the referred user

Returns

Reward points awarded to referrer (if first donation)

fn record_donation(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    referred: soroban_sdk::Address,
) -> u32
fn transfer_admin_role(
    env: soroban_sdk::Env,
    new_admin: soroban_sdk::Address,
    live_until_ledger: u32,
)
fn accept_admin_transfer(env: soroban_sdk::Env)
fn get_role_member_count(env: soroban_sdk::Env, role: soroban_sdk::Symbol) -> u32

Get referrer statistics.

Arguments

  • referrer - Address of the referrer

Returns

Referrer statistics if found

fn get_referrer_statistics(
    env: soroban_sdk::Env,
    referrer: soroban_sdk::Address,
) -> Option

Set reputation contract address.

Requires admin role.

Arguments

  • caller - Admin address
  • reputation_contract - Reputation contract address
fn set_reputation_contract_address(
    env: soroban_sdk::Env,
    caller: soroban_sdk::Address,
    reputation_contract: soroban_sdk::Address,
)

Imports

WebAssembly Text (WAT) ▶