#ethereum #ethers #celo #cryptography #web3 #crypto

ethers-core

Ethereum数据类型、密码学和实用工具

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 魔法豆

Download history 56269/week @ 2024-04-19 51351/week @ 2024-04-26 51307/week @ 2024-05-03 54501/week @ 2024-05-10 51766/week @ 2024-05-17 48671/week @ 2024-05-24 53248/week @ 2024-05-31 55643/week @ 2024-06-07 55540/week @ 2024-06-14 59756/week @ 2024-06-21 49198/week @ 2024-06-28 48151/week @ 2024-07-05 51383/week @ 2024-07-12 56755/week @ 2024-07-19 52032/week @ 2024-07-26 49719/week @ 2024-08-02

219,323 每月下载量
用于 296 个crate (97个直接使用)

MIT/Apache

1MB
19K SLoC

ethers-core

Ethereum数据类型、密码学和实用工具。

警告

这个库正在被弃用。更多信息请参见 #2667

建议使用 utilstypesabi 重新导出的模块来简化导入。

此库为Ethereum的主要数据类型提供类型定义,并包含与其他Ethereum生态系统交互的实用工具。

有关更多信息,请参阅 书籍

功能标志

  • eip712: 不做任何事情。

ABI

此crate在abi模块下重新导出ethabi crate的函数,以及为了方便起见,还导出secp256k1rand crate。

实用工具

该crate通过使用ganache-cliGanacheBuilder结构体提供启动本地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