From 1278a9a6041c9e7fe0aab7a0ddbb4f60d41a481a Mon Sep 17 00:00:00 2001 From: Buckram Date: Tue, 2 Apr 2024 15:51:10 +0300 Subject: [PATCH 1/3] init --- contracts/carrot-app/examples/migrate.rs | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 contracts/carrot-app/examples/migrate.rs diff --git a/contracts/carrot-app/examples/migrate.rs b/contracts/carrot-app/examples/migrate.rs new file mode 100644 index 00000000..9180629b --- /dev/null +++ b/contracts/carrot-app/examples/migrate.rs @@ -0,0 +1,34 @@ +use abstract_app::objects::{namespace::ABSTRACT_NAMESPACE, AccountId}; +use abstract_client::Namespace; +use cw_orch::{ + anyhow, + daemon::{networks::OSMOSIS_1, Daemon, DaemonBuilder}, + tokio::runtime::Runtime, +}; +use dotenv::dotenv; + +use carrot_app::AppInterface; + +fn main() -> anyhow::Result<()> { + dotenv().ok(); + env_logger::init(); + let chain = OSMOSIS_1; + let rt = Runtime::new()?; + let daemon = DaemonBuilder::default() + .chain(chain) + .handle(rt.handle()) + .build()?; + + let abstr = abstract_client::AbstractClient::new(daemon)?; + + let account_id_for_migrate = AccountId::local(0); + let account_to_migrate = abstr.account_from(account_id_for_migrate)?; + account_to_migrate.application() + let publisher = abstr + .publisher_builder(Namespace::new(ABSTRACT_NAMESPACE)?) + .build()?; + + publisher.publish_app::>()?; + abstr.version_control().approve_any_abstract_modules()?; + Ok(()) +} From 672141a7341c48445a0c91868c44d0bf7af09782 Mon Sep 17 00:00:00 2001 From: Buckram Date: Tue, 2 Apr 2024 16:12:23 +0300 Subject: [PATCH 2/3] Migrate script --- contracts/carrot-app/examples/migrate.rs | 31 +++++++++++++++--------- contracts/carrot-app/src/msg.rs | 2 +- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/contracts/carrot-app/examples/migrate.rs b/contracts/carrot-app/examples/migrate.rs index 9180629b..a129b636 100644 --- a/contracts/carrot-app/examples/migrate.rs +++ b/contracts/carrot-app/examples/migrate.rs @@ -1,5 +1,7 @@ -use abstract_app::objects::{namespace::ABSTRACT_NAMESPACE, AccountId}; -use abstract_client::Namespace; +use abstract_app::objects::{module::ModuleVersion, AccountId}; +use abstract_interface::{AbstractAccount, InstallConfig, ManagerExecFns}; +use abstract_sdk::core::app::BaseMigrateMsg; +use cosmwasm_std::to_json_binary; use cw_orch::{ anyhow, daemon::{networks::OSMOSIS_1, Daemon, DaemonBuilder}, @@ -7,12 +9,13 @@ use cw_orch::{ }; use dotenv::dotenv; -use carrot_app::AppInterface; +use carrot_app::{msg::AppMigrateMsg, AppInterface}; fn main() -> anyhow::Result<()> { dotenv().ok(); env_logger::init(); - let chain = OSMOSIS_1; + let mut chain = OSMOSIS_1; + chain.grpc_urls = &["https://grpc.osmosis.zone:443"]; let rt = Runtime::new()?; let daemon = DaemonBuilder::default() .chain(chain) @@ -21,14 +24,18 @@ fn main() -> anyhow::Result<()> { let abstr = abstract_client::AbstractClient::new(daemon)?; - let account_id_for_migrate = AccountId::local(0); + // Add your account_id here + let account_id_for_migrate = AccountId::local(todo!()); let account_to_migrate = abstr.account_from(account_id_for_migrate)?; - account_to_migrate.application() - let publisher = abstr - .publisher_builder(Namespace::new(ABSTRACT_NAMESPACE)?) - .build()?; - - publisher.publish_app::>()?; - abstr.version_control().approve_any_abstract_modules()?; + let abstr_account: &AbstractAccount = account_to_migrate.as_ref(); + let mut module_info = AppInterface::::module_info()?; + module_info.version = ModuleVersion::Version("0.1.0".to_owned()); + abstr_account.manager.upgrade(vec![( + module_info, + Some(to_json_binary(&carrot_app::msg::MigrateMsg { + base: BaseMigrateMsg {}, + module: AppMigrateMsg {}, + })?), + )])?; Ok(()) } diff --git a/contracts/carrot-app/src/msg.rs b/contracts/carrot-app/src/msg.rs index dba704ca..2ebef7b9 100644 --- a/contracts/carrot-app/src/msg.rs +++ b/contracts/carrot-app/src/msg.rs @@ -80,7 +80,7 @@ pub enum AppQueryMsg { } #[cosmwasm_schema::cw_serde] -pub enum AppMigrateMsg {} +pub struct AppMigrateMsg {} #[cosmwasm_schema::cw_serde] pub struct BalanceResponse { From e5353428db1719aa3f19cb351bf28de85ecadb13 Mon Sep 17 00:00:00 2001 From: Buckram Date: Tue, 2 Apr 2024 16:29:41 +0300 Subject: [PATCH 3/3] clippy --- contracts/carrot-app/examples/migrate.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/carrot-app/examples/migrate.rs b/contracts/carrot-app/examples/migrate.rs index a129b636..8877ca49 100644 --- a/contracts/carrot-app/examples/migrate.rs +++ b/contracts/carrot-app/examples/migrate.rs @@ -1,4 +1,4 @@ -use abstract_app::objects::{module::ModuleVersion, AccountId}; +use abstract_app::objects::AccountId; use abstract_interface::{AbstractAccount, InstallConfig, ManagerExecFns}; use abstract_sdk::core::app::BaseMigrateMsg; use cosmwasm_std::to_json_binary; @@ -24,12 +24,12 @@ fn main() -> anyhow::Result<()> { let abstr = abstract_client::AbstractClient::new(daemon)?; - // Add your account_id here - let account_id_for_migrate = AccountId::local(todo!()); + // Put your account_id here + let account_id_for_migrate = AccountId::local(0); + let account_to_migrate = abstr.account_from(account_id_for_migrate)?; let abstr_account: &AbstractAccount = account_to_migrate.as_ref(); - let mut module_info = AppInterface::::module_info()?; - module_info.version = ModuleVersion::Version("0.1.0".to_owned()); + let module_info = AppInterface::::module_info()?; abstr_account.manager.upgrade(vec![( module_info, Some(to_json_binary(&carrot_app::msg::MigrateMsg {