关于DAOSpace扩展点的思考【WIP】

我理解的好的插件系统,应该通过扩展点来扩展。那当前DAOSpace需要哪些扩展点

来满足不同大小DAO组织的需求。

 

扩展点:

actions:

插件通过向DAO注册新的Action,来扩展DAO的Action能力。

 

接口:

trait Action<DaoT> { fun name():vector<u8>; fun schema():vector<u8>; fun execute(dao:DaoT, params:vector<vector<u8>>); }

 

Action JSON schema:

{ "params": [ { "name": "vision", "type": "vector<u8>", "describe":"The vision of this DAO", "required": true, }, ... ] }

 

注册Action:

let action = SetVisionAction { ... } DAOSpace::register_action<DaoT, ActionT>(&add_action_cap, action:ActionT);

 

移除Action:

 

相关提案界面: