-
Notifications
You must be signed in to change notification settings - Fork 211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chifra export - unreconciled txs II #2572
Comments
This transaction https://etherscan.io/tx/0x634799410165000edaf1b1e8e5e8055b39cdd534d3c3dc9738865d39adb5d888 does not reconcile. Reproduce with:
This happens because the smart contract does not generate events for the interest income. Of course, this is an error by the smart contract. Because we do not want to do "per-smart-contract" accounting (as this would be completely unsuportable), we will solve this in the following way. Solution: We will create two new fields in our reconciliation data called Solution for inter-appearance reconciliation errors: In this case, there is a missing transaction between the previous appearance and the current appearance. Here we will create a Covered by test case |
This is the one Lefteris showed me: https://etherscan.io/tx/0xd1c7e3ac48006c0b15b73e854f2380e2fd2972f273884326a0f76f7158cc0401 |
Search for "DOES NOT BALANCE" in test cases. Search also for "not balanced". |
|
This is just one:
but if one runs
one will see many more. This is Vb's address. |
This command:
used to produce three traces (one of which was fake). The fake one was added in the old C++ code so that reconciliations of what we call SuicideSends (a self-destruct that spends money and kills itself sending the ending balance of the transaction somewhere else. When we ported to GoLang, we chose not to include this "fake" trace, but we did it during the port of chifra trace not chifra export. Therefore, there may be a lurking bug in the reconciliation that will be easy to forget (without this issue). |
This transaction: https://etherscan.io/tx/0x506e7978ba52886681b75797e4403579ba703b5f9df576a34602ada1709085fbDoes not reconcile. Reproduce with:chifra export 0x054993ab0f2b1acc0fdc65405ee203b4271bebe6 --accounting --statements --ether --fmt json --first_block 15549161 --last_block 15549163 --asset 0xf5b2c59f6db42ffcdfc1625999c81fdf17953384The reason this happens can be called a 'misleading airdrop.'The smart contract generates events, but there is no change in any of the ERC20 balances.We've been told this is method that people fish for private keys. "Hey, you got an airdrop, visit this website..."This is a less expensive way to do this (they would have to pay for state changes otherwise).We can delete these automatically by doing this:1) Does the reconciliation not balance?2) Is the transfer a token transfer?3) Does the transaction contain more than some number (100?) of Transfer events?4) Does the account balance at the previous block == account balance at end of the block? (no state change)If yes -- ignore the event.Covered by test caseacctExport_failed_statement_2572_1.txt
The text was updated successfully, but these errors were encountered: