我在做DApp开发了有五年时间了, 关于tpwallet这个框架, 我把它的对接工作也重复了好多遍了。它做的事情是把密钥管理和那种跟链进行交互的部分完全分开了, 然后用了五层结构来分别负责管安全、通信、状态还有渲染这些内容。
最底下的部分是关于助记词与私钥的生成和存储, 这一层是遵守BIP39标准的, 同时也支持硬件的隔离方式。再往上一层去的话, 是对RPC通信进行的封装工作, 这里面的作用是可以把类似eth_sendTransaction这样的链上调用操作给包裹起来。
更上面的一层则是状态管理层,这一部分的主要职责是管理着余额和交易列表的信息, 它这个层面的状况会直接影响前端响应速度的快慢。
在最顶层的那两层位置, 是渲染组件和插件扩展层, 它们是让第三方的DApp通过标准的接口来挂接到钱包的能力的。在真实的项目工作场景里面, 通常会卡住整个项目进度的是插件层面的鉴权握手过程, 这通常不是发生在底层的密钥管理那块儿。
