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

safe7579 Launchpad not compatible with safe SharedWebauthnSigner contract #14

Open
2 tasks done
yoanslvy opened this issue Oct 9, 2024 · 0 comments
Open
2 tasks done
Labels
bug Something isn't working

Comments

@yoanslvy
Copy link

yoanslvy commented Oct 9, 2024

Have you ensured that all of these are up to date?

  • This repo
  • Any dependencies (according to the package.json)

What command(s) is the bug in?

No response

Operating System

None

Describe the bug

Hello guys, following my discussion with @kopy-kat and the safe team, it looks like the launchpad contract is not compatible with the sharedWebauthnSigner contract by safe.

The use case would happen if the sharedWebauthnSigner is used as the owner of the safe with 7579 fallback. At deployment, during the userop validation phase (when the proxy is still pointing to the launchpad contract), the isValidSignature done with the sharedWebauthnSigner will have the proxy call the getStorageAt function on itself (a method that is on the StorageAccesible lib of safe).

https://github.com/safe-global/safe-modules/blob/3e0aa7784c9d19399fd0bc173a1d9f78f96f9a86/modules/passkey/contracts/4337/SafeWebAuthnSharedSigner.sol#L90

Problem: the proxy is still pointing to the launchpad implementation that does not have this method which makes the verification revert.

This use case was probably not thought of, so it might need more testing to make sure that it works well.

To add more context, here is a tx deploying a safe using the sharedWebAuthnSigner as owner and the safe 4337 module as fallback ( which works well ):
https://dashboard.tenderly.co/tx/arbitrum-sepolia/0xb94750b34b93d4245844713b8dbe6fd8b671c5086786e57c1cbfd5670c64f345?trace=0.1.1.0.0.2.1.0

Here is the same tx using sharedWebAuthnSigner as owner and the safe 7579 module as fallback (that fails):
https://dashboard.tenderly.co/tx/arbitrum-sepolia/0xb94750b34b93d4245844713b8dbe6fd8b671c5086786e57c1cbfd5670c64f345?trace=0.1.1.0.0.2.1.0

@yoanslvy yoanslvy added the bug Something isn't working label Oct 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant