Solidity

將地址的 json 傳遞給 Contract

  • September 30, 2020

我想將一組 json 數據導入到我的構造契約中。我想將一個地址數組傳遞給它以保存到我的契約中的一個數組中。這可能嗎?我看過一些關於將 json 表述為契約的文章,但無法完全提取我想要的內容。

我擁有的 json 數據的結構是這樣的;- 我只想提取 HolderAddress 的。

[
 {
   "HolderAddress": "0x00007569643bc1709561ec2e86f385df3759e5dd",
   "Balance": 100,
   "PendingBalanceUpdate": "No"
 },
 {
   "HolderAddress": "0x00089553ab5a08bfdf1dc324845a4ad7a63e26b8",
   "Balance": 9,
   "PendingBalanceUpdate": "No"
 },
 {
   "HolderAddress": "0x0017bf3bca94a016a27d496363cec4d868758bb7",
   "Balance": 650,
   "PendingBalanceUpdate": "No"
 }
]

可以在部署契約時傳遞這些數據嗎?我將如何連結契約以讀取 json 文件?

非常感謝

提款機,你可以做的是:

constructor(address[] memory addresses, uint256[] memory balances, bool[] memory flags) public {
   uint256 length = addresses.length;
   require(length == balances.length, "INVALID_INPUT");
   require(length == flags.length, "INVALID_INPUT");
   for (uint256 i = 0; i < length; i++) {
       // do whatever you want to do with the input data
   }
}

作為arr您問題中的對像數組,您可以使用:

  • arr.map(x => x.HolderAddress)作為第一個參數
  • arr.map(x => x.Balance)作為第二個參數
  • arr.map(x => x.PendingBalanceUpdate != "No")作為第三個參數

引用自:https://ethereum.stackexchange.com/questions/87936