【Ethereum・Solidity】単位とグローバル変数について

Ethereum

こんにちは!
フリーランス&ブロックチェーンエンジニアの関口大樹(@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のエイリアス

Scroll to top