羊驼是一个币安智能链上的项目,当时刚一推出我就参与了。不过项目方为了防止前期砸盘压力太大,所以早期挖矿出来的奖励Alphca只有30%可以马上拿到,剩余70%会锁仓一个月。
后来为了鼓励大家更长时间的锁仓,项目方又提出了一种新的代币,就是说可以把70%锁仓的部分提取出来,转换成另一种代币叫做sAlphca,sAlphca即可以流通卖掉,也可以继续挖矿。
具体操作如下图所示:
但是我在操作时候犯了一个错误,我执行完前两步,突然想起我还有一小部分Alphca没有claim,所以我去做了别的操作,再回头过来执行claim,发现悲剧了,无法执行第三步,页面上的所有按钮都是灰色的,无法再点击。
也就是说我锁仓的那部分Alphca在进行合约转换时,停在了一个中间过程,不能再执行了,数量有接近1W个,价值几千$。
当时十分懊悔,后来去查阅官方文档,发现下面内容:
图中的意思是:这三步操作一定要连续操作,但我恰好中断了!
看来什么时候阅读文档都是很重要的一件事情。
后来想找人帮忙解决,在项目方的电报群留言也没有回应,我想看看能不能找人解决,即使付费也是值得的。不过在现实生活中,找到即懂代码,又懂Defi挖矿的人不多。
后来我找了一个代码高手帮我看代码,他不懂Defi,也没有学过这种智能合约的语言Solidity,不过他还是花了不少时间帮我把相关智能合约的代码看了,确认了程序架构。
后来高手在自学了Solidity,阅读代码后,基本弄清楚了代码架构,提出可以在币安智能链的测试网上进行部署测试,我一听这个主意不错。但是发现却无法申请测试网的BNB代币,后来终于在币安的网站找到相关说明,需要把申请测试网代币的BNB地址发推特,才可以。经过一系列操作,终于获得了测试网代币,但是部署合约没有想象的那么容易,遇到不少错误提示。
后来经过查看代码结构,确定第三步是执行 stage 3: hodl,且这个函数没有入参,执行起来比较方便,最终我决定还是值得一试。
利用币安智能链的浏览器,连接钱包,找到当时前端页面上第三步所对应的HOLD函数,手动执行。
经过短暂的等待,几千个sAlpaca出现在我的小狐狸钱包里,经历了这种失而复得,心里十分开心。
后来我发了一个四位数的红包对高手表示感谢!
下面是我们两人在石墨文档上的交互记录,这是我受今日头条开发团队的启发,让人围绕文档转,这样可以大幅提高写作效率。
交互文档
一、当时操作步骤
第一步:创建合约:Create a contract to deposit the locked rewards into the Stronk Vault
https://bscscan.com/tx/0xe8c376eae09908c7effc96c18713d74d6681314afafd68081c23a18dfb63xxxx
第二步:Deposit locked rewards into the Stronk Vault
https://bscscan.com/0x3c91558dc97d20dd41a66f59702c08fc6e524fdcae429d1b7e157745df50xxxx
第三步:未执行
二、其它信息
合约地址:
https://bscscan.com/address/0x6f695bd5ffd25149176629f8491a5099426ce7a7
羊驼官方文档:Converting locked rewards into sALPACA tokens
三、待做事情:
1、https://app.alpacafinance.org/stronk-vault
确认按钮“Claim your sALPACA” 具体执行了什么操作,如何调用合约
2、阅读合约代码,在https://bscscan.com/ 尝试单步运行智能合约,完成未执行的第三步
四、可参考完整步骤(感谢伟峰提供)
钱包地址:0x40baae1684a9689328272eb8470af2b54e5373f2
第一步: https://bscscan.com/tx/0x01ed2377c591b22ee60c5e889ac83c581a61743168f8e568a7c6c0d062e19082
第二步:https://bscscan.com/tx/0x7c64c6e65d722fb376fe4c5931a6b322985b8520dae7d7f8bb9488e3df4a9307
第三步:https://bscscan.com/tx/0x4498b205f29f6ecd7aae43a9fff0bc3076c99dc41b60a90c2afcc94be25ed8eb
1. prepareHodl, 2. transferAll, 3. hodl
五、看网页代码
下载安装Chrome浏览器插件:ResourcesSaverExt。用chrome打开https://app.alpacafinance.org/stronk-vault 后按F12,点tab页上的ResourcesSaver-> Save all Resoures 保存网页源码。
搜 “Claim your sALPACA”,看app.alpacafinance.org\app.alpacafinance.org\static\js\components\stronkVault\HoldProcess.tsx
可以看到函数 HodlProcess 里实现了具体的三个步骤。
第一步 stage 1: prepareHodl
stronkAlpaca.prepareHodl
第二步 stage 2: alpaca.transferAll
alpaca.transferAll
第三步 stage 3: hodl
stronkAlpaca.hodl
六、 合约本地测试
从github取羊驼的合约代码:
git clone https://github.com/alpaca-finance/alpaca-contract.git
有 hardhat.config.ts,查知是以太坊开发工具hardhat的配置文件。
安装nodejs,npm安装hardhat及其依赖。
经过几天折腾,终于可以跑它自带的测程 StronkAlpaca.test.ts 了。
后续思路:在测试网试验直接调用第三步hodl。
优先在bsc 的testnet试验,因为这样环境最像bsc mainnet。可以试验下载一个钱包,生成帐号,去测试网领代币,模拟羊驼挖矿等操作。
如果bsc testnet不好用,可以用以太坊的testnet?如果testnet不好用,可以自己搭以太坊私链来测试?
测试是写个小程序,用钱包私钥作签名,调用区块链上合约的hodl。
小程序用什么语言写?羊驼网站和羊驼合约测试源码调hodl都是用typescript,可以直接参考,但之前没用过typescript,还需学习这个语言的基本用法。也可以用别的语言?java,python,golang都有库可以和以太坊通信,但也要学习。还是用typescript吧。
七、bsc测试网的说明
https://binance-wallet.gitbook.io/binance-chain-extension-wallet/best-practice/untitled
https://docs.binance.org/smart-chain/validator/testnet.html
有人成功申请到了测试网的funds
https://community.binance.org/topic/3851/please-fix-the-faucet-send-me-some-testnet-funds
好像是需要Twitter分享才可以领取
你需要通过发送Tweet并分享 tweets URL来获得测试币。每个账户每天可以领取一次,每次得到5BNB。
网友评论