Solidityグローバル属性とメソッド
バージョンの更新が早いためです.過去の一部の書き方は、現在
文書ディレクトリ一、特殊変数 msg tx block address alias type 二、ABI符号化 decode encode encodePacked encodeWithSelector encodeWithSignature 三、エラー処理 assert require revert 4、契約関連 this super selfdestruct 五、数学と暗号学関数 addmod mulmod keccak256 sha256 ripemd160
一、特殊変数
msg . . .
tx block .
address
alias を制限する.
type
doc
二、ABIコード
decode
圧縮されたデータを復号します.タイプは括弧で2番目のパラメータとして与えられます.
例
与えられたパラメータを符号化する
encodePacked
与えられたパラメータに対してパッケージング符号化を実行する
encodeWithSelector
与えられたパラメータを符号化し、与えられた関数セレクタを先頭とする4バイトデータとともに返す
encodeWithSignature
三、エラー処理
assert
require
revert
四、契約関係
this
本契約を代表する住所
super
階層内の上位レベル(親)の契約を継承する方法を使用します.
selfdestruct
契約を破棄し、残高を指定の住所に送信します.
五、数学と暗号学関数
addmod
mulmod
keccak256
Ethereum-SCHA-3(Keccak-256)ハッシュを計算します.(
sha256
SHA−256ハッシュを計算する.
ripemd160
RIPEMD−160ハッシュを計算した.アドレス自体はこれで生成されます.
Solidity公式ドキュメント
0.5.10
バージョンの開発契約を使用している場合、一部が間違っています.公式の最新のドキュメントをめくります.文書ディレクトリ
一、特殊変数
msg
msg.sender
(address
)メッセージ送信者(現在呼び出す)msg.value
(uint
)メッセージに従って送信weiの数msg.data
(bytes
)完全calldata msg.gas
(uint
)残りgas、(廃棄!)推奨使用gasleft()
msg.sig
(bytes4
)calldataの最初の4バイト(すなわち関数識別子)tx
tx.gasprice
(uint)取引のgas価格tx.origin
(address)取引開始者(完全な呼び出しチェーン)block.blockhash(uint blockNumber) (bytes32)
は、最新の256個のブロックにのみ使用可能であり、現在のブロックを含まないブロックハッシュを指定する(廃棄!)推奨使用blockhash(uint blockNumber)
block.coinbase
(address
):現在の区画を掘り出す鉱夫住所block.difficulty
(uint
):現在のブロック難易度block.gaslimit
(uint
):現在のブロックgas限度額block.number
(uint
):現在のブロック番号block.timestamp
(uint
):unix epochから現在のブロックを秒で開始するタイムスタンプaddress
.balance
(uint256
):Wei単位のアドレスタイプの残高..transfer(uint256 amount)
:amountのWeiをアドレスタイプに送信し、失敗時に異常を投げ出し、2300 gasの鉱夫費を送信し、調整できない..send(uint256 amount) returns (bool)
:amountのWeiをアドレスタイプに送信し、失敗した場合はfalse
に戻り、2300 gasの鉱夫費用を送信し、調整できません..call(...) returns (bool)
:低レベル関数CALL
が発行され、失敗した場合はfalse
に戻り、利用可能なgasをすべて送信し、調整可能である..callcode(...) returns (bool)
:使用不可..delegatecall(...) returns (bool)
:低レベル関数DELEGATECALL
が発行され、失敗した場合はfalse
に戻り、利用可能なgasをすべて送信し、調整可能である.alias
now
(uint
):現在ブロックタイムスタンプ(block.timestamp
)blockhash(uint blockNumber)returns(bytes32)
ブロックのブロックハッシュを指定し、256個以内のgasleft() returns(uint)
残りのgas、(msg.gas
)staticcall()
type
doc
type(C).name
The name of the contract. type(C).creationCode
type(C).runtimeCode
二、ABIコード
decode
abi.decode(bytes memory encodedData, (...)) returns (...)
圧縮されたデータを復号します.タイプは括弧で2番目のパラメータとして与えられます.
例
(uint a, uint[2] memory b, bytes memory c) = abi.decode(data, (uint, uint[2], bytes))
encode abi.encode(...) returns (bytes memory)
与えられたパラメータを符号化する
encodePacked
abi.encodePacked(...) returns (bytes memory)
与えられたパラメータに対してパッケージング符号化を実行する
encodeWithSelector
abi.encodeWithSelector(bytes4 selector, ...) returns (bytes memory)
与えられたパラメータを符号化し、与えられた関数セレクタを先頭とする4バイトデータとともに返す
encodeWithSignature
abi.encodeWithSignature(string signature, ...) returns (bytes memory)
abi.encodeWithSelector(bytes4(keccak256(signature), ...)
に相当三、エラー処理
assert
による取引失敗は、残りのgasを差し引き、残りのgasを返します.assert
assert(bool condition)
条件が満たされないと、現在の取引に効果がなく、内部エラーをチェックするために使用されます.require
require(bool condition)
条件が満たされない場合は、入力または外部コンポーネントによるエラーをチェックするためにステータス変更を取り消します.require(bool condition, string message)
、上記と同様に、エラーメッセージを同時に提供することができる.revert
revert()
運転を終了し、ステータス変更を取り消します.revert(string reason)
は、実行を終了し、ステータス変更を取り消し、同時に説明的な文字列を提供することができる.四、契約関係
this
本契約を代表する住所
super
階層内の上位レベル(親)の契約を継承する方法を使用します.
selfdestruct
selfdestruct(address payable recipient)
契約を破棄し、残高を指定の住所に送信します.
五、数学と暗号学関数
addmod
addmod(uint x, uint y, uint k) returns (uint)
(x + y) % k
を計算すると、加算は任意の精度で実行され、加算の結果は2**256
を超えても切り取られません.0.5から0バージョンのコンパイラは、k != 0
の検証(assert)を開始します.mulmod
mulmod(uint x, uint y, uint k) returns (uint)
(x * y) % k
を計算すると、乗算は任意の精度で実行され、乗算の結果は2**256
を超えても切り取られません.0.5から0バージョンのコンパイラは、k != 0
の検証(assert)を開始します.keccak256
keccak256(bytes memory) returns (bytes32)
Ethereum-SCHA-3(Keccak-256)ハッシュを計算します.(
sha3
使用放棄)sha256
sha256(bytes memory) returns (bytes32)
SHA−256ハッシュを計算する.
ripemd160
ripemd160(bytes memory) returns (bytes20)
RIPEMD−160ハッシュを計算した.アドレス自体はこれで生成されます.
Solidity公式ドキュメント