LicenseRegistry
LicenseRegistry는 IP ID 라이센서가 파생 IP를 생성하기 위해 부여한 라이센스를 나타내는 라이센스 NFT(LNFT)의 등록 및 추적을 관리합니다. 라이센스 템플릿, 라이센스 조건, 그리고 부모 IP와 파생 IP 자산 간의 관계를 관리하는 기능을 제공합니다.
상태 변수
MAX_PARENTS
파생 IP가 가질 수 있는 최대 부모 IP 수입니다.
MAX_ANCESTORS
파생 IP가 가질 수 있는 최대 조상 IP 수입니다.
IP_GRAPH
IP 간의 관계를 추적하는 IP Graph 컨트랙트의 주소입니다.
GROUP_IP_ASSET_REGISTRY
Group IP Asset Registry 컨트랙트의 주소입니다.
LICENSING_MODULE
Licensing Module 컨트랙트의 주소입니다.
DISPUTE_MODULE
Dispute Module 컨트랙트의 주소입니다.
IP_GRAPH_ACL
IP Graph Access Control List 컨트랙트의 주소입니다.
EXPIRATION_TIME
IP 계정 저장소에 만료 시간을 저장하는 데 사용되는 키입니다.
함수
initialize
LicenseRegistry 컨트랙트를 초기화합니다.
Parameters:
accessManager
: 프로토콜 관리자 역할 컨트랙트의 주소입니다.
setDefaultLicenseTerms
기본적으로 모든 IP에 첨부되는 기본 라이센스 조건을 설정합니다.
Parameters:
newLicenseTemplate
: 새로운 기본 라이센스 템플릿의 주소입니다.newLicenseTermsId
: 새로운 기본 라이센스 조건의 ID입니다.
registerLicenseTemplate
Story에 새로운 라이센스 템플릿을 등록합니다.
Parameters:
licenseTemplate
: 등록할 라이센스 템플릿의 주소입니다.
setLicensingConfigForLicense
특정 IP에 첨부된 특정 라이센스에 대한 민팅 라이센스 구성을 설정합니다.
Parameters:
ipId
: 구성이 설정되는 IP의 주소입니다.licenseTemplate
: 사용된 라이센스 템플릿의 주소입니다.licenseTermsId
: 라이센스 템플릿 내의 라이센스 조건 ID입니다.licensingConfig
: 라이센스 민팅을 위한 구성입니다.
attachLicenseTermsToIp
IP에 라이센스 조건을 첨부합니다.
Parameters:
ipId
: 라이센스 조건이 첨부되는 IP의 주소입니다.licenseTemplate
: 라이센스 템플릿의 주소입니다.licenseTermsId
: 라이센스 조건의 ID입니다.
registerDerivativeIp
파생 IP와 부모 IP와의 관계를 등록합니다.
Parameters:
childIpId
: 파생 IP의 주소입니다.parentIpIds
: 부모 IP 주소들의 배열입니다.licenseTemplate
: 사용된 라이센스 템플릿의 주소입니다.licenseTermsIds
: 라이센스 조건 ID들의 배열입니다.isUsingLicenseToken
: 파생 IP가 라이센스 토큰과 함께 등록되었는지 여부입니다.
initializeLicenseTemplate
IP에 라이센스 템플릿이 설정되어 있지 않은 경우, IP에 대한 라이센스 템플릿을 설정합니다.
Parameters:
ipId
: 라이센스 템플릿이 첨부되는 IP의 주소입니다.licenseTemplate
: 라이센스 템플릿의 주소입니다.
verifyMintLicenseToken
라이센스 토큰의 민팅을 검증합니다.
Parameters:
licensorIpId
: 라이센서 IP의 주소입니다.licenseTemplate
: 라이센스 조건이 정의된 라이센스 템플릿의 주소입니다.licenseTermsId
: 라이센스 토큰을 민팅할 라이센스 조건의 ID입니다.isMintedByIpOwner
: 라이센스 토큰이 IP 소유자에 의해 민팅되는지 여부입니다.
Returns:
Licensing.LicensingConfig
: 라이센스 민팅을 위한 구성입니다.
verifyGroupAddIp
그룹이 주어진 IP를 추가할 수 있는지 검증합니다.
Parameters:
groupId
: 그룹의 주소입니다.groupRewardPool
: 그룹의 보상 풀 주소입니다.ipId
: 그룹에 추가될 IP의 주소입니다.groupLicenseTemplate
: 그룹에 첨부된 라이센스 템플릿의 주소입니다.groupLicenseTermsId
: 그룹에 첨부된 라이센스 조건의 ID입니다.
Returns:
ipLicensingConfig
: IP에 첨부된 라이센스에 대한 구성입니다.
isRegisteredLicenseTemplate
라이센스 템플릿이 등록되어 있는지 확인합니다.
Parameters:
licenseTemplate
: 확인할 라이선스 템플릿의 주소.
Returns:
bool
: 라이선스 템플릿이 등록되어 있는지 여부.
isDerivativeIp
IP가 파생 IP인지 확인합니다.
Parameters:
childIpId
: 확인할 IP의 주소.
Returns:
bool
: IP가 파생 IP인지 여부.
hasDerivativeIps
IP가 파생 IP를 가지고 있는지 확인합니다.
Parameters:
parentIpId
: 확인할 IP의 주소.
Returns:
bool
: IP가 파생 IP를 가지고 있는지 여부.
exists
라이선스 조건이 존재하는지 확인합니다.
Parameters:
licenseTemplate
: 라이선스 조건이 정의된 라이선스 템플릿의 주소.licenseTermsId
: 라이선스 조건의 ID.
Returns:
bool
: 라이선스 조건이 존재하는지 여부.
hasIpAttachedLicenseTerms
IP가 라이선스 조건을 첨부했는지 확인합니다.
Parameters:
ipId
: 확인할 IP의 주소.licenseTemplate
: 라이선스 조건이 정의된 라이선스 템플릿의 주소.licenseTermsId
: 라이선스 조건의 ID.
Returns:
bool
: IP가 라이선스 조건을 첨부했는지 여부.
getAttachedLicenseTerms
인덱스로 IP의 첨부된 라이선스 조건을 가져옵니다.
Parameters:
ipId
: IP의 주소.index
: IP의 모든 첨부된 라이선스 조건 배열 내에서 첨부된 라이선스 조건의 인덱스.
Returns:
licenseTemplate
: 라이선스 조건이 정의된 라이선스 템플릿의 주소.licenseTermsId
: 라이선스 조건의 ID.
getAttachedLicenseTermsCount
IP의 첨부된 라이선스 조건의 수를 가져옵니다.
Parameters:
ipId
: IP의 주소.
Returns:
uint256
: 첨부된 라이선스 조건의 수.
getDerivativeIp
인덱스로 IP의 파생 IP를 가져옵니다.
Parameters:
parentIpId
: IP의 주소.index
: IP의 모든 파생 IP 배열 내에서 파생 IP의 인덱스.
Returns:
childIpId
: 파생 IP의 주소.
getDerivativeIpCount
IP의 파생 IP 수를 가져옵니다.
Parameters:
parentIpId
: IP의 주소.
Returns:
uint256
: 파생 IP의 수.
getParentIp
인덱스로 IP의 부모 IP를 가져옵니다.
Parameters:
childIpId
: IP의 주소.index
: IP의 모든 부모 IP 배열 내에서 부모 IP의 인덱스.
Returns:
parentIpId
: 부모 IP의 주소.
isParentIp
IP가 다른 IP의 부모인지 확인합니다.
Parameters:
parentIpId
: 잠재적 부모 IP의 주소.childIpId
: 잠재적 자식 IP의 주소.
Returns:
bool
: IP가 다른 IP의 부모인지 여부.
getParentIpCount
부모 IP의 수를 가져옵니다.
Parameters:
childIpId
: 자식 IP의 주소.
Returns:
uint256
: 부모 IP의 수.
getAncestorsCount
조상 IP의 수를 가져옵니다.
Parameters:
ipId
: IP 자산의 ID.
Returns:
uint256
: 조상 IP의 수.
getLicensingConfig
IP의 주어진 라이선스 조건에 대한 민팅 라이선스 구성을 검색합니다.
Parameters:
ipId
: IP의 주소.licenseTemplate
: 라이선스 조건이 정의된 라이선스 템플릿의 주소.licenseTermsId
: 라이선스 조건의 ID.
Returns:
Licensing.LicensingConfig
: 라이선스 민팅을 위한 구성.
getExpireTime
IP의 만료 시간을 가져옵니다.
Parameters:
ipId
: IP의 주소.
Returns:
uint256
: 만료 시간, 0은 만료되지 않음을 의미합니다.
isExpiredNow
IP가 만료되었는지 확인합니다.
Parameters:
ipId
: IP의 주소.
Returns:
bool
: IP가 만료되었는지 여부.
getDefaultLicenseTerms
기본 라이선스 조건을 반환합니다.
Returns:
licenseTemplate
: 기본 라이선스 템플릿의 주소.licenseTermsId
: 기본 라이선스 조건의 ID.
isDefaultLicense
라이선스 조건이 기본 라이선스 조건인지 확인합니다.
Parameters:
licenseTemplate
: 라이선스 템플릿의 주소.licenseTermsId
: 라이선스 조건의 ID.
Returns:
bool
: 라이선스 조건이 기본 라이선스 조건인지 여부.
getParentLicenseTerms
자식 IP가 부모 IP와 연결되는 라이선스 조건을 반환합니다.
Parameters:
childIpId
: 자식 IP의 주소.parentIpId
: 부모 IP의 주소.
Returns:
licenseTemplate
: 라이선스 템플릿의 주소.licenseTermsId
: 라이선스 조건의 ID.
getRoyaltyPercent
IP의 라이선스 조건의 로열티 비율을 반환합니다.
Parameters:
ipId
: IP의 주소.licenseTemplate
: 라이선스 조건이 정의된 라이선스 템플릿의 주소.licenseTermsId
: 라이선스 조건의 ID.
Returns:
royaltyPercent
: 로열티 비율. 100%는 100_000_000입니다.