Repository navigation
Conversation
Ports wevm/viem#5240. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133zgX2g8oLCoH4KuY8tM9b
Ports wevm/viem#5283. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133zgX2g8oLCoH4KuY8tM9b
Ports wevm/viem#5281. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133zgX2g8oLCoH4KuY8tM9b
Ports wevm/viem#5238 and wevm/viem#5280. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133zgX2g8oLCoH4KuY8tM9b
…ith a caller signal Ports wevm/viem#5200. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133zgX2g8oLCoH4KuY8tM9b
(cherry picked from commit 36dce4a)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133zgX2g8oLCoH4KuY8tM9b
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
commit: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f470db61a6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| // Read the body within the timeout too, so a response that stalls | ||
| // after its headers cannot hang the request. | ||
| const data = await (async () => { |
There was a problem hiding this comment.
Preserve caller aborts while reading the response body
When response headers have arrived but response.json() or response.text() is still pending, aborting fetchOptions.signal now rejects the body read with AbortError inside promise.withTimeout; that helper converts every AbortError into Promise.TimeoutError. Before this change the body was read outside the timeout wrapper, so this phase propagated the caller's abort normally. Distinguish the timeout controller from the caller signal so user cancellation is not reported as a timeout.
Useful? React with 👍 / 👎.
| signal: | ||
| signals.length > 1 | ||
| ? AbortSignal.any(signals) | ||
| : (signals[0] ?? null), |
There was a problem hiding this comment.
Avoid requiring AbortSignal.any on supported runtimes
When a caller supplies fetchOptions.signal with the default positive timeout, this unconditionally invokes AbortSignal.any. The compatibility page promises Node 18+ support, but this method was only added in Node 18.17, so requests on Node 18.0–18.16 now throw TypeError: AbortSignal.any is not a function before fetchFn runs; previously those requests worked, albeit without the transport timeout. Compose the signals with a fallback for runtimes that lack the static method.
Useful? React with 👍 / 👎.
…m.fromAbi` overloads Syncs with the merged wevm/viem#5281: tuple object args are read by component name, and an empty array is ambiguous for `address[]` vs `string[]`/`bytes[]`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0133zgX2g8oLCoH4KuY8tM9b
Backports #526 to
0.x, adapted to the0.xcode and in sync with viemmainat 2867b2a. It also includes #516, which0.xnever received.0.xchangeTypedData.extractEip712DomainTypeskeeps an emptyversion. Same asmain.Hex.assert/Hex.validateevenoption. Same asmain.AbiItem.fromAbiarray overload resolution, tuple object args read by component name, and empty-array ambiguity foraddress[]vsstring[]/bytes[]. Same asmain, keeping the inline regexes of0.x.AbiEvent.assertArgs: indexedstringargs never matched, sinceHash.keccak256(Bytes)returns bytes on0.x. They now hash to hex, as onmain. Non-indexedstring/bytesnow match by value, andbytes/bytesNmatch in either hex case.0.xhas noextractLogs, so onlyassertArgschanges.RpcTransport.fromHttpappliestimeoutto the response body. It also keeps the timeout whenfetchOptions.signalis set, using theAbortSignal.anycomposition frommain.normalizeSignaturefix (keeps the first parameter after().Not included: the
Signature.toHexpadding frommain.0.xstoresr/sas bigints and already serializes them withHex.fromNumber(…, { size: 32 }).Validation:
pnpm check:typesandpnpm checkpass. The changed suites pass in thecoreproject without Anvil global setup, except existing tests that need a local Anvil node, which wasn't available. The newAbiEvent,AbiItem, andRpcTransporttests were confirmed to fail without their fixes.🤖 Generated with Claude Code
https://claude.ai/code/session_0133zgX2g8oLCoH4KuY8tM9b