Ethereum JSON-RPC multi-transport client. Rust implementation of Web3.js library.
extern crate web3;
use web3::futures::Future;
fn main() {
let (_eloop, transport) = web3::transports::Http::new("http://localhost:8545").unwrap();
let web3 = web3::Web3::new(transport);
let accounts = web3.eth().accounts().wait().unwrap();
println!("Accounts: {:?}", accounts);
}
For more see examples folder.
- More flexible API (accept
Into<X>
) - Contract calls (ABI encoding;
debris/ethabi
) - Batch Requests
- HTTP transport
- IPC transport
- WebSockets transport
- Types for
U256,H256,Address(H160)
- Index type (numeric, encoded to hex)
- Transaction type (
Transaction
from Parity) - Transaction receipt type (
TransactionReceipt
from Parity) - Block type (
RichBlock
from Parity) - Work type (
Work
from Parity) - Syncing type (
SyncStats
from Parity)
- Eth:
eth_*
- Eth filters:
eth_*
-
net_*
-
web3_*
-
personal_*
-
traces_*
-
Parity read-only:
parity_*
-
Parity accounts:
parity_*
-
Parity set:
parity_*
-
signer_*
-
Own APIs (Extendable)
let web3 = Web3::new(transport);
web3.api::<CustomNamespace>().custom_method().wait().unwrap()