Use loop label in InnerRingUpdate call handler

enable-notary-in-public-chains
Leonard Lyubich 2020-05-20 12:38:11 +03:00
parent 859c29c8df
commit 9a51b508e8
1 changed files with 9 additions and 17 deletions

View File

@ -230,35 +230,27 @@ func Main(op string, args []interface{}) interface{} {
offset = 10
newIR := []node{}
for i := 0; i < listItemCount; i++ {
loop:
for i := 0; i < listItemCount; i, offset = i+1, offset+33 {
pub := data[offset : offset+33]
finished := false
for j := 0; j < len(irList); j++ {
n := irList[j]
if util.Equals(n.pub, pub) {
newIR = append(newIR, n)
finished = true
break
continue loop
}
}
if !finished {
for j := 0; j < len(candidates); j++ {
n := candidates[j]
if util.Equals(n.pub, pub) {
newIR = append(newIR, n)
finished = true
break
}
}
if !finished {
panic("unknown inner ring candidate present in the list")
for j := 0; j < len(candidates); j++ {
n := candidates[j]
if util.Equals(n.pub, pub) {
newIR = append(newIR, n)
continue loop
}
}
offset += 33
}
if len(newIR) != listItemCount {
panic("new inner ring wasn't processed correctly")
}