<100 subscribers
Share Dialog
Share Dialog
Object:
阶段目标:搭建最小Hardhat项目。
Key Result:
功能一:部署合约
[x] 本地部署
[x] 远程部署
功能二:验证合约
功能二:测试合约
功能三:创建并引用库
合约部署
配置网络
隐藏敏感信息
部署合约
合约验证
verify() 函数
数据准备
@nomiclabs/hardhat-etherscan 包
ETHERSCAN_API_KEY
td 更改 etherscan apiKey 的配置,方便应用能同时使用 Georli 和 Rinkeby URL
td 了解 Hardhat run 组件
verify() 函数调用
成功完成了合约的远程部署。
成功纵览了一遍合约验证的逻辑,需要通过写代码来践行一遍。
成功使用 Alchemy RPC URL 在 Goerli 测试链上部署合约。
1️⃣ 配置网络
进入 hardhat.contract.js 配置文件
修改默认网络:defaultNetworks: "<network_name>"
添加网络信息:
身份 (Who):chainId
位置 (Where): url: RPC_URL
使用方式 (How):: accounts: PRIVATE_KEY
2️⃣ 隐藏敏感信息
.env 文件
添加 PRIVATE_KEY 和 RPC_URL 的具体内容
hardhat.contract.js 文件
安装 dotenv 包:yarn add --dev dotenv
引入 dotenv 模块:require("dotenv").config()
cm 为什么需要调用 require() 的 .config() 方法? Patrick 解释的 "to enable the config" 是什么意思?
隐藏敏感信息:
隐藏私钥:const PRIVATE_KEY = process.env.PRIVATE_KEY
隐藏网址:const RPC_URL = process.env.RPC_URL
cm process 的作用是什么?为什么可以接 .env? 可以谷歌搜索 "what is process.env.PRIVATE_KEY" 或者 "dotenv process"
3️⃣ 部署合约
创建工厂:const Factory = ethers.getContractFactory()
部署合约:const contract = await Factory.deploy()
确认合约:await contract.deployed()
cm 为什么在 Hardhat 当中,确认合约是 .deployed() 而非 ethers.js 中的 wait()? 两者有什么区别?
显示合约地址:console.log(contract.address)
今天探索到了一批优秀的 Web3 开发者,重点提及两位:
郭宇,一位优秀的程序员,有很棒的编程功底,同时认知半径广阔,虽说对新领域的预测可能会被李笑来吐槽,但是作为看家本领的编程还是很牛逼的。关注:Twitter,Mirror, 代表作:Web3 DApp 最佳编程实践指南
shep, NextDAO 的技术创始人,他为我打开了一片新的程序员大门。推荐关注:link3, Twitter, 以及 NextDAO 中的 web3-develp 频道
Object:
阶段目标:搭建最小Hardhat项目。
Key Result:
功能一:部署合约
[x] 本地部署
[x] 远程部署
功能二:验证合约
功能二:测试合约
功能三:创建并引用库
合约部署
配置网络
隐藏敏感信息
部署合约
合约验证
verify() 函数
数据准备
@nomiclabs/hardhat-etherscan 包
ETHERSCAN_API_KEY
td 更改 etherscan apiKey 的配置,方便应用能同时使用 Georli 和 Rinkeby URL
td 了解 Hardhat run 组件
verify() 函数调用
成功完成了合约的远程部署。
成功纵览了一遍合约验证的逻辑,需要通过写代码来践行一遍。
成功使用 Alchemy RPC URL 在 Goerli 测试链上部署合约。
1️⃣ 配置网络
进入 hardhat.contract.js 配置文件
修改默认网络:defaultNetworks: "<network_name>"
添加网络信息:
身份 (Who):chainId
位置 (Where): url: RPC_URL
使用方式 (How):: accounts: PRIVATE_KEY
2️⃣ 隐藏敏感信息
.env 文件
添加 PRIVATE_KEY 和 RPC_URL 的具体内容
hardhat.contract.js 文件
安装 dotenv 包:yarn add --dev dotenv
引入 dotenv 模块:require("dotenv").config()
cm 为什么需要调用 require() 的 .config() 方法? Patrick 解释的 "to enable the config" 是什么意思?
隐藏敏感信息:
隐藏私钥:const PRIVATE_KEY = process.env.PRIVATE_KEY
隐藏网址:const RPC_URL = process.env.RPC_URL
cm process 的作用是什么?为什么可以接 .env? 可以谷歌搜索 "what is process.env.PRIVATE_KEY" 或者 "dotenv process"
3️⃣ 部署合约
创建工厂:const Factory = ethers.getContractFactory()
部署合约:const contract = await Factory.deploy()
确认合约:await contract.deployed()
cm 为什么在 Hardhat 当中,确认合约是 .deployed() 而非 ethers.js 中的 wait()? 两者有什么区别?
显示合约地址:console.log(contract.address)
今天探索到了一批优秀的 Web3 开发者,重点提及两位:
郭宇,一位优秀的程序员,有很棒的编程功底,同时认知半径广阔,虽说对新领域的预测可能会被李笑来吐槽,但是作为看家本领的编程还是很牛逼的。关注:Twitter,Mirror, 代表作:Web3 DApp 最佳编程实践指南
shep, NextDAO 的技术创始人,他为我打开了一片新的程序员大门。推荐关注:link3, Twitter, 以及 NextDAO 中的 web3-develp 频道
No comments yet