我正在尝试部署带有参数的合约:
constructor(
string memory name,
string memory symbol,
uint256 initialSupply,
address _marketingWallet
)
这是我的deploy.je
const token = await Token.deploy("MYTOKEN", "TOK", 1000000000, "0x047B2f4Da90dA60916CbB007158f3900BcF3084f"); // I changed the value of the marketing address publicly
但是,我在部署时遇到错误:
npx hardhat run --network testnet scripts/deploy.js
Deploying contracts with the account:
TypeError: no matching function (argument="key", value="address", code=INVALID_ARGUMENT, version=6.5.1)
at makeError (C:\Users\son\Documents\Crypto Tuto\Hardhat_testbsc\node_modules\ethers\src.ts\utils\errors.ts:670:21)
at assert (C:\Users\son\Documents\Crypto Tuto\Hardhat_testbsc\node_modules\ethers\src.ts\utils\errors.ts:694:25)
at assertArgument (C:\Users\son\Documents\Crypto Tuto\Hardhat_testbsc\node_modules\ethers\src.ts\utils\errors.ts:706:5)
at Interface.getFunctionName (C:\Users\son\Documents\Crypto Tuto\Hardhat_testbsc\node_modules\ethers\src.ts\abi\interface.ts:542:23)
at buildWrappedMethod (C:\Users\son\Documents\Crypto Tuto\Hardhat_testbsc\node_modules\ethers\src.ts\contract\contract.ts:334:34)
at BaseContract.getFunction (C:\Users\son\Documents\Crypto Tuto\Hardhat_testbsc\node_modules\ethers\src.ts\contract\contract.ts:841:22)
at Object.get (C:\Users\son\Documents\Crypto Tuto\Hardhat_testbsc\node_modules\ethers\src.ts\contract\contract.ts:747:39)
at main (C:\Users\son\Documents\Crypto Tuto\Hardhat_testbsc\scripts\deploy.js:21:39)
at processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'INVALID_ARGUMENT',
argument: 'key',
value: 'address'
知道错误可能来自哪里吗?
您使用的地址类型似乎不正确。
您可以使用任何 web3 库或使用 https://www.rfctools.com/ethereum-address-validator/ 等在线平台轻松检查任何地址的有效性。