IntersectMBO / IntersectMBO/evolution-sdk
txBuilder: committee cert redeemers are never resolved to a certificate index
- Lingua principale
- TypeScript
- Stelle
- 22
- Fork
- 30
- Merge medio
- 5h 29m
- PR unite (30g)
- 12
Descrizione
## Summary
`authCommitteeHot` and `resignCommitteeCold` store their redeemer under `cert:{coldCredentialHash}`, but the assembly loop only matches certificates on `stakeCredential` and `drepCredential`. `committeeColdCredential` is never checked, so the lookup always fails, logs a warning, and skips the redeemer.
A Plutus-script committee cold credential therefore produces a transaction with no redeemer for its certificate, which the node rejects. Native-script cold credentials are unaffected, since #494 made those require no redeemer.
## Affected
- packages/evolution/src/sdk/builders/internal/txBuilder.ts:613-631 (loop checks only stakeCredential and drepCredential)
- packages/evolution/src/sdk/builders/internal/txBuilder.ts:632-635 (unresolved index logs a warning and continues)
- packages/evolution/src/sdk/builders/operations/Governance.ts:260, 323 (redeemer keyed by coldCredential)
## Fix
- Add a `committeeColdCredential` branch to the assembly loop.
- Consider failing instead of warning when a cert redeemer cannot be resolved. Building a transaction that is known to be missing a required redeemer is not a useful default.
## Test
Add coverage asserting a Plutus-script `authCommitteeHot` emits a redeemer at the certificate's index.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con il ciclo di assemblaggio in packages/evolution/src/sdk/builders/internal/txBuilder.ts:613-635 e confronta i suoi controlli delle credential con le chiavi del redeemer create in packages/evolution/src/sdk/builders/operations/Governance.ts:260 e 323. Aggiungi la copertura per un’operazione authCommitteeHot di Plutus-script e verifica che il suo redeemer venga emesso all’indice del certificato invece di essere ignorato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- blockchain
- Tipo di issue
- Bug
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Attiva
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 80/100