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>
impl<'a> TokenClient<'a>
pub fn new(env: &Env, address: &Address) -> Self
Sourcepub fn set_auths(&self, auths: &'a [SorobanAuthorizationEntry]) -> Self
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.
Sourcepub fn mock_auths(&self, mock_auths: &'a [MockAuth<'a>]) -> Self
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.
Sourcepub fn mock_all_auths(&self) -> Self
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.
Sourcepub fn mock_all_auths_allowing_non_root_auth(&self) -> Self
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>
impl<'a> TokenClient<'a>
Sourcepub fn allowance(&self, from: &Address, spender: &Address) -> i128
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 byfrom
.
Sourcepub fn try_allowance(
&self,
from: &Address,
spender: &Address,
) -> Result<Result<i128, <i128 as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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 byfrom
.
Sourcepub fn approve(
&self,
from: &Address,
spender: &Address,
amount: &i128,
expiration_ledger: &u32,
)
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 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]
Sourcepub fn try_approve(
&self,
from: &Address,
spender: &Address,
amount: &i128,
expiration_ledger: &u32,
) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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 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]
Sourcepub fn balance(&self, id: &Address) -> i128
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.
Sourcepub fn try_balance(
&self,
id: &Address,
) -> Result<Result<i128, <i128 as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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.
Sourcepub fn transfer(&self, from: &Address, to: &Address, amount: &i128)
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
Sourcepub fn try_transfer(
&self,
from: &Address,
to: &Address,
amount: &i128,
) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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
Sourcepub fn transfer_from(
&self,
spender: &Address,
from: &Address,
to: &Address,
amount: &i128,
)
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
Sourcepub fn try_transfer_from(
&self,
spender: &Address,
from: &Address,
to: &Address,
amount: &i128,
) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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
Sourcepub fn burn(&self, from: &Address, amount: &i128)
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
Sourcepub fn try_burn(
&self,
from: &Address,
amount: &i128,
) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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
Sourcepub fn burn_from(&self, spender: &Address, from: &Address, amount: &i128)
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
Sourcepub fn try_burn_from(
&self,
spender: &Address,
from: &Address,
amount: &i128,
) -> Result<Result<(), <() as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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
Sourcepub fn decimals(&self) -> u32
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.
Sourcepub fn try_decimals(
&self,
) -> Result<Result<u32, <u32 as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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.
Sourcepub fn try_name(
&self,
) -> Result<Result<String, <String as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
pub fn try_name( &self, ) -> Result<Result<String, <String as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
Sourcepub fn try_symbol(
&self,
) -> Result<Result<String, <String as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
pub fn try_symbol( &self, ) -> Result<Result<String, <String as TryFromVal<Env, Val>>::Error>, Result<Error, InvokeError>>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for C
type Error = E
fn compare( &self, a: &(T, U, V, W), b: &(T, U, V, W), ) -> Result<Ordering, <C as Compare<(T, U, V, W)>>::Error>
Source§impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for C
type Error = E
fn compare( &self, a: &(T, U, V, W, X), b: &(T, U, V, W, X), ) -> Result<Ordering, <C as Compare<(T, U, V, W, X)>>::Error>
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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