Skip to content

Upgrade: Multi-Enforcer Support #29

Description

@kamescg

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions