From 3990e13c3d64dc3dad6deafab08e2eb3910587ca Mon Sep 17 00:00:00 2001 From: hard-nett Date: Thu, 25 Jul 2024 02:08:47 +0000 Subject: [PATCH] dao cw-orch interface --- scripts/src/dao.rs | 30 +- scripts/src/external.rs | 167 ++--------- scripts/src/propose.rs | 9 +- scripts/src/tests/deploy/dao.rs | 42 +++ scripts/src/tests/deploy/external.rs | 275 +----------------- scripts/src/tests/deploy/mod.rs | 5 +- scripts/src/tests/deploy/propose.rs | 10 +- scripts/src/tests/external/admin_factory.rs | 15 - scripts/src/tests/external/btsg_ft_factory.rs | 15 - scripts/src/tests/external/cw721_roles.rs | 15 - scripts/src/tests/external/dao_migration.rs | 15 - scripts/src/tests/external/mod.rs | 13 + scripts/src/tests/external/payroll.rs | 15 - scripts/src/tests/external/token_swap.rs | 30 +- .../src/tests/external/tokenfactory_issuer.rs | 16 - scripts/src/tests/external/vesting.rs | 15 - scripts/src/tests/mod.rs | 25 +- 17 files changed, 165 insertions(+), 547 deletions(-) create mode 100644 scripts/src/tests/deploy/dao.rs diff --git a/scripts/src/dao.rs b/scripts/src/dao.rs index 144f03e57..533e85e13 100644 --- a/scripts/src/dao.rs +++ b/scripts/src/dao.rs @@ -1,27 +1,39 @@ use cw_orch::prelude::*; -use dao_cw_orch::{DaoDaoCore, DaoProposalSingle, DaoProposalSudo}; +use dao_cw_orch::DaoDaoCore; -// minimal dao +use crate::{ + DaoDistributionSuite, DaoExternalSuite, DaoProposalSuite, DaoStakingSuite, DaoVotingSuite, +}; + +// full dao suite pub struct DaoDao { pub dao_core: DaoDaoCore, - pub dao_proposal_single: DaoProposalSingle, - pub dao_proposal_sudo: DaoProposalSudo, + pub proposal_suite: DaoProposalSuite, + pub voting_suite: DaoVotingSuite, + pub staking_suite: DaoStakingSuite, + pub distribution_suite: DaoDistributionSuite, + pub external_suite: DaoExternalSuite, } impl DaoDao { pub fn new(chain: Chain) -> DaoDao { DaoDao:: { dao_core: DaoDaoCore::new("dao_dao_core", chain.clone()), - dao_proposal_single: DaoProposalSingle::new("dao_proposal_single", chain.clone()), - dao_proposal_sudo: DaoProposalSudo::new("dao_proposal_sudo", chain.clone()), + proposal_suite: DaoProposalSuite::new(chain.clone()), + voting_suite: DaoVotingSuite::new(chain.clone()), + staking_suite: DaoStakingSuite::new(chain.clone()), + distribution_suite: DaoDistributionSuite::new(chain.clone()), + external_suite: DaoExternalSuite::new(chain.clone()), } } pub fn upload(&self) -> Result<(), CwOrchError> { self.dao_core.upload()?; - self.dao_proposal_single.upload()?; - self.dao_proposal_sudo.upload()?; - + self.proposal_suite.upload()?; + self.voting_suite.upload()?; + self.staking_suite.upload()?; + self.distribution_suite.upload()?; + self.external_suite.upload()?; Ok(()) } } diff --git a/scripts/src/external.rs b/scripts/src/external.rs index a6331b0b9..b66c00ae1 100644 --- a/scripts/src/external.rs +++ b/scripts/src/external.rs @@ -1,152 +1,45 @@ use cw_orch::prelude::*; use dao_cw_orch::*; -// admin factory -pub struct AdminFactorySuite { - pub factory: DaoExternalAdminFactory, -} -impl AdminFactorySuite { - pub fn new(chain: Chain) -> AdminFactorySuite { - AdminFactorySuite:: { - factory: DaoExternalAdminFactory::new("cw_admin_factory", chain.clone()), - } - } - - pub fn upload(&self) -> Result<(), CwOrchError> { - self.factory.upload()?; - - Ok(()) - } -} - -// bitsong fantoken factory -pub struct FantokenFactorySuite { - pub factory: DaoExternalFantokenFactory, -} - -impl FantokenFactorySuite { - pub fn new(chain: Chain) -> FantokenFactorySuite { - FantokenFactorySuite:: { - factory: DaoExternalFantokenFactory::new("btsg_ft_factory", chain.clone()), - } - } - - pub fn upload(&self) -> Result<(), CwOrchError> { - self.factory.upload()?; - - Ok(()) - } -} - -// payroll factory -pub struct PayrollSuite { - pub payroll: DaoExternalPayrollFactory, - pub vesting: DaoExternalCwVesting, -} -impl PayrollSuite { - pub fn new(chain: Chain) -> PayrollSuite { - PayrollSuite:: { - payroll: DaoExternalPayrollFactory::new("cw_payroll", chain.clone()), - vesting: DaoExternalCwVesting::new("cw_vesting", chain.clone()), - } - } - - pub fn upload(&self) -> Result<(), CwOrchError> { - self.payroll.upload()?; - self.vesting.upload()?; - Ok(()) - } -} - -// cw tokenswap -pub struct TokenSwapSuite { - pub tokenswap: DaoExternalTokenSwap, -} -impl TokenSwapSuite { - pub fn new(chain: Chain) -> TokenSwapSuite { - TokenSwapSuite:: { - tokenswap: DaoExternalTokenSwap::new("cw_tokenswap", chain.clone()), - } - } - - pub fn upload(&self) -> Result<(), CwOrchError> { - self.tokenswap.upload()?; - - Ok(()) - } -} - -// cw-tokenfactory issuer -pub struct TokenFactorySuite { - pub tokenfactory: DaoExternalTokenfactoryIssuer, -} -impl TokenFactorySuite { - pub fn new(chain: Chain) -> TokenFactorySuite { - TokenFactorySuite:: { - tokenfactory: DaoExternalTokenfactoryIssuer::new("cw_tokenfactory", chain.clone()), - } - } - - pub fn upload(&self) -> Result<(), CwOrchError> { - self.tokenfactory.upload()?; - - Ok(()) - } -} - -// cw-vesting -pub struct VestingSuite { - pub vesting: DaoExternalCwVesting, -} - -impl VestingSuite { - pub fn new(chain: Chain) -> VestingSuite { - VestingSuite:: { - vesting: DaoExternalCwVesting::new("dao_dao_core", chain.clone()), - } - } - - pub fn upload(&self) -> Result<(), CwOrchError> { - self.vesting.upload()?; - - Ok(()) - } -} - -// cw721 roles -pub struct Cw721RolesSuite { - pub roles: DaoExternalCw721Roles, -} - -impl Cw721RolesSuite { - pub fn new(chain: Chain) -> Cw721RolesSuite { - Cw721RolesSuite:: { - roles: DaoExternalCw721Roles::new("cw721_roles", chain.clone()), - } - } - - pub fn upload(&self) -> Result<(), CwOrchError> { - self.roles.upload()?; - - Ok(()) - } -} - -// migrator -pub struct DaoMigrationSuite { +// external suite +pub struct DaoExternalSuite { + pub admin_factory: DaoExternalAdminFactory, + pub btsg_ft_factory: DaoExternalFantokenFactory, + pub payroll_factory: DaoExternalPayrollFactory, + pub cw_tokenswap: DaoExternalTokenSwap, + pub cw_tokenfactory_issuer: DaoExternalTokenfactoryIssuer, + pub cw_vesting: DaoExternalCwVesting, + pub cw721_roles: DaoExternalCw721Roles, pub migrator: DaoExternalMigrator, } -impl DaoMigrationSuite { - pub fn new(chain: Chain) -> DaoMigrationSuite { - DaoMigrationSuite:: { +impl DaoExternalSuite { + pub fn new(chain: Chain) -> DaoExternalSuite { + DaoExternalSuite:: { + admin_factory: DaoExternalAdminFactory::new("cw_admin_factory", chain.clone()), + btsg_ft_factory: DaoExternalFantokenFactory::new("btsg_ft_factory", chain.clone()), + payroll_factory: DaoExternalPayrollFactory::new("cw_payroll", chain.clone()), + cw_tokenswap: DaoExternalTokenSwap::new("cw_tokenswap", chain.clone()), + cw_tokenfactory_issuer: DaoExternalTokenfactoryIssuer::new( + "cw_tokenfactory", + chain.clone(), + ), + cw_vesting: DaoExternalCwVesting::new("cw_vesting", chain.clone()), + cw721_roles: DaoExternalCw721Roles::new("cw721_roles", chain.clone()), migrator: DaoExternalMigrator::new("dao_migrator", chain.clone()), } } pub fn upload(&self) -> Result<(), CwOrchError> { + self.admin_factory.upload()?; + self.btsg_ft_factory.upload()?; + self.payroll_factory.upload()?; + self.cw_tokenswap.upload()?; + self.cw_tokenfactory_issuer.upload()?; + self.cw_vesting.upload()?; + self.cw721_roles.upload()?; self.migrator.upload()?; Ok(()) } -} +} \ No newline at end of file diff --git a/scripts/src/propose.rs b/scripts/src/propose.rs index 5618902a3..6c72bb424 100644 --- a/scripts/src/propose.rs +++ b/scripts/src/propose.rs @@ -31,15 +31,19 @@ impl DaoPreProposeSuite { self.pre_prop_approval_single.upload()?; self.pre_prop_approver.upload()?; self.pre_prop_multiple.upload()?; + self.pre_prop_single.upload()?; Ok(()) } } +// proposal suite pub struct DaoProposalSuite { pub prop_single: DaoProposalSingle, pub prop_multiple: DaoProposalMultiple, pub prop_condocert: DaoProposalCondorcet, + pub prop_sudo: DaoProposalSudo, + pub pre_prop_suite: DaoPreProposeSuite, } impl DaoProposalSuite { @@ -48,6 +52,8 @@ impl DaoProposalSuite { prop_single: DaoProposalSingle::new("dao_proposal_single", chain.clone()), prop_multiple: DaoProposalMultiple::new("dao_proposal_multiple", chain.clone()), prop_condocert: DaoProposalCondorcet::new("dao_proposal_condocert", chain.clone()), + prop_sudo: DaoProposalSudo::new("dao_proposal_sudo", chain.clone()), + pre_prop_suite: DaoPreProposeSuite::new(chain.clone()), } } @@ -55,7 +61,8 @@ impl DaoProposalSuite { self.prop_single.upload()?; self.prop_multiple.upload()?; self.prop_condocert.upload()?; + self.prop_sudo.upload()?; + self.pre_prop_suite.upload()?; Ok(()) } } - diff --git a/scripts/src/tests/deploy/dao.rs b/scripts/src/tests/deploy/dao.rs new file mode 100644 index 000000000..94d579bfe --- /dev/null +++ b/scripts/src/tests/deploy/dao.rs @@ -0,0 +1,42 @@ +use crate::DaoDao; +use cw_orch::prelude::*; +// distribution suite +impl cw_orch::contract::Deploy for DaoDao { + // We don't have a custom error type + type Error = CwOrchError; + type DeployData = Addr; + + fn store_on(chain: Chain) -> Result { + let suite = DaoDao::new(chain.clone()); + suite.upload()?; + Ok(suite) + } + + fn deployed_state_file_path() -> Option { + None + } + + fn get_contracts_mut(&mut self) -> Vec>> { + let mut cs: Vec>> = vec![]; + let res: Vec>> = vec![Box::new(&mut self.dao_core)]; + + cs.extend(res); + cs.extend(self.distribution_suite.get_contracts_mut()); + cs.extend(self.proposal_suite.get_contracts_mut()); + cs.extend(self.staking_suite.get_contracts_mut()); + cs.extend(self.voting_suite.get_contracts_mut()); + cs.extend(self.external_suite.get_contracts_mut()); + cs + } + + fn load_from(chain: Chain) -> Result { + let suite = Self::new(chain.clone()); + Ok(suite) + } + + fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { + // ########### Upload ############## + let suite: DaoDao = DaoDao::store_on(chain.clone())?; + Ok(suite) + } +} diff --git a/scripts/src/tests/deploy/external.rs b/scripts/src/tests/deploy/external.rs index 132c614da..d09e2e8d3 100644 --- a/scripts/src/tests/deploy/external.rs +++ b/scripts/src/tests/deploy/external.rs @@ -1,288 +1,43 @@ use crate::external::*; -use btsg_ft_factory::msg::InstantiateMsg; use cw_orch::prelude::*; // admin factory -impl cw_orch::contract::Deploy for AdminFactorySuite { +impl cw_orch::contract::Deploy for DaoExternalSuite { // We don't have a custom error type type Error = CwOrchError; type DeployData = Addr; fn store_on(chain: Chain) -> Result { - let factory = AdminFactorySuite::new(chain.clone()); - factory.upload()?; - Ok(factory) - } - - fn deployed_state_file_path() -> Option { - None - } - - fn get_contracts_mut(&mut self) -> Vec>> { - vec![Box::new(&mut self.factory)] - } - - fn load_from(chain: Chain) -> Result { - let factory = Self::new(chain.clone()); - Ok(factory) - } - - fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { - // ########### Upload ############## - let suite: AdminFactorySuite = AdminFactorySuite::store_on(chain.clone())?; - suite.factory.instantiate( - &cw_admin_factory::msg::InstantiateMsg { admin: None }, - None, - None, - )?; + let suite = DaoExternalSuite::new(chain.clone()); + suite.upload()?; Ok(suite) } -} - -// payroll -impl cw_orch::contract::Deploy for PayrollSuite { - // We don't have a custom error type - type Error = CwOrchError; - type DeployData = Addr; - - fn store_on(chain: Chain) -> Result { - let payroll = PayrollSuite::new(chain.clone()); - payroll.upload()?; - - Ok(payroll) - } fn deployed_state_file_path() -> Option { None } fn get_contracts_mut(&mut self) -> Vec>> { - vec![Box::new(&mut self.payroll)] + vec![ + Box::new(&mut self.admin_factory), + Box::new(&mut self.btsg_ft_factory), + Box::new(&mut self.payroll_factory), + Box::new(&mut self.cw_tokenswap), + Box::new(&mut self.cw_tokenfactory_issuer), + Box::new(&mut self.cw_vesting), + Box::new(&mut self.cw721_roles), + Box::new(&mut self.migrator), + ] } fn load_from(chain: Chain) -> Result { - let payroll = Self::new(chain.clone()); - Ok(payroll) - } - - fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { - // ########### Upload ############## - let suite: PayrollSuite = PayrollSuite::store_on(chain.clone())?; - // ########### Instantiate ############## - let _init = suite.payroll.instantiate( - &cw_payroll_factory::msg::InstantiateMsg { - owner: Some(chain.sender_addr().to_string()), - vesting_code_id: suite.vesting.code_id()?, - }, - None, - None, - )?; - + let suite = Self::new(chain.clone()); Ok(suite) } -} - -// tokenswap - -impl cw_orch::contract::Deploy for TokenSwapSuite { - // We don't have a custom error type - type Error = CwOrchError; - type DeployData = Addr; - - fn store_on(chain: Chain) -> Result { - let tokenswap = TokenSwapSuite::new(chain.clone()); - tokenswap.upload()?; - Ok(tokenswap) - } - - fn deployed_state_file_path() -> Option { - None - } - - fn get_contracts_mut(&mut self) -> Vec>> { - vec![Box::new(&mut self.tokenswap)] - } - - fn load_from(chain: Chain) -> Result { - let tokenswap = Self::new(chain.clone()); - Ok(tokenswap) - } - - fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { - // ########### Upload ############## - let suite: TokenSwapSuite = TokenSwapSuite::store_on(chain.clone())?; - Ok(suite) - } -} - -// tokenfactory issuer -impl cw_orch::contract::Deploy for TokenFactorySuite { - // We don't have a custom error type - type Error = CwOrchError; - type DeployData = Addr; - - fn store_on(chain: Chain) -> Result { - let factory = TokenFactorySuite::new(chain.clone()); - factory.upload()?; - Ok(factory) - } - - fn deployed_state_file_path() -> Option { - None - } - - fn get_contracts_mut(&mut self) -> Vec>> { - vec![Box::new(&mut self.tokenfactory)] - } - - fn load_from(chain: Chain) -> Result { - let factory = Self::new(chain.clone()); - Ok(factory) - } - - fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { - // ########### Upload ############## - let suite: TokenFactorySuite = TokenFactorySuite::store_on(chain.clone())?; - - // ########### Instantiate ############## - // let init = TokenfactoryIssuerInit::NewToken { - // subdenom: "DAOTOKEN".into(), - // }; - // suite.tokenfactory.instantiate(&init, None, None)?; - - Ok(suite) - } -} - -// cw-vesting -impl cw_orch::contract::Deploy for VestingSuite { - // We don't have a custom error type - type Error = CwOrchError; - type DeployData = Addr; - - fn store_on(chain: Chain) -> Result { - let vesting = VestingSuite::new(chain.clone()); - vesting.upload()?; - Ok(vesting) - } - - fn deployed_state_file_path() -> Option { - None - } - - fn get_contracts_mut(&mut self) -> Vec>> { - vec![Box::new(&mut self.vesting)] - } - - fn load_from(chain: Chain) -> Result { - let vesting = Self::new(chain.clone()); - Ok(vesting) - } - - fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { - // ########### Upload ############## - let suite: VestingSuite = VestingSuite::store_on(chain.clone())?; - Ok(suite) - } -} - -// cw721-roles -impl cw_orch::contract::Deploy for Cw721RolesSuite { - // We don't have a custom error type - type Error = CwOrchError; - type DeployData = Addr; - - fn store_on(chain: Chain) -> Result { - let roles = Cw721RolesSuite::new(chain.clone()); - roles.upload()?; - Ok(roles) - } - - fn deployed_state_file_path() -> Option { - None - } - - fn get_contracts_mut(&mut self) -> Vec>> { - vec![Box::new(&mut self.roles)] - } - - fn load_from(chain: Chain) -> Result { - let roles = Self::new(chain.clone()); - Ok(roles) - } - - fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { - // ########### Upload ############## - let suite: Cw721RolesSuite = Cw721RolesSuite::store_on(chain.clone())?; - // ########### Instantiate ############## - Ok(suite) - } -} - -// dao-migrator -impl cw_orch::contract::Deploy for DaoMigrationSuite { - // We don't have a custom error type - type Error = CwOrchError; - type DeployData = Addr; - - fn store_on(chain: Chain) -> Result { - let migrator = DaoMigrationSuite::new(chain.clone()); - migrator.upload()?; - Ok(migrator) - } - - fn deployed_state_file_path() -> Option { - None - } - - fn get_contracts_mut(&mut self) -> Vec>> { - vec![Box::new(&mut self.migrator)] - } - - fn load_from(chain: Chain) -> Result { - let migrator = Self::new(chain.clone()); - Ok(migrator) - } - - fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { - // ########### Upload ############## - let suite: DaoMigrationSuite = DaoMigrationSuite::store_on(chain.clone())?; - // ########### Instantiate ############## - - Ok(suite) - } -} - -// bitsong fantoken factory -impl cw_orch::contract::Deploy for FantokenFactorySuite { - // We don't have a custom error type - type Error = CwOrchError; - type DeployData = Addr; - - fn store_on(chain: Chain) -> Result { - let factory = FantokenFactorySuite::new(chain.clone()); - factory.upload()?; - Ok(factory) - } - - fn deployed_state_file_path() -> Option { - None - } - - fn get_contracts_mut(&mut self) -> Vec>> { - vec![Box::new(&mut self.factory)] - } - - fn load_from(chain: Chain) -> Result { - let factory = Self::new(chain.clone()); - Ok(factory) - } fn deploy_on(chain: Chain, _data: Self::DeployData) -> Result { // ########### Upload ############## - let suite: FantokenFactorySuite = FantokenFactorySuite::store_on(chain.clone())?; - // ########### Instantiate ############## - suite.factory.instantiate(&InstantiateMsg {}, None, None)?; + let suite: DaoExternalSuite = DaoExternalSuite::store_on(chain.clone())?; Ok(suite) } } diff --git a/scripts/src/tests/deploy/mod.rs b/scripts/src/tests/deploy/mod.rs index 84961f911..a8eca4033 100644 --- a/scripts/src/tests/deploy/mod.rs +++ b/scripts/src/tests/deploy/mod.rs @@ -1,5 +1,6 @@ -mod external; mod distribution; -mod voting; +mod dao; +mod external; mod propose; mod staking; +mod voting; diff --git a/scripts/src/tests/deploy/propose.rs b/scripts/src/tests/deploy/propose.rs index fb519de54..0c17d9c76 100644 --- a/scripts/src/tests/deploy/propose.rs +++ b/scripts/src/tests/deploy/propose.rs @@ -1,7 +1,6 @@ use crate::propose::*; use cw_orch::prelude::*; - // pre-proposal suite impl cw_orch::contract::Deploy for DaoPreProposeSuite { // We don't have a custom error type @@ -56,11 +55,16 @@ impl cw_orch::contract::Deploy for DaoProposalSuite } fn get_contracts_mut(&mut self) -> Vec>> { - vec![ + let mut boxs = vec![]; + let prop: Vec>> = vec![ Box::new(&mut self.prop_single), Box::new(&mut self.prop_multiple), Box::new(&mut self.prop_condocert), - ] + ]; + + boxs.extend(prop); + boxs.extend(self.pre_prop_suite.get_contracts_mut()); + boxs } fn load_from(chain: Chain) -> Result { diff --git a/scripts/src/tests/external/admin_factory.rs b/scripts/src/tests/external/admin_factory.rs index beeb4a668..e69de29bb 100644 --- a/scripts/src/tests/external/admin_factory.rs +++ b/scripts/src/tests/external/admin_factory.rs @@ -1,15 +0,0 @@ -use cw_orch::{anyhow, prelude::*}; - -use crate::{ - external::AdminFactorySuite, - tests::{ADMIN, PREFIX}, -}; - -#[test] -fn test_admin() -> anyhow::Result<()> { - let mock = MockBech32::new(PREFIX); - let admin = mock.addr_make(ADMIN); - let _app = AdminFactorySuite::deploy_on(mock.clone(), admin.clone())?; - mock.next_block().unwrap(); - Ok(()) -} diff --git a/scripts/src/tests/external/btsg_ft_factory.rs b/scripts/src/tests/external/btsg_ft_factory.rs index beeb4a668..e69de29bb 100644 --- a/scripts/src/tests/external/btsg_ft_factory.rs +++ b/scripts/src/tests/external/btsg_ft_factory.rs @@ -1,15 +0,0 @@ -use cw_orch::{anyhow, prelude::*}; - -use crate::{ - external::AdminFactorySuite, - tests::{ADMIN, PREFIX}, -}; - -#[test] -fn test_admin() -> anyhow::Result<()> { - let mock = MockBech32::new(PREFIX); - let admin = mock.addr_make(ADMIN); - let _app = AdminFactorySuite::deploy_on(mock.clone(), admin.clone())?; - mock.next_block().unwrap(); - Ok(()) -} diff --git a/scripts/src/tests/external/cw721_roles.rs b/scripts/src/tests/external/cw721_roles.rs index c38a32aa6..e69de29bb 100644 --- a/scripts/src/tests/external/cw721_roles.rs +++ b/scripts/src/tests/external/cw721_roles.rs @@ -1,15 +0,0 @@ -use cw_orch::{anyhow, prelude::*}; - -use crate::{ - tests::{ADMIN, PREFIX}, - Cw721RolesSuite, -}; - -#[test] -fn test_cw721_roles() -> anyhow::Result<()> { - let mock = MockBech32::new(PREFIX); - let admin = mock.addr_make(ADMIN); - let _app = Cw721RolesSuite::deploy_on(mock.clone(), admin.clone())?; - mock.next_block().unwrap(); - Ok(()) -} diff --git a/scripts/src/tests/external/dao_migration.rs b/scripts/src/tests/external/dao_migration.rs index ed333c6a0..e69de29bb 100644 --- a/scripts/src/tests/external/dao_migration.rs +++ b/scripts/src/tests/external/dao_migration.rs @@ -1,15 +0,0 @@ -use cw_orch::{anyhow, prelude::*}; - -use crate::{ - tests::{ADMIN, PREFIX}, - DaoMigrationSuite, -}; - -#[test] -fn test_dao_migration() -> anyhow::Result<()> { - let mock = MockBech32::new(PREFIX); - let admin = mock.addr_make(ADMIN); - let _app = DaoMigrationSuite::deploy_on(mock.clone(), admin.clone())?; - mock.next_block().unwrap(); - Ok(()) -} diff --git a/scripts/src/tests/external/mod.rs b/scripts/src/tests/external/mod.rs index 0a7c11872..3b267d7e2 100644 --- a/scripts/src/tests/external/mod.rs +++ b/scripts/src/tests/external/mod.rs @@ -1,3 +1,7 @@ +use cw_orch::{anyhow, prelude::*}; +use crate::DaoExternalSuite; +use super::{ADMIN, PREFIX}; + pub mod admin_factory; pub mod btsg_ft_factory; pub mod cw721_roles; @@ -6,3 +10,12 @@ pub mod payroll; pub mod token_swap; pub mod tokenfactory_issuer; pub mod vesting; + +#[test] +fn test_external_suite() -> anyhow::Result<()> { + let mock = MockBech32::new(PREFIX); + let admin = mock.addr_make(ADMIN); + let _app = DaoExternalSuite::deploy_on(mock.clone(), admin.clone())?; + mock.next_block().unwrap(); + Ok(()) +} diff --git a/scripts/src/tests/external/payroll.rs b/scripts/src/tests/external/payroll.rs index 6fb284970..e69de29bb 100644 --- a/scripts/src/tests/external/payroll.rs +++ b/scripts/src/tests/external/payroll.rs @@ -1,15 +0,0 @@ -use cw_orch::{anyhow, prelude::*}; - -use crate::{ - external::PayrollSuite, - tests::{ADMIN, PREFIX}, -}; - -#[test] -fn test_payroll() -> anyhow::Result<()> { - let mock = MockBech32::new(PREFIX); - let admin = mock.addr_make(ADMIN); - let _app = PayrollSuite::deploy_on(mock.clone(), admin.clone())?; - mock.next_block().unwrap(); - Ok(()) -} diff --git a/scripts/src/tests/external/token_swap.rs b/scripts/src/tests/external/token_swap.rs index 25a6b4dc2..1f5a44ba0 100644 --- a/scripts/src/tests/external/token_swap.rs +++ b/scripts/src/tests/external/token_swap.rs @@ -1,43 +1,25 @@ use cw_orch::{anyhow, prelude::*}; use cw_token_swap::msg::{Counterparty, InstantiateMsg, TokenInfo}; +use dao_cw_orch::DaoExternalTokenSwap; -use crate::{ - external::TokenSwapSuite, - tests::{ADMIN, DAO1, DENOM, PREFIX}, -}; -#[test] -fn test_tokenswap() -> anyhow::Result<()> { - let mock = MockBech32::new(PREFIX); - let admin = mock.addr_make(ADMIN); - let app = TokenSwapSuite::deploy_on(mock.clone(), admin.clone())?; - setup_tokenswap_helper( - app, - mock.sender.to_string(), - mock.addr_make(DAO1).to_string(), - )?; - - mock.next_block().unwrap(); - Ok(()) -} - -fn setup_tokenswap_helper( - app: TokenSwapSuite, +fn _setup_tokenswap_helper( + app: DaoExternalTokenSwap, sender: String, counterparty: String, ) -> anyhow::Result<()> { - app.tokenswap.instantiate( + app.instantiate( &InstantiateMsg { counterparty_one: Counterparty { address: sender, promise: TokenInfo::Native { - denom: DENOM.to_string(), + denom: "juno".to_string(), amount: 1_000u128.into(), }, }, counterparty_two: Counterparty { address: counterparty, promise: TokenInfo::Native { - denom: DENOM.to_string(), + denom: "juno".to_string(), amount: 1_000u128.into(), }, }, diff --git a/scripts/src/tests/external/tokenfactory_issuer.rs b/scripts/src/tests/external/tokenfactory_issuer.rs index 46a3b9fd6..e69de29bb 100644 --- a/scripts/src/tests/external/tokenfactory_issuer.rs +++ b/scripts/src/tests/external/tokenfactory_issuer.rs @@ -1,16 +0,0 @@ -use cw_orch::{anyhow, prelude::*}; - -use crate::{ - external::TokenFactorySuite, - tests::{ADMIN, PREFIX}, -}; - -#[test] -fn test_tokenfactory() -> anyhow::Result<()> { - let mock = MockBech32::new(PREFIX); - let admin = mock.addr_make(ADMIN); - let _app = TokenFactorySuite::deploy_on(mock.clone(), admin.clone())?; - - mock.next_block().unwrap(); - Ok(()) -} diff --git a/scripts/src/tests/external/vesting.rs b/scripts/src/tests/external/vesting.rs index 0bebbfaf7..e69de29bb 100644 --- a/scripts/src/tests/external/vesting.rs +++ b/scripts/src/tests/external/vesting.rs @@ -1,15 +0,0 @@ -use cw_orch::{anyhow, prelude::*}; - -use crate::{ - tests::{ADMIN, PREFIX}, - VestingSuite, -}; - -#[test] -fn test_vesting() -> anyhow::Result<()> { - let mock = MockBech32::new(PREFIX); - let admin = mock.addr_make(ADMIN); - let _app = VestingSuite::deploy_on(mock.clone(), admin.clone())?; - mock.next_block().unwrap(); - Ok(()) -} diff --git a/scripts/src/tests/mod.rs b/scripts/src/tests/mod.rs index 99a8bafb9..3af2e8f06 100644 --- a/scripts/src/tests/mod.rs +++ b/scripts/src/tests/mod.rs @@ -1,11 +1,26 @@ +use cw_orch::{anyhow, prelude::*}; + +use crate::DaoDao; + mod deploy; -mod external; -mod voting; -mod staking; mod distribution; +mod external; mod propose; +mod staking; +mod voting; pub(crate) const PREFIX: &str = "mock"; pub(crate) const ADMIN: &str = "admin"; -pub(crate) const DENOM: &str = "juno"; -pub(crate) const DAO1: &str = "dao1"; +// pub(crate) const DENOM: &str = "juno"; +// pub(crate) const DAO1: &str = "dao1"; + + + +#[test] +fn test_dao_suite() -> anyhow::Result<()> { + let mock = MockBech32::new(PREFIX); + let admin = mock.addr_make(ADMIN); + let _app = DaoDao::deploy_on(mock.clone(), admin.clone())?; + mock.next_block().unwrap(); + Ok(()) +}