curtislacy/mastercoin-tools — pull request #25 by achamely (2014-03-23 16:05:13+00:00)
Title: graz's bugfix: correct expiration of multiple accept offers that expire on a si...

...ngle block

The mechanism that checks expiration of accept offers uses a dictionary
for alarms which contains expration block number as a key and a list of accept txid
that expire at that block.
While iterating on the list, the code removed checked accept txid from that list
In a case where multiple accept transactions expire in a single block, this removal
causes the second accept expiration to be skipped.
specifically, this unpaid accept offer was hanging in a non expired state:
https://masterchain.info/sellaccept.html?tx=5737353a669583964a296ef920837fd97ad5c89c3dee9e8216e674dad5c76c6e¤cy=MSC
avoiding the removal of old alerts from this dictionary fixes the problem

This is the only case that such a problem has happened.
The effect was a wrong calculation of the following accept offer (missing 1.3 MSC):
https://masterchain.info/sellaccept.html?tx=d846fd98dcd268f835d272e13b8623fd2ca435060fa91baaf8426bffb067a5b1¤cy=MSC
but since we could see that the later payment was correct, and the consensus support it,
I see no problem to correct this problem retrospective.

If the foundation insists, I could still keep the bug until current block.