集成 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