Wszystkie artykuły

Jak czytać transakcję w eksploratorze: Solscan, Basescan i BscScan krok po kroku

Signature, status, fee, instructions, logs, approve. Pokazujemy, co znaczą pola na stronie transakcji, jak sprawdzić swap i opłaty na podstawie dokumentacji Solany i standardów Ethereum oraz jak rozpoznać approve, który otwiera drogę wallet drainerowi.

Poradnik11 minCzytanie on-chain, część 2 z 3Autor: Opublikowano
Ilustracja redakcyjna: Jak czytać transakcję w eksploratorze: Solscan, Basescan i BscScan krok po kroku
Ilustracja redakcyjna MEMECOINY

Najważniejsze wnioski

  • Transakcja na Solanie składa się z jednej lub wielu instructions, które wykonują się razem: albo wszystkie się udają, albo wszystkie są cofane
  • Na Solanie opłata bazowa to 5000 lamportów za podpis, połowa jest spalana, połowa trafia do walidatora. Priority fee idzie w całości do walidatora
  • Na sieciach EVM status 1 oznacza sukces, a 0 revert. Nieudana transakcja nadal płaci za zużyty gas
  • Po EIP-1559 base fee jest spalany, priority fee dostaje producent bloku, a niewykorzystany gas wraca do nadawcy
  • Swap weryfikujesz po zmianach sald i transferach tokenów, a nie po tym, co pokazała strona aplikacji
  • Approve daje innemu adresowi prawo do wydawania Twoich tokenów do limitu. Approve albo permit dla nieznanego adresu to klasyczny ślad wallet drainera

Po co czytać transakcję w eksploratorze[11]

Wallet i aplikacja pokazują Ci swoją interpretację transakcji. Eksplorator pokazuje to, co faktycznie zapisano na łańcuchu. Na Solanie najczęściej używa się Solscan, na Base Basescan, a na BNB Chain BscScan. Etherscan w dokumentacji swojego API wymienia Base (chain ID 8453) i BNB Smart Chain (chain ID 56) wśród obsługiwanych sieci, a układ stron Basescan i BscScan jest bardzo podobny do Etherscan.

Zawsze zaczynaj od właściwej sieci. Ten sam hash albo contract address wklejony w eksplorator innej sieci nic nie znajdzie albo pokaże coś zupełnie innego.

Solscan: pola na stronie transakcji Solany[1][4]

Dokumentacja Solscan opisuje nagłówek transakcji tak: Signature to identyfikator (hash) transakcji, Block to numer slotu, w którym ją zapisano, Result pokazuje Success albo Failure oraz to, czy transakcja jest Finalized. Signer to adres nadawcy, a Fee to opłata za transakcję.

Niżej są Main Actions, czyli rozbicie na transfery, oraz Instruction Details. Według dokumentacji Solany transakcja zawiera jedną lub więcej instructions i wykonuje się atomowo: wszystkie się udają albo wszystkie są cofane. Każda instruction wskazuje program, dane i konta, które czyta lub zapisuje. Inner instructions to wywołania innych programów w trakcie wykonania, a Program log to zapis zdarzeń z programów.

Jeśli w transakcji pojawia się Create Associated Account, program utworzył nowy token account. Solscan pokazuje wtedy Authority (wallet właściciela), Associated Account (nowe konto) i Token Address (mint).

Opłaty na Solanie: base fee i priority fee[1][2]

Według dokumentacji Solany opłata bazowa to 5000 lamportów za każdy podpis: 50% jest spalane, 50% trafia do walidatora. Priority fee liczy się jako ceil(compute unit price × compute unit limit / 1 000 000) lamportów, bo cena podawana jest w mikrolamportach za compute unit. Priority fee trafia w całości do walidatora.

Pole Fee w eksploratorze to suma opłat. Nie zawiera depozytu za nowe konta: ten widać jako osobny spadek salda SOL. Recent blockhash transakcji jest ważny przez 150 slotów, więc stara, niewysłana transakcja wygasa sama.

Basescan i BscScan: pola transakcji EVM[10][8][6]

Dokumentacja Etherscan opisuje dane strony transakcji jako szczegóły po hashu (from, to, value i gas), status sukcesu lub błędu, internal transactions oraz event logs. Status pochodzi z receipt: według EIP-658 wartość 1 oznacza sukces, a 0 błąd, czyli revert transakcji lub wywołania najwyższego poziomu.

Pole To przy swapie to zwykle kontrakt routera DEX, a nie odbiorca tokenów. Value to natywna waluta (ETH na Base, BNB na BNB Chain) wysłana razem z wywołaniem. Tokeny ERC-20 widać w sekcji transferów tokenów, którą eksplorator buduje z eventów Transfer: standard ERC-20 wymaga emitowania tego eventu przy każdym transferze, także zerowym.

Gas na sieciach EVM: co znaczą liczby[7][8]

