Как я могу просмотреть все токены и контракты, связанные с адресом ethereum, в Javascript, используя Web3.js?

Есть ли пример кода js, который использует web3.js для запроса блокчейна Ethereum, чтобы увидеть все токены и контракты, связанные с адресом Ethereum? Я хочу создать кошелек ethereum и хочу знать, как получить эти данные.

  • Как мне подключиться к общедоступной ноде Эфириума, чтобы сделать этот запрос?
  • Какие функции web3.js необходимы для извлечения токенов, которые содержит адрес?
  • Контракты, связанные с адресом?
Вам необходимо иметь список адресов контрактов токенов, предоставленных вам извне. Сам адрес не знает, какие токены он содержит. Вам нужно запросить каждый контракт токена отдельно или запросить Transferадрес события и попытаться выяснить это оттуда.

Ответы (1)

Как сказал Микко, вы можете спрашивать только известные вам контракты об использовании функций/интерфейса (ABI), о которых вы знаете, интерпретируя ответ так, как вы знаете.

Итак, я не думаю, что это возможно, как указано, но...

Можно было бы сузить область поиска и объем и выдать что-то полезное. Например, ERC20 — это стандартный интерфейс. В сочетании со списком известных токенов ERC20 (предположительно поддерживаемых вручную) можно запросить каждый контракт, чтобы узнать balanceOf(account), больше ли он 0.

Таким образом, вместо слишком общего «Все контракты, в которых этот адрес имеет значение», рассмотрим «Все известные контракты, совместимые с ERC20, в которых этот адрес имеет значение balanceOf()больше 0» . Не говоря уже о том, что это будет особенно эффективно, но это может превратить проблему из недоступной в достижимую.

Надеюсь, это поможет.

позвольте мне получить это прямо. поэтому мне нужно будет запросить каждый отдельный контракт, который выпустил токен, и посмотреть, имеет ли мой адрес баланс> 0 для одного из этих токенов? Я предполагаю, что кошельки делают это, запрашивая каждый известный контракт, чтобы отобразить баланс ваших токенов? Я ищу решение, похожее на nxt, где каждый адрес просто перечисляет все токены, которыми вы владеете, без необходимости запрашивать каждого эмитента токенов, чтобы проверить ваш баланс. Спасибо!
Я думаю, мы все поняли ваш вопрос как описание сложностей, происходящих вне поля зрения пользователей. То есть руководство о том, как бы вы построили такую ​​вещь.