Flutter Web3:Dart 中的智能合约交互
2022-11-21 本文已影响0人
追梦人在路上不断追寻
Dart 是用于构建 dApp 的最通用的编程语言之一,本文将展示在 Dart 中与智能合约交互、调用函数和监听事件是多么容易。
1_L6DajgxNeMrVfeNQS4kRFg.png使用 Web3dart 生成智能合约 dart 绑定。
web3dart 包带有一个非常酷的生成器,允许您从 ABI 生成 dart 类。虽然这可能不适用于超级复杂的智能合约,但通过使用 build_runner 从 ABI/字节码创建函数和类来简化流程大有帮助。
首先我们使用pubspec.yaml以下依赖项创建我们的项目。
1.png接下来,我们使用 hardhat、truffle 或任何您喜欢的 solidity 编译器来编译我们的智能合约以获得 abi。
然后我们可以将我们的 ABI 放在一个合约文件夹中,确保用.abi.json扩展名重命名它。
2.png接下来我们 使用dart run build_runner build -v
构建项目。
这将生成一个Lock.g.dart文件,其中包含在智能合约的 ABI 中找到的不同方法、类和事件。
4.png接下来,我们使用hardhat将智能合约部署到测试链。
5.png一旦我们部署了智能合约,localhost我们就可以轻松编写一个 dart 脚本来测试我们是否可以与部署的智能合约正确交互:
我们可以访问 Lock 智能合约的 dart 实现中存在的不同函数和事件。
6.png通过运行dart main.dart
我们可以很容易地看到我们已经能够与我们部署的智能合约进行无缝交互。