Hardhat

安全帽在部署時找不到工件

  • April 12, 2022

使用安全帽進行初始化後,$ npx hardhat我在部署時遇到了麻煩。

HardhatError: HH700: Artifact for contract "<contract_name>" not found.

我可以毫無錯誤地編譯我的契約 $ npx hardhat compile,但是當我嘗試使用部署腳本部署它時,我得到了錯誤:

$nnpx hardhat run scripts/deploy.js --network rinkeb

HardhatError: HH700: Artifact for contract "<contract_name>" not found.

在我的hardhat.config.js我有路徑:

       sources: "./contracts",
       artifacts: "./artifacts",
       cache: "./cache"
   },

在部署腳本中deploy.js我有

   const NFT = await hre.ethers.getContractFactory("contract");
   const nft = await NFT.deploy();

   await nft.deployed();

我有一份契約保存在contracts/contract.sol.

我不知道是哪個問題。

好吧,我設法找出問題所在。契約文件名和契約定義不同。我不知道契約的文件名和契約定義是否必須相同。

contracts/contract.sol我有:

pragma solidity ^0.8.0;

imports ...

contract NTFContract is ERC1155, Ownable {...
}

重命名後contracts/contract.sol --> contracts/NTFContract.sol我沒有這個問題,我能夠正確部署它。

我仍然想知道哪個是堅固性和安全帽的一般慣例。

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