Fix round 7: canister_self, StableCell<Principal>, evm-rpc import path#9
Merged
Fix round 7: canister_self, StableCell<Principal>, evm-rpc import path#9
Conversation
- ckbtc: ic_cdk::api::id() → ic_cdk::api::canister_self() (3 places) - evm-rpc: restore ic_cdk::api::call::call_with_payment128 (compiles in 0.18) - multi-canister: ic_cdk::api::id() → canister_self(), icp identity default → use - internet-identity: StableCell<Option<Principal>> → StableCell<Principal> with anonymous sentinel - asset-canister: remaining icp.json refs in prose → icp.yaml, fix YAML field docs Build verified: npm run build succeeds, all 12 skills generated
marc0olo
added a commit
that referenced
this pull request
Mar 25, 2026
Closes #106 - Fix broken `type: custom` recipe with `build.steps` + `type: pre-built` - Fix `init_arg_file` with `init_args: { path, format }` syntax - Add pitfall: minting account cannot call icrc2_approve (#9) - Add pitfall: burn/mint transfers require zero fee (#10) - Rewrite pitfall #1: per-ledger fees, icrc1_fee lookup, BadFee handling - Update init args to use separate minting/funded principals - Show multiple entries in initial_balances - Add icrc1_metadata and icrc1_supported_standards to actor interface - Bump core prerequisite to 2.3.1 - Remove low-value Verify It Works and CLI verification sections - Rename section to Common Pitfalls - Add evaluations with 4 output evals and 16 trigger evals
marc0olo
added a commit
that referenced
this pull request
Mar 25, 2026
) Closes #106 - Fix broken `type: custom` recipe with `build.steps` + `type: pre-built` - Fix `init_arg_file` with `init_args: { path, format }` syntax - Add pitfall: minting account cannot call icrc2_approve (#9) - Add pitfall: burn/mint transfers require zero fee (#10) - Rewrite pitfall #1: per-ledger fees, icrc1_fee lookup, BadFee handling - Update init args to use separate minting/funded principals - Show multiple entries in initial_balances - Add icrc1_metadata and icrc1_supported_standards to actor interface - Bump core prerequisite to 2.3.1 - Remove low-value Verify It Works and CLI verification sections - Rename section to Common Pitfalls - Add evaluations with 4 output evals and 16 trigger evals
This was referenced Apr 2, 2026
sea-snake
added a commit
that referenced
this pull request
May 6, 2026
Replaces the manual Prim.callerInfoSigner / Prim.callerInfoData dance with CallerAttributes.getAttributes<system>() from mo:core (>= 2.5.0). The wrapper bakes in the trusted-signer check via the canister's trusted_attribute_signers env var, so the example no longer hardcodes the II principal in code: it moves to icp.yaml as deploy-time config. Notable changes: - Motoko example now imports mo:core/CallerAttributes (no more mo:prim) and reads time via mo:core/Time (Time.now() : Int) instead of the broken Nat64.toNat(Prim.time()) which had no Nat64 import. - consumePendingNonce stub mirrors the Rust register_finish pattern so the example compiles standalone. - New "Configuring trusted_attribute_signers" subsection shows the icp.yaml settings.environment_variables snippet. - Mistake #9 split per language: Motoko points at the env-var-based check, Rust still requires explicit msg_caller_info_signer. - Prerequisites bumps mo:core minimum to >= 2.5.0. - OpenID scopedKeys example wrapped in an async function to avoid bare top-level await at module scope (fixes the same Vite es2020 failure mode eval #6 already covers). - Eval #9 expected behavior accepts either the explicit Rust signer check or the Motoko env-var check. Rust path is unchanged: there is no ic-cdk wrapper yet.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ic_cdk::api::id()→ic_cdk::api::canister_self()in ckbtc and multi-canisterStableCell<Option<Principal>>→StableCell<Principal>with anonymous sentinel in internet-identity (Option doesn't impl Storable)ic_cdk::api::call::call_with_payment128in evm-rpc (correct deprecated-but-compiling path)icp.json→icp.yamlin asset-canister proseicp identity default→icp identity usein multi-canisterSite build verified:
npm run buildsucceeds, all 12 skills generated.