eco refactor
Closed this issue · 2 comments
目前distribution、mint、stake相当一部分逻辑揉合在了eco下,不利于代码阅读和维护,建议去除eco目录,细分三大模块功能,循环引用问题通过接口实现方式解决
有一处问题:Context复制过程中,mapper A内部引用的mapper B不能正确初始化
所有模块:
module
├── approve 预授权
├── distribution 挖矿/奖励/交易费分配
├── gov 治理
├── guardian 系统用户
├── mint 通胀
├── params 系统参数
├── qcp 联盟链
├── qsc 代币
├── stake 验证节点/质押
├── transfer 转账
依赖关系:
params被其他模块依赖
mint依赖distribution
distribution依赖stake
stake涉及到与distribution交互的地方使用StakingHooks建立连接关系
单个模块组织结构:
gov/
├── client/ 命令行
├── mapper/ 存储操作
├── txs/
│ ├── txs.go 交易定义
│ ├── codec.go amino
│ ├── ...
├── types/ 结构定义
│ ├── genesis.go genesis结构定义
│ ├── ...
├── genesis.go genesis初始化/导出
├── abci.go BeginBlocker/EndBlocker
├── alias.go 类型和方法别名
避免循环依赖,引用关系如下:
txs
├── mapper
├── types
mapper
├── types