2个不稳定版本
0.8.0 | 2019年8月1日 |
---|---|
0.1.0 | 2019年8月10日 |
#51 in #json-rpc-client
305KB
7.5K SLoC
rust-web3
Ethereum JSON-RPC多传输客户端。Web3.js库的Rust实现。
用法
首先,将以下内容添加到您的 Cargo.toml
[dependencies]
web3 = { git = "https://github.com/tomusdrw/rust-web3" }
接下来,将以下内容添加到您的crate中
extern crate web3;
示例
extern crate web3;
use web3::futures::Future;
fn main() {
let (_eloop, transport) = web3::transports::Http::new("https://127.0.0.1:8545").unwrap();
let web3 = web3::Web3::new(transport);
let accounts = web3.eth().accounts().wait().unwrap();
println!("Accounts: {:?}", accounts);
}
如果您想部署您编写的智能合约,可以这样做(确保您已安装solidity编译器)
solc-o build--bin--abi contracts/*.sol
solidity编译器正在为名为contracts的目录中的智能合约生成二进制和abi代码,并将其输出到名为build的目录。
更多内容请参阅 示例文件夹.
通用
- 更灵活的API(接受
Into<X>
) - 合约调用(ABI编码;
debris/ethabi
) - 批量请求
传输
- HTTP传输
- IPC传输
- WebSockets传输
类型
- 类型用于
U256,H256,Address(H160)
- 索引类型(数字,编码为十六进制)
- 交易类型(来自Parity的
Transaction
) - 交易收据类型(来自Parity的
TransactionReceipt
) - 区块类型(来自Parity的
RichBlock
) - 工作量类型(来自Parity的
Work
) - 同步类型(来自Parity的
SyncStats
)
APIs
- Eth:
eth_*
- Eth filters:
eth_*
- Eth pubsub:
eth_*
-
net_*
-
web3_*
-
personal_*
-
traces_*
Parity特定的API
-
Parity只读:
parity_*
-
Parity账户:
parity_*
(部分实现) -
Parity集合:
parity_*
-
signer_*
-
自建API(可扩展)
let web3 = Web3::new(transport);
web3.api::<CustomNamespace>().custom_method().wait().unwrap()
在Windows上安装
目前,Windows不支持IPC,该库默认启用。要编译,您需要禁用IPC功能
web3 = { version = "0.1.0", default-features = false, features = ["http"] }
依赖项
~7–20MB
~315K SLoC