主网在Remix Solidity智能合约中将地址数组部署为构造函数参数不起作用

时间:2018-10-31 12:40:56

标签: blockchain ethereum solidity remix

我正在尝试通过Remix / Metamask将智能合约部署到主网。我有一个用于构造函数参数的地址数组,并且无法接受该事务。我在每个地址周围都尝试了双引号“”和单引号“。任何人都知道如何编写array参数,以便将其解释为数组而不是字符串(参见图片)?

The error message in remix

谢谢!

1 个答案:

答案 0 :(得分:0)

您只需要在双引号中输入地址数组即可。例如,

pragma solidity ^ 0.4.25;

contract Test {
  address[] mAddrs;
  event Deployed(address indexed theaddr);

  constructor(address[] addrs) public {
    mAddrs = addrs;

    for (uint8 i = 0; i < mAddrs.length; i++)
      emit Deployed(mAddrs[i]);
  }
}

使用参数设置为["0xca35b7d915458ef540ade6068dfe2f44e8fa733c", "0x14723a09acff6d2a60dcdf7aa4aff308fddc160c", "0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db"]

进行部署

结果(注意第一个地址显示在日志输出中): enter image description here