fix: use interface over imported registry in deployments helper #475
+17
−14
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.
Summary
Alters
TablelandDeployments
to use a wrapper/interface around theITablelandTables
andIERC721AUpgradeable
contracts, enabling the same functionality while resolving potential dependency issues. Originally noted here and here (happened to at least two developers).Details
Currently, the
TablelandDeployments
contract importsTablelandTables
, which is an OpenZeppelinOwnableUpgradeable
contract. This can cause issues because, for example, Remix installs dependencies but doesn't resolve peer-dependencies by grabbing the version the first library depends on—it just resolves to the latest version. With OZ's v5 release, theOwnableUpgradeable
contract has breaking changes, as do some others likePausableUpgradeable
that now exist in different package path.Remix is still a highly used entrypoint for developers testing out smart contracts, so making things fully compatible here makes sense. Alternatively, we could change
TablelandTables
to use OZ v5 contracts, but theTablelandDeployments
change seems easier.How it was tested
Checklist: