1. Instructions générales
1. Le « 0 » dans l’adresse du contrat ou l’adresse du portefeuille est remplacé par « \ » par défaut dans le tableau.
Tel que l'adresse 0x9b22a80d5c7b3374a05b446081f97d0a34079e7f
Les données réellement stockées sont : \x9b22a80d5c7b3374a05b446081f97d0a34079e7f
a. Si vous souhaitez introduire des variables dans SQL, vous pouvez utiliser le traitement suivant pour éviter de saisir des formats étranges avec '\' :
wallet_address= CONCAT('\x', substring('{<!-- -->{wallet_address}}' from 3))::bytea
b. Lors de l'affichage d'un certain champ en externe, vous pouvez le convertir en chaîne puis utiliser replace (cette méthode est un peu stupide, il peut y avoir une meilleure méthode)
replace(cast(wallet_address as varchar),'\','0')
2. L'heure par défaut est l'heure UTC. Si vous souhaitez la traiter en UTC+8, vous pouvez la traiter en SQL.
block_time + '8 heures' :: intervalle
3. Le moyen le plus rapide de se familiariser avec le tableau est de rechercher quelques éléments de données et de les comparer dans etherscan. La plupart des données du tableau se trouvent dans les enregistrements correspondant à tx_hash dans etherscan.
2. Tables de bibliothèque couramment utilisées
1. Journal de transfert en chaîne
Ethereum.Transactions
A. Structure du tableau et exemples de données

B. Données correspondantes dans Etherscan

C.Instructions associées
Tous les enregistrements de transactions associés à un portefeuille, y compris les informations relatives au gaz : gaz utilisé, prix du gaz, etc.
Le champ de hachage fait référence à tx_hash
2.Tableau d'informations sur les jetons ERC20
erc20.jetons
A. Structure du tableau et exemples de données

B. Données correspondantes dans Etherscan

C.Instructions associées
Un tableau qui stocke les informations de base des jetons ERC20. L'usage courant est d'obtenir le symbole en fonction du contrat du jeton ou des décimales du jeton.
Le problème est que ce tableau est mis à jour manuellement. De nombreuses petites pièces ou nouvelles pièces ne peuvent pas être trouvées ici. Je ne suis pas sûr du mécanisme de mise à jour manuelle spécifique. Je me demande si le responsable l'optimisera plus tard.
3.Journal de transfert de jetons ERC20
erc20.ERC20_evt_Transfer
A. Structure du tableau et exemples de données

B. Données correspondantes dans Etherscan

C.Instructions associées
Un tableau appartenant au journal sous-jacent, qui enregistre l'état de transfert de tous les jetons ERC20 dans l'historique d'un portefeuille. En théorie, ce tableau peut calculer toutes les données liées au solde des jetons ERC20 du portefeuille.
Les tokens transférés via Flashbot ne seront pas comptés (cette partie de la transaction ne semble pas passer par les logs d'Ethereum)
Valeur : le champ Valeur stocke la valeur brute, qui doit être traitée via des décimales. La méthode de traitement est la suivante.
Valeur/puissance (10, décimal) --Les décimales de chaque jeton doivent être extraites du tableau erc20.tokens, mais ce tableau n'est pas complet, comme nous le verrons plus tard.
contract_address : adresse du contrat ERC20
4. Tableau du solde des jetons ERC20
erc20.view_token_balances_latest : Le dernier solde de jetons ERC20 pour toutes les adresses, la fréquence de mise à jour est inconnue erc20.view_token_balances_hourly : Le dernier solde de jetons ERC20 pour toutes les adresses, niveau horaire erc20.view_token_balances_daily : Le dernier solde de jetons ERC20 pour toutes les adresses, jour- niveau erc20.token_balances : jamais utilisé, disponible dans le Doc officiel
A. Structure du tableau et exemples de données

B. Données correspondantes dans Etherscan

C.Instructions associées
Le tableau du solde semble être un tableau dérivé des données de erc20.ERC20_evt_Transfer. Selon des statistiques basées sur différentes heures et jours, le montant de chaque devise détenue en USD est calculé.
Si vous comptez simplement les soldes sans faire de logique personnalisée plus complexe, ce tableau peut théoriquement répondre à la plupart des besoins.
Un problème avec ce tableau est que le montant équivalent en USD de nombreuses nouvelles pièces ou pièces de niche est vide. On suppose que des décimales sont nécessaires pour calculer le montant en USD, mais le tableau erc20.tokens est mis à jour manuellement, et même si les décimales ne le peuvent pas. être obtenu, Si le solde n'est pas affiché, le montant correspondant ne peut pas être affiché, ou le Prix correspondant au Token ne peut pas être obtenu.
4. Liste de prix des jetons
4.1 Prix du jeton Cex
prix.usd

B. Instructions associées
Données de prix du Cex Token, niveau minute
4.2 Prix du jeton Dex
dex.view_token_prices
A. Structure du tableau et exemples de données

B. Instructions associées
Données de prix du Dex Token, niveau minute
Les données de ce tableau ne semblent pas très complètes. Si vous ne trouvez pas certains jetons, vous pouvez utiliser dex.trades pour les calculer vous-même.
Pour le calibre de calcul détaillé du prix du jeton, veuillez consulter le document officiel : https://docs.dune.xyz/about/tutorials/queries/price-queries#centralized-exchange-price-data
Journal des transactions 5.Dex
dex.trades
A. Structure du tableau et exemples de données

B. Données correspondantes dans Etherscan

C.Instructions associées
Stocke le journal des transactions du jeton de dex. Chaque élément de données représente une transaction survenue dans le jeton dex X A → Y Token B.
projet : protocoles utilisés pour les transactions Uniswap, Sushi, etc.
version : version du protocole, Uniswap v2, Uniswap v3, etc.
6. Lié à Uniswap
6.1 Journal de création d'un nouveau pool
uniswap_v2.Factory_evt_PairCreated
A. Structure du tableau et exemples de données

B. Instructions associées
Stocke le journal créé par le nouveau pool d'annulation d'échange
token0 token1 : contrat bilatéral de pool
paire : adresse du contrat de pool
evt_block_time : heure de création du pool
6.2 Journal des détails des transactions
uniswap_v2.Pair_evt_Swap
A. Structure du tableau et exemples de données
B. Instructions associées
Journal des détails des transactions uni Sur cette base, le prix du jeton peut également être calculé.
7. Journaux liés au NFT
erc721."ERC721_evt_Transfer"
A. Structure du tableau et exemples de données

B. Données correspondantes dans Etherscan

C.Instructions associées
C'est très similaire au tableau ERC20
Les transactions provenant d'adresses de trou noir telles que 0x0000000 devraient être un comportement parfait