弱気相場では、もっと本を読み、もっと勉強しなさい、と古代人は言いました。早速、Heixiazi が ETH スマート コントラクト開発言語のブロック トランザクション情報 API と ABI に関する関連知識を共有します。コーディングは簡単ではありません。次の強気市場を楽しみにしていただければ幸いです。 ETHが10,000米ドルを突破するには🙌 $ETH

1. ブロックとトランザクションに一般的に使用される API は何ですか?

blockhash(uint blockNumber) 指定されたブロック番号のハッシュ値を返します。最新の 256 ブロックのみをサポートします

block.coinbase returns(address) 現在のブロックマイナーのアドレス

block.difficulty returns(uint) 現在のブロックの難易度

block.gaslimit returns(uint) 現在のブロックのガス制限

block.number returns(uint) 現在のブロックのブロック番号

block.timestamp 現在のブロックのタイムスタンプを返します(uint)

Gasleft returns(uint) 残りのガスを取得します

msg.data returns(uint256) 完全な通話データ (calldata)

msg.sender returns(address) 現在の発信者のアドレス

msg.sig returns(bytes4) 関数識別子などの呼び出しデータ (calldata) の最初の 4 バイト

msg.value returns(uint) このメッセージに添付されたイーサリアム (単位: Wei)

tx.gasprice returns(uint) トランザクションのガス価格

tx.origin returns(address) トランザクションの送信者

2.ABIエンコーディング

ABI の正式名は Application Binary Interface で、コントラクト アドレスに対してトランザクション (関数の呼び出し) を開始します。トランザクションの内容は ABI でエンコードされたデータです。下の写真はABIです

ABI 関連のエンコード関数

abi.encode(...) returns(bytes) 計算パラメータの ABI エンコード

abi.encodePacked(...) returns(bytes) 計算パラメータのタイトパックエンコーディング

abi.encodeWithSelector(...) returns(bytes) 関数セレクターとパラメーターの ABI エンコーディングを計算します

abi.encodeWithSignature(...) returns(bytes) 関数セレクターとパラメーターの ABI エンコーディングを計算します

3. 関連するコードの演習