Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/abi-decode-overlapping-tails.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/abi-decode-selector-mismatch.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/abi-decode-truncated-bytesn.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/abi-encode-odd-length-bytes.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/abi-event-decode-overloads.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/abi-event-extract-logs-args-shape.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/abi-event-topic-decode-validation.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/address-from-compressed-public-key.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/authorization-chain-id-decode.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/authorization-tuple-arity.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/erc4337-hash-factory.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/erc7821-decode-data-mode.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/keystore-key-length.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/secp256k1-verify-address-hash.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/signature-assert-y-parity.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/siwe-parse-message-anchored.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/siwe-request-id-line-breaks.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tempo-fee-payer-signature-parity.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tempo-key-authorization-recipients.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tempo-nested-keychain.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tempo-signature-envelope-assert-type.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tempo-validity-window-types.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tempo-webauthn-envelope-size.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tx-envelope-chain-id-assert.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tx-envelope-legacy-deserialize.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tx-envelope-legacy-presign-chain-id.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/tx-envelope-legacy-serialize-v.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/typed-data-domain-chain-id.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/value-from-trailing-zeros.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/webauthn-registration-device-type.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/zod-tempo-signature-v-parity.md

This file was deleted.

66 changes: 66 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,71 @@
# ox

## 1.8.16

### Patch Changes

