@story-protocol/core-sdk 1.2.0-rc.4 → 1.3.0-beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. package/dist/declarations/src/abi/generated.d.ts +12683 -4297
  2. package/dist/declarations/src/abi/generated.d.ts.map +1 -1
  3. package/dist/declarations/src/client.d.ts +5 -0
  4. package/dist/declarations/src/client.d.ts.map +1 -1
  5. package/dist/declarations/src/constants/common.d.ts +3 -0
  6. package/dist/declarations/src/constants/common.d.ts.map +1 -1
  7. package/dist/declarations/src/index.d.ts +1 -1
  8. package/dist/declarations/src/index.d.ts.map +1 -1
  9. package/dist/declarations/src/resources/dispute.d.ts +8 -4
  10. package/dist/declarations/src/resources/dispute.d.ts.map +1 -1
  11. package/dist/declarations/src/resources/group.d.ts +73 -20
  12. package/dist/declarations/src/resources/group.d.ts.map +1 -1
  13. package/dist/declarations/src/resources/ipAsset.d.ts +304 -206
  14. package/dist/declarations/src/resources/ipAsset.d.ts.map +1 -1
  15. package/dist/declarations/src/resources/license.d.ts +15 -4
  16. package/dist/declarations/src/resources/license.d.ts.map +1 -1
  17. package/dist/declarations/src/resources/nftClient.d.ts +1 -1
  18. package/dist/declarations/src/resources/nftClient.d.ts.map +1 -1
  19. package/dist/declarations/src/resources/permission.d.ts.map +1 -1
  20. package/dist/declarations/src/resources/royalty.d.ts +11 -87
  21. package/dist/declarations/src/resources/royalty.d.ts.map +1 -1
  22. package/dist/declarations/src/resources/wip.d.ts +29 -0
  23. package/dist/declarations/src/resources/wip.d.ts.map +1 -0
  24. package/dist/declarations/src/types/common.d.ts +25 -10
  25. package/dist/declarations/src/types/common.d.ts.map +1 -1
  26. package/dist/declarations/src/types/config.d.ts +1 -1
  27. package/dist/declarations/src/types/config.d.ts.map +1 -1
  28. package/dist/declarations/src/types/options.d.ts +3 -3
  29. package/dist/declarations/src/types/options.d.ts.map +1 -1
  30. package/dist/declarations/src/types/resources/dispute.d.ts +3 -2
  31. package/dist/declarations/src/types/resources/dispute.d.ts.map +1 -1
  32. package/dist/declarations/src/types/resources/group.d.ts +21 -11
  33. package/dist/declarations/src/types/resources/group.d.ts.map +1 -1
  34. package/dist/declarations/src/types/resources/ipAsset.d.ts +86 -59
  35. package/dist/declarations/src/types/resources/ipAsset.d.ts.map +1 -1
  36. package/dist/declarations/src/types/resources/license.d.ts +15 -10
  37. package/dist/declarations/src/types/resources/license.d.ts.map +1 -1
  38. package/dist/declarations/src/types/resources/permission.d.ts +0 -1
  39. package/dist/declarations/src/types/resources/permission.d.ts.map +1 -1
  40. package/dist/declarations/src/types/resources/royalty.d.ts +68 -8
  41. package/dist/declarations/src/types/resources/royalty.d.ts.map +1 -1
  42. package/dist/declarations/src/types/resources/wip.d.ts +16 -0
  43. package/dist/declarations/src/types/resources/wip.d.ts.map +1 -0
  44. package/dist/declarations/src/types/utils/txOptions.d.ts +13 -0
  45. package/dist/declarations/src/types/utils/txOptions.d.ts.map +1 -0
  46. package/dist/declarations/src/types/utils/wip.d.ts +87 -0
  47. package/dist/declarations/src/types/utils/wip.d.ts.map +1 -0
  48. package/dist/declarations/src/utils/chain.d.ts +5 -5
  49. package/dist/declarations/src/utils/chain.d.ts.map +1 -1
  50. package/dist/declarations/src/utils/getIpMetadataForWorkflow.d.ts +9 -0
  51. package/dist/declarations/src/utils/getIpMetadataForWorkflow.d.ts.map +1 -0
  52. package/dist/declarations/src/utils/sign.d.ts +0 -1
  53. package/dist/declarations/src/utils/sign.d.ts.map +1 -1
  54. package/dist/story-protocol-core-sdk.cjs.dev.js +5185 -3807
  55. package/dist/story-protocol-core-sdk.cjs.prod.js +5185 -3807
  56. package/dist/story-protocol-core-sdk.esm.js +5186 -3808
  57. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  import { Hex, PublicClient } from "viem";
2
2
  import { SupportedChainIds } from "../types/config.js";
3
3
  import { BatchMintAndRegisterIpAndMakeDerivativeRequest, BatchMintAndRegisterIpAndMakeDerivativeResponse, BatchMintAndRegisterIpAssetWithPilTermsRequest, BatchMintAndRegisterIpAssetWithPilTermsResponse, BatchRegisterDerivativeRequest, BatchRegisterDerivativeResponse, BatchRegisterRequest, BatchRegisterResponse, MintAndRegisterIpAssetWithPilTermsRequest, MintAndRegisterIpAssetWithPilTermsResponse, GenerateCreatorMetadataParam, GenerateIpMetadataParam, IpCreator, IpMetadata, MintAndRegisterIpAndMakeDerivativeRequest, MintAndRegisterIpAndMakeDerivativeWithLicenseTokensRequest, MintAndRegisterIpRequest, RegisterDerivativeRequest, RegisterDerivativeResponse, RegisterDerivativeWithLicenseTokensRequest, RegisterDerivativeWithLicenseTokensResponse, RegisterIpAndAttachPilTermsRequest, RegisterIpAndAttachPilTermsResponse, RegisterIpAndMakeDerivativeRequest, RegisterIpAndMakeDerivativeResponse, RegisterIpAndMakeDerivativeWithLicenseTokensRequest, RegisterIpResponse, RegisterPilTermsAndAttachRequest, RegisterPilTermsAndAttachResponse, RegisterRequest, MintAndRegisterIpAndMakeDerivativeResponse, RegisterIPAndAttachLicenseTermsAndDistributeRoyaltyTokensRequest, RegisterIPAndAttachLicenseTermsAndDistributeRoyaltyTokensResponse, RegisterDerivativeAndAttachLicenseTermsAndDistributeRoyaltyTokensRequest, RegisterDerivativeAndAttachLicenseTermsAndDistributeRoyaltyTokensResponse, MintAndRegisterIpAndAttachPILTermsAndDistributeRoyaltyTokensRequest, MintAndRegisterIpAndMakeDerivativeAndDistributeRoyaltyTokensRequest, MintAndRegisterIpAndAttachPILTermsAndDistributeRoyaltyTokensResponse, MintAndRegisterIpAndMakeDerivativeAndDistributeRoyaltyTokensResponse } from "../types/resources/ipAsset.js";
