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> !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§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
Casts
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read moresource§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