This new major release includes several breaking changes as preparation for the Glamsterdam hardfork.
Notable breaking changes are:
networktransaction-builder traits were reshaped:TransactionBuilderwas split, network-specific methods moved toNetworkTransactionBuilder, andNetworkbounds tightened aroundTransactionRequest/TxEnvelope(#3344,#3723).- Blob transaction APIs changed:
TransactionBuilder7594was folded intoTransactionBuilder4844, blob-sidecar methods were renamed/specialized, the defaultTxEip4844Variantgeneric changed, andPooledTransactionnow uses the EIP-7594 sidecar type (#3600,#3328,#3468). AnyTransactionReceiptis now a dedicated struct instead of a type alias, so code that relied on alias semantics or direct wrapped-type usage needs updating (#3153).ChainConfigis now non-exhaustive, and Amsterdam support adds new header/config fields plus newBlockHeaderrequirements; 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, andGasFilleris no longer a unit struct, so.filler(GasFiller)becomes.filler(GasFiller::default())or custom estimator wiring (#3686,#3849). AnyNetworkno longer silently signs or re-encodes unknown transaction types; those paths now fail fast (#3794).muxTracernow keys mux configs / frames byGethDebugTracerTypeinstead ofGethDebugBuiltInTracerType, which breaks existing tracer map code (#2442).- Pubsub / RPC surface types gained new variants and fields, including
transactionReceiptssubscriptions 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
NodeInfoby @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
GasFillerby @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
TransactionResponsetoTransactionRequestconversion 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_gastoSimCallResultby @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
NetworkTransactionBuilderfromTransactionBuilderby @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
- @lmorett1 made their first contribution in #3826
- @hardcore-sushi made their first contribution in #3861
- @antonydenyer made their first contribution in #3570
- @TanayK07 made their first contribution in #3768
- @Dhaiwat10 made their first contribution in #3866
- @duyquang6 made their first contribution in #3754
- @codeesura made their first contribution in #3120
- @legion2002 made their first contribution in #3876
- @ndavd made their first contribution in #3877
Full Changelog: v1.8.2...v2.0.0