Select different sources for intermediaries tx
## Issues found ### Intermediaries transactions bug A bug or a behaviour modification was introduced between v0.6.1 and the migration to DuniterPy (v0.7.0), which makes intermediaries transactions being the same, and then get refused by the network. If intermediaries transactions occurs, I had a case when infinite loop occurs because of already proceed tx for already proceed intermediaries tx. I don’t know why the same sources are now taken for two followed intermediaries tx Does source selection have been removed during this migration? I don’t think so after checked previous and current code. --- ### Transaction refusal by nodes - Nodes refuse transactions sent within the lapse of time between two blocks: > `Error: It cannot exist 2 identical sources for transactions inside a given block` - This causes the refusals of sent transactions. --- ### Solutions - ~~We could change the comment by incrementing a variable in it~~ - ~~In case error `2030` happen, we may `break` the loop~~ - ~~Increment sources/inputs selection in order to not have same ones in intermediaries tx~~ - [x] Check if sources are free. This could avoid taking locked sources when sending two similar tx (final ones) close in the time. Take them from `tx/history/<pubkey>/pending`. Pending are already added to sources. May be they are no longer well added to the inputs. It seems already used input are no longer removed. May be because `InputSource()` does not match `in` statement and does not get removed. --- The equality between `InputSource()` instances wasn’t implemented. Done in https://git.duniter.org/clients/python/duniterpy/commit/4c30cf3f8e50a0ba45fc35fb35fd90f015981201.
issue