ethers.js/docs/v5/api/providers/other/README.md
2020-11-22 23:07:13 -05:00

4.6 KiB

Documentation: html

Other Providers

FallbackProvider

**new **ethers . providers . FallbackProvider( providers [ , quorum ] )

Creates a new instance of a FallbackProvider connected to providers. If quorum is not specified, half of the total sum of the provider weights is used.

The providers can be either an array of Provider or FallbackProviderConfig. If a Provider is provided, the defaults are a priority of 1 and a weight of 1.

provider . providerConfigs => Array< FallbackProviderConfig >

The list of Provider Configurations that describe the backends.

provider . quorum => number

The quorum the backend responses must agree upon before a result will be resolved. By default this is half the sum of the weights.

FallbackProviderConfig

fallbackProviderConfig . provider => Provider

The provider for this configuration.

fallbackProviderConfig . priority => number

The priority used for the provider. Higher priorities are favoured over lower priorities. If multiple providers share the same priority, they are chosen at random.

fallbackProviderConfig . stallTimeout => number

The timeout (in ms) after which another Provider will be attempted. This does not affect the current Provider; if it returns a result it is counted as part of the quorum.

Lower values will result in more network traffic, but may reduce the response time of requests.

fallbackProviderConfig . weight => number

The weight a response from this provider provides. This can be used if a given Provider is more trusted, for example.

IpcProvider

ipcProvider . path => string

The path this Provider is connected to.

UrlJsonRpcProvider

**new **ethers . providers . UrlJsonRpcProvider( [ network [ , apiKey ] ] )

Sub-classes do not need to override this. Instead they should override the static method getUrl and optionally getApiKey.

urlJsonRpcProvider . apiKey => any

The value of the apiKey that was returned from InheritedClass.getApiKey.

InheritingClass . getApiKey( apiKey ) => any

This function should examine the apiKey to ensure it is valid and return a (possible modified) value to use in getUrl.

InheritingClass . getUrl( network , apiKey ) => string

The URL to use for the JsonRpcProvider instance.

Web3Provider

**new **ethers . providers . Web3Provider( externalProvider [ , network ] )

Create a new Web3Provider, which wraps an EIP-1193 Provider or Web3Provider-compatible Provider.

web3Provider . provider => Web3CompatibleProvider

The provider used to create this instance.

ExternalProvider

externalProvider . request( request ) => Promise< any >

This follows the EIP-1193 API signature.

The request should be a standard JSON-RPC payload, which should at a minimum specify the method and params.

The result should be the actual result, which differs from the Web3.js response, which is a wrapped JSON-RPC response.

externalProvider . sendAsync( request , callback ) => void

This follows the Web3.js Provider Signature.

The request should be a standard JSON-RPC payload, which should at a minimum specify the method and params.

The callback should use the error-first calling semantics, so (error, result) where the result is a JSON-RPC wrapped result.

externalProvider . send( request , callback ) => void

This is identical to sendAsync. Historically, this used a synchronous web request, but no current browsers support this, so its use this way was deprecated quite a long time ago

WebSocketProvider

**new **ethers . provider . WebSocketProvider( [ url [ , network ] ] )

Returns a new WebSocketProvider connected to url as the network.

If url is unspecified, the default "ws://localhost:8546" will be used. If network is unspecified, it will be queried from the network.