ModularCoreUpgradeable (#86)
* Update dependencies
* core benchmark
* Simplifies core and update coding style
* Benchmark core on function fallback overhead
* SupportedCallbackFunctions, simplifies installExtension
* Fix merge conflicts
* Update deps
* Updated extension contracts in /extension (#91)
* .vscode
* replace /hooks with /extension
* rename files
* reorg files
* Simplify and make uniform: LazyMint.sol -> BatchMetadata.sol
* Comments + simplify language
---------
Co-authored-by: Jake Loo <[email protected]>
* rename order, mode. support required mode
* update deps
* Remove CallbackOrder. Implement callback returns data
* Optimize installExtension struct packing
* Remove unused field in struct. Memory safe assembly
* Rename core, extension
* Update solady
* Move directory
* includes ERC165 interfaceId
* Implement ERC165 on core and extension check
* Init ExtensionProxy
* Sender in onInstall/Uninstall. ExtensionProxy
* registerInstallationCallback on Extension
* Latest updates to ModularCore (#93)
* Rename IModular -> IExtensionConfig
* Rename IModularExtensionCallback -> IInstallationCallback
* ModularCore inherits OwnableRoles; replace ExtensionFunction permissioned -> permissionBits
* Move InstalledExtensionFunction to ModularContract implementation
* rename extensionABI -> extensionFunctions
* remove unused isAuthorizedToCallExtensionFunctions
* Replace unused _isAuthorized checks with native roles
* only deploy extension proxy if undeployed
* calculate salt based on address(this) instead of msg.sender
* re-arrange imports
* Only use EnumerableSetLib for EnumerableSetLib.AddressSet
* Cleanup styles and add comments to ModularCore
* add comments to _installExtension
* Only install extension with all supported callback functions
* Delete ExtensionProxy and its usage
* add ExtensionProxyFactory
* Update token contracts getSupportedCallbackFunctions selectors
* Add ModularCoreTest
* Verify extension bytecodehash on every call to extension
* Cleanup ModularCore errors
* Fix initializeOwner
* Remove bytecode check in fallback
* Add Extension name and version
* ModularCore is naive implementation; ModularCoreUpgradeable handles upgradeability
* Rename extensionName -> extensionID
* Full ModularCoreUpgradeable implementation
* Remove unused error
* ModularCoreUpgradeable: add test and fix bugs
* Update interface comments
* Rename extensionFunctions to fallbackFunctions
* rename extensionFunction to fallbackFunction cont.
* Create and use CallbackFunction type which includes CallType
* Add top level readme
* Add readme assets
* Update sub header
* Update headings
* Add design doc inside /core readme
* Add installation and usage instructions
* Add comments to IExtensionCOnfig
* Add comments to IInstallationCallback
* Update interface comments
* Acceot factory address in constructor
* Delete onRoyaltyInfoCallback
* Remove onRoyalty callback from token Cores
* Update extensionProxySaltSeed generation
* fix github actions
* fix github test aciton + forge fmt in /extension
---------
Co-authored-by: nkrishang <[email protected]>
Co-authored-by: Krishang <[email protected]>