9. Motivación
• Una address, infinitas funcionalidades
• Tamaño máximo de un smart contract 24KB
• Forma de organizar el código y los datos
• Una nueva forma de ofrecer actualización
20. Diamond Storage
• Dimond Storage
• Posición especifica de memoria
• App Storage
• Se comparte un estado entre todos los contratos
• Se almacena en la posición 0
21.
22.
23.
24.
25.
26. Tipos de Diadmond
• Upgradeable Diamond
• Finished Diamond
• Single Cut Diamond
27. Por qué usarlo?
• Reutilización de facets
• Actualización modular
• Sistema de permisos modulares
• Se evita el tamaño máximo de un contrato
28. Por qué NO usarlo?
• Mayor complejidad
• "Difícil" de mantener
• No soportado por Etherscan
30. Recursos
• EIP-2535: Diamonds, Multi-Facet Proxy (ethereum.org)
• AppStorage Pattern for State Variables in Solidity - DEV Community
• How Diamond Storage Works - DEV Community
• How Diamond Storage Works - DEV Community 👩💻👨💻
(openzeppelin.com)
• mudgen/diamond: Information about three diamond reference
implementations. (github.com)
• mudgen/diamond: Information about three diamond reference
implementations. (louper.dev)