Cannot sign a UserOperation for gasless approve + swap with MetaMask Stateless7702
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Activo
- Stack tecnológico
- blockchain, typescript
- Área
- api, blockchain, security
Línea de trabajo
Revisa la restricción mencionada en core PR 5470 y sigue cómo @metamask/smart-accounts-kit forma el payload EIP-712 para eth_signTypedData_v4. Compara los casos de implementación de la EOA delegada y Stateless7702, y después examina wallet_sendCalls y las cuestiones relativas al bundler/paymaster externo. Se considera terminado cuando se documente la vía de integración compatible y la justificación de seguridad, o se identifique el cambio de producto necesario.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi MetaMask team,
I try to build a gasless atomic approve + swap flow for a MetaMask EOA that has already delegated to the Stateless7702 implementation.
The intended flow is:
User signs a UserOperation
→ External bundler submits it
→ External paymaster sponsors the gas
→ EntryPoint executes approve + swap
Using @metamask/smart-accounts-kit, the canonical EIP-712 payload sets verifyingContract to the delegated user EOA. This appears correct because the Stateless7702 implementation executes in the EOA's context.
However, MetaMask rejects eth_signTypedData_v4 with this error:
"External signature requests cannot use internal accounts as the verifying contract."
Using the Stateless7702 implementation address instead allows signing, but produces an invalid UserOperation signature because it changes the EIP-712 digest.
I found the related restriction here:
https://github.com/MetaMask/core/pull/5470
Could you please clarify:
-
Is raw UserOperation signing for a MetaMask-managed EIP-7702 EOA intentionally unsupported for external dapps?
-
What security risk is this restriction designed to prevent?
-
What is the supported integration route for a dapp to implement gasless approve + swap using its own bundler and paymaster?
-
If wallet_sendCalls is required, how can the dapp specify an external paymaster?
Thanks !
- Lenguaje dominante
- TypeScript
- Estrellas
- 422
- Forks
- 313
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 414
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de MetaMask/core
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
CI: "Validate changelog diffs" job fails on every fork-sourced pull requestPosiblemente ocupada @Roxen-AS la tomó hace 20 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
platform-api-docs: `scan` strategy misses ESM-only packages, which ship `.d.ts` rather than `.d.cts`Posiblemente ocupada @gaohan1994 la tomó hace 21 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
[utils] Replace the `uuid` dependency with `crypto.randomUUID()`Posiblemente ocupada @avantikonde la tomó hace 34 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
MetaMask/core#10210 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[utils] `toWei` accepts fractional wei and returns wrong valuesPosiblemente ocupada @Roxen-AS la tomó hace 20 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
Todos los issues de MetaMask/core
Issues similares
-
[FEATURE] 场景打开后主界面左上角缺失【返回】按钮Abiertoenhancement module: library-ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
chthollyphile/folia-major#1206 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
typescript-eslint/typescript-eslint#13189 ·
Los mantenedores suelen responder en 2 días
-
severity:medium triage:confirmed triage:in-progress triage:reproduced
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Cotal-AI/Cotal#6442 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
wrong type
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
elastic/elasticsearch-specification#6919 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día