로열티 수집 및 청구하기
0) Prerequisites
로열티 모듈 이해하기
1) 로열티 토큰 수집
자식 IP Asset을 통해 로열티 토큰을 수집할 수 있으며, 이는 로열티 %에서 내 몫을 나타낸다.
딱 한번 수행되며, 누구나 호출할 수 있다. (다른 사람이 내 로열티 토큰 수집하는데 도움을 주더라도 상관 없다.)
로열티 토큰은 IP 계정에 입금된다.
이 함수는 claimRoyalty함수처럼, 미청구된 수익 토큰(Revenue Token)에 대해서도 청구할 수 있다. 하지만, 로열티 토큰은 아직 수집되지 않았기 때문에, 본래 ancestor에게 입금되지는 않는다.
const response = await client.royalty.collectRoyaltyTokens({
parentIpId: "0xC92EC2f4c86458AFee7DD9EB5d8c57920BfCD0Ba",
royaltyVaultIpId: "0xC92EC2f4c86458AFee7DD9EB5d8c57920BfCD0Ba",
txOptions: { waitForTransaction: true }
});
console.log(`Collected royalty token ${response.royaltyTokensCollected} at transaction hash ${response.txHash}`)export type CollectRoyaltyTokensRequest = {
parentIpId: Address;
royaltyVaultIpId: Address;
txOptions?: TxOptions;
};트랜잭션에서 waitForTransaction: true와 같이 옵션을 주면 royaltyTokensCollected 가 리턴된다.
2) 수익 청구하기
자식 IP Asset에 지급한 실제 금액의 %(수익 토큰,Revenue Token)를 청구하기 위해 claimRoyalty 함수를 호출할 수 있다.
하지만, 이 작업 수행 전에 트랜잭션에 제공할 snapshotIds가 필요하다.
이 함수는 누가 스냅샷을 찍었는지 중요하지 않기 때문에 누구나 호출 가능하다.
트랜잭션에서 waitForTransaction: true와 같이 옵션을 주면 snapshotId 가 리턴된다.
이제 아래와 같이 claimRevenue를 호출할 수 있다. 제공된 스냅샷 시점의 로열티 토큰 소유자만이 이 함수를 호출할 수 있다.
트랜잭션에서 waitForTransaction: true와 같이 옵션을 주면 claimableToken이 리턴된다.
Reference
Last updated