👀 메타데이터 모듈
IP 자산의 메타데이터를 관리하고 확인합니다.
메타데이터 모듈은 Story 내에서 IP 자산의 메타데이터를 생성, 관리 및 검색할 수 있게 합니다. 이는 쓰기 작업을 위한 CoreMetadataModule과 읽기 작업을 위한 CoreMetadataViewModule의 두 가지 주요 구성 요소로 이루어져 있습니다.
CoreMetadataModule.sol
Core Metadata Module의 스마트 계약을 확인하세요.
CoreMetadataViewModule.sol
Core Metadata View Module의 스마트 계약을 확인하세요.
메타데이터 구조
IP 자산의 메타데이터에는 다음이 포함됩니다:
- metadataURI: IP 자산의 상세 메타데이터를 가리키는 URI
- metadataHash: 검증 목적의 메타데이터 해시
- nftTokenURI: IP 자산과 연관된 NFT의 메타데이터를 가리키는 URI
- nftMetadataHash: 검증을 위한 NFT 메타데이터의 해시
- registrationDate: IP 자산이 등록된 시기
- owner: IP 자산의 현재 소유자
CoreMetadataModule (쓰기 작업)
CoreMetadataModule.sol
은 IP 자산의 메타데이터를 작성하고 업데이트하는 역할을 합니다. 이는 stateful하며 다음과 같은 주요 기능을 제공합니다:
- IP 자산의 메타데이터 URI 설정 및 업데이트
- NFT 토큰 URI 설정 및 업데이트
- 메타데이터를 불변으로 만들기 위한 동결
- 검증을 위한 메타데이터 해시 관리
이 모듈은 IP 자산의 저장소에 메타데이터를 저장하여 다른 모듈과 애플리케이션에서 접근할 수 있게 합니다.
메타데이터 설정
IP 자산의 메타데이터를 설정하려면 호출자가 적절한 권한을 가지고 있어야 합니다. CoreMetadataModule은 메타데이터 설정을 위한 여러 함수를 제공합니다:
setMetadataURI
: IP metadataURI와 그 해시만 설정합니다updateNftTokenURI
: NFT 토큰 URI와 그 해시를 업데이트합니다setAll
: 모든 메타데이터 속성을 한 번에 설정합니다
다음은 예시입니다:
메타데이터 동결
CoreMetadataModule은 IP 자산 소유자가 메타데이터를 동결하여 불변으로 만들 수 있게 합니다. 한 번 동결되면 메타데이터는 변경할 수 없어 IP 자산 정보의 영구성을 보장합니다.
메타데이터를 동결하려면:
다음을 사용하여 메타데이터가 동결되었는지 확인할 수 있습니다:
CoreMetadataViewModule (읽기 작업)
CoreMetadataViewModule.sol
은 CoreMetadataModule에 의해 저장된 메타데이터에 접근할 수 있는 읽기 전용 모듈입니다. 이는 View Module 패턴을 따르며 다음과 같은 주요 기능을 제공합니다:
- 메타데이터 URI 및 해시 검색
- NFT 토큰 URI 및 메타데이터 해시 검색
- 모든 메타데이터 속성이 포함된 형식화된 JSON 문자열 생성
- 등록 날짜 및 소유권 정보 확인
메타데이터 검색
CoreMetadataViewModule은 메타데이터를 검색하기 위한 다양한 함수를 제공합니다:
getCoreMetadata
: 모든 메타데이터를 단일 구조체로 반환합니다getMetadataURI
: 메타데이터 URI만 반환합니다getNftTokenURI
: NFT 토큰 URI를 반환합니다getJsonString
: 모든 메타데이터가 포함된 형식화된 JSON 문자열을 반환합니다
다음은 예시입니다:
메타데이터 모듈은 IP 자산 메타데이터를 관리하기 위한 강력한 시스템을 제공하여 지적 재산에 대한 중요한 정보가 적절히 기록되고, 접근 가능하며, 필요할 때 불변으로 만들 수 있도록 보장합니다.