Skip to content

Releases: hashgraph/hedera-json-rpc-relay

v0.13.0-rc3

02 Dec 18:31
921114b
Compare
Choose a tag to compare
v0.13.0-rc3 Pre-release
Pre-release

Full Changelog: v0.12.0...v0.13.0-rc3

v0.13.0-rc2

03 Jun 03:46
4a6e824
Compare
Choose a tag to compare
v0.13.0-rc2 Pre-release
Pre-release

Full Changelog: v0.12.0...v0.13.0-rc2

v0.13.0-rc1

03 Jun 03:45
390cd41
Compare
Choose a tag to compare
v0.13.0-rc1 Pre-release
Pre-release

Full Changelog: v0.12.0...v0.13.0-rc1

v0.12.0

23 Nov 23:42
f6ea522
Compare
Choose a tag to compare

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!

v0.12.0-rc1

03 Jun 03:43
6ee0d82
Compare
Choose a tag to compare
v0.12.0-rc1 Pre-release
Pre-release

Full Changelog: v0.11.0...v0.12.0-rc1

v0.11.0

08 Nov 23:10
1b1832d
Compare
Choose a tag to compare

Enhancements

V0.11.0 of the Hedera JSON RPC Relay adds improvements to error handling and logging, gives additional configuration control, provides additional examples of functionality and lastly enhances compatibility with other EVM chains.

To improve log visibility, a request id has been added to acceptance tests and the evm_addresses had been added to contract logs. Error handling has been improved in order to give better feedback to developers. Lastly, the log object will return the EVM address rather than the Hedera address for compatibility.

Rate limiting can now be disabled via an environment variable for local testing.

An example was added for doing HTS token associations in the DApp example.

The admin key will no longer be set on contract create in order to provide parity with other EVM implementations.

  • Bump 0.11.0 #676
  • Bump 0.11.0-rc1 #671
  • Set Request ID on Acceptance Tests #659
  • Add env variable to control rate limiting #655
  • Add configuration to disable rate limiter #654
  • Pull evm_address for contract logs #650
  • Add a HTS token association example to DApp example #647
  • Bump 0.11.0-snapshot #636
  • Bump @xmldom/xmldom from 0.7.5 to 0.7.6 in /tools/web3js-example #632
  • Bump @xmldom/xmldom from 0.7.5 to 0.7.6 in /tools/hardhat-example #631
  • Bump @xmldom/xmldom from 0.7.5 to 0.7.6 in /dapp-example #630
  • Bump @xmldom/xmldom from 0.7.5 to 0.7.6 #627
  • Better error handling #624
  • Add a HTS token association example to DApp example #620
  • Set requestId on acceptance test calls #608
  • Do not set admin key on contract create for parity with EVM chains #585

Bug Fixes

  • Investigate test runs in CI #662
  • Dev tools and Dapp example tests Fix #649
  • Fix transaction index param #648
  • The log object should return the evm address not the hedera entity address #644
  • Add missing python to node alpine base image #640
  • Truffle dev tool broken on PollingBlockTracker #638
  • eth_getTransactionByBlockHashAndIndex and eth_getTransactionByBlockNumberAndIndex transaction index param #634

Documentation

  • Update subgraph dynamic datasources status #665

Contributors

Thank you to all the contributors who worked on this release:

@Ivo-Yankov, @Nana-EC, @dependabot[bot], @dimitrovmaksim, @georgi-l95, @lukelee-sl, and @natanasow

Full Changelog: v0.10.0...v0.11.0

v0.11.0-rc1

03 Jun 03:43
ed1fb75
Compare
Choose a tag to compare
v0.11.0-rc1 Pre-release
Pre-release

Full Changelog: v0.10.0...v0.11.0-rc1

v0.10.0

25 Oct 17:46
3673a97
Compare
Choose a tag to compare

v0.10.0 of the Hedera JSON RPC Relay adds support to a new endpoint eth_maxPriorityFeePerGas as well as improvements to IHederaTokenService precompile contract access, rate limiting, subgraph support and metamask NFT support.

The eth_maxPriorityFeePerGas API endpoint was added to increase our coverage of the RPC API methods expected by tools.

The relay was updated to support direct calls to the IHederaTokenService precompile contract. eth_getCode calls to the IHederaTokenService contract won't fail and in this way developers can make calls to the contract from their dev tools using the contract address without requiring a wrapper contract on ledger to route the call.

Rate limiting logic continues to be improved, in this release a bug was fixed in which some clients were unnecessarily being throttled.

Subgraph support was also expanded and documentation updated to highlight the current extent of support - The Graph Integration. Advancements will continue to be made as they become possible with the Mirror EVM Archive Node.

A metamask issue was also resolved in which NFTs being loaded into Metamask were witnessing a UI stall due to limited Metamask logic. The relay was updating to support additional logic to better report serial details and support Metamask RPC calls.

