Blockmonkey

[Solidity] Function Selector 본문

BlockChain

[Solidity] Function Selector

Blockmonkey 2022. 11. 1. 23:05

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' 카테고리의 다른 글

블록체인 가스 비용에 대하여  (3) 2025.07.21
[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