gnd: scaffolding follow-ups from #6660 review

Aperta
#6,684 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
rust, solidity

Direzione di ricerca

Inizia con scaffold/schema.rs e codegen/abi.rs, seguendo il limite duplicato della larghezza degli interi e il percorso di aggiunta dei nomi degli eventi e dei parametri. Confronta il comportamento dello schema generato e del getter ABI descritto nell’issue; il lavoro è completato quando le mappature Int8 funzionano in modo coerente e ogni collisione elencata viene gestita senza nomi generati duplicati, con un avviso per uno schema.graphql non analizzabile.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.
Lingua principale
Rust
Stelle
3.2k
Fork
1.1k
Merge medio
4g 1h
PR unite (30g)
1

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di graphprotocol/graph-node

Tutte le issue di graphprotocol/graph-node

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.