4 个稳定版本
2.4.2 | 2024年7月22日 |
---|---|
2.4.0 | 2024年7月21日 |
2.3.0 | 2023年10月18日 |
#2252 in 神奇豆
467 每月下载量
在 2 个 crate 中使用(via dao-testing)
300KB
6K SLoC
dao_voting_token_staked
简单的基于原生代币或 Token Factory 的代币投票/质押合约,假设提供的原生代币未用于为网络安全质押,例如 IBC 代币或二级代币(ION)。可以在任意高度查询质押余额。此合约实现了 DAO DAO 投票模块 所需的接口。
Token Factory 支持
dao_voting_token_staked
利用 cw_tokenfactory_issuer
合约实现 Token Factory 功能。实例化时,dao_voting_token_staked
会创建一个新的 cw_tokenfactory_issuer
合约来管理新代币,DAO 作为管理员和所有者(这些可以通过 DAO 投票撤销或更新)。
cw_tokenfactory_issuer
合约支持许多功能,更多详情请参阅 cw_tokenfactory_issuer 合约 README。
实例化
实例化新的 dao_voting_token_staked
合约时有两个必填字段
token_info
:您可以选择利用现有的原生代币或使用 Token Factory 模块创建新的代币。
存在一些可选字段
unstaking_duration
:可以设置为height
或time
(秒),这是用户可以完全提取解押代币之前必须经过的时间。如果未设置,则可以立即提取。active_theshold
:必须质押的代币数量,以使DAO处于活动状态。这可能是一个absolute_count
或一个percentage
。
创建新代币
token_issuer_code_id
:必须设置为cw_tokenfactory_issuer
合约的有效Code ID。initial_balances
:新代币的初始分配,必须至少有一个账户有余额,以便DAO不会被锁定。
创建代币还有一些附加的可选字段
metadata
:有关代币的信息。有关代币元数据的更多信息,请参阅Cosmos SDK Coin元数据文档。initial_dao_balance
:为DAO金库创建的初始余额。
示例实例消息
{
"token_info": {
"new": {
"token_issuer_code_id": <cw_tokenfactory_issuer_code_id>,
"subdenom": "meow",
"metadata": {
"description": "Meow!",
"additional_denom_units": [
{
"denom": "roar",
"exponent": 6,
"aliases": []
}
],
"display": "meow",
"name": "Cat Token",
"symbol": "MEOW"
},
"initial_balances": [
{
"amount": "100000000",
"address": "<address>"
}
],
"initial_dao_balance": "100000000000"
}
},
"unstaking_duration": {
"time": 100000
},
"active_threshold": {
"percentage": {
"percent": "0.1"
}
}
}
使用现有原生代币
dao-voting-token-staked
也可以与现有原生代币一起使用。它们可以是以ion
等原生符号的形式,IBC代币,或者Token Factory代币。
示例实例消息
{
"token_info": {
"existing": {
"denom": "uion",
}
}
}
注意:如果使用现有的Token Factory代币,请务必检查Token Factory管理员,并在DAO创建后考虑将Token Factory更改为DAO。
使用工厂
有时需要更多的定制。也许你想要一个增强型债券曲线合约或LP池,需要额外的设置?工厂合约可以实现这一点!
factory
模式接受一个调用自定义工厂合约的单一WasmMsg::Execute
消息。
注意:在工厂模式中,重要的是只使用受信任的工厂合约,因为所有验证都在工厂合约中完成。
实现自定义工厂合约的各方必须处理所有验证,并且自定义的WasmMsg::Execute
消息必须分别包含TokenFactoryCallback
数据。
dao-test-custom-factory合约提供了一个如何实现此功能的示例,并用于测试。它不是生产就绪的,但旨在作为构建工厂合约的示例。
依赖项
~10MB
~208K SLoC