如何通过合约直接锁仓及提取HER token
原理说明
HER锁仓奖励合约(HER Tokenbank contract)中提供了deposit 函数接口,通过此接口,已经参与投资的用户可以方便地进行带参调用,随后锁仓合约执行以下操作:
1、验证是否在活动时间内
2、验证合约中的奖励代币是否足够,即是否达到此次锁仓的额度上限100,000,000HER
3、如果上述条件满足,锁仓合约立即将发起者自身所持有的代币依据传参数量(传参数量需小于等于授权额度,否则会失败) 进行转账操作,即扣除发起者身上所持有的指定数量HER代币,并存入合约
以下为具体步骤操作,如果是有直接操作以太坊经验的人,可按照个人喜好调用,不局限于本教程。
具体步骤
1.环境准备
所有操作都将在https://www.myetherwallet.com/#contracts上完成,操作之前请先确保您可以在MyEtherWallet上成功登入账户
2.授权锁仓合约可操作您的HER代币
1、由于合约无法在未经允许的情况下自行扣除您的HER代币,因此这一步需要得到您的授权
在https://www.myetherwallet.com/#contracts中的Contract Address 输入框中填入 HER的合约地址:0x491c9a23db85623eed455a8efdd6aba9b911c5df
- 将 HER Contract ABI 拷贝到 ABI / JSON Interface 文本框里面
- 点击 Access 按钮
- 在下面的Read / Write Contract 中选择 approve方法
- 在参数_spender中填入锁仓合约地址: 0x9ea4e6846E46098eb3a678A7061a9A92227AF37A
参数_value是您的钱包中的HER总数量 * 10的18次方,现在假设您要锁仓13000个HER,那么接下来您填的值就是 13000 * 10 ^ 18 = 13000000000000000000000,在正式写入之前,请确保您已经把13000换成了您钱包中的所持有的HER数量并且已经加上18个0
- 选择MetaMask或者您自己的方式登录以太坊账户
- 点击最下面的WRITE按钮
- 在弹出的Warning!对话框中将amount设置为0,gas limit保持默认,点击提交
- 检查交易状态,并确保调用成功
3.开始对HER进行锁仓操作
如果您已完成步骤2,那么现在就可以完成合约调用来锁仓。
- 与步骤2.1一致,在https://www.myetherwallet.com/#contracts中的Contract Address 输入框中填入 HER锁仓合约地址 0x9ea4e6846E46098eb3a678A7061a9A92227AF37A
- 将 HER Tokenbank Contract ABI 拷贝到 ABI / JSON Interface 文本框里面
- 点击 Access 按钮
- 在下面的Read / Write Contract 中选择 deposit方法
- value填入您在步骤2中授权的额度,请保持一致,如 13000000000000000000000
- 选择以太坊账户
- 点击最下面的WRITE按钮
- 在弹出的Warning!对话框中将amount设置为0,gas limit保持默认,点击提交
- 检查交易状态,并确保调用成功
如果您完成了以上操作,您的HER将会被转出,锁在智能合约当中。
4.到期提取奖励,如果没有提取,合约会将币打回原锁仓账户
- 在https://www.myetherwallet.com/#contracts中的Contract Address 输入框中填入 HER锁仓合约地址 0x9ea4e6846E46098eb3a678A7061a9A92227AF37A
- 将 HER Tokenbank Contract ABI 拷贝到 ABI / JSON Interface 文本框里面
- 点击 Access 按钮
- 在下面的Read / Write Contract 中选择 withdraw方法
- 点击最下面的WRITE按钮
- 在弹出的Warning!对话框中将amount设置为0,gas limit保持默认,点击提交
- 检查交易状态,并确保调用成功
5.关闭HER授权(可选操作)
原则上锁仓合约并不会主动访问您的账户,但如果您觉得不够安全,可以关闭锁仓合约的HER访问授权(仅有HER,不支持其他代币访问),可以做如下操作:
重复步骤2的操作,并且把参数_value设置为0,再Write一次即可
HER Contract ABI
[
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
HER Tokenbank Contract ABI
[
{
"constant": false,
"inputs": [],
"name": "withdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "value",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]