Katılık - Özel Değişkenler
Özel değişkenler, küresel olarak mevcut değişkenlerdir ve blok zinciri hakkında bilgi sağlar. Özel değişkenlerin listesi aşağıdadır -
Sr.No. | Özel Değişken ve Açıklama |
---|---|
1 | blockhash(uint blockNumber) returns (bytes32) Verilen bloğun karması - yalnızca mevcut bloklar hariç en son 256 için çalışır. |
2 | block.coinbase (address payable) Mevcut blok madencisinin adresi. |
3 | block.difficulty (uint) mevcut blok zorluğu. |
4 | block.gaslimit (uint) Mevcut blok gaz limiti. |
5 | block.number (uint) Mevcut blok numarası. |
6 | block.timestamp Unix döneminden bu yana saniye cinsinden geçerli blok zaman damgası. |
7 | gasleft() returns (uint256) Kalan gaz. |
8 | msg.data (bytes calldata) Çağrı verilerini tamamlayın. |
9 | msg.sender (address payable) Mesajın göndereni (mevcut arama). |
10 | msg.sig (bytes4) Çağrı verilerinin ilk dört baytı (yani işlev tanımlayıcı) |
11 | msg.value (uint) Mesajla birlikte gönderilen wei sayısı. |
12 | now (uint) Geçerli blok zaman damgası (block.timestamp için takma ad). |
13 | tx.gasprice (uint) İşlemin gaz fiyatı. |
14 | tx.origin (address payable) İşlemin göndericisi (tam çağrı zinciri). |
Misal
Solidity'de gönderen adresini almak için özel bir değişken olan msg'nin kullanımını görmek için aşağıdaki kodu deneyin.
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));
}
}
Solidity First Application bölümünde verilen adımları kullanarak yukarıdaki programı çalıştırın .
İlk Tıklama updateBalance Değeri 10 olarak ayarlamak için düğme, ardından kodu çözülen çıktıyı şu şekilde gösterecek olan günlüklere bakın:
Çıktı
{
"0": "uint256: 10"
}