Struct abstract_sdk::Bank
source · pub struct Bank<'a, T: TransferInterface> { /* private fields */ }
Expand description
API for transferring funds to and from the account.
§Example
use abstract_sdk::prelude::*;
let bank: Bank<MockModule> = module.bank(deps.as_ref());
Implementations§
source§impl<'a, T: TransferInterface> Bank<'a, T>
impl<'a, T: TransferInterface> Bank<'a, T>
sourcepub fn balances(&self, assets: &[AssetEntry]) -> AbstractSdkResult<Vec<Asset>>
pub fn balances(&self, assets: &[AssetEntry]) -> AbstractSdkResult<Vec<Asset>>
Get the balances of the provided assets.
sourcepub fn balance(&self, asset: &AssetEntry) -> AbstractSdkResult<Asset>
pub fn balance(&self, asset: &AssetEntry) -> AbstractSdkResult<Asset>
Get the balance of the provided asset.
sourcepub fn transfer<R: Transferable>(
&self,
funds: Vec<R>,
recipient: &Addr
) -> AbstractSdkResult<AccountAction>
pub fn transfer<R: Transferable>( &self, funds: Vec<R>, recipient: &Addr ) -> AbstractSdkResult<AccountAction>
Transfer the provided funds from the Account to the recipient.
fn transfer_asset_to_sender(app: MockModule, deps: DepsMut, info: MessageInfo, requested_asset: AnsAsset) -> AbstractSdkResult<Response> {
let bank = app.bank(deps.as_ref());
let executor = app.executor(deps.as_ref());
let transfer_action = bank.transfer(vec![requested_asset.clone()], &info.sender)?;
let transfer_msg = executor.execute(vec![transfer_action])?;
Ok(Response::new()
.add_message(transfer_msg)
.add_attribute("recipient", info.sender)
.add_attribute("asset_sent", requested_asset.to_string()))
}
sourcepub fn deposit<R: Transferable>(
&self,
funds: Vec<R>
) -> AbstractSdkResult<Vec<CosmosMsg>>
pub fn deposit<R: Transferable>( &self, funds: Vec<R> ) -> AbstractSdkResult<Vec<CosmosMsg>>
Move funds from the contract into the Account.
sourcepub fn withdraw<R: Transferable>(
&self,
env: &Env,
funds: Vec<R>
) -> AbstractSdkResult<AccountAction>
pub fn withdraw<R: Transferable>( &self, env: &Env, funds: Vec<R> ) -> AbstractSdkResult<AccountAction>
Withdraw funds from the Account to this contract.
sourcepub fn send<R: Transferable, M: Serialize>(
&self,
funds: R,
recipient: &Addr,
message: &M
) -> AbstractSdkResult<AccountAction>
pub fn send<R: Transferable, M: Serialize>( &self, funds: R, recipient: &Addr, message: &M ) -> AbstractSdkResult<AccountAction>
Move cw20 assets from the Account to a recipient with the possibility using the cw20 send/receive hook
Note: Native coins are NOT and will NEVER be supported by this method.
In order to send funds with your message, you need to construct the message yourself
Trait Implementations§
Auto Trait Implementations§
impl<'a, T> Freeze for Bank<'a, T>
impl<'a, T> !RefUnwindSafe for Bank<'a, T>
impl<'a, T> !Send for Bank<'a, T>
impl<'a, T> !Sync for Bank<'a, T>
impl<'a, T> Unpin for Bank<'a, T>
impl<'a, T> !UnwindSafe for Bank<'a, T>
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
Mutably borrows from an owned value. Read more
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>
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 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>
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