#
JsonRpcProvider inherits Provider
source

The JSON-RPC API is a very popular method for interacting with Ethereum and is available in all major Ethereum node implementations (e.g. Geth and Parity) as well as many third-party web services (e.g. INFURA)

new ethers.providers.JsonRpcProvider( [ url [ , aNetworkish ] ] )
source

Connect to a JSON-RPC API located at url using the aNetworkish network. If url is not specified, the default (i.e. `http://localhost:8545`) is used and if no network is specified, it will be determined automatically by querying the node.

Note: Connecting to a Local Node

Each node implementation is slightly different and may require specific command-line flags, configuration or settings in their UI to enable JSON-RPC, unlock accounrs or expose specific APIs. Please consult their documentation.

jsonRpcProvider.getSigner( [ addressOrIndex ] ) ⇒ JsonRpcSigner
source

Returns a JsonRpcSigner which is managed by this Ethereum node, at addressOrIndex. If no addressOrIndex is provided, the first account (account #0) is used.

jsonRpcProvider.getUncheckedSigner( [ addressOrIndex ] ) ⇒ JsonRpcUncheckedSigner
source
jsonRpcProvider.listAccounts( ) ⇒ Array< string >
source

Returns a list of all account addresses managed by this provider.

jsonRpcProvider.send( method , params ) ⇒ Promise< any >
source

Allows sending raw messages to the provider.

This can be used for backend-specific calls, such as for debugging or specific account management.

##
JsonRpcSigner inherits Signer
source

A JsonRpcSigner is a simple Signer which is backed by a connected JsonRpcProvider.

signer.provider ⇒ JsonRpcProvider

The provider this signer was established from.

signer.connectUnchecked( ) ⇒ JsonRpcUncheckedSigner
source

Returns a new Signer object which does not perform addtional checks when sending a transaction. See getUncheckedSigner for more details.

signer.sendUncheckedTransaction( transaction ) ⇒ Promise< string< DataHexString< 32 > > >
source

Sends the transaction and returns a Promise which resolves to the opacque transaction hash.

signer.unlock( password ) ⇒ Promise< boolean >
source

Request the node unlock the account (if locked) using password.

##
JsonRpcUncheckedSigner inherits Signer
source

The JSON-RPC API only provides a transaction hash as the response when a transaction is sent, but the ethers Provider requires populating all details of a transaction before returning it. For example, the gas price and gas limit may be adjusted by the node or the nonce automatically included, in which case the opaque transaction hash has discarded this.

To remedy this, the JsonRpcSigner immeidately queries the provider for the details using the returned transaction hash to populate the TransactionResponse object.

Some backends do not respond immediately and instead defer releasing the details of a transaction it was responsible for signing until it is mined.

The UncheckedSigner does not populate any additional information and will immediately return the result as a mock TransactionResponse-like object, with most of the properties set to null, but allows access to the transaction hash quickly, if that is all that is required.

##
Node-Specific Methods

Many methods are less common or specific to certain Ethereum Node implementations (e.g. Parity vs Geth. These include account and admin management, debugging, deeper block and transaction exploration and other services (such as Swarm and Whisper).

The jsonRpcProvider.send method can be used to access these.

- All JSON-RPC methods (including the less common methods) which most Ethereum Nodes support.
- Parity's Trace Module can be used to trace and debug EVM execcution of a transaction (requires custom configuration)
- Geth's Debug Module can be used to debug transactions and internal cache state, etc.
- Additional Geth Methods
- Additional Parity Methods

The content of this site is licensed under the Creative Commons License. Last modified on June 12, 2020, 7:17pm.