Solidityグローバル属性とメソッド


バージョンの更新が早いためです.過去の一部の書き方は、現在0.5.10バージョンの開発契約を使用している場合、一部が間違っています.公式の最新のドキュメントをめくります.
文書ディレクトリ
  • 一、特殊変数
  • 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
  • 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
  • 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公式ドキュメント