我正在构建空间开发一个 Solidity 智能合约(版本 0.8.0),这是我在 TypeScript(4.5.x)/JavaScript 和节点 16.13.x 中的代码片段
...
const waveContractFactory = await hre.ethers.getContractFactory("WavePortal");
const waveContract = await waveContractFactory.deploy({
value: hre.ethers.utils.parseEther("0.1"),
});
...
上面的代码写在一个名为:run.ts
的文件中,要执行该代码,命令如下:
npx 安全帽运行脚本/run.ts
这是我得到的错误的头部,其尾部被截断:
error TS2345: Argument of type '{ value: BigNumber; }' is not assignable to parameter of type 'Overrides & { from?: string | Promise<string> | undefined; }'.
Object literal may only specify known properties, and 'value' does not exist in type 'Overrides & { from?: string | Promise<string> | undefined; }'.
7 value: hre.ethers.utils.parseEther("0.1"),
....
上面的“7”显示发生错误的行。
我不知道错误从何而来。 run.ts/js
我正在尝试用 0.1 以太币为我的智能合约提供资金。
这是我的智能合约的片段:
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
import "hardhat/console.sol";
contract WavePortal {
...
constructor() {
console.log("Hello, Multiverse... I am Smart Contract WavePortal");
}
...
}
最佳答案
经过几个小时的研究,我找到了答案 here .
我必须向合约的构造函数添加一个 payable
修饰符,并且它可以工作:
contract WavePortal {
...
constructor() payable {
console.log("Hello, Multiverse... I am Smart Contract WavePortal");
}
...
}
关于typescript - 类型 '{ value: BigNumber; }' 的参数不可分配给类型 'Overrides & { from?: string | Promise<string> | undefined; }' 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70203264/