こんにちは!
フリーランス&ブロックチェーンエンジニアの関口大樹(@daiki_sekiguchi)です。
今日はSolidityにおける「単位とグローバル変数とは」をテーマとし、金額や時間の単位とSolidity内で予め用意されているグローバル変数について解説していきます。
Contents
Ether(通貨)の単位
Ethereumにおけるトークン(通貨に近い概念)の単位は以下の表通りです。
この記事を公開した2018年7月14日時点で、1 ether = 約49,000円となっています。
wei | 1 wei | 1 wei |
---|---|---|
szabo | 10^12 wei | 1,000,000,000,000 wei |
finney | 10^15 wei | 1,000,000,000,000,000 wei |
ether | 10^18 wei | 1,000,000,000,000,000,000 wei |
また、プログラミングを行う場合、数値の後ろに単位を表す文字列を付与することで、wei単位の数字を表現することができます。
時間の単位
続いて、Solidityにおける時間の単位です。
seconds | 1 seconds |
---|---|
minutes | 60 seconds |
hours | 3600 seconds |
days | 86400 seconds |
weeks | 604800 seconds |
years | 31536000 seconds |
こちらもEtherと同様、数値の後ろに時間の単位を表す文字列を付与することで、秒単位の数字を表現することができます。
グローバル変数
最後に、Solidityにおけるグローバル変数です。
ブロックチェーンに刻まれた、ブロックナンバーやタイムスタンプについては、グローバル変数として取得することができます。
ここではよく使われる代表的なものについて、表に記載します。
block.blockhash(uint blockNumber) | 指定したブロックのハッシュ値をbyte32型で取得 |
---|---|
block.coinbase | 現在のブロックを掘り当てたマイナーのアドレス |
block.number | 現在のブロックナンバー |
block.timestamp | 現在のブロックのタイムスタンプ |
block.difficulty | 現在のブロックのdifficulty |
msg.sender | 送信者のアドレス |
msg.value | 送金額 |
now | block.timestampのエイリアス |