"ERC-165"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
'''ERC-165'''는 Ethereum Request for Comment165의 약자로서 토큰 대신에 방법에 대한 표준을 지정한다. 인터페이스 확인 구현 후 인터페이스 게시하며 스마트 컨트랙트에 주어진 인터페이스를 언제 사용하는지 감지한다. | '''ERC-165'''는 Ethereum Request for Comment165의 약자로서 토큰 대신에 방법에 대한 표준을 지정한다. 인터페이스 확인 구현 후 인터페이스 게시하며 스마트 컨트랙트에 주어진 인터페이스를 언제 사용하는지 감지한다. | ||
== 개요 == | == 개요 == | ||
+ | == ERC-165 인터페이스 == | ||
+ | |||
+ | pragma solidity ^0.4.20; | ||
+ | |||
+ | interface ERC165 { | ||
+ | /// @notice Query if a contract implements an interface | ||
+ | /// @param interfaceID The interface identifier, as specified in ERC-165 | ||
+ | /// @dev Interface identification is specified in ERC-165. This function | ||
+ | /// uses less than 30,000 gas. | ||
+ | /// @return `true` if the contract implements `interfaceID` and | ||
+ | /// `interfaceID` is not 0xffffffff, `false` otherwise | ||
+ | function supportsInterface(bytes4 interfaceID) external view returns (bool); | ||
+ | } | ||
+ | |||
+ | solidity의 함수들은 모두 selector를 가지고 있습니다. selector는 간단히 생각하시면 함수의 아이디라고 생각하셔도 무방합니다. 이 아이디를 만드는 방법은 함수의 시그니처를 해싱하는 건데요. 예를 들어서 |
2019년 8월 9일 (금) 10:42 판
ERC-165는 Ethereum Request for Comment165의 약자로서 토큰 대신에 방법에 대한 표준을 지정한다. 인터페이스 확인 구현 후 인터페이스 게시하며 스마트 컨트랙트에 주어진 인터페이스를 언제 사용하는지 감지한다.
개요
ERC-165 인터페이스
pragma solidity ^0.4.20;
interface ERC165 { /// @notice Query if a contract implements an interface /// @param interfaceID The interface identifier, as specified in ERC-165 /// @dev Interface identification is specified in ERC-165. This function /// uses less than 30,000 gas. /// @return `true` if the contract implements `interfaceID` and /// `interfaceID` is not 0xffffffff, `false` otherwise function supportsInterface(bytes4 interfaceID) external view returns (bool); }
solidity의 함수들은 모두 selector를 가지고 있습니다. selector는 간단히 생각하시면 함수의 아이디라고 생각하셔도 무방합니다. 이 아이디를 만드는 방법은 함수의 시그니처를 해싱하는 건데요. 예를 들어서