Currently, import C "canister:name" requires the following entry in mops.toml
[[canister]]
name = "name"
canister_id = "..."
But this doesn't quite work when deploying to different networks/instances. We need some mechanism to extract named canister from deployment, so that canister_id becomes an optional field.
"canister:name" is probably not a good design, as it ties the build process with deployment: you have to deploy the dependency before you can build the current file.
Another option is to only import the actor type, and pass in the canister id as init args. This also makes module hash more stable, i.e., changing the canister id doesn't affect the module hash.
Currently,
import C "canister:name"requires the following entry inmops.tomlBut this doesn't quite work when deploying to different networks/instances. We need some mechanism to extract named canister from deployment, so that
canister_idbecomes an optional field."canister:name" is probably not a good design, as it ties the build process with deployment: you have to deploy the dependency before you can build the current file.
Another option is to only import the actor type, and pass in the canister id as init args. This also makes module hash more stable, i.e., changing the canister id doesn't affect the module hash.