Ethereum JSON-RPC multi-transport client. Rust implementation of web3 library.
Ethereum JSON-RPC multi-transport client.
Rust implementation of Web3.js library.
First, add this to your Cargo.toml:
[dependencies]
web3 = { git = "https://github.com/tomusdrw/rust-web3" }
#[tokio::main]
async fn main() -> web3::Result<()> {
let transport = web3::transports::Http::new("http://localhost:8545")?;
let web3 = web3::Web3::new(transport);
println!("Calling accounts.");
let mut accounts = web3.eth().accounts().await?;
println!("Accounts: {:?}", accounts);
accounts.push("00a329c0648769a73afac7f9381e08fb43dbea72".parse().unwrap());
println!("Calling balance.");
for account in accounts {
let balance = web3.eth().balance(account, None).await?;
println!("Balance of {:?}: {}", account, balance);
}
Ok(())
}
If you want to deploy smart contracts you have written you can do something like this (make sure you have the solidity compiler installed):
solc -o build --bin --abi contracts/*.sol
The solidity compiler is generating the binary and abi code for the smart contracts in a directory called contracts and is being output to a directory called build.
For more see examples folder.
Unpintokio instead of async-std for ws.rsInto<X>debris/ethabiTransactionTransactionReceiptRichBlockWorkSyncStatsParity read-only:
Parity accounts: parity_*
Parity set:
let web3 = Web3::new(transport);
web3.api::<CustomNamespace>().custom_method().wait().unwrap()
Currently, Windows does not support IPC, which is enabled in the library by default.
To complile, you need to disable the IPC feature:
web3 = { version = "0.11.0", default-features = false, features = ["http"] }