deriveOnChainId hashes UUIDs into u64 keys with no collision check, and milestone/pool keys share the escrow contract's issue_id space
Los mantenedores suelen responder en 1 día
@urielit1313-creator ya está trabajando en esto.
Desde el 13/10/2026.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 15/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- blockchain, typescript
- Área
- backend, blockchain
Línea de trabajo
Start from EscrowService.deriveOnChainId, which hashes the UUID into the on-chain issue_id, and trace how milestone and pool escrows share that key space with GitHub-issue-keyed bounties. The work is already under way: PRs #646 and #653 are open against this issue, so check them before starting. Done means derived keys cannot collide with live escrows and the mapping is persisted.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
EscrowService.deriveOnChainId FNV-1a-64-hashes the bounty/milestone/pool UUID to get the on-chain issue_id. Milestone escrows are funded on the escrow contract (until #162), in the same u64 key space as bounties keyed by real GitHub issue ids. Nothing checks for a collision with an existing on-chain escrow. A hashed key that equals a live GitHub-issue-keyed escrow makes fund fail with AlreadyFunded, or worse, after that escrow terminates, silently re-uses its key and stale contribution records (contracts #41).
Suggested fix
Namespace the keys (e.g. high bit set for derived ids), call get_escrow before funding to detect collisions, and persist the mapping.
Related: #158, #162
- Lenguaje dominante
- TypeScript
- Estrellas
- 2
- Forks
- 90
- Merge medio
- 31 min
- PR fusionados (30 d)
- 20
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin 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 MergeFi/backend
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
bug security
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
bug testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
bug security
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
Todos los issues de MergeFi/backend
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
zapcooking/frontend#946 ·
Los mantenedores suelen responder en 1 día
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
WiliamRosa/cosmos-semantic-platform#40 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
liberation-data/drivine#733 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
makecindy/cindy#10062 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día