Contract 222ac2d82f6b9fb26cdabb73a2fae473ea47954a9d191d17ed7fdd0af588aef1

← Back to Index 📥 Download WASM

Meta

cliver 25.2.0#
rssdkver 23.4.1#e671b396f8bacf1370925f722df158b31c0baae5
rsver 1.94.0

Instances

  • CDKFKTXPXY6KOHFBXDRPC5XCKTYBTGYPJF7EQNDATMA2QM4B7DAGEDRL

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

Get quest definition.

Arguments

  • quest_id - Quest ID to query

Returns

Quest 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.

Arguments

  • caller - Address initiating the creation (must have admin role)
  • quest_type - Type of quest
  • name - Quest name
  • description - Quest description
  • target_value - Target value to complete (e.g., number of regions, weeks)
  • reward_points - Points awarded upon completion
  • expires_at - Expiration timestamp (0 = no expiration)

Returns

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.

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,
)
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.

Arguments

  • caller - Address initiating the update (must have recorder role)
  • user - User address
  • quest_id - Quest ID
  • progress_value - New progress value

Returns

True 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.

Arguments

  • caller - Address initiating the update (must have admin role)
  • quest_id - Quest ID
  • is_active - New active status
fn 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.

Arguments

  • user - User address
  • quest_id - Quest ID

Returns

Quest 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.

Arguments

  • user - User address

Returns

Vector 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.

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) ▶