Skip to content

v1.4.3

Choose a tag to compare

@yingyangxu2026 yingyangxu2026 released this 31 Jan 08:21
· 9 commits to main since this release
671f6ec

TypeScript SDK v1.4.3 Release Notes

This patch release adds a batch derivative registration API with automatic fee handling, support for pre-registered license terms via licenseTermsId, fixes for for batchMintAndRegisterIpAssetWithPilTerms and setMaxLicenseTokens, and test and dependency cleanup.

Key Changes

Batch Derivative Registration (Automatic Fee Handling: ERC20 + WIP)(#675)

  • Introduced ipAsset.batchRegisterDerivatives (new, recommended): batches derivative registrations and automatically handles fees for both ERC20 and WIP tokens (paid from the wallet).
  • Deprecated ipAsset.batchRegisterDerivative (old API): legacy batching method kept for backward compatibility; no automatic fee handling and will be removed in a future release.

Usage Example:

await client.ipAsset.batchRegisterDerivatives({
  requests: [
    {
      childIpId: childIpId1,
      parentIpIds: [parentIpId1, parentIpId2],
      licenseTermsIds: [licenseTermsId1, licenseTermsId2],
    },
    {
      childIpId: childIpId2,
      parentIpIds: [parentIpIdForWIP],
      licenseTermsIds: [licenseTermsIdFor100WIP],
    },
  ],
});

Support Pre-Registered License Terms via licenseTermsId

Enables workflows to reference existing license terms IDs (instead of re-registering the same PIL terms repeatedly)(#677).

  • LicenseTermsDataInput now accepts licenseTermsId in addition to terms across the SDK.
  • This means all APIs that previously took “terms” can now take a pre-registered licenseTermsId to attach existing terms.
  • If both licenseTermsId and terms are provided, terms takes priority and new terms are registered.
await client.ipAsset.registerIpAsset({
  nft: { type: "mint", spgNftContract },
  licenseTermsData: [
    {
      terms: PILFlavor.commercialRemix({
        defaultMintingFee: 100n,
        commercialRevShare: 10,
        currency: WIP_TOKEN_ADDRESS,
      }),
    },
    {
      licenseTermsId: licenseTermsId,
    },
  ],
  royaltyShares: [
    {
      recipient,
      percentage: 10,
    },
  ],
});

Fixes

  • Fixed ipAsset.batchMintAndRegisterIpAssetWithPilTerms returning incorrect licenseTermsIds by applying the missing getRevenueShare transformation for commercialRevShare when resolving license terms IDs. (#677)
  • Fixed commercialRevShare conversion in the setMaxLicenseTokens(#690)

Other Changes

  • Removed redundant error-case integration tests to keep the integration suite focused and reduce flakiness. (#679)
  • Removed unused tagging types. (#678)
  • Standardized formatting in generated ABI files. (#676)
  • Removes axios since the SDK no longer needs to call external APIs. (#681)