soroban_sdk::token

Struct TokenClient

Source
pub struct TokenClient<'a> {
    pub env: Env,
    pub address: Address,
    /* private fields */
}
Expand description

TokenClient is a client for calling the contract defined in “TokenInterface”.

Fields§

§env: Env§address: Address

Implementations§

Source§

impl<'a> TokenClient<'a>

Source

pub fn new(env: &Env, address: &Address) -> Self

Source

pub fn set_auths(&self, auths: &'a [SorobanAuthorizationEntry]) -> Self

Set authorizations in the environment which will be consumed by contracts when they invoke Address::require_auth or Address::require_auth_for_args functions.

Requires valid signatures for the authorization to be successful. To mock auth without requiring valid signatures, use mock_auths.

See soroban_sdk::Env::set_auths for more details and examples.

Source

pub fn mock_auths(&self, mock_auths: &'a [MockAuth<'a>]) -> Self

Mock authorizations in the environment which will cause matching invokes of Address::require_auth and Address::require_auth_for_args to pass.

See soroban_sdk::Env::set_auths for more details and examples.

Source

pub fn mock_all_auths(&self) -> Self

Mock all calls to the Address::require_auth and Address::require_auth_for_args functions in invoked contracts, having them succeed as if authorization was provided.

See soroban_sdk::Env::mock_all_auths for more details and examples.

Source

pub fn mock_all_auths_allowing_non_root_auth(&self) -> Self

A version of mock_all_auths that allows authorizations that are not present in the root invocation.

Refer to mock_all_auths documentation for details and prefer using mock_all_auths unless non-root authorization is required.

See soroban_sdk::Env::mock_all_auths_allowing_non_root_auth for more details and examples.

Source§

impl<'a> TokenClient<'a>

Source

pub fn allowance(&self, from: &Address, spender: &Address) -> i128

Returns the allowance for spender to transfer from from.

The amount returned is the amount that spender is allowed to transfer out of from’s balance. When the spender transfers amounts, the allowance will be reduced by the amount transferred.

§Arguments
  • from - The address holding the balance of tokens to be drawn from.
  • spender - The address spending the tokens held by from.
Source

pub fn try_allowance( &self, from: &Address, spender: &Address, ) -> Result<Result<i128, <i128 as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

Returns the allowance for spender to transfer from from.

The amount returned is the amount that spender is allowed to transfer out of from’s balance. When the spender transfers amounts, the allowance will be reduced by the amount transferred.

§Arguments
  • from - The address holding the balance of tokens to be drawn from.
  • spender - The address spending the tokens held by from.
Source

pub fn approve( &self, from: &Address, spender: &Address, amount: &i128, expiration_ledger: &u32, )

Set the allowance by amount for spender to transfer/burn from from.

The amount set is the amount that spender is approved to transfer out of from’s balance. The spender will be allowed to transfer amounts, and when an amount is transferred the allowance will be reduced by the amount transferred.

§Arguments
  • from - The address holding the balance of tokens to be drawn from.
  • spender - The address being authorized to spend the tokens held by from.
  • amount - The tokens to be made available to spender.
  • 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]

Source

pub fn try_approve( &self, from: &Address, spender: &Address, amount: &i128, expiration_ledger: &u32, ) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

Set the allowance by amount for spender to transfer/burn from from.

The amount set is the amount that spender is approved to transfer out of from’s balance. The spender will be allowed to transfer amounts, and when an amount is transferred the allowance will be reduced by the amount transferred.

§Arguments
  • from - The address holding the balance of tokens to be drawn from.
  • spender - The address being authorized to spend the tokens held by from.
  • amount - The tokens to be made available to spender.
  • 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]

Source

