Conversation
Refreshes src-old, test-old, contracts-old, and site-old to wevm/viem main @ 8cebc26 (v2.54.6). Brings in storage credits, the updated multisig implementation, sponsored feeToken fixes, client-less token call builders, encryptedDeposit.prepare, receive-policy claimer validation, and getRawTransaction as the new parity baseline. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Ports the main deltas that touch migrated modules: the storage-credits precompile (ABI via a verbatim generator override — the interface is not in the pinned node crates — plus address and selector map), the previously missing tip20ChannelReserve address, client-less resolveToken and the CallParameters/resolveCallParameters plumbing for token call builders, the sponsored-multisig e2e case (as test.todo), and the Mars Credit chain. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Ports upstream getRawTransaction (v2.54.5) into the transaction namespace: returns the raw serialized transaction for a hash via eth_getRawTransactionByHash, throwing Transaction.NotFoundError when unknown. Also documents the existing EIP-1898 blockHash/requireCanonical options on contract.read. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Chain request codecs were invoked via `z.decode`, which validates against the codec's RPC side and rejects native inputs (bigint quantities); ox `*ToRpc` codecs now plug in directly, and `Chain.ExtractTransactionRequest` resolves the native request type from `z.output`. `transaction.estimateGas` threads the chain request codec so chain-specific fields reach the node. `transaction.prepare` respects hook-modified `request.account` (multisig sender derivation) and no longer feeds self-derived fees into its internal gas estimation (nodes cap estimable gas by sender balance, breaking sponsored senders). Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Lands `chainConfig.ts` (RPC codecs over ox tempo primitives with a thin client-concern adapter, envelope hooks with multisig combining and fee-payer format selection, the full prepare hook, and signature-envelope `verifyHash`), re-wires the tempo chain definitions (+ `hardfork` fields), adds the `Chain.ts` alias module and `zones/zone.ts`, and gives `Account.signTransaction` the local fee-payer co-sign branch (TIP-1 gas sponsorship). Bumps ox to 1.0.0-beta.14, which owns the tempo request wire fields upstream. Adds the signing e2e node gate covering root, access-key (secp256k1/p256/webAuthn), fee-token, expiring-nonce, and sponsored flows; native multisig stays gated until the public node image decodes the multisig signature envelope. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Port the TIP-20 token action namespace from v2: writes with sync variants, reads, and event watchers, plus the Tempo client factory, decorator, and `viem/tempo` entrypoint. Includes per-action docs pages, harness updates for fee-token setup reuse, and widened `Account.Account` to include multisig accounts. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Port the fee namespace (validateToken, user/validator token reads, writes with sync variants, watchers) and the nonce namespace from v2. The nonce actions drop the namespace echo (getNonce -> nonce.get, watchNonceIncremented -> nonce.watchIncremented). Includes decorator wiring with per-method JSDoc, per-action docs pages + sidebar groups, and a registerValidator test-harness helper. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Port the fee-AMM, payment-channel, and stablecoin-DEX namespaces from v2 (51 actions) with identical export sets. Pool ids are computed directionally inline (fee-AMM ids are not pair-sorted), getPool reads batch through the client instead of multicall, and channel.signVoucher rides Account.signVoucher. Fixes found by the ported suites: channel settle/close no longer leak the voucher signature into the transaction request, and watchFlipOrderPlaced filters isFlipOrder client-side (non-indexed args cannot be topic-filtered). Includes decorator wiring with per-method JSDoc and per-action docs pages + sidebar groups. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Cut `as never` from 683 to 103 sites, every survivor verified load-bearing. Union-of-actions dispatch now routes through shared internal helpers (dispatchWrite/dispatchSend/estimateWrite/ simulateWrite) instead of per-file casts; either-or block selectors thread conditional spreads; runtime-discriminated calls branch so each arm typechecks. Fixes a real public inference bug: `strict: true` on contract.getLogs/watchEvent/createEventFilter and event.createFilter now narrows decoded `log.args` (the widened `strict | boolean` property defeated generic pinning). Adds the "No `as never`" convention to AGENTS.md. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Port the TIP-403 transfer-policy, receive-policy, and validator-config namespaces from v2 (43 actions) with identical export sets, built on the cast-free dispatch idiom. policy.create now honors an explicit admin option (v2 silently used the sender). Unblocks and ports the dex cancelStale test, which surfaced that fee transfers are now policy-enforced (blacklisted senders must pay fees in another token). Includes decorator wiring with per-method JSDoc and per-action docs pages + sidebar groups. Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
- drop runtime z.RpcSchema usage from core action paths - emit tempo abis aggregate as pure IIFE - tempo transaction hooks delegate non-tempo shapes to core defaults Amp-Thread-ID: https://ampcode.com/threads/T-019f3562-6191-707e-8402-ee011f40a8a0
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
@jxom packages are ready now. All are 2.3.0. Curves are post-audit. |
* fix: accept partial logs in `extractEvent` helpers
EIP-5792 call receipts expose logs as `{ address, data, topics }`. These
wrappers required a full `Log.Log`, so decoding a batched receipt needed a cast
even though `AbiEvent.extractLogs` accepts the partial shape already.
Make them generic over the logs passed in, so the return keeps whatever
metadata the input carried.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* fix: accept partial logs in OP Stack & Earn extractors
Same widening as the `extractEvent` sweep, but these three surfaces need more
than a signature change.
`Earn` filters logs by emitting address before decoding, so its constraint
requires `address` and its `filter` carries a type predicate. Without it,
`filter` widens to the constraint and blurs metadata for full-log callers.
OP Stack declares its decoded-log types up front, so those gain a log type
parameter defaulting to `Log.Log`. `Deposit.getL2TransactionHashes` stays
pinned to full logs: its source hash is derived from `blockHash` & `logIndex`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* docs: update changeset
* fix: accept partial logs in remaining extractors
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: jxom <7336481+jxom@users.noreply.github.com>
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* feat: add block header watcher (#4999) * fix: complete block header watcher integration (#5001) * chore: version package (#5000) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(tempo): bind encrypted deposits to sender (#5002) * fix(tempo): bind encrypted deposits to sender Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com> * ci: test sender-bound zone deposits * ci: align Tempo and Zone fixtures * test(tempo): routed T10 fixtures through encrypted deposits * chore: logged local Zone provisioning stall * chore: ignored unpatched extract-zip advisory * fix(tempo): defaulted encrypted deposit sender * ci: skipped Wagmi verification * chore: remove friction log --------- Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com> Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com> Co-authored-by: Steven Truong <struong@users.noreply.github.com> Co-authored-by: jxom <7336481+jxom@users.noreply.github.com> * chore: version package (#5003) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(siwe): reject unparseable expirationTime and notBefore (#4990) * fix(siwe): reject unparseable expirationTime and notBefore Invalid Date values from parseSiweMessage (e.g. Expiration Time: never) are truthy, so comparisons like `time >= expirationTime` are always false and lifetime / nbf checks were skipped. Fail closed when either field is present but not a real date (sibling of thirdweb-dev/js#8875 / supabase/auth#2688). * fix(siwe): require EIP-4361 date-time strings and reject invalid time Validate raw SIWE timestamps against the RFC 3339 profile before Date coercion, and fail closed when the caller-supplied time is invalid so lifetime comparisons cannot be skipped. * fix(siwe): inline date validation --------- Co-authored-by: jxom <7336481+jxom@users.noreply.github.com> * fix: asset discovery in `simulateCalls` (#4997) * fix(simulateCalls): discover assets from simulated logs * refactor(simulateCalls): align asset discovery with repo conventions * fix(simulateCalls): pin both asset-tracing passes to one base block * test(simulateCalls): skip asset tracing on the pinned Anvil * chore: update accessListHints comment * fix(simulateCalls): preserve block tags and request errors * fix(simulateCalls): harden asset trace discovery * test: use reth for mainnet forks * test(simulateCalls): run asset tracing against reth * fix(simulateCalls): align asset trace simulations * fix(simulateCalls): stabilize asset tracing * chore: add static call source * fix(simulateCalls): simplify asset tracing * fix(simulateCalls): isolate asset balance probes * fix(simulateCalls): align asset probe callers * fix(simulateCalls): preserve pending block tag * fix(simulateCalls): normalize transfer topics * refactor(simulateCalls): remove redundant asset deduplication * test(simulateCalls): cover asset tracing edge cases * docs(simulateCalls): describe pending asset tracing --------- Co-authored-by: jxom <7336481+jxom@users.noreply.github.com> * fix: update nanoid security override * fix: increase package size limits * ci: remove docs deployment --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: struong <steven@tempo.xyz> Co-authored-by: 0xrusowsky <90208954+0xrusowsky@users.noreply.github.com> Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com> Co-authored-by: Steven Truong <struong@users.noreply.github.com> Co-authored-by: Sash <sash@ela.city> Co-authored-by: Ghadi <92851745+Ghadi8@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
npm i viem@next