v0.12.0 of the Hedera JSON RPC Relay brings improvements to gasPrice prechecks, mirror node query management, cache management and test coverage.
Occasionally it was witnessed that gasPrice calculations may be off by 1 tinybar when exchange rates change. During an eth_submitRawTransaction
this provided an undesired user experience. To improve this, the relay supports a GAS_PRICE_TINY_BAR_BUFFER
to allow closely prices transactions in range to make it through.
In failed EthereumTransaction
scenarios the Mirror Node currently does not return a transaction index in the contracts results query. Previously this broke the expectations of a valid response value with the relay <-> mirror node interactions. As a work around the relay handles this scenario and allows for transaction receipts to still be returned.
The Mirror Node processes a record file / block every 2 seconds. This may sometimes mean requests to get info on transactions submitted less than 2 seconds ago may result in a not found. To manage this we added (on a 2nd attempt) retry logic to manage the need to wait for one more block time.
The js-cache
was replaced with lru-cache
package to support LRU capabilities and additionally caching logic. In this way the relay can customize the maximum number of items in cache and also the maximum time any objects may stay in cache.
A DEV_MODE
mode option was added to the relay to allow support for customized local node behaviours. In this may features may be configured to prioritize local development in non production environments.
Acceptance tests were adde to increase coverage or the eth_getStorageAt
endpoint which allows state querying on a contract.
Enhancements
- Bump 0.12.0 #705
- Bump 0.12.0-rc1 #697
- Bump test images version and SDK version #696
- Add logic to handle missing transaction index #693
- Add intermittent gasPrice Buffer Logic #690
- Use evm_address from mirror node query of recently deployed contracts to populate the transaction receipt result #686
- Use evm_address from mirror node query of recently deployed contracts to populate the transaction receipt result #685
- Retry on failed request to mirror node #679
- bump 0.12.0-snapshot #670
- Developer mode #668
- Replace js-cache with lru-cache #666
- Add acceptance test for getStorageAt #664
- Explore js-cache alternative #658
- Add
eth_getStorageAt
acceptance test coverage #449
Bug Fixes
- Transaction Receipt fails to handle undefined transaction index #692
- hardhat deploy plugin fails on testnet relay #678
- Error when deploying on testnet and previewnet with truffle #669
- Revert reason is not sent back in transaction receipt #661
- Size limit on call result return value to view pure function #533
- eth_getStorageAt always returns 0x0000000000000000000000000000000000000000000000000000000000000000 #495
Dependency Upgrades
- Bump loader-utils from 2.0.2 to 2.0.4 in /dapp-example #691
- Bump loader-utils from 2.0.2 to 2.0.3 in /dapp-example #684
Full Changelog: v0.11.0...v0.12.0
Contributors
We'd like to thank all the contributors who worked on this release!