Crates.io | pink-web3 |
lib.rs | pink-web3 |
version | 0.22.0 |
source | src |
created_at | 2022-09-01 02:22:48.150547 |
updated_at | 2024-02-27 06:39:37.814994 |
description | Ethereum JSON-RPC client for pink. |
homepage | https://github.com/Phala-Network/pink-web3 |
repository | https://github.com/Phala-Network/pink-web3 |
max_upload_size | |
id | 656385 |
size | 542,918 |
Port of rust-web3 to Pink contract.
Ethereum JSON-RPC multi-transport client. Rust implementation of Web3.js library.
Documentation: crates.io
First, add this to your Cargo.toml
:
[dependencies]
pink-web3 = "0.19.0"
fn in_some_ink_query() {
use pink_web3 as web3;
let transport = web3::transports::PinkHttp::new("http://localhost:3333")?;
let web3 = web3::Web3::new(transport);
// Calling accounts
let mut accounts = web3.eth().accounts().resolve().unwrap();
accounts.push("00a329c0648769a73afac7f9381e08fb43dbea72".parse().unwrap());
for account in accounts {
let balance = web3.eth().balance(account, None).resolve().unwrap();
debug_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.
Into<X>
)debris/ethabi
)U256,H256,Address(H160)
Transaction
from Parity)TransactionReceipt
from Parity)RichBlock
from Parity)Work
from Parity)SyncStats
from Parity)eth_*
eth_*
eth_*
net_*
web3_*
personal_*
traces_*
Parity read-only: parity_*
Parity accounts: parity_*
(partially implemented)
Parity set: parity_*
signer_*
Own APIs (Extendable)
let web3 = Web3::new(transport);
web3.api::<CustomNamespace>().custom_method().wait().unwrap()
The library supports following features:
pink
- Enable pink HTTP and (or) signing supportsigning
- Enable account namespace and local-signing supportstd
- Enable std features for dependencies