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

Use Diamond Storage #267

Closed
mudgen opened this issue May 6, 2022 · 3 comments
Closed

Use Diamond Storage #267

mudgen opened this issue May 6, 2022 · 3 comments

Comments

@mudgen
Copy link

mudgen commented May 6, 2022

It would be useful if the ERC721A implementation was changed to use diamond storage.

Diamond storage is a contract storage technique that makes organizing and upgrading data in proxy contracts and diamonds possible.

If the ERC721A implementation used diamond storage then it could be used in diamonds and other proxy contracts without change.

@mudgen mudgen changed the title Implement Diamond Storage Use Diamond Storage May 6, 2022
@cliffhall
Copy link

cliffhall commented May 6, 2022

This is true, and one of my biggest complaints about most of the 721 implementations, they cannot be used with a diamond if they use the common storage approach. Even OZ's upgradeable suite does this. :(

Why would anyone want to build their contract so it would be diamond compatible if it isn't intended specifically to be used that way? As what we do with Web3 evolves, upgradeability and larger contracts will be the norm, and currently diamond is the only upgradeable proxy standard that supports near infinite expansion of contract size.

@Vectorized
Copy link
Collaborator

@mudgen
Copy link
Author

mudgen commented May 6, 2022

OpenZeppelin/openzeppelin-contracts#2964

Yes, OpenZeppelin plans to adopt diamond storage, but we don't know when that will be:

From frangio: Yes, we want to adopt diamond storage for the next major release, but we don't have an estimated release date. It will most likely happen whenever Solidity 0.9 is released, and as far as we know there is no date for that either.

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

No branches or pull requests

3 participants