合约部署 => 106名参与者原始白名单导入合约 => 调用合约更改白名单 => 多签审核确认白名单 => ETH转入合约 => 合约按照白名单分发ETH
换LP的地址是一个很敏感的事情,要避免被冒领的情况发生。
合约提供对LP换地址的验证功能。所以这里需要我们LP用原有的钱包地址链接合约,发起更换地址的请求(request),来证明自己对LP地址的ownership。 再在discord群里发自己的request的序号(Nonce),多签通过合约审核确认request,LP的新地址生效。
非法地址指的是交易所地址,当初打币的时候LP误从交易所直接打币的。
这样的地址只能是多签不经过钱包地址owner的验证,直接调用合约更改LP的钱包地址,属于高风险操作。因此在操作前会要在discord群里公示,而且在白名单审核确认后,不再允许绕过owner验证直接修改LP钱包地址的操作。
这样就可以基本保证各个LP的地址的安全,不会被轻易的冒领了。
现在合约支持有两个版本,一个是以太主网上的,一个是在BSC链上的, 部署在以太主网上的合约,大家claim的就直接是ETH(不是WETH)在BSC链上版本合约,大家claim的就是 BETH(Binance-peg eth)。考虑到现在主网上平均gas费一直在100以上,所以部署到BSC链上以节省大家claim的气费。
合约里区分本金(Principal) 和利润(Profit),所有进入合约的资金都会被用来优先偿还本金,本金偿还完毕后(106个ETH),后续入账才会用来结算收益和GP的rewards。
利润部分合约会按3份奖励给GP预留,也就是利润部分最开始是除以109分给各个LP的。等大家投票结束,多签会根据投票的结果,通过合约设置最终是几份。如果最终是2份,之前预留多出来的一份,会再分发给各个LP。
合约里记录了每一个人的已经claimed的历史记录,合约里的getClaimable()方法会先用当前的累积收入的总数量除来计算每个人应得的quota,这个quota每个人都是一样的,再用quota减去这个人已经claimed的数量,就是他还可以claimable的数量。 最后不管一个LP claim过几次,每个LP最后的拿到的一定符合下面的公式,和claim的次数和时机无关。
总累计ETH没超过 106: LP claimable = 总累计的ETH数量 / 106
总累计ETH超过106 : LP claimable = 1 + (总累计的ETH数量 - 106) / (106 + rewards)
addLP
增加一个LP [只能多签] [只能在白名单确认前]addReplaceLPAddressRequest
LP提交更换地址的申请 [只能LP]cancelReplaceLpRequest
LP撤销更换地址的申请 [只能LP]claim
LP claim自己目前的收益 [只能LP] [只能在白名单确认后]claimGPRewards
GP claim 奖励 [只能GP] [只能在Rewards放开后]confirmReplaceLPRequest
多签确认LP申请的修改的地址生效 [只能多签]confirmWhiteList
多签审核确认白名单 [只能多签]initialize
部署时初始化合约pullFunds
特殊情况时多签将合约里的资产转到多签钱包 [只能多签]rejectReplaceLPRequest
多签拒绝某个LP地址更改请求 [只能多签]releaseToAll
帮所有LP claim到LP各自的钱包 [只能在白名单确认后]releaseGPRewards
确认GP的rewards份额,并放开提取 [只能多签]removeLP
多签删除一个LP的地址 [只能多签] [只能在白名单确认前]renounceOwnership
使合约无主化 [只能多签]replaceLP
替换一个LP的地址 [只能多签] [只能在白名单确认前]transferOwnership
多签转移合约的所有权给别人 [只能多签]containsLP
检查给定地址是否是LPgetClaimable
查询给定的LP目前能claim的ETH的数量getReplaceLPRequest
查询给定序号对应的LP更换地址申请的详细信息lpAtIndex
按给定序号查询对应LP的地址lpClaimed
查询给定LP已经claim的数量