I'm very very glad to see this mistake getting reverted slowly. This was an utterly unfair mistake - such things must not happen in blockchain code which is taken live. I know that the hardfork was very rushed, but that does not excuse this mistake in my opinion.
What I expect to see is an apology by those responsible for this error to the accounts whose funds got seized due to the error. I know errors happen, and errors are human. What needs to happen in such situation is that you own up to your mistakes.
Now to the new script. That one looks pretty solid overall, and I'm very sure it puts out the right results. There's a thing about it that bothers me a little though. Here
errors_names get defined. The former is a list of accounts that voted on Justin Sun's puppets either directly or by proxy. The latter is a list of accounts which had puppets in their witness votes, but had a proxy activated. The problem with those lists is that those lists more or less come out of nowhere and are so to say hardcoded into the script. They should've been created in the script from zero. The only hardcoded account names that should be in the script are those of Justin Sun's puppet witnesses and maybe those whose Hive stake was removed at the Hardfork in order to make the script more resource efficient. I suppose that those lists were created by another script, which is okay, but that script should've been included in the gist, or been part of the main script.
In addition to that the
voters_with_errors seems to have been tinkered with. The first entry in the list
" opposed to all other entries which use
'. While this is no difference at all for the computer it shows that someone tinkered around manually, which is a no-go in my opinion.
As I said, I don't doubt the results, but I believe that the script should be reworked in order to fix the aforementioned problems. That takes the unknown out of the script and makes it very transparent and easy to confirm the results, as it then only requires a quick check of the list of the Sun puppets and running the code and comparing the results. As of now, in order to confirm the results you actually have to write code yourself in order to create the
I already discussed part of this with @pharesim (thank you for providing information and your time!) but I thought it might not be bad to put this out here as well.