chenyan2002 / mops-cli

A Rust client for mops
1 stars 1 forks source link

import canister #2

Open chenyan2002 opened 3 months ago

chenyan2002 commented 3 months ago

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.

crusso commented 2 months ago

Might be a good idea.

I assume you don't want to add an implicit argument to the low level canister argument, but just let users reference the type in the explicit argument?