Skip to content

Releases: dfinity/sdk

0.24.3

02 Dec 01:19
3869ae4
Compare
Choose a tag to compare

0.24.3

feat: Bitcoin support in PocketIC

dfx start --pocketic is now compatible with --bitcoin-node and --enable-bitcoin.

feat: facade pull ICP, ckBTC, ckETH ledger canisters

The ledger canisters can be pulled even though they are not really "pullable".
The metadata like wasm_url and init_guide are hardcoded inside dfx deps pull logic.

  • ICP ledger: ryjl3-tyaaa-aaaaa-aaaba-cai
  • ckBTC ledger: mxzaz-hqaaa-aaaar-qaada-cai
  • ckETH ledger: ss2fx-dyaaa-aaaar-qacoq-cai

chore: update agent version in frontend templates, and include resolve.dedupe in Vite config

chore: improve error message when trying to use the local replica when it is not running

Frontend canister

Allow setting permissions lists in init arguments just like in upgrade arguments.

  • Module hash: 2c24b5e1584890a7965011d5d1d827aca68c489c9a6308475730420fa53372e8
  • #3965

Candid UI

  • Module hash: f45db224b40fac516c877e3108dc809d4b22fa42d05ee8dfa5002536a3a3daed
  • Bump agent-js to fix error code

chore!: improve the messages for the subcommands of dfx cycles.

If users run subcommands of dfx cycles without the --ic flag, show below messages to indicate what to do next.

Error explanation:
Cycles ledger with canister ID 'um5iw-rqaaa-aaaaq-qaaba-cai' is not installed.
How to resolve the error:
Run the command with '--ic' flag if you want to manage the cycles on the mainnet.

chore: improve dfx start messages.

For dfx start, show below messages to users to indicate what to do next.

Success! The dfx server is running.
You must open a new terminal to continue developing. If you'd prefer to stop, quit with 'Ctrl-C'.

Dependencies

Motoko

Updated Motoko to 0.13.4

Replica

Updated replica to elected commit a62848817cec7ae50618a87a526c85d020283fd9.
This incorporates the following executed proposals:

0.24.3-beta.0

15 Nov 20:02
46418e5
Compare
Choose a tag to compare
0.24.3-beta.0 Pre-release
Pre-release

feat: Bitcoin support in PocketIC

dfx start --pocketic is now compatible with --bitcoin-node and --enable-bitcoin.

feat: facade pull ICP, ckBTC, ckETH ledger canisters

The ledger canisters can be pulled even though they are not really "pullable".
The metadata like wasm_url and init_guide are hardcoded inside dfx deps pull logic.

  • ICP ledger: ryjl3-tyaaa-aaaaa-aaaba-cai
  • ckBTC ledger: mxzaz-hqaaa-aaaar-qaada-cai
  • ckETH ledger: ss2fx-dyaaa-aaaar-qacoq-cai

chore: update agent version in frontend templates, and include resolve.dedupe in Vite config

chore: improve error message when trying to use the local replica when it is not running

Frontend canister

Allow setting permissions lists in init arguments just like in upgrade arguments.

  • Module hash: 2c24b5e1584890a7965011d5d1d827aca68c489c9a6308475730420fa53372e8
  • #3965

Candid UI

  • Module hash: f45db224b40fac516c877e3108dc809d4b22fa42d05ee8dfa5002536a3a3daed
  • Bump agent-js to fix error code

chore!: improve the messages for the subcommands of dfx cycles.

If users run subcommands of dfx cycles without the --ic flag, show below messages to indicate what to do next.

Error explanation:
Cycles ledger with canister ID 'um5iw-rqaaa-aaaaq-qaaba-cai' is not installed.
How to resolve the error:
Run the command with '--ic' flag if you want to manage the cycles on the mainnet.

chore: improve dfx start messages.

For dfx start, show below messages to users to indicate what to do next.

Success! The dfx server is running.
You must open a new terminal to continue developing. If you'd prefer to stop, quit with 'Ctrl-C'.

Dependencies

Motoko

Updated Motoko to 0.13.3

Replica

Updated replica to elected commit a62848817cec7ae50618a87a526c85d020283fd9.
This incorporates the following executed proposals:

0.24.2

14 Nov 20:28
b86e965
Compare
Choose a tag to compare

0.24.2

feat: all commands will use the DFX_NETWORK from the environment

