Skip to content

v3 - #4930

Draft
jxom wants to merge 438 commits into
mainfrom
v3
Draft

v3#4930
jxom wants to merge 438 commits into
mainfrom
v3

Conversation

@jxom

@jxom jxom commented Jul 30, 2026

Copy link
Copy Markdown
Member

npm i viem@next

jxom added 30 commits July 16, 2026 15:12
# Conflicts:
#	.github/workflows/prepublish.yml
#	package.json
#	pnpm-lock.yaml
#	pnpm-workspace.yaml
#	src/CHANGELOG.md
#	src/actions/ens/getEnsAvatar.test.ts
#	src/actions/public/getBlock.test.ts
#	src/actions/public/getTransaction.test.ts
#	src/celo/formatters.test.ts
#	src/clients/createClient.ts
#	src/errors/version.ts
#	src/package.json
#	src/utils/abi/decodeAbiParameters.test.ts
#	src/utils/abi/decodeAbiParameters.ts
#	src/utils/chain/extractChain.test.ts
#	test/vitest.config.ts
tmm and others added 4 commits November 2, 2026 05:11
Updates ox to 1.8.13, which brings the ABI, typed data, SIWE, fee cap,
authorization and Tempo configurable-account fixes that the merge left
to ox. Ports the parts that needed it: factory-less configurable account
addresses, `Account.fromConfig({ upgrade })`, relay caching of upgrade
configs, and the upgrade e2e tests on the sha-179347b test image.

Also decodes requested anonymous event logs, retries by HTTP status under
`fallback`, signs the sponsored payload for raw `feePayer: true` requests,
routes pending configurable-account sponsorship through the relay,
restores block `transactions` narrowing for chains with block codecs, and
gates admin access-key tests behind T14 (TIP-1137) with deprecation docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
Brings v3 to parity with the viem `main` changes merged since the last
sync, per a commit-by-commit audit:

- `Actions.call` asserts fees, so a tip above a zero fee cap throws.
- JSON-RPC errors from non-2xx responses carry the `HttpError` (status,
  headers) as their cause.
- `waitForReceipt` stops searching for a replacement once the original
  transaction is seen mined, with edge-case tests for replacement hooks.
- Tests for concurrent watchers, `client.scope`, and per-Client caches.
- Configurable accounts sign the sponsored payload for `feePayer: true`.
- Ports missing Tempo execution-error and configurable-account e2e tests,
  and types relay-filled `validAfter`/`validBefore` on `prepare`.
- CI pins every action by SHA, consolidates pnpm setup, and moves to node
  24.22.1 and bun 1.4.4.
- Prereleases publish to npm under the `v3` and `pr-<number>` dist-tags.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
Brings in the `3.0.0-next.14` release from wevm/viem's `v3` branch so both
v3 lines share history. Its squashed main merge and `NonceManager.reset`
port duplicate work already on this branch, so their content is kept from
this side; the release version, changelog and pre-release state come from
`v3`. Restores the released `ox-1-8-8` changeset and limits `ox-1-8-13`
to the fixes new in that release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
Comment thread src/core/Client.ts
tokens,
transport,
type,
uid: uid(),
Comment thread src/core/Client.ts
...options,
signal: options.signal ?? controller.signal,
// The request `uid` keys in-flight request deduplication.
uid: options.uid ?? id,
Comment thread src/core/Client.ts
// The request `uid` keys in-flight request deduplication.
uid: options.uid ?? id,
})) as typeof client.request
let scoped = decorate({ ...client, request, uid: id }, [])
tmm and others added 4 commits November 2, 2026 06:06
npm rejects `v3` as a dist-tag because it parses as a SemVer range.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
The published package's `repository.url` is wevm/viem, which npm trusted
publishing requires the publishing repository to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
- Audit: bump the site's Vite to ^8.1.6, patch Alto's fast-uri 2.x to 2.4.8,
  and ignore the vite-plus 0.1 dev-server advisories, which are only fixed in
  the vite-plus 1.x major.
- Fuzz: run Tempo fuzz against the latest node instead of a pre-T14 digest,
  matching the T14 expiring nonce rules and upstream CI.
- Declarations: keep ox's `OneOf` and `UnionCompute` nameable now that ox
  1.8.13 types the `eth_fillTransaction` result with them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
Raises the size limits that the merged upstream features and ox 1.8.13 grew
past, and pads `getProof` storage keys before snapshotting, since the
upstream node serving the fork may return them unpadded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
Enables the vocs inline twoslash cache, as upstream does, and commits the
cached results for every snippet. Cold builds no longer re-check ~4,800
snippets against Viem's types, which took over an hour and exceeded
Vercel's 45-minute limit; a cached build takes about 5 minutes.

Also fixes the Relay.autoSwap example, which read fields that the
untyped capabilities bag does not expose.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
`vocs build` embeds every page into the remote AI search index in the
same process as bundling and static generation, which ran the 8 GB
Vercel build machine out of memory. Sync the index in its own process
first with `vocs embeddings generate`, then build with
`--no-embeddings`. The sync is skipped when AI search is disabled.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
Defers waku's static generation out of the Vite build process so bundler
memory is released before pages are generated, keeping the docs build
within the 8 GB Vercel build machine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01D3nmWiUGvfhsYDYEfqLhPs
ampagent and others added 2 commits November 8, 2026 20:36
Merges viem `main` (bb12b94..17c2c52) into v3 and ports the upstream
changes to the v3 layout. Files v3 had removed or restructured are kept
removed, with their fixes ported into the v3 equivalents:

- Transactions: `transaction.sendSync` handling of error code 4 (and
  `fallback` no longer resending it), `transaction.fill` dropping
  `gasPrice` next to EIP-1559 fees, `transaction.waitForReceipt` reorg
  refresh and `signal`, and an `afterFillTransactionError` prepare phase.
- Watchers: `block.watch` / `block.watchNumber` emit missed blocks on
  fast chains, with a default 100-block catch-up cap.
- Transports: no retries for method refusals, per-transport HTTP batches,
  `Headers`/tuple `fetchOptions.headers`, and less per-request overhead.
- ENS leading-zero EVM addresses and ERC-4337 falsy `paymasterContext`.
- Tempo: `Account.serialize`/`deserialize`, T14 configurable account sync
  (admin keys removed, `fromConfig({ access })`), key authorization fill
  retry, Multicall3 on Tempo chains, and the experimental Gateway actions.

Not ported: fixes owned by ox (unreleased on ox main), the parts of the
T14 sync that need ox's `AccountOperation.userAddress`, main's foundry,
pnpm and environment link changes, zksync, and the `simulateContract`
null account fix, which v3's types do not allow.

Amp-Thread-ID: https://ampcode.com/threads/T-01a1bcdf-9dbd-751b-b64d-fd0750b4a174
Co-authored-by: jxom <jake@tempo.xyz>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

This branch had an error being deployed

1 failed deployment
Preview — ac247f98 Deployed Nov 8, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants