Hardhat
安全帽在部署時找不到工件
使用安全帽進行初始化後,
$ 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
我沒有這個問題,我能夠正確部署它。我仍然想知道哪個是堅固性和安全帽的一般慣例。