📦 ic-js & oisy-wallet-signer are now powered by @icp-sdk/core

Hey :waving_hand:

We just upgraded the peer dependencies of ic-js and oisy-wallet-signer from the good old AgentJS stack (@dfinity/agent, @dfinity/principal, etc.) to the shiny new multi-entrypoint package @icp-sdk/core that was announced in this forum post.


:light_bulb: What does this mean?

This is mostly a structural change, no behavior changes are expected.

However, since you’ll have to pull this peer dependency (or npm will do it automatically), we marked these as major releases to make the update loud and clear.

Updated packages :backhand_index_pointing_down::

  • @dfinity/ckbtc: v5.0.0
  • @dfinity/cketh: v5.0.0
  • @dfinity/cmc: v7.0.0
  • @dfinity/ic-management: v8.0.0
  • @dfinity/ledger-icp: v7.0.0
  • @dfinity/ledger-icrc: v5.0.0
  • @dfinity/nns: v11.0.0
  • @dfinity/sns: v5.0.0
  • @dfinity/utils: v4.0.0
  • @dfinity/zod-schemas: v3.0.0
  • @dfinity/oisy-wallet-signer: v2.0.0

:white_check_mark: Battle-tested

As always, we first migrated OISY and NNS dapp to these new packages to ensure quality before offically releasing. That’s why, we could recommend updating your imports to the @icp-sdk/core sub-path exports as well (migration guide).

If I may share my opinion, I think it’s a really neat pattern and, for what it’s worth, I’ve also started migrating the Juno ecosystem, so as far as I’m concerned: this is the way :sparkles:.


:telescope: Coming next

We also plan to ship the ic-js canisters library in the same multiple-entrypoint style in the near future. It’s actually already published on npm :shushing_face:, but we’ll formally announce it once the documentation is finished.

That said, if you like to be adventurous and want to take an early look, you can already try the @icp-sdk/canisters library.


:speech_balloon: Questions?

Drop them below, happy to help or answer anything that’s unclear.

5 Likes

This is a great work, David!

1 Like

Hey everyone :waving_hand:

Excited to share that the new multiple-entry library
@icp-sdk/canisters is now officially promoted! :tada:

We warmly recommend migrating to it, just like we did in NNS dapp, OISY, and (I did in) Juno.

Using it with the recently announced @icp-sdk/core and @icp-sdk/auth instantly makes your package.json cleaner, and per extension easier to maintain.

Your JS imports also become cuter :nail_polish:. IMO everything just feels more modern and elegant.

You’ll find the migration guide in the JavaScript ICP docs (big shoutout to @ilbert for setting up the deployment pipelines, not all heroes wear capes :man_superhero:).

And the migration itself? Should be straightfoward: remove old deps, install the new ones, and optionally search/replace imports. That’s pretty much it. Here’s the guide:

Long story short: give it a try, let us know what you think of it or if you have any questions!

Ben Stiller Do It GIFs | Tenor

2 Likes