Skip to content

Commit ab6a5b5

Browse files
committed
ref: os contracts
1 parent 7958c21 commit ab6a5b5

File tree

8 files changed

+122
-74
lines changed

8 files changed

+122
-74
lines changed

contracts/os/andromeda-adodb/src/tests.rs

+34-20
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ use crate::state::{ACTION_FEES, CODE_ID, LATEST_VERSION, PUBLISHER, UNPUBLISHED_
88
use andromeda_std::error::ContractError;
99
use andromeda_std::os::adodb::{ADOVersion, ActionFee, ExecuteMsg, InstantiateMsg, QueryMsg};
1010

11-
use cosmwasm_std::testing::{mock_dependencies, mock_env, message_info};
11+
use cosmwasm_std::testing::{message_info, mock_dependencies, mock_env};
1212
use rstest::rstest;
1313

1414
#[test]
1515
fn proper_initialization() {
1616
let mut deps = mock_dependencies();
17-
let info = message_info("creator", &[]);
17+
let creator = deps.api.addr_make("creator");
18+
let info = message_info(&creator, &[]);
1819
let msg = InstantiateMsg {
1920
kernel_address: MOCK_KERNEL_CONTRACT.to_string(),
2021
owner: None,
@@ -30,12 +31,13 @@ fn test_publish() {
3031
let owner = String::from("owner");
3132
let mut deps = mock_dependencies_custom(&[]);
3233
let env = mock_env();
33-
let info = message_info(owner.as_str(), &[]);
34+
let owner_addr = deps.api.addr_make(owner.as_str());
35+
let info = message_info(&owner_addr, &[]);
3436

3537
instantiate(
3638
deps.as_mut(),
3739
mock_env(),
38-
message_info(&owner, &[]),
40+
message_info(&owner_addr, &[]),
3941
InstantiateMsg {
4042
kernel_address: MOCK_KERNEL_CONTRACT.to_string(),
4143
owner: None,
@@ -182,7 +184,8 @@ fn test_publish() {
182184
assert!(vers_code_id.is_none());
183185

184186
// Test unauthorised
185-
let unauth_info = message_info("not_owner", &[]);
187+
let not_owner = deps.api.addr_make("not_owner");
188+
let unauth_info = message_info(&not_owner, &[]);
186189
let resp = execute(deps.as_mut(), env.clone(), unauth_info, msg);
187190
assert!(resp.is_err());
188191
}
@@ -192,12 +195,13 @@ fn test_unpublish() {
192195
let owner = String::from("owner");
193196
let mut deps = mock_dependencies_custom(&[]);
194197
let env = mock_env();
195-
let info = message_info(owner.as_str(), &[]);
198+
let owner_addr = deps.api.addr_make(owner.as_str());
199+
let info = message_info(&owner_addr, &[]);
196200

197201
instantiate(
198202
deps.as_mut(),
199203
mock_env(),
200-
message_info(&owner, &[]),
204+
message_info(&owner_addr, &[]),
201205
InstantiateMsg {
202206
kernel_address: MOCK_KERNEL_CONTRACT.to_string(),
203207
owner: None,
@@ -260,7 +264,8 @@ fn test_unpublish() {
260264
}
261265

262266
// Test unauthorised
263-
let unauth_info = message_info("not_owner", &[]);
267+
let not_owner = deps.api.addr_make("not_owner");
268+
let unauth_info = message_info(&not_owner, &[]);
264269
let resp = execute(deps.as_mut(), env.clone(), unauth_info.clone(), msg);
265270
assert!(resp.is_err());
266271

@@ -469,7 +474,8 @@ fn test_update_action_fees() {
469474
let owner = String::from("owner");
470475
let mut deps = mock_dependencies_custom(&[]);
471476
let env = mock_env();
472-
let info = message_info(owner.as_str(), &[]);
477+
let owner = deps.api.addr_make(owner.as_str());
478+
let info = message_info(&owner, &[]);
473479
let ado_version = ADOVersion::from_type("ado_type").with_version("0.1.0");
474480
let code_id = 1;
475481

@@ -531,7 +537,8 @@ fn test_update_action_fees() {
531537
}
532538

533539
// Test unauthorised
534-
let unauth_info = message_info("not_owner", &[]);
540+
let not_owner = deps.api.addr_make("not_owner");
541+
let unauth_info = message_info(&not_owner, &[]);
535542
let resp = execute(deps.as_mut(), env, unauth_info, msg);
536543
assert!(resp.is_err());
537544
}
@@ -541,7 +548,8 @@ fn test_remove_action_fees() {
541548
let owner = String::from("owner");
542549
let mut deps = mock_dependencies_custom(&[]);
543550
let env = mock_env();
544-
let info = message_info(owner.as_str(), &[]);
551+
let owner = deps.api.addr_make(owner.as_str());
552+
let info = message_info(&owner, &[]);
545553
let ado_version = ADOVersion::from_type("ado_type").with_version("0.1.0");
546554
let code_id = 1;
547555
let action = "action";
@@ -580,7 +588,8 @@ fn test_remove_action_fees() {
580588
)
581589
.unwrap();
582590

583-
let unauth_info = message_info("not_owner", &[]);
591+
let not_owner = deps.api.addr_make("not_owner");
592+
let unauth_info = message_info(&not_owner, &[]);
584593
let res = execute(deps.as_mut(), env.clone(), unauth_info, msg.clone()).unwrap_err();
585594
assert_eq!(res, ContractError::Unauthorized {});
586595

@@ -602,7 +611,8 @@ fn test_update_publisher() {
602611
let owner = String::from("owner");
603612
let mut deps = mock_dependencies_custom(&[]);
604613
let env = mock_env();
605-
let info = message_info(owner.as_str(), &[]);
614+
let owner = deps.api.addr_make(owner.as_str());
615+
let info = message_info(&owner, &[]);
606616
let ado_version = ADOVersion::from_type("ado_type").with_version("0.1.0");
607617
let code_id = 1;
608618
let test_publisher = "new_publisher".to_string();
@@ -644,7 +654,8 @@ fn test_update_publisher() {
644654
assert_eq!(publisher, test_publisher);
645655

646656
// Test unauthorised
647-
let unauth_info = message_info("not_owner", &[]);
657+
let not_owner = deps.api.addr_make("not_owner");
658+
let unauth_info = message_info(&not_owner, &[]);
648659
let resp = execute(deps.as_mut(), env, unauth_info, msg).unwrap_err();
649660
assert_eq!(resp, ContractError::Unauthorized {});
650661
}
@@ -654,14 +665,15 @@ fn test_get_code_id() {
654665
let owner = String::from("owner");
655666
let mut deps = mock_dependencies_custom(&[]);
656667
let env = mock_env();
657-
let info = message_info(owner.as_str(), &[]);
668+
let owner_addr = deps.api.addr_make(owner.as_str());
669+
let info = message_info(&owner_addr, &[]);
658670
let ado_version = ADOVersion::from_type("ado_type").with_version("0.1.0");
659671
let code_id = 1;
660672

661673
instantiate(
662674
deps.as_mut(),
663675
mock_env(),
664-
message_info(&owner, &[]),
676+
message_info(&owner_addr, &[]),
665677
InstantiateMsg {
666678
kernel_address: MOCK_KERNEL_CONTRACT.to_string(),
667679
owner: None,
@@ -705,11 +717,12 @@ fn test_all_ado_types() {
705717
let owner = String::from("owner");
706718
let mut deps = mock_dependencies_custom(&[]);
707719
let env = mock_env();
708-
let info = message_info(owner.as_str(), &[]);
720+
let owner_addr = deps.api.addr_make(owner.as_str());
721+
let info = message_info(&owner_addr, &[]);
709722
instantiate(
710723
deps.as_mut(),
711724
mock_env(),
712-
message_info(&owner, &[]),
725+
message_info(&owner_addr, &[]),
713726
InstantiateMsg {
714727
kernel_address: MOCK_KERNEL_CONTRACT.to_string(),
715728
owner: None,
@@ -777,13 +790,14 @@ fn test_version_updates(
777790
let owner = String::from("owner");
778791
let mut deps = mock_dependencies_custom(&[]);
779792
let env = mock_env();
780-
let info = message_info(&owner, &[]);
793+
let owner_addr = deps.api.addr_make(owner.as_str());
794+
let info = message_info(&owner_addr, &[]);
781795

782796
// Initialize contract
783797
instantiate(
784798
deps.as_mut(),
785799
mock_env(),
786-
message_info(&owner, &[]),
800+
message_info(&owner_addr, &[]),
787801
InstantiateMsg {
788802
kernel_address: MOCK_KERNEL_CONTRACT.to_string(),
789803
owner: None,

contracts/os/andromeda-economics/src/tests/mod.rs

+18-9
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@ use crate::state::BALANCES;
1414

1515
use andromeda_std::os::economics::{Cw20HookMsg, ExecuteMsg, InstantiateMsg};
1616

17-
use cosmwasm_std::testing::{mock_dependencies, mock_env, message_info};
17+
use cosmwasm_std::testing::{message_info, mock_dependencies, mock_env};
1818

1919
#[test]
2020
fn proper_initialization() {
2121
let mut deps = mock_dependencies();
22-
let info = message_info("creator", &[]);
22+
let creator = deps.api.addr_make("creator");
23+
let info = message_info(&creator, &[]);
2324
let msg = InstantiateMsg {
2425
kernel_address: MOCK_KERNEL_CONTRACT.to_string(),
2526
owner: None,
@@ -36,13 +37,15 @@ fn test_deposit() {
3637
let env = mock_env();
3738

3839
//Test No Coin Deposit
39-
let info = message_info("creator", &[]);
40+
let creator = deps.api.addr_make("creator");
41+
let info = message_info(&creator, &[]);
4042
let msg = ExecuteMsg::Deposit { address: None };
4143
let res = execute(deps.as_mut(), env.clone(), info, msg);
4244
assert!(res.is_err());
4345

4446
// Test Single Coin Deposit
45-
let info = message_info("creator", &[coin(100, "uandr")]);
47+
let creator = deps.api.addr_make("creator");
48+
let info = message_info(&creator, &[coin(100, "uandr")]);
4649
let msg = ExecuteMsg::Deposit { address: None };
4750
execute(deps.as_mut(), env.clone(), info, msg).unwrap();
4851

@@ -56,7 +59,8 @@ fn test_deposit() {
5659
assert_eq!(balance, Uint128::from(100u128));
5760

5861
// Test Multiple Coin Deposit
59-
let info = message_info("creator", &[coin(100, "uandr"), coin(100, "uusd")]);
62+
let creator = deps.api.addr_make("creator");
63+
let info = message_info(&creator, &[coin(100, "uandr"), coin(100, "uusd")]);
6064
let msg = ExecuteMsg::Deposit { address: None };
6165
execute(deps.as_mut(), env, info, msg).unwrap();
6266

@@ -122,7 +126,8 @@ fn test_spend_balance() {
122126
fn test_pay_fee() {
123127
let mut deps = mock_dependencies_custom(&[]);
124128
let env = mock_env();
125-
let info = message_info("creator", &[]);
129+
let creator = deps.api.addr_make("creator");
130+
let info = message_info(&creator, &[]);
126131
let payee = "payee";
127132

128133
let msg = ExecuteMsg::PayFee {
@@ -339,7 +344,8 @@ fn test_pay_fee() {
339344
fn test_withdraw() {
340345
let mut deps = mock_dependencies_custom(&[]);
341346
let env = mock_env();
342-
let info = message_info("creator", &[]);
347+
let creator = deps.api.addr_make("creator");
348+
let info = message_info(&creator, &[]);
343349
let asset = "uusd";
344350

345351
//Withdraw all funds
@@ -441,7 +447,9 @@ fn test_cw20_deposit() {
441447
let mut deps = mock_dependencies_custom(&[]);
442448
let env = mock_env();
443449
let asset = "cw20asset";
444-
let info = message_info(asset, &[]);
450+
let asset = deps.api.addr_make(asset);
451+
452+
let info = message_info(&asset, &[]);
445453
let depositee = "depositee";
446454
let recipient = AndrAddr::from_string("recipient");
447455

@@ -490,7 +498,8 @@ fn test_cw20_deposit() {
490498
fn test_withdraw_cw20() {
491499
let mut deps = mock_dependencies_custom(&[]);
492500
let env = mock_env();
493-
let info = message_info("creator", &[]);
501+
let creator = deps.api.addr_make("creator");
502+
let info = message_info(&creator, &[]);
494503
let asset = "uusd";
495504

496505
//Withdraw all funds

contracts/os/andromeda-ibc-registry/src/testing/tests.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ use andromeda_std::amp::AndrAddr;
22
use andromeda_std::os::ibc_registry::InstantiateMsg;
33
use andromeda_std::testing::mock_querier::MOCK_KERNEL_CONTRACT;
44
use cosmwasm_std::testing::mock_env;
5-
use cosmwasm_std::testing::{mock_dependencies, message_info};
5+
use cosmwasm_std::testing::{message_info, mock_dependencies};
66
use cosmwasm_std::Addr;
77

88
use crate::contract::instantiate;
99

1010
#[test]
1111
fn proper_initialization() {
1212
let mut deps = mock_dependencies();
13-
let info = message_info("creator", &[]);
13+
let creator = deps.api.addr_make("creator");
14+
let info = message_info(&creator, &[]);
1415
let msg = InstantiateMsg {
1516
owner: None,
1617
kernel_address: Addr::unchecked(MOCK_KERNEL_CONTRACT),

contracts/os/andromeda-kernel/src/execute.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ pub fn handle_receive_cw20(
140140
Cw20HookMsg::Send { message } => {
141141
ensure!(
142142
has_coins_merged(
143-
vec![Coin::new(amount_sent.into(), &asset_sent)].as_slice(),
143+
vec![Coin::new(amount_sent.u128(), &asset_sent)].as_slice(),
144144
message.funds.as_slice()
145145
),
146146
ContractError::InsufficientFunds {}
@@ -158,7 +158,7 @@ pub fn handle_receive_cw20(
158158
info,
159159
env,
160160
packet,
161-
vec![Coin::new(amount_sent.into(), &asset_sent)],
161+
vec![Coin::new(amount_sent.u128(), &asset_sent)],
162162
),
163163
}
164164
}
@@ -1241,6 +1241,8 @@ pub(crate) fn handle_ibc_transfer_funds(
12411241
to_address: channel_info.kernel_address.clone(),
12421242
amount: coin.clone(),
12431243
timeout: env.block.time.plus_seconds(PACKET_LIFETIME).into(),
1244+
// TODO allow optional memo
1245+
memo: None,
12441246
};
12451247
let mut resp = Response::default();
12461248

@@ -1261,6 +1263,7 @@ pub(crate) fn handle_ibc_transfer_funds(
12611263
msg: CosmosMsg::Ibc(msg),
12621264
gas_limit: None,
12631265
reply_on: cosmwasm_std::ReplyOn::Always,
1266+
payload: Binary::default(),
12641267
});
12651268

12661269
Ok(resp

contracts/os/andromeda-kernel/src/ibc.rs

+6-11
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,9 @@ pub fn ibc_packet_receive(
107107
// in a seprate function and on error write out an error ack.
108108
match do_ibc_packet_receive(deps, env, msg) {
109109
Ok(response) => Ok(response),
110-
Err(error) => Ok(IbcReceiveResponse::new()
110+
Err(error) => Ok(IbcReceiveResponse::new(make_ack_fail(error.to_string()))
111111
.add_attribute("method", "ibc_packet_receive")
112-
.add_attribute("error", error.to_string())
113-
.set_ack(make_ack_fail(error.to_string()))),
112+
.add_attribute("error", error.to_string())),
114113
}
115114
}
116115

@@ -169,8 +168,7 @@ pub fn do_ibc_packet_receive(
169168

170169
let res = execute::send(execute_env, amp_packet.messages.first().unwrap().clone())?;
171170

172-
Ok(IbcReceiveResponse::new()
173-
.set_ack(make_ack_success())
171+
Ok(IbcReceiveResponse::new(make_ack_success())
174172
.add_attributes(res.attributes)
175173
.add_submessages(res.messages)
176174
.add_events(res.events))
@@ -234,8 +232,7 @@ pub fn do_ibc_packet_receive(
234232
channel: ics20_channel_id,
235233
},
236234
)?;
237-
Ok(IbcReceiveResponse::new()
238-
.set_ack(make_ack_success())
235+
Ok(IbcReceiveResponse::new(make_ack_success())
239236
.add_attribute("recipient", recipient.as_str())
240237
.add_attributes(res.attributes)
241238
.add_submessage(SubMsg::reply_always(
@@ -288,9 +285,7 @@ pub fn ibc_register_username(
288285
},
289286
ReplyId::RegisterUsername.repr(),
290287
);
291-
Ok(IbcReceiveResponse::new()
292-
.add_submessage(sub_msg)
293-
.set_ack(make_ack_success()))
288+
Ok(IbcReceiveResponse::new(make_ack_success()).add_submessage(sub_msg))
294289
}
295290

296291
pub fn validate_order_and_version(
@@ -380,7 +375,7 @@ pub fn generate_ibc_hook_transfer_message(
380375
Ok(MsgTransfer {
381376
source_port: TRANSFER_PORT.into(),
382377
source_channel: channel.to_string(),
383-
token: Some(fund.clone().into()),
378+
token: Some(fund.clone()),
384379
sender: from_addr.to_string(),
385380
receiver: to_addr.to_string(),
386381
timeout_height: None,

contracts/os/andromeda-kernel/src/reply.rs

+3
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ pub fn on_reply_ibc_transfer(
123123
if let Reply {
124124
id: 106,
125125
result: SubMsgResult::Ok(SubMsgResponse { events, .. }),
126+
payload,
127+
gas_used,
126128
} = msg.clone()
127129
{
128130
if let Some(send_packet_event) = events.iter().find(|e| e.ty == "send_packet") {
@@ -204,6 +206,7 @@ pub fn on_reply_refund_ibc_transfer_with_msg(
204206
to_address: refund_data.original_sender.clone(),
205207
amount: refund_data.funds.clone(),
206208
timeout: env.block.time.plus_seconds(PACKET_LIFETIME).into(),
209+
memo: None,
207210
};
208211
REFUND_DATA.remove(deps.storage);
209212
Ok(Response::default()

contracts/os/andromeda-vfs/src/state.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ impl IndexList<PathInfo> for PathIndices<'_> {
2525
}
2626
}
2727

28-
pub fn paths<'a>() -> IndexedMap<'a, &'a (Addr, String), PathInfo, PathIndices<'a>> {
28+
pub fn paths<'a>() -> IndexedMap<'a, (Addr, String), PathInfo, PathIndices<'a>> {
2929
let indexes = PathIndices {
3030
address: MultiIndex::new(|_pk: &[u8], r| r.address.clone(), "path", "path_index"),
3131
parent: MultiIndex::new(

0 commit comments

Comments
 (0)