1个不稳定版本
0.0.1 | 2022年6月23日 |
---|
#16 在 #beacon
71KB
1.5K SLoC
API3通用crate
这是将solidity API3合约移植到基于Rust的链的通用crate。对于不同的链,应用相同的处理逻辑,自然需要抽象出通用过程。主要设计如下
- 通用数据类型
- DataPoint:在原始solidity合约中使用的dataPoint结构体。
- Role:使用枚举对开发时期已知的一些角色进行了建模
- 通用方法:在
common/src/beacon.rs
中,包含原始DapiServer.sol
中使用的所有方法。所有方法都与solidity合约中的实现相同。为了确保在各自的链上一切正常工作,将特定链的操作抽象为traits,以便每个链都可以有自己的实现。以下实现了以下traits:- Storage:
common/src/beacon::Storage
处理链中类型T项的加载/保存 - Whitelist:
common/src/whitelist.rs:20
处理特定链中的白名单功能 - AccessControlRegistry:
common/src/access::AccessControlRegistry
处理特定链中的访问控制相关功能 - SignatureManger:
common/src/beacon::SignatureManger
处理链上签名验证
- Storage:
依赖关系
~2–2.6MB
~50K SLoC