graphprotocol / graphprotocol/graph-node

gnd: scaffolding follow-ups from #6660 review

Abierto
#6,684 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Rust
Estrellas
3.2k
Forks
1.1k
Merge medio
4 d 1 h
PR fusionados (30 d)
1

Descripción

Follow-ups from the review of #6660.

Int8 support (comment)

Map mid-size Solidity ints (signed 33-64 bits, unsigned 25-63) to Int8 instead of BigInt. The schema scaffold and the ABI codegen need to change together: the generated getter would chain .toBigInt().toI64() since ethereum.Value has no i64 accessor. The entity side already supports Int8. Before adding the band, consolidate the int width cutoff into one shared helper — it's currently duplicated in scaffold/schema.rs and ~8 places in codegen/abi.rs.

Duplicate-name corner cases (comment)

All of these produce a duplicate name in the generated output, so the build fails:

  • add: an entity renamed on collision isn't checked against the other events in the same batch. Existing Transfer + ABI with Transfer and TokenTransferTokenTransfer declared twice.
  • Two params that sanitize to the same field name aren't deduped (e.g. two unnamed params both become value). The accessor side already dedupes (param0, param1); the field side should too.
  • The overload suffix can clash with a real event: Transfer, Transfer, Transfer1 → two Transfer1s. Bump the counter until the name is free.
  • An unparseable schema.graphql silently disables collision detection in add. Should log a warning.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con scaffold/schema.rs y codegen/abi.rs, siguiendo el límite de ancho de enteros duplicado y la ruta de adición de nombres de eventos y parámetros. Compara el comportamiento del esquema generado y del getter de ABI descrito en el issue; se considera terminado cuando las correspondencias de Int8 funcionan de forma coherente y cada colisión indicada se gestiona sin nombres generados duplicados, con una advertencia para un schema.graphql no analizable.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust, solidity
Área
blockchain, tooling
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.