配置组

整个系统由多个合约组成,合约与合约之间,通过配置组连接。

配置组包括序号合约和配置项合约。通过配置组相当于在Nervos上实现一个可读写的存储空间。

data都是使用小端模式

序号合约

它类似数据库的自增ID,每次创建一个新的配置项,ID自动加1

它具有唯一性。

它在Nervos的存在形式就是一个特殊的cell。它的data表示的是当前的ID值。

合约的功能就是要求更新时,data值表示的ID必须+1

对应的代码为:https://github.com/NexisDao/NexisDao-core/tree/main/contracts/index

配置项合约

一个配置项对应一个cell,cell data的前4个字节表示序号,其他的就是配置值。

序号合约的cell更新时,创建对应ID的配置项。

配置项可以修改配置,但它的序号不能改变。

为了保留更新能力,正常情况下,相同序号的配置项,会有2个cell。这样能够避免更新的时候导致其他相关交易失败。

如:资产的价格信息就会有2个cell,如果只有1个的话,价格更新时,将还没上链的导致质押交易失败。

代码:https://github.com/NexisDao/NexisDao-core/tree/main/contracts/config

现有的配置项

  1. IncentiveParam 激励参数:质押激励:f32+还款激励:f32

  2. BurnLock 销毁锁:部分资产要销毁时,无法直接销毁的,都会使用这个lock锁定资产

  3. CDPLock CDP合约的锁:用于质押时,锁定用户的资产和对应的质押单

  4. CDPType 质押合约的地址

  5. TAIType 稳定币合约的地址

  6. ManagerTokenType 管理币合约的地址,暂时没有

  7. CommunityLock 社区锁,用于存放用户支付的手续费

  8. DebtType 清算导致的临时负债的合约

  9. AuctionType 拍卖合约

  10. DebtSysType 系统负债的合约

  11. ProposalType 提案合约,暂时没有

  12. AuctionLock 拍卖的锁

  13. NervosDAOLock 用于锁定Nervos DAO

  14. NervosDAOType Nervos DAO合约地址

  15. DAOInfoType 锁定Nervos DAO,铸造dCKB的合约

  16. dCKBType dCKB代币的合约地址

  17. DebtLock 临时负债的锁

  18. 预留

  19. 预留

  20. dCKB的质押信息:dCKB的合约地址: byte32 + 年化利息:f32 + 质押率:f32

  21. dCKB的价格信息:价格:f32 + 时间:u64

最后更新于