关于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:
相关提案界面: