For the complete documentation index, see llms.txt. This page is also available as Markdown.

새 엔티티 유형을 만드는 방법

새로운 엔터티를 생성해야 하는 경우는 언제인가요?

먼저, 기존 엔터티가 필요한 사용 사례를 해결할 수 있는지 확인하여 불필요하게 복잡한 솔루션을 만들지 않도록 하세요. https://github.com/decentraland/common-schemas/blob/main/src/platform/entity.ts#L13 에 정의된 기존 엔터티 유형 중 어느 것도 요구 사항을 충족하지 못한다면, 새로운 엔터티 유형을 생성해야 할 수 있습니다.

첫 번째 답변:

  • 새 엔터티는 NFT 컬렉션인가요?

  • 소유권은 어떻게 검증되나요?

  • 크기는 어느 정도인가요?

  • 생성될 엔터티의 수는 얼마인가요?

단계

먼저 https://github.com/decentraland/adr 에 ADR을 생성하여 스키마와 새 엔터티의 검증을 시작할 날짜를 정의하세요.

리포지토리

@dcl/schemas

  1. enum에 새 엔터티 유형을 추가하세요: https://github.com/decentraland/common-schemas/blob/main/src/platform/entity.ts#L19

  2. https://github.com/decentraland/common-schemas/tree/main/src/platform 에 폴더와 파일을 생성하여 타입과 JSON 스키마를 만들어 주세요. 예: https://github.com/decentraland/common-schemas/blob/main/src/platform/profile/profile.ts#L20

@dcl/content-validator

https://github.com/decentraland/content-validator/blob/main/src/validations/timestamps.ts 에서 해당 ADR의 날짜를 고려하여 ADR에 정의된 검증을 구현하세요. 예: https://github.com/decentraland/content-validator/blob/main/src/validations/items/emotes.ts#L8

  1. https://github.com/decentraland/content-validator/tree/main/src/validations/access-checker 에서 새 엔터티 유형의 소유권을 확인하는 코드를 추가하세요.

  2. 새 유형에 대한 validationForType을 구현하세요. 예: https://github.com/decentraland/content-validator/blob/main/src/validations/profile.ts#L112

  3. 여기에서는 https://github.com/decentraland/content-validator/blob/main/src/validations/ADR51.ts 에서 엔터티별 최대 크기를 정의해야 합니다.

@dcl/urn-resolver

  1. 새 엔터티가 컬렉션에 해당한다면, 추가할 것은 없습니다.

  2. 그렇지 않다면, 새 엔터티에 해당하는 새로운 URN을 생성하고 https://github.com/decentraland/urn-resolver 에 정의한 뒤 https://github.com/decentraland/urn-resolver/blob/main/src/resolvers.ts#L23 에 리졸버를 추가하세요.

Catalyst: Content Server

  1. 데이터베이스 변경은 필요하지 않습니다.

  2. 위에서 상세히 언급된 수정된 모든 라이브러리를 업데이트하세요.

Catalyst: Lambdas Server

  1. 위에서 상세히 언급된 수정된 모든 라이브러리를 업데이트하세요.

  2. 프로필 정리(sanitization)를 업데이트해야 하는지 확인하세요 (/lambdas/profiles 엔드포인트)

  3. erc 컬렉션 엔드포인트를 업데이트해야 하는지 확인하세요 (/lambdas/collections 엔드포인트)

  4. 해당 엔터티를 보여주는 엔드포인트를 생성하세요. 예: /lambdas/wearables-by-owner

마지막 업데이트