diff --git a/sylvia-derive/src/multitest.rs b/sylvia-derive/src/multitest.rs index 3cabe1f3..ebc5fcfc 100644 --- a/sylvia-derive/src/multitest.rs +++ b/sylvia-derive/src/multitest.rs @@ -495,6 +495,17 @@ where } }; + #[cfg(not(tarpaulin_include))] + let code_info = if cfg!(feature = "cosmwasm_1_2") { + quote! { + pub fn code_info(&self) -> #sylvia ::cw_std::StdResult< #sylvia ::cw_std::CodeInfoResponse> { + self.app.app().wrap().query_wasm_code_info(self.code_id) + } + } + } else { + quote! {} + }; + #[cfg(not(tarpaulin_include))] { quote! { @@ -530,6 +541,8 @@ where self.code_id } + #code_info + pub fn instantiate( &self, #(#fields,)* ) -> InstantiateProxy<'_, 'app, #(#generics,)* #mt_app > { diff --git a/sylvia/src/multitest.rs b/sylvia/src/multitest.rs index 2f129b09..c0fe0eac 100644 --- a/sylvia/src/multitest.rs +++ b/sylvia/src/multitest.rs @@ -5,6 +5,8 @@ use std::marker::PhantomData; use cosmwasm_std::{ Addr, Api, BlockInfo, Coin, CustomQuery, Empty, GovMsg, IbcMsg, IbcQuery, Storage, }; +#[cfg(feature = "cosmwasm_1_2")] +use cosmwasm_std::{CodeInfoResponse, StdResult}; use cw_multi_test::{ Bank, BankKeeper, Distribution, DistributionKeeper, Executor, FailingModule, Gov, Ibc, Module, Router, StakeKeeper, Staking, Wasm, WasmKeeper, @@ -94,6 +96,11 @@ where pub fn update_block(&self, action: F) { self.app.borrow_mut().update_block(action) } + + #[cfg(feature = "cosmwasm_1_2")] + pub fn code_info(&self, code_id: u64) -> StdResult { + self.app.borrow().wrap().query_wasm_code_info(code_id) + } } #[must_use] diff --git a/sylvia/tests/multitest.rs b/sylvia/tests/multitest.rs index 220f7213..4c5a46c9 100644 --- a/sylvia/tests/multitest.rs +++ b/sylvia/tests/multitest.rs @@ -1,6 +1,6 @@ #![cfg(feature = "mt")] -use cosmwasm_std::{Empty, Response, StdResult}; +use cosmwasm_std::{CodeInfoResponse, Empty, Response, StdResult}; use std::marker::PhantomData; use sylvia::multitest::App; use sylvia::types::InstantiateCtx; @@ -42,3 +42,13 @@ fn instantiate_with_salt() { .call(owner) .unwrap(); } + +#[test] +fn code_info() { + let app = App::default(); + + let code_id = sv::multitest_utils::CodeId::::store_code(&app); + + let _: CodeInfoResponse = code_id.code_info().unwrap(); + let _: CodeInfoResponse = app.code_info(code_id.code_id()).unwrap(); +}