Solidität - Spezielle Variablen

Spezielle Variablen sind global verfügbare Variablen und enthalten Informationen zur Blockchain. Es folgt die Liste der speziellen Variablen -

Sr.Nr. Spezielle Variable & Beschreibung
1

blockhash(uint blockNumber) returns (bytes32)

Hash des angegebenen Blocks - funktioniert nur für 256 neueste, ausgenommen aktuelle Blöcke.

2

block.coinbase (address payable)

Aktuelle Block Miner-Adresse.

3

block.difficulty (uint)

aktuelle Blockschwierigkeit.

4

block.gaslimit (uint)

Aktuelle Blockgasbegrenzung.

5

block.number (uint)

Aktuelle Blocknummer.

6

block.timestamp

Aktueller Blockzeitstempel als Sekunden seit der Unix-Epoche.

7

gasleft() returns (uint256)

Restgas.

8

msg.data (bytes calldata)

Komplette Anrufdaten.

9

msg.sender (address payable)

Absender der Nachricht (aktueller Anruf).

10

msg.sig (bytes4)

Die ersten vier Bytes der Aufrufdaten (dh Funktionskennung)

11

msg.value (uint)

Anzahl der mit der Nachricht gesendeten Wei.

12

now (uint)

Aktueller Blockzeitstempel (Alias ​​für block.timestamp).

13

tx.gasprice (uint)

Gaspreis der Transaktion.

14

tx.origin (address payable)

Absender der Transaktion (vollständige Anrufkette).

Beispiel

Versuchen Sie den folgenden Code, um die Verwendung von msg zu sehen, einer speziellen Variablen, um die Absenderadresse in Solidity abzurufen.

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));
   }
}

Führen Sie das obige Programm mit den im Kapitel Solidity First Application beschriebenen Schritten aus .

Erster Klick updateBalance Klicken Sie auf die Schaltfläche, um den Wert auf 10 festzulegen, und schauen Sie dann in die Protokolle, in denen die dekodierte Ausgabe als - angezeigt wird.

Ausgabe

{
   "0": "uint256: 10"
}