Dependency based retry mecanism
Currently, retry transactions are only retried once all to_deploy
transactions have been deployed. Say that you are deploying a contract and minting 100 tokens by creating all the operations in DB at once. Then if the deployemnt fails, it will only be retried after all mint operations fail as well because of the queuing.
We can bypass this problem by introducing dependencies between TezosTransaction
's. The spooler would then pick any random to_deploy
transactions, ensure that all of its dependencies have their states set to done
to spool itself. Otherwise, the spooler should transverse the dependency tree in a depth-first manner until it either finds a retry transaction, or an aborted one (in which case it iterates to the next to_deploy
transaction)