Hardhat
類型上不存在屬性“getContractFactory”?
試圖執行
npx hardhat run --network ropsten scripts/deploy.ts
deploy.ts
引發類型錯誤import { ethers } from "ethers"; // const hre = require("hardhat"); async function main() { // await hre.run('compile'); const Greeter = await ethers.getContractFactory("Greeter") const greeter = await Greeter.deploy("Hello, Hardhat!") await greeter.deployed() console.log("Greeter deployed to:", greeter.address) } main() .then(() => process.exit(0)) .catch((error) => { console.error(error) process.exit(1) });
類型 ’typeof import("/home/ubuntu/demos/react-dapp/node_modules/ethers/lib/ethers")’ 上不存在屬性 ‘getContractFactory’。
hre
從const Greeter = await hre.ethers.getContractFactory("Greeter")
to移除時拋出錯誤await ethers.getContractFactory("Greeter")
ethers.getContractFactory 是 Hardhat 添加到 ethers 對象的助手之一,因此您需要先呼叫 hre。
https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html#helpers
注意 Ethers.js 文件中不存在 getContractFactory:
https://docs.ethers.io/v4/search.html?q=getContractFactory&check_keywords=yes&area=default#
Hardhat在執行任務、測試或腳本時會公開一個Hardhat Runtime Environment (HRE) 。您可以通過一個名為
hre
.例如:
const Greeter = await hre.ethers.getContractFactory('Greeter');