Skip to content

Releases: OpenZeppelin/Robust-Provider

v1.0.0

06 Mar 09:43
e5c3e2a

Choose a tag to compare

Breaking / Notable

  • Dependency/features reshape for Alloy -> smaller build size
  • tracing became an optional dependency gated by the tracing feature
  • Error::RpcError no longer wraps the inner value in Arc.
    • Error no longer Clone-able
    • If Error cloneability is needed, it can be wrapped whole in Arc.

Added

  • HTTP-based subscriptions (polling) behind feature flag
    • Adds polling subscription backend that can be enabled via:
      • features = ["http-subscription"]
      • RobustProviderBuilder::allow_http_subscriptions(true)
      • configurable RobustProviderBuilder::poll_interval
  • Robust watch_blocks function support
  • Much broader eth_* RPC method coverage
  • Added Example: examples/get_latest_block.rs.

Changed

  • Error model expanded and centralized
  • Subscription connection being closed by the node is treated as a failover-worthy error.

Fixed

  • Certain invalid filter / block errors are treated as non-retryable (reduces pointless retries).

New Contributors

Full Changelog: v0.2.0...v1.0.0

v0.2.0

15 Jan 10:57
865b0be

Choose a tag to compare

v0.2.0 Pre-release
Pre-release

What's Changed

  • Properly convert Geth errors related to non-existent blocks into BlockNotFound by @0xNeshi in #13

Full Changelog: v0.1.0...v0.2.0

v0.1.0

07 Jan 18:06
eb51b77

Choose a tag to compare

v0.1.0 Pre-release
Pre-release

Initial release

Highlights

  • Automatic retries - Exponential backoff with configurable retry attempts for transient failures
  • Transparent failover - Seamlessly switch between primary and multiple fallback RPC endpoints
  • Bounded timeouts - Per-call timeouts prevent indefinite hangs on unresponsive nodes
  • Resilient subscriptions - WebSocket block subscriptions with automatic reconnection and lag detection
  • Fluent builder API - RobustProviderBuilder for easy configuration of timeouts, retries, and fallbacks
  • Provider conversion traits - IntoRootProvider and IntoRobustProvider for flexible provider handling
  • Extensibility - try_operation_with_failover for wrapping any RPC call with full resilience logic

Notes

⚠️ This is an early release under active development. APIs may change without notice. Currently not all eth rpc endpoints are available