Hello developers, and welcome to this week’s developer weekly update! In this week’s update, we have a new version of dfx
, a new example of Chain Fusion technology at work, and a new exciting feature from the community project, CycleOps. Let’s get started!
A new version of dfx
has been released! This release includes new features such as:
- Reformatted error output.
dfx
now uses the ‘Caused by:’ prefix for errors, reporting the error with its cause rather than embedding the cause within the error’s text. For example, beforev0.20.1
, error messages looked like this:
Error: Failed while trying to deploy canisters.
Caused by: Failed while trying to deploy canisters.
Failed to build all canisters.
Failed while trying to build all canisters.
The build step failed for canister 'bw4dl-smaaa-aaaaa-qaacq-cai' (wasminst_backend) with an embedded error: Failed to build Motoko canister 'wasminst_backend'.: Failed to compile Motoko.: Failed to run 'moc'.: The command '"/Users/ericswanson/.cache/dfinity/versions/0.19.0/moc" ... params ... failed with exit status 'exit status: 1'.
Stdout:
Stderr:
/Users/ericswanson/w/wasminst/src/wasminst_backend/main2.mo: No such file or directory
Now, error messages will look like this:
Error: Failed while trying to deploy canisters.
Caused by: Failed to build all canisters.
Caused by: Failed while trying to build all canisters.
Caused by: The build step failed for canister 'bw4dl-smaaa-aaaaa-qaacq-cai' (wasminst_backend)
Caused by: Failed to build Motoko canister 'wasminst_backend'.
Caused by: Failed to compile Motoko.
Caused by: Failed to run 'moc'.
Caused by: The command '"/Users/ericswanson/.cache/dfinity/versions/0.20.0/moc" ... params ... failed with exit status 'exit status: 1'.
Stdout:
Stderr:
/Users/ericswanson/w/wasminst/src/wasminst_backend/main2.mo: No such file or directory
-
New support for the
wasm_memory_limit
canister setting, which allows developers to limit a canister’s heap memory for most calls. This setting does not affect queries, and can be set in thedfx canister create
ordfx canister update-settings
commands using the--wasm-memory-limit
flag. -
Support for a new field in
dfx.json
,init_arg_file
, which enables a new workflow for specifying a canister’s initialization arguments.
You can read the full release notes or report any bugs on the developer forum.
ICP’s Chain Fusion technology allows for canisters deployed on ICP to communicate with any chain with a direct ICP integration, or any chain that supports ECDSA signatures. Currently, the EVM RPC canister can be used to communicate with Ethereum and EVM-compatible chains, but what about a non-EVM chain that supports ECDSA?
DFINITY’s developer relations engineer Jennifer Tran recently participated in the Consensus 2024 Hackathon where she showcased the power of Chain Fusion for non-EVM chains. In her project, she showcased how an ICP canister can generate an address for the Sui network, then sign a Sui transaction.
Want to learn more? Check out the canister example to start developing with Sui on ICP!
The community project CycleOps has an exciting new feature! CycleOps is a tool that can be used to maintain a canister’s cycles by setting rules such as automatically topping up a canister whenever its cycles fall below a certain limit.
CyclesOps now features an SNS CyclesOps dashboard, which aggregates the amount of cycles burned by each SNS. For example, here is the dashboard for the SNS OpenChat:
That’ll wrap up this week. Tune back in next week for more developer updates!
-DFINITY