#role #allowlist #chain #beacon #contracts #processing #api3

api3-common

API3 DAPI服务器合约的通用crate

1个不稳定版本

0.0.1 2022年6月23日

#16#beacon

MIT 许可证

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处理链上签名验证

依赖关系

~2–2.6MB
~50K SLoC