Solidity 智能合约白名单一次最多 1000 个钱包

Solidity Smartcontract Whitelist up to 1000 wallets at once

您好!

我想每个月左右将 1000 个钱包列入白名单。我可以使用 smartcontarct 将钱包一个一个地添加到白名单,但是这会花费很多时间。有没有更快的方法?

mapping(address => bool) public addresses;

    function whitelistAddresses(address[] _addresses) onlyOwner {
        require(!whitelistInitialized);
        for (uint256 i = 0; i < _addresses.length; i++) {
            addresses[_addresses[i]] = true;
        }

喜欢,准备这种数据每月添加白名单会更容易,但是我该怎么做?

    [{
   "address": "0x123",
   "state": true
   },
   {
   "address: "0x234",
   "state": false
   }]

非常感谢!

我没有足够的声誉来发表评论,所以我发布了这个“答案”,我认为解决方案可以是 merkle 树,你可以生成地址的 merkle 树,由你决定是否需要将其存储在链上或链下,这里是一个例子 https://github.com/miguelmota/merkletreejs-solidity