signMessage drops the COSE_Key, producing an incomplete CIP-30 DataSignature
Los mantenedores suelen responder en 7 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 78/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- typescript
- Área
- api
Línea de trabajo
Lee packages/evolution/src/sdk/client/internal/Signing.ts signMessage y packages/evolution/src/sdk/wallet/Wallet.ts SignedMessage, y compáralos con packages/evolution/src/cose/SignData.ts. Añade una prueba de regresión para wallet.signMessage y verifyData, y verifica que el resultado devuelto incluya el COSE_Key y que la verificación sea exitosa para ambas rutas de la API de wallet.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
CIP-30 signData returns a DataSignature of { signature, key }, where key is the CBOR-encoded COSE_Key needed to verify the signature. SignData.signData produces both, but the wallet's signMessage returns only { payload, signature } and drops the key, and the SignedMessage interface has no key field. A consumer therefore cannot verify a message signed via the wallet API without obtaining the public key some other way, which breaks self-contained CIP-30 verification. No security impact: the dropped value is a public key, so nothing is leaked or made forgeable — it is a functional / spec-compliance gap.
Affected
packages/evolution/src/sdk/client/internal/Signing.ts
- signMessage (L363-381): returns
{ payload, signature }at L380, droppingsigned.key
packages/evolution/src/sdk/wallet/Wallet.ts
- SignedMessage interface (L37-39): has payload + signature, no
key
contrast: packages/evolution/src/cose/SignData.ts SignedMessage (L39-41) already carries { signature, key }
Fix
Add a key field to the wallet SignedMessage interface and return Bytes.toHex(signed.key) from signMessage. Ensure the CIP-30 api-wallet path carries the key through as well, so both wallet types return a complete DataSignature.
Regression test
- given: a message signed via
wallet.signMessage - before fix: result has no
keyfield;verifyDatacannot be called without externally supplying the public key - after fix: result includes the COSE_Key hex, and
verifyData(address, keyHash, payload, { signature, key })verifies
Must FAIL on main today and PASS after the fix.
Reference
Reported informally (signMessage drops COSE_Key). Standard basis: CIP-30 DataSignature = { signature, key }.
- Lenguaje dominante
- TypeScript
- Estrellas
- 22
- Forks
- 30
- Merge medio
- 1 d 13 h
- PR fusionados (30 d)
- 13
Preparar el entorno
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 IntersectMBO/evolution-sdk
-
dependencies good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 93/100
IntersectMBO/evolution-sdk#541 ·
Los mantenedores suelen responder en 7 días
-
bug external-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
IntersectMBO/evolution-sdk#530 ·
Los mantenedores suelen responder en 7 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
IntersectMBO/evolution-sdk#518 ·
Los mantenedores suelen responder en 7 días
-
enhancement external-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
IntersectMBO/evolution-sdk#456 · 1 comentario ·
Los mantenedores suelen responder en 7 días
-
bug external-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
IntersectMBO/evolution-sdk#398 ·
Los mantenedores suelen responder en 7 días
Todos los issues de IntersectMBO/evolution-sdk
Issues similares
-
module-request
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
ports get and web print 'Port N already in use, trying next...' for every busy port they skipAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
appandflow/stim#1604 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
lingdojo/kana-dojo#31060 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
SSH workspace restore rewrites relative symlinks into the deleted sync-back staging directoryAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
paperclipai/paperclip#14173 ·
Los mantenedores suelen responder en 1 día
-
needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día