pub fn balance(&self, 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.
Source

pub fn try_balance( &self, id: &Address, ) -> Result<Result<i128, <i128 as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

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.
Source

pub fn transfer(&self, 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

Source

pub fn try_transfer( &self, from: &Address, to: &Address, amount: &i128, ) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

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

Source

pub fn transfer_from( &self, spender: &Address, from: &Address, to: &Address, amount: &i128, )

Transfer amount from from to to, consuming the allowance that spender has on from’s balance. Authorized by spender (spender.require_auth()).

The spender will be allowed to transfer the amount from from’s balance if the amount is less than or equal to the allowance that the spender has on the from’s balance. The spender’s allowance on from’s balance will be reduced by the amount.

§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

Source

pub fn try_transfer_from( &self, spender: &Address, from: &Address, to: &Address, amount: &i128, ) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

Transfer amount from from to to, consuming the allowance that spender has on from’s balance. Authorized by spender (spender.require_auth()).

The spender will be allowed to transfer the amount from from’s balance if the amount is less than or equal to the allowance that the spender has on the from’s balance. The spender’s allowance on from’s balance will be reduced by the amount.

§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

Source

pub fn burn(&self, from: &Address, amount: &i128)

Burn amount from from.

Reduces from’s balance by the amount, without transferring the balance to another holder’s balance.

§Arguments
  • 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

Source

pub fn try_burn( &self, from: &Address, amount: &i128, ) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

Burn amount from from.

Reduces from’s balance by the amount, without transferring the balance to another holder’s balance.

§Arguments
  • 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

Source

pub fn burn_from(&self, spender: &Address, from: &Address, amount: &i128)

Burn amount from from, consuming the allowance of spender.

Reduces from’s balance by the amount, without transferring the balance to another holder’s balance.

The spender will be allowed to burn the amount from from’s balance, if the amount is less than or equal to the allowance that the spender has on the from’s balance. The spender’s allowance on from’s balance will be reduced by the amount.

§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

Source

pub fn try_burn_from( &self, spender: &Address, from: &Address, amount: &i128, ) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

Burn amount from from, consuming the allowance of spender.

Reduces from’s balance by the amount, without transferring the balance to another holder’s balance.

The spender will be allowed to burn the amount from from’s balance, if the amount is less than or equal to the allowance that the spender has on the from’s balance. The spender’s allowance on from’s balance will be reduced by the amount.

§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

Source

pub fn decimals(&self) -> u32

Returns the number of decimals used to represent amounts of this token.

§Panics

If the contract has not yet been initialized.

Source

pub fn try_decimals( &self, ) -> Result<Result<u32, <u32 as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

Returns the number of decimals used to represent amounts of this token.

§Panics

If the contract has not yet been initialized.

Source

pub fn name(&self) -> String

Returns the name for this token.

§Panics

If the contract has not yet been initialized.

Source

pub fn try_name( &self, ) -> Result<Result<String, <String as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

Returns the name for this token.

§Panics

If the contract has not yet been initialized.

Source

pub fn symbol(&self) -> String

Returns the symbol for this token.

§Panics

If the contract has not yet been initialized.

Source

pub fn try_symbol( &self, ) -> Result<Result<String, <String as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>

Returns the symbol for this token.

§Panics

If the contract has not yet been initialized.

Auto Trait Implementations§

§

impl<'a> Freeze for TokenClient<'a>

§

impl<'a> !RefUnwindSafe for TokenClient<'a>

§

impl<'a> !Send for TokenClient<'a>

§

impl<'a> !Sync for TokenClient<'a>

§

impl<'a> Unpin for TokenClient<'a>

§

impl<'a> !UnwindSafe for TokenClient<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, C> Compare<&T> for C
where C: Compare<T>,

Source§

type Error = <C as Compare<T>>::Error

Source§

fn compare(&self, a: &&T, b: &&T) -> Result<Ordering, <C as Compare<&T>>::Error>

Source§

impl<T, U, E, C> Compare<(T, U)> for C
where C: Compare<T, Error = E, Error = E> + Compare<U>,

Source§

type Error = E

Source§

fn compare( &self, a: &(T, U), b: &(T, U), ) -> Result<Ordering, <C as Compare<(T, U)>>::Error>

Source§

impl<T, U, V, E, C> Compare<(T, U, V)> for C
where C: Compare<T, Error = E, Error = E, Error = E> + Compare<U> + Compare<V>,

Source§

impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
where C: Compare<T, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W>,

Source§

impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
where C: Compare<T, Error = E, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W> + Compare<X>,

Source§

impl<T, C> Compare<Box<T>> for C
where C: Compare<T>,

Source§

type Error = <C as Compare<T>>::Error

Source§

fn compare( &self, a: &Box<T>, b: &Box<T>, ) -> Result<Ordering, <C as Compare<Box<T>>>::Error>

Source§

impl<T, C> Compare<Option<T>> for C
where C: Compare<T>,

Source§

type Error = <C as Compare<T>>::Error

Source§

fn compare( &self, a: &Option<T>, b: &Option<T>, ) -> Result<Ordering, <C as Compare<Option<T>>>::Error>

Source§

impl<T, C> Compare<Rc<T>> for C
where C: Compare<T>,

Source§

type Error = <C as Compare<T>>::Error

Source§

fn compare( &self, a: &Rc<T>, b: &Rc<T>, ) -> Result<Ordering, <C as Compare<Rc<T>>>::Error>

Source§

impl<T, C> Compare<Vec<T>> for C
where C: Compare<T>,

Source§

type Error = <C as Compare<T>>::Error

Source§

fn compare( &self, a: &Vec<T>, b: &Vec<T>, ) -> Result<Ordering, <C as Compare<Vec<T>>>::Error>

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<E, T, U> IntoVal<E, T> for U
where E: Env, T: FromVal<E, U>,

Source§

fn into_val(&self, e: &E) -> T

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<E, T, U> TryIntoVal<E, T> for U
where E: Env, T: TryFromVal<E, U>,

Source§

type Error = <T as TryFromVal<E, U>>::Error

Source§

fn try_into_val(&self, env: &E) -> Result<T, <U as TryIntoVal<E, T>>::Error>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V