Trait soroban_sdk::token::TokenInterface
source · pub trait TokenInterface {
// Required methods
fn allowance(env: Env, from: Address, spender: Address) -> i128;
fn approve(
env: Env,
from: Address,
spender: Address,
amount: i128,
expiration_ledger: u32
);
fn balance(env: Env, id: Address) -> i128;
fn transfer(env: Env, from: Address, to: Address, amount: i128);
fn transfer_from(
env: Env,
spender: Address,
from: Address,
to: Address,
amount: i128
);
fn burn(env: Env, from: Address, amount: i128);
fn burn_from(env: Env, spender: Address, from: Address, amount: i128);
fn decimals(env: Env) -> u32;
fn name(env: Env) -> String;
fn symbol(env: Env) -> String;
}Expand description
Interface for Token contracts, such as the Stellar Asset Contract.
Required Methods§
sourcefn allowance(env: Env, from: Address, spender: Address) -> i128
fn allowance(env: Env, from: Address, spender: Address) -> i128
Returns the allowance for spender to transfer from from.
Arguments
from- The address holding the balance of tokens to be drawn from.spender- The address spending the tokens held byfrom.
sourcefn approve(
env: Env,
from: Address,
spender: Address,
amount: i128,
expiration_ledger: u32
)
fn approve( env: Env, from: Address, spender: Address, amount: i128, expiration_ledger: u32 )
Set the allowance by amount for spender to transfer/burn from
from.
Arguments
from- The address holding the balance of tokens to be drawn from.spender- The address being authorized to spend the tokens held byfrom.amount- The tokens to be made available tospender.expiration_ledger- The ledger number where this allowance expires. Cannot be less than the current ledger number unless the amount is being set to 0. An expired entry (where expiration_ledger < the current ledger number) should be treated as a 0 amount allowance.
Events
Emits an event with topics ["approve", from: Address, spender: Address], data = [amount: i128, expiration_ledger: u32]
sourcefn balance(env: Env, id: Address) -> i128
fn balance(env: Env, id: Address) -> i128
Returns the balance of id.
Arguments
id- The address for which a balance is being queried. If the address has no existing balance, returns 0.
sourcefn transfer(env: Env, from: Address, to: Address, amount: i128)
fn transfer(env: Env, from: Address, to: Address, amount: i128)
Transfer amount from from to to.
Arguments
from- The address holding the balance of tokens which will be withdrawn from.to- The address which will receive the transferred tokens.amount- The amount of tokens to be transferred.
Events
Emits an event with topics ["transfer", from: Address, to: Address], data = [amount: i128]
sourcefn transfer_from(
env: Env,
spender: Address,
from: Address,
to: Address,
amount: i128
)
fn transfer_from( env: Env, spender: Address, from: Address, to: Address, amount: i128 )
Transfer amount from from to to, consuming the allowance of
spender. Authorized by spender (spender.require_auth()).
Arguments
spender- The address authorizing the transfer, and having its allowance consumed during the transfer.from- The address holding the balance of tokens which will be withdrawn from.to- The address which will receive the transferred tokens.amount- The amount of tokens to be transferred.
Events
Emits an event with topics ["transfer", from: Address, to: Address], data = [amount: i128]
sourcefn burn_from(env: Env, spender: Address, from: Address, amount: i128)
fn burn_from(env: Env, spender: Address, from: Address, amount: i128)
Burn amount from from, consuming the allowance of spender.
Arguments
spender- The address authorizing the burn, and having its allowance consumed during the burn.from- The address holding the balance of tokens which will be burned from.amount- The amount of tokens to be burned.
Events
Emits an event with topics ["burn", from: Address], data = [amount: i128]
sourcefn decimals(env: Env) -> u32
fn decimals(env: Env) -> u32
Returns the number of decimals used to represent amounts of this token.
Panics
If the contract has not yet been initialized.