Как получить весь список адресов ethereum, у которых есть мой токен?

Мне нужен список всех адресов ethereum, в аккаунте которых есть мой токен ERC20. У кого-нибудь есть идея, как получить список адресов. потому что я хочу разделить каждую учетную запись, у которой есть мой токен ERC20.

Вы можете использовать события для получения списка адресов или использовать новый массив для хранения адресов в вашем контракте.
От какого события я получаю?
Есть ли Transferв вашем контракте событие с указанием параметров fromAddress, toAddress, tokenCount? Не могли бы вы вставить код?
да, у меня есть Transfer и tokenCount
передача функции (адрес _to, uint256 _value) общедоступные результаты (логический успех) { validateTransfer (msg.sender, _to, _value); //назначаем общее количество токенов продажи if(address(saleToken) == _to) { saleToken.setTotalToken(_value); } вернуть super.transfer(_to, _value); }
..Кажется, у вас есть событие передачи ``` событие Transfer(адрес, индексированный _from, адрес, индексированный _to, uint256 _value);`````
Итак, перечислите события в вашем js

Ответы (1)

Сделайте это, используя ваше Transferсобытие в вашем контракте.

    var myEvent = contract.Transfer({},{fromBlock: 0, toBlock: 'latest'});
    myEvent.get((error, result) => {
               console.log(result);
      });

используйте fromBlockпараметр как 5933218блок, в котором создается контракт

Но мой токен-контракт и ICO-контракт — это два разных контракта. поэтому я не получаю событие Transfer. у вас есть какие-либо идеи об этом, как получить все адреса?
@sagarjethi вы должны получить экземпляр контракта токена в своем js и выполнить приведенный выше код, чтобы получить журнал событий.
ContractObj = новый web3.eth.Contract(CONTRACT_ABI, ContractAddress); ContractObj.getPastEvents('Transfer' || 'allEvents', { fromBlock: 0, toBlock: 'последний' }, function(err,res){ console.log(err,res); });
ContractObj.Transfer({},{ fromBlock: 0, toBlock: 'последний' }, function(err,res){ console.log(err,res); });