問題一覧に戻る
中級関数
問題61: 関数セレクタ

Solidityの関数セレクタを学習します - 関数を呼び出すために使用される4バイトの識別子です。セレクタは関数シグネチャのkeccak256ハッシュの最初の4バイトです。低レベル呼び出し、インターフェース検出、EVMが関数呼び出しをルーティングする方法の理解に重要です。.selectorプロパティを使用してセレクタを取得したり、手動で計算できます。セレクタの理解はプロキシコントラクトの構築、トランザクションの分析、ダイヤモンドストレージなどの高度なパターンの実装に不可欠です。イーサリアムがスマートコントラクト関数を実行する方法の基礎です。

pragma solidity ^0.8.0;

contract SelectorExample {
// 関数セレクタを取得
function getSelector() public pure returns (bytes4) {
return this.transfer. ;
}

function transfer(address to, uint256 amount) public {
// Transfer function
}

// セレクタを手動で計算
function computeSelector() public pure returns (bytes4) {
return bytes4(("transfer(address,uint256)"));
}
}