部署时如何传递正确的参数

问题描述 投票:0回答:1

我正在尝试部署带有参数的合约:

 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'

知道错误可能来自哪里吗?

ethereum solidity hardhat
1个回答
0
投票

您使用的地址类型似乎不正确。

您可以使用任何 web3 库或使用 https://www.rfctools.com/ethereum-address-validator/ 等在线平台轻松检查任何地址的有效性。

© www.soinside.com 2019 - 2024. All rights reserved.