汇报下我最近这半个月都在忙活什么

先汇报下工作

工作上,我之前在《聊聊我在新加坡的近况》一文中曾说过,从前东家 ORA 出来之后,找工作不太顺利,当了几个月的无业游民。

然后,刚好有个朋友看到了我发到朋友圈的这篇文章,约我出来聊。本来我以为只是约我小聚,互相聊聊近况。没想到一聊,就聊成合作伙伴了。

其实,我一直很想和他一起做项目,因为他很擅长设计金融产品,ApeX 初创时的产品模型就是他设计出来的。

他有好几个产品项目想做,如今的想法是成立一个工作室,先自己出资并组建团队,自己来一个个孵化出自己想做的项目。我很认同他的 idea,他也想找一个像我一样,有能力帮他做技术落地实现和组建技术团队的人。当天聊了一下午,一拍即合,达成了初步合作意向。之后给我开出的薪资结构对我也很公平,我也没有任何异议,所以就把合作敲定下来了。

因此,现在我终于摆脱了无业游民的身份。而且还让我再次找回了创业的激情。

我想,我和他能达成合作,也真的是缘分。如果不是因为我刚好处于离职状态,且刚好一直没找到令我满意的工作,又刚好发了一篇文章到朋友圈,刚好又被他看到,刚好他有想成立工作室的想法,刚好需要我。所以,也许这就是缘分。

再聊聊课程

这段时间,最多的时间就是用来准备课程内容了。准备课程的过程,其实也是对自己的知识体系进行梳理的过程,通过这个过程,来查漏、补缺、更新、完善自己的技术体系,以让自己的技术水平更上一层楼。

按照规划总共 13 节的内容,目前已经完成了前 8 节,这期间让我学到了很多更细节的东西。

比如,NFT 批量的图片和元数据具体是怎么生成的?又要怎么上传才能保证只需要设置一个 baseURI 就可以匹配到所有 tokenId 的 URI?之前我只是知道原理,但并不知道具体是怎么操作实现的。而现在我终于懂了,因为我在准备第 1 节课的内容时,自己实现了一整个流程。

再比如,Merkle Tree 在链下具体用什么工具生成的呢?用数字签名方式实现空投,从链下到链上的完整流程实现是怎么样的?之前我只知道链上合约的逻辑实现,但不知道链下具体是怎么实现的。而现在我也都知道了,因为我在准备第 3 节课的内容时,也自己实现了链下到链上的完整流程。尤其是数字签名这块,踩了不少坑,链下生成的签名,放到链上合约校验时总是没通过,经过不断调试才终于发现问题。

我原本对于前端 UI 是了解不多的,比如对于 React 的 Hook,一直是半知不解。对于最常用的 Web3 库 wagmi 也是半桶水而已。而如今,我把 ETF 的 UI 从 v1 实现到了 v4 ,效果图如下:

V1 版本,实现了最基本的功能,只支持用底层代币进行投资和赎回。

V2 版本,增加了一个切换开关,可以切换成使用单一代币进行投资和赎回,还提供了一个支持单一代币的列表。

V3 版本,增加了数据面板的展示,包括 About 和 Portfolio 两块数据。

V4 版本,增加了流动性挖矿 EPT 代币的展示和领取。

这页面从 v1 到 v4 实现的过程中,也是遇到并解决了很多不同的问题。比如,如何遍历所有底层代币,并获取每个代币的 symbol、decimals、available 并展示出来?以及如何处理多个代币的授权?如何获取表格数据?如何实现想要的 UI 布局和 CSS 效果?等等。

实现这 UI 和交互效果所花费的时间,其实比我写合约的时间还多。一个看上去简单的页面,里面涉及到的细节逻辑还真的不少。虽然依然还有一些有待完善的地方,但我能自己做到这样的效果,说真的,让我很有成就感。另外,这期间,ChatGPT 帮助了我不少。

合约层面,也让我巩固了很多知识点。比如,接入 UniswapV3 进行交易时,要如何计算出交易路径?执行 Rebalance 时,不同代币之间的自动兑换要怎么实现?流动性挖矿怎么实现?可升级合约的三种模式有哪些需要注意的点?如何实现部署和升级?还有精度计算的问题。等等。

以下就是目前已经实现的合约:

至此,还剩下后面 5 节的内容,我要争取在这周内把剩下的内容搞定,然后就可以正式开课了。我也已经迫不及待想把我做出来的成果,在课程上一步步重现,让学员们也能掌握这些内容,然后我还打算从中物色优秀合适的学员,看看有没有机会加入我们工作室一起来做项目。

Subscribe to Keegan小钢
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.