If DFX_NETWORK is set in the environment, all commands will use that network by default.
The --network parameter will take precedence if provided.

fix: dfx generate now honors the --network parameter

This fixes an issue where dfx deploy --playground would fail if the project
had not been previously built for the local network.

feat: Support canister log allowed viewer list

Added support for the canister log allowed viewer list, enabling specified users to access a canister's logs without needing to be set as the canister's controller.
Valid settings are:

  • --add-log-viewer, --remove-log-viewer and --set-log-viewer flags with dfx canister update-settings
  • --log-viewer flag with dfx canister create
  • canisters[].initialization_values.log_visibility.allowed_viewers in dfx.json

feat: batch upload assets

The frontend canister sync now tries to batch multiple small content chunks into a single call using the create_chunks method added earlier.
And for small amounts of uploaded data the asset sync can now skip chunk creation entirely.
This should lead to significantly faster upload times for frontends with many small files.

Dependencies

Motoko

Updated Motoko to 0.13.2

Frontend canister

SetAssetContentArguments has a new field last_chunk: opt blob which can be used in addition to chunk_ids so that small assets can be uploaded as part of commit_batch,
skipping the need to await a separate create_chunk call.

Bumped api_version to 2 for the previous addition of create_chunks since the improved file sync relies on it.

  • Module hash: 296d1ad1a7f8b15f90ff8b728658646b649cabd159f360f1b427297f4c76763e
  • #3954
  • #3947

0.24.2-beta.0

23 Oct 14:17
3969afb
Compare
Choose a tag to compare
0.24.2-beta.0 Pre-release
Pre-release

What's Changed

feat: Support canister log allowed viewer list

Added support for the canister log allowed viewer list, enabling specified users to access a canister's logs without needing to be set as the canister's controller.
Valid settings are:

  • --add-log-viewer, --remove-log-viewer and --set-log-viewer flags with dfx canister update-settings
  • --log-viewer flag with dfx canister create
  • canisters[].initialization_values.log_visibility.allowed_viewers in dfx.json

feat: batch upload assets

The frontend canister sync now tries to batch multiple small content chunks into a single call using the create_chunks method added earlier.
And for small amounts of uploaded data the asset sync can now skip chunk creation entirely.
This should lead to significantly faster upload times for frontends with many small files.

Dependencies

Motoko

Updated Motoko to 0.13.2

Frontend canister

SetAssetContentArguments has a new field last_chunk: opt blob which can be used in addition to chunk_ids so that small assets can be uploaded as part of commit_batch,
skipping the need to await a separate create_chunk call.

Bumped api_version to 2 for the previous addition of create_chunks since the improved file sync relies on it.

  • Module hash: 296d1ad1a7f8b15f90ff8b728658646b649cabd159f360f1b427297f4c76763e
  • #3954
  • #3947

Commits

Read more

0.24.1

22 Oct 20:01
806f064
Compare
Choose a tag to compare

feat: More PocketIC flags supported

dfx start --pocketic is now compatible with --artificial-delay and the subnet_type configuration option, and enables --enable-canister-http by default.

Dependencies

Frontend canister

feat: Better error messages when proposing a batch

Add the batch id in the error messages of propose_commit_batch.

Module hash: 2c9e30df9be951a6884c702a97bbb8c0b438f33d4208fa612b1de6fb1752db76

Motoko

Updated Motoko to 0.13.1

Replica

Updated replica to elected commit 0a6d829cddc1534c29e0d2c3c3ebd1024bff8d1a.

This includes the following notable features for local dev replicas:

This incorporates the following elected proposals:

Candid UI

Module hash 15da2adc4426b8037c9e716b81cb6a8cf1a835ac37589be2cef8cb3f4a04adaa

0.24.1-beta.1

10 Oct 19:04
9ce1222
Compare
Choose a tag to compare
0.24.1-beta.1 Pre-release
Pre-release

Dependencies

Motoko

Updated Motoko to 0.13.1

Replica

Updated replica to elected commit 0a6d829cddc1534c29e0d2c3c3ebd1024bff8d1a.

This incorporates the following elected proposals:

0.24.1-beta.0

01 Oct 16:10
5ce503b
Compare
Choose a tag to compare
0.24.1-beta.0 Pre-release
Pre-release

feat: More PocketIC flags supported

dfx start --pocketic is now compatible with --artificial-delay and the subnet_type configuration option, and enables --enable-canister-http by default.

