From 18cbcceba064c763e007837d9b50cca4d8571f33 Mon Sep 17 00:00:00 2001 From: quasisamurai Date: Thu, 1 Feb 2024 11:27:19 -0300 Subject: [PATCH] fix int-tests --- .../examples/vesting-lp_schema.rs | 4 +- contracts/vesting-lp-pcl/src/msg.rs | 2 +- .../vesting-lp-pcl/src/tests/integration.rs | 26 +- packages/vesting-base-lp/src/handlers.rs | 11 +- packages/vesting-base-lp/src/state.rs | 4 +- packages/vesting-base-pcl/src/builder.rs | 2 +- packages/vesting-base-pcl/src/lib.rs | 3 - packages/vesting-base-pcl/src/testing.rs | 484 ------------------ 8 files changed, 16 insertions(+), 520 deletions(-) delete mode 100644 packages/vesting-base-pcl/src/testing.rs diff --git a/contracts/vesting-lp-pcl/examples/vesting-lp_schema.rs b/contracts/vesting-lp-pcl/examples/vesting-lp_schema.rs index 90284134..6f1967f3 100644 --- a/contracts/vesting-lp-pcl/examples/vesting-lp_schema.rs +++ b/contracts/vesting-lp-pcl/examples/vesting-lp_schema.rs @@ -1,6 +1,6 @@ use cosmwasm_schema::write_api; -use vesting_base::msg::{ExecuteMsg, MigrateMsg, QueryMsg}; -use vesting_lp::msg::InstantiateMsg; +use vesting_base_pcl::msg::{ExecuteMsg, MigrateMsg, QueryMsg}; +use vesting_lp_pcl::msg::InstantiateMsg; fn main() { write_api! { diff --git a/contracts/vesting-lp-pcl/src/msg.rs b/contracts/vesting-lp-pcl/src/msg.rs index 4b40f2eb..69bebd7e 100644 --- a/contracts/vesting-lp-pcl/src/msg.rs +++ b/contracts/vesting-lp-pcl/src/msg.rs @@ -1,5 +1,5 @@ -use cosmwasm_schema::cw_serde; use astroport::asset::AssetInfo; +use cosmwasm_schema::cw_serde; /// This structure describes the parameters used for creating a contract. #[cw_serde] diff --git a/contracts/vesting-lp-pcl/src/tests/integration.rs b/contracts/vesting-lp-pcl/src/tests/integration.rs index 5a150e97..a8f2a6a4 100644 --- a/contracts/vesting-lp-pcl/src/tests/integration.rs +++ b/contracts/vesting-lp-pcl/src/tests/integration.rs @@ -6,12 +6,12 @@ use cosmwasm_std::{coin, coins, to_binary, Addr, StdResult, Timestamp, Uint128}; use cw20::{BalanceResponse, Cw20ExecuteMsg, Cw20QueryMsg, MinterResponse}; use cw_multi_test::{App, ContractWrapper, Executor}; use cw_utils::PaymentError; -use vesting_base::error::ContractError; -use vesting_base::msg::{ +use vesting_base_pcl::error::ContractError; +use vesting_base_pcl::msg::{ Cw20HookMsg, ExecuteMsg, ExecuteMsgWithManagers, QueryMsg, QueryMsgHistorical, QueryMsgWithManagers, }; -use vesting_base::types::{ +use vesting_base_pcl::types::{ Config, VestingAccount, VestingAccountResponse, VestingSchedule, VestingSchedulePoint, }; @@ -1195,7 +1195,9 @@ fn instantiate_vesting(app: &mut App, cw20_token_instance: &Addr) -> Addr { let init_msg = InstantiateMsg { owner: OWNER1.to_string(), token_info_manager: TOKEN_MANAGER.to_string(), + xyk_vesting_lp_contract: "test".to_string(), vesting_managers: vec![], + vesting_token: token_asset_info(cw20_token_instance.clone()), }; let vesting_instance = app @@ -1208,17 +1210,6 @@ fn instantiate_vesting(app: &mut App, cw20_token_instance: &Addr) -> Addr { None, ) .unwrap(); - let set_vesting_token_msg = ExecuteMsg::SetVestingToken { - vesting_token: token_asset_info(cw20_token_instance.clone()), - }; - app.execute_contract( - token_manager, - vesting_instance.clone(), - &set_vesting_token_msg, - &[], - ) - .unwrap(); - let res: Config = app .wrap() .query_wasm_smart(vesting_instance.clone(), &QueryMsg::Config {}) @@ -1249,16 +1240,13 @@ fn instantiate_vesting_remote_chain(app: &mut App) -> Addr { owner: OWNER1.to_string(), token_info_manager: TOKEN_MANAGER.to_string(), vesting_managers: vec![], + vesting_token: native_asset_info(VESTING_TOKEN.to_string()), + xyk_vesting_lp_contract: "test".to_string(), }; let res = app .instantiate_contract(vesting_code_id, owner, &init_msg, &[], "Vesting", None) .unwrap(); - let msg = ExecuteMsg::SetVestingToken { - vesting_token: native_asset_info(VESTING_TOKEN.to_string()), - }; - app.execute_contract(token_manager, res.clone(), &msg, &[]) - .unwrap(); res } diff --git a/packages/vesting-base-lp/src/handlers.rs b/packages/vesting-base-lp/src/handlers.rs index 4fb43d5c..45765510 100644 --- a/packages/vesting-base-lp/src/handlers.rs +++ b/packages/vesting-base-lp/src/handlers.rs @@ -3,13 +3,11 @@ use crate::ext_historical::{handle_execute_historical_msg, handle_query_historic use crate::ext_managed::{handle_execute_managed_msg, handle_query_managed_msg}; use crate::ext_with_managers::{handle_execute_with_managers_msg, handle_query_managers_msg}; use crate::msg::{CallbackMsg, Cw20HookMsg, ExecuteMsg, MigrateMsg, QueryMsg}; -use crate::state::{ - read_vesting_infos, vesting_info, vesting_state, XYK_TO_CL_MIGRATION_CONFIG, -}; +use crate::state::{read_vesting_infos, vesting_info, vesting_state, XYK_TO_CL_MIGRATION_CONFIG}; use crate::state::{CONFIG, OWNERSHIP_PROPOSAL, VESTING_MANAGERS}; use crate::types::{ - Config, OrderBy, VestingAccount, VestingAccountResponse, - VestingAccountsResponse, VestingInfo, VestingSchedule, VestingState, XykToClMigrationConfig, + Config, OrderBy, VestingAccount, VestingAccountResponse, VestingAccountsResponse, VestingInfo, + VestingSchedule, VestingState, XykToClMigrationConfig, }; use astroport::asset::{ addr_opt_validate, native_asset, token_asset_info, AssetInfo, AssetInfoExt, PairInfo, @@ -290,7 +288,7 @@ fn execute_migrate_liquidity( info: MessageInfo, env: Env, slippage_tolerance: Option, - user: Option + user: Option, ) -> Result { let config = CONFIG.load(deps.storage)?; let migration_config: XykToClMigrationConfig = XYK_TO_CL_MIGRATION_CONFIG.load(deps.storage)?; @@ -598,7 +596,6 @@ fn post_migration_vesting_reschedule_callback( /// Exposes all the queries available in the contract. pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> StdResult { - match msg { QueryMsg::Config {} => Ok(to_binary(&query_config(deps)?)?), QueryMsg::VestingAccount { address } => { diff --git a/packages/vesting-base-lp/src/state.rs b/packages/vesting-base-lp/src/state.rs index de7c443a..db3cac06 100644 --- a/packages/vesting-base-lp/src/state.rs +++ b/packages/vesting-base-lp/src/state.rs @@ -1,6 +1,4 @@ -use crate::types::{ - Config, OrderBy, VestingInfo, VestingState, XykToClMigrationConfig, -}; +use crate::types::{Config, OrderBy, VestingInfo, VestingState, XykToClMigrationConfig}; use astroport::common::OwnershipProposal; use cosmwasm_std::{Addr, Deps, StdResult}; use cw_storage_plus::{Bound, Item, Map, SnapshotItem, SnapshotMap, Strategy}; diff --git a/packages/vesting-base-pcl/src/builder.rs b/packages/vesting-base-pcl/src/builder.rs index 46dc0e7d..ccb84162 100644 --- a/packages/vesting-base-pcl/src/builder.rs +++ b/packages/vesting-base-pcl/src/builder.rs @@ -1,7 +1,7 @@ use crate::state::{CONFIG, VESTING_MANAGERS}; use crate::types::{Config, Extensions}; -use cosmwasm_std::{DepsMut, StdResult}; use astroport::asset::AssetInfo; +use cosmwasm_std::{DepsMut, StdResult}; /// A builder for vesting contracts with different extensions. #[derive(Default)] diff --git a/packages/vesting-base-pcl/src/lib.rs b/packages/vesting-base-pcl/src/lib.rs index 2de7b374..594d5e36 100644 --- a/packages/vesting-base-pcl/src/lib.rs +++ b/packages/vesting-base-pcl/src/lib.rs @@ -8,6 +8,3 @@ pub mod types; pub(crate) mod ext_historical; pub(crate) mod ext_managed; pub(crate) mod ext_with_managers; - -#[cfg(test)] -mod testing; diff --git a/packages/vesting-base-pcl/src/testing.rs b/packages/vesting-base-pcl/src/testing.rs deleted file mode 100644 index 3d11af41..00000000 --- a/packages/vesting-base-pcl/src/testing.rs +++ /dev/null @@ -1,484 +0,0 @@ -use crate::builder::VestingBaseBuilder; -use crate::error::{ext_unsupported_err, ContractError}; -use crate::handlers::{execute, query}; -use crate::msg::{ - ExecuteMsg, ExecuteMsgManaged, QueryMsg, QueryMsgHistorical, QueryMsgWithManagers, -}; -use crate::types::{Config, Extensions}; -use astroport::asset::token_asset_info; -use cosmwasm_std::testing::{mock_dependencies, mock_env, mock_info}; -use cosmwasm_std::{from_binary, Addr}; - -#[test] -fn set_vesting_token() { - let mut deps = mock_dependencies(); - let owner = String::from("owner"); - let token_info_manager = "token_info_manager"; - let env = mock_env(); - VestingBaseBuilder::default() - .build(deps.as_mut(), owner, String::from(token_info_manager)) - .unwrap(); - - // check initialisation - assert_eq!( - from_binary::(&query(deps.as_ref(), env.clone(), QueryMsg::Config {}).unwrap()) - .unwrap(), - Config { - owner: Addr::unchecked("owner"), - token_info_manager: Addr::unchecked(token_info_manager), - vesting_token: None, - extensions: Extensions { - historical: false, - managed: false, - with_managers: false - } - } - ); - - let info = mock_info("stranger", &[]); - // set vesting token by a stranger -> Unauthorized - assert_eq!( - execute( - deps.as_mut(), - env.clone(), - info, - ExecuteMsg::SetVestingToken { - vesting_token: token_asset_info(Addr::unchecked("ntrn_token")), - }, - ) - .unwrap_err(), - ContractError::Unauthorized {}, - ); - - // set vesting token by the manager -> Success - let info = mock_info("token_info_manager", &[]); - execute( - deps.as_mut(), - env.clone(), - info.clone(), - ExecuteMsg::SetVestingToken { - vesting_token: token_asset_info(Addr::unchecked("ntrn_token")), - }, - ) - .unwrap(); - - assert_eq!( - from_binary::(&query(deps.as_ref(), env.clone(), QueryMsg::Config {}).unwrap()) - .unwrap(), - Config { - owner: Addr::unchecked("owner"), - token_info_manager: Addr::unchecked(token_info_manager), - vesting_token: Some(token_asset_info(Addr::unchecked("ntrn_token"))), - extensions: Extensions { - historical: false, - managed: false, - with_managers: false - } - } - ); - - // set vesting token second time by the owner -> VestingTokenAlreadySet - assert_eq!( - execute( - deps.as_mut(), - env.clone(), - info, - ExecuteMsg::SetVestingToken { - vesting_token: token_asset_info(Addr::unchecked("not_a_ntrn_token")), - }, - ) - .unwrap_err(), - ContractError::VestingTokenAlreadySet {}, - ); - - assert_eq!( - from_binary::(&query(deps.as_ref(), env, QueryMsg::Config {}).unwrap()).unwrap(), - Config { - owner: Addr::unchecked("owner"), - token_info_manager: Addr::unchecked(token_info_manager), - vesting_token: Some(token_asset_info(Addr::unchecked("ntrn_token"))), - extensions: Extensions { - historical: false, - managed: false, - with_managers: false - } - } - ); -} - -#[test] -fn proper_building_standard() { - let mut deps = mock_dependencies(); - let owner = String::from("owner"); - let token_info_manager = "token_info_manager"; - let env = mock_env(); - let info = mock_info("owner", &[]); - VestingBaseBuilder::default() - .build(deps.as_mut(), owner, String::from(token_info_manager)) - .unwrap(); - - // check initialisation - assert_eq!( - from_binary::(&query(deps.as_ref(), env.clone(), QueryMsg::Config {}).unwrap()) - .unwrap(), - Config { - owner: Addr::unchecked("owner"), - token_info_manager: Addr::unchecked(token_info_manager), - vesting_token: None, - extensions: Extensions { - historical: false, - managed: false, - with_managers: false - } - } - ); - - // make sure with_managers extension is not enabled - assert_eq!( - query( - deps.as_ref(), - env.clone(), - QueryMsg::WithManagersExtension { - msg: QueryMsgWithManagers::VestingManagers {} - } - ) - .unwrap_err(), - ext_unsupported_err("with_managers") - ); - - // make sure historical extension is not enabled - assert_eq!( - query( - deps.as_ref(), - env.clone(), - QueryMsg::HistoricalExtension { - msg: QueryMsgHistorical::UnclaimedTotalAmountAtHeight { height: 1000u64 } - } - ) - .unwrap_err(), - ext_unsupported_err("historical") - ); - - // make sure managed extension is not enabled - assert_eq!( - execute( - deps.as_mut(), - env, - info, - ExecuteMsg::ManagedExtension { - msg: ExecuteMsgManaged::RemoveVestingAccounts { - vesting_accounts: vec![], - clawback_account: String::from("clawback") - } - }, - ) - .unwrap_err(), - ext_unsupported_err("managed").into() - ); -} - -#[test] -fn proper_building_managers() { - let mut deps = mock_dependencies(); - let owner = String::from("owner"); - let token_info_manager = "token_info_manager"; - let env = mock_env(); - let info = mock_info("owner", &[]); - let vesting_managers = vec!["manager1".to_string(), "manager2".to_string()]; - VestingBaseBuilder::default() - .with_managers(vesting_managers.clone()) - .build(deps.as_mut(), owner, String::from(token_info_manager)) - .unwrap(); - - // check initialisation - assert_eq!( - from_binary::(&query(deps.as_ref(), env.clone(), QueryMsg::Config {}).unwrap()) - .unwrap(), - Config { - owner: Addr::unchecked("owner"), - token_info_manager: Addr::unchecked(token_info_manager), - vesting_token: None, - extensions: Extensions { - historical: false, - managed: false, - with_managers: true - } - } - ); - - // make sure with_managers extension is enabled - assert_eq!( - from_binary::>( - &query( - deps.as_ref(), - env.clone(), - QueryMsg::WithManagersExtension { - msg: QueryMsgWithManagers::VestingManagers {}, - }, - ) - .unwrap() - ) - .unwrap(), - vesting_managers - ); - - // make sure historical extension is not enabled - assert_eq!( - query( - deps.as_ref(), - env.clone(), - QueryMsg::HistoricalExtension { - msg: QueryMsgHistorical::UnclaimedTotalAmountAtHeight { height: 1000u64 } - } - ) - .unwrap_err(), - ext_unsupported_err("historical") - ); - - // make sure managed extension is not enabled - assert_eq!( - execute( - deps.as_mut(), - env, - info, - ExecuteMsg::ManagedExtension { - msg: ExecuteMsgManaged::RemoveVestingAccounts { - vesting_accounts: vec![], - clawback_account: String::from("clawback"), - }, - }, - ) - .unwrap_err(), - ext_unsupported_err("managed").into() - ); -} - -#[test] -fn proper_building_historical() { - let mut deps = mock_dependencies(); - let owner = String::from("owner"); - let token_info_manager = "token_info_manager"; - let env = mock_env(); - let info = mock_info("owner", &[]); - VestingBaseBuilder::default() - .historical() - .build(deps.as_mut(), owner, String::from(token_info_manager)) - .unwrap(); - - // check initialisation - assert_eq!( - from_binary::(&query(deps.as_ref(), env.clone(), QueryMsg::Config {}).unwrap()) - .unwrap(), - Config { - owner: Addr::unchecked("owner"), - token_info_manager: Addr::unchecked(token_info_manager), - vesting_token: None, - extensions: Extensions { - historical: true, - managed: false, - with_managers: false - } - } - ); - - // make sure with_managers extension is not enabled - assert_eq!( - query( - deps.as_ref(), - env.clone(), - QueryMsg::WithManagersExtension { - msg: QueryMsgWithManagers::VestingManagers {} - } - ) - .unwrap_err(), - ext_unsupported_err("with_managers") - ); - - // make sure historical extension is enabled - query( - deps.as_ref(), - env.clone(), - QueryMsg::HistoricalExtension { - msg: QueryMsgHistorical::UnclaimedTotalAmountAtHeight { height: 1000u64 }, - }, - ) - .unwrap(); - - // make sure managed extension is not enabled - assert_eq!( - execute( - deps.as_mut(), - env, - info, - ExecuteMsg::ManagedExtension { - msg: ExecuteMsgManaged::RemoveVestingAccounts { - vesting_accounts: vec![], - clawback_account: String::from("clawback") - } - }, - ) - .unwrap_err(), - ext_unsupported_err("managed").into() - ); -} - -#[test] -fn proper_building_managed() { - let mut deps = mock_dependencies(); - let owner = String::from("owner"); - let token_info_manager = "token_info_manager"; - let env = mock_env(); - VestingBaseBuilder::default() - .managed() - .build(deps.as_mut(), owner, String::from(token_info_manager)) - .unwrap(); - - // check initialisation and set vesting token - assert_eq!( - from_binary::(&query(deps.as_ref(), env.clone(), QueryMsg::Config {}).unwrap()) - .unwrap(), - Config { - owner: Addr::unchecked("owner"), - token_info_manager: Addr::unchecked(token_info_manager), - vesting_token: None, - extensions: Extensions { - historical: false, - managed: true, - with_managers: false - } - } - ); - let info = mock_info("token_info_manager", &[]); - execute( - deps.as_mut(), - env.clone(), - info, - ExecuteMsg::SetVestingToken { - vesting_token: token_asset_info(Addr::unchecked("ntrn_token")), - }, - ) - .unwrap(); - - // make sure with_managers extension is not enabled - assert_eq!( - query( - deps.as_ref(), - env.clone(), - QueryMsg::WithManagersExtension { - msg: QueryMsgWithManagers::VestingManagers {} - } - ) - .unwrap_err(), - ext_unsupported_err("with_managers") - ); - - // make sure historical extension is not enabled - assert_eq!( - query( - deps.as_ref(), - env.clone(), - QueryMsg::HistoricalExtension { - msg: QueryMsgHistorical::UnclaimedTotalAmountAtHeight { height: 1000u64 } - } - ) - .unwrap_err(), - ext_unsupported_err("historical") - ); - - // make sure managed extension is enabled - let info = mock_info("owner", &[]); - execute( - deps.as_mut(), - env, - info, - ExecuteMsg::ManagedExtension { - msg: ExecuteMsgManaged::RemoveVestingAccounts { - vesting_accounts: vec![], - clawback_account: String::from("clawback"), - }, - }, - ) - .unwrap(); -} - -#[test] -fn proper_building_all_extensions() { - let mut deps = mock_dependencies(); - let owner = String::from("owner"); - let token_info_manager = "token_info_manager"; - let env = mock_env(); - let vesting_managers = vec!["manager1".to_string(), "manager2".to_string()]; - VestingBaseBuilder::default() - .historical() - .managed() - .with_managers(vesting_managers.clone()) - .build(deps.as_mut(), owner, String::from(token_info_manager)) - .unwrap(); - - // check initialisation and set vesting token - assert_eq!( - from_binary::(&query(deps.as_ref(), env.clone(), QueryMsg::Config {}).unwrap()) - .unwrap(), - Config { - owner: Addr::unchecked("owner"), - token_info_manager: Addr::unchecked(token_info_manager), - vesting_token: None, - extensions: Extensions { - historical: true, - managed: true, - with_managers: true - } - } - ); - let info = mock_info("token_info_manager", &[]); - execute( - deps.as_mut(), - env.clone(), - info, - ExecuteMsg::SetVestingToken { - vesting_token: token_asset_info(Addr::unchecked("ntrn_token")), - }, - ) - .unwrap(); - - // make sure with_managers extension is enabled - assert_eq!( - from_binary::>( - &query( - deps.as_ref(), - env.clone(), - QueryMsg::WithManagersExtension { - msg: QueryMsgWithManagers::VestingManagers {}, - }, - ) - .unwrap() - ) - .unwrap(), - vesting_managers - ); - - // make sure historical extension is enabled - query( - deps.as_ref(), - env.clone(), - QueryMsg::HistoricalExtension { - msg: QueryMsgHistorical::UnclaimedTotalAmountAtHeight { height: 1000u64 }, - }, - ) - .unwrap(); - - // make sure managed extension is enabled - let info = mock_info("owner", &[]); - execute( - deps.as_mut(), - env, - info, - ExecuteMsg::ManagedExtension { - msg: ExecuteMsgManaged::RemoveVestingAccounts { - vesting_accounts: vec![], - clawback_account: String::from("clawback"), - }, - }, - ) - .unwrap(); -}