Skip to content

Merge dev changes to main#27

Closed
dadadave80 wants to merge 12 commits into
mainfrom
dev
Closed

Merge dev changes to main#27
dadadave80 wants to merge 12 commits into
mainfrom
dev

Conversation

@dadadave80

Copy link
Copy Markdown
Owner

This PR merges the latest development changes to main branch, including:

  • ERC165 interface support implementation
  • DiamondLib and OwnableLib interface registration functions
  • Initializer contracts for interface registration
  • Updated deployment and tests
  • Developer guide, glossary, and specification documents
  • SVG banner migration and documentation improvements
  • Diamond initialization with owner support

- Add ERC165Storage struct for managing interface support mappings
- Implement registerInterface() to mark ERC165 interface as supported
- Fix supportsInterface() to correctly compute storage keys for interface lookups
- Use proper storage slot computation: keccak256(abi.encode(interfaceId, ERC165_STORAGE_LOCATION))
- Add ERC165 interface constants to DiamondLib for IDiamondCut and IDiamondLoupe
- Implement registerInterface() in DiamondLib to register Diamond-specific interfaces
- Implement registerInterface() in OwnableLib to register ERC173 (Ownership) interface
- Update constants to use proper ERC7201 storage location computation
- Create DiamondInit to register IDiamondCut and IDiamondLoupe interfaces
- Create ERC165Init to register ERC165 interface support
- Update OwnableInit to use init() signature (calls registerInterface via OwnableLib)
- Maintain consistency across all initializers for interface registration
- Update DeployDiamond to use MultiInit with DiamondInit, ERC165Init, and OwnableInit
- Ensure all required interfaces are registered during diamond initialization
- Update InitializableTester to deploy all initializers and test interface registration
- Fix testMultiInitSetsOwnerAndInterfaces to properly verify all interface support
… warning

- Add professional SVG banner showcasing Diamond architecture
  * Central diamond with facets and modular boxes
  * Blue/purple gradient color scheme with glow effects
  * Responsive design (max 800px width)
  * Decorative facet patterns on sides

- Add prominent audit warning notice
  * Clear WIP status and security audit disclaimer
  * Production warning with expectations
  * Links to security documentation

- Restructure documentation organization
  * Add documentation table with links to:
    - SPECIFICATION.md (architecture & design)
    - DEVELOPER_GUIDE.md (practical examples)
    - GLOSSARY.md (terminology reference)
    - SECURITY.md (security policies)
    - CONTRIBUTING.md (contribution guidelines)

- Expand project overview section
  * Clarify Diamond pattern concepts
  * Improve feature descriptions
  * Better organize quick start steps

- Enhance project structure documentation
  * Document all source files and directories
  * Clarify facet, library, and interface organization
  * Expand test structure documentation

- Add learning resources section
  * Guide different user types (beginners, developers, architects)
  * Link to external resources and standards
  * Call out important documentation sections

Overall: Transform README from basic overview to comprehensive
project hub with professional branding and clear navigation
- Move banner SVG from inline README.md to dedicated
.github/assets/banner.svg file
- Update README.md to reference the SVG asset with Markdown image syntax
- Improves maintainability and keeps repository markup clean
@dadadave80 dadadave80 closed this Apr 29, 2026
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.

1 participant