github alloy-rs/alloy v2.0.0

7 hours ago

This new major release includes several breaking changes as preparation for the Glamsterdam hardfork.

Notable breaking changes are:

  • network transaction-builder traits were reshaped: TransactionBuilder was split, network-specific methods moved to NetworkTransactionBuilder, and Network bounds tightened around TransactionRequest / TxEnvelope (#3344, #3723).
  • Blob transaction APIs changed: TransactionBuilder7594 was folded into TransactionBuilder4844, blob-sidecar methods were renamed/specialized, the default TxEip4844Variant generic changed, and PooledTransaction now uses the EIP-7594 sidecar type (#3600, #3328, #3468).
  • AnyTransactionReceipt is now a dedicated struct instead of a type alias, so code that relied on alias semantics or direct wrapped-type usage needs updating (#3153).
  • ChainConfig is now non-exhaustive, and Amsterdam support adds new header/config fields plus new BlockHeader requirements; exhaustive struct literals, pattern matches, and custom header impls may need changes (#3566, #3871).
  • Provider builder / filler APIs changed: .network() now replaces the filler stack, and GasFiller is no longer a unit struct, so .filler(GasFiller) becomes .filler(GasFiller::default()) or custom estimator wiring (#3686, #3849).
  • AnyNetwork no longer silently signs or re-encodes unknown transaction types; those paths now fail fast (#3794).
  • muxTracer now keys mux configs / frames by GethDebugTracerType instead of GethDebugBuiltInTracerType, which breaks existing tracer map code (#2442).
  • Pubsub / RPC surface types gained new variants and fields, including transactionReceipts subscriptions and newer header / transaction fields, so exhaustive enum matches and struct literals may need .. / wildcards (#3410, #3707, #3871).

What's Changed

  • fix(signer-gcp): use rustls instead of native-tls for gcloud-sdk by @zerosnacks in #3844
  • chore: release 1.8.3 by @zerosnacks in #3848
  • fix(provider): skip caching missing transaction lookups by @lmorett1 in #3826
  • fix(provider): fallback to get_block when get_header RPCs unsupported by @prestwich in #3850
  • feat: add network field to NodeInfo by @stevencartavia in #3851
  • refactor(pubsub): remove duplicate dispatch logic in reconnect() by @anim001k in #3760
  • docs(provider): clarify feature requirements for anvil helpers by @lmorett1 in #3858
  • fix(pubsub): recover request-path backend drops by @mattsse in #3846
  • feat(rpc-types-debug): add header helpers to ExecutionWitness by @mattsse in #3862
  • chore: added feature rlp to eip7928 by @Rimeeeeee in #3865
  • chore(deps): bump taiki-e/install-action from 2.69.7 to 2.74.0 by @dependabot[bot] in #3867
  • chore(deps): bump crate-ci/typos from 1.44.0 to 1.45.0 by @dependabot[bot] in #3868
  • feat(provider): add more-tuple-impls feature for multicall by @hardcore-sushi in #3861
  • fix(provider): match multicall tuple impls with alloy-core by @DaniPopes in #3869
  • revert: "revert: "chore: bump ethereum_ssz to 0.10 and tree_hash to 0.12"" by @mattsse in #3840
  • fix(network): fail fast on unknown AnyNetwork signing and 2718 encoding by @Shresth79 in #3794
  • feat(alloy-provider): add methods for creating custom gas estimator for GasFiller by @StackOverflowExcept1on in #3849
  • fix: Optimism network incompatible with ProviderBuilder::new constructor by @stevencartavia in #3686
  • feat(mux-tracer): Support JS tracer in MUX tracer. by @kustrun in #2442
  • feat: parse data field on error for eth_simulateV1 if present in response by @antonydenyer in #3570
  • Revert "Revert "feat(rpc-types-eth): add optional timestamp field to Transaction"" by @mattsse in #3639
  • refactor(network): unify EIP-4844 tx builder trait by @mablr in #3600
  • feat(rpc-types-trace): add depth-first iterator for CallFrame by @TanayK07 in #3768
  • feat(network): generic TransactionResponse to TransactionRequest conversion by @mablr in #3723
  • feat(ens): use Universal Resolver for forward name resolution by @Dhaiwat10 in #3866
  • feat(transport): add ThrottleLayer burst configuration by @Shresth79 in #3854
  • feat(consensus): change default tx env type by @lean-apple in #3328
  • fix(provider): error all callers on batch len mismatch by @Shresth79 in #3827
  • feat: add amsterdam fields by @mattsse in #3871
  • chore(dep): bump jsonwebtoken v10.3.0 fix cve by @duyquang6 in #3754
  • feat: non-exhaustive ChainConfig by @mattsse in #3566
  • reapply: "revert: remove transactionReceipts subscription kind" by @mattsse in #3410
  • feat(rpc-types-eth): add max_used_gas to SimCallResult by @gakonst in #3707
  • fix(provider): fall back to RPC on get_logs cache deserialization failure by @neowangreal in #3859
  • feat(provider): Add comprehensive Tenderly RPC API methods by @codeesura in #3120
  • feat: update PooledTransaction to use EIP-7594 sidecar by @stevencartavia in #3468
  • chore: make _non_exhaustive pub by @mattsse in #3873
  • feat(rpc-types-engine): add hidden setters to ExecutionPayload by @mattsse in #3875
  • refactor(network): extract NetworkTransactionBuilder from TransactionBuilder by @lean-apple in #3344
  • serde: support NonZero quantity types by @legion2002 in #3876
  • feat(rpc-types-anvil): add client_semver to Metadata by @ndavd in #3877
  • feat: Make AnyTransactionReceipt a dedicated type by @0xChaddB in #3153
  • chore: allow unused ignored advisories by @mattsse in #3883

New Contributors

Full Changelog: v1.8.2...v2.0.0

Don't miss a new alloy release

NewReleases is sending notifications on new releases.