Trait soroban_sdk::token::Interface
source · pub trait Interface {
// 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 spendable_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 spendable_balance(env: Env, id: Address) -> i128
fn spendable_balance(env: Env, id: Address) -> i128
Returns the spendable balance of id
.
Arguments
id
- The address for which a spendable balance is being queried. This will return the same value asbalance()
unless this is called on the Stellar Asset Contract, in which case this can be less due to reserves/liabilities.
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.