一、简介
本项目实现用户通过发送EVM交易,完成质押OKT获得投票权,投票给对应验证者节点,并享受挖矿奖励分成。
OKC 质押挖矿分红算法详解参考:https://forum.okt.club/d/337-okc
二、如何使用
合约名称 | 合约作用 | 合约地址 |
StakingMSGHelper proxy | 针对业务需求,根据输入的参数生成对应的Msg,做为SystemContract合约Invoke接口的参数 | 主网:0x1b29c875Bd7Ec9a12C29fc6eeF8E451207352EF3 测试网:0x37AFc0Fe2b14acC1593C4435F3B53ac0335Ee292 |
SystemContract | 提供一个公开的invoke接口,用户拼装好数据后,可以通过此接口发起一笔Staking交易 | 主网:0xd6bce454316b8ddFb76bB7bb1B57B8942B09Acd5 测试网:0x727d14EfC4FB5281A18A6d62BCf486a1cF4d2210 |
StakingMSGHelper | 代码具体实现 | 主网:0x4D56015FCAc1C6695A10fB2254190D6996dB6E09 测试网:0x5701Dd294C68DbEEC080e0521df58F3643387777 |
ProxyAdmin | 负责管理代理的admin合约 | 主网:0xe9196e65a0b6705777fbe829dfa94ec8b9f2ba48 测试网:0xcc904644d73fa4aff34fda7433a8f3154c812769 |
操作流程:
- 用户根据想要执行的操作,选择StakingMSGHelper proxy合约中对应的方法来生成参数
- 使用步骤1中生成的结果作为invoke接口的输入参数,调用SystemContract合约的invoke方法,生成EVM格式的交易
- 将组装好的EVM交易进行签名并广播到链上
- 操作完成,可以在钱包或浏览器(https://www.oklink.com/okc)中查看执行结果
三、示例代码
下面以质押OKT方法为例,展示了多语言版本的实现Demo,开发者仅需将私钥、地址和参数改为自己的即可使用
四、接口列表
接口 | 说明 | 参数说明 | 该Msg做为SystemContract合约invoke接口参数对应命令行 |
genDepositMsg() | 质押OKT获得投票权,质押OKT是用户投票的前提条件。如用户曾经投过票,该交易将自动触发被动分红,未提取的分红奖励将自动分配到自己的帐户。 | _amount:想要质押的数量,最小值为0.0001(单位:OKT) | exchaincli tx staking deposit |
genAddSharesMsg() | 使用质押OKT换来的投票权,对验证者节点进行投票,可以投1个或多个验证者节点。验证节点地址可以从https://www.oklink.com/zh-cn/okc/bp-list里获取若验证者设置了分成比例,投票用户即可获得其分红奖励收益。若用户之前已经投票,该交易会触发被动分红,分红奖励将自动分配到自己的帐户。 | _validatorAddresses: 节点地址,节点个数取值范围为[1,30]如:["exvaloper1xkl5agjzqnjnptyat2dng2asmx8g5kllg7xamv","exvaloper1fymxn4gazxzjdfvwvr0ccnrnjpwmj0r9vw3t2y"] | exchaincli tx staking add-shares |
genWithdrawAllRewardsMsg() | 领取所有的分红奖励,奖励将自动分配到自己的帐户中。 | 无 | exchaincli tx distr withdraw-all-rewards |
genWithdrawMsg() | 赎回质押的OKT。赎回的OKT有锁定期,在完全解锁之前,必须等待14天,如果期间再次赎回OKT,则锁定期重新计算,继续等待14天。若用户之前已经投票,该交易会触发被动分红,分红奖励将自动分配到自己的帐户。 | _amount:想要取回的数量,最小值为0.0001(单位:OKT) | exchaincli tx staking withdraw |