Skip to content

Commit

Permalink
Merge pull request #73 from AbstractSDK/nicolas/abs-420-remove-adapte…
Browse files Browse the repository at this point in the history
…r-impl_into-and-derive-macro-on-adapter-execute

Removed adapter cw-orch messages
  • Loading branch information
CyberHoward authored May 20, 2024
2 parents 522f1e9 + e8e456e commit b8a15bb
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 12 deletions.
2 changes: 0 additions & 2 deletions contracts/adapter/src/msg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ pub struct MyAdapterInstantiateMsg {}

/// Adapter execute messages
#[cosmwasm_schema::cw_serde]
#[derive(cw_orch::ExecuteFns)]
#[impl_into(ExecuteMsg)]
pub enum MyAdapterExecuteMsg {
/// Set status of your account
SetStatus { status: String },
Expand Down
35 changes: 25 additions & 10 deletions contracts/adapter/tests/integration.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
use my_adapter::{
contract::interface::MyAdapterInterface,
msg::{ConfigResponse, MyAdapterExecuteMsgFns, MyAdapterInstantiateMsg, MyAdapterQueryMsgFns},
MyAdapterExecuteMsg, MY_NAMESPACE,
msg::{ConfigResponse, ExecuteMsg, MyAdapterInstantiateMsg, MyAdapterQueryMsgFns},
MyAdapterExecuteMsg, MY_ADAPTER_ID, MY_NAMESPACE,
};

use abstract_adapter::std::{adapter::AdapterRequestMsg, objects::namespace::Namespace};
use abstract_client::{AbstractClient, Application};
use abstract_client::{AbstractClient, Application, Publisher};
use cosmwasm_std::coins;
// Use prelude to get all the necessary imports
use cw_orch::{anyhow, prelude::*};

struct TestEnv<Env: CwEnv> {
publisher: Publisher<Env>,
abs: AbstractClient<Env>,
adapter: Application<Env, MyAdapterInterface<Env>>,
}
Expand Down Expand Up @@ -41,6 +42,7 @@ impl TestEnv<MockBech32> {

Ok(TestEnv {
abs: abs_client,
publisher,
adapter,
})
}
Expand Down Expand Up @@ -105,20 +107,33 @@ fn set_status() -> anyhow::Result<()> {
let first_status = "my_status".to_owned();
let second_status = "my_status".to_owned();

adapter
.call_as(&adapter.account().manager()?)
.set_status(first_status.clone())?;
let subaccount = &env.publisher.account().sub_accounts()?[0];

subaccount.as_ref().manager.execute_on_module(
MY_ADAPTER_ID,
ExecuteMsg::Module(AdapterRequestMsg {
proxy_address: Some(subaccount.proxy()?.to_string()),
request: MyAdapterExecuteMsg::SetStatus {
status: first_status.clone(),
},
}),
)?;

let new_account = env
.abs
.account_builder()
.install_adapter::<MyAdapterInterface<MockBech32>>()?
.build()?;

// For adapters can use same object across accounts
adapter
.call_as(&new_account.manager()?)
.set_status(second_status.clone())?;
new_account.as_ref().manager.execute_on_module(
MY_ADAPTER_ID,
ExecuteMsg::Module(AdapterRequestMsg {
proxy_address: Some(new_account.proxy()?.to_string()),
request: MyAdapterExecuteMsg::SetStatus {
status: second_status.clone(),
},
}),
)?;

let status_response = adapter.status(adapter.account().id()?)?;
assert_eq!(status_response.status, Some(first_status));
Expand Down

0 comments on commit b8a15bb

Please sign in to comment.