Blockchain explorer for Ethereum based network and a tool for inspecting and analyzing EVM based blockchains.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
blockscout/apps/ethereum_jsonrpc
Luke Imhoff 62777c078f
Update apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transaction.ex
6 years ago
..
config Include import_id and transaction_id in logger metadata 6 years ago
lib Update apps/ethereum_jsonrpc/lib/ethereum_jsonrpc/transaction.ex 6 years ago
priv/js/ethereum_jsonrpc/geth/debug_traceTransaction Add trace addresses to Geth tracer output 6 years ago
test Update Parity Sokol node tests 6 years ago
.gitignore cd apps; mix new ethereum_jsonrpc 7 years ago
README.md Update sokol node tests 6 years ago
mix.exs Add missing dependencies to ethereum_jsonrpc 6 years ago

README.md

EthereumJSONRPC

Ethereum JSONRPC client.

Configuration

Configuration for parity URLs can be provided with the following mix config:

config :ethereum_jsonrpc,
  url: "http://localhost:8545",
  trace_url: "http://localhost:8545",
  http: [recv_timeout: 60_000, timeout: 60_000, hackney: [pool: :ethereum_jsonrpc]]

Note: the tracing node URL is provided separately from :url, via :trace_url. The trace URL and is used for fetch_internal_transactions, which is only a supported method on tracing nodes. The :http option is passed directly to the HTTP library (HTTPoison), which forwards the options down to :hackney.

Testing

Parity

Mox

This is the default setup. mix test will work on its own, but to be explicit, use the following setup:

export ETHEREUM_JSONRPC_CASE=EthereumJSONRPC.Case.Parity.Mox
export ETHEREUM_JSONRPC_WEB_SOCKET_CASE=EthereumJSONRPC.WebSocket.Case.Mox
mix test --exclude no_parity

HTTP / WebSocket

export ETHEREUM_JSONRPC_CASE=EthereumJSONRPC.Case.Parity.HTTPWebSocket
export ETHEREUM_JSONRPC_WEB_SOCKET_CASE=EthereumJSONRPC.WebSocket.Case.Parity
mix test --exclude no_parity
Protocol URL
HTTP http://localhost:8545
WebSocket ws://localhost:8546

Geth

Mox

export ETHEREUM_JSONRPC_CASE=EthereumJSONRPC.Case.Geth.Mox
export ETHEREUM_JSONRPC_WEB_SOCKET_CASE=EthereumJSONRPC.WebSocket.Case.Mox
mix test --exclude no_geth

HTTP / WebSocket

export ETHEREUM_JSONRPC_CASE=EthereumJSONRPC.Case.Geth.HTTPWebSocket
export ETHEREUM_JSONRPC_WEB_SOCKET_CASE=EthereumJSONRPC.WebSocket.Case.Geth
mix test --exclude no_geth
Protocol URL
HTTP https://mainnet.infura.io/8lTvJTKmHPCHazkneJsY
WebSocket wss://mainnet.infura.io/ws/8lTvJTKmHPCHazkneJsY

Installation

The OTP application :ethereum_jsonrpc can be used in other umbrella OTP applications by adding ethereum_jsonrpc to your list of dependencies in mix.exs:

def deps do
  [
    {:ethereum_jsonrpc, in_umbrella: true}
  ]
end