Skip to content

Commit 6e72fca

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

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
@@ -310,6 +310,9 @@ func collapseOutputs(outputs []lcommon.Utxo) []lcommon.TransactionOutput {
310310
func sortedRedeemerKeys(
311311
redeemers lcommon.TransactionWitnessRedeemers,
312312
) []lcommon.RedeemerKey {
313+
if redeemers == nil {
314+
return []lcommon.RedeemerKey{}
315+
}
313316
tags := []lcommon.RedeemerTag{
314317
lcommon.RedeemerTagSpend,
315318
lcommon.RedeemerTagMint,
@@ -411,9 +414,12 @@ func redeemersInfo(
411414
witnessSet lcommon.TransactionWitnessSet,
412415
toScriptPurpose toScriptPurposeFunc,
413416
) KeyValuePairs[ScriptPurpose, Redeemer] {
414-
var ret KeyValuePairs[ScriptPurpose, Redeemer]
415417
redeemers := witnessSet.Redeemers()
418+
if redeemers == nil {
419+
return KeyValuePairs[ScriptPurpose, Redeemer]{}
420+
}
416421
redeemerKeys := sortedRedeemerKeys(redeemers)
422+
ret := make(KeyValuePairs[ScriptPurpose, Redeemer], 0, len(redeemerKeys))
417423
for _, key := range redeemerKeys {
418424
redeemerValue := redeemers.Value(uint(key.Index), key.Tag)
419425
purpose := toScriptPurpose(key)

0 commit comments

Comments
 (0)