Orang dahulu mengatakan bahwa di pasar beruang, baca lebih banyak dan pelajari lebih lanjut. Tanpa basa-basi lagi, Heixiazi akan berbagi dengan Anda pengetahuan yang relevan tentang API informasi transaksi blok dan ABI dalam soliditas bahasa pengembangan kontrak pintar ETH. Ini tidak mudah untuk dikodekan. Saya harap Anda akan mendukung saya dan menantikan pasar bullish berikutnya agar ETH menembus 10.000 dolar AS🙌 $ETH

1. API apa yang umum digunakan untuk blok dan transaksi?

blockhash(uint blockNumber) Mengembalikan nilai hash dari nomor blok yang diberikan, hanya mendukung 256 blok terbaru

block.coinbase mengembalikan (alamat) Alamat penambang blok saat ini

block.difficulty return(uint) Tingkat kesulitan blok saat ini

block.gaslimit mengembalikan(uint) gaslimit dari blok saat ini

block.number mengembalikan (uint) nomor blok dari blok saat ini

block.timestamp mengembalikan (uint) stempel waktu dari blok saat ini

gasleft return(uint) Dapatkan sisa gas

msg.data return(uint256) Data panggilan lengkap (calldata)

msg.sender return(address) Alamat penelepon saat ini

msg.sig return(bytes4) Empat byte pertama dari data panggilan (calldata), seperti pengidentifikasi fungsi

msg.value return(uint) Ethereum yang dilampirkan pada pesan ini, di wei

tx.gasprice return(uint) Harga gas transaksi

tx.origin return(address) Pengirim transaksi

2. Pengkodean ABI

Nama lengkap ABI adalah Antarmuka Biner Aplikasi. Kami memulai transaksi (memanggil fungsi) ke alamat kontrak, dan konten transaksi adalah data yang dikodekan ABI. Gambar di bawah adalah ABI

Fungsi pengkodean terkait ABI

abi.encode(...) mengembalikan(byte) pengkodean ABI parameter perhitungan

abi.encodePacked(...) return(bytes) Menghitung pengkodean parameter yang padat

abi.encodeWithSelector(...) return(bytes) Menghitung pengkodean ABI dari penyeleksi fungsi dan parameter

abi.encodeWithSignature(...) return(bytes) Menghitung pengkodean ABI dari penyeleksi fungsi dan parameter

3. Latihan kode terkait