Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
79d6dab
wip: v1
jxom May 7, 2026
e3a8c0f
chore: format exports:update.ts
jxom May 7, 2026
be3841e
chore: upgrade noble and scure deps to v2
jxom May 8, 2026
cfe4811
chore: changeset for noble v2 upgrade
jxom May 8, 2026
ad13d33
chore: upgrade noble and scure deps to v2
jxom May 8, 2026
47b1346
fix: include blockTimestamp on transactions
jxom May 8, 2026
395180f
chore: switch to zile publish helpers and ignore tasks/
jxom May 11, 2026
bad595c
fix(mnemonic): return Bytes by default from toPrivateKey to match dec…
jxom May 12, 2026
8c0ea67
fix(keystore): use pbkdf2Async in toKeyAsync to avoid blocking the ma…
jxom May 12, 2026
bc09464
fix(tempo): make PoolId.from order-independent
jxom May 12, 2026
2b04814
fix(tempo): generate 192-bit nonceKey when 'random' is requested
jxom May 12, 2026
b38dbd4
fix(keystore): honor caller-provided p and r in scryptAsync
jxom May 12, 2026
c624ede
fix(abi): honor anonymous flag in AbiEvent encode/decode
jxom May 12, 2026
f8d4595
fix(crypto): pad WebCryptoP256.verify r/s to 32 bytes
jxom May 12, 2026
2b32e0c
fix(tempo): normalize AuthorizationTempo.from signature option throug…
jxom May 12, 2026
51c0cc8
fix(publickey): reject malformed shape when compressed option is set
jxom May 12, 2026
08dae9a
fix(tempo): apply AuthorizationTempo.from signature normalization
jxom May 12, 2026
f05efd2
fix(publickey): validate SEC1 prefix in fromHex/fromBytes
jxom May 12, 2026
feb35d9
fix(value): validate decimals and use string-carry rounding in from()
jxom May 12, 2026
8b50bd3
fix(abi): assert AbiConstructor.decode bytecode prefix
jxom May 12, 2026
14af5bc
fix(bls): validate input shape in Bls.aggregate
jxom May 12, 2026
1bd3e52
fix(tempo): validate envelope-type prefix in TxEnvelopeTempo.deserialize
jxom May 12, 2026
302110c
fix(webauthn): decode clientDataJSON as UTF-8 in Authentication.sign
jxom May 12, 2026
d00fdaf
fix(transactions): remove duplicate maxPriorityFeePerGas assignment i…
jxom May 12, 2026
9c6707d
fix(blspoint): honor group argument and assert byte length in fromBytes
jxom May 12, 2026
726d02f
fix(keystore): reject trivially weak PBKDF2 and scrypt parameters
jxom May 12, 2026
e94c7ed
fix(webauthn): honor hash option in Authentication.getSignPayload
jxom May 12, 2026
62233c4
fix(tempo): emit `calls[].input` from Transaction.toRpc to match Temp…
jxom May 12, 2026
c5c6a20
fix(webauthn): document Registration.verify attestation default as 'n…
jxom May 12, 2026
ded65ec
test(abi): update AbiConstructor snapshots for BytecodeMismatchError
jxom May 12, 2026
58f78e8
fix(keystore): apply KDF parameter validation to pbkdf2/scrypt entry …
jxom May 12, 2026
4b587b1
fix(transactions): clone caller input in TransactionRequest.fromRpc t…
jxom May 12, 2026
952a176
fix(tempo): apply AuthorizationTempo.from signature normalization (re…
jxom May 12, 2026
b896c48
fix(abi): wrap PositionOutOfBoundsError as DataSizeTooSmallError in A…
jxom May 12, 2026
135469c
fix(authorization): return List instead of TupleList from fromTupleLi…
jxom May 12, 2026
4e0d154
fix(webauthn): reject invalid AT/ED flag structures in Authentication…
jxom May 12, 2026
a67a329
fix(transactions): validate storage keys strictly in AccessList.fromT…
jxom May 12, 2026
62a09af
fix(webauthn): reject invalid AT/ED flag structures in Authentication…
jxom May 12, 2026
2043ea0
fix(abi): validate fixed-array length and pad string[]/bytes[] in Abi…
jxom May 12, 2026
708e094
fix(transactions): preserve transactionIndex 0 in Transaction.toRpc
jxom May 12, 2026
f2daa75
fix(abi): always hash indexed string/bytes topics to hex in AbiEvent
jxom May 12, 2026
9fdaeee
fix(block): throw MissingFieldError on required fields in fromRpc and…
jxom May 12, 2026
c2d1848
fix(kzg): preserve receiver semantics in Kzg.from
jxom May 12, 2026
362490b
fix(abi): throw on selector-only calldata, fast event partition, reje…
jxom May 12, 2026
c2ed87d
fix(abi): hoist normalizeSignature loop counter to allow trailing-gar…
jxom May 12, 2026
742fbc9
fix(crypto): typed getSharedSecret error and JSDoc corrections
jxom May 12, 2026
6f98540
fix(abi): drop string[]/bytes[] padding change to keep parity with viem
jxom May 12, 2026
8ce5e7b
fix(filter): preserve explicit address: null and topics: null in toRpc
jxom May 12, 2026
fd27456
fix(validator-data): assert validator address in encode
jxom May 12, 2026
916fd9c
fix(bloom): validate bloom length in contains
jxom May 12, 2026
028c57b
fix(abi): revert normalizeSignature trailing-garbage check (clashes w…
jxom May 12, 2026
8426949
fix(types): satisfy strict types in block-state regression tests
jxom May 12, 2026
65141bb
test(abi): update decode snapshots after wrapping PositionOutOfBounds…
jxom May 12, 2026
b010f64
revert(block): drop MissingFieldError throw from fromRpc, keep totalD…
jxom May 12, 2026
88fa2d0
revert(tempo): keep `data` (not `input`) on calls[] in Transaction.toRpc
jxom May 12, 2026
b122165
fix(bytes,rlp): even-pad odd-nibble hex from `Hex.fromNumber` before …
jxom May 12, 2026
642423c
fix(transactions): preserve legacy `v` from RPC in `Transaction.fromRpc`
jxom May 12, 2026
f646084
chore(tests): refresh Bytes, Base58, PublicKey snapshots after error …
jxom May 12, 2026
0ea1057
fix(transactions): preserve or derive EIP-155 `v` in `TxEnvelopeLegac…
jxom May 12, 2026
ef8a468
fix(transactions): honor `input` alias in `TxEnvelopeEip4844.serialize`
jxom May 12, 2026
f1a5769
fix(transactions): tighten EIP-4844 blob/sidecar validation and deser…
jxom May 12, 2026
c09b14e
fix(transactions): add missing `TxEnvelopeEip7702.toRpc`
jxom May 12, 2026
c242993
feat(account-proof): add `fromRpc`/`toRpc` converters
jxom May 12, 2026
f53c67d
feat(typed-data,bloom): per-call type-hash memoization and prepared-b…
jxom May 12, 2026
64e18e3
feat(fee,solidity,personal-message): add converters/helpers and hoist…
jxom May 12, 2026
04683c8
perf(erc4337): hoist `UserOperation.hash` ABI descriptors and share `…
jxom May 12, 2026
ed3980e
perf(erc6492): cache `address, bytes, bytes` ABI parameters at module…
jxom May 12, 2026
e8d9231
perf(erc7821): cache `Calls` and `Execute` ABI parameters at module s…
jxom May 12, 2026
bc9c64e
refactor(erc8021): share schema-0/1 codes-tail decode in `Attribution…
jxom May 12, 2026
e9c59bd
test: refresh export snapshots and add EIP-4844 envelope snapshot
jxom May 12, 2026
377784f
test: align fixtures and snapshots with wave-0 correctness fixes
jxom May 12, 2026
326adfc
chore: drop wave prefix from changeset filenames
jxom May 12, 2026
5620bd4
Merge branch 'v1-0' into v1
jxom May 12, 2026
2b97654
refactor(internal): rename quantity helpers to `toBigInt` / `fromBigI…
jxom May 12, 2026
0077cba
fix(ci): repair prerelease prepublish order and silence false-positiv…
jxom May 12, 2026
76b9145
ci(prerelease): match zile template (`pnpm run build` + `pkg-pr-new p…
jxom May 12, 2026
94d3e4b
fix(tsdoc): mark internal helpers `packUint128Pair` and `decodeCodesT…
jxom May 12, 2026
fe923fd
feat: v1-1 (#233)
jxom May 13, 2026
2715379
fix(cursor): correct `_touch` accounting for non-monotonic reads
jxom May 13, 2026
215ca61
fix(ci): restore `zile publish:prepare` step in prerelease workflow
jxom May 13, 2026
62263b8
fix(rlp): mark internal helpers with `@internal` to satisfy `jsdoc/re…
jxom May 13, 2026
3ad7b2d
test: add fuzz testing foundation with `fast-check`
jxom May 13, 2026
1376e0b
feat(v1): `Parts` codecs and serialized-input `as` option for crypto …
jxom May 13, 2026
6a2f0d5
feat(v1)!: migrate ECDSA/BLS coordinates to padded `Hex.Hex` (#247)
jxom May 13, 2026
ae42409
test: align fixtures with hex coordinate migration and mocked test he…
jxom May 13, 2026
df731ed
fix(docgen): point api-extractor at `dist/` and restore `scripts/util…
jxom May 14, 2026
27b991e
fix(docgen): clean stale generated pages and resolve Vercel build fai…
jxom May 14, 2026
463bae7
chore(site): migrate to vocs v2
jxom May 14, 2026
e30efa3
merge: origin/main into v1
jxom May 15, 2026
31a709a
chore(deps): patch security advisories via pnpm overrides
jxom May 17, 2026
3f2dfbb
feat(tempo)!: remove TempoAddress module
jxom May 17, 2026
6776c1f
refactor(tempo)!: drop `addressType` generic from Tempo types
jxom May 17, 2026
928c1af
feat(core)!: migrate EIP-4844 sidecars to PeerDAS (EIP-7594)
jxom May 17, 2026
3d65069
chore: remove bench/ result reports
jxom May 17, 2026
0c1e3a0
fix(ci): unbreak tsdoc + bump testTimeout for peerdas KZG tests
jxom May 17, 2026
1d073c9
test: bump timeout for KZG-heavy BlobCells tests
jxom May 17, 2026
6df4afd
fix(docs): render API overview tables
jxom May 17, 2026
d28cc14
fix(vercel): use HTTPS forge-std submodule
jxom May 18, 2026
32d4aa0
fix(vercel): skip postinstall setup
jxom May 18, 2026
b088a89
Revert "fix(vercel): skip postinstall setup"
jxom May 18, 2026
feeb929
chore: rerun checks
jxom May 18, 2026
190ef1a
fix(vercel): disable pnpm run auto-install
jxom May 18, 2026
6a35dbd
docs: add agent guidelines
jxom May 18, 2026
90189b5
feat: checksum abi decoded addresses
jxom May 19, 2026
8f85d24
feat: infer abi function from calldata
jxom May 19, 2026
5da8e3c
fix: allow constructorless abi deploy data
jxom May 19, 2026
9a58930
feat: add `AbiEvent.decodeLog`
jxom May 19, 2026
3d68250
feat: add `AbiEvent.decodeLogs`
jxom May 19, 2026
a2754b6
feat: add `AbiEvent.extractLogs`
jxom May 19, 2026
9733278
feat: add `AbiError.extract`
jxom May 19, 2026
71fe2f2
fix: preserve abi error extract inference
jxom May 19, 2026
ef0f1b6
feat: add ens coin type conversion
jxom May 19, 2026
ce3b92a
feat: use bigint siwe chain ids
jxom May 19, 2026
3c5541e
chore: merge main into v1
jxom May 19, 2026
023199f
feat: support log block timestamps
jxom May 19, 2026
224a4bc
feat: add transaction envelope router
jxom May 19, 2026
46fdf5e
fix: infer transaction envelope routing
jxom May 19, 2026
e1bc078
test: add transaction envelope parity cases
jxom May 19, 2026
f16b732
fix: default transaction envelope routing
jxom May 19, 2026
4974b10
feat(filter): add EIP-234 blockHash branch to Filter type
jxom May 20, 2026
7d71036
test: update for checksummed decoded addresses and public zone rpc
jxom May 20, 2026
e009ebf
test: fix Execute decoded address casing and switch zone rpc to publi…
jxom May 20, 2026
4e8ff7a
feat(transaction): add TransactionRequest <-> TxEnvelope conversion h…
jxom May 20, 2026
c0dd4e5
chore: migrate to vite-plus
jxom May 21, 2026
414bc2a
chore: ignore markdown in formatter
jxom May 21, 2026
ab1f4aa
chore: move all devDependencies to pnpm catalog
jxom May 21, 2026
7a24b25
docs: skip intentional-error example blocks via `@noErrors`
jxom May 21, 2026
6da996b
chore: add `check:examples` script and CI step
jxom May 21, 2026
8324630
test(transaction-receipt): update snapshot for bigint blockTimestamp
jxom May 21, 2026
c1e8cbf
fix(rpc-transport): handle empty body on `application/json` responses
jxom May 21, 2026
98f98a7
fix(abi-function): default missing args to empty array in encodeData
jxom May 21, 2026
5ce537b
test: fix checksum casing in decode/unwrap roundtrip tests
jxom May 21, 2026
d2e8689
test(zone-rpc-auth): skip flaky external testnet e2e
jxom May 21, 2026
ab4acc5
chore: update pnpm-lock.yaml for site/package.json removals
jxom May 21, 2026
0278454
fix(tsconfig): add DOM.Iterable and type CDP session for playwright
jxom May 21, 2026
18c9c59
ci: remove obsolete check:tsdoc step
jxom May 21, 2026
f6690d6
docs: design
jxom May 22, 2026
732197b
docs: design
jxom May 22, 2026
f12841a
fmt: examples
jxom May 22, 2026
3ef38ce
fix(docs): restore docs build
jxom May 22, 2026
4219cfb
fix(docs): stabilize example checks
jxom May 22, 2026
0a6fd8e
fix(docs): restore grouped imports
jxom May 22, 2026
7b95eee
feat: zod
jxom Jun 2, 2026
ed2571c
Merge remote-tracking branch 'origin/main' into v1
jxom Jun 2, 2026
497f761
fix(tempo): pair TIP-1049 admin fields in KeyAuthorization.fromRpc an…
jxom Jun 2, 2026
0ba4f55
chore: enable beta prerelease changesets
jxom Jun 5, 2026
9bdaef2
chore: publish beta prereleases
jxom Jun 5, 2026
fa7995d
chore: publish beta from changesets workflow
jxom Jun 5, 2026
3782ce2
chore: fix beta version command
jxom Jun 5, 2026
b72f296
chore: version beta packages
github-actions[bot] Jun 5, 2026
973cb9b
fix(site): use v1 docs base url
jxom Jun 5, 2026
af47e3c
chore: skip hooks for beta version commits
jxom Jun 5, 2026
4e2deda
fix(site): use beta docs origin
jxom Jun 5, 2026
2500419
Merge remote-tracking branch 'origin/main' into v1
jxom Jun 5, 2026
afd51bd
fix(tempo): update multisig zod schema
jxom Jun 5, 2026
4d754bd
chore(tempo): format multisig examples
jxom Jun 5, 2026
f7041db
fix(site): use vocs link for docs cta
jxom Jun 5, 2026
5256f0a
chore(site): update docs runtime deps
jxom Jun 5, 2026
2fcdf1e
fix(site): improve landing docs affordances
jxom Jun 5, 2026
b624bd9
fix(site): strengthen docs cta weight
jxom Jun 5, 2026
8804724
fix(site): adjust abi snippet spacing
jxom Jun 5, 2026
1773525
feat(site): add zod homepage example
jxom Jun 5, 2026
f7b36d0
fix(site): remove lighter content link weight
jxom Jun 5, 2026
7998a2b
fix(site): remove zod homepage example
jxom Jun 5, 2026
7442946
fix(site): tune landing cta weight
jxom Jun 5, 2026
97b75cf
feat(docs): add SEO descriptions to generated and static pages
jxom Jun 6, 2026
d1e2de8
feat(site): enlarge install command and brand badge in home OG image
jxom Jun 6, 2026
4474a75
feat(docs): replace module root links with per-module Overview sideba…
jxom Jun 6, 2026
a4642eb
fix(site): drop brand badge and widen install pane in home OG image
jxom Jun 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .changeset/abi-anonymous-events.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `AbiEvent.encode` and `AbiEvent.decode` to honor the `anonymous` flag -- anonymous events no longer prepend or expect a selector topic.
5 changes: 5 additions & 0 deletions .changeset/abi-constructor-bytecode-prefix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `AbiConstructor.decode` to assert that `data` begins with the provided `bytecode` and allowed constructor encoding and decoding without an ABI constructor when no arguments are present.
10 changes: 10 additions & 0 deletions .changeset/abi-decode-checksum-default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
'ox': major
---

**Breaking:** Changed ABI decode helpers to checksum decoded addresses by default.

```diff
- AbiParameters.decode(parameters, data)
+ AbiParameters.decode(parameters, data, { checksumAddress: false })
```
5 changes: 5 additions & 0 deletions .changeset/abi-error-extract.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Added `AbiError.extract` for selecting and decoding ABI errors from revert data.
5 changes: 5 additions & 0 deletions .changeset/abi-event-decode-log.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Added `AbiEvent.decodeLog` and `AbiEvent.extractLogs` for decoding and extracting event logs directly from an ABI.
5 changes: 5 additions & 0 deletions .changeset/abi-event-hex-topic-normalization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `AbiEvent.assertArgs` and `AbiEvent.encode` to always hash `string`/`bytes` indexed inputs to hex via `Hash.keccak256(value, { as: 'Hex' })`, so topic comparisons and emitted topics are reliably hex regardless of whether the input is a `Hex.Hex` or a `Bytes.Bytes`.
5 changes: 5 additions & 0 deletions .changeset/abi-function-decode-data-selector.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': minor
---

Added an `AbiFunction.decodeData(abi, data)` overload that extracts the ABI function from the calldata selector.
5 changes: 5 additions & 0 deletions .changeset/abi-function-selector-only-calldata.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `AbiFunction.decodeData` to throw `AbiParameters.DataSizeTooSmallError` when the calldata is exactly the 4-byte selector but the function declares inputs, instead of silently returning `undefined`.
5 changes: 5 additions & 0 deletions .changeset/abi-parameters-data-size-bound.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `AbiParameters.decode` to surface a `DataSizeTooSmallError` (with parameter context) instead of leaking a `Cursor.PositionOutOfBoundsError` when the encoded payload is shorter than the parameter list requires.
5 changes: 5 additions & 0 deletions .changeset/abi-parameters-encode-packed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `AbiParameters.encodePacked` to validate that fixed-array lengths match the supplied value, throwing `ArrayLengthMismatchError` (e.g. for `uint256[2]` with three elements) instead of silently encoding the wrong arity.
5 changes: 5 additions & 0 deletions .changeset/account-proof-converters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': minor
---

Added `AccountProof.fromRpc` and `AccountProof.toRpc` for converting between RPC and instantiated `AccountProof` shapes returned by `eth_getProof`.
5 changes: 5 additions & 0 deletions .changeset/address-keys-keystore-async-pbkdf2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `Keystore.toKeyAsync` to use the async PBKDF2 implementation -- previously it called the synchronous `pbkdf2` helper and blocked the main thread when decrypting PBKDF2-backed keystores.
5 changes: 5 additions & 0 deletions .changeset/address-keys-keystore-kdf-validation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Added validation of KDF parameters in `Keystore.pbkdf2`, `Keystore.pbkdf2Async`, `Keystore.scrypt`, and `Keystore.scryptAsync` -- PBKDF2 now requires `iterations` to be an integer `>= 1000`, and scrypt now requires `n` to be a power of two `>= 1024` with positive integer `r` and `p`, rejecting trivially weak parameters that previously produced formally valid but cryptographically insecure keystores.
5 changes: 5 additions & 0 deletions .changeset/address-keys-keystore-scrypt-async-pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `Keystore.scryptAsync` to honor caller-provided `p` and `r` options -- previously they were silently overridden with `p=8` and `r=1`, producing keystores that disagreed with the synchronous `Keystore.scrypt` for the same inputs.
5 changes: 5 additions & 0 deletions .changeset/address-keys-mnemonic-default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `Mnemonic.toPrivateKey` to return `Bytes` by default to match its declared return type -- previously it returned a `Hex` string at runtime even though the default `as` was `'Bytes'`.
5 changes: 5 additions & 0 deletions .changeset/anchor-crypto-webcrypto-verify-padding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `WebCryptoP256.verify` rejecting valid signatures whose `r` or `s` value has a leading zero byte by padding both components to 32 bytes.
5 changes: 5 additions & 0 deletions .changeset/anchor-publickey-assert-shape.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `PublicKey.assert` so it rejects objects missing `x`/`y` when the `compressed` option is set explicitly.
5 changes: 5 additions & 0 deletions .changeset/anchor-publickey-fromhex-validate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `PublicKey.fromHex` and `PublicKey.fromBytes` so they reject deserialized public keys with an invalid SEC1 prefix.
5 changes: 5 additions & 0 deletions .changeset/block-state-block-fromrpc-required-fields.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Preserved `Block.fromRpc().totalDifficulty` as `undefined` instead of silently coercing missing values to `0n`.
5 changes: 5 additions & 0 deletions .changeset/block-state-bloom-contains-validate-length.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Made `Bloom.contains` validate the bloom argument length and throw `Bloom.InvalidBloomError` instead of silently returning `false` for malformed bloom inputs.
5 changes: 5 additions & 0 deletions .changeset/block-state-filter-torpc-address-null.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Made `Filter.toRpc` preserve explicit `address: null` (and `topics: null`) instead of stripping it via truthy checks.
5 changes: 5 additions & 0 deletions .changeset/block-state-log-block-timestamp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Added `Log.fromRpc` and `Log.toRpc` support for optional `blockTimestamp` fields.
5 changes: 5 additions & 0 deletions .changeset/block-state-quantity-converters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Unified the RPC-quantity conversion blocks across `Block`, `BlockOverrides`, and `StateOverrides` behind an internal helper so optional bigint fields with explicit `'0x0'` (e.g. `baseFeePerGas: '0x0'` on a post-merge block) round-trip as `0n` instead of being silently dropped by the previous truthy checks.
5 changes: 5 additions & 0 deletions .changeset/block-state-typed-data-array-validation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Validated array element types and fixed-array lengths in `TypedData.assert` and `TypedData.encodeField`, throwing `InvalidArrayError`/`InvalidArrayLengthError` instead of silently passing malformed input through to the encoder.
5 changes: 5 additions & 0 deletions .changeset/block-state-validator-data-validate-address.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Made `ValidatorData.encode` call `Address.assert` on the validator argument so malformed validator addresses are rejected instead of producing invalid ERC-191 payloads.
5 changes: 5 additions & 0 deletions .changeset/block-state-value-validation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Tightened `Value.from` input validation to reject malformed numeric strings (`''`, `'.'`, `'-'`, `'-.'`) and to reject non-integer or negative `decimals`, and replaced `Number`/`Math.round` rounding with string-carry rounding so very long fractions no longer lose precision.
5 changes: 5 additions & 0 deletions .changeset/bloom-prepared.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': minor
---

Added `Bloom.prepare`, `Bloom.containsPrepared`, and `Bloom.containsHash` for membership checks against a precomputed bloom filter. Use `Bloom.prepare(bloom)` once and `Bloom.containsPrepared(prepared, input)` (or `Bloom.containsHash(prepared, hash)` when the caller already has the keccak hash) inside hot loops to avoid the per-call `Bytes.fromHex` allocation that `Bloom.contains` pays.
5 changes: 5 additions & 0 deletions .changeset/bytes-rlp-odd-length-pad.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `Bytes.fromNumber` and `Rlp.fromHex` rejecting valid odd-nibble hex output produced by `Hex.fromNumber` (e.g. `0x7`, `0x311`); both now even-pad before handing the value to the strict `Bytes.fromHex` parser.
5 changes: 4 additions & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
"changelog": ["@changesets/changelog-github", { "repo": "wevm/ox" }],
"commit": false,
"fixed": [],
"ignore": ["webauthn-p256"],
"linked": [],
"privatePackages": {
"version": true,
"tag": true
},
"updateInternalDependencies": "patch"
}
5 changes: 5 additions & 0 deletions .changeset/cosekey-topublickey-bytes-options.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': minor
---

Added `returnByteLength` and `returnDecoded` options to `CoseKey.toPublicKey` and accepted `Uint8Array` input in addition to `Hex`.
5 changes: 5 additions & 0 deletions .changeset/crypto-bls-aggregate-validate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `Bls.aggregate` to reject empty arrays and mixed G1/G2 input, and added a fast path that returns the input directly when only one point is supplied.
5 changes: 5 additions & 0 deletions .changeset/crypto-blspoint-frombytes-group.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `BlsPoint.fromBytes` to honor its declared `group` argument and assert the input length matches the requested G1 (48 bytes) or G2 (96 bytes) shape.
5 changes: 5 additions & 0 deletions .changeset/crypto-cosekey-validate-header.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Hardened `CoseKey.toPublicKey` to reject COSE_Key inputs with a non-P-256 `kty`, `alg`, or `crv` header, or with `x`/`y` byte arrays that are not exactly 32 bytes long.
5 changes: 5 additions & 0 deletions .changeset/crypto-extra-entropy-default-doc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Documented `extraEntropy` on `Secp256k1.sign` and `P256.sign` correctly as `@default false` so the JSDoc matches the runtime default.
5 changes: 5 additions & 0 deletions .changeset/crypto-kzg-from-receiver.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `Kzg.from` to preserve `this` binding by wrapping method calls instead of destructuring, so class instances or method-style implementations work correctly.
5 changes: 5 additions & 0 deletions .changeset/crypto-serialized-inputs-and-as-option.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': minor
---

Added `as: 'Hex' | 'Bytes' | 'Object'` option to `Secp256k1.sign` / `getPublicKey` / `recoverPublicKey`, `P256.sign` / `getPublicKey` / `recoverPublicKey`, `WebCryptoP256.sign`, and `Bls.sign` / `getPublicKey` (default `'Object'` keeps existing behavior); plus accept `Hex.Hex | Bytes.Bytes | Signature.Signature` for `signature` params and `Hex.Hex | Bytes.Bytes | PublicKey.PublicKey` for `publicKey` params on `verify`, `recoverAddress`, `recoverPublicKey`, `getSharedSecret` across the same modules.
5 changes: 5 additions & 0 deletions .changeset/crypto-webcrypto-doc-corrections.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Documented `WebCryptoP256.sign` low-S normalization as always-on and corrected the `WebCryptoP256.createKeyPair` / `createKeyPairECDH` JSDoc to describe `publicKey` as a `PublicKey.PublicKey`.
5 changes: 5 additions & 0 deletions .changeset/crypto-webcrypto-shared-secret-typed-error.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Replaced the plain `Error` thrown by `WebCryptoP256.getSharedSecret` when given an ECDSA private key with a typed `WebCryptoP256.InvalidPrivateKeyAlgorithmError`.
5 changes: 5 additions & 0 deletions .changeset/ens-to-coin-type.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Added `Ens.toCoinType` for converting chain IDs to ENS coin types.
5 changes: 5 additions & 0 deletions .changeset/erc4337-user-operation-from-packed-typing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Narrowed `UserOperation.fromPacked` return type to `UserOperation<'0.7', true>` to reflect that the packed format does not carry v0.8 `authorization`.
5 changes: 5 additions & 0 deletions .changeset/erc4337-user-operation-gas-v08.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Added v0.8 EntryPoint support to `UserOperationGas` (and `RpcSchema.Bundler` via inheritance) by introducing `V08` and `RpcV08` aliases over the v0.7 gas shape.
5 changes: 5 additions & 0 deletions .changeset/erc4337-user-operation-v08-authorization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `UserOperation.fromRpc` and `UserOperation.toRpc` to parse and serialize the v0.8 `authorization` field instead of dropping it.
5 changes: 5 additions & 0 deletions .changeset/erc6492-strip-magic-and-validate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `SignatureErc6492.unwrap` to strip the trailing magic bytes before ABI-decoding, and made `SignatureErc6492.from` and `assert` validate object inputs by throwing the new `InvalidUnwrappedSignatureError` on malformed values.
5 changes: 5 additions & 0 deletions .changeset/erc7821-execute-structural-detection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Replaced the exception-driven opData fallback in `Execute.decodeBatchOfBatchesData` with structural detection of the ABI head word, so malformed inputs surface as decode errors instead of being masked by the catch.
5 changes: 5 additions & 0 deletions .changeset/erc8010-assert-suffix-and-recovery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Hardened ERC-8010 by validating the full unwrapped object in `SignatureErc8010.assert`, capping the suffix length parsed by `unwrap` against the wrapped size to reject overflowing inputs, and skipping `Secp256k1.recoverAddress` in `wrap` when `to` is already provided.
5 changes: 5 additions & 0 deletions .changeset/fee-helpers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': minor
---

Added `Fee.fromHistoryRpc`, `Fee.toHistoryRpc`, `Fee.estimateMaxFeePerGas`, and `Fee.effectiveGasPrice` for converting between RPC/instantiated `FeeHistory` shapes and computing common EIP-1559 fee values.
5 changes: 5 additions & 0 deletions .changeset/filter-blockhash-branch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': minor
---

Added the EIP-234 `blockHash` branch to `Filter.Filter` (and `Filter.Rpc`) so log filters can be discriminated against `fromBlock`/`toBlock` and `blockHash`, matching the execution-apis `filter.yaml` `oneOf` schema. `Filter.toRpc` now forwards `blockHash` when present.
5 changes: 5 additions & 0 deletions .changeset/hex-tobytes-buffer-pool-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'ox': patch
---

Fixed `Hex.toBytes` and `Bytes.fromHex` returning a `Uint8Array` view that aliased Node's shared `Buffer` pool memory, which broke callers that read `.buffer` (e.g. WebAuthn `attestationObject` round-trips).
98 changes: 98 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"mode": "pre",
"tag": "beta",
"initialVersions": {
"ox": "0.14.22"
},
"changesets": [
"abi-anonymous-events",
"abi-constructor-bytecode-prefix",
"abi-decode-checksum-default",
"abi-error-extract",
"abi-event-decode-log",
"abi-event-hex-topic-normalization",
"abi-function-decode-data-selector",
"abi-function-selector-only-calldata",
"abi-parameters-data-size-bound",
"abi-parameters-encode-packed",
"account-proof-converters",
"address-keys-keystore-async-pbkdf2",
"address-keys-keystore-kdf-validation",
"address-keys-keystore-scrypt-async-pr",
"address-keys-mnemonic-default",
"anchor-crypto-webcrypto-verify-padding",
"anchor-publickey-assert-shape",
"anchor-publickey-fromhex-validate",
"block-state-block-fromrpc-required-fields",
"block-state-bloom-contains-validate-length",
"block-state-filter-torpc-address-null",
"block-state-log-block-timestamp",
"block-state-quantity-converters",
"block-state-typed-data-array-validation",
"block-state-validator-data-validate-address",
"block-state-value-validation",
"bloom-prepared",
"bytes-rlp-odd-length-pad",
"cosekey-topublickey-bytes-options",
"crypto-bls-aggregate-validate",
"crypto-blspoint-frombytes-group",
"crypto-cosekey-validate-header",
"crypto-extra-entropy-default-doc",
"crypto-kzg-from-receiver",
"crypto-serialized-inputs-and-as-option",
"crypto-webcrypto-doc-corrections",
"crypto-webcrypto-shared-secret-typed-error",
"ens-to-coin-type",
"erc4337-user-operation-from-packed-typing",
"erc4337-user-operation-gas-v08",
"erc4337-user-operation-v08-authorization",
"erc6492-strip-magic-and-validate",
"erc7821-execute-structural-detection",
"erc8010-assert-suffix-and-recovery",
"fee-helpers",
"filter-blockhash-branch",
"hex-tobytes-buffer-pool-fix",
"promise-with-timeout-single-reject",
"provider-from-prototype",
"provider-from-strict-eip1193",
"rpc-response-from-validation",
"rpc-response-parse-error-preserve",
"rpc-response-parse-validation",
"rpc-transport-empty-body",
"rpc-transport-http-error-details",
"rpc-transport-json-empty-error",
"rpc-transport-signal-compose",
"signature-byte-helpers",
"siwe-bigint-chain-id",
"solidity-helpers",
"tempo-authorization-signature-normalize",
"tempo-noncekey-random",
"tempo-poolid-canonical",
"tempo-transaction-request-envelope-conversion",
"tempo-txenvelope-validate-prefix",
"transaction-request-envelope-conversion",
"transactions-access-list-strict-storage-keys",
"transactions-authorization-fromtuplelist-return-type",
"transactions-eip4844-blob-validation",
"transactions-eip4844-deserialize-error-attributes",
"transactions-eip4844-input-alias",
"transactions-eip7702-torpc",
"transactions-legacy-v-fromrpc",
"transactions-legacy-v-torpc",
"transactions-transaction-request-fromrpc-no-mutate",
"transactions-transaction-rpc-transaction-index-zero",
"tx-envelope-router",
"typed-data-type-hashes-memo",
"upgrade-noble-v2",
"v1-blob-cells",
"v1-deprecate-4844-sidecar",
"v1-hex-coords",
"v1-remove-tempo-address",
"webauthn-authentication-getsignpayload-hash",
"webauthn-authentication-sign-utf8",
"webauthn-authentication-verify-at-ed-flags",
"webauthn-authenticator-bytes-first",
"webauthn-registration-verify-attestation-default-docs",
"zod-schema-entrypoint"
]
}
Loading
Loading