- [#611](https://github.com/wevm/ox/pull/611) [`27bac43`](https://github.com/wevm/ox/commit/27bac436c8950132869adb7d28949f0f92056ac0) Thanks [@jxom](https://github.com/jxom)! - Fixed `AbiParameters.decode` to limit the total number of bytes read to 32 times the size of the data plus the repeated-read allowance, and to throw when dynamic values with overlapping data exceed it.

- [#613](https://github.com/wevm/ox/pull/613) [`af4199b`](https://github.com/wevm/ox/commit/af4199bf201b5814ff7e996b80fa70c9d39a67d3) Thanks [@jxom](https://github.com/jxom)! - Fixed `AbiFunction.decodeData` and `AbiError.decode` to throw `SelectorMismatchError` when the selector in `data` does not match the item or one of its overloads.

- [#615](https://github.com/wevm/ox/pull/615) [`a45444a`](https://github.com/wevm/ox/commit/a45444abed43d6a6ed37607ba0a21c3c5b681563) Thanks [@jxom](https://github.com/jxom)! - Fixed `AbiParameters.decode` to throw when the 32-byte slot of a fixed-size `bytesN` value is cut short, as it does for other static types.

- [#617](https://github.com/wevm/ox/pull/617) [`8f4da51`](https://github.com/wevm/ox/commit/8f4da514d1caea31ba644e53f1afa2e1e890921e) Thanks [@jxom](https://github.com/jxom)! - Fixed `AbiParameters.encode` to reject `bytes` and `bytesN` values with an odd number of hex digits, and `TypedData.assert` to reject such `bytesN` values, instead of encoding them with a trailing zero nibble.

- [#619](https://github.com/wevm/ox/pull/619) [`2f8ee9c`](https://github.com/wevm/ox/commit/2f8ee9c2509c92e9a932867098e56aaa105c4255) Thanks [@jxom](https://github.com/jxom)! - Fixed `AbiEvent.decode` to resolve overloaded events by the selector in `topics[0]` instead of always decoding with the overload picked by name.

- [#621](https://github.com/wevm/ox/pull/621) [`32f10f7`](https://github.com/wevm/ox/commit/32f10f7b7d43e9e7a8a6498d9cf28cbad352dfd9) Thanks [@jxom](https://github.com/jxom)! - Fixed `AbiEvent.extractLogs` to return keyed `args` for events with both named and unnamed inputs, matching `AbiEvent.decode`, and fixed `AbiEvent.assertArgs` and the `args` filter to reject positional arguments compared against keyed arguments.

- [#623](https://github.com/wevm/ox/pull/623) [`9b5aefe`](https://github.com/wevm/ox/commit/9b5aefe544423dca7f7d499978e8ca74768a6399) Thanks [@jxom](https://github.com/jxom)! - Fixed `AbiEvent.decode`, `AbiEvent.decodeLog` and `AbiEvent.extractLogs` to reject indexed `address`, `bool`, `intN` and `uintN` topics that are not canonical 32-byte ABI words, as `AbiParameters.decode` does.

- [#624](https://github.com/wevm/ox/pull/624) [`9e7197b`](https://github.com/wevm/ox/commit/9e7197ba57172bc48117a112da33c298ab0d3f4a) Thanks [@jxom](https://github.com/jxom)! - Fixed `Address.fromPublicKey` to throw `PublicKey.InvalidError` for a compressed public key instead of deriving an address from the `x` coordinate alone.

- [#626](https://github.com/wevm/ox/pull/626) [`8fd15ed`](https://github.com/wevm/ox/commit/8fd15ede9e9b54aecd8808f798133af187fa5985) Thanks [@jxom](https://github.com/jxom)! - Fixed `Authorization.fromTuple` and `Authorization.fromRpc` to throw `Hex.IntegerOutOfRangeError` for a chain ID that is not a safe integer instead of returning a rounded or `NaN` chain ID.

- [#628](https://github.com/wevm/ox/pull/628) [`ac62b90`](https://github.com/wevm/ox/commit/ac62b9057d98ea5cc5318d5f295196fb0418d9d3) Thanks [@jxom](https://github.com/jxom)! - Fixed `Authorization.fromTuple` to throw `Authorization.InvalidError` unless the tuple has three or six elements, and `TxEnvelopeEip7702.deserialize` to require six-element authorization tuples.

- [#630](https://github.com/wevm/ox/pull/630) [`d472e23`](https://github.com/wevm/ox/commit/d472e2396f93ff1a95b8fde2aef9d1df4a5f54a0) Thanks [@jxom](https://github.com/jxom)! - Fixed `UserOperation.hash` for EntryPoint 0.7 in `ox/erc4337` to hash the same `initCode` as `UserOperation.toPacked`, so a `factory` without `factoryData` is included in the hash.

- [#632](https://github.com/wevm/ox/pull/632) [`3627f73`](https://github.com/wevm/ox/commit/3627f73d148d5f809e072cd22072b23eadf39600) Thanks [@jxom](https://github.com/jxom)! - Fixed `Execute.decodeData` and `Execute.decodeBatchOfBatchesData` in `ox/erc7821` to decode only calldata in their own execution modes and throw `Execute.UnsupportedModeError` for any other mode.

- [#634](https://github.com/wevm/ox/pull/634) [`24fb8d1`](https://github.com/wevm/ox/commit/24fb8d1ca0200b8b4f186b6b6ae3cbf696031f22) Thanks [@jxom](https://github.com/jxom)! - Fixed `Keystore.encrypt` and `Keystore.decrypt` to throw `Keystore.InvalidKeySizeError` when the key is shorter than 32 bytes.

- [#636](https://github.com/wevm/ox/pull/636) [`89c70df`](https://github.com/wevm/ox/commit/89c70df5b544c28f55536abe261d2cad5cb5d6a6) Thanks [@jxom](https://github.com/jxom)! - Fixed `Secp256k1.verify` to hash the payload with sha256 when `hash: true` is used with `address`, matching the `publicKey` form.

- [#638](https://github.com/wevm/ox/pull/638) [`19c3335`](https://github.com/wevm/ox/commit/19c333540d6ec76f704862563abfbd369626f3b2) Thanks [@jxom](https://github.com/jxom)! - Fixed `Signature.assert` to reject a `yParity` that is not exactly `0` or `1`, and `Signature.toTuple` to throw on an invalid or missing `yParity` instead of encoding it by truthiness.

- [#640](https://github.com/wevm/ox/pull/640) [`7a1a915`](https://github.com/wevm/ox/commit/7a1a915be2c7d22e44941cafe3e089b4eeb9a02d) Thanks [@jxom](https://github.com/jxom)! - Fixed `Siwe.parseMessage` to return an empty object when a message has text that is not part of the EIP-4361 prefix or suffix, such as `Expiration Time` and `Not Before` lines that are out of order, and to parse in linear time.

- [#642](https://github.com/wevm/ox/pull/642) [`f620088`](https://github.com/wevm/ox/commit/f6200887964cc01e3ec7ba0ae5b6f19a707b340e) Thanks [@jxom](https://github.com/jxom)! - Fixed `Siwe.createMessage` to throw `InvalidMessageFieldError` when `requestId` contains a line feed or carriage return.

- [#644](https://github.com/wevm/ox/pull/644) [`f3a6299`](https://github.com/wevm/ox/commit/f3a62994f15e814e5b7127f7e2659d50f626d58c) Thanks [@jxom](https://github.com/jxom)! - Fixed `TxEnvelopeTempo.assert`, `TxEnvelopeTempo.serialize`, and Tempo `TransactionRequest.fromRpc` to throw for a fee payer signature whose `yParity` is not `0` or `1`, instead of encoding it as `1`.

- [#646](https://github.com/wevm/ox/pull/646) [`1081276`](https://github.com/wevm/ox/commit/10812761111649a803b0c86115b4abe819d3ccc5) Thanks [@jxom](https://github.com/jxom)! - Fixed `KeyAuthorization.from`, `toTuple`, and `toRpc` (and the `ox/zod/tempo` `Scope` schema) to reject a scope with `recipients` and no `selector`.

- [#648](https://github.com/wevm/ox/pull/648) [`3417895`](https://github.com/wevm/ox/commit/34178955d12f0982c05f3c0b4a6c1a1963d574d6) Thanks [@jxom](https://github.com/jxom)! - Fixed `SignatureEnvelope.assert`, `deserialize`, `fromRpc`, and `toRpc` to reject a keychain signature whose inner signature is itself a keychain signature.

- [#650](https://github.com/wevm/ox/pull/650) [`2b48062`](https://github.com/wevm/ox/commit/2b480627b0bf968dce77e6d6b2dcdeab530ba968) Thanks [@jxom](https://github.com/jxom)! - Fixed `SignatureEnvelope.assert` and `SignatureEnvelope.validate` to reject an envelope with an unsupported `type`.

- [#652](https://github.com/wevm/ox/pull/652) [`a15cab8`](https://github.com/wevm/ox/commit/a15cab84eea1aa2c8c447e4fb3fc1e9c24d616ec) Thanks [@jxom](https://github.com/jxom)! - Fixed `TxEnvelopeTempo.assert` to throw `InvalidValidityBoundError` when `validBefore` or `validAfter` is not a non-negative safe integer number, instead of serializing a bigint or hex bound as unset.

- [#654](https://github.com/wevm/ox/pull/654) [`40f9fac`](https://github.com/wevm/ox/commit/40f9fac83fb74bc06a31cff256f6eda379b8e2ba) Thanks [@jxom](https://github.com/jxom)! - Fixed `SignatureEnvelope.deserialize` and `SignatureEnvelope.fromRpc` to reject WebAuthn signatures larger than the 2048-byte protocol maximum.

- [#656](https://github.com/wevm/ox/pull/656) [`f14c9be`](https://github.com/wevm/ox/commit/f14c9be8448a7f3c206149b20484d3db66ac9f5c) Thanks [@jxom](https://github.com/jxom)! - Fixed `TxEnvelopeLegacy.assert`, `TxEnvelopeEip2930.assert`, `TxEnvelopeEip1559.assert` and `TxEnvelopeTempo.assert` to throw `InvalidChainIdError` for a `chainId` that is not a positive safe integer.

- [#658](https://github.com/wevm/ox/pull/658) [`b06a125`](https://github.com/wevm/ox/commit/b06a1250f9365dc1ea5396f47071deb362986d61) Thanks [@jxom](https://github.com/jxom)! - Fixed `TxEnvelopeLegacy.deserialize` to validate unsigned transactions and to reject nested lists, a `v` above the safe integer range, and `gasPrice`, `r` or `s` values longer than 32 bytes.

- [#660](https://github.com/wevm/ox/pull/660) [`f6d2f2b`](https://github.com/wevm/ox/commit/f6d2f2b65d27d93afa2c25925122f2e192d236bc) Thanks [@jxom](https://github.com/jxom)! - Fixed `TxEnvelopeLegacy.hash` (with `presign`) and `TxEnvelopeLegacy.getSignPayload` to derive the chain ID from an EIP-155 `v` when the envelope has no `chainId`.

- [#662](https://github.com/wevm/ox/pull/662) [`bf4a8da`](https://github.com/wevm/ox/commit/bf4a8dade6b4df54aa5db43c53538264c47fe7bc) Thanks [@jxom](https://github.com/jxom)! - Fixed `TxEnvelopeLegacy.serialize` to throw when an envelope's `v` does not match its `chainId`, and to throw `Signature.InvalidVError` when `v` is not a valid parity for the given `chainId`.

- [#664](https://github.com/wevm/ox/pull/664) [`b1cb7ba`](https://github.com/wevm/ox/commit/b1cb7ba6eada4b99dbb76660a6e3f0f3620e86a0) Thanks [@jxom](https://github.com/jxom)! - Fixed `TypedData.extractEip712DomainTypes` to include every domain field that is present, so a string `chainId` is hashed instead of left out of the derived domain.

- [#666](https://github.com/wevm/ox/pull/666) [`07e1148`](https://github.com/wevm/ox/commit/07e114898e619ef185649caa5a21e3494efaadeb) Thanks [@jxom](https://github.com/jxom)! - Fixed `Value.from` and `Value.format` to trim trailing zeros in time linear in the length of the fraction.

- [#668](https://github.com/wevm/ox/pull/668) [`fa5a1f1`](https://github.com/wevm/ox/commit/fa5a1f1ec48f706c83400439daa7b71e2710abfc) Thanks [@jxom](https://github.com/jxom)! - Fixed `Registration.verify` in `ox/webauthn` to derive `deviceType` from the backup eligibility (BE) flag and to always return `backedUp` from the backup state (BS) flag.

- [#670](https://github.com/wevm/ox/pull/670) [`90af78b`](https://github.com/wevm/ox/commit/90af78b6b9611ab7fe758516f6786b734ee3c22f) Thanks [@jxom](https://github.com/jxom)! - Fixed `ox/zod/tempo` `SignatureEnvelope` to derive `yParity` from `v` values above `Number.MAX_SAFE_INTEGER` exactly and to reject a secp256k1 RPC signature that has neither `yParity` nor a supported `v`.

## 1.8.15

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@
"name": "ox",
"description": "Ethereum Standard Library",
"type": "module",
"version": "1.8.15",
"version": "1.8.16",
"main": "./dist/index.js",
"sideEffects": false,
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion src/version.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
/** @internal */
export const version = '1.8.15'
export const version = '1.8.16'
Loading