Struct cw_multi_test::App[][src]

pub struct App<C = Empty> where
    C: Clone + Debug + PartialEq + JsonSchema
{ /* fields omitted */ }

Router is a persisted state. You can query this. Execution generally happens on the RouterCache, which then can be atomically committed or rolled back. We offer .execute() as a wrapper around cache, execute, commit/rollback process.

C is the custom message returned init, handle, sudo (Response). All contracts must return Response or Response

Implementations

impl<C> App<C> where
    C: Clone + Debug + PartialEq + JsonSchema
[src]

pub fn new<B: Bank + 'static>(
    api: Box<dyn Api>,
    block: BlockInfo,
    bank: B,
    storage_factory: fn() -> Box<dyn Storage>
) -> Self
[src]

pub fn cache(&self) -> AppCache<'_, C>[src]

pub fn set_block(&mut self, block: BlockInfo)[src]

This can set the block info to any value. Must be done before taking a cache

pub fn update_block<F: Fn(&mut BlockInfo)>(&mut self, action: F)[src]

This let’s use use “next block” steps that add eg. one height and 5 seconds

pub fn block_info(&self) -> BlockInfo[src]

Returns a copy of the current block_info

pub fn set_bank_balance(
    &mut self,
    account: HumanAddr,
    amount: Vec<Coin>
) -> Result<(), String>
[src]

This is an “admin” function to let us adjust bank accounts

pub fn store_code(&mut self, code: Box<dyn Contract<C>>) -> u64[src]

This registers contract code (like uploading wasm bytecode on a chain), so it can later be used to instantiate a contract.

pub fn wrap(&self) -> QuerierWrapper<'_>[src]

Simple helper so we get access to all the QuerierWrapper helpers, eg. query_wasm_smart, query_all_balances, …

pub fn query(&self, request: QueryRequest<Empty>) -> Result<Binary, String>[src]

Handles arbitrary QueryRequest, this is wrapped by the Querier interface, but this is nicer to use.

pub fn instantiate_contract<T: Serialize, U: Into<String>, V: Into<HumanAddr>>(
    &mut self,
    code_id: u64,
    sender: V,
    init_msg: &T,
    send_funds: &[Coin],
    label: U
) -> Result<HumanAddr, String>
[src]

Create a contract and get the new address. This is just a helper around execute()

pub fn execute_contract<T: Serialize, U: Into<HumanAddr>>(
    &mut self,
    sender: U,
    contract_addr: U,
    msg: &T,
    send_funds: &[Coin]
) -> Result<AppResponse, String>
[src]

Execute a contract and process all returned messages. This is just a helper around execute()

pub fn execute(
    &mut self,
    sender: HumanAddr,
    msg: CosmosMsg<C>
) -> Result<AppResponse, String>
[src]

Runs arbitrary CosmosMsg. This will create a cache before the execution, so no state changes are persisted if this returns an error, but all are persisted on success.

pub fn execute_multi(
    &mut self,
    sender: HumanAddr,
    msgs: Vec<CosmosMsg<C>>
) -> Result<Vec<AppResponse>, String>
[src]

Runs multiple CosmosMsg in one atomic operation. This will create a cache before the execution, so no state changes are persisted if any of them return an error. But all writes are persisted on success.

pub fn sudo<T: Serialize, U: Into<HumanAddr>>(
    &mut self,
    contract_addr: U,
    msg: &T
) -> Result<AppResponse, String>
[src]

Runs arbitrary CosmosMsg. This will create a cache before the execution, so no state changes are persisted if this returns an error, but all are persisted on success.

Trait Implementations

impl<C> Querier for App<C> where
    C: Clone + Debug + PartialEq + JsonSchema
[src]

Auto Trait Implementations

impl<C = Empty> !RefUnwindSafe for App<C>

impl<C = Empty> !Send for App<C>

impl<C = Empty> !Sync for App<C>

impl<C> Unpin for App<C>

impl<C = Empty> !UnwindSafe for App<C>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Conv for T

impl<T> FmtForward for T

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pipe for T

impl<T> PipeAsRef for T

impl<T> PipeBorrow for T

impl<T> PipeDeref for T

impl<T> PipeRef for T

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Tap for T

impl<T, U> TapAsRef<U> for T where
    U: ?Sized

impl<T, U> TapBorrow<U> for T where
    U: ?Sized

impl<T> TapDeref for T

impl<T> TryConv for T

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.