diff --git a/node/execution/intrinsics/token/application/token_application.go b/node/execution/intrinsics/token/application/token_application.go index 832734c..e303052 100644 --- a/node/execution/intrinsics/token/application/token_application.go +++ b/node/execution/intrinsics/token/application/token_application.go @@ -140,8 +140,10 @@ func (a *TokenApplication) ApplyTransitions( } parallelismMap := map[int]uint64{} - for i := range a.Tries[1:] { - parallelismMap[i] = 0 + if len(a.Tries) > 1 { + for i := range a.Tries[1:] { + parallelismMap[i] = 0 + } } seen := map[string]struct{}{} diff --git a/node/execution/intrinsics/token/token_execution_engine.go b/node/execution/intrinsics/token/token_execution_engine.go index d03c6c8..82db98d 100644 --- a/node/execution/intrinsics/token/token_execution_engine.go +++ b/node/execution/intrinsics/token/token_execution_engine.go @@ -858,7 +858,7 @@ func ProcessJoinsAndLeaves( } process := eligibilityOrder.All() slices.Reverse(process) - for s := 0; s+setSize < 2048; s++ { + for s := 0; s < len(process) && s+setSize < 2048; s++ { app.Tries[1+i].Add([]byte(process[s].addr), frame.FrameNumber) app.Tries[2+i].Remove([]byte(process[s].addr)) }