IntersectMBO / IntersectMBO/evolution-sdk

txBuilder: committee cert redeemers are never resolved to a certificate index

Aperta Adatta ai principianti
#518 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.