Upgrading @metamask/eth-sig-util from 9.x to 10.x
Comparison of the public API of @metamask/eth-sig-util 9.0.0 and 10.0.0, computed automatically from their TypeScript types. A changed signature is a candidate for a breaking change, not a certainty.
Summary
| Removed import paths | 0 |
|---|---|
| Removed exports | 0 |
| Changed signatures | 14 |
| Removed class or interface members | 0 |
| Changed class or interface members | 0 |
| Newly deprecated | 0 |
| Requirement changes (engines, peer dependencies) | 1 |
| New exports | 0 |
Removed exports
None detected.
Changed signatures
| export | Before | After |
|---|---|---|
@metamask/eth-sig-util · decrypt | ({ encryptedData, privateKey, }: { encryptedData: EthEncryptedData; privateKey: string; }): string | ({ encryptedData, privateKey, }: { encryptedData: EthEncryptedData; privateKey: string; }): Promise<string> |
@metamask/eth-sig-util · encrypt | ({ publicKey, data, version, }: { publicKey: string; data: unknown; version: string; }): EthEncryptedData | ({ publicKey, data, version, }: { publicKey: string; data: unknown; version: string; }): Promise<EthEncryptedData> |
@metamask/eth-sig-util · concatSig | (v: Buffer, r: Buffer, s: Buffer): string | (v: Uint8Array<ArrayBufferLike>, r: Uint8Array<ArrayBufferLike>, s: Uint8Array<ArrayBufferLike>): string |
@metamask/eth-sig-util · TypedMessage | { types: T; primaryType: keyof T; domain: { name?: string | undefined; version?: string | undefined; chainId?: number | undefined; verifyingContract?: string | undefined; salt?: ArrayBuffer | undefined; }; message: Record<string, unknown>; } | { types: T; primaryType: keyof T; domain: { name?: string | undefined; version?: string | undefined; chainId?: number | undefined; verifyingContract?: string | undefined; salt?: string | Uint8Array<ArrayBufferLike> | undefined; }; message: Record<string, unknown>; } |
@metamask/eth-sig-util · personalSign | ({ privateKey, data, }: { privateKey: Buffer; data: ToBufferInputTypes; }): string | ({ privateKey, data, }: { privateKey: Uint8Array<ArrayBufferLike>; data: ToBytesInputTypes; }): string |
@metamask/eth-sig-util · decryptSafely | ({ encryptedData, privateKey, }: { encryptedData: EthEncryptedData; privateKey: string; }): string | ({ encryptedData, privateKey, }: { encryptedData: EthEncryptedData; privateKey: string; }): Promise<string> |
@metamask/eth-sig-util · encryptSafely | ({ publicKey, data, version, }: { publicKey: string; data: unknown; version: string; }): EthEncryptedData | ({ publicKey, data, version, }: { publicKey: string; data: unknown; version: string; }): Promise<EthEncryptedData> |
@metamask/eth-sig-util · signTypedData | <V extends SignTypedDataVersion, T extends MessageTypes>({ privateKey, data, version, }: { privateKey: Buffer; data: V extends "V1" ? TypedDataV1 : TypedMessage<T>; version: V; }): string | <V extends SignTypedDataVersion, T extends MessageTypes>({ privateKey, data, version, }: { privateKey: Uint8Array<ArrayBufferLike>; data: V extends "V1" ? TypedDataV1 : TypedMessage<T>; version: V; }): string |
@metamask/eth-sig-util · TypedDataUtils | { encodeData: (primaryType: string, data: Record<string, unknown>, types: Record<string, MessageTypeProperty[]>, version: SignTypedDataVersion.V3 | SignTypedDataVersion.V4) => Buffer; encodeType: (primaryType: string, types: Record<string, MessageTypeProperty[]>) => string; findTypeDependencies: (primaryType: string, types: Record<string, MessageTypeProperty[]>, results?: Set<string> | undefined) => Set<string>; hashStruct: (primaryType: string, data: Record<string, unknown>, types: Record<string, MessageTypeProperty[]>, version: SignTypedDataVersion.V3 | SignTypedDataVersion.V4) => Buffer; ha… | { encodeData: (primaryType: string, data: Record<string, unknown>, types: Record<string, MessageTypeProperty[]>, version: SignTypedDataVersion.V3 | SignTypedDataVersion.V4) => Uint8Array<ArrayBufferLike>; encodeType: (primaryType: string, types: Record<string, MessageTypeProperty[]>) => string; findTypeDependencies: (primaryType: string, types: Record<string, MessageTypeProperty[]>, results?: Set<string> | undefined) => Set<string>; hashStruct: (primaryType: string, data: Record<string, unknown>, types: Record<string, MessageTypeProperty[]>, version: SignTypedDataVersion.V3 | SignTypedDataVers… |
@metamask/eth-sig-util · extractPublicKey | ({ data, signature, }: { data: ToBufferInputTypes; signature: string; }): string | ({ data, signature, }: { data: ToBytesInputTypes; signature: string; }): string |
@metamask/eth-sig-util · getEncryptionPublicKey | (privateKey: string): string | (privateKey: string): Promise<string> |
@metamask/eth-sig-util · hashEIP7702Authorization | (authorization: EIP7702Authorization): Buffer | (authorization: EIP7702Authorization): Uint8Array<ArrayBufferLike> |
@metamask/eth-sig-util · recoverPersonalSignature | ({ data, signature, }: { data: ToBufferInputTypes; signature: string; }): string | ({ data, signature, }: { data: ToBytesInputTypes; signature: string; }): string |
@metamask/eth-sig-util · signEIP7702Authorization | ({ privateKey, authorization, }: { privateKey: Buffer; authorization: EIP7702Authorization; }): string | ({ privateKey, authorization, }: { privateKey: Uint8Array<ArrayBufferLike>; authorization: EIP7702Authorization; }): string |
Removed class or interface members
None detected.
Changed class or interface members
None detected.
Newly deprecated
None detected.
Requirement changes (engines, peer dependencies)
| Before | After | |
|---|---|---|
engines.node | ^22 || ^24 || >=26 | ^22.14.0 || ^24 || ^26 |
Changelog between these versions
Text published by the package authors, shown as-is.
10.0.0
### Changed
- **BREAKING:** Drop CommonJS support ([#11349](https://github.com/MetaMask/core/pull/11349), [#11362](https://github.com/MetaMask/core/pull/11362))
- This package is now ESM-only, but can still be used in CommonJS projects via `require(esm)` in modern Node.js versions (22+), or dynamic imports in older Node.js versions.
- **BREAKING:** Make `encrypt`, `encryptSafely`, `decrypt`, `decryptSafely`, and `getEncryptionPublicKey` asynchronous ([#11388](https://github.com/MetaMask/core/pull/11388))
- These functions now return a `Promise`. Callers must `await` the result.
- The encrypted data format is unchanged, so data encrypted by previous versions can still be decrypted.
- Decrypting with an invalid nonce length now throws an error from `@noble/ciphers` instead of `bad nonce size`.
- **BREAKING:** Bump TypeScript target to ES2022 ([#11348](https://github.com/MetaMask/core/pull/11348))
- **BREAKING:** `TypedDataUtils.encodeData`, `TypedDataUtils.hashStruct`, `TypedDataUtils.hashType`, `TypedDataUtils.eip712Hash`, `TypedDataUtils.eip712DomainHash`, and `hashEIP7702Authorization` now return a `Uint8Array` instead of a `Buffer` ([#11394](https://github.com/MetaMask/core/pull/11394))
- **BREAKING:** Objects with a `toArray` or `toBuffer` method are no longer accepted as the `data` of `personalSign`, `recoverPersonalSignature`, and `extractPublicKey`, or as `bytes` values in `V1` typed data ([#11394](https://github.com/MetaMask/core/pull/11394))
- `Uint8Array` is now accepted as part of the arguments of `personalSign`, `signTypedData`, `signEIP7702Authorization`, and `concatSig`, instead of `Buffer` ([#11394](https://github.com/MetaMask/core/pull/11394))
- Bump `@metamask/utils` from `^11.0.1` to `^12.0.2` ([#11349](https://github.com/MetaMask/core/pull/11349), [#11474](https://github.com/MetaMask/core/pull/11474))
- Bump `ethereum-cryptography` from `^2.1.2` to `^3.2.0` ([#11349](https://github.com/MetaMask/core/pull/11349))
- Bump `@ethereumjs/util` from `^8.1.0` to `^9.1.0` ([#11394](https://github.com/MetaMask/core/pull/11394))
- Bump `@ethereumjs/rlp` from `^4.0.1` to `^5.0.2` ([#11394](https://github.com/MetaMask/core/pull/11394))
- This package was migrated from `MetaMask/eth-sig-util` to the
`MetaMask/core` monorepo ([#11327](https://github.com/MetaMask/core/pull/11327))
- See [`MetaMask/eth-sig-util`](https://github.com/MetaMask/eth-sig-util/blob/73725fc31a51e4d5f6b72d8e5f470c0b10c9d57f/CHANGELOG.md)
for the original changelog.
### Fixed
- Correct padding calculation so that every ciphertext is a multiple of 2048 bytes ([#11386](https://github.com/MetaMask/core/pull/11386))
- Reject non-integer and unsafe-integer `chainId` and `nonce` values in `signEIP7702Authorization`, `recoverEIP7702Authorization`, and `hashEIP7702Authorization` ([#11392](https://github.com/MetaMask/core/pull/11392))
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/eth-sig-util@10.0.0...HEAD
[10.0.0]: https://github.com/MetaMasGive your AI agent these facts
Vigia is a free MCP server: your coding agent checks versions, breaking changes and vulnerabilities before it writes code. No signup, no API key.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Add to CursorAdd to VS Code★ Star on GitHub
Any other MCP client
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }Agent skill (SKILL.md): tells the agent when to use Vigia · GitHub Action for pull requests
Frequently asked questions
What are the breaking changes when upgrading @metamask/eth-sig-util from 9 to 10?
Between @metamask/eth-sig-util 9.0.0 and 10.0.0, Vigia found 0 removed exports, 14 changed signatures and 0 removed or changed class or interface members.
What became deprecated in @metamask/eth-sig-util 10?
0 exports or members are newly marked as deprecated in @metamask/eth-sig-util 10.0.0.
For agents
GET https://vigia.coredls.cloud/v1/packages/npm/@metamask/eth-sig-util/upgrade?from=9.0.0&to=10.0.0