4
- import { AccessControllerClient, CoreMetadataModuleClient, DerivativeWorkflowsClient, IpAssetRegistryClient, LicenseAttachmentWorkflowsClient, LicenseRegistryReadOnlyClient, LicenseTokenReadOnlyClient, LicensingModuleClient, Multicall3Client, PiLicenseTemplateClient, RegistrationWorkflowsClient, RoyaltyModuleEventClient, RoyaltyTokenDistributionWorkflowsClient, SimpleWalletClient } from "../abi/generated.js";
4
+ import { AccessControllerClient, CoreMetadataModuleClient, DerivativeWorkflowsClient, Erc20TokenClient, IpAssetRegistryClient, LicenseAttachmentWorkflowsClient, LicenseRegistryReadOnlyClient, LicenseTokenReadOnlyClient, LicensingModuleClient, Multicall3Client, PiLicenseTemplateClient, RegistrationWorkflowsClient, RoyaltyModuleEventClient, RoyaltyTokenDistributionWorkflowsClient, SimpleWalletClient, SpgnftImplReadOnlyClient } from "../abi/generated.js";
5
5
  export declare class IPAssetClient {
6
6
  licensingModuleClient: LicensingModuleClient;
7
7
  ipAssetRegistryClient: IpAssetRegistryClient;
@@ -16,9 +16,12 @@ export declare class IPAssetClient {
16
16
  multicall3Client: Multicall3Client;
17
17
  royaltyTokenDistributionWorkflowsClient: RoyaltyTokenDistributionWorkflowsClient;
18
18
  royaltyModuleEventClient: RoyaltyModuleEventClient;
19
+ wipClient: Erc20TokenClient;
20
+ spgNftClient: SpgnftImplReadOnlyClient;
19
21
  private readonly rpcClient;
20
22
  private readonly wallet;
21
23
  private readonly chainId;
24
+ private readonly walletAddress;
22
25
  constructor(rpcClient: PublicClient, wallet: SimpleWalletClient, chainId: SupportedChainIds);
23
26
  /**
24
27
  * Create a new `IpCreator` object with the specified details.
@@ -27,7 +30,7 @@ export declare class IPAssetClient {
27
30
  * @param params.address The wallet address of the creator.
28
31
  * @param params.description [Optional] A description of the creator.
29
32
  * @param params.image [Optional] The URL or path to an image representing the creator.
30
- * @param params.socialMedia [Optional] An array of social media profiles associated with the creator.
33
+ * @param {Array} params.socialMedia [Optional] An array of social media profiles associated with the creator.
31
34
  * @param params.socialMedia[].platform The name of the social media platform.
32
35
  * @param params.socialMedia[].url The URL to the creator's profile on the platform.
33
36
  * @param params.contributionPercent The percentage of contribution by the creator, must add up to 100.
@@ -41,12 +44,12 @@ export declare class IPAssetClient {
41
44
  * @param params.title [Optional] The title of the IP.
42
45
  * @param params.description [Optional] A description of the IP.
43
46
  * @param params.ipType [Optional] The type of the IP asset (e.g., "character", "chapter").
44
- * @param params.relationships [Optional] An array of relationships between this IP and its parent IPs.
47
+ * @param {Array} params.relationships [Optional] An array of relationships between this IP and its parent IPs.
45
48
  * @param params.relationships[].ipId The ID of the parent IP.
46
49
  * @param params.relationships[].type The type of relationship (e.g., "APPEARS_IN").
47
50
  * @param params.createdAt [Optional] The creation date and time of the IP in ISO 8601 format.
48
51
  * @param params.watermarkImg [Optional] The URL or path to an image used as a watermark for the IP.
49
- * @param params.creators [Optional] An array of creators associated with the IP.
52
+ * @param {Array} params.creators [Optional] An array of creators associated with the IP.
50
53
  * @param params.creators[].name The name of the creator.
51
54
  * @param params.creators[].address The address of the creator.
52
55
  * @param params.creators[].description [Optional] A description of the creator.
@@ -56,19 +59,19 @@ export declare class IPAssetClient {
56
59
  * @param params.creators[].socialMedia[].url The URL to the creator's profile.
57
60
  * @param params.creators[].role [Optional] The role of the creator in relation to the IP.
58
61
  * @param params.creators[].contributionPercent The percentage of contribution by the creator.
59
- * @param params.media [Optional] An array of media related to the IP.
62
+ * @param {Array} params.media [Optional] An array of media related to the IP.
60
63
  * @param params.media[].name The name of the media.
61
64
  * @param params.media[].url The URL to the media.
62
65
  * @param params.media[].mimeType The MIME type of the media.
63
- * @param params.attributes [Optional] An array of key-value pairs providing additional metadata.
66
+ * @param {Array} params.attributes [Optional] An array of key-value pairs providing additional metadata.
64
67
  * @param params.attributes[].key The key for the attribute.
65
68
  * @param params.attributes[].value The value for the attribute, can be a string or number.
66
- * @param params.app [Optional] Information about the application associated with the IP.
69
+ * @param {Object} params.app [Optional] Information about the application associated with the IP.
67
70
  * @param params.app.id The ID of the application.
68
71
  * @param params.app.name The name of the application.
69
72
  * @param params.app.website The website URL of the application.
70
- * @param params.tags [Optional] An array of tags associated with the IP.
71
- * @param params.robotTerms [Optional] Robot terms for the IP, specifying access rules.
73
+ * @param {Array} params.tags [Optional] An array of tags associated with the IP.
74
+ * @param {Object} params.robotTerms [Optional] Robot terms for the IP, specifying access rules.
72
75
  * @param params.robotTerms.userAgent The user agent for which the rules apply.
73
76
  * @param params.robotTerms.allow The rules allowing access.
74
77
  * @param params.additionalProperties [Optional] Any additional key-value pairs to include in the metadata.
@@ -80,11 +83,11 @@ export declare class IPAssetClient {
80
83
  * @param request - The request object that contains all data needed to register IP.
81
84
  * @param request.nftContract The address of the NFT.
82
85
  * @param request.tokenId The token identifier of the NFT.
83
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
84
- * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
85
- * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
86
- * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
87
- * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
86
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
87
+ * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
88
+ * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
89
+ * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
90
+ * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
88
91
  * @param request.deadline [Optional] The deadline for the signature in seconds, default is 1000s.
89
92
  * @param request.txOptions [Optional] This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
90
93
  * @returns A Promise that resolves to a transaction hash, and if encodedTxDataOnly is true, includes encoded transaction data, and if waitForTransaction is true, includes IP ID, token ID.
@@ -97,7 +100,7 @@ export declare class IPAssetClient {
97
100
  * @param {Array} request.args The array of objects containing the data needed to register IP.
98
101
  * @param request.args.nftContract The address of the NFT.
99
102
  * @param request.args.tokenId The token identifier of the NFT.
100
- * @param request.args.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
103
+ * @param {Object} request.args.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
101
104
  * @param request.args.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
102
105
  * @param request.args.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
103
106
  * @param request.args.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
@@ -115,8 +118,12 @@ export declare class IPAssetClient {
115
118
  * The derivative IP owner must be the caller or an authorized operator.
116
119
  * @param request - The request object that contains all data needed to register derivative IP.
117
120
  * @param request.childIpId The derivative IP ID.
118
- * @param request.parentIpIds The parent IP IDs.
119
- * @param request.licenseTermsIds The IDs of the license terms that the parent IP supports.
121
+ * @param {Array} request.parentIpIds The parent IP IDs.
122
+ * @param {Array} request.licenseTermsIds The IDs of the license terms that the parent IP supports.
123
+ * @param request.maxMintingFee The maximum minting fee that the caller is willing to pay. if set to 0 then no limit.
124
+ * @param request.maxRts The maximum number of royalty tokens that can be distributed to the external royalty policies (max: 100,000,000).
125
+ * @param request.maxRevenueShare The maximum revenue share percentage allowed for minting the License Tokens. Must be between 0 and 100,000,000 (where 100,000,000 represents 100%).
126
+ * @param request.licenseTemplate [Optional] The license template address, default value is Programmable IP License.
120
127
  * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
121
128
  * @returns A Promise that resolves to a transaction hash, and if encodedTxDataOnly is true, includes encoded transaction data.
122
129
  */
@@ -125,22 +132,25 @@ export declare class IPAssetClient {
125
132
  * Batch registers a derivative directly with parent IP's license terms.
126
133
  * @param request - The request object that contains all data needed to batch register derivative IP.
127
134
  * @param {Array} request.args The array of objects containing the data needed to register derivative IP.
128
- * @param request.args.childIpId The derivative IP ID.
129
- * @param request.args.parentIpIds The parent IP IDs.
130
- * @param request.args.licenseTermsIds The IDs of the license terms that the parent IP supports.
135
+ * @param request.args.childIpId The derivative IP ID.
136
+ * @param {Array} request.args.parentIpIds The parent IP IDs.
137
+ * @param {Array} request.args.licenseTermsIds The IDs of the license terms that the parent IP supports.
138
+ * @param request.args.maxMintingFee The maximum minting fee that the caller is willing to pay. if set to 0 then no limit.
139
+ * @param request.args.maxRts The maximum number of royalty tokens that can be distributed to the external royalty policies (max: 100,000,000).
140
+ * @param request.args.maxRevenueShare The maximum revenue share percentage allowed for minting the License Tokens. Must be between 0 and 100,000,000 (where 100,000,000 represents 100%).
131
141
  * @param request.deadline [Optional] The deadline for the signature in seconds, default is 1000s.
132
142
  * @param request.txOptions [Optional] This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property, without encodedTxDataOnly option.
133
143
  * @returns A Promise that resolves to a transaction hash.
134
144
  */
135
145
  batchRegisterDerivative(request: BatchRegisterDerivativeRequest): Promise<BatchRegisterDerivativeResponse>;
136
146
  /**
137
- * Registers a derivative with license tokens.
138
- * the derivative IP is registered with license tokens minted from the parent IP's license terms.
139
- * the license terms of the parent IPs issued with license tokens are attached to the derivative IP.
140
- * the caller must be the derivative IP owner or an authorized operator.
147
+ * Registers a derivative with license tokens. The derivative IP is registered with license tokens minted from the parent IP's license terms.
148
+ * The license terms of the parent IPs issued with license tokens are attached to the derivative IP.
149
+ * The caller must be the derivative IP owner or an authorized operator.
141
150
  * @param request - The request object that contains all data needed to register derivative license tokens.
142
151
  * @param request.childIpId The derivative IP ID.
143
- * @param request.licenseTokenIds The IDs of the license tokens.
152
+ * @param {Array} request.licenseTokenIds The IDs of the license tokens.
153
+ * @param request.args.maxRts The maximum number of royalty tokens that can be distributed to the external royalty policies (max: 100,000,000).
144
154
  * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
145
155
  * @returns A Promise that resolves to an object containing the transaction hash.
146
156
  */
@@ -149,25 +159,37 @@ export declare class IPAssetClient {
149
159
  * Mint an NFT from a collection and register it as an IP.
150
160
  * @param request - The request object that contains all data needed to mint and register ip.
151
161
  * @param request.spgNftContract The address of the NFT collection.
152
- * @param {Array} request.terms The array of license terms to be attached.
153
- * @param request.terms.transferable Indicates whether the license is transferable or not.
154
- * @param request.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
155
- * @param request.terms.mintingFee The fee to be paid when minting a license.
156
- * @param request.terms.expiration The expiration period of the license.
157
- * @param request.terms.commercialUse Indicates whether the work can be used commercially or not.
158
- * @param request.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
159
- * @param request.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
160
- * @param request.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
161
- * @param request.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
162
- * @param request.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
163
- * @param request.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
164
- * @param request.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
165
- * @param request.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
166
- * @param request.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
167
- * @param request.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
168
- * @param request.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
169
- * @param request.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
170
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
162
+ * @param request.allowDuplicates Indicates whether the license terms can be attached to the same IP ID or not.
163
+ * @param {Array} request.licenseTermsData The PIL terms and licensing configuration data to be attached to the IP.
164
+ * @param {Object} request.licenseTermsData.terms The PIL terms to be used for the licensing.
165
+ * @param request.licenseTermsData.terms.transferable Indicates whether the license is transferable or not.
166
+ * @param request.licenseTermsData.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
167
+ * @param request.licenseTermsData.terms.mintingFee The fee to be paid when minting a license.
168
+ * @param request.licenseTermsData.terms.expiration The expiration period of the license.
169
+ * @param request.licenseTermsData.terms.commercialUse Indicates whether the work can be used commercially or not, Commercial use is required to deploy a royalty vault.
170
+ * @param request.licenseTermsData.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
171
+ * @param request.licenseTermsData.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
172
+ * @param request.licenseTermsData.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
173
+ * @param request.licenseTermsData.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
174
+ * @param request.licenseTermsData.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
175
+ * @param request.licenseTermsData.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
176
+ * @param request.licenseTermsData.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
177
+ * @param request.licenseTermsData.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
178
+ * @param request.licenseTermsData.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
179
+ * @param request.licenseTermsData.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
180
+ * @param request.licenseTermsData.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
181
+ * @param request.licenseTermsData.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
182
+ * @param {Object} request.licenseTermsData.licensingConfig The PIL terms and licensing configuration data to attach to the IP.
183
+ * @param request.licenseTermsData.licensingConfig.isSet Whether the configuration is set or not.
184
+ * @param request.licenseTermsData.licensingConfig.mintingFee The minting fee to be paid when minting license tokens.
185
+ * @param request.licenseTermsData.licensingConfig.licensingHook The hook contract address for the licensing module, or address(0) if none
186
+ * @param request.licenseTermsData.licensingConfig.hookData The data to be used by the licensing hook.
187
+ * @param request.licenseTermsData.licensingConfig.commercialRevShare The commercial revenue share percentage.
188
+ * @param request.licenseTermsData.licensingConfig.disabled Whether the licensing is disabled or not.
189
+ * @param request.licenseTermsData.licensingConfig.expectMinimumGroupRewardShare The minimum percentage of the group’s reward share (from 0 to 100%, represented as 100 * 10 ** 6) that can be allocated to the IP when it is added to the group.
190
+ * If the remaining reward share in the group is less than the minimumGroupRewardShare,the IP cannot be added to the group.
191
+ * @param request.licenseTermsData.licensingConfig.expectGroupRewardPool The address of the expected group reward pool. The IP can only be added to a group with this specified reward pool address, or address(0) if the IP does not want to be added to any group.
192
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
171
193
  * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
172
194
  * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
173
195
  * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
@@ -184,26 +206,38 @@ export declare class IPAssetClient {
184
206
  * @param request - The request object that contains all data needed to batch mint and register ip.
185
207
  * @param {Array} request.args The array of mint and register IP requests.
186
208
  * @param request.args.spgNftContract The address of the NFT collection.
187
- * @param {Array} request.args.terms The array of license terms to be attached.
188
- * @param request.args.terms.transferable Indicates whether the license is transferable or not.
189
- * @param request.args.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
190
- * @param request.args.terms.mintingFee The fee to be paid when minting a license.
191
- * @param request.args.terms.expiration The expiration period of the license.
192
- * @param request.args.terms.commercialUse Indicates whether the work can be used commercially or not.
193
- * @param request.args.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
194
- * @param request.args.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
195
- * @param request.args.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
196
- * @param request.args.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
197
- * @param request.args.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
198
- * @param request.args.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
199
- * @param request.args.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
200
- * @param request.args.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
201
- * @param request.args.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
202
- * @param request.args.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
203
- * @param request.args.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
204
- * @param request.args.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
205
- * @param request.args.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
206
- * @param request.args.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
209
+ * @param request.allowDuplicates Indicates whether the license terms can be attached to the same IP ID or not.
210
+ * @param {Array} request.args.licenseTermsData The PIL terms and licensing configuration data to be attached to the IP.
211
+ * @param {Object} request.args.licenseTermsData.terms The PIL terms to be used for the licensing.
212
+ * @param request.args.licenseTermsData.terms.transferable Indicates whether the license is transferable or not.
213
+ * @param request.args.licenseTermsData.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
214
+ * @param request.args.licenseTermsData.terms.mintingFee The fee to be paid when minting a license.
215
+ * @param request.args.licenseTermsData.terms.expiration The expiration period of the license.
216
+ * @param request.args.licenseTermsData.terms.commercialUse Indicates whether the work can be used commercially or not, Commercial use is required to deploy a royalty vault.
217
+ * @param request.args.licenseTermsData.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
218
+ * @param request.args.licenseTermsData.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
219
+ * @param request.args.licenseTermsData.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
220
+ * @param request.args.licenseTermsData.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
221
+ * @param request.args.licenseTermsData.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
222
+ * @param request.args.licenseTermsData.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
223
+ * @param request.args.licenseTermsData.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
224
+ * @param request.args.licenseTermsData.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
225
+ * @param request.args.licenseTermsData.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
226
+ * @param request.args.licenseTermsData.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
227
+ * @param request.args.licenseTermsData.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
228
+ * @param request.args.licenseTermsData.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
229
+ * @param {Object} request.args.licenseTermsData.licensingConfig The PIL terms and licensing configuration data to attach to the IP.
230
+ * @param request.args.licenseTermsData.licensingConfig.isSet Whether the configuration is set or not.
231
+ * @param request.args.licenseTermsData.licensingConfig.mintingFee The minting fee to be paid when minting license tokens.
232
+ * @param request.args.licenseTermsData.licensingConfig.licensingHook The hook contract address for the licensing module, or address(0) if none
233
+ * @param request.args.licenseTermsData.licensingConfig.hookData The data to be used by the licensing hook.
234
+ * @param request.args.licenseTermsData.licensingConfig.commercialRevShare The commercial revenue share percentage.
235
+ * @param request.args.licenseTermsData.licensingConfig.disabled Whether the licensing is disabled or not.
236
+ * @param request.args.licenseTermsData.licensingConfig.expectMinimumGroupRewardShare The minimum percentage of the group’s reward share (from 0 to 100%, represented as 100 * 10 ** 6) that can be allocated to the IP when it is added to the group.
237
+ * If the remaining reward share in the group is less than the minimumGroupRewardShare,the IP cannot be added to the group.
238
+ * @param request.args.licenseTermsData.licensingConfig.expectGroupRewardPool The address of the expected group reward pool. The IP can only be added to a group with this specified reward pool address, or address(0) if the IP does not want to be added to any group.
239
+ * @param {Object} request.args.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
240
+ * @param request.args.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
207
241
  * @param request.args.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
208
242
  * @param request.args.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
209
243
  * @param request.args.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
@@ -219,29 +253,40 @@ export declare class IPAssetClient {
219
253
  * @param request - The request object that contains all data needed to mint and register ip.
220
254
  * @param request.nftContract The address of the NFT collection.
221
255
  * @param request.tokenId The ID of the NFT.
222
- * @param {Array} request.terms The array of license terms to be attached.
223
- * @param request.terms.transferable Indicates whether the license is transferable or not.
224
- * @param request.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
225
- * @param request.terms.mintingFee The fee to be paid when minting a license.
226
- * @param request.terms.expiration The expiration period of the license.
227
- * @param request.terms.commercialUse Indicates whether the work can be used commercially or not.
228
- * @param request.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
229
- * @param request.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
230
- * @param request.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
231
- * @param request.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
232
- * @param request.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
233
- * @param request.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
234
- * @param request.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
235
- * @param request.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
236
- * @param request.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
237
- * @param request.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
238
- * @param request.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
239
- * @param request.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
240
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
241
- * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
242
- * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
243
- * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
244
- * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
256
+ * @param {Array} request.licenseTermsData The PIL terms and licensing configuration data to be attached to the IP.
257
+ * @param {Object} request.licenseTermsData.terms The PIL terms to be used for the licensing.
258
+ * @param request.licenseTermsData.terms.transferable Indicates whether the license is transferable or not.
259
+ * @param request.licenseTermsData.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
260
+ * @param request.licenseTermsData.terms.mintingFee The fee to be paid when minting a license.
261
+ * @param request.licenseTermsData.terms.expiration The expiration period of the license.
262
+ * @param request.licenseTermsData.terms.commercialUse Indicates whether the work can be used commercially or not, Commercial use is required to deploy a royalty vault.
263
+ * @param request.licenseTermsData.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
264
+ * @param request.licenseTermsData.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
265
+ * @param request.licenseTermsData.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
266
+ * @param request.licenseTermsData.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
267
+ * @param request.licenseTermsData.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
268
+ * @param request.licenseTermsData.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
269
+ * @param request.licenseTermsData.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
270
+ * @param request.licenseTermsData.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
271
+ * @param request.licenseTermsData.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
272
+ * @param request.licenseTermsData.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
273
+ * @param request.licenseTermsData.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
274
+ * @param request.licenseTermsData.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
275
+ * @param {Object} request.licenseTermsData.licensingConfig The PIL terms and licensing configuration data to attach to the IP.
276
+ * @param request.licenseTermsData.licensingConfig.isSet Whether the configuration is set or not.
277
+ * @param request.licenseTermsData.licensingConfig.mintingFee The minting fee to be paid when minting license tokens.
278
+ * @param request.licenseTermsData.licensingConfig.licensingHook The hook contract address for the licensing module, or address(0) if none
279
+ * @param request.licenseTermsData.licensingConfig.hookData The data to be used by the licensing hook.
280
+ * @param request.licenseTermsData.licensingConfig.commercialRevShare The commercial revenue share percentage.
281
+ * @param request.licenseTermsData.licensingConfig.disabled Whether the licensing is disabled or not.
282
+ * @param request.licenseTermsData.licensingConfig.expectMinimumGroupRewardShare The minimum percentage of the group’s reward share (from 0 to 100%, represented as 100 * 10 ** 6) that can be allocated to the IP when it is added to the group.
283
+ * If the remaining reward share in the group is less than the minimumGroupRewardShare,the IP cannot be added to the group.
284
+ * @param request.licenseTermsData.licensingConfig.expectGroupRewardPool The address of the expected group reward pool. The IP can only be added to a group with this specified reward pool address, or address(0) if the IP does not want to be added to any group.
285
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
286
+ * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
287
+ * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
288
+ * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
289
+ * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
245
290
  * @param request.deadline [Optional] The deadline for the signature in seconds, default is 1000s.
246
291
  * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
247
292
  * @returns A Promise that resolves to a transaction hash, if waitForTransaction is true, including IP ID, token ID and License terms IDs.
@@ -253,15 +298,15 @@ export declare class IPAssetClient {
253
298
  * @param request - The request object that contains all data needed to register derivative IP.
254
299
  * @param request.nftContract The address of the NFT collection.
255
300
  * @param request.tokenId The ID of the NFT.
256
- * @param request.derivData The derivative data to be used for registerDerivative.
257
- * @param request.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
258
- * @param request.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking.
259
- * @param request.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
260
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
261
- * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
262
- * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
263
- * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
264
- * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
301
+ * @param {Object} request.derivData The derivative data to be used for registerDerivative.
302
+ * @param {Array} request.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
303
+ * @param {Array} request.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
304
+ * @param request.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking, default value is Programmable IP License.
305
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
306
+ * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
307
+ * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
308
+ * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
309
+ * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
265
310
  * @param request.deadline [Optional] The deadline for the signature in seconds, default is 1000s.
266
311
  * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
267
312
  * @returns A Promise that resolves to a transaction hash, and if encodedTxDataOnly is true, includes encoded transaction data, and if waitForTransaction is true, included IP ID, Token ID.
@@ -272,11 +317,16 @@ export declare class IPAssetClient {
272
317
  * Mint an NFT from a collection and register it as a derivative IP without license tokens.
273
318
  * @param request - The request object that contains all data needed to mint and register ip and make derivative.
274
319
  * @param request.spgNftContract The address of the NFT collection.
275
- * @param request.derivData The derivative data to be used for registerDerivative.
276
- * @param request.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
277
- * @param request.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
278
- * @param request.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking.
279
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
320
+ * @param request.allowDuplicates Set to true to allow minting an NFT with a duplicate metadata hash.
321
+ * @param {Object} request.derivData The derivative data to be used for registerDerivative.
322
+ * @param {Array} request.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
323
+ * @param {Array} request.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
324
+ * @param request.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking, default value is Programmable IP License.
325
+ * @param request.derivData.royaltyContext The address of the royalty context to be used for the linking, default value is zero address.
326
+ * @param request.derivData.maxMintingFee The maximum minting fee that the caller is willing to pay. if set to 0 then no limit.
327
+ * @param request.derivData.maxRts The maximum number of royalty tokens that can be distributed to the external royalty policies (max: 100,000,000).
328
+ * @param request.derivData.maxRevenueShare The maximum revenue share percentage allowed for minting the License Tokens. Must be between 0 and 100,000,000 (where 100,000,000 represents 100%).
329
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
280
330
  * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
281
331
  * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
282
332
  * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
@@ -292,11 +342,11 @@ export declare class IPAssetClient {
292
342
  * @param request - The request object that contains all data needed to batch mint and register ip and make derivative.
293
343
  * @param {Array} request.args The array of mint and register IP requests.
294
344
  * @param request.args.spgNftContract The address of the NFT collection.
295
- * @param request.args.derivData The derivative data to be used for registerDerivative.
296
- * @param request.args.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
297
- * @param request.args.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
345
+ * @param {Object} request.args.derivData The derivative data to be used for registerDerivative.
346
+ * @param {Array} request.args.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
347
+ * @param {Array} request.args.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
298
348
  * @param request.args.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking.
299
- * @param request.args.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
349
+ * @param {Object} request.args.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
300
350
  * @param request.args.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
301
351
  * @param request.args.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
302
352
  * @param request.args.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
@@ -312,11 +362,12 @@ export declare class IPAssetClient {
312
362
  * @param request - The request object that contains all data needed to attach license terms.
313
363
  * @param request.spgNftContract The address of the SPGNFT collection.
314
364
  * @param request.recipient The address of the recipient of the minted NFT,default value is your wallet address.
315
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
316
- * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
317
- * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
318
- * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
319
- * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
365
+ * @param request.allowDuplicates Set to true to allow minting an NFT with a duplicate metadata hash.
366
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
367
+ * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
368
+ * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
369
+ * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
370
+ * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
320
371
  * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
321
372
  * @returns A Promise that resolves to a transaction hash, and if encodedTxDataOnly is true, includes encoded transaction data, or if waitForTransaction is true, includes IP ID and Token ID.
322
373
  * @emits IPRegistered (ipId, chainId, tokenContract, tokenId, name, uri, registrationDate)
@@ -326,24 +377,35 @@ export declare class IPAssetClient {
326
377
  * Register Programmable IP License Terms (if unregistered) and attach it to IP.
327
378
  * @param request - The request object that contains all data needed to attach license terms.
328
379
  * @param request.ipId The ID of the IP.
329
- * @param {Array} request.terms The array of license terms to be attached.
330
- * @param request.terms.transferable Indicates whether the license is transferable or not.
331
- * @param request.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
332
- * @param request.terms.mintingFee The fee to be paid when minting a license.
333
- * @param request.terms.expiration The expiration period of the license.
334
- * @param request.terms.commercialUse Indicates whether the work can be used commercially or not.
335
- * @param request.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
336
- * @param request.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
337
- * @param request.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
338
- * @param request.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
339
- * @param request.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
340
- * @param request.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
341
- * @param request.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
342
- * @param request.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
343
- * @param request.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
344
- * @param request.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
345
- * @param request.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
346
- * @param request.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
380
+ * @param {Array} request.licenseTermsData The PIL terms and licensing configuration data to be attached to the IP.
381
+ * @param {Object} request.licenseTermsData.terms The PIL terms to be used for the licensing.
382
+ * @param request.licenseTermsData.terms.transferable Indicates whether the license is transferable or not.
383
+ * @param request.licenseTermsData.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
384
+ * @param request.licenseTermsData.terms.mintingFee The fee to be paid when minting a license.
385
+ * @param request.licenseTermsData.terms.expiration The expiration period of the license.
386
+ * @param request.licenseTermsData.terms.commercialUse Indicates whether the work can be used commercially or not, Commercial use is required to deploy a royalty vault.
387
+ * @param request.licenseTermsData.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
388
+ * @param request.licenseTermsData.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
389
+ * @param request.licenseTermsData.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
390
+ * @param request.licenseTermsData.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
391
+ * @param request.licenseTermsData.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
392
+ * @param request.licenseTermsData.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
393
+ * @param request.licenseTermsData.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
394
+ * @param request.licenseTermsData.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
395
+ * @param request.licenseTermsData.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
396
+ * @param request.licenseTermsData.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
397
+ * @param request.licenseTermsData.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
398
+ * @param request.licenseTermsData.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
399
+ * @param {Object} request.licenseTermsData.licensingConfig The PIL terms and licensing configuration data to attach to the IP.
400
+ * @param request.licenseTermsData.licensingConfig.isSet Whether the configuration is set or not.
401
+ * @param request.licenseTermsData.licensingConfig.mintingFee The minting fee to be paid when minting license tokens.
402
+ * @param request.licenseTermsData.licensingConfig.licensingHook The hook contract address for the licensing module, or address(0) if none
403
+ * @param request.licenseTermsData.licensingConfig.hookData The data to be used by the licensing hook.
404
+ * @param request.licenseTermsData.licensingConfig.commercialRevShare The commercial revenue share percentage.
405
+ * @param request.licenseTermsData.licensingConfig.disabled Whether the licensing is disabled or not.
406
+ * @param request.licenseTermsData.licensingConfig.expectMinimumGroupRewardShare The minimum percentage of the group’s reward share (from 0 to 100%, represented as 100 * 10 ** 6) that can be allocated to the IP when it is added to the group.
407
+ * If the remaining reward share in the group is less than the minimumGroupRewardShare,the IP cannot be added to the group.
408
+ * @param request.licenseTermsData.licensingConfig.expectGroupRewardPool The address of the expected group reward pool. The IP can only be added to a group with this specified reward pool address, or address(0) if the IP does not want to be added to any group.
347
409
  * @param request.deadline [Optional] The deadline for the signature in milliseconds, default is 1000s.
348
410
  * @param request.txOptions [Optional] This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
349
411
  * @returns A Promise that resolves to a transaction hash, and if encodedTxDataOnly is true, includes encoded transaction data, and if waitForTransaction is true, returns an array containing the license terms ID.
@@ -352,14 +414,17 @@ export declare class IPAssetClient {
352
414
  registerPilTermsAndAttach(request: RegisterPilTermsAndAttachRequest): Promise<RegisterPilTermsAndAttachResponse>;
353
415
  /**
354
416
  * Mint an NFT from a collection and register it as a derivative IP using license tokens
417
+ * Requires caller to have the minter role or the SPG NFT to allow public minting. Caller must own the license tokens and have approved DerivativeWorkflows to transfer them.
355
418
  * @param request - The request object that contains all data needed to mint and register ip and make derivative with license tokens.
356
419
  * @param request.spgNftContract The address of the NFT collection.
357
- * @param request.licenseTokenIds The IDs of the license tokens to be burned for linking the IP to parent IPs.
358
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
359
- * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
360
- * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
361
- * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
362
- * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
420
+ * @param {Array} request.licenseTokenIds The IDs of the license tokens to be burned for linking the IP to parent IPs.
421
+ * @param request.allowDuplicates Set to true to allow minting an NFT with a duplicate metadata hash.
422
+ * @param request.maxRts The maximum number of royalty tokens that can be distributed to the external royalty policies (max: 100,000,000).
423
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
424
+ * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
425
+ * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
426
+ * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
427
+ * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
363
428
  * @param request.recipient - [Optional] The address to receive the minted NFT,default value is your wallet address.
364
429
  * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
365
430
  * @returns A Promise that resolves to a transaction hash, and if encodedTxDataOnly is true, includes encoded transaction data, or if waitForTransaction is true, includes IP ID and Token ID.
@@ -370,13 +435,13 @@ export declare class IPAssetClient {
370
435
  * Register the given NFT as a derivative IP using license tokens.
371
436
  * @param request - The request object that contains all data needed to register ip and make derivative with license tokens.
372
437
  * @param request.nftContract The address of the NFT collection.
373
- * @param request.licenseTokenIds The IDs of the license tokens to be burned for linking the IP to parent IPs.
438
+ * @param {Array} request.licenseTokenIds The IDs of the license tokens to be burned for linking the IP to parent IPs.
374
439
  * @param request.tokenId The ID of the NFT.
375
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
376
- * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
377
- * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
378
- * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
379
- * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
440
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
441
+ * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
442
+ * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
443
+ * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
444
+ * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
380
445
  * @param request.deadline [Optional] The deadline for the signature in seconds, default is 1000s.
381
446
  * @param request.txOptions [Optional] This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property.
382
447
  * @returns A Promise that resolves to a transaction hash, and if encodedTxDataOnly is true, includes encoded transaction data, or if waitForTransaction is true, includes IP ID, Token ID.
@@ -388,31 +453,42 @@ export declare class IPAssetClient {
388
453
  * @param request - The request object that contains all data needed to register ip and attach license terms and distribute royalty tokens.
389
454
  * @param request.nftContract The address of the NFT collection.
390
455
  * @param request.tokenId The ID of the NFT.
391
- * @param {Array} request.terms The array of license terms to be attached.
392
- * @param request.terms.transferable Indicates whether the license is transferable or not.
393
- * @param request.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
394
- * @param request.terms.mintingFee The fee to be paid when minting a license.
395
- * @param request.terms.expiration The expiration period of the license.
396
- * @param request.terms.commercialUse Indicates whether the work can be used commercially or not, Commercial use is required to deploy a royalty vault.
397
- * @param request.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
398
- * @param request.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
399
- * @param request.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
400
- * @param request.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
401
- * @param request.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
402
- * @param request.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
403
- * @param request.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
404
- * @param request.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
405
- * @param request.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
406
- * @param request.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
407
- * @param request.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
408
- * @param request.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
409
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
410
- * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
411
- * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
412
- * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
413
- * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
456
+ * @param {Array} request.licenseTermsData The PIL terms and licensing configuration data to be attached to the IP.
457
+ * @param {Object} request.licenseTermsData.terms The PIL terms to be used for the licensing.
458
+ * @param request.licenseTermsData.terms.transferable Indicates whether the license is transferable or not.
459
+ * @param request.licenseTermsData.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
460
+ * @param request.licenseTermsData.terms.mintingFee The fee to be paid when minting a license.
461
+ * @param request.licenseTermsData.terms.expiration The expiration period of the license.
462
+ * @param request.licenseTermsData.terms.commercialUse Indicates whether the work can be used commercially or not, Commercial use is required to deploy a royalty vault.
463
+ * @param request.licenseTermsData.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
464
+ * @param request.licenseTermsData.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
465
+ * @param request.licenseTermsData.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
466
+ * @param request.licenseTermsData.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
467
+ * @param request.licenseTermsData.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
468
+ * @param request.licenseTermsData.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
469
+ * @param request.licenseTermsData.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
470
+ * @param request.licenseTermsData.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
471
+ * @param request.licenseTermsData.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
472
+ * @param request.licenseTermsData.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
473
+ * @param request.licenseTermsData.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
474
+ * @param request.licenseTermsData.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
475
+ * @param {Object} request.licenseTermsData.licensingConfig The PIL terms and licensing configuration data to attach to the IP.
476
+ * @param request.licenseTermsData.licensingConfig.isSet Whether the configuration is set or not.
477
+ * @param request.licenseTermsData.licensingConfig.mintingFee The minting fee to be paid when minting license tokens.
478
+ * @param request.licenseTermsData.licensingConfig.licensingHook The hook contract address for the licensing module, or address(0) if none
479
+ * @param request.licenseTermsData.licensingConfig.hookData The data to be used by the licensing hook.
480
+ * @param request.licenseTermsData.licensingConfig.commercialRevShare The commercial revenue share percentage.
481
+ * @param request.licenseTermsData.licensingConfig.disabled Whether the licensing is disabled or not.
482
+ * @param request.licenseTermsData.licensingConfig.expectMinimumGroupRewardShare The minimum percentage of the group’s reward share (from 0 to 100%, represented as 100 * 10 ** 6) that can be allocated to the IP when it is added to the group.
483
+ * If the remaining reward share in the group is less than the minimumGroupRewardShare,the IP cannot be added to the group.
484
+ * @param request.licenseTermsData.licensingConfig.expectGroupRewardPool The address of the expected group reward pool. The IP can only be added to a group with this specified reward pool address, or address(0) if the IP does not want to be added to any group.
485
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
486
+ * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
487
+ * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
488
+ * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
489
+ * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
414
490
  * @param {Array} request.royaltyShares Authors of the IP and their shares of the royalty tokens.
415
- * @param request.royaltyShares.author The address of the author.
491
+ * @param request.royaltyShares.recipient The address of the recipient.
416
492
  * @param request.royaltyShares.percentage The percentage of the royalty share, 10 represents 10%.
417
493
  * @param request.deadline [Optional] The deadline for the signature in seconds, default is 1000s.
418
494
  * @param request.txOptions [Optional] This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property, without encodedTxData option.
@@ -427,19 +503,22 @@ export declare class IPAssetClient {
427
503
  * @param request - The request object that contains all data needed to register derivative IP and distribute royalty tokens.
428
504
  * @param request.nftContract The address of the NFT collection.
429
505
  * @param request.tokenId The ID of the NFT.
430
- * @param request.derivData The derivative data to be used for registerDerivative.
431
- * @param request.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
432
- * @param request.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking.
433
- * @param request.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
434
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
506
+ * @param {Object} request.derivData The derivative data to be used for registerDerivative.
507
+ * @param {Array} request.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
508
+ * @param request.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking, default value is Programmable IP License.
509
+ * @param {Array} request.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
510
+ * @param request.derivData.maxMintingFee The maximum minting fee that the caller is willing to pay. if set to 0 then no limit.
511
+ * @param request.derivData.maxRts The maximum number of royalty tokens that can be distributed to the external royalty policies (max: 100,000,000).
512
+ * @param request.derivData.maxRevenueShare The maximum revenue share percentage allowed for minting the License Tokens. Must be between 0 and 100,000,000 (where 100,000,000 represents 100%).
513
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
435
514
  * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
436
515
  * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
437
516
  * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
438
517
  * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
439
- * @param request.deadline [Optional] The deadline for the signature in seconds, default is 1000s.
440
518
  * @param {Array} request.royaltyShares Authors of the IP and their shares of the royalty tokens.
441
- * @param request.royaltyShares.author The address of the author.
519
+ * @param request.royaltyShares.recipient The address of the recipient.
442
520
  * @param request.royaltyShares.percentage The percentage of the royalty share, 10 represents 10%.
521
+ * @param request.deadline [Optional] The deadline for the signature in seconds, default is 1000s.
443
522
  * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property, without encodedTxData option.
444
523
  * @returns A Promise that resolves to a transaction hashes, IP ID and IP royalty vault, token ID.
445
524
  * @emits IPRegistered (ipId, chainId, tokenContract, tokenId, name, uri, registrationDate)
@@ -447,35 +526,46 @@ export declare class IPAssetClient {
447
526
  */
448
527
  registerDerivativeIpAndAttachLicenseTermsAndDistributeRoyaltyTokens(request: RegisterDerivativeAndAttachLicenseTermsAndDistributeRoyaltyTokensRequest): Promise<RegisterDerivativeAndAttachLicenseTermsAndDistributeRoyaltyTokensResponse>;
449
528
  /**
450
- * Mint an NFT and register the IP, attach PIL terms, and distribute royalty tokens. In order to successfully distribute royalty tokens, First the license terms attached to the IP must be
451
- * a commercial license.
529
+ * Mint an NFT and register the IP, attach PIL terms, and distribute royalty tokens.
452
530
  * @param request - The request object that contains all data needed to mint an NFT and register the IP, attach PIL terms, and distribute royalty tokens.
453
531
  * @param request.spgNftContract The address of the SPG NFT contract.
454
- * @param {Array} request.terms The array of license terms to be attached.
455
- * @param request.terms.transferable Indicates whether the license is transferable or not.
456
- * @param request.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
457
- * @param request.terms.mintingFee The fee to be paid when minting a license.
458
- * @param request.terms.expiration The expiration period of the license.
459
- * @param request.terms.commercialUse Indicates whether the work can be used commercially or not, Commercial use is required to deploy a royalty vault.
460
- * @param request.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
461
- * @param request.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
462
- * @param request.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
463
- * @param request.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
464
- * @param request.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
465
- * @param request.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
466
- * @param request.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
467
- * @param request.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
468
- * @param request.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
469
- * @param request.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
470
- * @param request.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
471
- * @param request.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
472
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
473
- * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
474
- * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
475
- * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
476
- * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
532
+ * @param request.allowDuplicates Set to true to allow minting an NFT with a duplicate metadata hash.
533
+ * @param {Array} request.licenseTermsData The PIL terms and licensing configuration data to attach to the IP.
534
+ * @param {Object} request.licenseTermsData.terms The PIL terms to be attached.
535
+ * @param request.licenseTermsData.terms.transferable Indicates whether the license is transferable or not.
536
+ * @param request.licenseTermsData.terms.royaltyPolicy The address of the royalty policy contract which required to StoryProtocol in advance.
537
+ * @param request.licenseTermsData.terms.mintingFee The fee to be paid when minting a license.
538
+ * @param request.licenseTermsData.terms.expiration The expiration period of the license.
539
+ * @param request.licenseTermsData.terms.commercialUse Indicates whether the work can be used commercially or not, Commercial use is required to deploy a royalty vault.
540
+ * @param request.licenseTermsData.terms.commercialAttribution Whether attribution is required when reproducing the work commercially or not.
541
+ * @param request.licenseTermsData.terms.commercializerChecker Commercializers that are allowed to commercially exploit the work. If zero address, then no restrictions is enforced.
542
+ * @param request.licenseTermsData.terms.commercializerCheckerData The data to be passed to the commercializer checker contract.
543
+ * @param request.licenseTermsData.terms.commercialRevShare Percentage of revenue that must be shared with the licensor.
544
+ * @param request.licenseTermsData.terms.commercialRevCeiling The maximum revenue that can be generated from the commercial use of the work.
545
+ * @param request.licenseTermsData.terms.derivativesAllowed Indicates whether the licensee can create derivatives of his work or not.
546
+ * @param request.licenseTermsData.terms.derivativesAttribution Indicates whether attribution is required for derivatives of the work or not.
547
+ * @param request.licenseTermsData.terms.derivativesApproval Indicates whether the licensor must approve derivatives of the work before they can be linked to the licensor IP ID or not.
548
+ * @param request.licenseTermsData.terms.derivativesReciprocal Indicates whether the licensee must license derivatives of the work under the same terms or not.
549
+ * @param request.licenseTermsData.terms.derivativeRevCeiling The maximum revenue that can be generated from the derivative use of the work.
550
+ * @param request.licenseTermsData.terms.currency The ERC20 token to be used to pay the minting fee. the token must be registered in story protocol.
551
+ * @param request.licenseTermsData.terms.uri The URI of the license terms, which can be used to fetch the offchain license terms.
552
+ * @param {Object} request.licenseTermsData.licensingConfig The PIL terms and licensing configuration data to attach to the IP.
553
+ * @param request.licenseTermsData.licensingConfig.isSet Whether the configuration is set or not.
554
+ * @param request.licenseTermsData.licensingConfig.mintingFee The minting fee to be paid when minting license tokens.
555
+ * @param request.licenseTermsData.licensingConfig.licensingHook The hook contract address for the licensing module, or address(0) if none
556
+ * @param request.licenseTermsData.licensingConfig.hookData The data to be used by the licensing hook.
557
+ * @param request.licenseTermsData.licensingConfig.commercialRevShare The commercial revenue share percentage.
558
+ * @param request.licenseTermsData.licensingConfig.disabled Whether the licensing is disabled or not.
559
+ * @param request.licenseTermsData.licensingConfig.expectMinimumGroupRewardShare The minimum percentage of the group’s reward share (from 0 to 100%, represented as 100 * 10 ** 6) that can be allocated to the IP when it is added to the group.
560
+ * If the remaining reward share in the group is less than the minimumGroupRewardShare,the IP cannot be added to the group.
561
+ * @param request.licenseTermsData.licensingConfig.expectGroupRewardPool The address of the expected group reward pool. The IP can only be added to a group with this specified reward pool address, or address(0) if the IP does not want to be added to any group.
562
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
563
+ * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
564
+ * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
565
+ * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
566
+ * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
477
567
  * @param {Array} request.royaltyShares Authors of the IP and their shares of the royalty tokens.
478
- * @param request.royaltyShares.author The address of the author.
568
+ * @param request.royaltyShares.recipient The address of the recipient.
479
569
  * @param request.royaltyShares.percentage The percentage of the royalty share, 10 represents 10%.
480
570
  * @param request.recipient - [Optional] The address to receive the minted NFT,default value is your wallet address.
481
571
  * @param request.txOptions [Optional] This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property, without encodedTxData option.
@@ -485,24 +575,27 @@ export declare class IPAssetClient {
485
575
  */
486
576
  mintAndRegisterIpAndAttachPilTermsAndDistributeRoyaltyTokens(request: MintAndRegisterIpAndAttachPILTermsAndDistributeRoyaltyTokensRequest): Promise<MintAndRegisterIpAndAttachPILTermsAndDistributeRoyaltyTokensResponse>;
487
577
  /**
488
- * Mint an NFT and register the IP, make a derivative, and distribute royalty tokens. In order to successfully distribute royalty tokens, the license terms attached to the IP must be
489
- * a commercial license.
578
+ * Mint an NFT and register the IP, make a derivative, and distribute royalty tokens.
490
579
  * @param request - The request object that contains all data needed to mint an NFT and register the IP, make a derivative, and distribute royalty tokens.
491
580
  * @param request.spgNftContract The address of the SPG NFT collection.
492
581
  * @param request.derivData The derivative data to be used for registerDerivative.
493
- * @param request.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
494
- * @param request.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking.
495
- * @param request.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
496
- * @param request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
582
+ * @param {Array} request.derivData.parentIpIds The IDs of the parent IPs to link the registered derivative IP.
583
+ * @param request.derivData.licenseTemplate [Optional] The address of the license template to be used for the linking, default value is Programmable IP License.
584
+ * @param {Array} request.derivData.licenseTermsIds The IDs of the license terms to be used for the linking.
585
+ * @param request.derivData.maxMintingFee The maximum minting fee that the caller is willing to pay. if set to 0 then no limit.
586
+ * @param request.derivData.maxRts The maximum number of royalty tokens that can be distributed to the external royalty policies (max: 100,000,000).
587
+ * @param request.derivData.maxRevenueShare The maximum revenue share percentage allowed for minting the License Tokens. Must be between 0 and 100,000,000 (where 100,000,000 represents 100%).
588
+ * @param {Object} request.ipMetadata - [Optional] The desired metadata for the newly minted NFT and newly registered IP.
497
589
  * @param request.ipMetadata.ipMetadataURI [Optional] The URI of the metadata for the IP.
498
590
  * @param request.ipMetadata.ipMetadataHash [Optional] The hash of the metadata for the IP.
499
591
  * @param request.ipMetadata.nftMetadataURI [Optional] The URI of the metadata for the NFT.
500
592
  * @param request.ipMetadata.nftMetadataHash [Optional] The hash of the metadata for the IP NFT.
501
593
  * @param {Array} request.royaltyShares Authors of the IP and their shares of the royalty tokens.
502
- * @param request.royaltyShares.author The address of the author.
594
+ * @param request.royaltyShares.recipient The address of the recipient.
503
595
  * @param request.royaltyShares.percentage The percentage of the royalty share, 10 represents 10%.
504
- * @param request.recipient - [Optional] The address to receive the minted NFT,default value is your wallet address.
505
- * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property, without encodedTxData option..
596
+ * @param request.allowDuplicates Set to true to allow minting an NFT with a duplicate metadata hash.
597
+ * @param request.recipient - [Optional] The address to receive the minted NFT,default value is your wallet address.
598
+ * @param request.txOptions - [Optional] transaction. This extends `WaitForTransactionReceiptParameters` from the Viem library, excluding the `hash` property, without encodedTxData option..
506
599
  * @returns A Promise that resolves to a transaction hash, IP ID and token ID.
507
600
  * @emits IPRegistered (ipId, chainId, tokenContract, tokenId, name, uri, registrationDate)
508
601
  */
@@ -514,5 +607,10 @@ export declare class IPAssetClient {
514
607
  private getLicenseTermsId;
515
608
  private validateLicenseTokenIds;
516
609
  private getIpIdAndTokenIdsFromEvent;
610
+ private getCalculatedDeadline;
611
+ private validateMaxRts;
612
+ private validateDerivativeData;
613
+ private validateLicenseTermsData;
614
+ private commonRegistrationHandler;
517
615
  }
518
616
  //# sourceMappingURL=ipAsset.d.ts.map