1. Instrucțiuni generale

1. „0” din adresa contractului sau din adresa portofel este înlocuit implicit cu „\” în tabel.

Cum ar fi adresa 0x9b22a80d5c7b3374a05b446081f97d0a34079e7f

Datele reale stocate sunt: ​​\x9b22a80d5c7b3374a05b446081f97d0a34079e7f

a. Dacă doriți să introduceți variabile în SQL, puteți utiliza următoarea procesare pentru a evita introducerea de formate ciudate cu „\”:

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

b. Când afișați un anumit câmp în lumea exterioară, îl puteți converti într-un șir și apoi utilizați înlocuire (această metodă este puțin stupidă, poate exista o metodă mai bună)

înlocuiți(cast(adresa_portofel ca varchar),'\','0')

2. Ora este implicită UTC Dacă doriți să o procesați în UTC+8, o puteți procesa în SQL.

block_time + „8 ore”::interval

3. Cel mai rapid mod de a vă familiariza cu tabelul este să aflați câteva date și să le comparați în etherscan. Majoritatea datelor din tabel pot fi găsite în înregistrările corespunzătoare lui tx_hash în etherscan.

2. Tabele de bibliotecă utilizate în mod obișnuit

1. Jurnal de transfer în lanț

Ethereum.Tranzacții

A. Structura tabelului și mostre de date

B. Date corespunzătoare în etherscan

C.Instrucțiuni aferente

  • Toate înregistrările Tranzacțiilor asociate cu un portofel, inclusiv informații legate de gaz: gaz utilizat, prețul gazului etc.

  • Câmpul hash se referă la tx_hash

2.Tabelul cu informații despre jeton ERC20

erc20.jetoane

A. Structura tabelului și mostre de date

B. Date corespunzătoare în etherscan

C.Instrucțiuni aferente

  • Un tabel care stochează informațiile de bază ale jetoanelor ERC20. Utilizarea obișnuită este de a obține simbolul în conformitate cu contractul de simbol sau zecimalele token-ului.

  • Lucrul rău este că acest tabel este actualizat manual. Multe monede mici sau monede noi nu pot fi găsite aici. Nu sunt sigur de mecanismul de actualizare manuală.

3. Jurnal de transfer de jetoane ERC20

erc20.ERC20_evt_Transfer

A. Structura tabelului și mostre de date

B. Date corespunzătoare în etherscan

C.Instrucțiuni aferente

  • Un tabel aparținând jurnalului de bază, care înregistrează starea de transfer a tuturor jetoanelor ERC20 din istoricul unui portofel. În teorie, acest tabel poate calcula toate datele legate de soldul token-urilor ERC20 ale portofelului.

  • Jetoanele transferate prin Flashbot nu vor fi numărate (această parte a tranzacției nu pare să treacă prin jurnalele Ethereum)

  • Valoare: Câmpul Valoare stochează valoarea brută, care trebuie procesată prin zecimale. Metoda de procesare este

Valoare/putere (10, dicimal) --Decimele fiecărui Token trebuie luate din tabelul erc20.tokens, dar acest tabel nu este complet, așa cum va fi discutat mai târziu

  • contract_address: adresa contractului ERC20

4. Tabelul de bilanț al jetoanelor ERC20

erc20.view_token_balances_latest: Cel mai recent sold de jetoane ERC20 pentru toate adresele, frecvența de actualizare este necunoscută erc20.view_token_balances_hourly: Cel mai recent sold de jetoane ERC20 pentru toate adresele, nivel orar erc20.view_token_balances_daily: Cele mai recente solduri de tokenuri pentru toate adresele ERC20, zi nivel erc20.token_balances: niciodată folosit, disponibil în documentul oficial

A. Structura tabelului și mostre de date

B. Date corespunzătoare în etherscan

C.Instrucțiuni aferente

  • Tabelul de sold pare a fi un tabel derivat din datele erc20.ERC20_evt_Transfer Conform statisticilor bazate pe diferite ore și zile, se calculează suma fiecărei monede deținute în USD.

  • Dacă pur și simplu numărați soldurile fără a face o logică personalizată mai complexă, teoretic acest tabel poate satisface majoritatea nevoilor.

  • O problemă cu acest tabel este că suma echivalentă în USD a multor monede noi sau monede de nișă este goală. Se presupune că sunt necesare zecimale pentru a calcula suma USD, dar tabelul erc20.tokens este actualizat manual și chiar dacă zecimalele nu pot. poate fi obținut, Dacă soldul nu este afișat, suma corespunzătoare nu poate fi afișată sau Prețul corespunzător Tokenului nu poate fi obținut.

4.Token lista de prețuri

4.1 Prețul Jetonului Cex

preturi.usd

B.Instrucțiuni aferente

  • Date despre prețul Cex Token, la nivel de minute

4.2 Prețul Jetonului Dex

dex.view_token_prices

A. Structura tabelului și mostre de date

B.Instrucțiuni aferente

  • Date de preț Dex Token, la nivel de minute

  • Datele din acest tabel nu par a fi foarte complete Dacă nu puteți găsi unele Jetoane, puteți utiliza dex.trades pentru a le calcula singur.

Pentru calibru detaliat de calcul al prețului Tokenului, vă rugăm să consultați documentul oficial: https://docs.dune.xyz/about/tutorials/queries/price-queries#centralized-exchange-price-data

5. Jurnal de tranzacții Dex

dex.meserii

A. Structura tabelului și mostre de date

B. Date corespunzătoare în etherscan

C.Instrucțiuni aferente

  • Stochează jurnalul de tranzacții cu simbol al dex. Fiecare parte de date reprezintă o tranzacție care a avut loc în simbolul dex X A → Y Tokenul B

  • proiect: Protocoale utilizate pentru tranzacții: Uniswap, Sushi etc.

  • versiune: versiune de protocol, Uniswap v2, Uniswap v3 etc.

6. Legat de Uniswap

6.1 Jurnal nou de creare a piscinei

uniswap_v2.Factory_evt_PairCreated

A. Structura tabelului și mostre de date

B.Instrucțiuni aferente

  • Stochează jurnalul creat de noul pool al lui unswap

  • token0 token1: contract bilateral de grup

  • pereche: adresa contractului de bazin

  • evt_block_time: timpul de creare a pool-ului

6.2 Jurnalul detaliilor tranzacției

uniswap_v2.Pair_evt_Swap

A. Structura tabelului și mostre de date

B.Instrucțiuni aferente

  • jurnalul de detalii ale tranzacției uni Pe baza acestuia, poate fi calculat și prețul Tokenului.

7. Jurnalele legate de NFT

erc721."ERC721_evt_Transfer"

A. Structura tabelului și mostre de date

B. Date corespunzătoare în etherscan

C.Instrucțiuni aferente

  • Este foarte asemănător cu tabelul ERC20

  • Tranzacțiile care ies de la adresele găurii negre, cum ar fi 0x0000000, ar trebui să fie un comportament excelent