Crate alloy_provider

Source
Expand description

§alloy-provider

Interface with an Ethereum blockchain.

This crate contains the Provider trait, which exposes Ethereum JSON-RPC methods. Providers in alloy are similar to ethers.js providers. They manage an RpcClient and allow other parts of the program to easily make RPC calls.

Unlike an ethers.js Provider, an alloy Provider is network-aware. It is parameterized with a Network from [alloy-networks]. This allows the Provider to expose a consistent interface to the rest of the program, while adjusting request and response types to match the underlying blockchain.

Providers can be composed via stacking. For example, a Provider that tracks the nonce for a given address can be stacked onto a Provider that signs transactions to create a Provider that can send signed transactions with correct nonces.

The ProviderBuilder struct can quickly create a stacked provider, similar to tower::ServiceBuilder.

§Feature flags

  • pubsub - Enable support for subscription methods.
  • ws - Enable WebSocket support. Implicitly enables pubsub.
  • ipc - Enable IPC support. Implicitly enables pubsub.

§Usage

TODO :)

Re-exports§

Modules§

  • Extended APIs for the provider module.
  • Transaction Fillers
  • Useful layer implementations for the provider. Currently this module contains the AnvilLayer, AnvilProvider and ChainLayer types.
  • Provider-related utilities.

Structs§

Enums§

Traits§

  • Trait that helpes convert EthCall into a ProviderCall.
  • Provider is parameterized with a network and a transport. The default transport is type-erased, but you can do Provider<Http, N>.
  • A layering abstraction in the vein of tower::Layer
  • Trait for Providers, Fill stacks, etc, which contain NetworkWallet.

Functions§

Type Aliases§