There was an edge case where if transactions in the validated queue are being verified, and during this operation, the blockchain state changes, the transactions will be moved to the verified queue although they were verified against the old blockchain state.
How did I fix it?
When transactions which exist in the validated queue are affected by the blockchain state change, they are moved to the received queue. This ensures that the race condition between blockchain state change event and verifying transactions is prevented.
What was the problem?
There was an edge case where if transactions in the validated queue are being verified, and during this operation, the blockchain state changes, the transactions will be moved to the verified queue although they were verified against the old blockchain state.
How did I fix it?
When transactions which exist in the validated queue are affected by the blockchain state change, they are moved to the received queue. This ensures that the race condition between blockchain state change event and verifying transactions is prevented.
How to test it?
Run tests.
Review checklist