Skip to content

chore(vetkeys): migrate basic_ibe to icp-cli and @icp-sdk/vetkeys#1349

Open
marc0olo wants to merge 13 commits into
masterfrom
chore/vetkeys-basic-ibe-migration
Open

chore(vetkeys): migrate basic_ibe to icp-cli and @icp-sdk/vetkeys#1349
marc0olo wants to merge 13 commits into
masterfrom
chore/vetkeys-basic-ibe-migration

Conversation

@marc0olo
Copy link
Copy Markdown
Member

@marc0olo marc0olo commented May 29, 2026

Summary

Migrates the basic_ibe vetkeys example as part of #1343:

  • Replaces dfx.json with icp.yaml for both Rust and Motoko backends
  • Replaces @dfinity/vetkeys@0.3.0 with @icp-sdk/vetkeys@0.5.0-beta.0
  • Replaces @dfinity/auth-client / @dfinity/principal / @dfinity/agent with @icp-sdk/auth@7.1.0 / @icp-sdk/core@5.4.0
  • Bumps Rust crate ic-vetkeys to 0.7.0
  • Bumps Motoko package ic-vetkeys to 0.5.0, updates core to 2.5.0, adds [toolchain] moc = "1.9.0"
  • Replaces dfx generate with @icp-sdk/bindgen in gen_bindings.sh
  • Updates vite.config.ts to use icp CLI for dev server config
  • Removes window.global polyfill, updates actor creation to use generated createActor and Backend type from bindgen declarations (async agent via HttpAgent.create())
  • Adds --yes flag to npx @icp-sdk/bindgen in gen_bindings.sh to suppress install prompt
  • Renames CI job keys from rust-vetkeys-{example}-{language}-{platform} to {language}-{example}-{platform} for clarity
  • Adds CI workflow for both Rust and Motoko backends on Darwin and Linux
  • Drops icp.ninja support, comments out icp.ninja badges in README

Test plan

  • CI workflow passes for both Rust and Motoko backends on Darwin and Linux
  • npm install resolves without errors in frontend/
  • icp network start -d && icp deploy succeeds from rust/ and motoko/ dirs
  • No remaining @dfinity/vetkeys or dfx references in the example

🤖 Generated with Claude Code

- Replace dfx.json with icp.yaml (Rust and Motoko backends)
- Use @icp-sdk/vetkeys@0.5.0-beta.0 instead of @dfinity/vetkeys
- Use @icp-sdk/auth@7.1.0 and @icp-sdk/core@5.4.0
- Update Motoko ic-vetkeys to 0.5.0, Rust ic-vetkeys to 0.7.0
- Add moc 1.5.1 toolchain to mops.toml
- Replace dfx generate with @icp-sdk/bindgen in gen_bindings.sh
- Add CI workflow for both Rust and Motoko backends
- Drop icp.ninja support

Closes #1343

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@marc0olo marc0olo requested a review from a team as a code owner May 29, 2026 09:47
@marc0olo marc0olo marked this pull request as draft May 29, 2026 12:12
marc0olo and others added 9 commits May 30, 2026 04:13
…0 API

- Remove rust-toolchain channel pin and profile (fixes cargo component error)
- Bump ic-cdk to 0.20.1 and add ic-cdk-management-canister 0.1.1
- Update ic_cdk::management_canister imports to ic_cdk_management_canister
- Update AuthClient API: constructor, signIn/signOut, async getIdentity

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use pwd -P to get the physical script location so that navigating
to the example root works correctly when frontend/ is reached via
the motoko/ or rust/ symlink during icp CLI builds.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Change test_key_1 → key_1 in all icp.yaml: icp-cli 0.2.7 only
  provisions vetkd:Bls12_381_G2:key_1 (TestThresholdKeys subnet with
  test_key_1 is not yet supported by icp-cli). The vetkeys library
  itself uses key_1 in its own icp.yaml files.
- Add --yes flag to npx @icp-sdk/bindgen to suppress the install
  confirmation prompt during local builds
- basic_ibe: wrap event listeners in try-catch so errors are caught
  and shown (not silent unhandled rejections); add console.error()
  alongside alert() so errors are visible and copyable in DevTools

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…vetkeys

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace manual Actor.createActor(idlFactory, ...) with the generated
createActor(canisterId, { agent }) function and typed Backend wrapper
class from the bindgen-generated declarations. Removes direct imports
of idlFactory, Actor, and ActorSubclass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Folder Structure section explaining rust/, motoko/, frontend/ layout
  and why backends are in subdirectories (shared frontend via symlinks)
- Replace vague "from the X folder" wording with explicit `cd X` commands
- Fix `npm run dev` → `npm run dev:rust` / `npm run dev:motoko` (bare
  `dev` script intentionally errors with a "specify a backend" message)
- Add `cd frontend` before all dev commands (package.json is in frontend/,
  not at the example root)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove /#authorize suffix (no longer needed)
- Use https://id.ai for production instead of undefined

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…d.ai

- rootKey: pass rootKey: canisterEnv?.IC_ROOT_KEY directly; undefined is
  fine when on mainnet (HttpAgent ignores it)
- identityProvider local: use /authorize path instead of /#authorize hash
- identityProvider production: use https://id.ai instead of undefined

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@marc0olo marc0olo marked this pull request as ready for review June 2, 2026 12:18
marc0olo and others added 3 commits June 2, 2026 14:34
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…work-launcher)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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