diff --git a/Cargo.lock b/Cargo.lock index 1343d3bc..af266cb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -228,9 +228,9 @@ dependencies = [ [[package]] name = "cw-multi-test" -version = "0.16.4" +version = "0.16.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a18afd2e201221c6d72a57f0886ef2a22151bbc9e6db7af276fde8a91081042" +checksum = "127c7bb95853b8e828bdab97065c81cb5ddc20f7339180b61b2300565aaa99d1" dependencies = [ "anyhow", "cosmwasm-std", @@ -1023,9 +1023,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "sylvia" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fc0aae39bc8a76742c1455e3bda09976224e31d236de0e468c91fbc2414c79" +checksum = "244466d32c81f9421db755e437924126233815cd0f17fca0dd7472d1045eb4c1" dependencies = [ "anyhow", "cosmwasm-schema", @@ -1042,9 +1042,9 @@ dependencies = [ [[package]] name = "sylvia-derive" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c50a057bb2787c04dd93a203809e79d424d5de21b5024e23bc8d1cd5e6f34d4" +checksum = "5b9a418ce96b68c6cf770edea4bb6049a7d2ed20f85e03560bfe375494ccfcd3" dependencies = [ "convert_case", "proc-macro-crate", diff --git a/Cargo.toml b/Cargo.toml index c05c2737..f88f45c6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ mesh-converter = { path = "./contracts/consumer/converter" } mesh-simple-price-feed = { path = "./contracts/consumer/simple-price-feed" } mesh-virtual-staking = { path = "./contracts/consumer/virtual-staking" } -sylvia = "0.5.0" +sylvia = "0.6.0" cosmwasm-schema = "1.2" cosmwasm-std = { version = "1.2", features = ["ibc3", "cosmwasm_1_2"] } cosmwasm-storage = "1.2" diff --git a/contracts/consumer/converter/src/multitest.rs b/contracts/consumer/converter/src/multitest.rs index 4c677ed0..ef942ac2 100644 --- a/contracts/consumer/converter/src/multitest.rs +++ b/contracts/consumer/converter/src/multitest.rs @@ -1,7 +1,7 @@ mod virtual_staking_mock; use cosmwasm_std::{coin, Addr, Decimal, Uint128}; - +use cw_multi_test::App as MtApp; use sylvia::multitest::App; use crate::contract; @@ -16,12 +16,13 @@ struct SetupArgs<'a> { } struct SetupResponse<'a> { - price_feed: mesh_simple_price_feed::contract::multitest_utils::SimplePriceFeedContractProxy<'a>, - converter: contract::multitest_utils::ConverterContractProxy<'a>, - virtual_staking: virtual_staking_mock::multitest_utils::VirtualStakingMockProxy<'a>, + price_feed: + mesh_simple_price_feed::contract::multitest_utils::SimplePriceFeedContractProxy<'a, MtApp>, + converter: contract::multitest_utils::ConverterContractProxy<'a, MtApp>, + virtual_staking: virtual_staking_mock::multitest_utils::VirtualStakingMockProxy<'a, MtApp>, } -fn setup<'a>(app: &'a App, args: SetupArgs<'a>) -> SetupResponse<'a> { +fn setup<'a>(app: &'a App, args: SetupArgs<'a>) -> SetupResponse<'a> { let SetupArgs { owner, admin, diff --git a/contracts/provider/external-staking/src/multitest.rs b/contracts/provider/external-staking/src/multitest.rs index deaf3769..977a0bab 100644 --- a/contracts/provider/external-staking/src/multitest.rs +++ b/contracts/provider/external-staking/src/multitest.rs @@ -31,10 +31,13 @@ const LOCAL_SLASHING_PERCENTAGE: u64 = 5; // // Returns vault and external staking proxies fn setup<'app>( - app: &'app App, + app: &'app App, owner: &str, unbond_period: u64, -) -> AnyResult<(VaultContractProxy<'app>, ExternalStakingContractProxy<'app>)> { +) -> AnyResult<( + VaultContractProxy<'app, MtApp>, + ExternalStakingContractProxy<'app, MtApp>, +)> { let native_staking_proxy_code = NativeStakingProxyCodeId::store_code(app); let native_staking_code = NativeStakingCodeId::store_code(app); let vault_code = VaultCodeId::store_code(app); @@ -303,7 +306,9 @@ fn staking() { } #[track_caller] -fn get_last_external_staking_pending_tx_id(contract: &ExternalStakingContractProxy) -> Option { +fn get_last_external_staking_pending_tx_id( + contract: &ExternalStakingContractProxy, +) -> Option { let txs = contract.all_pending_txs_desc(None, None).unwrap().txs; txs.first().map(Tx::id) } diff --git a/contracts/provider/native-staking-proxy/src/contract.rs b/contracts/provider/native-staking-proxy/src/contract.rs index 0327962e..ed780578 100644 --- a/contracts/provider/native-staking-proxy/src/contract.rs +++ b/contracts/provider/native-staking-proxy/src/contract.rs @@ -51,7 +51,12 @@ impl NativeStakingProxyContract<'_> { set_contract_version(ctx.deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; // Stake info.funds on validator - let res = self.stake(ctx, validator)?; + let exec_ctx = ExecCtx { + deps: ctx.deps, + env: ctx.env, + info: ctx.info, + }; + let res = self.stake(exec_ctx, validator)?; // Set owner as recipient of future withdrawals let set_withdrawal = DistributionMsg::SetWithdrawAddress { @@ -258,7 +263,12 @@ mod tests { VALIDATOR.to_owned(), ) .unwrap(); - (ctx, contract) + let exec_ctx = ExecCtx { + deps: ctx.deps, + info: mock_info(OWNER, &[]), + env: ctx.env, + }; + (exec_ctx, contract) } // Extra checks of instantiate returned messages and data @@ -311,7 +321,6 @@ mod tests { let (mut ctx, contract) = do_instantiate(deps.as_mut()); // The owner can vote - ctx.info = mock_info(OWNER, &[]); let proposal_id = 1; let vote = Yes; let res = contract @@ -352,7 +361,6 @@ mod tests { let (mut ctx, contract) = do_instantiate(deps.as_mut()); // The owner can weighted vote - ctx.info = mock_info(OWNER, &[]); let proposal_id = 2; let vote = vec![WeightedVoteOption { option: Yes, diff --git a/contracts/provider/native-staking-proxy/src/multitest.rs b/contracts/provider/native-staking-proxy/src/multitest.rs index e4d41677..e45fe33a 100644 --- a/contracts/provider/native-staking-proxy/src/multitest.rs +++ b/contracts/provider/native-staking-proxy/src/multitest.rs @@ -15,7 +15,7 @@ use crate::msg::ConfigResponse; const OSMO: &str = "uosmo"; const UNBONDING_PERIOD: u64 = 17 * 24 * 60 * 60; // 7 days -fn init_app(owner: &str, validators: &[&str]) -> App { +fn init_app(owner: &str, validators: &[&str]) -> App { // Fund the staking contract, and add validators to staking keeper let block = mock_env().block; let app = MtApp::new(|router, api, storage| { @@ -52,11 +52,11 @@ fn init_app(owner: &str, validators: &[&str]) -> App { } fn setup<'app>( - app: &'app App, + app: &'app App, owner: &str, user: &str, validator: &str, -) -> AnyResult> { +) -> AnyResult> { let vault_code = mesh_vault::contract::multitest_utils::CodeId::store_code(app); let staking_code = mesh_native_staking::contract::multitest_utils::CodeId::store_code(app); let staking_proxy_code = contract::multitest_utils::CodeId::store_code(app); diff --git a/contracts/provider/vault/src/contract.rs b/contracts/provider/vault/src/contract.rs index ce3b4a64..1b3e6489 100644 --- a/contracts/provider/vault/src/contract.rs +++ b/contracts/provider/vault/src/contract.rs @@ -514,7 +514,7 @@ impl VaultContract<'_> { .users .may_load(ctx.deps.storage, &ctx.info.sender)? .unwrap_or_default(); - let mut user = user_lock.write()?; + let user = user_lock.write()?; user.max_lien = user.max_lien.max(lien.amount); user.total_slashable += amount * lien.slashable; diff --git a/contracts/provider/vault/src/multitest.rs b/contracts/provider/vault/src/multitest.rs index f4767efe..001ef6f2 100644 --- a/contracts/provider/vault/src/multitest.rs +++ b/contracts/provider/vault/src/multitest.rs @@ -449,7 +449,7 @@ fn stake_local() { } #[track_caller] -fn get_last_pending_tx_id(vault: &VaultContractProxy) -> Option { +fn get_last_pending_tx_id(vault: &VaultContractProxy) -> Option { let txs = vault.all_pending_txs_desc(None, None).unwrap().txs; txs.first().map(Tx::id) }