Smart Contract Reference Documentation¶
Overview¶
The Gemforce platform is built on a sophisticated smart contract architecture using the Diamond Standard (EIP-2535) for upgradeable contracts. This documentation provides comprehensive reference material for all smart contracts in the system.
Architecture Overview¶
The Gemforce smart contract system consists of:
- Diamond Contracts: Core proxy contracts implementing EIP-2535
- Facets: Modular contract implementations providing specific functionality
- Libraries: Shared utility code for common operations
- Interfaces: Standard interfaces for contract interaction
- Tokens: ERC20, ERC721, and ERC1155 token implementations
- Utilities: Helper contracts for access control and security
Contract Categories¶
Core Diamond System¶
- Diamond - Main diamond proxy contract
- DiamondFactory - Factory for diamond deployment
- IdentityFactory - Identity contract factory
Business Logic Facets¶
- CarbonCreditFacet - Carbon credit management
- MarketplaceFacet - NFT marketplace operations
- MultiSaleFacet - Multi-token sales
- TradeDealManagementFacet - Trade deal lifecycle
- TradeDealOperationsFacet - Trade deal operations
- IdentityRegistryFacet - Identity management
- TrustedIssuersRegistryFacet - Trusted issuer management
Token Management Facets¶
- GemforceMinterFacet - Token minting functionality
- CollateralTokenFactoryFacet - Collateral token creation
- FeeDistributorFacet - Fee distribution logic
Utility Facets¶
- SVGTemplatesFacet - Dynamic SVG generation
- DiamondCutFacet - Diamond upgrade functionality
- DiamondLoupeFacet - Diamond introspection
- OwnershipFacet - Contract ownership management
Core Interfaces¶
- IDiamond - Diamond standard interface
- IMarketplace - Marketplace interface
- ITradeDeal - Trade deal interface
- ICarbonCredit - Carbon credit interface
- IIdentity - Identity interface
- IVariablePrice - Variable Price interface (Added based on mkdocs.yml warning)
Libraries¶
- DiamondLib - Diamond pattern utilities
- CarbonCreditLib - Carbon credit utilities
- TradeDealLib - Trade deal utilities
- MultiSaleLib - Multi-sale utilities
Getting Started¶
For Developers¶
- Start with the Diamond documentation to understand the core architecture
- Review the Interfaces to understand contract APIs
- Examine specific Facets for functionality you need to integrate
- Check Libraries for utility functions
For Integrators¶
- Review the Integrator's Guide
- Examine relevant interface documentation
- Check deployment procedures in Deployment Guides: Multi-Network Deployment
- Review security considerations in each contract's documentation
Security Considerations¶
All contracts implement: - Reentrancy protection using OpenZeppelin's ReentrancyGuard - Access control through role-based permissions - Input validation and sanitization - Event logging for transparency and monitoring
Gas Optimization¶
The contracts are optimized for gas efficiency through: - Diamond pattern for reduced deployment costs - Packed structs for storage optimization - Batch operations where applicable - Efficient algorithms in libraries
Upgrade Patterns¶
The Diamond Standard enables: - Modular upgrades through facet replacement - Backward compatibility maintenance - Gradual feature rollouts - Emergency upgrade procedures
For detailed information about each contract, click on the links above or navigate through the documentation sections.