At the moment, conditional chains are currently handled by checking if the successcount of the previous block was a "1" twice. This works fine, when the successcount is indeed a 1. However, it breaks when there is more than 1.
My proposal is simple: Instead of checking if it is 1, check if it is 0. That way, it works for all values of successcount. It'll invert it, but since there's two blocks it'll invert it twice so the output should be the same.
Going into corner, chain fails:
-First block sees that it failed, runs successfully
-Second block sees that first block was run successfully, fails.
-Continuation of chain sees that previous block failed.
Going into corner, chain succeeds:
-First block sees that chain succeeded, fails.
-Second block sees that first block failed, succeeds.
-Continuation of chain sees that previous block succeeded.
At the moment, conditional chains are currently handled by checking if the successcount of the previous block was a "1" twice. This works fine, when the successcount is indeed a 1. However, it breaks when there is more than 1.
My proposal is simple: Instead of checking if it is 1, check if it is 0. That way, it works for all values of successcount. It'll invert it, but since there's two blocks it'll invert it twice so the output should be the same.
Going into corner, chain fails:
-First block sees that it failed, runs successfully
-Second block sees that first block was run successfully, fails.
-Continuation of chain sees that previous block failed.
Going into corner, chain succeeds:
-First block sees that chain succeeded, fails.
-Second block sees that first block failed, succeeds.
-Continuation of chain sees that previous block succeeded.