This repository has been archived by the owner on Apr 30, 2024. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds canonical metadata providers and makes the existing IP resolver more flexible.
The metadata provider is used for storing canonical metadata prescribed by Story Protocol, which currently includes registrant, hash, registration date, url, and name. The idea behind this PR is to decouple "rendering" from the actual metadata storage itself, and provide flexibility for allowing Story Protocol to add new fields to the canonical metadata attributes shared across all IP in the future.
On the other hand, the IP resolver is used for IP creators to provide additional flexibility in how they want their IP records to be resolved. Creators may choose to make this a custom contract, or resolve to custom key-value string records. You could imagine Disney creates a canonical DisneyResolver whose key-value pairs represent traits used across their animated series.
As such, when a registration happens, which must be done by the registration module, it will both set a metadata provider (used for Story Protocol canonical metadata storage), and an IP resolver (which by default will be set to the Story Protocol canonical IP resolver, but other periphery contracts may choose to change this to something else).
What this PR does not yet cover: