Skip to content

Upgrading to @icp-sdk/canisters

The new @icp-sdk/canisters package is organized into modules.

  1. Remove the following packages, if present:

    • @dfinity/ckbtc
    • @dfinity/cketh
    • @dfinity/cmc
    • @dfinity/ic-management
    • @dfinity/ledger-icp
    • @dfinity/ledger-icrc
    • @dfinity/nns
    • @dfinity/sns

    E.g.:

    Terminal window
    npm remove @dfinity/ckbtc @dfinity/cketh @dfinity/cmc @dfinity/ic-management @dfinity/ledger-icp @dfinity/ledger-icrc @dfinity/nns @dfinity/sns
  2. Install the new @icp-sdk/canisters package:

    Terminal window
    npm install @icp-sdk/canisters
  3. Replace old imports with new imports, if present:

    Old ImportNew Import
    @dfinity/ckbtc@icp-sdk/canisters/ckbtc
    @dfinity/cketh@icp-sdk/canisters/cketh
    @dfinity/cmc@icp-sdk/canisters/cmc
    @dfinity/ic-management@icp-sdk/canisters/ic-management
    @dfinity/ledger-icp@icp-sdk/canisters/ledger/icp
    @dfinity/ledger-icrc@icp-sdk/canisters/ledger/icrc
    @dfinity/nns@icp-sdk/canisters/nns
    @dfinity/sns@icp-sdk/canisters/sns

    E.g.:

    - import { CkETHMinterCanister } from "@dfinity/cketh";
    + import { CkETHMinterCanister } from "@icp-sdk/canisters/cketh";

If you’re using TypeScript, you need to set the moduleResolution to either node16, nodenext or bundler in your tsconfig.json file.

{
"compilerOptions": {
"moduleResolution": "node16"
}
}

See also @icp-sdk/core’s documentation for more information.

If you’re installing with pnpm or yarn, you need to install the peer dependencies of @icp-sdk/canisters manually:

Terminal window
pnpm install @dfinity/ckbtc @dfinity/cketh @dfinity/cmc @dfinity/ic-management @dfinity/ledger-icp @dfinity/ledger-icrc @dfinity/nns @dfinity/sns @dfinity/utils @icp-sdk/core
Terminal window
yarn add @dfinity/ckbtc @dfinity/cketh @dfinity/cmc @dfinity/ic-management @dfinity/ledger-icp @dfinity/ledger-icrc @dfinity/nns @dfinity/sns @dfinity/utils @icp-sdk/core