forked from storyprotocol/protocol-periphery-v1
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIRoyaltyWorkflows.sol
25 lines (24 loc) · 1.4 KB
/
IRoyaltyWorkflows.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
/// @title Royalty Workflows Interface
/// @notice Interface for IP royalty workflows.
interface IRoyaltyWorkflows {
/// @notice Transfers all avaiable royalties from various royalty policies to the royalty
/// vault of an ancestor IP, and claims all the revenue for each currency token
/// from the ancestor IP's royalty vault to the claimer.
/// @param ancestorIpId The address of the ancestor IP from which the revenue is being claimed.
/// @param claimer The address of the claimer of the currency (revenue) tokens.
/// @param childIpIds The addresses of the child IPs from which royalties are derived.
/// @param royaltyPolicies The addresses of the royalty policies, where royaltyPolicies[i] governs
/// the royalty flow for childIpIds[i].
/// @param currencyTokens The addresses of the currency tokens in which royalties will be claimed,
/// where currencyTokens[i] is the token used for royalties from childIpIds[i].
/// @return amountsClaimed The amounts of successfully claimed revenue for each specified currency token.
function claimAllRevenue(
address ancestorIpId,
address claimer,
address[] calldata childIpIds,
address[] calldata royaltyPolicies,
address[] calldata currencyTokens
) external returns (uint256[] memory amountsClaimed);
}