Enhancements

  • Bump 0.10.0 #652
  • Bump 0.10.0-rc2 #646
  • Add missing python to node alpine base image (0.10) #643
  • Bump 0.10.0-rc1 #635
  • Update eth_getCode to handle call to iHTS address #629
  • Updated eth_getCode to support IHederaTokenService precompile direct call #628
  • Add logging and metrics to rate limit logic #622
  • Add logging and metrics to rate limit logic #621
  • Bump local node acceptance test images for 0.31.A #618
  • Bump local node acceptance test images for 0.31.A #617
  • Optimize eth_getLogs() #616
  • Bump apollo-server-core from 3.10.0 to 3.10.3 in /tools/truffle-example #615
  • Improve Rate Limiter Tiers for Development Tools #613
  • Add graph integration status #611
  • Improve tiered rate limit for dev tools #609
  • Update subgraph example docs #607
  • Review and enhance The Graph docs #601
  • Add support for eth_maxPriorityFeePerGas #595
  • Add TransactionRecordQuery calls to capture failed transaction costs #593
  • Capture missing costs from failed consensus node transactions #592
  • Remove Acceptance Tests and Dapp Test workaround #589
  • Bump 0.10.0-snapshot #587
  • Add support for eth_maxPriorityFeePerGas #586
  • Unit tests for HBAR Rate limit #584
  • HTS NFTs not supported in Metamask mobile wallet #583
  • Unit tests for HBAR Rate limit #582
  • Remove local node workaround for dapp and acceptance tests #507
  • Bump got and web3 in /tools/web3js-example #475

Bug Fixes

  • docker image build broken on missing python #639
  • Fix rate limit not reseting #637
  • Rate limiting cache occasionally not resetting after long periods #623
  • Handle null gas_used from contract results #610
  • Relay can't handle null gas_used #606
  • Revert reason in eth_call #604
  • Transfer HBAR with Metamask mobile app not working #602
  • Handle empty hex bloom in eth_getTransactionReceipt #600
  • eth_getTransactionReceipt - Return EthImpl.emptyBloom if receiptResponse.bloom == EthImpl.emptyHex #599
  • eth_getCode to return the redirect bytecode for HTS tokens #598
  • eth_getCode to return the redirect bytecode for HTS tokens #594
  • subgraph-example project startblock failed dependency #591
  • eth_getLogs - fromBlock and toBlock should default to latest #590
  • getLogs can't use topics filter without timestamp range #576
  • Dapp tests failing in CI #573
  • eth_getLogs does not return anything if filtered #494
  • Revert reason not sent back in reverted contract call #492

Full Changelog: v0.9.0...v0.10.0

Contributors

We'd like to thank all the contributors who worked on this release!

v0.10.0-rc1

03 Jun 03:42
d04eb58
Compare
Choose a tag to compare
v0.10.0-rc1 Pre-release
Pre-release

Full Changelog: v0.9.0...v0.10.0-rc1

v0.9.0

11 Oct 15:50
b9dc880
Compare
Choose a tag to compare

v0.9.0 of the Hedera JSON RPC Relay brings improvements to the eth_getBalance and eth_getTransactionCount as well as increased support for metrics and rate limiting.

eth_getBalance was updated with support to filter search based on blockNumberOrTag, thus allowing for historic balance queries against the Mirror Node.

eth_getTransactionCount was updated to query the Mirror Node instead on consensus nodes, further more reducing the expenses by the relay.

The relay rate limit logic was expanded to include HBAR rate limiting. Now access to relay calls can be more evenly spread by rate limiting accounts based on HBAR consumption.

The SDKClient transaction and transactionRecord execution logic was updated to use TransactionRecordQuery to help improve metrics and better capture costs for the relay account.

The Helm charts were updated to support rate limit configuration on deployment in kubernetes environments. With this relay runners can customize rate limit tier values and windows to their use case.

Multiple API response schema improvements were made to improve expected formats of outputs utilized by development client tools.

Enhancements

  • Bump 0.9.0 #603
  • Bump 0.9.0-rc2 #597
  • Add TransactionRecordQuery calls to capture failed transaction costs (0.9) #596
  • Bump 0.9.0-rc1 #588
  • Fix constants. Set effectiveGasPrice to 0 if null #581
  • Improve Koa and KoaJsonRpc classes #580
  • Dapp Tests Workaround #579
  • Add chart rate limit configuration support #578
  • Add HBAR Rate Limit support #575
  • Update Deployment Logic with Rate Limit Configs #571
  • process.env variables are undefined at the time of constants module initializations #562
  • eth_getTransactionReceipt: effectiveGasPrice has 0xNaN as value for non-eth transactions #561
  • Update acceptance test github action order #556
  • Update acceptance test github action order #555
  • Update eth_transactionaccount to use mirror #552
  • update eth_getTransactionCount to call mirror node #550
  • eth_getBalance search by blockNumberOrTag #549
  • Rate limit test workaround #548
  • Acceptance tests fail due to rate limiting logic #547
  • Bump services 0.30 and mirror 0.65.0-beta1 #544
  • bump acceptance test images for 0.30.0 release #543
  • Bump 0-9-0 snapshot #538
  • update nonce precheck logic #535
  • Update eth_getBalance to filter search based on blockNumberOrTag #531
  • Increase cohesion between koa and koaJsonRpc #530
  • Add rate limit by HBAR support #528

Bug Fixes

  • Nonce to 0 for Hedera native transactions #568
  • Nonce is null for hedera native transactions #566
  • return the evm address in the from field when calling getTransactionByHash #551
  • ECDSA alias not returned in eth_getTransactionByHash response #505
  • eth_getTransactionByHash yields null result #371

Full Changelog: v0.8.0...v0.9.0

Contributors

We'd like to thank all the contributors who worked on this release!