Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Added Sample 4337 Module #131
Added Sample 4337 Module #131
Changes from 2 commits
df1a0e2
27a2e98
b20eab9
9ec4cc6
66c2d06
819d110
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
Check failure on line 468 in contracts/SafeProtocolManager.sol
GitHub Actions / lint
Check failure on line 469 in contracts/SafeProtocolManager.sol
GitHub Actions / lint
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
whats
0x3a871cdd
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is the selector of
validateUserOp
. This is veeeeery hacky (I talk about it in my findings I documented in #125 (comment)).This is needed because doing the prefund transfer from a plugin requires a lookup in the registry which is not allowed for two reasons:
I left a note in the finding to clean this up
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This value variable is unused; does it make sense to omit the check and remove the argument?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is part of the interface of the
ISafeProtocolFunctionHandler
. I think we could change it to not have a value, but that would be strange to me:payable
functions (so revert onvalue != 0
payable
fallback handlers should be able to read the amount ofEther
that was sent with the transaction to the account.I would also argue this is a bit out of the scope of this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make sense to use an actual safe account here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably, but it made the signing more complicated 😅. You could argue that the PoC was about ensuring that some account implementation paired with the Safe{Core} Protocol reference implementation could work with ERC-4337, so I don’t think its strictly necessary.