forked from Qortal/qortal
*** WARNING *** Possible block reward bug in this commit. Further investigation needed. Reverted AccountBalances back to height-less form. Added HistoricAccountBalances table that is populated via trigger on AccountBalances. This saves work when performing common requests for latest/confirmed balances, shunting the extra work to when requesting height-related account balances. Unified API call GET /addresses/balance/{address} by having address/assetId/height as query params. Simpler call for fetching legacy QORA holders during block rewarding. Improved SQL for fetching asset balances, in all conditions, e.g. with/without filtering addresses, with/without filtering assetIds, etc. Unit test for above to make sure query execution is fast enough. (At one point, some SQL query was taking 6 seconds!) Added optional 'height' Integer to AccountBalanceData, but this is not populated/used very often. HSQLDBAccountRepository.save(AccountBalanceData) now checks zero balance saves to see if the row can be deleted instead. This fixes a lot of unhappy tests that complain that there are residual account balance rows left after post-test orphaning back to genesis block. Yet more tests. Removed very old 'TransactionTests' which are mostly covered in more specific tests elsewhere. Added cancel-sell-name test from above. Fixed AssetsApiTests to check for QORT not QORA! Changed hard-coded assetIDs in test.common.AssetUtils in light of new LEGACY_QORA & QORT_FROM_QORA genesis assets. Some test blockchain config changes.