1 个不稳定版本
0.7.4 | 2024年5月30日 |
---|
#77 in #solidity
284 每月下载次数
在 linera-alloy 中使用
520KB
11K SLoC
Alloy
是 Rust 以太坊生态系统根目录的核心库。
Alloy 是从零开始重写的 ethers-rs
,具有令人兴奋的新功能、高性能和优秀的文档。
ethers-rs
将继续维护,直到我们实现了 Alloy 的功能一致性。目前不需要开发者采取任何行动。
概览
此仓库包含以下 crates
linera-alloy-core
:整个项目的元 cratelinera-alloy-primitives
- 基本整数和字节类型linera-alloy-sol-types
- 编译时 ABI 和 EIP-712 实现linera-alloy-sol-macro
-sol!
过程宏linera-alloy-dyn-abi
- 运行时 ABI 和 EIP-712 实现linera-alloy-json-abi
- 完整以太坊 JSON-ABI 实现linera-alloy-sol-type-parser
- Solidity 类型字符串的简单解析器linera-alloy-syn-solidity
- 基于syn
的 Solidity 解析器
支持的 Rust 版本
合金将保持至少6个月的滚动MSRV(最低支持的Rust版本)政策。当提高MSRV时,新的Rust版本必须至少发布6个月前。当前的MSRV是1.65.0。
请注意,MSRV不会自动提高,只有在次要版本发布时才会提高。
贡献
感谢您的帮助,让项目变得更好!我们非常高兴有您!我们有一个贡献指南,帮助您参与合金项目。
除非CI通过,否则合并请求将不会合并,所以请确保您的贡献遵循linting规则并通过clippy。
WASM支持
我们为所有wasm*-*
目标提供全面支持。如果某个crate在WASM目标上无法构建,请打开一个问题。
当为wasm32-unknown-unknown
目标构建并启用了"getrandom"
功能时,对getrandom
crate的编译将失败。这是预期的:请参阅他们的文档以获取更多详细信息。
要解决这个问题,您可以在linera-alloy-core
上禁用"getrandom"
功能,或者将getrandom
添加到您的依赖项中,并启用"js"
功能。
getrandom = { version = "0.2", features = ["js"] }
目前没有计划提供官方的JS/TS可访问的库接口,因为我们相信viem或ethers.js已经非常出色地满足了这一需求。
关于no_std
的说明
此工作区中的所有crate都应支持no_std
环境,包括alloc
crate。如果您发现某个crate不支持no_std
,请打开一个问题。
致谢
以下所有crate的实现都离不开以下项目所做的大量工作:
许可
根据您的要求,此项目受Apache许可证2.0版或MIT许可证许可。除非您明确说明,否则您提交给这些crate的任何有意贡献,根据Apache-2.0许可证定义,将按上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~3.5–7MB
~141K SLoC