Solidity-special-variables

提供:Dev Guides
移動先:案内検索

堅牢性-特殊変数

特殊変数はグローバルに利用可能な変数であり、ブロックチェーンに関する情報を提供します。 以下は、特殊変数のリストです-

Sr.No. Special Variable & Description
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

UNIXエポックからの秒数としての現在のブロックタイムスタンプ。

7

gasleft() returns (uint256)

残留ガス。

8

msg.data (bytes calldata)

完全なコールデータ。

9

msg.sender (address payable)

メッセージの送信者(現在の呼び出し)。

10

msg.sig (bytes4)

calldataの最初の4バイト(つまり、 関数識別子)

11

msg.value (uint)

メッセージとともに送信されたweiの数。

12

now (uint)

現在のブロックのタイムスタンプ(block.timestampのエイリアス)。

13

tx.gasprice (uint)

トランザクションのガス価格。

14

tx.origin (address payable)

トランザクションの送信者(完全な呼び出しチェーン)。

次のコードを試して、Solidityの送信者アドレスを取得する特別な変数であるmsgの使用を確認してください。

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

link:/solidity/solidity_first_application [Solidity First Application]の章に記載されている手順を使用して、上記のプログラムを実行します。

最初に updateBalance ボタンをクリックして値を10に設定してから、ログを調べて、デコードされた出力を次のように表示します-

出力

{
   "0": "uint256: 10"
}