fn has_role(
env: soroban_sdk::Env,
account: soroban_sdk::Address,
role: soroban_sdk::Symbol,
) -> Option
fn get_admin(env: soroban_sdk::Env) -> Option
Get quest definition.
quest_id - Quest ID to queryQuest definition if found
fn get_quest(env: soroban_sdk::Env, quest_id: u32) -> 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,
)
Create a new quest.
Requires admin role.
caller - Address initiating the creation (must have admin role)quest_type - Type of questname - Quest namedescription - Quest descriptiontarget_value - Target value to complete (e.g., number of regions, weeks)reward_points - Points awarded upon completionexpires_at - Expiration timestamp (0 = no expiration)The quest ID
fn create_quest(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
quest_type: QuestType,
name: soroban_sdk::String,
description: soroban_sdk::String,
target_value: u32,
reward_points: u32,
expires_at: u64,
) -> u32
Initialize the Quest 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,
)
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
fn renounce_admin(env: soroban_sdk::Env)
fn set_role_admin(
env: soroban_sdk::Env,
role: soroban_sdk::Symbol,
admin_role: soroban_sdk::Symbol,
)
fn get_role_member(
env: soroban_sdk::Env,
role: soroban_sdk::Symbol,
index: u32,
) -> soroban_sdk::Address
Update user's quest progress.
Requires recorder role.
caller - Address initiating the update (must have recorder role)user - User addressquest_id - Quest IDprogress_value - New progress valueTrue if quest was completed, false otherwise
fn update_progress(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
user: soroban_sdk::Address,
quest_id: u32,
progress_value: u32,
) -> bool
Set quest active status.
Requires admin role.
caller - Address initiating the update (must have admin role)quest_id - Quest IDis_active - New active statusfn set_quest_active(
env: soroban_sdk::Env,
caller: soroban_sdk::Address,
quest_id: u32,
is_active: bool,
)
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 user's progress on a quest.
user - User addressquest_id - Quest IDQuest progress if found
fn get_user_quest_progress(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
quest_id: u32,
) -> Option
Get user's completed quest IDs.
user - User addressVector of completed quest IDs
fn get_user_completed_quests(
env: soroban_sdk::Env,
user: soroban_sdk::Address,
) -> soroban_sdk::Vec
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,
)