use cosmwasm_std::{Addr, Coin};
use cw_orch::environment::MutCwEnv;
use crate::{
client::{AbstractClient, AbstractClientResult},
Environment,
};
impl<Chain: MutCwEnv> AbstractClient<Chain> {
pub fn set_balance(&self, address: &Addr, amount: &'_ [Coin]) -> AbstractClientResult<()> {
self.environment()
.set_balance(address, amount.to_vec())
.map_err(Into::into)
.map_err(Into::into)
}
pub fn set_balances<'a>(
&self,
balances: impl IntoIterator<Item = (&'a Addr, &'a [Coin])>,
) -> AbstractClientResult<()> {
balances
.into_iter()
.try_for_each(|(address, amount)| self.set_balance(address, amount))?;
Ok(())
}
pub fn add_balance(&self, address: &Addr, amount: &[Coin]) -> AbstractClientResult<()> {
self.environment()
.add_balance(address, amount.to_vec())
.map_err(Into::into)
.map_err(Into::into)
}
pub fn add_balances<'a>(
&self,
balances: impl IntoIterator<Item = (&'a Addr, &'a [Coin])>,
) -> AbstractClientResult<()> {
balances
.into_iter()
.try_for_each(|(address, amount)| self.add_balance(address, amount))
}
}