Skip to content

Commit e544354

Browse files
committed
fix: prevent nil panic when Redeemers() returns nil
Signed-off-by: Ales Verbic <[email protected]>
1 parent e8efb0d commit e544354

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

ledger/common/script/context.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,9 @@ func collapseOutputs(outputs []lcommon.Utxo) []lcommon.TransactionOutput {
317317
func sortedRedeemerKeys(
318318
redeemers lcommon.TransactionWitnessRedeemers,
319319
) []lcommon.RedeemerKey {
320+
if redeemers == nil {
321+
return []lcommon.RedeemerKey{}
322+
}
320323
tags := []lcommon.RedeemerTag{
321324
lcommon.RedeemerTagSpend,
322325
lcommon.RedeemerTagMint,
@@ -418,9 +421,12 @@ func redeemersInfo(
418421
witnessSet lcommon.TransactionWitnessSet,
419422
toScriptPurpose toScriptPurposeFunc,
420423
) KeyValuePairs[ScriptInfo, Redeemer] {
421-
var ret KeyValuePairs[ScriptInfo, Redeemer]
422424
redeemers := witnessSet.Redeemers()
425+
if redeemers == nil {
426+
return KeyValuePairs[ScriptInfo, Redeemer]{}
427+
}
423428
redeemerKeys := sortedRedeemerKeys(redeemers)
429+
ret := make(KeyValuePairs[ScriptInfo, Redeemer], 0, len(redeemerKeys))
424430
for _, key := range redeemerKeys {
425431
redeemerValue := redeemers.Value(uint(key.Index), key.Tag)
426432
purpose := toScriptPurpose(key)

0 commit comments

Comments
 (0)