【HardHat + VSCode + Solidity】

本文详细介绍了如何在VSCode中配置Solidity开发环境,包括安装Node.js、VSCode插件、代码格式化、使用yarn、Solc编译工具、Ganache、Ethers.js、HardHat项目设置以及部署到BSCTestnet的过程。

该文章根据B站Solidity视频教程编写,以此来记录学习笔记

下载Visual Studio Code

安装NodeJs

  • 官网下载
  • 建议下载 LTS 版本,LTS表示长期支持(Long Term Support)
  • 安装好后打开VSCode工具在终端运行如下命令是否正常
node --version

VSCode中安装插件

  • Solidity(黄色帽子那个插件)
  • prettier + prettier-plugin-solidity (代码格式化) 官网

项目安装 prettier + prettier-plugin-solidity

  • 执行命令
npm install --save-dev prettier prettier-plugin-solidity
  • 设置代码格式,比如JS每行的;分号不写;'单引号变双引号;等
  • 在项目根目录新建.prettierrc (需要格式化设置) 和 .prettierignore (不需要格式化设置的文件)
  • .prettierrc
{
  "tabWidth": 4,
  "useTabs": false,
  "semi": false,
  "singleQuote": false
}
  • .prettierignore
node_modules
package.json
img
artifacts
cache
coverage
.env
.*
README.md
coverage.json

设置VSCode保存自动格式化

  • Ctrl + Shift + P打开命令面板,输入settings
  • 选择Open Workspace Settings (JSON),在settings.json文件中配置
  • 格式化Solidity代码配置
"[solidity]": {
    "editor.defaultFormatter": "NomicFoundation.hardhat-solidity"
  }
  • 格式化JS代码配置
{
"[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
}
  • 配置好后,再打开命令行面板,选择Open User Settings
  • 搜索Format On Save
  • 打开设置,Format On Save打钩即可

切换用yarn

  • 禁用corepack ,新版本的Nodejs中默认会安装该插件
corepack enable
  • 如果无法禁用corepack 插件,则表示当前没有安装该插件,直接安装yarn插件即可
  • 安装yarn
npm install -g yarn
  • 查看yarn版本
yarn --version

安装Solidity编译工具Solc-js

官网

npm install -g solc

或者

yarn add solc

目录说明

  • package.json: 项目包依赖关系
  • yarn.lock: 项目使用包确切版本

添加Solidity编译版本

  • 格式 : yarn add solc@solidity版本-fixed
  • 查看Solc能编译的版本有哪些?参考
yarn add solc@0.8.7-fixed
  • 查看Solc命令列表
yarn solcjs --help
  • 查看当前Solc编译版本
yarn solcjs --version

Solc编译Solidity指定文件

yarn solcjs --bin --abi --include-path node_modules/ --base-path . -o . XXX.sol
  • “–bin” : 二进制文件
  • “–abi” : abi文件
  • “–include-path node_modules/”: 包含所有合约或文件
  • “–base-path”: 起始路径
  • “-o” : bin文件和abi文件输出路径

Ganache

官网

Ethers.js

官网V5版
官网V6版
中文V5版

yarn add ethers@5.7

安装dotenv

yarn add dotenv

创建 HardHat 项目

官方文档

  • 创建新项目,并cd到该目录下
  • 执行yarn init,会有提示输入信息,一路回车即可
  • 再执行yarn add --dev hardhatnpm install --dev hardhat
  • yarn hardhatnpx hardhat
  • 选择Create a JavaScript project,后面也是一路回写即可
  • 注意:后续需要自己手动去安装依赖包,或一次性执行如下命令来安装,因为后面需要用hardhat命令,否则导致有些hardhat命令无法使用
yarn add --dev "hardhat@^2.14.0" "@nomicfoundation/hardhat-network-helpers@^1.0.0" "@nomicfoundation/hardhat-verify@^1.0.0" "chai@^4.2.0" "hardhat-gas-reporter@^1.0.8" "solidity-coverage@^0.8.0" "@nomicfoundation/hardhat-toolbox@^3.0.0" "@nomicfoundation/hardhat-chai-matchers@^2.0.0" "@nomicfoundation/hardhat-ethers@^3.0.0" "ethers@^6.4.0" "@typechain/hardhat@^8.0.0" "typechain@^8.1.0" "@typechain/ethers-v6@^0.4.0"

部署到BSC Testnet

  • deploy.js
const { ethers } = require("hardhat")

async function main() {
  const simpleStorageFactory = await ethers.getContractFactory("SimpleStorage")
  console.log("Deploying contract...")
  const simpleStorage = await simpleStorageFactory.deploy()
  await simpleStorage.waitForDeployment()
  console.log(`Deployed contract address: ${ simpleStorage .target }`)
}

main().then(() => {
  process.exit(0)
}).catch((error) => {
console.log(error)
process.exit(1)
})
  • hardhat.config.js文件中配置
module.exports = {
  defaultNetwork: "hardhat",
  networks: {
    bsctest: {
      url: BSCTEST_RPC_URL,  // BSC Testnet RPC URL
      accounts: [PRIVATE_KEY], // 私钥
      gasPrice: 1500000000, // gasPrice,注:第一次部署的时候没有写,会报错:ProviderError: transaction underpriced
      chainId: 97 // BSC Testnet chainId
    }
  },
  solidity: "0.8.19",
};
  • 执行命令
yarn hardhat run .\scripts\deploy.js --network bsctest
Deploying contract...
Deployed contract address: 0x61432B23cf8C6507288E755756e7EacF4AD127a7
Done in 17.63s.
  • 注意:因为刚部署的合约没有验证,因此无法查看具体的Solidity代码
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值