I've mainly been testing this week. And bug-hunting. So dull! Test in production!
I've mainly been trying to get the account balance roll-up to work as accurately as possible. The account balance roll-up takes all the financial transactions for an account and accumulates them over time. The final rolled-up results for Hive, HBD, and Vests/HP should be equal to the current balances for the account obtained through the API. The idea being that if this test works then the data is good and most of everything else (on the Hive side) will work as well.
It's a two stage process. The first calculation accumulates of all the pre HF23 "Steem" financial transactions for an account to give the Hive airdrop amounts. The second stage accumulates the post HF23 Hive financial transactions, starting with the airdrops.
There's the same test for Steem accounts. Just with the post HF23 Steem and pre HF23 "Steem" financial transactions all aggregated together. And no airdrop.
Since I can only test a limited number of accounts I added a balance check option on the JOURNEY page. This shows a table with the roll up results. So once you've loaded your transactions you'll be able to check how accurate your numbers are. And then let me know when it doesn't work!
Here's some examples:
@hiveio - one that works perfectly.
@tiger-zaps - good
@keychain - perfect again
I tested 15 accounts in total. After correcting some bugs they were all perfect on liquid and dollars, with some small differences on vests.
The difference in vests arises due to the power-up transactions only having one side of the transaction. All Hive no Vests. Like this:
So I have to estimate the amount of vests powered-up. To do this I search the blockchain every millions blocks or so and capture large power down transactions which I then use to generate the ratio of Hive/Vests. And then interpolate for blocks in-between and apply to power ups. I may be able to improve this through better interpolation. But it works fairly well as it is.
One of the things I did this week was to adapt/recreate/rerun this process for Steem, since the Steem/Vests ratio is not the same as the Hive/Vests ratio (post HF23). Because nothing is ever easy!
I ran the same tests for accounts loaded directly from Steem (i.e. data loading through the Steem API). It doesn't work as well because the account history transaction number ids jump around occasionally. It doesn't seem to be a problem for any of the Steem balances on the Hive accounts I tested above - which have post HF23 Steem data loaded through the Steem API.
I'll work on it in any case.
A few bugs ironed out - none of which are particularly interesting:
All fixed.
The aim is to get something preliminary out in the next couple of weeks. This will require work on:
Some areas will then be done in a future release:
That's it for today! My project is free and open-source (FOSS). It will be on github (once I've tidied it because embarrassing). If you like my project upvote to support it!
For those who haven't seen one of these posts before, HeyStack is a Hive-orientated crypto portfolio tracker project. It was my entry to the STEMGeeks Hackathon that took place back in the spring. I am still working on it! Still!