특정 contract 관련 문의 드립니다

안녕하세요. 특정 contract의 suportInterface값이 생각했던 값과 다르게 나와 질문드립니다.

contract : 0x5bc519d852f7ca2c8cf2d095299d5bb2d13f02c9 (Klaytnscope)

여기서 Topic0를 봤을때 이는 kip37의 TransferSingle 인걸 알수있습니다.


그런데 KIP13 Identifier인 0x6433ca1f를 이용하여 supportsInterface를 조회하면 false로 뜹니다. 이런경우가 존재할 수 있나요? 일반적으로 KIP37의 TransferSingle이라면 kip37.supoortsInterface(0x6433ca1f) 했을때 항상 true가 나와야하지않나요?
그리고 또
kip37.totalSupply(83923901858946653068963410026552054600923839445048241371833728022809703088129)는 값이 1로 나옵니다.
image

안녕하세요

배포된 KIP-37은 어떤 방식으로 배포하셨을까요?

안녕하세요! 저 KIP37은 제가 배포한것은 아니고 이것저것 구경하다가 우연히 발견한 건데 제가 배포한 KIP37과 signature(0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62)는 같은데 뭔가 다른 것 같아서 문의드렸습니다. 제가 아직 토큰과 관련된 정보가 부족해서 모르는게 많네요… 언제나 감사합니다

스마트 컨트랙트에서 KIP-13 스탠다드를 따르도록 구현을 할 때에 컨트랙트에서 구현되는 인터페이스 아이디를 지정해 주도록 되어 있습니다.
인터페이스 id는 여러 개의 함수들의 조합이 묶인 세트로 구해지며 함수 하나의 시그니처로 스마트 컨트랙트 전체의 인터페이스를 판단하기는 어려울 것 같습니다.

klaytn-contract의 KIP-37 구현을 보시면 _INTERFACE_ID_KIP37가 정의되어 있고 위의 주석에 이게 어떻게 구해지는 값인지 설명되어 있습니다.

또한 아래의 스크린샷에 보시면 생성자에서 이를 _registerInterface 함수를 사용하여 등록해 주는 것을 알 수 있습니다. 이렇게 구현되어 있는 경우 supportsInterface 함수에서 true를 리턴하게 됩니다.