Skip to content

Compatibility with the Web3 JSON-RPC Protocol

The Aurora Relayer implements the Web3 JSON-RPC protocol.

Methods

Method Status Notes
web3_clientVersion
web3_sha3
net_listening
net_peerCount
net_version
eth_accounts
eth_blockNumber
eth_call 🚧
eth_chainId
eth_coinbase
eth_compileLLL Unsupported
eth_compileSerpent Unsupported
eth_compileSolidity Unsupported
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_getProof EIP-1186
eth_getStorageAt
eth_getTransactionByBlockHashAndIndex
eth_getTransactionByBlockNumberAndIndex
eth_getTransactionByHash 🚧
eth_getTransactionCount
eth_getTransactionReceipt 🚧
eth_getUncleByBlockHashAndIndex
eth_getUncleByBlockNumberAndIndex
eth_getUncleCountByBlockHash
eth_getUncleCountByBlockNumber
eth_getWork Unsupported
eth_hashrate
eth_mining
eth_newBlockFilter 🚧
eth_newFilter 🚧
eth_newPendingTransactionFilter 🚧
eth_pendingTransactions Undocumented
eth_protocolVersion
eth_sendRawTransaction 🚧
eth_sendTransaction 🚧
eth_sign 🚧
eth_signTransaction 🚧
eth_signTypedData 🚧 EIP-712
eth_submitHashrate Unsupported
eth_submitWork Unsupported
eth_syncing
eth_uninstallFilter 🚧
db_getHex Deprecated
db_getString Deprecated
db_putHex Deprecated
db_putString Deprecated
shh_addToGroup Discontinued
shh_getFilterChanges Discontinued
shh_getMessages Discontinued
shh_hasIdentity Discontinued
shh_newFilter Discontinued
shh_newGroup Discontinued
shh_newIdentity Discontinued
shh_post Discontinued
shh_uninstallFilter Discontinued
shh_version Discontinued

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), since no gas is charged.

  • Ethereum is a proof-of-work (PoW) 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. Additionally, PoW-related block metadata such as nonce and difficulty contain all zeroes.

  • 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)

Source Code

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