集成 JustLend DAO 治理
介绍
JustLend DAO 协议由 JST 持有者管理。 治理系统包含三个组件:JST(WJST)代币、治理模块(GovernorBravo)和 Timelock。
JustLend DAO 的协议通过发起提案来治理,其过程可以概括为提案发布-投票-生效。 该过程中包含几个参数:
治理参数
参数 | 值 | 描述 |
---|---|---|
quorumVotes | 600000000 | 投票生效所需的所少票数 |
votingPeriod | 86400 | 投票时长(区块数),可通过提案修改 |
proposalThreshold | 200000000 | 发起提案所需的最少票数, 可通过提案修改 |
votingDelay | 1 | 投票开始前等待的时间(区块数) |
proposalMaxOperations | 10 | 单个提案能完成的最多事项数目 |
proposalCount | 11 | 当前存在的提案数目 |
JST & WJST
JST 可以 1:1 的比例兑换成 WJST 代币。 持有 WJST 可对提案进行投票。
治理流程
一个帐户必须拥有至少 200,000,000 票才能创建治理提案。 创建提案时,投票期开始并将持续 86,400 个区块时间(约 3 天)。 如果该提案获得支持票占多数,并至少 600,000,000 票,该提案将在等待 2 天(根据 Timelock.delay,当前值为 172,800s)生效。
相关方法
提案
propose()
合约:GovernorBravo
调用此方法会创建一个 JustLend DAO 协议的治理提案。
参数 | 类型 | 描述 |
---|---|---|
targets | address[] | 在提案执行期间进行调用的目标地址 |
values | uint[] | 调用时需要传递的值 |
signatures | string[] | 方法签名 |
calldatas | bytes[] | 每个方法的calldata |
description | string | 关于提案具体更改内容的描述 |
返回值:提案ID
queue()
合约:GovernorBravo
调用此方法会将成功的提案移入 Timelock,并开始等待期。等待期从成功调用此方法开始。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 提案ID |
返回值:无,错误时将回退
execute()
合约:GovernorBravo
调用此方法会执行等待期已结束的提案。提案中的操作将在执行期间被调用。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 需要执行的提案 ID |
返回值:无,错误时将回退
cancel()
合约:GovernorBravo
调用此函数会取消提案。提案可以在执行前的任何时间取消。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 需要取消的提案 ID |
返回值:无,错误时将回退
getActions()
合约:GovernorBravo
调用此方法会获取指定提案所做的操作。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 提案 ID |
返回值 | 类型 | 描述 |
---|---|---|
targets | address[] | 在提案执行期间进行调用的目标地址 |
values | uint[] | 调用时需要传递的值 |
signatures | string[] | 方法签名 |
calldatas | bytes[] | 每个方法的 calldata |
getReceipt()
合约:GovernorBravo
调用此方法可获取指定投票人对提案的投票。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 提案 ID |
voter | address | 需要查询的地址 |
返回值 | 类型 | 描述 |
---|---|---|
Receipt | struct | bool hasVoted // 是否 bool support // 支持或反对 uint96 votes //票数 |
state()
合约:GovernorBravo
调用此方法返回指定提案的状态。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 提案 ID |
返回值 | 类型 | 描述 |
---|---|---|
ProposalState | enum | Pending Active Canceled Defeated Succeeded Queued Expired Executed |
投票相关
deposit()
合约:WJST
调用这个方法用 JST 一比一兑换 WJST。
参数 | 类型 | 描述 |
---|---|---|
sad | uint256 | 需要兑换的票数(WJST) |
返回值:无,错误时将回退
castVote()
合约:GovernorBravo
调用此方法对提案进行投票。投票权重将在提案状态为active时计算。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 需要投票的提案 ID |
votes | uint | 投出的票数 |
support | bool | 支持或反对 |
返回值:无,错误时将回退
castVoteWithReason()
合约:GovernorBravo
调用此方法对提案进行投票。这个方法可以附带投票原因。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 需要投票的提案 ID |
votes | uint | 投出的票数 |
support | bool | 支持或反对 |
reason | string | 投票理由 |
返回值:无,错误时将回退
castVoteBySig()
合约:GovernorBravo
调用此方法对指定提案进行投票。和 castVote()
不同的是,此方法允许离线签名。
参数 | 类型 | 描述 |
---|---|---|
proposalId | uint | 需要投票的提案 ID |
votes | uint | 投出的票数 |
support | bool | 支持或反对 |
v | uint8 | 签名的 recover byte |
r | bytes32 | ECDSA 签名对的一半 |
s | bytes32 | ECDSA 签名对的一半 |
返回值:无,错误时将回退
Last updated