1 个稳定版本
1.2.2 | 2024年1月24日 |
---|
5 在 #cw1 中
2,786 每月下载量
用于 4 个 crate(3 个直接使用)
8KB
64 行
CW1 规范:代理合约
CW1 是基于 CosmWasm 的代理合约规范。它是一个非常简单但灵活的接口,适用于一个合约代表其他合约持有资产(或权利)的情况。
最简单的例子是一个合约,它将接受创建者的消息并从其地址重新发送。通过使其可转让,你可以开始转让不可转让的资产(例如,质押代币、投票权等)。
你可以想象更复杂的例子,例如“1/N”多重签名或条件批准,其中“子账户”有权从这个账户中支出一笔有限资金,而“管理员账户”保留完全控制权。
它们的共同点是它们允许你在同一个事务中立即执行任意的 CosmosMsg
。
消息
Execute{msgs}
- 这接受 Vec<CosmosMsg>
并在重新调度所有这些消息之前检查权限。它发出以下属性
键 | 值 |
---|---|
"action" | "execute" |
"owner" | [消息发送者] |
查询
CanExecute{sender, msg}
- 这接受一个 CosmosMsg
并检查权限,根据权限返回 true 或 false。如果 CanExecute
返回 true,则在该发送者调用 Execute
之前,使用相同消息,在没有进一步状态更改的情况下也应成功。这可以在不知道扩展详细信息的情况下动态地向通用 cw1 合约提供一些客户端信息。(例如,检测他们是否可以发送硬币或质押)
依赖项
~4.5–6MB
~131K SLoC