Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade: Multi-Enforcer Support #29

Open
kamescg opened this issue Nov 25, 2024 · 0 comments
Open

Upgrade: Multi-Enforcer Support #29

kamescg opened this issue Nov 25, 2024 · 0 comments

Comments

@kamescg
Copy link
Contributor

kamescg commented Nov 25, 2024

Context

The Universal Popup and Dashboard applications are currently designed around a single enforcer:

ERC20TransferAmountEnforcer.sol

This was done on purpose to limit the complexity of building an initial prototype. Now that a working end-to-end stack is built, it's time to upgrade our backend system to handle the complexity of dynamic enforcers.

Scope

The upgrade will touch numerous applications, packages and will require new taxonomy system for describing delegations.

Delegation Taxonomy System

Universal is focused on the "productization" of the Delegation Framework and as such we care about the classification and grouping of delegations enforcers.

For example the ERC20TransferAmountEnforcer enforcer is classified as a DebitAuthorization in the Universal stack.

And we expect that DebitAuthorization classification to be extended with enforcers like BlockNumberEnforcer.sol and TimestampEnforcer.sol without fundamentally changing the nature of the DebitAuthorization functionality.

In other words an authorization classified as DebitAuthorization requires the ERC20TransferAmountEnforcer enforcer, but can optionally include other enforcers to further constrain the core delegation scope.

Packages

The packages/universal-sdk module should be updated to support the new Universal Delegation Taxonomy System.

  • Automatically detect classification by analyzing the enforcer collection.
  • Include a warning system for enforcer collections that aren't classified.
  • Canonical source for enforcer collection types i.e. DebitAuthorization, DebitAuthorizationWithExpiry, DebitAuthorizationWithNonce, etc...

The packages/universal-delegations-sdk module should be updated to handle encoding/decoding for all supported enforcers.

Applications

The apps/api-delegations application should be updated to support the new taxonomy system, encoding/decoding and possibly updates to delegation search capabilities.

The apps/popup application should be updated to render different delegation classifications and provide users with clear explanations about the expected authorization behaviors.

The apps/wallet application should be updated to support the TimestampEnforcer.sol enforcer in the app/finance/authorizations route view render.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant