5 个版本 (1 个稳定版)
1.0.0 | 2024年7月16日 |
---|---|
0.1.3 | 2024年7月15日 |
0.1.2 | 2024年6月26日 |
0.1.1 | 2024年6月21日 |
0.1.0 | 2024年6月21日 |
#38 在 #icp
407 每月下载量
在 3 crates 中使用
43KB
1K SLoC
这个库是如何创建的?
- 使用
didc
从 evm rpc canister did 文件生成 Rust 绑定 - 为期望 cycles 的函数添加
call_with_payment128
- 为类型添加
Debug
和Clone
特性以提高便利性
如何使用这个库?
- 确保您在本地上部署了 evm rpc canister 到其主网 ID (
7hfb6-caaaa-aaaar-qadga-cai
)"evm_rpc": { "type": "custom", "candid": "https://github.com/internet-computer-protocol/evm-rpc-canister/releases/latest/download/evm_rpc.did", "wasm": "https://github.com/internet-computer-protocol/evm-rpc-canister/releases/latest/download/evm_rpc.wasm.gz", "remote": { "id": { "ic": "7hfb6-caaaa-aaaar-qadga-cai" } }, "specified_id": "7hfb6-caaaa-aaaar-qadga-cai", "init_arg": "(record { nodesInSubnet = 28 })" }
- 如果您部署了自己的 evm rpc canister,可以使用
EvmRpcCanister
结构体使用您自己的 canister ID 初始化 canisterpub const CANISTER_ID: Principal = Principal::from_slice(b"\x00\x00\x00\x00\x02\x30\x00\xCC\x01\x01"); // 7hfb6-caaaa-aaaar-qadga-cai pub const EVM_RPC: EvmRpcCanister = EvmRpcCanister(CANISTER_ID);
- 在您的 Rust 项目中导入库
[dependencies] evm_rpc_canister_types = 0.1
- 在需要的地方导入 crate,例如
use evm_rpc_canister_types::{ BlockTag, GetBlockByNumberResult, GetLogsArgs, GetLogsResult, HttpOutcallError, MultiGetBlockByNumberResult, MultiGetLogsResult, RejectionCode, RpcError, EVM_RPC, };
EVM_RPC
结构体公开了 EVM RPC canister 接口,用于对其执行跨 canister 调用let (result,) = EVM_RPC .eth_get_block_by_number(rpc_providers, None, block_tag, cycles) .await .expect("Call failed");
依赖项
~8–21MB
~283K SLoC