Skip to content

chore: version package (next) - #5376

Merged
jxom merged 1 commit into
v3from
changeset-release/v3
Nov 8, 2026
Merged

jxom merged 1 commit into
v3from
changeset-release/v3

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to v3, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

v3 is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on v3.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

viem@3.0.0-next.15

Patch Changes

  • #5411 3708ffc Thanks @jxom! - viem/tempo: Removed the getKey read before transactions from an access key with a pending key authorization, retrying the fill without the authorization when the chain has already registered the key.

  • #5310 7e015cb Thanks @BaronOdon! - Added Molibra chain.

  • #5321 af06257 Thanks @evanaronson! - Removed a trailing slash from the ZKsync explorer URL.

  • #5358 179a536 Thanks @Turkchain1919! - Added Turkchain Mainnet (Chain ID: 1919) to the supported chains.

  • #4930 06a865a Thanks @jxom! - Fixed Actions.event.getLogs, Actions.event.watch, Actions.event.createFilter, Actions.filter.getChanges, Actions.filter.getLogs, and the contract event actions never decoding anonymous event logs, which are now decoded when every requested event is anonymous (such as a single anonymous event or eventName), and fixed an anonymous event in events producing an invalid topic filter.

  • #5274 bea62b1 Thanks @mmv08! - Changed the default cacheTime to the shorter of pollingInterval and half of chain.blockTime, so block numbers are cached for at most half a block.

  • #5253 94e5c08 Thanks @decofe! - Increased the base fee multiplier to 2 for HyperEVM mainnet and testnet to provide more headroom for fee increases.

  • #5364 8f2a79b Thanks @jxom! - Changed CCIP Read lookups to apply the Client transport timeout (the longest of a fallback's transports) to gateway requests and to share one budget of 256 gateway requests (one per URL) and 16 concurrent requests across a lookup's callbacks and nested local batches.

  • #4930 06a865a Thanks @jxom! - Fixed Chain.ExtractBlock for chains with a block codec, such as Tempo and OP Stack, to narrow transactions on includeTransactions and the hash, logs bloom, nonce, and number on a 'pending' blockTag.

  • #5258 13c0386 Thanks @jxom! - Added client.scope for creating a Client, memoized per signal, that does not share in-flight requests, cached values, or request batches with other Clients.

    const scoped = client.scope({ signal: request.signal });
    const blockNumber = await Actions.block.getNumber(scoped);
  • Fixed Actions.ens.getAvatar failing on inline SVGs and base64 NFT metadata with non-ASCII characters or line breaks, and substituting decimal ERC-1155 token IDs into {id} metadata URIs instead of 64-character hex.

  • #5360 41801d8 Thanks @jxom! - viem/tempo: Raised the default expiring nonce validBefore from 25 to 270 seconds, capped Relay.feePayer expiring nonce windows at 300 seconds, added Expiry.expiringNonceMax, and replaced the random expiring nonce validAfter with a random nonce discriminator.

  • #5360 41801d8 Thanks @jxom! - Fixed sponsored Actions.transaction.prepare fills keeping a requested feeToken (and validity bounds) that the fee payer did not sign, which made the fee payer signature invalid.

  • #5411 3708ffc Thanks @jxom! - Added an afterFillTransactionError phase to chain transaction.prepare hooks that receives the fill error and retries eth_fillTransaction once with the request the hook returns.

  • #5378 cbdd610 Thanks @mmv08! - Fixed transaction.fill returning gasPrice next to EIP-1559 fees on Anvil, which Geth, reth, and Anvil 1.8.5 and later reject when sent back with "both gasPrice and (maxFeePerGas or maxPriorityFeePerGas) specified".

  • #5298 a69e96c Thanks @jxom! - Fixed OP Stack Actions.l1.getTimeToFinalize ignoring the resolution and finality delay of the proof's dispute game.

  • #5282 52140fe Thanks @jxom! - Fixed http transport batches and RpcClient.http batch requests mishandling a server that rejected the whole batch with a single error or returned fewer responses than requests.

  • #5389 5a7ec09 Thanks @mortezashojaei! - Fixed http transport batches using another transport's authorization headers and request configuration.

  • #5404 39d9b10 Thanks @jxom! - Fixed the http transport and RpcClient.http dropping fetchOptions.headers supplied as Headers instances or tuple arrays.

  • #5286 8e058ca Thanks @jxom! - Fixed the http transport, including under the fallback transport, to retry JSON-RPC errors from non-2xx responses by their HTTP status and Retry-After header, added rpcError to RpcClient.HttpError for those responses, and set that RpcClient.HttpError (with its status and headers) as the cause of the JSON-RPC error they surface as.

  • #5346 7156f80 Thanks @KieranAltman! - Updated HashKey Chain and HashKey Chain Testnet display names, native currency name, and block explorer URLs.

  • #5392 9348d38 Thanks @gakonst! - Stopped retrying JSON-RPC method-not-found (-32601) and method-not-supported (-32004) errors from non-2xx HTTP responses, since a retry gets the same refusal.

  • #5273 ef92315 Thanks @mmv08! - Updated monad and monadTestnet blockTime to 300 ms.

  • #5373 ddc2d36 Thanks @jxom! - Added an optional nonce to NonceManager reset parameters, which Actions.transaction.send and Actions.transaction.sendSync now set to the consumed nonce when a send fails after consume returned.

  • #5303 d10dc3c Thanks @jxom! - Mapped OutOfFunds node errors to RpcError.InsufficientFundsError.

  • #4930 06a865a Thanks @jxom! - Updated ox to 1.8.13, which resolves contract function overloads by array length and integer or fixed-bytes range (throwing AbiItem.AmbiguityError for indistinguishable overloads), matches event.getLogs args filters on bytes values in any hex case and on non-indexed string and bytes values, rejects out-of-range integer and dirty address words in decoded ABI data, adds an even option to Hex.assert and Hex.validate, rejects invalid EIP-712 struct names and field types with TypedData.InvalidStructTypeError and TypedData.InvalidTypeError (replacing TypedData.InvalidTypedDataTypeError) and keeps an empty EIP712Domain version, accepts punycode top-level domains in Siwe.createMessage, rejects a maxPriorityFeePerGas above a zero maxFeePerGas when asserting or deserializing transaction envelopes, parses and serializes EIP-7702 authorizations with a yParity above 1, and pads short r and s values in Signature.toHex and Signature.toBytes.

  • #5371 035c519 Thanks @jxom! - Made Authorization.verify return false for an EIP-7702 authorization with a yParity other than 0 or 1, which EIP-7702 treats as having no authority.

  • #5431 8b040a3 Thanks @jxom! - Fixed the ERC-4337 Actions.userOperation.prepare replacing a falsy per-operation paymasterContext (false, 0, '', or null) with the Bundler Client's default paymasterContext.

  • #5284 b3e3947 Thanks @jxom! - Added a replacement option to Actions.transaction.waitForReceipt that looks up a dropped transaction by sender and nonce to detect its replacement, and made the wait call onReplaced for a replacement found while it waits for more confirmations.

  • #5406 bb7c12c Thanks @jxom! - Fixed transaction.waitForReceipt returning a discarded receipt after a reorg while waiting for confirmations.

  • #5443 bb4662f Thanks @jxom! - Added a signal option to transaction.waitForReceipt that stops the wait, rejecting receipt with the signal's reason.

  • #5314 c0d52cd Thanks @jxom! - viem/tempo: Keyed Relay.accounts configs by chain and added a resolveConfig option for configs the store does not hold.

  • #5356 51b4392 Thanks @jxom! - viem/tempo: Added Relay.autoSwap, which recovers InsufficientBalance fills that opt in with capabilities.autoSwap by prepending a stablecoin DEX buy of the missing amount.

  • viem/tempo: Changed Relay.simulate to return balanceDiffs only for requests with capabilities.balanceDiffs: true, report same-token incoming and outgoing transfers separately, measure approval exposure as the allowance left after the calls, and read ERC-20 metadata for non-TIP-20 tokens.

  • #5392 9348d38 Thanks @gakonst! - Reduced per-request overhead of RpcClient.http and RpcClient.webSocket (and the http and webSocket transports) by building the onRequest Request only when the hook is set and the TimeoutError only when a request times out.

  • #5288 75ffe81 Thanks @jxom! - Fixed request retries firing immediately for Retry-After headers in HTTP-date form or for delays longer than the 24.8-day timer limit.

  • #5241 da50caa Thanks @ksrr9351! - Added RWA Chain and RWA Chain Sepolia chains.

  • #5301 efda1c4 Thanks @jxom! - Fixed Actions.wallet.sendCalls dropping a call's dataSuffix when the call has no data.

  • #5306 30833ec Thanks @jxom! - Fixed importing viem, viem/chains, viem/tempo, and other entrypoints under SES lockdown(), which threw Cannot assign to read only property 'call'.

  • Fixed SignatureErc2098.toSignature returning an unpadded r, and SignatureErc2098.from silently corrupting signatures with a high s or a yParity other than 0 or 1, which now throw SignatureErc2098.InvalidSError and Signature.InvalidYParityError.

  • #5302 c42c189 Thanks @jxom! - Fixed OP Stack Actions.l1.getWithdrawalStatus, Actions.l1.getTimeToProve, and Actions.l1.waitToProve matching super-root games against the L2 block number instead of the withdrawal's L2 timestamp, which they now read from the receipt logs' blockTimestamp (or throw Withdrawal.L2TimestampRequiredError).

  • #5377 42c41ca Thanks @mmv08! - Fixed transaction.sendSync and contract.writeSync failing at once and freeing the nonce when the node had accepted the transaction but stopped waiting for its receipt (eth_sendRawTransactionSync error code 4), even if the error had no transaction hash, and stopped fallback from sending that transaction to the next node.

  • #5401 1d45769 Thanks @jxom! - viem/tempo: Marked the aggregate Abis exports (core, earn, zone, propAmm, all) as pure so bundlers drop the ABIs a consumer does not import.

  • #5388 141f8c0 Thanks @jxom! - Added Account.serialize and Account.deserialize to viem/tempo, which store a configurable account (TIP-1107) as JSON and rebuild it with passkey owners that sign, Account.AddressMismatchError for a version-zero config that does not derive the stored address, and a keyAuthorization option to access key accounts that attaches a signed key authorization to the account's transactions until the chain registers the access key.

  • #4930 06a865a Thanks @jxom! - viem/tempo: Removed admin access keys, which T14 (TIP-1137) retires: the admin option on key authorizations, Actions.accessKey.isAdmin, and Actions.accessKey.watchAdminAuthorized, so access keys no longer sign key authorizations.

  • #5408 7585a54 Thanks @jxom! - viem/tempo: Renamed the UpgradeMustBeOnlyCall error to UpgradeMustBeDirectCall and added Abis.configurableAccountShim (isValidSignature, onERC721Received) for registered configurable accounts.

  • #5408 7585a54 Thanks @jxom! - viem/tempo: Added keyAuthorizationSimulation to Tempo transaction requests, filled during preparation while a configurable account's key authorization lacks its owner quorum.

  • #5408 7585a54 Thanks @jxom! - viem/tempo: Changed verifyHash with mode: 'allowAccessKey' to verify configurable access keys and to reject retired root keys and inner signatures that do not match the stored key type.

  • #5408 7585a54 Thanks @jxom! - viem/tempo: Added an access option to Account.fromConfig so a configurable account can sign as an access key of another account (TIP-1111), with keychain envelopes the relay fee payer accepts.

  • viem/tempo: Added Actions.accounts.deriveAccount, Actions.accounts.upgrade, Actions.accounts.upgradeSync, and Actions.accounts.verifyHash for Tempo T14 configurable accounts, added the upgrade form of Account.fromConfig for accounts upgraded in place, cached configs installed by account upgrades in Relay.accounts, and renamed the nativeMultisig ABI, address, and selector exports to configurableAccount.

  • #4930 06a865a Thanks @jxom! - viem/tempo: Derived configurable account addresses from the initial config hash instead of a recovery factory (chore: checkpoint configurable accounts for devnet audit tempoxyz/tempo#8595), so Addresses.nativeMultisigFactory was removed.

  • #5332 de39e10 Thanks @jxom! - viem/tempo: Added signMessage and signTypedData support to Account.fromConfig configurable accounts, which sign the EIP-191 or EIP-712 digest with the same configurable signature envelope as sign.

  • #4930 d5cac0a Thanks @jxom! - viem/tempo: Fixed configurable accounts signing the unsponsored payload for a feePayer: true request.

  • #5408 7585a54 Thanks @jxom! - viem/tempo: Fixed Actions.accounts.updateConfigSync returning the version-0 registration config instead of the installed config on an account's first transaction.

  • #5408 7585a54 Thanks @jxom! - viem/tempo: Allowed keyAuthorization in Actions.accounts.upgrade and upgradeSync, and made the accounts relay cache configs from upgrades anywhere in a batch, matching TIP-1113.

  • #5228 b86b380 Thanks @jxom! - viem/tempo: Added typed TempoExecutionError errors to Tempo actions, with per-namespace subclasses (such as Actions.accessKey.AccessKeySpendingLimitExceededError) carrying decoded arguments, fetched onchain details, and resolution hints.

  • #4930 06a865a Thanks @jxom! - viem/tempo: Fixed Account.signTransaction signing the unsponsored payload for a feePayer request passed without the feePayerSignature: null marker, and serializing a prefilled fee payer signature into the fee payer handoff format.

  • #5391 721d682 Thanks @jxom! - viem/tempo: Added experimental Gateway and gatewayActions (client.ai, client.bucket, client.compute, client.gateway, client.kv), with standalone Actions.ai, Actions.bucket, Actions.compute, Actions.gateway, and Actions.kv, for wallet-paid inference, object storage, metered CPU and GPU compute, and key-value state on a Tempo Gateway.

  • #5260 b56592f Thanks @jxom! - viem/tempo: Added Tempo hardforks t7 through t14, Addresses.ousd, and the configurable key type in Actions.accessKey.getMetadata, and changed Hardfork.lt to treat unknown hardforks as newer than every known hardfork.

  • #5405 828d396 Thanks @gakonst! - Added the Multicall3 that Tempo Mainnet, Moderato and Devnet deploy at genesis to tempo, tempoModerato and tempoDevnet, so their clients batch and multicall through it instead of needing deployless.

  • viem/tempo: Filled the protocol nonce for nonceKey: 0n, decoded Tempo transactions inside blocks (keeping expiring nonces above Number.MAX_SAFE_INTEGER exact), and made Actions.transaction.waitForReceipt detect replacements per Tempo nonce slot through a new chain.transaction.replacement hook.

  • #4930 d5cac0a Thanks @jxom! - viem/tempo: Typed the relay-filled validAfter and validBefore bounds on the request returned by Actions.transaction.prepare.

  • #4930 06a865a Thanks @jxom! - viem/tempo: Fixed Relay.feePayer co-signing the fill of a configurable account transaction instead of deferring sponsorship to broadcast, and withRelay sending fee-payer-format configurable account transactions to eth_signRawTransaction instead of the relay.

  • #5236 72950dd Thanks @jxom! - viem/tempo: Hardened Relay.feePayer sponsorship by recovering raw senders from their signatures, rejecting non-canonical envelopes, bounding returned signatures by validity, accepting a per-chain feeToken resolver, adding minimumBaseFee and onRejected for base-fee rejections, adding feePayer to SponsoredEvent, estimating sponsored fills without the sender's fee caps, and capping Relay request bodies at 16 MiB.

  • #4930 d5cac0a Thanks @jxom! - viem/tempo: Exported the RelayTransport type that withRelay returns for a remote relay.

  • viem/tempo: Reserved 5,000 gas for the fee payer's signature and fee token on sponsored requests, kept the gas of owner-approved configurable account requests, and verified configurable account signatures in verifyHash.

  • #5442 a960ce1 Thanks @jxom! - Fixed Actions.ens.getAddress to resolve leading-zero EVM addresses and return null for the zero address instead of throwing when an offchain resolver returned an address-encoded response for an Ethereum or EVM chain coinType.

  • #5318 57db085 Thanks @jxom! - Fixed maxPriorityFeePerGas above a maxFeePerGas of 0n not raising RpcError.TipAboveFeeCapError or TransactionPrepare.MaxFeePerGasTooLowError in actions that validate requests before calling the node (such as Actions.call, Actions.transaction.estimateGas and Actions.transaction.send), and fixed fee error messages dropping 0n values.

  • #5411 3708ffc Thanks @jxom! - viem/tempo: Removed the decimals read when resolving an insufficient TIP-20 balance error.

  • #5275 7315f38 Thanks @mmv08! - Fixed Actions.transaction.getConfirmations returning zero or negative counts when the block number was cached or behind the transaction's block.

  • #5271 2867b2a Thanks @loveyuanfandj-glitch! - Added ValueChain mainnet and testnet chains.

  • #4930 d5cac0a Thanks @jxom! - Fixed Actions.transaction.waitForReceipt reporting another transaction in the same nonce slot as a replacement when the awaited transaction was already mined but its receipt was not yet indexed.

  • #5381 5d11346 Thanks @jxom! - Limited the default catch-up of Actions.block.watch to 100 missed blocks, so a longer gap emits only the latest block.

  • #5330 1f9c2f0 Thanks @jxom! - Fixed Actions.event.watch and Actions.contract.watchEvent in the eth_getLogs fallback stalling for good once the blocks since the last poll exceeded the RPC Provider's block range, log count or response size limit, repeating logs when an RPC node reported a lower block number, missing logs from the first polling interval, and ignoring strict.

  • #5380 b650f56 Thanks @mmv08! - Fixed Actions.block.watch and Actions.block.watchNumber skipping blocks over HTTP on fast chains such as Monad and Arbitrum, and Actions.block.watch falling behind while it caught up on missed blocks.

  • #5258 13c0386 Thanks @jxom! - Fixed requests with an aborted signal staying pending on transports that ignore the signal.

  • #5266 6834ec4 Thanks @bxpana! - Added ZKsync Era Testnet chain.

@vercel

vercel Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
viem Error Error Nov 8, 2026 10:55pm UTC

Request Review

@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch 4 times, most recently from 3e37a19 to d6ff245 Compare November 2, 2026 06:48
@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch from d6ff245 to 1e9fab6 Compare November 2, 2026 09:42
@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch from 1e9fab6 to 9cc0b14 Compare November 2, 2026 11:02
@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch from 9cc0b14 to f2296c0 Compare November 2, 2026 19:10
@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch from f2296c0 to 64178db Compare November 2, 2026 19:21
@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch from 64178db to cd9b2ec Compare November 2, 2026 19:33
@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch from cd9b2ec to fe8403f Compare November 6, 2026 05:56
@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch from fe8403f to a5dd75f Compare November 8, 2026 22:15
@github-actions
github-actions Bot force-pushed the changeset-release/v3 branch from a5dd75f to e266403 Compare November 8, 2026 22:50
@jxom
jxom merged commit ac247f9 into v3 Nov 8, 2026
3 of 4 checks passed
@jxom
jxom deleted the changeset-release/v3 branch November 8, 2026 23:18

This branch had an error being deployed

1 failed deployment
Preview — e2664038 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.

1 participant