Skip to content

Conversation

@adamegyed
Copy link

Fixes:

  • Adjust comment on IExecutionHook.preExecutionHook to only send executeUserOp data for validation-associated hooks.
  • Uses the term "full calldata" instead of msg.data, and clarifies that this is available as msg.data within solidity.
  • Requires the time range intersection of pre user op validation hooks
  • Loosens the requirement of where to encode per-validation-hook data.

Simplification:

  • Moves the requirements for installation and uninstallation into their respective sections, letting us collapse the heading's section.
  • Removes non-spec-related callouts:
- The entity ID of a validation function installed on an account MUST be unique.
- Validation installation MAY be deferred until a later time, such as upon first use.

@adamegyed adamegyed requested a review from a team December 3, 2024 22:47
```

### Validation Functions and Their Installation/Uninstallation

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to include the following points under the validation installation section?

  • An account can have multiple validation modules/functions installed.
  • An account can have the same validation module installed multiple times.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not quite following why those aspects were removed. I think this one is also worth keeping:

  • The entity ID of a validation function installed on an account MUST be unique.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An account can have multiple validation modules/functions installed.
An account can have the same validation module installed multiple times.

These are implicitly true from the spec's interfaces - I thought we didn't need to call them out.

The entity ID of a validation function installed on an account MUST be unique.

I'm not sure how this got into the spec, since this isn't the case for the RI right now. We should remove this.


### Execution Functions and Their Installation/Uninstallation

- An account can install any number of execution functions.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we also need to keep this?

  • An account can install any number of execution functions

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought this was implicitly true from the interfaces and the installation flow - as long as there isn't a selector collision, you can keep installing new execution functions.

Comment on lines 450 to 451
/// @param data The calldata sent. For `executeUserOp` calls of validation-associated hooks, hook modules
/// should receive the full calldata.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated this as a part of ethereum#754

Copy link
Collaborator

@jaypaik jaypaik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Discussed in working group.

@adamegyed adamegyed force-pushed the adam/simplify-and-correct-spec branch from 44eb68b to e80c144 Compare December 13, 2024 16:35
@adamegyed
Copy link
Author

Thank you all for the review. Closing this PR as it has been merged here: ethereum#771

@adamegyed adamegyed closed this Dec 13, 2024
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.

5 participants