Destroys amount of tokens from from. Updates the total
supply accordingly.
e - Access to the Soroban environment.from - The account whose tokens are destroyed.amount - The amount of tokens to burn.crate::fungible::FungibleTokenError::InsufficientBalance] - When
attempting to burn more tokens than from current balance.crate::fungible::FungibleTokenError::LessThanZero] - When amount < 0.["burn", from: Address][amount: i128]fn burn(env: soroban_sdk::Env, from: soroban_sdk::Address, amount: i128)
fn mint(env: soroban_sdk::Env, to: soroban_sdk::Address, amount: i128)
Returns the name for this token.
e - Access to Soroban environment.fn name(env: soroban_sdk::Env) -> soroban_sdk::String
Returns the symbol for this token.
e - Access to Soroban environment.fn symbol(env: soroban_sdk::Env) -> soroban_sdk::String
Sets the amount of tokens a spender is allowed to spend on behalf of
an owner. Overrides any existing allowance set between spender and
owner.
e - Access to Soroban environment.owner - The address holding the tokens.spender - The address authorized to spend the tokens.amount - The amount of tokens made available to spender.live_until_ledger - The ledger number at which the allowance
expires.FungibleTokenError::InvalidLiveUntilLedger] - Occurs when
attempting to set live_until_ledger that is less than the current
ledger number and greater than 0.FungibleTokenError::LessThanZero] - Occurs when amount < 0.["approve", from: Address, spender: Address][amount: i128, live_until_ledger: u32]fn approve(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
spender: soroban_sdk::Address,
amount: i128,
live_until_ledger: u32,
)
Returns the amount of tokens held by account.
e - Access to the Soroban environment.account - The address for which the balance is being queried.fn balance(env: soroban_sdk::Env, account: soroban_sdk::Address) -> i128
fn upgrade(
env: soroban_sdk::Env,
new_wasm_hash: soroban_sdk::BytesN<32>,
operator: soroban_sdk::Address,
)
Returns the number of decimals used to represent amounts of this token.
e - Access to Soroban environment.fn decimals(env: soroban_sdk::Env) -> u32
Delegates voting power from account to delegatee.
To reclaim voting power (i.e. "undelegate"), call this with
delegatee set to account (self-delegation). There is no
separate undelegate operation.
e - Access to the Soroban environment.account - The account delegating its voting power.delegatee - The account receiving the delegated voting power.topics - ["delegate_changed", delegator: Address]
data - [from_delegate: Option<Address>, to_delegate: Address]
topics - ["delegate_votes_changed", delegate: Address]
data - [previous_votes: u128, new_votes: u128]
Authorization for account is required.
fn delegate(
env: soroban_sdk::Env,
account: soroban_sdk::Address,
delegatee: soroban_sdk::Address,
)
Transfers amount of tokens from from to to.
e - Access to Soroban environment.from - The address holding the tokens.to - The address receiving the transferred tokens.amount - The amount of tokens to be transferred.FungibleTokenError::InsufficientBalance] - When attempting to
transfer more tokens than from current balance.FungibleTokenError::LessThanZero] - When amount < 0.["transfer", from: Address, to: Address][to_muxed_id: Option<u64>, amount: i128]fn transfer(
env: soroban_sdk::Env,
from: soroban_sdk::Address,
to: soroban_sdk::MuxedAddress,
amount: i128,
)
Returns the amount of tokens a spender is allowed to spend on behalf
of an owner.
e - Access to Soroban environment.owner - The address holding the tokens.spender - The address authorized to spend the tokens.fn allowance(
env: soroban_sdk::Env,
owner: soroban_sdk::Address,
spender: soroban_sdk::Address,
) -> i128
Destroys amount of tokens from from. Updates the total
supply accordingly.
e - Access to the Soroban environment.spender - The address authorized to burn the tokens.from - The account whose tokens are destroyed.amount - The amount of tokens to burn.crate::fungible::FungibleTokenError::InsufficientBalance] - When
attempting to burn more tokens than from current balance.crate::fungible::FungibleTokenError::InsufficientAllowance] - When
attempting to burn more tokens than from allowance.crate::fungible::FungibleTokenError::LessThanZero] - When amount < 0.["burn", from: Address][amount: i128]fn burn_from(
env: soroban_sdk::Env,
spender: soroban_sdk::Address,
from: soroban_sdk::Address,
amount: i128,
)
Returns Some(Address) if ownership is set, or None if ownership has
been renounced.
e - Access to the Soroban environment.fn get_owner(env: soroban_sdk::Env) -> Option
Returns the current voting power (delegated votes) of an account.
Returns 0 if the account has no delegated voting power or does not
exist in the contract.
e - Access to the Soroban environment.account - The address to query voting power for.fn get_votes(env: soroban_sdk::Env, account: soroban_sdk::Address) -> u128
Returns the current delegate for an account.
e - Access to the Soroban environment.account - The address to query the delegate for.Some(Address) - The delegate address (may be the account itself if
self-delegated).None - If the account has never delegated. An account whose delegate
is None has no active voting power; it must call
[Votes::delegate] (even to itself) before its votes are counted.fn get_delegate(
env: soroban_sdk::Env,
account: soroban_sdk::Address,
) -> Option
Returns the total amount of tokens in circulation.
e - Access to the Soroban environment.fn total_supply(env: soroban_sdk::Env) -> i128
fn __constructor(
env: soroban_sdk::Env,
name: soroban_sdk::String,
symbol: soroban_sdk::String,
decimals: u32,
owner: soroban_sdk::Address,
)
Transfers amount of tokens from from to to using the
allowance mechanism. amount is then deducted from spender
allowance.
e - Access to Soroban environment.spender - The address authorizing the transfer, and having its
allowance consumed during the transfer.from - The address holding the tokens which will be transferred.to - The address receiving the transferred tokens.amount - The amount of tokens to be transferred.FungibleTokenError::InsufficientBalance] - When attempting to
transfer more tokens than from current balance.FungibleTokenError::LessThanZero] - When amount < 0.FungibleTokenError::InsufficientAllowance] - When attempting to
transfer more tokens than spender current allowance.["transfer", from: Address, to: Address][amount: i128]fn transfer_from(
env: soroban_sdk::Env,
spender: soroban_sdk::Address,
from: soroban_sdk::Address,
to: soroban_sdk::Address,
amount: i128,
)
Accepts a pending ownership transfer.
e - Access to the Soroban environment.crate::role_transfer::RoleTransferError::NoPendingTransfer] - If
there is no pending transfer to accept.["ownership_transfer_completed"][new_owner: Address]fn accept_ownership(env: soroban_sdk::Env)
Returns the current total supply of voting units.
This tracks all voting units in circulation (regardless of delegation status), not just delegated votes.
Returns 0 if no voting units exist.
e - Access to the Soroban environment.fn get_total_supply(env: soroban_sdk::Env) -> u128
Renounces ownership of the contract.
Permanently removes the owner, disabling all functions gated by
#[only_owner].
e - Access to the Soroban environment.OwnableError::TransferInProgress] - If there is a pending ownership
transfer.OwnableError::OwnerNotSet] - If the owner is not set.fn renounce_ownership(env: soroban_sdk::Env)
Initiates a 2-step ownership transfer to a new address.
Requires authorization from the current owner. The new owner must later
call accept_ownership() to complete the transfer.
e - Access to the Soroban environment.new_owner - The proposed new owner.live_until_ledger - Ledger number until which the new owner can
accept. A value of 0 cancels any pending transfer.OwnableError::OwnerNotSet] - If the owner is not set.crate::role_transfer::RoleTransferError::NoPendingTransfer] - If
trying to cancel a transfer that doesn't exist.crate::role_transfer::RoleTransferError::InvalidLiveUntilLedger] -
If the specified ledger is in the past.crate::role_transfer::RoleTransferError::InvalidPendingAccount] -
If the specified pending account is not the same as the provided new
address.fn transfer_ownership(
env: soroban_sdk::Env,
new_owner: soroban_sdk::Address,
live_until_ledger: u32,
)
Returns the voting power (delegated votes) of an account at a specific past ledger sequence number.
Returns 0 if the account had no delegated voting power at the given
ledger or does not exist in the contract.
e - Access to the Soroban environment.account - The address to query voting power for.ledger - The ledger sequence number to query (must be in the past).VotesError::FutureLookup] - If ledger >= current ledger sequence
number.fn get_votes_at_checkpoint(
env: soroban_sdk::Env,
account: soroban_sdk::Address,
ledger: u32,
) -> u128
Returns the total supply of voting units at a specific past ledger sequence number.
This tracks all voting units in circulation (regardless of delegation status), not just delegated votes.
Returns 0 if there were no voting units at the given ledger.
e - Access to the Soroban environment.ledger - The ledger sequence number to query (must be in the past).VotesError::FutureLookup] - If ledger >= current ledger sequence
number.fn get_total_supply_at_checkpoint(env: soroban_sdk::Env, ledger: u32) -> u128