Hardhat

類型上不存在屬性“getContractFactory”?

  • December 17, 2021

試圖執行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’。

hreconst Greeter = await hre.ethers.getContractFactory("Greeter")to移除時拋出錯誤await ethers.getContractFactory("Greeter")

原始碼:https ://github.com/GoGetterMeme/react_dapp.git

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');

引用自:https://ethereum.stackexchange.com/questions/112515