46 个版本 (破坏性)
0.37.0 | 2024年7月23日 |
---|---|
0.35.0 | 2024年5月10日 |
0.34.0 | 2024年3月18日 |
0.31.0 | 2023年11月27日 |
0.3.0 | 2021年7月12日 |
#6 in #icp
每月下载量 191
455KB
9K SLoC
icx
A command line tool to use the ic-agent
crate directly. It allows simple communication with the Internet Computer.
安装 icx
To install icx
you will have to build it locally, using cargo
. Make a clone of this repository, then in it simply run cargo build
git clone https://github.com/dfinity/agent-rust.git
cd agent-rust
cargo build
The output executable will be in target/debug/icx
.
Using icx
To get help, simply use icx --help
.
身份
To read a PEM file, you can pass it with the --pem
argument. The PEM file must be a valid key that can be used for the Internet Computer signing and validation.
Root Key
For non-IC networks, pass --fetch-root-key
to fetch the root key. When this argument is not present, icx uses the hard-coded public key.
示例
要调用管理 canister 的 create_canister
函数,可以使用以下方法
icx update aaaaa-aa create_canister
如果您有一个 candid 文件,可以使用它来验证参数。使用 --candid=path/to/the/file.did
参数传递它
icx query 75hes-oqbaa-aaaaa-aaaaa-aaaaa-aaaaa-aaaaa-q greet --candid=~/path/greet.did '("World")'
签名和发送分离
当使用 icx update
和 icx query
时,通过传递 --serialize
将签名 canister 调用消息序列化为 json。输出将打印到 stdout。当使用 icx update
时,还会生成相应的请求状态消息并打印到 stderr。
使用 dfx new
创建的默认 IC 项目中,本地仿真器已通过 dfx start --background
启动。
签名
icx --fetch-root-key update --serialize rwlgt-iiaaa-aaaaa-aaaaa-cai greet '("everyone")' > output.txt
head -n 1 output.txt > update.json
tail -n 1 output.txt > request_status.json
rwlgt-iiaaa-aaaaa-aaaaa-cai
是默认项目中 hello canister 的 ID。
发送
cat update.json | icx send
...
RequestID: 0x1234....
请求状态
cat request_status.json | icx --fetch-root-key send
...
("Hello, everyone!")
在向 IC 主网发送消息时,不需要所有的 --fech-root-key
。因此,签名步骤可以在断网机器上执行。
依赖项
~27–42MB
~761K SLoC