手机:15966888888
电话:010-8888999
邮箱:imtoken@mail.com
地址:青岛润科翔电气有限公司
imToken是目前在移动端去中心化钱包领域拥有庞大用户群体的一个产品。许多开发者如果希望深入研究其技术架构并开展竞品分析工作...
24小时咨询热线:4006666888
产品详情
imToken是目前在移动端去中心化钱包领域拥有庞大用户群体的一个产品。许多开发者如果希望深入研究其技术架构并开展竞品分析工作, 他们在第一时间里的通常反应是去寻找该产品的源代码文件。
尽管官方已经在GitHub平台上公开了部分相关仓库的信息, 然而对于核心的签名模块而言, 其源代码并没有开源。因此, 在进行代码阅读工作时, 读者需要具备一定的方向感, 否则的话, 非常容易出现在文件目录结构中来回兜圈子且找不到重点的情况。
imToken的那个GitHub组织所在的页面, 链接是 github.com/imtoken, 它的下面挂着iOS那个客户端的仓库、Android那个客户端的仓库、JS这个SDK, 还有TWA那个Protocol协议的具体实现的东西。
那些客户端的仓库里面都有license这个授权协议的标注, 用户可以正常地把代码拉取下来进行使用。但是, 核心签名以及密钥管理模块方面没有做出完整的公开操作。关于助记词生成相关的那套逻辑处理, 其在进行编译构建的时候是被整合进了闭源的动态链接库或者框架之中。
因此你在全局的项目仓库范围内进行搜索查询的时候是找不到对应源文件代码的。
如果你主要关心的是dApp交互流程,那么你如果直接去看那一边名为protocols的相关仓库的话, 就会比你翻整个客户端还要快得多。
千万不要去对着那个叫main的入口代码一行一行地费力研读, 因为这样做的效率实在是低得令人发指。比较实用的阅读顺序应该是先把目光锁定在UI层的路由上面, 先把搞清楚所谓的连接去中心化应用、进行数字签名以及广播交易这一整条业务流程具体经过了哪些类这个任务落实完毕, 然后再顺着这条线索继续往下追踪。
imToken按照功能模块进行分包, 在每一个目录下面, 都存在视图层、模型层以及动作层这三个层级结构, 顺着动作层的调用链依次往下追查, 这个速度比仅仅看视图层要快出好几倍之多。
关于交易广播这个部分, 它涉及到了RPC调用的操作, 代码在底层封装了一层网络库。如果你关心原始交易的构建细节, 那么你应该重点关注transaction builder这个工具类。在这个工具类里面, 对EIP-1559的标准以及nonce的处理逻辑, 都已经做了抽象化的设计。

真正有价值的部分, 主要集中在dApp连接协议这个模块, 还有交易构造这个模块。剩下的内容大多, 都是关于UI适配的, 或者是多链配置的。看个大概的样子就够了。
相关推荐
鲁公安备11017697号 Powered:Z-BlogPHP Thems:GebiLaoli