编程日记:Hardhat本地部署(2022-08-28)

编程学习

行动指南

目标:使用 Hardhat 搭建最小完整项目,需要包括以下功能:

  • [ ] 部署合约

  • [ ] 测试合约

  • [ ] 创建并引用库

整体框架:

  1. 部署Hardhad开发环境

    1. 安装 Hardhad: yarn add --dev hardhat

    2. 创建 JavaScript 版本的 Hardhat.

  2. 迁移智能合约

    1. 重写代码,查阅笔记,巩固不熟悉的代码部分。

  3. 编译智能合约

    1. yarn hardhat compile

  4. 部署智能合约

    1. "Require Module": 引入模块

      • hardhat

        • cm 为什么 hardhat 模块被引入后只能重命名为 ethers?

    2. "Main Function": 主函数

      1. 本地部署

        1. 创建合约工厂: ethers.getContractFactory()

        2. 部署合约:ContractFactory.delpoy()

        3. 确认交易:contract.deployed()

        4. td 学习 Hardhat Network, 了解为什么我们部署本地合约时,无需 Private Key 以及 RPC URL。

      2. 远程部署

    3. "Executor Function": 执行函数

  5. 测试智能合约

做了什么?

  1. 成功了解了 hardhat.config.js 文件的作用。

  2. 成功重写了 SimpelStorage.sol 合约内容,再次巩固了合约的写法。

  3. 成功找到了编程的重心,明白要将思考放在重要的编程问题上。

  4. 成功利用 Hardhat 在本地部署合约,并将过程记录在了整体框架当中。

收获了什么知识?

hardhat.config.js 配置文件

hardhat.config.js 文件是整个 Hardhat 项目的 entry 入口,类似于一个源代码里的 main() 函数。

Hardhat 的配置包括三个方面:config, plugins 以及 custom tasks, 所有的配置都可以写在 hardhat.config.js 文件当中。

task 任务

Hardhat 中的 task 任务,相当于带有 metadata 元数据的 JS 异步函数。

收获了什么方法?

通过编程框架,专注于重要的问题

背景:建立框架

在编程的时候,需要写下自己的目标和编程框架,目标是让自己觉得有意义的方向,而框架是实现目标的环节,它能够让自己明白自身当下的定位。

在能够确定目标、整体框架、预测框架的情况下,自己就确定了当下的定位和前进的方向。

方法:思考+索引记录
  • 框架以内的问题,需要通过思考来解决,因为这样的问题具有意义感,解决后也更能够获得成就感。

  • 框架以外的问题,可以记录下解决的方法,之后需要深入了解的时候,再去索引记录,并深度思考。