Skip to content

Commit a225a6c

Browse files
fix: update downstream consumers of CMC CanisterSettingsArgs re-export
CMC now re-exports CanisterSettings from the public ic-management-canister-types crate (as CanisterSettingsArgs). Update downstream consumers that construct this type: - rs/sns/cli: replace BoundedVec with Vec<Principal> for controllers - rs/nns/integration_tests: replace CanisterSettingsArgsBuilder with struct literals using the public type
1 parent 7d520cb commit a225a6c

6 files changed

Lines changed: 91 additions & 89 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rs/nns/integration_tests/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ BASE_DEPENDENCIES = [
6464
"//rs/test_utilities",
6565
"//packages/ic-error-types",
6666
"//rs/types/management_canister_types",
67+
"@crate_index//:ic-management-canister-types",
6768
"//rs/types/types",
6869
"@crate_index//:crossbeam-channel",
6970
"@crate_index//:hex",

rs/nns/integration_tests/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ ic-crypto = { path = "../../crypto" }
7878
ic-crypto-sha2 = { path = "../../crypto/sha2" }
7979
ic-error-types = { path = "../../../packages/ic-error-types" }
8080
ic-http-types = { path = "../../../packages/ic-http-types" }
81+
ic-management-canister-types = { workspace = true }
8182
ic-management-canister-types-private = { path = "../../types/management_canister_types" }
8283
ic-nervous-system-common-test-keys = { path = "../../nervous_system/common/test_keys" }
8384
ic-nervous-system-root = { path = "../../nervous_system/root" }

rs/nns/integration_tests/src/cycles_minting_canister.rs

Lines changed: 85 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,18 @@ use assert_matches::assert_matches;
22
use candid::{Decode, Encode, Nat, Principal};
33
use canister_test::Canister;
44
use cycles_minting_canister::{
5-
AuthorizedSubnetsResponse, BAD_REQUEST_CYCLES_PENALTY, ChangeSubnetTypeAssignmentArgs,
6-
CreateCanister, CreateCanisterError, MEANINGFUL_MEMOS, MEMO_CREATE_CANISTER, MEMO_MINT_CYCLES,
7-
MEMO_TOP_UP_CANISTER, NotifyCreateCanister, NotifyError, NotifyErrorCode, NotifyMintCyclesArg,
8-
NotifyMintCyclesSuccess, NotifyTopUp, SubnetListWithType, SubnetTypesToSubnetsResponse,
9-
UpdateSubnetTypeArgs,
5+
AuthorizedSubnetsResponse, BAD_REQUEST_CYCLES_PENALTY, CanisterSettingsArgs,
6+
ChangeSubnetTypeAssignmentArgs, CreateCanister, CreateCanisterError, MEANINGFUL_MEMOS,
7+
MEMO_CREATE_CANISTER, MEMO_MINT_CYCLES, MEMO_TOP_UP_CANISTER, NotifyCreateCanister,
8+
NotifyError, NotifyErrorCode, NotifyMintCyclesArg, NotifyMintCyclesSuccess, NotifyTopUp,
9+
SubnetListWithType, SubnetTypesToSubnetsResponse, UpdateSubnetTypeArgs,
1010
};
1111
use dfn_candid::candid_one;
1212
use dfn_protobuf::protobuf;
1313
use ic_canister_client_sender::Sender;
1414
use ic_ledger_core::tokens::CheckedSub;
15-
// TODO(NNS1-3249): remove temporary alias `Ic00CanisterSettingsArgs`.
1615
use ic_management_canister_types_private::{
17-
CanisterIdRecord, CanisterInfoResponse, CanisterSettingsArgs as Ic00CanisterSettingsArgs,
18-
CanisterSettingsArgsBuilder, CanisterStatusResultV2, EnvironmentVariable,
16+
CanisterIdRecord, CanisterInfoResponse, CanisterStatusResultV2, EnvironmentVariable,
1917
};
2018
use ic_nervous_system_clients::canister_status::CanisterStatusResult;
2119
use ic_nervous_system_common::{E8, ONE_MONTH_SECONDS, ONE_TRILLION};
@@ -301,12 +299,11 @@ fn test_cmc_notify_create_with_settings() {
301299
//specify single controller
302300
let canister = notify_create_canister(
303301
&state_machine,
304-
Some(
305-
CanisterSettingsArgsBuilder::new()
306-
// TEST_USER1 creates the canister, so to check it didn't default to the caller we use TEST_USER2
307-
.with_controllers(vec![*TEST_USER2_PRINCIPAL])
308-
.build(),
309-
),
302+
Some(CanisterSettingsArgs {
303+
// TEST_USER1 creates the canister, so to check it didn't default to the caller we use TEST_USER2
304+
controllers: Some(vec![TEST_USER2_PRINCIPAL.0]),
305+
..Default::default()
306+
}),
310307
);
311308
let status = canister_status(&state_machine, *TEST_USER2_PRINCIPAL, canister).unwrap();
312309
assert_eq!(status.controllers(), vec![*TEST_USER2_PRINCIPAL]);
@@ -324,11 +321,10 @@ fn test_cmc_notify_create_with_settings() {
324321
specified_controllers.sort();
325322
let canister = notify_create_canister(
326323
&state_machine,
327-
Some(
328-
CanisterSettingsArgsBuilder::new()
329-
.with_controllers(specified_controllers.clone())
330-
.build(),
331-
),
324+
Some(CanisterSettingsArgs {
325+
controllers: Some(specified_controllers.iter().map(|p| p.0).collect()),
326+
..Default::default()
327+
}),
332328
);
333329
let status = canister_status(&state_machine, *TEST_USER1_PRINCIPAL, canister).unwrap();
334330
let mut canister_controllers = status.controllers();
@@ -342,23 +338,21 @@ fn test_cmc_notify_create_with_settings() {
342338
//specify no controller
343339
let canister = notify_create_canister(
344340
&state_machine,
345-
Some(
346-
CanisterSettingsArgsBuilder::new()
347-
.with_controllers(vec![])
348-
.build(),
349-
),
341+
Some(CanisterSettingsArgs {
342+
controllers: Some(vec![]),
343+
..Default::default()
344+
}),
350345
);
351346
let info = canister_info(&state_machine, universal_canister, canister);
352347
assert!(info.controllers().is_empty());
353348

354349
//specify compute allocation
355350
let canister = notify_create_canister(
356351
&state_machine,
357-
Some(dbg!(
358-
CanisterSettingsArgsBuilder::new()
359-
.with_compute_allocation(7)
360-
.build()
361-
)),
352+
Some(dbg!(CanisterSettingsArgs {
353+
compute_allocation: Some(Nat::from(7u64)),
354+
..Default::default()
355+
})),
362356
);
363357
let status = dbg!(canister_status(&state_machine, *TEST_USER1_PRINCIPAL, canister).unwrap());
364358
assert_eq!(status.controllers(), vec![*TEST_USER1_PRINCIPAL]);
@@ -370,11 +364,10 @@ fn test_cmc_notify_create_with_settings() {
370364
//specify freezing threshold
371365
let canister = notify_create_canister(
372366
&state_machine,
373-
Some(
374-
CanisterSettingsArgsBuilder::new()
375-
.with_freezing_threshold(7)
376-
.build(),
377-
),
367+
Some(CanisterSettingsArgs {
368+
freezing_threshold: Some(Nat::from(7u64)),
369+
..Default::default()
370+
}),
378371
);
379372
let status = canister_status(&state_machine, *TEST_USER1_PRINCIPAL, canister).unwrap();
380373
assert_eq!(status.controllers(), vec![*TEST_USER1_PRINCIPAL]);
@@ -386,11 +379,10 @@ fn test_cmc_notify_create_with_settings() {
386379
//specify memory allocation
387380
let canister = notify_create_canister(
388381
&state_machine,
389-
Some(
390-
CanisterSettingsArgsBuilder::new()
391-
.with_memory_allocation(7)
392-
.build(),
393-
),
382+
Some(CanisterSettingsArgs {
383+
memory_allocation: Some(Nat::from(7u64)),
384+
..Default::default()
385+
}),
394386
);
395387
let status = canister_status(&state_machine, *TEST_USER1_PRINCIPAL, canister).unwrap();
396388
assert_eq!(status.controllers(), vec![*TEST_USER1_PRINCIPAL]);
@@ -406,11 +398,18 @@ fn test_cmc_notify_create_with_settings() {
406398
}];
407399
let canister = notify_create_canister(
408400
&state_machine,
409-
Some(
410-
CanisterSettingsArgsBuilder::new()
411-
.with_environment_variables(env_vars.clone())
412-
.build(),
413-
),
401+
Some(CanisterSettingsArgs {
402+
environment_variables: Some(
403+
env_vars
404+
.iter()
405+
.map(|e| ic_management_canister_types::EnvironmentVariable {
406+
name: e.name.clone(),
407+
value: e.value.clone(),
408+
})
409+
.collect(),
410+
),
411+
..Default::default()
412+
}),
414413
);
415414
let status = canister_status(&state_machine, *TEST_USER1_PRINCIPAL, canister).unwrap();
416415
assert_eq!(status.controllers(), vec![*TEST_USER1_PRINCIPAL]);
@@ -559,11 +558,10 @@ fn test_cmc_cycles_create_with_settings() {
559558
let canister = cmc_create_canister_with_cycles(
560559
&state_machine,
561560
universal_canister,
562-
Some(
563-
CanisterSettingsArgsBuilder::new()
564-
.with_controllers(vec![*TEST_USER1_PRINCIPAL])
565-
.build(),
566-
),
561+
Some(CanisterSettingsArgs {
562+
controllers: Some(vec![TEST_USER1_PRINCIPAL.0]),
563+
..Default::default()
564+
}),
567565
None,
568566
10_000_000_000_000,
569567
)
@@ -585,11 +583,10 @@ fn test_cmc_cycles_create_with_settings() {
585583
let canister = cmc_create_canister_with_cycles(
586584
&state_machine,
587585
universal_canister,
588-
Some(
589-
CanisterSettingsArgsBuilder::new()
590-
.with_controllers(specified_controllers.clone())
591-
.build(),
592-
),
586+
Some(CanisterSettingsArgs {
587+
controllers: Some(specified_controllers.iter().map(|p| p.0).collect()),
588+
..Default::default()
589+
}),
593590
None,
594591
10_000_000_000_000,
595592
)
@@ -607,11 +604,10 @@ fn test_cmc_cycles_create_with_settings() {
607604
let canister = cmc_create_canister_with_cycles(
608605
&state_machine,
609606
universal_canister,
610-
Some(
611-
CanisterSettingsArgsBuilder::new()
612-
.with_controllers(vec![])
613-
.build(),
614-
),
607+
Some(CanisterSettingsArgs {
608+
controllers: Some(vec![]),
609+
..Default::default()
610+
}),
615611
None,
616612
10_000_000_000_000,
617613
)
@@ -623,12 +619,11 @@ fn test_cmc_cycles_create_with_settings() {
623619
let canister = cmc_create_canister_with_cycles(
624620
&state_machine,
625621
universal_canister,
626-
Some(
627-
CanisterSettingsArgsBuilder::new()
628-
.with_controllers(vec![*TEST_USER1_PRINCIPAL])
629-
.with_compute_allocation(7)
630-
.build(),
631-
),
622+
Some(CanisterSettingsArgs {
623+
controllers: Some(vec![TEST_USER1_PRINCIPAL.0]),
624+
compute_allocation: Some(Nat::from(7u64)),
625+
..Default::default()
626+
}),
632627
None,
633628
10_000_000_000_000,
634629
)
@@ -644,12 +639,11 @@ fn test_cmc_cycles_create_with_settings() {
644639
let canister = cmc_create_canister_with_cycles(
645640
&state_machine,
646641
universal_canister,
647-
Some(
648-
CanisterSettingsArgsBuilder::new()
649-
.with_controllers(vec![*TEST_USER1_PRINCIPAL])
650-
.with_freezing_threshold(7)
651-
.build(),
652-
),
642+
Some(CanisterSettingsArgs {
643+
controllers: Some(vec![TEST_USER1_PRINCIPAL.0]),
644+
freezing_threshold: Some(Nat::from(7u64)),
645+
..Default::default()
646+
}),
653647
None,
654648
10_000_000_000_000,
655649
)
@@ -665,12 +659,11 @@ fn test_cmc_cycles_create_with_settings() {
665659
let canister = cmc_create_canister_with_cycles(
666660
&state_machine,
667661
universal_canister,
668-
Some(
669-
CanisterSettingsArgsBuilder::new()
670-
.with_controllers(vec![*TEST_USER1_PRINCIPAL])
671-
.with_memory_allocation(7)
672-
.build(),
673-
),
662+
Some(CanisterSettingsArgs {
663+
controllers: Some(vec![TEST_USER1_PRINCIPAL.0]),
664+
memory_allocation: Some(Nat::from(7u64)),
665+
..Default::default()
666+
}),
674667
None,
675668
10_000_000_000_000,
676669
)
@@ -690,12 +683,19 @@ fn test_cmc_cycles_create_with_settings() {
690683
let canister = cmc_create_canister_with_cycles(
691684
&state_machine,
692685
universal_canister,
693-
Some(
694-
CanisterSettingsArgsBuilder::new()
695-
.with_controllers(vec![*TEST_USER1_PRINCIPAL])
696-
.with_environment_variables(env_vars.clone())
697-
.build(),
698-
),
686+
Some(CanisterSettingsArgs {
687+
controllers: Some(vec![TEST_USER1_PRINCIPAL.0]),
688+
environment_variables: Some(
689+
env_vars
690+
.iter()
691+
.map(|e| ic_management_canister_types::EnvironmentVariable {
692+
name: e.name.clone(),
693+
value: e.value.clone(),
694+
})
695+
.collect(),
696+
),
697+
..Default::default()
698+
}),
699699
None,
700700
10_000_000_000_000,
701701
)
@@ -1007,7 +1007,7 @@ fn send_transfer(env: &StateMachine, arg: &TransferArgs) -> Result<BlockIndex, T
10071007
/// subaccount of the CMC, which then tries to create a canister with the provided settings.
10081008
fn notify_create_canister(
10091009
state_machine: &StateMachine,
1010-
settings: Option<Ic00CanisterSettingsArgs>,
1010+
settings: Option<CanisterSettingsArgs>,
10111011
) -> CanisterId {
10121012
let transfer_args = TransferArgs {
10131013
memo: MEMO_CREATE_CANISTER,
@@ -1110,7 +1110,7 @@ fn cycles_ledger_balance_of(state_machine: &StateMachine, account: Account) -> u
11101110
fn cmc_create_canister_with_cycles(
11111111
state_machine: &StateMachine,
11121112
universal_canister: CanisterId,
1113-
settings: Option<Ic00CanisterSettingsArgs>,
1113+
settings: Option<CanisterSettingsArgs>,
11141114
subnet_type: Option<String>,
11151115
cycles: u128,
11161116
) -> Result<CanisterId, CreateCanisterError> {

rs/sns/cli/src/register_extension.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use clap::Parser;
99
use core::convert::From;
1010
use cycles_minting_canister::{CanisterSettingsArgs, CreateCanister, SubnetSelection};
1111
use ic_base_types::{CanisterId, PrincipalId, SubnetId};
12-
use ic_management_canister_types_private::BoundedVec;
1312
use ic_nervous_system_agent::{
1413
CallCanisters, Request, management_canister,
1514
sns::{self, Sns, governance::SubmittedProposal, root::SnsCanisters},
@@ -235,7 +234,7 @@ pub async fn create_extension_canister<C: CallCanisters>(
235234
cycles_amount,
236235
subnet_selection,
237236
Some(CanisterSettingsArgs {
238-
controllers: Some(BoundedVec::new(controllers)),
237+
controllers: Some(controllers.into_iter().map(|p| p.0).collect()),
239238
..Default::default()
240239
}),
241240
)

rs/sns/cli/src/upgrade_sns_controlled_canister.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use clap::Parser;
99
use core::convert::From;
1010
use cycles_minting_canister::{CanisterSettingsArgs, CreateCanister, SubnetSelection};
1111
use ic_base_types::{CanisterId, PrincipalId};
12-
use ic_management_canister_types_private::{BoundedVec, CanisterInstallMode};
12+
use ic_management_canister_types_private::CanisterInstallMode;
1313
use ic_nervous_system_agent::{
1414
CallCanisters, CanisterInfo, Request,
1515
management_canister::{self, delete_canister, stop_canister},
@@ -229,7 +229,7 @@ pub async fn create_canister_next_to<C: CallCanisters>(
229229
cycles_amount,
230230
subnet_selection,
231231
Some(CanisterSettingsArgs {
232-
controllers: Some(BoundedVec::new(controllers)),
232+
controllers: Some(controllers.into_iter().map(|p| p.0).collect()),
233233
..Default::default()
234234
}),
235235
)

0 commit comments

Comments
 (0)