우선 사용한 코드는 https://github.com/sungyeon1/CreateKlaytnNFT/blob/main/KIP17.sol에서 가져왔고 Solidity에 대한 이해는 https://docs.soliditylang.org/en/v0.8.21/를 바탕으로 진행하였다.
큰 구조는 다음과 같다
크게 나누자면
1. pragma
2. interface
3. contract
4. library
로 나눌 수 있을 것 같다.
Pragma
solidity의 버전을 나타낸다.
특정 지원 버전을 명시할 수도 있고 지원 범위를 명시할 수도 있다
Interface
You can interact with other contracts by declaring an Interface.
- They cannot ingerit other contracts or interfaces.
- All declared functions must be external.
- They cannot declare a constructor.
- They cannot declare state cariables.
라고 한다.
코드는 주석을 제외하면 다음과 같다.
이 부분에 대해서 chatGPT한테 설명을 부탁했다.
너무 길어서 짤라서 올렸는데 요약을 해보자면..
- Interface를 선언한 코드이다
- 보충 설명 없이 단순 함수 서명만을 포함한다
- 다른 contract와 상호작용 할 때 사용되곤하며 standard/external contract와 상호작용 할 때 특히 더 중요하다
이 코드는 IKIP13이라는 interface를 선언하고 그 내부에 supportsInterface라는 함수를 선언한 코드이다.
이 때 supportsInterface는
- interfaceId를 매개 변수로 가지는데 그의 type은 bytes4이다
- contract의 외부에서만 호출할 수 있다
- 수정은 안되고 오직 읽기만 가능하다
- returns type이 boolean이다(true/false)
해석이야 그리 어려운 것이 아니 제일 중요한 것은 '어디에 쓰이는가'이다...
정확히는 파악하지 못했으나 이 interface와 상호작용하고 싶다면 IKIP13을 import해서 supportsInterface를 call해야한다는 것 정도... 나중에 어떻게 활용할지 알아봐야겠다.
----
거의 2달이나 지난 글인 것 같다...
일단 완료해둬야지!
'블록체인' 카테고리의 다른 글
번외) External Owned Accouts & Contract Accounts (0) | 2023.07.21 |
---|---|
NFT 만들기 _ Ethereum (2) (0) | 2023.07.18 |
NFT 만들기 _ Ethereum (1) (0) | 2023.07.17 |
잃어버린 Polygon 찾기 -1- (0) | 2023.07.14 |