This release contains support for HIP-794 Sunsetting Account Balance File. Consensus nodes will soon stop generating account balance files every 15 minutes due to the growing number of accounts making this operation unsustainable. To fill in the gaps, mirror nodes will now generate balance snapshot information from the record stream. This change will be transparent to end users and operators alike since the same data will be returned by the various APIs. For now, we're generating synthetic account_balance_file
rows (not files) until we can remove the reliance on this table everywhere. In this release, we updated the accounts by ID, balance, and network supply REST APIs to not depend upon this table. Entity stake calculation and a fungible token migration were updated similarly. The next release will see further work in this area.
HIP-584 saw the exchange rate precompiles tinycentsToTinybars
and tinybarsToTinycents
implemented. Also added was support for the HTS redirectForToken
precompile. But the main focus was on testing and bug fixes with a large number of them squashed in this release.
There was good amount of technical debt addressed in 0.88
. For starters, we have a new hedera-mirror-rest-java
module that is intended to contain new or existing REST APIs converted from JavaScript. By creating any new REST APIs in Java and slowly converting existing APIs to Java we can improve the quality of this area of the codebase and promoting code reuse with the other modules. A community member helped us to remove the deprecated Spring Cloud Kubernetes property spring.cloud.kubernetes.enabled
since it was no longer used anyway. We also took the time to remove unused Flyway placeholders properties and eliminate code redundancy in web3 acceptance tests. Finally, we removed the type
field from the widely used EntityId
in the codebase and eliminated the unnecessary AssessedCustomFeeWrapper
.
Enhancements
- Track balance of all entities (0.88) #6823
- Generate balance info from record file #6786
- Update fungible token migration to no longer use account balance file #6773
- HIP-584: Remove InvalidTransactionException dependency from services code #6767
- HIP-584: Remove
InvalidTransactionException
dependency from services code #6766 - Remove deprecated Spring Cloud Kubernetes property #6745
- Update Kubernetes awareness property to support Spring Boot v3 #6744
- Change network supply REST API to not use account balance file #6743
- Change entity stake to not use account_balance_file #6742
- Remove type parameter from EntityId.of() #6739
- Use account_balance instead of account_balance_file for balance timestamp #6737
- Remove EntityId.getType() #6733
- Rename EntityId getters #6728
- Change EntityId constructor to private #6725
- Remove AssessedCustomFeeWrapper #6723
- Remove unused Flyway placeholders #6716
- Remove EntityIdEndec #6715
- Generate balance info from record file #6700
- Change network supply REST API to not use account_balance_file #6681
- Change getAccountBalanceTimestamp to not use account_balance_file #6680
- Change FixFungibleTokenTotalSupplyMigration to not use account_balance_file #6679
- Change entity stake to not use account_balance_file #6677
- Add a REST API Java module #6672
- HIP-584: Provide implementation for ExchangeRatePrecompiledContract #6667
- HIP-584: Implement integration tests for RedirectPrecompile #6616
- HIP-584: Provide implementation for ExchangeRatePrecompiledContract #6606
- Add a hedera-mirror-rest-java module #6544
- Eliminating code redundancy in Mirror-Test Features #6166
- HIP-584: Add tests for eth_estimateGas with precompiles #6109
- HIP-584: Provide implementation for redirect precompile #5651
Bug Fixes
- Fix MessageDeliveryException in importer (0.88) #6830
- Fix TypeError in REST monitor #6818
- TypeError in REST monitor #6817
- Handle invalid contract action recipient #6815
- Fix acceptance tests race condition #6808
- Acceptance tests race condition #6807
- HIP-584: Fix mint NFT too high gas price #6779
- HIP-584: Successfully deploy contract with missing sender #6776
- HIP-584: Contract deploys without from field are failing #6775
- Adjust insert-only table autovacuum settings #6771
- HIP-584: AssociateLogic creates association with kycGranted=false #6770
- HIP-584: estimateGas for mint + NFT precompile returns 400 bad request #6769
- HIP-584: AssociateLogic creates association with kycGranted=false #6768
- HIP-584: Fix NPE when creating token #6740
- Add vacuum settings for v2 #6724
- Fix HTS allowance when transferring using Ethereum Tools #6722
- HTS Allowances are not updated after transfer #6721
- HIP-584: Aliases are not resolved in web3 #6720
- HIP-584: Create token with INHERIT_ACCOUNT_KEY key type throws NPE #6719
- Fix allowance acceptance test failing in previewnet #6711
- Increase default submit retry max to 100 in rosetta bdd test client #6710
- Fix alarms caused by premature close error in rest monitor #6709
- Crypto and fungible token allowance acceptance tests fail in previewnet on allowance deletion verification #6708
- HIP-584 : aliases are not resolved in web3 #6707
- rest monitor occasionally fails with FetchError caused by premature close #6702
- Rosetta BDD tests fail on throttled networks #6675
- Auto vacuum process can cause transaction timeout #6622
- HIP-584: Add integration tests for dynamic eth_call - part 1 #6613
- HIP-584: Create integration tests for testing dynamic
eth_call
using precompiles that modify the status or supply of the token or an account #6586 - Investigate and add autovacuum settings back for v2 partitioning #4814
Dependency Upgrades
- Bump mathjs from 11.10.0 to 11.11.0 in /hedera-mirror-rest/monitoring/monitor_apis #6816
- Bump github.com/go-playground/validator/v10 from 10.15.1 to 10.15.3 in /hedera-mirror-rosetta #6805
- Bump software.amazon.awssdk:bom from 2.20.135 to 2.20.140 #6802
- Bump com.diffplug.spotless:spotless-plugin-gradle from 6.20.0 to 6.21.0 #6800
- Bump testcontainersSpringBootVersion from 3.0.0-RC9 to 3.0.0 #6799
- Bump vertxVersion from 4.4.4 to 4.4.5 #6798
- Bump glob from 10.3.3 to 10.3.4 in /hedera-mirror-rest/check-state-proof #6797
- Bump mathjs from 11.10.0 to 11.10.1 in /hedera-mirror-rest #6796
- Bump
@aws-sdk
/client-s3 from 3.400.0 to 3.405.0 in /hedera-mirror-rest #6795 - Bump gradle.plugin.io.snyk.gradle.plugin:snyk from 0.4 to 0.5 #6765
- Bump org.openapitools:openapi-generator-gradle-plugin from 6.6.0 to 7.0.0 #6764
- Bump software.amazon.awssdk:bom from 2.20.130 to 2.20.135 #6763
- Bump io.hypersistence:hypersistence-utils-hibernate-62 from 3.5.1 to 3.5.2 #6761
- Bump org.testcontainers:junit-jupiter from 1.18.3 to 1.19.0 #6760
- Bump io.freefair.gradle:lombok-plugin from 8.2.2 to 8.3 #6759
- Bump protobufVersion from 3.24.1 to 3.24.2 #6758
- Bump com.graphql-java:graphql-java-extended-scalars from 20.2 to 21.0 #6757
- Bump com.graphql-java:graphql-java-extended-validation from 20.0 to 21.0 #6756
- Bump jest from 29.6.2 to 29.6.4 in /hedera-mirror-rest/check-state-proof #6755
- Bump express-openapi-validator from 5.0.4 to 5.0.6 in /hedera-mirror-rest #6754
- Bump
@aws-sdk
/client-s3 from 3.395.0 to 3.400.0 in /hedera-mirror-rest #6753 - Bump quick-lru from 6.1.1 to 6.1.2 in /hedera-mirror-rest #6752
- Bump jest from 29.6.2 to 29.6.4 in /hedera-mirror-rest #6751
- Bump mathjs from 11.9.1 to 11.10.0 in /hedera-mirror-rest #6750
- Bump jest from 29.6.2 to 29.6.4 in /hedera-mirror-rest/monitoring/monitor_apis #6749
- Bump mathjs from 11.9.1 to 11.10.0 in /hedera-mirror-rest/monitoring/monitor_apis #6748
- Bump github.com/cucumber/godog from 0.12.6 to 0.13.0 in /hedera-mirror-rosetta #6747
- Bump github.com/hashgraph/hedera-sdk-go/v2 from 2.27.0 to 2.28.0 in /hedera-mirror-rosetta #6746
- Revert min nodejs to v16.13.0 for hedera-mirror-rest #6727
- Bump versions for v0.88.0-SNAPSHOT #6706
- Bump securego/gosec from 2.16.0 to 2.17.0 #6696
- Bump org.owasp:dependency-check-gradle from 8.3.1 to 8.4.0 #6691
Contributors
We'd like to thank all the contributors who worked on this release!