Releases: dfinity/sdk
0.31.0-beta.0
chore!: dfx generate now imports @icp-sdk/core instead of @dfinity/ packages
It is possible to restore the previous behavior by replacing uses of dfx generate with e.g. dfx generate && find src/declarations -type f -exec perl -i -pe 's|@dfinity/|@icp-sdk/core/|g' {} +.
Most projects will want to substitute this in the frontend's package.json, in the "prebuild" step.
feat: support for canister ID migration
Canister ID migration can be performed using dfx canister migrate-id
and its status can be checked out using dfx canister migration-status.
feat: Wasm optimization failure issues a warning instead of error
The optimization functionality provided by `ic_wasm::optimize" cannot handle Wasm modules that contains 64-bit table.
Instead of blocking the build, such optimization failure will issue a warning.
fix: prevent panic on terminals with limited color support
Fixed a panic that could occur when running dfx on terminals lacking color support. The term crate has been replaced with raw ANSI escape codes, and colors are now only emitted when stderr is a TTY and the NO_COLOR environment variable is not set.
Dependencies
Motoko
Updated Motoko to 1.0.0
Replica
Updated replica to elected commit 035a2c7a2b19bc7ce7c4d977169583eb64b0e3cb.
This incorporates the following executed proposals:
Frontend canister
- Module hash: 2830d9934ea6ec87e35e3a8b56dda562a3b09c1f94cd1fa3c0db3c2e41a4340c
- #4455
0.30.2
Improve frontend canister sync logic
Previously, committing frontend canister changes happened in multiple batches defined by simple heuristics that would likely not exceed the ingress message size limit.
Now, the ingress message size limit is respected more explicitly, and also a limit of total content size per batch since all content in the batch newly gets hashed in the canister.
Dependencies
Frontend canister
Sets the ic_env cookie for all HTML files only if the canister environment changed in the commit_batch method.
Use canister self-calls to avoid hitting instruction limits during commit_batch, compute_evidence, and compute_state_hash.
Motoko
Updated Motoko to 0.16.3
Candid
Updated candid_parser to 0.2.4.
0.30.2-beta.2
chore: Release 0.30.2-beta.1 (#4457)
0.30.2-beta.1
Release: 0.30.2-beta.1
0.30.2-beta.0
Improve frontend canister sync logic
Previously, committing frontend canister changes happened in multiple batches defined by simple heuristics that would likely not exceed the ingress message size limit.
Now, the ingress message size limit is respected more explicitly, and also a limit of total content size per batch since all content in the batch newly gets hashed in the canister.
Dependencies
Motoko
Updated Motoko to 0.16.3
Candid
Updated candid_parser to 0.2.4.
0.30.1
feat: asset sync now prints the target asset canister state hash in --verbose mode
If an asset canister is updated and --verbose is enabled, dfx will now print the state hash of the local assets before syncing. Calling compute_state_hash on the asset canister after syncing will eventually return the same hash.
feat: support dogecoin for the local dev environment
You can now launch a network with dfx start --enable-dogeoin to run the dogecoin
integration locally.
feat: improved the canister snapshot download/upload feature
Improved the canister snapshot download/upload feature by
- adding progress bars to snapshot download/upload
- streaming snapshot download/upload directly to/from disk.
- supporting download/upload with resuming.
- supporting download/upload with concurrency, default to 3 tasks in parallel.
fix: use pocket-ic to init BTC canisters
The custom logic was prone to becoming outdated, such as not adapting to changing cycles fees.
By using pocket-ic, which gets updated frequently, the BTC integration is significanly less likely to break.
fix: dfx start --enable-bitcoin will add --bitcoin-node 127.0.0.1:18444 unless nodes are specified in dfx.json
chore: Bump cdk to 0.19 in project template.
Dependencies
Replica
Updated replica to elected commit 724ae4101bfdd8d4443126a6a8b1ec5ca9b68a12.
This incorporates the following executed proposals:
Frontend canister
feat: list returns more info about assets
Asset info now contains the fields max_age: opt nat64;, headers: opt vec HeaderField;, allow_raw_access: opt bool;, and ``is_aliased: opt bool;` in addition to the previously returned ones.
feat!: list is now paginated
list now returns info about up to 100 assets instead of all assets in the canister. start allows specifying the offset at which the list of assets should start. length allows specifying a smaller limit if e.g. headers are too large to return the default number of assets. The full argument to list is now (record { start: opt nat; length: opt nat }).
feat: compute_state_hash
The function compute_state_hash works similar to compute_evidence, but instead of computing a hash over a batch of changes, it computes a hash over the full asset canister content. This can be used to verify the integrity of assets e.g. between a live and a local deployment. (This will only work if builds are deterministic. If there are e.g. timestamps hidden in filenames then hashes will not match.)
feat: get_state_info returns last asset change timestamp and state hash
- Module hash: 15a6366a4823baf994f314a55ddbdda333dff11cbcc5114caebfe444e5eae3b6
- #4434
0.30.1-beta.2
feat: asset sync now prints the target asset canister state hash in --verbose mode
If an asset canister is updated and --verbose is enabled, dfx will now print the state hash of the local assets before syncing. Calling compute_state_hash on the asset canister after syncing will eventually return the same hash.
feat: support dogecoin for the local dev environment
You can now launch a network with dfx start --enable-dogeoin to run the dogecoin
integration locally.
feat: improved the canister snapshot download/upload feature
Improved the canister snapshot download/upload feature by
- adding progress bars to snapshot download/upload
- streaming snapshot download/upload directly to/from disk.
- supporting download/upload with resuming.
- supporting download/upload with concurrency, default to 3 tasks in parallel.
fix: use pocket-ic to init BTC canisters
The custom logic was prone to becoming outdated, such as not adapting to changing cycles fees.
By using pocket-ic, which gets updated frequently, the BTC integration is significanly less likely to break.
fix: dfx start --enable-bitcoin will add --bitcoin-node 127.0.0.1:18444 unless nodes are specified in dfx.json
chore: Bump cdk to 0.19 in project template.
Dependencies
Replica
Updated replica to elected commit 724ae4101bfdd8d4443126a6a8b1ec5ca9b68a12.
This incorporates the following executed proposals:
Frontend canister
feat: list returns more info about assets
Asset info now contains the fields max_age: opt nat64;, headers: opt vec HeaderField;, allow_raw_access: opt bool;, and ``is_aliased: opt bool;` in addition to the previously returned ones.
feat!: list is now paginated
list now returns info about up to 100 assets instead of all assets in the canister. start allows specifying the offset at which the list of assets should start. length allows specifying a smaller limit if e.g. headers are too large to return the default number of assets. The full argument to list is now (record { start: opt nat; length: opt nat }).
feat: compute_state_hash
The function compute_state_hash works similar to compute_evidence, but instead of computing a hash over a batch of changes, it computes a hash over the full asset canister content. This can be used to verify the integrity of assets e.g. between a live and a local deployment. (This will only work if builds are deterministic. If there are e.g. timestamps hidden in filenames then hashes will not match.)
feat: get_state_info returns last asset change timestamp and state hash
- Module hash: 15a6366a4823baf994f314a55ddbdda333dff11cbcc5114caebfe444e5eae3b6
- #4434
0.30.1-beta.1
feat: asset sync now prints the target asset canister state hash in --verbose mode
If an asset canister is updated and --verbose is enabled, dfx will now print the state hash of the local assets before syncing. Calling compute_state_hash on the asset canister after syncing will eventually return the same hash.
feat: support dogecoin for the local dev environment
You can now launch a network with dfx start --enable-dogeoin to run the dogecoin
integration locally.
feat: improved the canister snapshot download/upload feature
Improved the canister snapshot download/upload feature by
- adding progress bars to snapshot download/upload
- streaming snapshot download/upload directly to/from disk.
- supporting download/upload with resuming.
- supporting download/upload with concurrency, default to 3 tasks in parallel.
fix: use pocket-ic to init BTC canisters
The custom logic was prone to becoming outdated, such as not adapting to changing cycles fees.
By using pocket-ic, which gets updated frequently, the BTC integration is significanly less likely to break.
fix: dfx start --enable-bitcoin will add --bitcoin-node 127.0.0.1:18444 unless nodes are specified in dfx.json
chore: Bump cdk to 0.19 in project template.
Dependencies
Replica
Updated replica to elected commit 724ae4101bfdd8d4443126a6a8b1ec5ca9b68a12.
This incorporates the following executed proposals:
Frontend canister
feat: list returns more info about assets
Asset info now contains the fields max_age: opt nat64;, headers: opt vec HeaderField;, allow_raw_access: opt bool;, and ``is_aliased: opt bool;` in addition to the previously returned ones.
feat!: list is now paginated
list now returns info about up to 100 assets instead of all assets in the canister. start allows specifying the offset at which the list of assets should start. length allows specifying a smaller limit if e.g. headers are too large to return the default number of assets. The full argument to list is now (record { start: opt nat; length: opt nat }).
feat: compute_state_hash
The function compute_state_hash works similar to compute_evidence, but instead of computing a hash over a batch of changes, it computes a hash over the full asset canister content. This can be used to verify the integrity of assets e.g. between a live and a local deployment. (This will only work if builds are deterministic. If there are e.g. timestamps hidden in filenames then hashes will not match.)
- Module hash: 51e80aa7ecbb94ba477bbc910c934794db674d9c441c3f013b8e09390facb389
- #4428
0.30.1-beta.0
feat: support dogecoin for the local dev environment
You can now launch a network with dfx start --enable-dogeoin to run the dogecoin
integration locally.
feat: improved the canister snapshot download/upload feature
Improved the canister snapshot download/upload feature by
- adding progress bars to snapshot download/upload
- streaming snapshot download/upload directly to/from disk.
- supporting download/upload with resuming.
- supporting download/upload with concurrency, default to 3 tasks in parallel.
fix: use pocket-ic to init BTC canisters
The custom logic was prone to becoming outdated, such as not adapting to changing cycles fees.
By using pocket-ic, which gets updated frequently, the BTC integration is significanly less likely to break.
fix: dfx start --enable-bitcoin will add --bitcoin-node 127.0.0.1:18444 unless nodes are specified in dfx.json
chore: Bump cdk to 0.19 in project template.
Dependencies
Replica
Updated replica to elected commit 724ae4101bfdd8d4443126a6a8b1ec5ca9b68a12.
This incorporates the following executed proposals:
0.30.0-beta.2
feat: dfx start --system-canisters for bootstrapping system canisters
This new flag utilizes the built-in system canisters bootstrapping capability provided by PocketIC v10.
dfx nns install is not needed anymore.
When using dfx start --system-canisters, there's no option to specify accounts to have initial balances like you can with dfx nns install --ledger-accounts <account-ids>.
However, the anonymous identity's account comes with an initial balance of 1 Billion ICP. You can transfer some of these ICP tokens to your own account on the ICP ledger. Then convert some ICP into cycles balance on the cycles-ledger.
YOUR_ACCOUNT_ID="$(dfx ledger account-id)"
dfx ledger --identity anonymous transfer --memo 1 --icp 1000000 "$YOUR_ACCOUNT_ID"
dfx cycles convert --amount 100fix: bump svelte dependencies in project templates
Frontend canister
Use BTreeMap instead of HashMap for headers to guarantee deterministic ordering.
Sets the ic_env cookie for html files, which contains the root key and the canister environment variables that are prefixed with PUBLIC_.
Please note that this version of the frontend canister is only compatible with PocketIC v10 and above.
- Module hash: b312a16c3179cf8384afa852e468c1333b7439d4c5a39f26df69b12320f629f8
- #4400
- #4392
- #4387
- #4389
Dependencies
Candid
Updated candid_parser to 0.2.2.
Replica
Updated replica to elected commit 575bcd0954e9d00066fd465223b755bda645edd6.
This incorporates the following executed proposals: