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.
referred - Address of the referred userReferral record if found
fn get_referral(
env: soroban_sdk::Env,
referred: soroban_sdk::Address,
) -> Option
Initialize the Referral contract.
admin - Address that will have admin privilegesreputation_contract - Address of the reputation contract for rewardsError::AlreadyInitialized - If the contract has already been initializedfn __constructor(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
reputation_contract: soroban_sdk::Address,
)
Get list of users referred by a referrer.
referrer - Address of the referrerVector 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.
caller - Address initiating the update (must have recorder role)referred - Address of the referred userReward 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.
caller - Address initiating the creation (must have recorder role)referrer - Address of the referrerreferred - Address of the referred userError::SelfReferral - If user tries to refer themselvesError::ReferralAlreadyExists - If referral already existsfn 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.
caller - Address initiating the record (must have recorder role)referred - Address of the referred userReward 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.
referrer - Address of the referrerReferrer statistics if found
fn get_referrer_statistics(
env: soroban_sdk::Env,
referrer: soroban_sdk::Address,
) -> Option
Set reputation contract address.
Requires admin role.
caller - Admin addressreputation_contract - Reputation contract addressfn set_reputation_contract_address(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
reputation_contract: soroban_sdk::Address,
)