Membuat log data dari kontrak pintar dengan aksi
Di Solidity, aksi adalah sinyal yang dikirimkan yang dapat diaktifkan oleh kontrak pintar. DApp, atau apa pun yang terhubung ke API JSON-RPC Ethereum, bisa mendengarkan aksi ini dan bertindak sesuai dengannya. An event can also be indexed so that the event history is searchable later.
Aksi-aksi
The most common event on the Ethereum blockchain at the time of writing this article is the Transfer event that is emitted by ERC20 tokens when someone transfers tokens.
1event Transfer(address indexed from, address indexed to, uint256 value);Salin
The event signature is declared inside of the contract code and can be emitted with the emit keyword. For example, the transfer event logs who sent the transfer (from), to who (to) and how much tokens were transferred (value).
If we get back to our Counter smart contract and decide to log every time the value is changed. Karena kontrak ini tidak dimaksudkan untuk digunakaan, tapi sebagai dasar untuk menyusun kontrak lain dengan memperluasnya: ini disebut kontrak abstrak. In the case of our counter example, it would look like this:
1pragma solidity 0.5.17;23contract Counter {45 event ValueChanged(uint oldValue, uint256 newValue);67 // Private variable of type unsigned int to keep the number of counts8 uint256 private count = 0;910 // Function that increments our counter11 function increment() public {12 count += 1;13 emit ValueChanged(count - 1, count);14 }1516 // Getter to get the count value17 function getCount() public view returns (uint256) {18 return count;19 }2021}Tampilkan semuaSalin
Perhatikan bahwa:
Baris 5: kita mendeklarasikan aksi kita dan isinya, nilai lama dan nilai baru.
Baris 13: Saat kita menambah variabel penghitung kita, kita memancarkan aksi.
Jika sekarang kita menggunakan kontrak dan memanggil fungsi penambahan, kita akan melihat Remix secara otomatis akan menampilkan fungsi tersebut, jika Anda mengklik transaksi baru di dalam array yang bernama log.
Log sangat berguna untuk membuat debug kontrak pintar Anda, tapi juga sangat penting jika Anda menyusun aplikasi yang dipakai oleh berbagai orang dan memudahkan untuk membuat analitik guna melacak dan memahami bagaimana kontrak pintar Anda digunakan. The logs generated by transactions are displayed in popular block explorers and you can also for example use them to create off chain scripts for listening to specific events and taking action when they occur.
Terakhir diedit: @nhsz(opens in a new tab), 15 Agustus 2023