1. Общие инструкции

1. «0» в адресе контракта или адресе кошелька по умолчанию заменяется в таблице на «\».

Например, адрес 0x9b22a80d5c7b3374a05b446081f97d0a34079e7f.

Фактически сохраненные данные: \x9b22a80d5c7b3374a05b446081f97d0a34079e7f.

А. Если вы хотите ввести переменные в SQL, вы можете использовать следующую обработку, чтобы избежать ввода странных форматов с помощью '\':

Wallet_address = CONCAT('\x', substring('{<!-- -->{wallet_address}}' from 3))::bytea

б. При отображении определенного поля для внешнего мира вы можете преобразовать его в строку, а затем использовать замену (этот метод немного глупый, может быть, есть метод получше).

replace(cast(wallet_address как varchar),'\','0')

2. По умолчанию используется время UTC. Если вы хотите преобразовать его в UTC+8, вы можете обработать его в SQL.

block_time + '8 часов'::интервал

3. Самый быстрый способ ознакомиться с таблицей — найти несколько фрагментов данных и сравнить их в etherscan.Большую часть данных в таблице можно найти в записях, соответствующих tx_hash в etherscan.

2. Часто используемые библиотечные таблицы

1. Журнал внутрисетевой передачи

Эфириум.Транзакции

A. Структура таблицы и образцы данных

Б. Соответствующие данные в etherscan

C. Сопутствующие инструкции

  • Все записи транзакций, связанные с кошельком, включая информацию, связанную с газом: использованный газ, цена на газ и т. д.

  • Поле хеша относится к tx_hash.

2. Таблица информации о токене ERC20.

erc20.токены

A. Структура таблицы и образцы данных

Б. Соответствующие данные в etherscan

C. Сопутствующие инструкции

  • Таблица, в которой хранится основная информация о токенах ERC20. Обычно используется для получения символа в соответствии с контрактом токена или десятичными числами токена.

  • Плохо то, что эта таблица обновляется вручную. Многие мелкие монеты или новые монеты здесь не могут быть найдены. Я не уверен насчет конкретного механизма обновления вручную. Интересно, оптимизирует ли чиновник его позже.

3.Журнал передачи токенов ERC20

erc20.ERC20_evt_Transfer

A. Структура таблицы и образцы данных

Б. Соответствующие данные в etherscan

C. Сопутствующие инструкции

  • Таблица, принадлежащая базовому журналу, в котором фиксируется статус передачи всех токенов ERC20 в истории кошелька. Теоретически эта таблица может вычислять все данные, связанные с балансом токенов ERC20 кошелька.

  • Токены, переданные через Flashbot, не будут засчитаны (похоже, эта часть транзакции не проходит через логи Ethereum)

  • Значение: в поле «Значение» хранится необработанное значение, которое необходимо обработать с помощью десятичных дробей.

Значение/степень (10, десятичное число). Десятичные знаки каждого токена необходимо брать из таблицы erc20.tokens, но эта таблица не является полной, как будет обсуждаться позже.

  • Contract_address: адрес контракта ERC20.

4. Таблица баланса токенов ERC20

erc20.view_token_balances_latest: последний баланс токенов ERC20 для всех адресов, частота обновления неизвестна erc20.view_token_balances_hourly: последний баланс токенов ERC20 для всех адресов, почасовой уровень erc20.view_token_balances_daily: последний баланс токенов ERC20 для всех адресов, день- уровень erc20.token_balances: никогда не использовался, доступен в официальном документе.

A. Структура таблицы и образцы данных

Б. Соответствующие данные в etherscan

C. Сопутствующие инструкции

  • Таблица баланса выглядит как таблица, полученная на основе данных erc20.ERC20_evt_Transfer.Согласно статистике, основанной на разных часах и днях, рассчитывается количество каждой валюты, хранящейся в долларах США.

  • Если вы просто подсчитываете балансы, не применяя более сложную настраиваемую логику, теоретически эта таблица может удовлетворить большинство потребностей.

  • Проблема с этой таблицей заключается в том, что эквивалентная сумма многих новых монет или нишевых монет в долларах США пуста. Предполагается, что для расчета суммы в долларах США необходимы десятичные дроби, но таблица erc20.tokens обновляется вручную, и даже если десятичные дроби не могут быть быть получен. Если баланс не отображается, соответствующая сумма не может быть отображена или цена, соответствующая Токену, не может быть получена.

4. Прайс-лист токенов

4.1 Цена токена Cex

цены.доллары США

B. Сопутствующие инструкции

  • Данные о цене токена Cex, минутный уровень

4.2 Цена токена Dex

dex.view_token_prices

A. Структура таблицы и образцы данных

B. Сопутствующие инструкции

  • Данные о цене токена Dex, минутный уровень

  • Данные в этой таблице кажутся не очень полными.Если вы не можете найти какие-либо токены, вы можете использовать dex.trades для их расчета самостоятельно.

Подробную информацию о расчете цены токена см. в официальном документе: https://docs.dune.xyz/about/tutorials/queries/price-queries#centralized-exchange-price-data.

5. Журнал транзакций Dex

dex.trades

A. Структура таблицы и образцы данных

Б. Соответствующие данные в etherscan

C. Сопутствующие инструкции

  • Хранит журнал транзакций токенов dex. Каждый фрагмент данных представляет транзакцию, произошедшую в токене dex X A → токене Y B.

  • проект: протоколы, используемые для транзакций Uniswap, Sushi и т. д.

  • версия: версия протокола, Uniswap v2, Uniswap v3 и т. д.

6. Связанные с Uniswap

6.1 Журнал создания нового пула

uniswap_v2.Factory_evt_PairCreated

A. Структура таблицы и образцы данных

B. Сопутствующие инструкции

  • Хранит журнал, созданный новым пулом unswap.

  • token0 token1: двусторонний договор пула

  • пара: адрес контракта пула

  • evt_block_time: время создания пула

6.2 Журнал подробностей транзакций

uniswap_v2.Pair_evt_Swap

A. Структура таблицы и образцы данных

B. Сопутствующие инструкции

  • Журнал деталей транзакций uni. На основании этого также можно рассчитать цену токена.

7. Журналы, связанные с NFT

erc721."ERC721_evt_Transfer"

A. Структура таблицы и образцы данных

Б. Соответствующие данные в etherscan

C. Сопутствующие инструкции

  • Это очень похоже на таблицу ERC20.

  • Транзакции, исходящие из адресов «черных дыр», таких как 0x0000000, должны быть отличными.