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.