Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update royalty.test.ts #372

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

Aleksejs0585
Copy link

Here is a refactored version of the code. Repeated logic has been extracted into utility functions to reduce redundancy and improve readability.

This PR introduces a comprehensive test suite for the RoyaltyModule and related licensing and revenue-sharing mechanisms. The tests cover multiple scenarios, including attaching licenses, registering derivatives, paying royalties, transferring revenues to vaults, and validating claimable revenues.

Key Additions:

Setup and Initialization:

Fetching signers.
Registering license terms for royalty policies (LAP and LRP).
Establishing connections for licensing modules, royalty modules, and royalty policies for multiple users.
Test Scenarios:

License Attachment and Derivative Registration:
Attaching licenses (e.g., Commercial Remix License) to IPs.
Registering derivative IPs under existing parent IPs using various royalty policies.
Royalty Payments:
Executing royalty payments on behalf of another entity.
Verifying the transaction hashes for successful executions.
Revenue Transfers and Vault Integration:
Transferring revenues between derivatives and parent IPs to respective vaults.
Fetching vault addresses and ensuring accurate revenue flows.
Revenue Claims:
Checking claimable revenue tokens.
Executing revenue claims for specific IPs and validating the results.
Utility Methods for Reusability:

setupRoyaltyModules: Configures the royalty and licensing modules for all signers.
registerLicenseTerms: Handles license term registration for the provided policy.
attachLicense, registerDerivative, payRoyalty, transferToVault: Modular helper functions for repetitive operations.
Testing:
All tests are structured to ensure proper execution and include comprehensive logging for verification. Assertions are included to confirm expected outcomes, including:

Transaction hash validations.
Revenue calculations for multiple IPs based on predefined formulas.
Claimable revenue validations using BigInt assertions.
Technical Details:

Mock tokens (MockERC20) are used for payments.
License terms include parameters such as commercialRevShare, defaultMintingFee, and currency settings.
Royalty policies (LAP and LRP) dictate the revenue-sharing behavior between derivatives and parent IPs.
Impact:
These tests ensure the robustness and accuracy of the RoyaltyModule and its integration with licensing systems. They validate the end-to-end functionality, from license registration to revenue claims, enabling confidence in future deployments.

Related Issues:

(Link to related issues if applicable)
Checklist:

Code adheres to the project's style guidelines.
All new and existing tests pass locally.
Documentation has been updated for newly introduced features.

Here is a refactored  version of the code. Repeated logic has been extracted into utility functions to reduce redundancy and improve readability.
refactored code seems more readable
Here a shorter and more readable version of the current code
@kingster-will
Copy link

@jacqueline-57b Could please review this PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants