Upgrades the contract (Admin only)
fn upgrade(env: soroban_sdk::Env, new_wasm_hash: soroban_sdk::BytesN<32>)
Returns the owner of the given token_id, if it exists.
fn owner_of(env: soroban_sdk::Env, token_id: u32) -> Option
Transfers the avatar to a new owner. Panics if the token is soulbound.
fn transfer(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
token_id: u32,
)
Initializes the contract with admin, treasury, and XLD token address.
fn initialize(
env: soroban_sdk::Env,
admin: soroban_sdk::Address,
treasury: soroban_sdk::Address,
xld_token: soroban_sdk::Address,
)
Mints a transferable Master Avatar NFT. Charges 1 XLD (10,000,000 stroops)
fn public_mint(env: soroban_sdk::Env, to: soroban_sdk::Address) -> u32
Returns whether the given token_id is soulbound.
fn is_soulbound(env: soroban_sdk::Env, token_id: u32) -> bool
Returns the total number of minted avatars.
fn total_minted(env: soroban_sdk::Env) -> u32
Mints a soulbound (non-transferable) Master Avatar NFT. Charges 2 XLD (20,000,000 stroops)
fn public_mint_soulbound(env: soroban_sdk::Env, to: soroban_sdk::Address) -> u32