Skip to content

Fix CRITICAL/HIGH/MEDIUM issues from round 4 audit#6

Merged
JoshDFN merged 1 commit intomainfrom
fix/round4-verification-fixes
Feb 26, 2026
Merged

Fix CRITICAL/HIGH/MEDIUM issues from round 4 audit#6
JoshDFN merged 1 commit intomainfrom
fix/round4-verification-fixes

Conversation

@JoshDFN
Copy link
Collaborator

@JoshDFN JoshDFN commented Feb 26, 2026

Summary

Round 4 of multi-agent verification audit found and fixed issues across 8 skills.

CRITICAL (4 fixes):

  • internet-identity: StableCell::init().unwrap() won't compile with ic-stable-structures 0.7 (returns Self not Result)
  • icrc-ledger: Config block used icp.json (JSON) but icp-cli uses icp.yaml (YAML)
  • wallet: create_canister called with wrong signature; needs create_canister_with_extra_cycles
  • wallet: Cycles API functions used wrong names/paths (msg_cycles_available128msg_cycles_available)

HIGH (5 fixes):

  • ckbtc: Missing transient on actor references (upgrade failure), removed stub getBalance that returned hardcoded 0
  • evm-rpc: CustomRpcService.headers used tuple instead of struct, transactions_root incorrectly Option
  • asset-canister: AssetManager import reverted to @dfinity/assets (not yet migrated to @icp-sdk)
  • icrc-ledger: --storage-mode=plaintext--storage plaintext (icp-cli flag)
  • wallet: CanisterSettings missing wasm_memory_threshold field

MEDIUM (4 fixes):

  • internet-identity/asset-canister: new HttpAgent()HttpAgent.create() for @icp-sdk/core v5
  • vetkd: Stale dfinity/examples reference, @dfinity/vetkeys@icp-sdk/vetkeys
  • sns-launch: Added missing [package] and [lib] to Cargo.toml

Test plan

  • npm run build passes
  • Next round of verification to confirm fixes

CRITICAL fixes:
- internet-identity: Remove .unwrap() on StableCell::init() (v0.7 returns Self not Result)
- icrc-ledger: Convert icp.json config to icp.yaml (icp-cli uses YAML)
- wallet: Fix create_canister → create_canister_with_extra_cycles, fix cycles API paths
- evm-rpc: Add deprecation note on call_with_payment128 import path

HIGH fixes:
- ckbtc: Add transient to actor refs, remove stub getBalance that returned 0
- evm-rpc: Fix CustomRpcService.headers type (struct not tuple), fix transactions_root optionality
- asset-canister: Fix AssetManager import to @dfinity/assets (not yet migrated to @icp-sdk)
- icrc-ledger: Fix --storage-mode flag to --storage
- wallet: Add missing wasm_memory_threshold field to CanisterSettings

MEDIUM fixes:
- internet-identity: new HttpAgent() → HttpAgent.create() for @icp-sdk/core v5
- asset-canister: new HttpAgent() → HttpAgent.create()
- vetkd: Fix stale dfinity/examples reference, update @dfinity/vetkeys to @icp-sdk/vetkeys
- sns-launch: Add missing [package] and [lib] sections to Cargo.toml
@JoshDFN JoshDFN merged commit 48a5e5e into main Feb 26, 2026
2 checks passed
@marc0olo marc0olo deleted the fix/round4-verification-fixes branch February 27, 2026 14:47
marc0olo added a commit that referenced this pull request Feb 27, 2026
The "Frontend — Safe Agent Configuration" section used the deprecated
@dfinity/agent package and is out of scope for a canister security skill.
The fetchRootKey warning remains in pitfall #6.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant