Skip to content

Commit 233bdbf

Browse files
authored
Fix remaining issues in multi-canister Rust factory section (#7)
- create_canister → create_canister_with_extra_cycles (2-arg version) - Add missing wasm_memory_threshold field to CanisterSettings - Fix ic_cdk::id() → ic_cdk::api::id() - Remove .unwrap() on StableCell::init() (v0.7 returns Self not Result) - Remove .unwrap() on StableCell::set() (v0.7 returns T not Result) - Fix --storage-mode=plaintext → --storage plaintext (icp-cli syntax) - Add Nat import needed for CanisterSettings fields
1 parent 48a5e5e commit 233bdbf

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

skills/multi-canister/SKILL.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -536,7 +536,7 @@ thread_local! {
536536
StableCell::init(
537537
MEMORY_MANAGER.with(|m| m.borrow().get(MemoryId::new(1))),
538538
0u64,
539-
).unwrap()
539+
)
540540
);
541541

542542
// Store the user_service canister ID (set during init, re-set on upgrade)
@@ -596,7 +596,7 @@ async fn create_post(title: String, body: String) -> Result<Post, String> {
596596
let id = POST_COUNTER.with(|counter| {
597597
let mut counter = counter.borrow_mut();
598598
let id = *counter.get();
599-
counter.set(id + 1).unwrap();
599+
counter.set(id + 1);
600600
id
601601
});
602602

@@ -755,9 +755,9 @@ persistent actor Self {
755755
#### Rust Factory
756756

757757
```rust
758-
use candid::{CandidType, Deserialize, Principal, encode_one};
758+
use candid::{CandidType, Deserialize, Nat, Principal, encode_one};
759759
use ic_cdk::management_canister::{
760-
create_canister, install_code,
760+
create_canister_with_extra_cycles, install_code,
761761
CreateCanisterArgs, InstallCodeArgs, CanisterInstallMode, CanisterSettings,
762762
};
763763
use ic_cdk::update;
@@ -787,18 +787,19 @@ async fn create_child_canister(wasm_module: Vec<u8>) -> Principal {
787787
// Create canister
788788
let create_args = CreateCanisterArgs {
789789
settings: Some(CanisterSettings {
790-
controllers: Some(vec![ic_cdk::id(), caller]),
790+
controllers: Some(vec![ic_cdk::api::id(), caller]),
791791
compute_allocation: None,
792792
memory_allocation: None,
793793
freezing_threshold: None,
794794
reserved_cycles_limit: None,
795795
log_visibility: None,
796796
wasm_memory_limit: None,
797+
wasm_memory_threshold: None,
797798
}),
798799
};
799800

800801
// Attach 1T cycles for the new canister
801-
let create_result = create_canister(&create_args, 1_000_000_000_000u128)
802+
let create_result = create_canister_with_extra_cycles(&create_args, 1_000_000_000_000u128)
802803
.await
803804
.expect("Failed to create canister");
804805

@@ -943,7 +944,7 @@ icp canister call content_service createPost '("Test Title", "Test Body")'
943944
# Expected: (variant { ok = record { ... } })
944945

945946
# Create a new identity that is NOT registered
946-
icp identity new unregistered --storage-mode=plaintext
947+
icp identity new unregistered --storage plaintext
947948
icp identity default unregistered
948949
icp canister call content_service createPost '("Should Fail", "No user")'
949950
# Expected: (variant { err = "User not registered" })

0 commit comments

Comments
 (0)