Skip to content

Conversation

@gnarvaja
Copy link
Contributor

Consolidate the tested variants into a single one, for simplicity.

The AccessManagedProxy contract stores the accessManager and the skipped methods in the storage, so it can be changed. The methods for changing these values are not included in the proxy; they have to be implemented by implementation contracts.

Also included:

  • Immutable variants and code generation removed.
  • Logic related to modifying and accessing the storage of the AccessManagedProxy moved to AMPUtils (similar to ERC1967Utils)
  • Changes for compatibility with OZ's IAccessManaged (method authority() and events and custom errors with the same names)
  • Validation on the access manager (checks it has code).
  • Added IAccessManagedProxy
  • Upgrade Solidity to 0.8.30
  • Apache 2.0 license (to match the LICENSE file and the same license used by Ensuro).

Work in progress, first step was checking the new variant doesn't
produce any impact on gas.

Also, I updated solidity compiler to 0.8.30.
1. Adds IAccessManagedProxy with definitions of events emitted
2. Changes to AccessManagedProxy to match OZ's IAccessManaged as much as
   possible.
3. Examples in DummyImplementation of methods that changed the
   access_manager or the passThruMethods.
4. Additional method and test, showing custom selector checks.
@gnarvaja gnarvaja merged commit 4b8d64e into main Dec 22, 2025
2 checks passed
@gnarvaja gnarvaja deleted the consolidate-variant-mutable branch December 22, 2025 16:05
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.

4 participants