सॉलिडिटी - विशेष चर
विशेष चर विश्व स्तर पर उपलब्ध चर हैं और ब्लॉकचेन के बारे में जानकारी प्रदान करते हैं। निम्नलिखित विशेष चर की सूची है -
| अनु क्रमांक। | विशेष चर और विवरण | 
|---|---|
| 1 | blockhash(uint blockNumber) returns (bytes32) दिए गए ब्लॉक का हैश - वर्तमान, ब्लॉक को छोड़कर केवल 256 सबसे हाल के लिए काम करता है। | 
| 2 | block.coinbase (address payable) वर्तमान ब्लॉक की खान का पता। | 
| 3 | block.difficulty (uint) वर्तमान ब्लॉक कठिनाई। | 
| 4 | block.gaslimit (uint) करंट ब्लॉक गैसलिमिट। | 
| 5 | block.number (uint) वर्तमान ब्लॉक संख्या। | 
| 6 | block.timestamp यूनिक्स युग के बाद से सेकंड के रूप में वर्तमान ब्लॉक टाइमस्टैम्प। | 
| 7 | gasleft() returns (uint256) शेष गैस। | 
| 8 | msg.data (bytes calldata) पूर्ण कैलता। | 
| 9 | msg.sender (address payable) संदेश भेजने वाला (वर्तमान कॉल)। | 
| 10 | msg.sig (bytes4) कालदत्ता के पहले चार बाइट्स (यानी फ़ंक्शन पहचानकर्ता) | 
| 1 1 | msg.value (uint) संदेश के साथ भेजे गए वी की संख्या। | 
| 12 | now (uint) वर्तमान ब्लॉक टाइमस्टैम्प (ब्लॉक के लिए उपनाम)। | 
| 13 | tx.gasprice (uint) लेन-देन की गैस की कीमत। | 
| 14 | tx.origin (address payable) लेन-देन का प्रेषक (पूर्ण कॉल श्रृंखला)। | 
उदाहरण
सॉलिडिटी में प्रेषक का पता प्राप्त करने के लिए एक विशेष चर मैसेंजर का उपयोग देखने के लिए निम्न कोड का प्रयास करें।
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));
   }
}सॉलिडिटी फर्स्ट एप्लीकेशन चैप्टर में दिए गए चरणों का उपयोग करके उपरोक्त प्रोग्राम को चलाएं ।
पहला क्लिक करें updateBalance मान को 10 के रूप में सेट करने के लिए बटन तब लॉग में देखें जो डिकोडेड आउटपुट को दिखाएगा -
उत्पादन
{
   "0": "uint256: 10"
}