之前说了创建实例和交易,这块还有一个问题。
有时候我们需要过滤一些合约事件,使用viem创建的实例这个时候就有点力不从心了:
这个是1.x的文档,从1.x版本开始创建的合约实例就是viem的实例而不是之前的ethers实例
之间的主要区别:
ethers.js:
- 更加面向对象,使用链式调用和事件监听的方式。
- 更加成熟,功能全面,适合需要复杂交互的应用。
viem:
- 更加函数式,强调使用客户端和合约实例的组合。
- 设计简洁,适合快速开发和轻量级应用。
我们使用ethers.js创建的合约实例通常会包括:filter、queryFilter用于过滤事件的方法
而viem创建的实例则没有对应的方法,如果在用到filter的时候viem实例会显得异常的繁琐很不友好,这个时候我们则可以借助于ethers.js创建实例不必强行依赖于viem。