Dependencies

Frontend canister

feat: Better error messages when proposing a batch

Add the batch id in the error messages of propose_commit_batch.

Module hash: 2c9e30df9be951a6884c702a97bbb8c0b438f33d4208fa612b1de6fb1752db76

Motoko

Updated Motoko to 0.13.0

Replica

Updated replica to elected commit c43a4880199c00135c8415957851e823b3fb769e.
This incorporates the following executed proposals:

Candid UI

Module hash 15da2adc4426b8037c9e716b81cb6a8cf1a835ac37589be2cef8cb3f4a04adaa

0.24.0

01 Oct 11:41
43ba7b1
Compare
Choose a tag to compare

fix: bumps sveltekit starter dependency versions to prevent typescript config error

feat: expose canister upgrade options in CLI

dfx canister install and dfx deploy takes options --skip-pre-upgrade and --wasm-memory-persistence.

dfx deploy --mode now takes the same possible values as dfx canister install --mode: "install", "reinstall", "upgrade" and "auto".

In "auto" mode, the upgrade options are hints which only take effects when the actual install mode is "upgrade".

To maintain backward compatibility, a minor difference between the two commands remains.
If the --mode is not set, dfx deploy defaults to "auto", while dfx canister install defaults to "install".

feat: Also report Motoko stable compatibility warnings

Report upgrade compatibility warnings for Motoko, such as deleted stable variables, in addition to compatibility errors.

feat: Support for Motoko's enhanced orthogonal persistence.

Support Motoko's enhanced orthogonal persistence by automatically setting the canister upgrade option wasm_memory_persistence based on the Wasm metadata.

feat: PocketIC state

dfx start --pocketic no longer requires --clean, and can persist replica state between runs.

fix: Scripts always run with current directory set to the project root

Build scripts and other scripts now always run with the working directory
set to the project root (directory containing dfx.json).

This applies to the following:

  • build scripts
  • extension run
  • tech stack value computation
  • packtool (vessel, mops etc)

feat: dfx extension list supports listing available extensions

dfx extension list now support --available flag to list available extensions from the
extension catalog.
The extension catalog can be overridden with the --catalog-url parameter.

Dependencies

Frontend canister

Added create_chunks. It has the same behavior as create_chunk, except that it takes a vec blob and returns a vec BatchId instead of non-vec variants.

Module hash: 3a533f511b3960b4186e76cf9abfbd8222a2c507456a66ec55671204ee70cae3

Motoko

Updated Motoko to 0.12.1

0.24.0-beta.0

12 Sep 10:10
0425117
Compare
Choose a tag to compare
0.24.0-beta.0 Pre-release
Pre-release

fix: bumps sveltekit starter dependency versions to prevent typescript config error

feat: expose canister upgrade options in CLI

dfx canister install and dfx deploy takes options --skip-pre-upgrade and --wasm-memory-persistence.

dfx deploy --mode now takes the same possible values as dfx canister install --mode: "install", "reinstall", "upgrade" and "auto".

In "auto" mode, the upgrade options are hints which only take effects when the actual install mode is "upgrade".

To maintain backward compatibility, a minor difference between the two commands remains.
If the --mode is not set, dfx deploy defaults to "auto", while dfx canister install defaults to "install".

feat: Also report Motoko stable compatibility warnings

Report upgrade compatibility warnings for Motoko, such as deleted stable variables, in addition to compatibility errors.

feat: Support for Motoko's enhanced orthogonal persistence.

Support Motoko's enhanced orthogonal persistence by automatically setting the canister upgrade option wasm_memory_persistence based on the Wasm metadata.

feat: PocketIC state

dfx start --pocketic no longer requires --clean, and can persist replica state between runs.

fix: Scripts always run with current directory set to the project root

Build scripts and other scripts now always run with the working directory
set to the project root (directory containing dfx.json).

This applies to the following:

  • build scripts
  • extension run
  • tech stack value computation
  • packtool (vessel, mops etc)

feat: dfx extension list supports listing available extensions

dfx extension list now support --available flag to list available extensions from the
extension catalog.
The extension catalog can be overridden with the --catalog-url parameter.

Dependencies

Frontend canister

Added create_chunks. It has the same behavior as create_chunk, except that it takes a vec blob and returns a vec BatchId instead of non-vec variants.

