1,摘要
【本文目标】
通过本文实践,可以使用AlphaWallet钱包完成Repsten Test Network的ERC20的代币转账,冻结,锁仓投放等功能的验收测试。
【前置条件】
1) 懂得在REMIX调试SOLIDITY语言,不熟悉的参考文章《第十课 Solidity语言编辑器REMIX指导大全》。
2)已发布ERC20的代币,不熟悉的参考《第七课 技术小白如何在45分钟内发行通证(TOKEN)并上线交易》
3)会发布使用锁仓合约,不熟悉的参考《第十九课 代币锁仓后逐步释放的ERC20智能合约实践》
【收获】
1)AlphaWallet是支持ERC875的钱包,同时它也完美支持ERC20的功能。了解ERC875请参考《第十八课 【ERC875】Hiblock黑客马拉松门票从定制到编码实现》
2) imToken只支持主网环境的钱包功能,AlphaWallet能支持Ropsten等各种测试网络,降低智能合约上主网不可篡改的风险。
2. 采用AlphaWallet进行CLB基本功能测试
2.1 发布CLB代币
获取CLB的智能合约代码,在REMIX+MetaMask(Repston测试环境)下发布CLB代币合约。
不会发代币的参考《第七课 技术小白如何在45分钟内发行通证(TOKEN)并上线交易》,此处不做详述。
辉哥发布成功的代币链接:
https://ropsten.etherscan.io/tx/0xd84b11e4558c7d40cf6a26b02320e2aefe51caca7942fbd8d6dcf5e89547c38b
辉哥发布使用的账号信息ACCOUNT1:
地址:0xD1F7922e8b78cBEB182250753ade8379d1E09949
私钥:FE8514896FE1882D8751AD012E208889889602FB374A249BCF9DA9FD26EF3655
可见其对应的智能合约地址(Contract Address ):
0xe37ffd55b6c135209b6742b7fbe096ae2837fce6
代币信息如下:
name = "Colorbay Token";
symbol = "CLB";
decimals = 18;
totalSupply = 10亿;
2.2 下载AlphaWallet钱包,导入私钥到钱包
1)下载安装APP
辉哥在官网(https://awallet.io/)下载APP完成安装。
设置网络为Ropston(test)网络。
2)导入私钥地址到钱包
地址:0xD1F7922e8b78cBEB182250753ade8379d1E09949
私钥:FE8514896FE1882D8751AD012E208889889602FB374A249BCF9DA9FD26EF3655
导入成功后就可以看到CLB代币,一共有10个亿。
2.3 转账,新的钱包能呈现代币金额
1) 创建钱包
在AlphaWallet上创建新的钱包
ACCOUNT2 “0xda5c82f12f5c2ab1ef918afefe089c76103f453c ”
2) 转账/查询
切换到ACCOUNT1账号下,转账10000个CLB给ACCOUNT2
转账成功后,等待2分钟,可以看到ACCOUNT2已经有1万个CLB存在了。
交易信息:
https://ropsten.etherscan.io/tx/0xebab900d530f2eecbeba197bea0abc928ae00c6b3e77eee42b86e517e941d0ec
ACCOUNT2账号余额截图:
2.4 冻结账户不可进行转账
使用https://www.myetherwallet.com/#contracts进行账户冻结调用。
Contract Address: 0xe37ffd55b6c135209b6742b7fbe096ae2837fce6
ABI / JSON Interface:(REMIX编译环境可获取),代码太长,存放到知识星球了,请加入自取文件:Colorbay.min.ABI。
知识星球对应文章附件还存放了CLB和锁仓智能合约的源码等内容。
在MetaMask的账号停留在ACCOUNT1创建CLB代币账号下,执行ACCOUT1动作:
冻结成功后,在AlphaWallet执行转账给ACCOUNT2账号的操作,会返回失败,证明冻结账户功能成功。
https://ropsten.etherscan.io/tx/0x2d85e4523dcbc6d2357fe33d5f9efe903b1ec69feaf25ddcf97f885961d244a5
执行freezeAccount的false选项,把ACCOUNT1解冻结掉。
3. 采用AlphaWallet进行CLB锁仓功能验收测试
参考文章《第十九课 代币锁仓后逐步释放的ERC20智能合约实践》 完成锁仓合约的发布。
3.1 创建锁仓智能合约
锁仓合约编译成功后,在2018/08/14 16:25时在remix执行创建锁仓合约动作。假设该锁仓合约为激励辉哥参与彩贝项目发放的代币期权。
收益账户为"0xda5c82f12f5c2ab1ef918afefe089c76103f453c";
目标开始时间:2018/08/14 16:35 ;
锁仓冻结操作时间:2分钟;
代币期权周期时间:10分;
支持激励撤销功能;
constructor("0xda5c82f12f5c2ab1ef918afefe089c76103f453c", "1534235700", "120", "600", true)
智能合约记录:
https://ropsten.etherscan.io/tx/0x74e3cae0a6872282e396f91899f502e2f85ae54a3ec31d7f53a739383854557a
智能合约的地址:
Contract 0xaf9cdde9bbee1b3d26180ce1daeab540df33cf3d
3.2 转账到锁仓智能合约
在2018/08/14 16:30,公司老板在AlphaWallet下,从ACCOUNT1账户往锁仓智能合约打20000个CLB。
转账成功的交易记录:
https://ropsten.etherscan.io/tx/0x84d6e6f3e4d10607d14fe993bd1afd750db1edc9624261bb781c1799e805fff7
3.3 执行后代币能释放到目标账户
在2018/08/14 16:38时,在ACCOUNT1下老板执行释放期权的函数调用:
release("0xe37ffd55b6c135209b6742b7fbe096ae2837fce6")
执行截图:
执行成功链接:
https://ropsten.etherscan.io/tx/0xe9063edca480ea504028e10583178929024954c828107bd1acb49ec8e0955f6f
查看AlphaWallet 辉哥的账号"0xda5c82f12f5c2ab1ef918afefe089c76103f453c",已收到了6400个CLB代币。
3.3 取消代币期权激励,返回代币到ACCOUNT1账号
辉哥因为个人原因,需要离开彩贝项目组。老板在ACCOUNT1账号在16:40时执行取消代币期权激励命令函数,把未分配的代币回收到ACCOUNT1账号下。
revoke("0xe37ffd55b6c135209b6742b7fbe096ae2837fce6")
执行截图:
未分配CLB代币已打回到ACCOUNT1 老板账户下。
交易记录为
https://ropsten.etherscan.io/tx/0x16f4567f96a58b3f94699049e89db5b2b2b3d3d334daffa7e5f7e5ad53dd2d31,
返回了 9,633.333333333333333334 ERC20 (CLB)。
3.4 剩余已授权未释放部分发放给辉哥
16:42,因为时间差的原因,还需要执行release命令把剩余已授权未释放部分发放给辉哥。
release("0xe37ffd55b6c135209b6742b7fbe096ae2837fce6")
执行成功记录:
https://ropsten.etherscan.io/tx/0x58889376a496221f03b5424e3959ec438ac1973575a2e9aa21005a2ce493e826
3,966.666666666666666666 ERC20 (CLB)
4 总结
AlphaWallet钱包是一个非常优秀的钱包,跟imToken相比,它有以下功能让辉哥着迷:
1) 支持ERC875代币功能,能进行门票转账等;
2) 支持ERC721代币功能,能进行非同质化物品转让(还未测试);
3) 支持ERC20代币功能;
4) 可以在各种测试环境(Ropsten Test Network)进行代币和智能合约的测试;
在此特别感谢张中南/张华武团队开发这么优秀好用的产品出来!