Skip to main content

Compatibility with the Web3 JSON-RPC Protocol

The Aurora Relayer implements the Web3 JSON-RPC protocol.

Methods

MethodStatusNotes
web3_clientVersion
web3_sha3
net_listening
net_peerCount
net_version
eth_accounts
eth_blockNumber
eth_call
eth_chainId
eth_coinbase
eth_compileLLLUnsupported
eth_compileSerpentUnsupported
eth_compileSolidityUnsupported
eth_estimateGas
eth_gasPrice
eth_getBalance
eth_getBlockByHash
eth_getBlockByNumber
eth_getBlockTransactionCountByHash
eth_getBlockTransactionCountByNumber
eth_getCode
eth_getCompilers
eth_getFilterChanges
eth_getFilterLogs
eth_getLogs
eth_getProofEIP-1186
eth_getStorageAt
eth_getTransactionByBlockHashAndIndex
eth_getTransactionByBlockNumberAndIndex
eth_getTransactionByHash
eth_getTransactionCount
eth_getTransactionReceipt
eth_getUncleByBlockHashAndIndex
eth_getUncleByBlockNumberAndIndex
eth_getUncleCountByBlockHash
eth_getUncleCountByBlockNumber
eth_getWorkUnsupported
eth_hashrate
eth_mining
eth_newBlockFilter
eth_newFilter
eth_newPendingTransactionFilter
eth_pendingTransactionsUndocumented
eth_protocolVersion
eth_sendRawTransaction
eth_sendTransactionUnsupported
eth_signUnsupported
eth_signTransactionUnsupported
eth_signTypedDataUnsupported
eth_submitHashrateUnsupported
eth_submitWorkUnsupported
eth_syncing
eth_uninstallFilter
db_getHexDeprecated
db_getStringDeprecated
db_putHexDeprecated
db_putStringDeprecated
shh_addToGroupDiscontinued
shh_getFilterChangesDiscontinued
shh_getMessagesDiscontinued
shh_hasIdentityDiscontinued
shh_newFilterDiscontinued
shh_newGroupDiscontinued
shh_newIdentityDiscontinued
shh_postDiscontinued
shh_uninstallFilterDiscontinued
shh_versionDiscontinued
txpool_contentGeth extension
txpool_inspectGeth extension
txpool_statusGeth extension
parity_pendingTransactionsParity extension

Legend: ❌ = not supported. 🚧 = work in progress. ✅ = supported.

Limitations

  • The eth_getProof method (EIP-1186) is not supported and is unlikely to be possible to implement.

Notes

  • For now, the eth_estimateGas method returns a fixed value (6,721,975, matching Truffle's default gas limit).

  • Ethereum is a proof-of-stake (PoS) network, and NEAR is a proof-of-stake (PoS) network. Therefore with Aurora all mining-related methods such as eth_getWork, eth_submitHashrate, and eth_submitWork are not supported and return an error code.

  • The eth_coinbase method returns the EVM address of the Aurora Engine. For example, for the Aurora Engine deployment on the aurora account, COINBASE returns 0x4444588443C3a91288c5002483449Aba1054192b.

  • There is no concept of uncle (aka ommer) blocks. The eth_getUncleByBlockHashAndIndex and eth_getUncleByBlockNumberAndIndex methods always return null. The eth_getUncleCountByBlockHash and eth_getUncleCountByBlockNumber methods return zero for valid block IDs and null for invalid block IDs. Additionally, uncle-related block metadata such as sha3Uncles contain all zeroes.

  • There is no access to pending transactions. The eth_newPendingTransactionFilter method creates a filter that returns nothing when polled with eth_getFilterChanges.

  • The nonstandard Geth tracing APIs are not supported at present, but we do have plans to implement them going forward. (#12)

  • The nonstandard Parity tracing APIs are not supported at present, but we do have plans to implement them going forward. (#13)

  • The eth_getFilterChanges only returns logs since the filter was created, regardless of the block passed in to create the filter.

Source Code

The Aurora Relayer source code repository is at: github.com/aurora-is-near/relayer2-public.

NOTE: Old aurora-relayer repository has been deprecated in 2 steps:

  1. Replacing current “Indexer” with a different implementation written in go-lang/rust.
  2. Replacing “JSON-RPC Endpoint” with an implementation in go-lang.