Soliditas - Variabel Khusus
Variabel khusus adalah variabel yang tersedia secara global dan memberikan informasi tentang blockchain. Berikut adalah daftar variabel khusus -
Sr.No. | Variabel & Deskripsi Khusus |
---|---|
1 | blockhash(uint blockNumber) returns (bytes32) Hash dari blok yang diberikan - hanya berfungsi untuk 256 blok terbaru, tidak termasuk blok saat ini. |
2 | block.coinbase (address payable) Alamat blok penambang saat ini. |
3 | block.difficulty (uint) kesulitan blok saat ini. |
4 | block.gaslimit (uint) Batasan gas saat ini. |
5 | block.number (uint) Nomor blok saat ini. |
6 | block.timestamp Stempel waktu blok saat ini sebagai detik sejak unix epoch. |
7 | gasleft() returns (uint256) Sisa gas. |
8 | msg.data (bytes calldata) Data panggilan lengkap. |
9 | msg.sender (address payable) Pengirim pesan (panggilan saat ini). |
10 | msg.sig (bytes4) Empat byte pertama dari calldata (yaitu pengenal fungsi) |
11 | msg.value (uint) Jumlah wei yang dikirim dengan pesan tersebut. |
12 | now (uint) Stempel waktu blok saat ini (alias untuk block.timestamp). |
13 | tx.gasprice (uint) Harga gas dari transaksi. |
14 | tx.origin (address payable) Pengirim transaksi (rantai panggilan penuh). |
Contoh
Coba kode berikut untuk melihat penggunaan msg, variabel khusus untuk mendapatkan alamat pengirim di Solidity.
pragma solidity ^0.5.0;
contract LedgerBalance {
mapping(address => uint) public balances;
function updateBalance(uint newBalance) public {
balances[msg.sender] = newBalance;
}
}
contract Updater {
function updateBalance() public returns (uint) {
LedgerBalance ledgerBalance = new LedgerBalance();
ledgerBalance.updateBalance(10);
return ledgerBalance.balances(address(this));
}
}
Jalankan program di atas menggunakan langkah-langkah yang disediakan di bab Aplikasi Solidity First .
Klik Pertama updateBalance Tombol untuk mengatur nilai sebagai 10 lalu lihat ke dalam log yang akan menampilkan keluaran yang didekodekan sebagai -
Keluaran
{
"0": "uint256: 10"
}