Function Selector란 '함수서명'이라고도하며 '함수의 식별자'다. 통상 ABI안에 포함되어있음. 이는 이더스캔에서 "Method ID"로.
Function Selector는 함수 Byte Data 첫 4Byte에 저장.
- 아래 두가지 방식으로 취득 가능.

- 아래 방식으로 주로 사용.(여기서 첫번째 있는 부분이 Selector <4byte>)
(bool check, bytes memory data) = address.call(
abi.encodeWithSignature("함수명(변수타입)",매개변수값)
);
(bool check, bytes memory data) = address.delegatecall(
abi.encodeWithSignature("함수명(변수타입)",매개변수값)
);
- msg.value로 함수 내 데이터를 뽑아내면 아래와 같이 볼 수 있다. 첫 4Byte는 Selector가 출력되며 그 뒤로 32Byte단위로 Input값을 보여준다.
//"0x90b98a11 -> MethodID
//000000000000000000000000f178589cf1ef5af554863d8cef601c9fc02ca2ed -> receiver address
//0000000000000000000000000000000000000000000000000000000000000002" -> the amount
'BlockChain Developer > Public Blockchain' 카테고리의 다른 글
[Solidity - 가스비최적화] unchecked (0) | 2022.11.01 |
---|---|
Hashed Time Lock Contract (HTLC) (0) | 2022.08.22 |
공동소유 NFT (Fractional NFT) (0) | 2022.08.22 |
[Solditiy] CEI & Mutex Pattern (0) | 2022.08.18 |
Hardhat - Upgradable Contract & Verify Contract (0) | 2022.04.21 |