CoreMetadataModule은 Story 내의 IP 자산에 대한 핵심 메타데이터를 관리합니다. IP 자산의 메타데이터 속성을 설정하고 업데이트할 수 있으며, 메타데이터를 동결하여 추가 변경을 방지할 수 있습니다.

상태 변수

name

string public constant override name = CORE_METADATA_MODULE_KEY

모듈의 이름을 반환합니다.

함수

initialize

function initialize(address accessManager) public initializer

CoreMetadataModule 계약을 초기화합니다.

Parameters:

  • accessManager: 프로토콜 관리자 역할 계약의 주소입니다.

name

function name() external pure override returns (string memory)

모듈의 이름을 반환합니다.

Returns:

  • string: 모듈의 이름입니다.

updateNftTokenURI

function updateNftTokenURI(address ipId, bytes32 nftMetadataHash) external verifyPermission(ipId)

IP 자산이 연결된 IP NFT에서 최신 TokenURI를 검색하여 IP 자산의 nftTokenURI를 업데이트합니다.

Parameters:

  • ipId: IP 자산의 주소입니다.
  • nftMetadataHash: NFT의 메타데이터를 나타내는 bytes32 해시입니다. 이 메타데이터는 IP 자산과 연관되어 있으며 NFT의 TokenURI를 통해 접근할 수 있습니다. 메타데이터를 사용할 수 없음을 나타내려면 bytes32(0)를 사용하세요.

setMetadataURI

function setMetadataURI(
    address ipId,
    string memory metadataURI,
    bytes32 metadataHash
) external verifyPermission(ipId)

IP 자산의 metadataURI를 설정합니다.

Parameters:

  • ipId: IP 자산의 주소입니다.
  • metadataURI: IP 자산에 설정할 metadataURI입니다.
  • metadataHash: metadataURI에 있는 메타데이터의 해시입니다. 메타데이터를 사용할 수 없음을 나타내려면 bytes32(0)를 사용하세요.

setAll

function setAll(
    address ipId,
    string memory metadataURI,
    bytes32 metadataHash,
    bytes32 nftMetadataHash
) external verifyPermission(ipId)

IP 자산의 모든 핵심 메타데이터를 설정합니다.

Parameters:

  • ipId: IP 자산의 주소입니다.
  • metadataURI: IP 자산에 설정할 metadataURI입니다.
  • metadataHash: metadataURI에 있는 메타데이터의 해시입니다. 메타데이터를 사용할 수 없음을 나타내려면 bytes32(0)를 사용하세요.
  • nftMetadataHash: NFT의 메타데이터를 나타내는 bytes32 해시입니다. 이 메타데이터는 IP 자산과 연관되어 있으며 NFT의 TokenURI를 통해 접근할 수 있습니다. 메타데이터를 사용할 수 없음을 나타내려면 bytes32(0)를 사용하세요.

freezeMetadata

function freezeMetadata(address ipId) external verifyPermission(ipId)

IP 자산의 모든 메타데이터를 변경 불가능하게 만듭니다.

Parameters:

  • ipId: IP 자산의 주소입니다.

isMetadataFrozen

function isMetadataFrozen(address ipId) external view returns (bool)

IP 자산의 메타데이터가 변경 불가능한지 확인합니다.

Parameters:

  • ipId: IP 자산의 주소입니다.

Returns:

  • bool: 메타데이터가 동결되었으면 true, 그렇지 않으면 false입니다.

supportsInterface

function supportsInterface(bytes4 interfaceId) public view virtual override(BaseModule, IERC165) returns (bool)

IERC165 인터페이스를 구현합니다.

Parameters:

  • interfaceId: 인터페이스 식별자입니다.

Returns:

  • bool: 계약이 인터페이스를 지원하면 true, 그렇지 않으면 false입니다.