60个版本 (18个稳定版)
2.0.14 | 2024年3月6日 |
---|---|
2.0.11 | 2023年11月16日 |
2.0.8 | 2023年7月15日 |
2.0.2 | 2023年3月28日 |
0.1.3 | 2020年6月20日 |
#1234 in 魔法豆
219,323 每月下载量
用于 296 个crate (97个直接使用)
1MB
19K SLoC
ethers-core
Ethereum数据类型、密码学和实用工具。
警告
这个库正在被弃用。更多信息请参见 #2667。
建议使用 utils
、types
和 abi
重新导出的模块来简化导入。
此库为Ethereum的主要数据类型提供类型定义,并包含与其他Ethereum生态系统交互的实用工具。
有关更多信息,请参阅 书籍。
功能标志
eip712
: 不做任何事情。
ABI
此crate在abi
模块下重新导出ethabi
crate的函数,以及为了方便起见,还导出secp256k1
和rand
crate。
实用工具
该crate通过使用ganache-cli
和GanacheBuilder结构体提供启动本地Ethereum测试网的实用工具。
示例
计算两个ERC20代币的UniswapV2对地址
# use ethers_core::abi::{self, Token};
# use ethers_core::types::{Address, H256};
# use ethers_core::utils;
let factory: Address = "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f".parse()?;
let token_a: Address = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48".parse()?;
let token_b: Address = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2".parse()?;
let encoded = abi::encode_packed(&[Token::Address(token_a), Token::Address(token_b)])?;
let salt = utils::keccak256(encoded);
let init_code_hash: H256 = "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f".parse()?;
let pair = utils::get_create2_address_from_hash(factory, salt, init_code_hash);
let weth_usdc = "0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc".parse()?;
assert_eq!(pair, weth_usdc);
# Ok::<(), Box<dyn std::error::Error>>(())
依赖关系
~10–21MB
~296K SLoC