if (_enough_balance(cur)) {
array[index] = cur;
index++;
} else {
prune(prev, cur);
}
prev = cur;
cur = relayers[cur];
-------------------------------------
after prune(prev, cur)
cur = relayers[cur] is address(0)
so `!valid` error returned
Severity
High
Impact
If there are not_enough_balance relayers in first top location. Contract will return !valid error.
We could use prune func to delist the relayers temporarily.
Highly recommended to do an upgrade to fix the issue.
Bug Analysis
Severity
High
Impact
If there are
not_enough_balance
relayers in first top location. Contract will return!valid
error. We could useprune
func to delist the relayers temporarily. Highly recommended to do an upgrade to fix the issue.Fixed https://github.com/helix-bridge/helix-ui/issues/432