This release implements HIP-859, adding support for returning gas consumed in the contract result REST APIs. The current gasUsed
field in the API holds the amount of gas charged, while the new gasConsumed
field holds the amount of gas actually used during EVM execution. Providing this extra data will allow users to provide a more accurate gas when invoking a contract and reduce the fees they are charged.
/api/v1/contracts/call
now supports a configurable max gas limit property hedera.mirror.web3.evm.maxGas
. The default value remains at 15 million but operators can now choose to increase it to suite their needs. The EVM version and features have been upgraded to v0.46
. This brings feature parity with the latest consensus node software for EVM execution.
There was a large amount of work to improve our integration with Citus. Three repeatable migrations were enhanced to work optimally with Citus: account balance migration, token balance migration, and synthetic transfer approval migration. Token account insertion was optimized to improve its performance by removing the join on the token table. Range partitioning was removed for entity related tables since it caused degraded performance due to having sparse partitions. Finally, the deployment now supports different sized disks for individual workers to optimize for unbalanced data.
Upgrading
The migration to add the gasConsumed
field takes 9 minutes against a full mainnet database.
Enhancements
- Update Rest test containers to be created in integration tests #7827
- Improve SyntheticCryptoTransferApprovalMigration in v2 #7819
- Add ability to have different sized disks for Citus nodes #7816
- Improve v2 performance for token account balance migration #7815
- Improve initialize entity balance migration performance in v2 #7813
- Increase maxDataSize to 25KiB #7795
- Remove remaining
.js
extension from imports #7790 - Make max gas limit configurable #7783
- Create Temp Table Indexes After Temp Table Write #7782
- Remove entity id based range partition #7781
- Add a NFT allowance service #7753
- Add EVM
v0.46
to contract call #7749 - Improve token account upsert performance in v2 #7738
- HIP-859 Add gas consumed field in ContractResult #7657
Bug Fixes
- Adapt gas_consumed migration query to get failed initcode from contract_result for failed contract create transactions (0.100) #7885
- Fix NullPointerException when calculating gasConsumed (0.100) #7878
- Fix transactions REST API SQL query performance regression #7834
- Fix
IndexOutOfBoundsException
for direct precompile calls #7825 - Ensure Metrics Aren't Queried For Removed Tables #7821
- Update expected gas in estimateGas acceptance tests #7818
- Fix flaky balance call integration test #7817
- Contract call without data causes NPE in web3 #7791
- Balance of system accounts should return zero #7788
- Add token create validation checks #7778
Documentation
- Update OpenAPI to specify Unix timestamp #7856
Dependency Upgrades
- Bump azure/setup-helm from 3 to 4 #7852
- Bump
@testcontainers
/postgresql from 10.7.1 to 10.7.2 in /hedera-mirror-rest #7851 - Bump
@aws-sdk
/client-s3 from 3.521.0 to 3.525.0 in /hedera-mirror-rest #7850 - Bump express from 4.18.2 to 4.18.3 in /hedera-mirror-rest #7849
- Bump com.hedera.evm:hedera-evm from 0.47.0 to 0.47.1 #7848
- Bump software.amazon.awssdk:bom from 2.24.10 to 2.25.1 #7845
- Bump io.grpc:grpc-bom from 1.61.1 to 1.62.2 #7844
- Bump github.com/ethereum/go-ethereum from 1.13.13 to 1.13.14 in /hedera-mirror-rosetta #7843
- Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 in /hedera-mirror-rosetta #7842
- Bump github.com/go-playground/validator/v10 from 10.18.0 to 10.19.0 in /hedera-mirror-rosetta #7841
- Bump org.testcontainers:junit-jupiter from 1.19.5 to 1.19.6 #7809
- Bump net.devh:grpc-spring-boot-starter from 2.15.0.RELEASE to 3.0.0.RELEASE #7808
- Bump vertxVersion from 4.5.3 to 4.5.4 #7807
- Bump software.amazon.awssdk:bom from 2.24.5 to 2.24.10 #7806
- Bump com.playtika.testcontainers:embedded-google-pubsub from 3.1.4 to 3.1.5 #7804
- Bump com.bucket4j:bucket4j-core from 8.8.0 to 8.9.0 #7803
- Bump com.google.cloud:spring-cloud-gcp-dependencies from 5.0.3 to 5.0.4 #7802
- Bump github.com/coinbase/rosetta-sdk-go from 0.8.3 to 0.8.4 in /hedera-mirror-rosetta #7801
- Bump github.com/ethereum/go-ethereum from 1.13.12 to 1.13.13 in /hedera-mirror-rosetta #7800
- Bump nodemon from 3.0.3 to 3.1.0 in /hedera-mirror-rest #7799
- Bump
@aws-sdk
/client-s3 from 3.515.0 to 3.521.0 in /hedera-mirror-rest #7798 - Bump mathjs from 12.3.2 to 12.4.0 in /hedera-mirror-rest #7797
- Bump Spring Boot from 3.2.2 to 3.2.3 #7793
- Bump versions for v0.100.0-SNAPSHOT #7786
- Bump com.hedera.evm:hedera-evm from 0.46.3 to 0.47.0 #7771
Contributors
We'd like to thank all the contributors who worked on this release!