ProviderError:第一个参数无效:地址地址不是字符串

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

我正在尝试在 goerli 网络上部署我的合约。下面是我的deployProxy.js

const { ethers, upgrades } = require("hardhat");

async function main() {
  const VendingMachineV1 = await ethers.getContractFactory("VendingMachineV1");
  const proxy = await upgrades.deployProxy(VendingMachineV1, [100]);
  await proxy.waitForDeployment();

  const implementationAddress = await upgrades.erc1967.getImplementationAddress(
    proxy.getAddress()
  );

  console.log("Proxy contract address: " + proxy.getAddress());

  console.log("Implementation contract address: " + implementationAddress);
}

main();

但是,部署合约后出现错误

const error = new ProviderError( ProviderError: invalid 1st argument: address address was not string

solidity hardhat
1个回答
0
投票

你应该添加“await”,因为它返回一个承诺。

这样:

const implementationAddress = await upgrades.erc1967.getImplementationAddress(
    await proxy.getAddress()
  );

  console.log("Proxy contract address: " + await proxy.getAddress());
© www.soinside.com 2019 - 2024. All rights reserved.