Module hash: 3a533f511b3960b4186e76cf9abfbd8222a2c507456a66ec55671204ee70cae3

Motoko

Updated Motoko to 0.12.1

0.23.0

04 Sep 16:28
993ae6d
Compare
Choose a tag to compare

fix: relax content security policy for sveltekit starter

We had to roll back part of the increased default security policy for the sveltekit starter due to the framework's use of inline scripts

feat: Add canister snapshots

The new dfx canister snapshot command can be used to create, apply, and delete snapshots of stopped canisters.

feat: PocketIC HTTP gateway

icx-proxy's HTTP gateway has been replaced with PocketIC's. (This does not impact the meaning of --pocketic in dfx start.)

feat: Enable threshold schnorr signatures for Ed25519

Schnorr signature signing for Ed25519 is now enabled.
A test key id Ed25519:dfx_test_key is ready to be used by locally created canisters.

feat: Added settings_digest field to the network-id file

feat: install extensions using the catalog

dfx extension install now locates extensions using the
extension catalog.
This can be overridden with the --catalog-url parameter.

Dependencies

Replica

Updated replica to elected commit 3d0b3f10417fc6708e8b5d844a0bac5e86f3e17d.
This incorporates the following executed proposals:

feat: generate .env files for Motoko canisters

feat: support "security_policy" and "disable_security_policy_warning" in .ic-assets.json5

This change has an accompanying migration guide. Please see the 0.23.0 migration guide for instructions on how to adapt your project to this feature.

It is now possible to specify a "security_policy" field in .ic-assets.json5 for asset configurations.
Valid options are "disabled", "standard", and "hardened".
The security policy provides a set of standard headers to make frontends more secure.
Headers manually specified in the "headers" field take precedence over the security policy headers.

If "security_policy" is not specified or "disabled" is set, then no headers are added. If "security_policy" is not set at all, a warning is displayed that there is no security policy set.

If "standard" is specified, a set of security headers is added to the asset. The headers can be displayed with dfx info security-policy.
It is a set of security headers that will work for most dapps. A warning is displayed that the headers could be hardened.

If "hardened" is set, the same headers as with "standard" are added.
The asset sync expects that improved headers are set that would improve security where appropriate.
If no custom headers are present the asset sync will fail with an error.

All warnings regarding security policies can be disabled with ``"disable_security_policy_warning": true`. It needs to be set per asset.

The standard/hardened security policy headers can be seen with dfx info security-policy.
It also contains a lot of suggestions on how to harden the policy.

Updated the starter projects to use "security_policy" instead of including the whole security policy by defining individual headers.

feat: dfx info security-policy

Shows the headers that get applied to assets that are configured to "security_policy": "standard" or "security_policy": "hardened" in .ic-assets.json5.
Produces output that can be directly pasted into a .json5 document.

feat: dfx extension install <url to extension.json>

It's now possible for dfx extension install to install an extension from
somewhere other than https://github.com/dfinity/dfx-extensions, by passing
a URL to an extension.json file rather than an extension name.

For example, these are equivalent:

dfx extension install nns
dfx extension install https://raw.githubusercontent.com/dfinity/dfx-extensions/main/extensions/nns/extension.json

This update also adds the optional field download_url_template to extension.json,
which dfx will use to locate an extension release archive.

fix: dfx extension install no longer reports an error if the extension is already installed

However, if a version is specified with --version, and the installed version is different,
then dfx extension install will still report an error.

fix: dfx ledger create-canister sets controller properly

A recent hotfix to the CMC changed how the arguments to notify_create_canister need to be passed.
dfx now again properly calls that function.

feat: display replica port in dfx start

This replaces the dashboard link, which is now shown only in verbose mode. This should hopefully be less confusing for new users.

feat!: add crate field to dfx.json

It is now possible to specify a particular crate within a Rust package to use for a canister module, using the crate field.
This enables specifying crates with different names than the package. In a few cases these were previously auto-detected
by dfx, you will need to add this field if you were using such a setup.

feat: the --wallet parameter now accepts an identity name

The --wallet parameter can now be either a principal or the name of an identity.

If the name of an identity, dfx looks up the associated wallet's principal.

This means --wallet <name> is the equivalent of --wallet $(dfx identity get-wallet --identity <name>).

fix: display error cause of some http-related errors

Some commands that download http resources, for example dfx extension install, will
once again display any error cause.

chore: remove the deprecated --use-old-metering flag