Po EIP-1559 nadawca ustala max fee per gas i max priority fee per gas. Protokół liczy priority fee jako mniejszą z wartości: max priority fee albo max fee minus base fee bloku. Effective gas price to base fee plus ta priority fee. Base fee jest spalany, priority fee dostaje producent bloku, a niewykorzystany gas (gas limit minus gas used) wraca do nadawcy.

Opłata transakcji w eksploratorze to więc gas used × effective gas price. Wysoki gas limit sam w sobie nie oznacza wysokiej opłaty. Transakcja ze statusem 0 nie wykonała swapu, ale za zużyty gas zapłaciłeś.

Jak zweryfikować swap[3][6]

Swap sprawdzasz po skutkach, nie po opisie. Na Solanie porównaj salda przed i po transakcji: odpowiedź RPC getTransaction zawiera preBalances i postBalances oraz preTokenBalances i postTokenBalances. Na sieciach EVM spójrz na transfery tokenów: ile wyszło z Twojego adresu, ile do niego wróciło i z jakiego kontraktu.

Wynik porównaj z kwotą, którą aplikacja pokazała przed podpisem. Różnica powyżej ustawionego slippage nie powinna się zdarzyć, bo wtedy transakcja powinna się nie wykonać. Upewnij się też, że otrzymany token ma właściwy contract address, a nie tylko właściwy ticker.

  • Status Success na Solanie albo 1 na EVM
  • Signer albo From to Twój wallet
  • Wydana kwota zgadza się z tym, co zatwierdziłeś
  • Otrzymany token ma właściwy contract address
  • Fee jest zbliżone do tego, co pokazał wallet

Jak rozpoznać approve dla wallet drainera[6][9][5]

Standard ERC-20 definiuje approve jako zgodę dla spendera na wielokrotne pobieranie tokenów z Twojego konta do ustalonego limitu. Nowe approve nadpisuje poprzednie. Spender wykonuje potem transferFrom i przenosi tokeny bez kolejnego podpisu właściciela. Każde udane approve emituje event Approval, który widać w logach transakcji.

EIP-2612 dodaje permit: zmianę allowance na podstawie podpisanej wiadomości zamiast transakcji. Wywołać permit może dowolny adres, więc sam podpis w wallecie, bez wysyłania transakcji, wystarczy, żeby ktoś inny ustawił allowance. Na Solanie odpowiednikiem jest delegate: approve pozwala innemu adresowi przenieść lub spalić tokeny do limitu.

Czerwone flagi to approve albo permit dla adresu, którego nie znasz i który nie jest routerem DEX, bardzo duży limit, Approval w transakcji, która miała być „claimem” airdropu, oraz kolejne transferFrom z Twojego adresu, których nie inicjowałeś. W takiej sytuacji odwołaj zgodę: na EVM nowym approve z limitem 0, na Solanie instrukcją revoke.

Przykład: liczby z dokumentacji i hipotetyczny swap

Pierwszy przykład pochodzi z przykładowej odpowiedzi getTransaction w dokumentacji Solany. Drugi jest hipotetyczny i pokazuje tylko rachunek.

Solana z dokumentacji, EVM hipotetycznie

Solana: saldo płatnika spada z 998 528 400 do 996 484 120 lamportów, czyli o 2 044 280. Fee wynosi 5000 lamportów, a nowy token account dostaje 2 039 280 lamportów depozytu: 2 039 280 + 5000 = 2 044 280. EVM, liczby hipotetyczne: swap zużywa 150 000 gas przy base fee 1 gwei i priority fee 0,5 gwei. Effective gas price to 1,5 gwei, opłata to 225 000 gwei, czyli 0,000225 ETH, z czego 150 000 gwei jest spalane.

Sprawdź, co zostało w głowie

Zaliczenie to 4 z 5 dobrych odpowiedzi.

Pytanie 1 z 5

Co oznacza status 0 transakcji swapu na Basescan albo BscScan?

Źródła

Materiały pierwotne wykorzystane do sprawdzenia informacji. Numer przy sekcji wskazuje powiązane źródło. Link nie oznacza rekomendacji opisywanego aktywa.

  1. 01Solana: Transactions
  2. 02Solana: Fees
  3. 03Solana RPC: getTransaction
  4. 04Solscan Docs: Transaction Details
  5. 05Solana: Approve delegate
  6. 06EIP-20: Token Standard
  7. 07EIP-1559: Fee market change for ETH 1.0 chain
  8. 08EIP-658: Embedding transaction status code in receipts
  9. 09EIP-2612: Permit Extension for EIP-20 Signed Approvals
  10. 10Etherscan Docs: Transaction page
  11. 11Etherscan Docs: Supported chains

Widzisz błąd albo nieaktualną informację? Napisz na kontakt@memecoiny.pl. Jak poprawiamy błędy

Jak czytać transakcję w eksploratorze: Solscan, Basescan i BscScan krok po kroku | MEMECOINY