1.首先创建了一个测试的合约如下:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Empty {
constructor() {}
}
2.写了测试文件Simpletes.js文件如下:
async function main() {
const [deployer] = await ethers.getSigners();
console.log("Deploying contracts with the account:", deployer.address);
const Empty = await ethers.getContractFactory("Empty");
const empty = await Empty.deploy();
try {
await empty.deployed();
console.log("Empty contract deployed to:", empty.address);
} catch (error) {
console.error("Deployment failed:", error);
}
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error("Deployment process error:", error);
process.exit(1);
});
如果添加红色部分 await empty.deployed(); 会报错Deployment failed: TypeError: empty.deployed is not a function,但是如果删除红色部分 await empty.deployed(); 则终端显示Empty contract deployed to: undefined,这是什么原因呢?
求助应该怎么样才可以部署成功???
package.json文件如下:
{
"name": "hardhat-project",
"devDependencies": {
"@nomicfoundation/hardhat-toolbox": "^5.0.0",
"@openzeppelin/contracts": "^5.0.2",
"ethers": "^6.13.2",
"hardhat": "^2.22.7"
}
}
hardhat.config.js文件如下:
require("@nomicfoundation/hardhat-toolbox");
/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
defaultNetwork: "hardhat",
networks: {
hardhat: {
chainId: 1337,
},
},
solidity: {
version: "0.8.24",
settings: {
optimizer: {
enabled: true,
runs: 200,
},
},
},
};