PR #101 introduced an is_already_voted predicate, but allways/validator/forward.py:256 and allways/validator/forward.py:397 still inline if 'AlreadyVoted' in str(e):. Whatever helper landed (or was meant to) is not used here. Either route both call sites through the centralized predicate or — if the helper was never merged — re-open it; the substring form silently breaks if the contract error type is renamed.
PR #101 introduced an
is_already_votedpredicate, but allways/validator/forward.py:256 and allways/validator/forward.py:397 still inlineif 'AlreadyVoted' in str(e):. Whatever helper landed (or was meant to) is not used here. Either route both call sites through the centralized predicate or — if the helper was never merged — re-open it; the substring form silently breaks if the contract error type is renamed.