P09-L02 · P09 · P09-M01
Baca transfer berhasil, panggilan internal, dan biaya tanpa penghitungan ganda
Prasyarat: P09-L01
Tujuan pembelajaran
- Baca hasil eksekusi dan hilangkan duplikasi tampilan peristiwa.
- Rekonsiliasi arus bruto, saldo, dan biaya native.
- Bedakan transaksi induk, panggilan bersarang, dan log token.
Master sumber EN · P09-L02 · 45 menit perkiraan · needs_review
Mengapa ini penting
Halaman transaksi dapat menampilkan transfer, instruksinya, ringkasan terdekode, dan perubahan saldo. Itu mungkin beberapa tampilan satu peristiwa. Menjumlahkan setiap baris membesar-besarkan aktivitas, sedangkan mengabaikan status eksekusi dapat mengubah percobaan gagal menjadi transfer berhasil.
Pelajaran ini mengajarkan buku riwayat dengan identitas peristiwa, keberhasilan, aktivitas bersarang, dan biaya terpisah. Ini mempersiapkan analisis pendanaan tanpa menganggap setiap referensi alamat berarti pembayaran.
Penjelasan
Tentukan cakupan riwayat
Tuliskan jaringan, alamat target, akun token terkait, jendela yang diminta, dan metode pengumpulan. Solana getSignaturesForAddress mengembalikan tanda tangan yang merujuk alamat yang diminta dalam accountKeys, terbaru dahulu, dengan parameter paginasi [S09-SIGNATURES]. Halaman yang dikembalikan adalah daftar penemuan, bukan buku transfer lengkap.
Alamat yang dirujuk belum tentu penanda tangan atau penerima. Instruksi dapat merujuk program, akun data, dan keadaan hanya-baca. Periksa peran catatan sebelum menghitung keterlibatan sebagai tindakan. Kueri alamat pemilik juga mungkin tidak menemukan setiap operasi yang melibatkan akun token terpisah; periksa cakupan yang dimaksud alih-alih menyatakan riwayat lengkap.
Hilangkan duplikasi tanda tangan pada halaman yang tumpang tindih, tetapi pertahankan instruksi berbeda dalam transaksi yang sama. Pengurutan harus menghormati urutan slot/blok yang tersedia dan bukti urutan di dalam konteks. Urutan tampilan antarmuka tidak otomatis merupakan urutan eksekusi tepat.
Verifikasi hasil sebelum menghitung efek
Ambil metadata eksekusi untuk catatan yang ditemukan. Solana getTransaction dapat mengembalikan null pada commitment yang diminta dan mempunyai bidang waktu atau metadata yang dapat null [S09-TRANSACTION]. Perlakukan pengambilan yang hilang sebagai belum terselesaikan, bukan peristiwa gagal atau tidak ada.
Catatan terkonfirmasi/tercakup masih dapat memuat operasi gagal. Catat keberhasilan terpisah dari finalitas. Jumlah yang diajukan menjelaskan niat; efek saldo yang berhasil menjelaskan eksekusi. Untuk T2 gagal dalam fixture, efek transfer token eksplisit nol sementara biaya native yang disediakan tetap dibebankan.
Jangan menguniversalkan pernyataan rollback sederhana ke semua fitur rantai. Latihan mengecualikan perubahan otorisasi dan mekanisme bukan-transfer lain. Tabel hasilnya memberikan efek terkait secara langsung. Dalam analisis nyata, periksa aturan protokol sebenarnya dan perbedaan keadaan.
Pisahkan identitas peristiwa dari baris tampilan
Pilih kunci peristiwa: jaringan, tanda tangan/hash transaksi, dan jalur instruksi atau indeks log sesuai kebutuhan. Instruksi transfer, ringkasan terdekodenya, dan delta saldo yang cocok dapat mengoroborasi satu peristiwa. Itu bukan tiga transfer terpisah.
Delta saldo merupakan hasil neto. Jika akun mengirim 10 dan menerima 4 dalam satu jendela, deltanya−6 sedangkan arus keluar bruto 10. Delta tidak menghapus transfer masuk, dan menjumlahkan perpindahan bruto dengan delta neto menghitung ganda.
Panggilan bersarang memerlukan semantiknya sendiri. callTracer Geth menjelaskan bingkai panggilan dengan lingkup yang dapat dikonfigurasi [S09-TRACES]. Panggilan internal merupakan bagian transaksi induk, bukan transaksi yang ditandatangani terpisah. Sebagian bingkai membawa nilai native; panggilan lain bernilai nol dan menjalankan kode. Jangan menghitung setiap panggilan sebagai pembayaran.
Bedakan panggilan, log, dan perpindahan token
Tanda terima EVM memberikan kaitan transaksi, status, dan log [S09-RECEIPT]. Log peristiwa token dan panggilan bernilai native adalah catatan berbeda. Kontrak token yang menerbitkan log Transfer belum tentu penerima ekonomi.
Pada Solana, metadata hasil membedakan instruksi, instruksi internal, biaya, dan saldo [S09-STRUCTURES]. Instruksi internal dapat mengidentifikasi mekanisme dalam operasi induk. Ringkasan instruksi yang sama harus menggunakan penunjuk peristiwa yang sama.
Panggilan kontrak dengan log transfer token dapat merupakan satu perpindahan token ekonomi ditambah hubungan panggilan, bukan dua perpindahan token. Pertahankan kedua pengamatan dalam tabel bertipe, kemudian pilih unit penghitungan yang sesuai pertanyaan.
Pisahkan biaya
Biaya menggunakan aset native jaringan dan mempunyai pembayar tertentu. Itu bukan transfer token target. Dokumentasi Solana menjelaskan mekanisme biaya transaksi native [S09-FEES]. Jangan berasumsi setiap alamat terlihat membayar biaya atau setiap percobaan gagal gratis.
Total biaya harus dihitung sekali per hasil transaksi yang disediakan, bukan sekali per instruksi atau baris ringkasan. Konversi satuan biaya mentah menggunakan presisi native jika dataset nyata menyediakannya. Latihan memberikan satuan biaya fiktif ternormalisasi tanpa konversi harga.
Rekonsiliasi perpindahan token dan biaya native secara terpisah. Delta token dapat benar sementara saldo native mempunyai rent tambahan, deposit, atau efek tidak terkait. Fixture secara eksplisit mengecualikan efek itu; catatan nyata memerlukan rekonsiliasi tambahan.
Bangun tabel riwayat berbatas
Gunakan kolom penunjuk peristiwa, peran objek, hasil, aset, arah, jumlah bruto, pembayar biaya, dan ketidakpastian. Pertahankan daftar terpisah catatan belum terselesaikan. Jangan menghapus catatan hilang hanya agar jumlah keberhasilan terlihat lengkap.
Jumlah transaksi transfer token berhasil berbeda dari jumlah peristiwa transfer token. Satu transaksi dapat memuat beberapa peristiwa. Nyatakan statistik yang dilaporkan. Percobaan gagal dapat masuk jumlah percobaan sambil menyumbang nol pada perpindahan berhasil.
Deskripsi akhir harus menyebut jendela pengamatan dan cakupan yang disediakan. Riwayat mengajarkan apa yang terjadi pada catatan tersedia, bukan mengapa pelaku memilihnya. Transfer berhasil bukan bukti afiliasi maupun sinyal harga.
Istilah
- Hasil eksekusi: keberhasilan/kegagalan operasi yang diperiksa.
- Penunjuk peristiwa: transaksi beserta jalur instruksi/log.
- Bingkai panggilan: eksekusi bersarang dalam transaksi.
- Arus bruto: jumlah perpindahan menurut arah.
- Delta neto: saldo akhir dikurangi saldo awal.
- Pembayar biaya: akun yang menanggung biaya native yang disediakan.
Contoh historis
ILLUSTRATIVE — FIX-P09-02. SIM-SOL-A / W / MINT-T. Efek lengkap hanya untuk T1–T3, dengan urutan sintetis S1,S2,S3. Biaya native dinormalisasi dan dibayar W. Tidak ada efek jendela lain. Saldo token awal 100.
| Catatan | Induk/hasil | Tampilan/efek yang disediakan |
|---|---|---|
| H1 | T1 berhasil S1 | instruksi0: W→B,10 MINT-T |
| H2 | T1 berhasil S1 | ringkasan instruksi0: “mengirim 10” |
| H3 | T1 berhasil S1 | delta token W−10; biaya native 0.01 |
| H4 | T2 gagal S2 | percobaan W→C,20; efek token berhasil0; biaya native 0.02 |
| H5 | T3 berhasil S3 | instruksi internal2.0: B→W,4 MINT-T; biaya native 0.01 |
Contoh terpisah SIM-EVM-A E1 berhasil dengan W-E→ROUTER tingkat atas bernilai0; ROUTER→C-E bersarang bernilai native2 dan satu log Transfer token sebanyak7 satuan dari W-E ke C-E. Fixture menetapkan aset/efek berbeda dan cakupan panggilan lengkap. Tidak disediakan nilai biaya untuk E1.
Yang dibuktikan bukti
OBSERVED dalam fixture: Tiga tampilan T1 menjelaskan satu transfer10-token; T2 gagal; T3 menerima 4. E1 memuat panggilan bernilai nol, perpindahan 2-native, dan log 7-token.
INFERRED: Arus keluar target berhasil 10, masuk 4, neto−6; saldo akhir 94. Total biaya native T1–T3 0.04.
Yang tidak dibuktikan bukti
UNKNOWN: Riwayat sebelumnya, operator manusia, biaya E1, dan motif.
INSUFFICIENT EVIDENCE: H2/H3 tidak dapat menambahkan20 token transfer ekstra. Percobaan T2 tidak dapat dihitung sebagai arus keluar 20-token berhasil. Panggilan bersarang E1 bukan transaksi kedua yang ditandatangani secara independen.
Kesalahan umum
Menambahkan ringkasan dan delta ke transfer; menyamakan pencakupan dengan keberhasilan; menganggap setiap referensi alamat sebagai tindakan; mencampur biaya native dengan jumlah token; dan menghapus catatan tidak tersedia dari klaim cakupan.
Latihan praktik
Bangun buku token tanpa duplikasi untuk T1–T3. Hitung arus bruto dan neto, saldo akhir, dan biaya. Klasifikasikan panggilan dan perpindahan aset E1 tanpa total lintas aset berbeda.
Tampilkan koreksi terperinci
Koreksi terurai dan penalaran yang diharapkan
Hitung instruksi0 T1 sekali. H2 adalah ringkasannya dan H3 konfirmasi netonya. T2 menyumbang nol token berhasil, tetapi0.02 pada biaya yang disediakan. T3 menyumbang 4 masuk. Keluar bruto 10, masuk 4, neto 4−10=−6;100−6=94. Biaya0.01+0.02+0.01=0.04 satuan native.
Dua peristiwa transfer target berhasil terjadi dalam dua transaksi berhasil, ditambah satu transaksi percobaan transfer gagal. Jangan menghitung lima baris yang disediakan sebagai lima peristiwa.
E1 adalah satu transaksi induk dengan eksekusi bersarang. Nilai0 tingkat atasnya tidak menambahkan pembayaran native; perpindahan bersarang2 native dan log token7 yang disediakan tetap aset terpisah. Biaya tidak diketahui, bukan nol.
Nilai dari sepuluh: penghilangan duplikasi (dua), arus/saldo akhir (tiga), total biaya (dua), klasifikasi EVM (dua), biaya tidak diketahui/batas cakupan (satu).
Daftar periksa
- Catat penemuan dan cakupan riwayat.
- Verifikasi hasil eksekusi terpisah dari finalitas.
- Kunci peristiwa menurut transaksi dan jalur.
- Rekonsiliasi arus bruto dan saldo neto.
- Hitung biaya sekali dan pertahankan pembayar/aset.
- Pisahkan panggilan, log, dan atribusi manusia.
Ringkasan
Rekonstruksi riwayat adalah akuntansi peristiwa, bukan penghitungan baris. Perpindahan berhasil, percobaan gagal, dan biaya menjawab pertanyaan berbeda.
Ringkasan
Beberapa tampilan dapat menjelaskan satu transfer. Panggilan bersarang bukan transaksi yang ditandatangani terpisah. Catatan hilang tetap belum terselesaikan, bukan tidak ada.
Spesifikasi visual
Garis waktu T1–T3 dengan H1/H2/H3 dibundel sebagai satu peristiwa, T2 gagal dengan biaya tetap disediakan, T3 masuk4. Tampilkan arus10/4/neto−6/akhir 94 dan panel biaya 0.04 terpisah. Pisahkan pohon panggilan E1 dari baris jumlah token/native.
Akuntansi peristiwa ilustratif; baris dan panggilan bersarang bukan transaksi independen.
Gunakan SVG/HTML deterministik atau grafik dengan satuan, penunjuk bukti, dan alternatif teks. Biru navy/hitam dengan cyan, biru elektrik, dan ungu secukupnya; tanpa tangkapan layar explorer dekoratif atau rekaan. Pada 390px tumpuk anotasi; verifikasi 768px, desktop, dan RTL Arab ketika aset diimplementasikan. Pertahankan pengenal LTR dan arah faktual waktu/sisi/sumbu tanpa perubahan. Gunakan hanya merek BlockAssay resmi yang disediakan. Kedua catatan visual tetap berupa spesifikasi.
Alat
WALLET_INTELLIGENCE memetakan pemeriksaan hanya-baca atas catatan alamat publik, hubungan, dan asal-usul. Verifikasi jaringan yang didukung, pengenal tepat, bidang, dan cakupan sebelum integrasi runtime apa pun; tidak ada kemampuan penyedia langsung yang diklaim di sini. Gunakan latihan luring tertanam jika data atau akses berbayar tidak tersedia. Tidak diperlukan koneksi dompet, kredensial, kunci privat, tanda tangan, atau perdagangan langsung. Data yang hilang tetap tidak diketahui. Kemajuan Academy, status kreator, pembayaran, dan rujukan tidak pernah mengubah bukti Radar.
Sumber dan batas klaim
- Solana getSignaturesForAddress — Riwayat tanda tangan yang merujuk alamat, urutan terbaru dahulu, dan paginasi. Diperiksa 2026-09-30.
- Solana getTransaction — Pencarian transaksi, commitment, serta bidang data/waktu yang dapat null. Diperiksa 2026-09-30.
- Struktur JSON RPC Solana — Metadata hasil, biaya, instruksi, dan saldo sebagai tampilan yang berbeda. Diperiksa 2026-09-30.
- Biaya Solana — Mekanisme biaya transaksi native; bukan perpindahan token atau model biaya universal. Diperiksa 2026-09-30.
- Pelacak Bawaan Geth — Lingkup jejak bingkai panggilan dan konfigurasi khusus pelacak. Diperiksa 2026-09-30.
- API Eksekusi Ethereum eth_getTransactionReceipt — Status tanda terima, kaitan transaksi, dan log. Diperiksa 2026-09-30.
Semua catatan contoh adalah fixture ILLUSTRATIVE asli, bukan pengukuran rantai historis/langsung. Dokumentasi menjelaskan mekanisme, bukan jumlah atau label rekaan. Kronologi sintetis dibatasi secara eksplisit; observedAt=null disengaja. OBSERVED dalam latihan berarti catatan fixture yang disediakan. Tinjau kembali dokumentasi dan dekode yang diterapkan sebelum publikasi. Label penyedia tidak menetapkan identitas; kendali alamat dan atribusi manusia memerlukan bukti yang berbeda.
Pelajaran berikutnya
P09-L03 setelah latihan terurai dan peninjauan pertanyaan.
Spesifikasi visual
P09-L02-V01
Baris mana menjelaskan peristiwa berhasil yang berbeda?
Akuntansi peristiwa ilustratif; baris dan panggilan bersarang bukan transaksi independen.
Garis waktu T1–T3 dengan H1/H2/H3 dibundel sebagai satu peristiwa, T2 gagal dengan biaya tetap disediakan, T3 masuk4. Tampilkan arus10/4/neto−6/akhir 94 dan panel biaya 0.04 terpisah. Pisahkan pohon panggilan E1 dari baris jumlah token/native.
Satu arus keluar10-token, percobaan20-token gagal,4 masuk, dan biaya native 0.04; induk EVM terpisah mempunyai efek bersarang2 native dan 7 token.
Anotasi bertumpuk pada 390px dan padanan teks yang aksesibel; verifikasi 768px/desktop masih tertunda
Label/tata letak RTL alami; pengenal LTR; pertahankan arah waktu, sumbu angka, dan transfer.
FIX-P09-02
P09-L02-V02
Apa yang teramati, disimpulkan, tidak diketahui, atau tidak cukup didukung?
Keadaan bukti ilustratif dan batas atribusi.
Empat baris berlabel terikat pada ID catatan, klaim, batasan, dan pemeriksaan berikutnya dalam pelajaran ini; jangan pernah menampilkan identitas manusia atau vonis keamanan.
Tabel empat keadaan bukti dengan penunjuk catatan dan ketidakpastian.
Anotasi bertumpuk pada 390px dan padanan teks yang aksesibel; verifikasi 768px/desktop masih tertunda
Label/tata letak RTL alami; pengenal LTR; pertahankan arah waktu, sumbu angka, dan transfer.
FIX-P09-02
Sumber dan batas klaim
S09-SIGNATURES · official_documentation_or_standard
Solana getSignaturesForAddress
- Klaim yang didukung
- Riwayat tanda tangan yang merujuk alamat, urutan terbaru dahulu, dan paginasi.
- Batas verifikasi
- Halaman primer telah diperiksa; nilai buku besar ilustratif dan label entitas belum diverifikasi secara independen.
- Tanggal pemeriksaan
- 2026-09-30
https://solana.com/docs/rpc/http/getsignaturesforaddress
S09-TRANSACTION · official_documentation_or_standard
Solana getTransaction
- Klaim yang didukung
- Pencarian transaksi, commitment, serta bidang data/waktu yang dapat null.
- Batas verifikasi
- Halaman primer telah diperiksa; nilai buku besar ilustratif dan label entitas belum diverifikasi secara independen.
- Tanggal pemeriksaan
- 2026-09-30
https://solana.com/docs/rpc/http/gettransaction
S09-STRUCTURES · official_documentation_or_standard
Struktur JSON RPC Solana
- Klaim yang didukung
- Metadata hasil, biaya, instruksi, dan saldo sebagai tampilan yang berbeda.
- Batas verifikasi
- Halaman primer telah diperiksa; nilai buku besar ilustratif dan label entitas belum diverifikasi secara independen.
- Tanggal pemeriksaan
- 2026-09-30
https://solana.com/docs/rpc/json-structures
S09-FEES · official_documentation_or_standard
Biaya Solana
- Klaim yang didukung
- Mekanisme biaya transaksi native; bukan perpindahan token atau model biaya universal.
- Batas verifikasi
- Halaman primer telah diperiksa; nilai buku besar ilustratif dan label entitas belum diverifikasi secara independen.
- Tanggal pemeriksaan
- 2026-09-30
https://solana.com/docs/core/fees
S09-TRACES · official_documentation_or_standard
Pelacak Bawaan Geth
- Klaim yang didukung
- Lingkup jejak bingkai panggilan dan konfigurasi khusus pelacak.
- Batas verifikasi
- Halaman primer telah diperiksa; nilai buku besar ilustratif dan label entitas belum diverifikasi secara independen.
- Tanggal pemeriksaan
- 2026-09-30
https://geth.ethereum.org/docs/developers/evm-tracing/built-in-tracers
S09-RECEIPT · official_documentation_or_standard
API Eksekusi Ethereum eth_getTransactionReceipt
- Klaim yang didukung
- Status tanda terima, kaitan transaksi, dan log.
- Batas verifikasi
- Halaman primer telah diperiksa; nilai buku besar ilustratif dan label entitas belum diverifikasi secara independen.
- Tanggal pemeriksaan
- 2026-09-30
https://ethereum.github.io/execution-apis/api/methods/eth_getTransactionReceipt/
Asal data
id: FIX-P09-02
dataStatus: ILLUSTRATIVE
observedAt: null
source: Original frozen educational records embedded in this lesson
scope: Three fictional transactions with duplicate views and supplied fees; separate EVM call/log example.
identifiers: Invalid training labels; no usable addresses or signatures
timeBasis: Synthetic S/T or SIM-DAY markers explicitly defined in example; no real ledger/UTC observation