Drop zod 3 from the tree (GHSA-mrhx-c7xc-m3w5) (#31)

zod 3.25.76 reached the extension along two paths, and 3.x has no fix:

- extension-compat-metamask took all of web3 4 for one call,
  Web3.utils.sha3 on the eth_sign payload; web3-validator pins zod ^3.21.4
  and has had no release since. ethSignHash replaces it with keccakAsHex
  from @pezkuwi/util-crypto. Both read hex as bytes and anything else as
  UTF-8, and agree on every input but empty data, for which web3 returned
  nothing and MetaMask rejected the request; that is now refused up front.
  web3 leaves the lockfile (about 480 lines).

- extension-ui used @paraspell/xcm-analyser 1.x, whose last release depends
  on zod 3. 3.4.0 uses zod 4, renames convertMultilocationToUrl to
  convertLocationToUrl, and no longer accepts the digit-grouped strings
  that SignerPayload.toHuman() produces ("1,984"), so a plain bump would
  have dropped the readable asset location from the signing popup without
  an error. assetIdUrl turns those strings back into numbers first.

zod resolves to 4.6.7 alone. Lockfile changes resolved with a 14-day
minimum release age.
This commit is contained in:
SatoshiQaziMuhammed authored and GitHub committed 2026-11-15 05:09:49 +04:00
1 parent 6f46847c71
commit c3070ab5a0
12 files changed
+144 -502

No files matched your search

@@ -25,8 +25,8 @@
"@pezkuwi/extension-inject": "0.62.27",
"@pezkuwi/types": "^16.5.37",
"@pezkuwi/util": "^14.0.26",
"tslib": "^2.8.1",
"web3": "^4.7.0"
"@pezkuwi/util-crypto": "^14.0.26",
"tslib": "^2.8.1"
},
"peerDependencies": {
"@pezkuwi/api": "*",
@@ -6,10 +6,11 @@ import type { SignerPayloadRaw, SignerResult } from '@pezkuwi/types/types';
import type { HexString } from '@pezkuwi/util/types';
import detectEthereumProvider from '@metamask/detect-provider';
import Web3 from 'web3';
import { assert } from '@pezkuwi/util';
import { ethSignHash } from './ethSignHash.js';
export { packageInfo } from './packageInfo.js';
interface RequestArguments {
@@ -77,7 +78,7 @@ function injectMetaMaskWeb3 (win: Web3Window): void {
},
signer: {
signRaw: async (raw: SignerPayloadRaw): Promise<SignerResult> => {
const signature = (await provider.request({ method: 'eth_sign', params: [raw.address, Web3.utils.sha3(raw.data)] })) as HexString;
const signature = (await provider.request({ method: 'eth_sign', params: [raw.address, ethSignHash(raw.data)] })) as HexString;
return { id: 0, signature };
}
@@ -0,0 +1,24 @@
// Copyright 2019-2026 @pezkuwi/extension-compat-metamask authors & contributors
// SPDX-License-Identifier: Apache-2.0
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
import { ethSignHash } from './ethSignHash.js';
// Expected values were produced by web3 4.16 Web3.utils.sha3, which this replaces.
describe('ethSignHash', (): void => {
it('hashes hex data as bytes', (): void => {
expect(ethSignHash('0x1234abcd')).toBe('0xfb89609961b35c222ceb5dacad207b44f9e09c11fa5f5f02a7cf958c030b7261');
expect(ethSignHash('0xABCDEF')).toBe('0x800d501693feda2226878e1ec7869eef8919dbc5bd10c2bcd031b94d73492860');
});
it('hashes other data as UTF-8', (): void => {
expect(ethSignHash('hello')).toBe('0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8');
expect(ethSignHash('<Bytes>0x1234</Bytes>')).toBe('0xf844540359c03c3ff02fb9afa4fca69333774af89989dd1f18a555e30414d27e');
});
it('refuses empty data', (): void => {
expect(() => ethSignHash('')).toThrow('Cannot sign empty data');
expect(() => ethSignHash('0x')).toThrow('Cannot sign empty data');
});
});
@@ -0,0 +1,19 @@
// Copyright 2019-2026 @pezkuwi/extension-compat-metamask authors & contributors
// SPDX-License-Identifier: Apache-2.0
import type { HexString } from '@pezkuwi/util/types';
import { assert } from '@pezkuwi/util';
import { keccakAsHex } from '@pezkuwi/util-crypto';
/**
* The digest handed to MetaMask's eth_sign: keccak-256 of the data, read as
* bytes when it is hex and as UTF-8 otherwise (what web3's utils.sha3 did).
* web3 returned nothing for empty data and the request failed in MetaMask;
* this refuses it here instead of signing the empty-input hash.
*/
export function ethSignHash (data: string): HexString {
assert(data !== '' && data !== '0x', 'Cannot sign empty data');
return keccakAsHex(data);
}
@@ -5,6 +5,9 @@
"outDir": "./build",
"rootDir": "./src"
},
"exclude": [
"**/*.spec.ts"
],
"references": [
{ "path": "../extension-inject/tsconfig.build.json" }
]
@@ -0,0 +1,16 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
"baseUrl": "..",
"outDir": "./build",
"rootDir": "./src",
"emitDeclarationOnly": false,
"noEmit": true
},
"include": [
"**/*.spec.ts"
],
"references": [
{ "path": "../extension-compat-metamask/tsconfig.build.json" }
]
}
+1 -1
View File
@@ -22,7 +22,7 @@
"@fortawesome/free-regular-svg-icons": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
"@fortawesome/react-fontawesome": "^0.2.0",
"@paraspell/xcm-analyser": "^1.3.1",
"@paraspell/xcm-analyser": "^3.4.0",
"@pezkuwi/api": "^16.5.37",
"@pezkuwi/extension-base": "0.62.27",
"@pezkuwi/extension-chains": "0.62.27",
@@ -7,13 +7,13 @@ import type { AnyJson, SignerPayloadJSON } from '@pezkuwi/types/types';
import type { BN } from '@pezkuwi/util';
import type { TFunction } from '../../hooks/useTranslation.js';
import { convertMultilocationToUrl } from '@paraspell/xcm-analyser';
import React, { useMemo, useRef } from 'react';
import { bnToBn, formatNumber } from '@pezkuwi/util';
import { Table } from '../../components/index.js';
import { useMetadata, useTranslation } from '../../hooks/index.js';
import { assetIdUrl } from './assetIdUrl.js';
interface Decoded {
args: AnyJson | null;
@@ -107,14 +107,6 @@ function mortalityAsString (era: ExtrinsicEra, hexBlockNumber: string, t: TFunct
});
}
function getHumanReadableAssetId (assetId: unknown): string | undefined {
try {
return convertMultilocationToUrl(assetId);
} catch (_) {
return undefined;
}
}
function Extrinsic ({ className, payload, request: { blockNumber, genesisHash, method, specVersion: hexSpec }, url }: Props): React.ReactElement<Props> {
const { t } = useTranslation();
const chain = useMetadata(genesisHash);
@@ -128,7 +120,7 @@ function Extrinsic ({ className, payload, request: { blockNumber, genesisHash, m
const humanReadablePayload = payload.toHuman() as Record<string, unknown>;
const assetId = humanReadablePayload['assetId'];
const humanReadableAssetId = getHumanReadableAssetId(assetId);
const humanReadableAssetId = assetIdUrl(assetId);
return (
<Table
@@ -0,0 +1,27 @@
// Copyright 2019-2026 @pezkuwi/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
/// <reference types="@pezkuwi/dev-test/globals.d.ts" />
import { assetIdUrl } from './assetIdUrl.js';
// Inputs are in the shape SignerPayload.toHuman() gives the signing popup.
describe('assetIdUrl', (): void => {
it('reads grouped digit strings as numbers', (): void => {
expect(assetIdUrl({ interior: { X2: [{ PalletInstance: '50' }, { GeneralIndex: '1,984' }] }, parents: '0' })).toBe('./PalletInstance(50)/GeneralIndex(1984)');
expect(assetIdUrl({ interior: { X1: { Parachain: '1,000' } }, parents: '1' })).toBe('../Parachain(1000)');
expect(assetIdUrl({ interior: { X1: [{ Parachain: '2,034' }] }, parents: '1' })).toBe('../Parachain(2034)');
});
it('leaves hex and names alone', (): void => {
expect(assetIdUrl({ interior: { X2: [{ Parachain: '2,004' }, { AccountKey20: { key: '0x931715fee2d06333043d11f658c8ce934ac61d0c', network: null } }] }, parents: '1' })).toBe('../Parachain(2004)/AccountKey20(null, 0x931715fee2d06333043d11f658c8ce934ac61d0c)');
expect(assetIdUrl({ interior: { X1: { GlobalConsensus: 'Polkadot' } }, parents: '2' })).toBe('../../GlobalConsensus(Polkadot)');
});
it('gives nothing for what is not a location', (): void => {
expect(assetIdUrl(undefined)).toBeUndefined();
expect(assetIdUrl(null)).toBeUndefined();
expect(assetIdUrl('1,984')).toBeUndefined();
expect(assetIdUrl({})).toBeUndefined();
});
});
@@ -0,0 +1,31 @@
// Copyright 2019-2026 @pezkuwi/extension-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { convertLocationToUrl } from '@paraspell/xcm-analyser';
// toHuman() renders integers as grouped digit strings ("1,984"); the
// analyser's schema takes numbers, so those are turned back before parsing.
const GROUPED_INTEGER = /^\d{1,3}(,\d{3})*$/;
function fromHuman (value: unknown): unknown {
if (typeof value === 'string') {
return GROUPED_INTEGER.test(value)
? Number(value.replace(/,/g, ''))
: value;
} else if (Array.isArray(value)) {
return value.map(fromHuman);
} else if (value && typeof value === 'object') {
return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, fromHuman(v)]));
}
return value;
}
/** The asset location of a signing payload, from its toHuman() form, as an XCM path. */
export function assetIdUrl (assetId: unknown): string | undefined {
try {
return convertLocationToUrl(fromHuman(assetId));
} catch {
return undefined;
}
}
+1
View File
@@ -10,6 +10,7 @@
{ "path": "./packages/extension-base/tsconfig.spec.json" },
{ "path": "./packages/extension-chains/tsconfig.build.json" },
{ "path": "./packages/extension-compat-metamask/tsconfig.build.json" },
{ "path": "./packages/extension-compat-metamask/tsconfig.spec.json" },
{ "path": "./packages/extension-dapp/tsconfig.build.json" },
{ "path": "./packages/extension-dapp/tsconfig.spec.json" },
{ "path": "./packages/extension-inject/tsconfig.build.json" },
+15 -487
View File
@@ -5,13 +5,6 @@ __metadata:
version: 8
cacheKey: 10
"@adraffy/ens-normalize@npm:^1.8.8":
version: 1.11.1
resolution: "@adraffy/ens-normalize@npm:1.11.1"
checksum: 10/dd19274d9fcaf99bf08a62b64e54f4748de11b235767addbd3f7385ae1b7777bd704d17ff003ffaa3295a0b9d035929381cf3b38329c96260bff96aab8ad7b37
languageName: node
linkType: hard
"@asamuzakjp/css-color@npm:^3.2.0":
version: 3.2.0
resolution: "@asamuzakjp/css-color@npm:3.2.0"
@@ -629,24 +622,6 @@ __metadata:
languageName: node
linkType: hard
"@ethereumjs/rlp@npm:^4.0.1":
version: 4.0.1
resolution: "@ethereumjs/rlp@npm:4.0.1"
bin:
rlp: bin/rlp
checksum: 10/bfdffd634ce72f3b17e3d085d071f2fe7ce9680aebdf10713d74b30afd80ef882d17f19ff7175fcb049431a56e800bd3558d3b028bd0d82341927edb303ab450
languageName: node
linkType: hard
"@ethereumjs/rlp@npm:^5.0.2":
version: 5.0.2
resolution: "@ethereumjs/rlp@npm:5.0.2"
bin:
rlp: bin/rlp.cjs
checksum: 10/2af80d98faf7f64dfb6d739c2df7da7350ff5ad52426c3219897e843ee441215db0ffa346873200a6be6d11142edb9536e66acd62436b5005fa935baaf7eb6bd
languageName: node
linkType: hard
"@fortawesome/fontawesome-common-types@npm:6.7.2":
version: 6.7.2
resolution: "@fortawesome/fontawesome-common-types@npm:6.7.2"
@@ -1241,15 +1216,6 @@ __metadata:
languageName: node
linkType: hard
"@noble/curves@npm:1.4.2, @noble/curves@npm:~1.4.0":
version: 1.4.2
resolution: "@noble/curves@npm:1.4.2"
dependencies:
"@noble/hashes": "npm:1.4.0"
checksum: 10/f433a2e8811ae345109388eadfa18ef2b0004c1f79417553241db4f0ad0d59550be6298a4f43d989c627e9f7551ffae6e402a4edf0173981e6da95fc7cab5123
languageName: node
linkType: hard
"@noble/curves@npm:^1.9.7, @noble/curves@npm:~1.9.2":
version: 1.9.7
resolution: "@noble/curves@npm:1.9.7"
@@ -1259,13 +1225,6 @@ __metadata:
languageName: node
linkType: hard
"@noble/hashes@npm:1.4.0, @noble/hashes@npm:~1.4.0":
version: 1.4.0
resolution: "@noble/hashes@npm:1.4.0"
checksum: 10/e156e65794c473794c52fa9d06baf1eb20903d0d96719530f523cc4450f6c721a957c544796e6efd0197b2296e7cd70efeb312f861465e17940a3e3c7e0febc6
languageName: node
linkType: hard
"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.3.3, @noble/hashes@npm:^1.8.0, @noble/hashes@npm:~1.8.0":
version: 1.8.0
resolution: "@noble/hashes@npm:1.8.0"
@@ -1470,12 +1429,12 @@ __metadata:
languageName: node
linkType: hard
"@paraspell/xcm-analyser@npm:^1.3.1":
version: 1.5.9
resolution: "@paraspell/xcm-analyser@npm:1.5.9"
"@paraspell/xcm-analyser@npm:^3.4.0":
version: 3.4.0
resolution: "@paraspell/xcm-analyser@npm:3.4.0"
dependencies:
zod: "npm:^3.25.67"
checksum: 10/2027550108cd7aa299c5a980eb2080ba930f1952f8993e8acdadd8677aa3ccd2e0753ca7acaa08bd8d84eac2012d473d32d61c3b189dcf081bf3a2f5206fe6c4
zod: "npm:^4.6.7"
checksum: 10/6a11cd9352145c552c26efe85b2a0cc02e8490cd013df53ba71a4105acfb3348e88974f8ee88df60a9c91da31703df6e92644411f94bad327a3e3c86656a6c49
languageName: node
linkType: hard
@@ -1852,8 +1811,8 @@ __metadata:
"@pezkuwi/extension-inject": "npm:0.62.27"
"@pezkuwi/types": "npm:^16.5.37"
"@pezkuwi/util": "npm:^14.0.26"
"@pezkuwi/util-crypto": "npm:^14.0.26"
tslib: "npm:^2.8.1"
web3: "npm:^4.7.0"
peerDependencies:
"@pezkuwi/api": "*"
"@pezkuwi/util": "*"
@@ -1914,7 +1873,7 @@ __metadata:
"@fortawesome/free-regular-svg-icons": "npm:^6.7.2"
"@fortawesome/free-solid-svg-icons": "npm:^6.7.2"
"@fortawesome/react-fontawesome": "npm:^0.2.0"
"@paraspell/xcm-analyser": "npm:^1.3.1"
"@paraspell/xcm-analyser": "npm:^3.4.0"
"@pezkuwi/api": "npm:^16.5.37"
"@pezkuwi/dev-test": "npm:^0.86.3"
"@pezkuwi/extension-base": "npm:0.62.27"
@@ -2831,34 +2790,6 @@ __metadata:
languageName: node
linkType: hard
"@scure/base@npm:~1.1.6":
version: 1.1.9
resolution: "@scure/base@npm:1.1.9"
checksum: 10/f0ab7f687bbcdee2a01377fe3cd808bf63977999672751295b6a92625d5322f4754a96d40f6bd579bc367aad48ecf8a4e6d0390e70296e6ded1076f52adb16bb
languageName: node
linkType: hard
"@scure/bip32@npm:1.4.0":
version: 1.4.0
resolution: "@scure/bip32@npm:1.4.0"
dependencies:
"@noble/curves": "npm:~1.4.0"
"@noble/hashes": "npm:~1.4.0"
"@scure/base": "npm:~1.1.6"
checksum: 10/6cd5062d902564d9e970597ec8b1adacb415b2eadfbb95aee1a1a0480a52eb0de4d294d3753aa8b48548064c9795ed108d348a31a8ce3fc88785377bb12c63b9
languageName: node
linkType: hard
"@scure/bip39@npm:1.3.0":
version: 1.3.0
resolution: "@scure/bip39@npm:1.3.0"
dependencies:
"@noble/hashes": "npm:~1.4.0"
"@scure/base": "npm:~1.1.6"
checksum: 10/7d71fd58153de22fe8cd65b525f6958a80487bc9d0fbc32c71c328aeafe41fa259f989d2f1e0fa4fdfeaf83b8fcf9310d52ed9862987e46c2f2bfb9dd8cf9fc1
languageName: node
linkType: hard
"@sinonjs/commons@npm:^1, @sinonjs/commons@npm:^1.3.0, @sinonjs/commons@npm:^1.4.0, @sinonjs/commons@npm:^1.7.0":
version: 1.8.6
resolution: "@sinonjs/commons@npm:1.8.6"
@@ -3377,15 +3308,6 @@ __metadata:
languageName: node
linkType: hard
"@types/ws@npm:8.5.3":
version: 8.5.3
resolution: "@types/ws@npm:8.5.3"
dependencies:
"@types/node": "npm:*"
checksum: 10/08aac698ce6480b532d8311f790a8744ae489ccdd98f374cfe4b8245855439825c64b031abcbba4f30fb280da6cc2b02a4e261e16341d058ffaeecaa24ba2bd3
languageName: node
linkType: hard
"@types/ws@npm:^8.18.1":
version: 8.18.2
resolution: "@types/ws@npm:8.18.2"
@@ -4059,19 +3981,6 @@ __metadata:
languageName: node
linkType: hard
"abitype@npm:0.7.1":
version: 0.7.1
resolution: "abitype@npm:0.7.1"
peerDependencies:
typescript: ">=4.9.4"
zod: ^3 >=3.19.1
peerDependenciesMeta:
zod:
optional: true
checksum: 10/deee4a18c9c7218ab2e5e57e07e4cb3e2f3e785657be364d098ab0587cd552c4fbb41e1bdddbc6fa52387f51ebd181461fe70a13127cc77091655775fdfb18fe
languageName: node
linkType: hard
"accepts@npm:^2.0.0":
version: 2.0.0
resolution: "accepts@npm:2.0.0"
@@ -5305,24 +5214,6 @@ __metadata:
languageName: node
linkType: hard
"crc-32@npm:^1.2.2":
version: 1.2.2
resolution: "crc-32@npm:1.2.2"
bin:
crc32: bin/crc32.njs
checksum: 10/824f696a5baaf617809aa9cd033313c8f94f12d15ebffa69f10202480396be44aef9831d900ab291638a8022ed91c360696dd5b1ba691eb3f34e60be8835b7c3
languageName: node
linkType: hard
"cross-fetch@npm:^4.0.0":
version: 4.1.0
resolution: "cross-fetch@npm:4.1.0"
dependencies:
node-fetch: "npm:^2.7.0"
checksum: 10/07624940607b64777d27ec9c668ddb6649e8c59ee0a5a10e63a51ce857e2bbb1294a45854a31c10eccb91b65909a5b199fcb0217339b44156f85900a7384f489
languageName: node
linkType: hard
"cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6":
version: 7.0.6
resolution: "cross-spawn@npm:7.0.6"
@@ -6680,18 +6571,6 @@ __metadata:
languageName: node
linkType: hard
"ethereum-cryptography@npm:^2.0.0":
version: 2.2.1
resolution: "ethereum-cryptography@npm:2.2.1"
dependencies:
"@noble/curves": "npm:1.4.2"
"@noble/hashes": "npm:1.4.0"
"@scure/bip32": "npm:1.4.0"
"@scure/bip39": "npm:1.3.0"
checksum: 10/ab123bbfe843500ac2d645ce9edc4bc814962ffb598db6bf8bf01fbecac656e6c81ff4cf2472f1734844bbcbad2bf658d8b699cb7248d768e0f06ae13ecf43b8
languageName: node
linkType: hard
"eventemitter3@npm:^5.0.1":
version: 5.0.4
resolution: "eventemitter3@npm:5.0.4"
@@ -7896,16 +7775,6 @@ __metadata:
languageName: node
linkType: hard
"is-arguments@npm:^1.0.4":
version: 1.2.0
resolution: "is-arguments@npm:1.2.0"
dependencies:
call-bound: "npm:^1.0.2"
has-tostringtag: "npm:^1.0.2"
checksum: 10/471a8ef631b8ee8829c43a8ab05c081700c0e25180c73d19f3bf819c1a8448c426a9e8e601f278973eca68966384b16ceb78b8c63af795b099cd199ea5afc457
languageName: node
linkType: hard
"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5":
version: 3.0.5
resolution: "is-array-buffer@npm:3.0.5"
@@ -8036,7 +7905,7 @@ __metadata:
languageName: node
linkType: hard
"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7":
"is-generator-function@npm:^1.0.10":
version: 1.1.2
resolution: "is-generator-function@npm:1.1.2"
dependencies:
@@ -8244,7 +8113,7 @@ __metadata:
languageName: node
linkType: hard
"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15, is-typed-array@npm:^1.1.3":
"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15":
version: 1.1.15
resolution: "is-typed-array@npm:1.1.15"
dependencies:
@@ -8351,15 +8220,6 @@ __metadata:
languageName: node
linkType: hard
"isomorphic-ws@npm:^5.0.0":
version: 5.0.0
resolution: "isomorphic-ws@npm:5.0.0"
peerDependencies:
ws: "*"
checksum: 10/e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398
languageName: node
linkType: hard
"iterator.prototype@npm:^1.1.5":
version: 1.1.5
resolution: "iterator.prototype@npm:1.1.5"
@@ -9273,20 +9133,6 @@ __metadata:
languageName: node
linkType: hard
"node-fetch@npm:^2.7.0":
version: 2.7.0
resolution: "node-fetch@npm:2.7.0"
dependencies:
whatwg-url: "npm:^5.0.0"
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
checksum: 10/b24f8a3dc937f388192e59bcf9d0857d7b6940a2496f328381641cb616efccc9866e89ec43f2ec956bbd6c3d3ee05524ce77fe7b29ccd34692b3a16f237d6676
languageName: node
linkType: hard
"node-fetch@npm:^3.3.2":
version: 3.3.2
resolution: "node-fetch@npm:3.3.2"
@@ -11110,13 +10956,6 @@ __metadata:
languageName: node
linkType: hard
"setimmediate@npm:^1.0.5":
version: 1.0.5
resolution: "setimmediate@npm:1.0.5"
checksum: 10/76e3f5d7f4b581b6100ff819761f04a984fa3f3990e72a6554b57188ded53efce2d3d6c0932c10f810b7c59414f85e2ab3c11521877d1dea1ce0b56dc906f485
languageName: node
linkType: hard
"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0":
version: 1.2.0
resolution: "setprototypeof@npm:1.2.0"
@@ -11987,13 +11826,6 @@ __metadata:
languageName: node
linkType: hard
"tr46@npm:~0.0.3":
version: 0.0.3
resolution: "tr46@npm:0.0.3"
checksum: 10/8f1f5aa6cb232f9e1bdc86f485f916b7aa38caee8a778b378ffec0b70d9307873f253f5cbadbe2955ece2ac5c83d0dc14a77513166ccd0a0c7fe197e21396695
languageName: node
linkType: hard
"tree-dump@npm:^1.0.3, tree-dump@npm:^1.1.0":
version: 1.1.0
resolution: "tree-dump@npm:1.1.0"
@@ -12430,19 +12262,6 @@ __metadata:
languageName: node
linkType: hard
"util@npm:^0.12.5":
version: 0.12.5
resolution: "util@npm:0.12.5"
dependencies:
inherits: "npm:^2.0.3"
is-arguments: "npm:^1.0.4"
is-generator-function: "npm:^1.0.7"
is-typed-array: "npm:^1.1.3"
which-typed-array: "npm:^1.1.2"
checksum: 10/61a10de7753353dd4d744c917f74cdd7d21b8b46379c1e48e1c4fd8e83f8190e6bd9978fc4e5102ab6a10ebda6019d1b36572fa4a325e175ec8b789a121f6147
languageName: node
linkType: hard
"value-equal@npm:^1.0.1":
version: 1.0.1
resolution: "value-equal@npm:1.0.1"
@@ -12571,280 +12390,6 @@ __metadata:
languageName: node
linkType: hard
"web3-core@npm:^4.4.0, web3-core@npm:^4.5.0, web3-core@npm:^4.6.0, web3-core@npm:^4.7.1":
version: 4.7.1
resolution: "web3-core@npm:4.7.1"
dependencies:
web3-errors: "npm:^1.3.1"
web3-eth-accounts: "npm:^4.3.1"
web3-eth-iban: "npm:^4.0.7"
web3-providers-http: "npm:^4.2.0"
web3-providers-ipc: "npm:^4.0.7"
web3-providers-ws: "npm:^4.0.8"
web3-types: "npm:^1.10.0"
web3-utils: "npm:^4.3.3"
web3-validator: "npm:^2.0.6"
dependenciesMeta:
web3-providers-ipc:
optional: true
checksum: 10/c6b9447e62f5c57ccc3c96492adf5630cb3256968c15ce5675c660dec1f6da0bf60397efa88588029640f749ff45a1adaa0167a402ba0b4a46e600d8eda76334
languageName: node
linkType: hard
"web3-errors@npm:^1.1.3, web3-errors@npm:^1.2.0, web3-errors@npm:^1.3.0, web3-errors@npm:^1.3.1":
version: 1.3.1
resolution: "web3-errors@npm:1.3.1"
dependencies:
web3-types: "npm:^1.10.0"
checksum: 10/0d1cb0e02701a4bd619f856b0a6702fdd4cdc0a434029c3c3dcde3f3cc4acaca418117ad10238002aa697745840e7fd312bd43ad5341482b3ff8f9e6eb438a31
languageName: node
linkType: hard
"web3-eth-abi@npm:^4.4.1":
version: 4.4.1
resolution: "web3-eth-abi@npm:4.4.1"
dependencies:
abitype: "npm:0.7.1"
web3-errors: "npm:^1.3.1"
web3-types: "npm:^1.10.0"
web3-utils: "npm:^4.3.3"
web3-validator: "npm:^2.0.6"
checksum: 10/0c7f4f9f05f04e0ac98f6029edfb3bf7e514efc325f6be83e999203f49c7a0cdc9759f4b1011ce12d80c2044c74a867f7fc0ee83538408c2ebb4c9f407027b7f
languageName: node
linkType: hard
"web3-eth-accounts@npm:^4.3.1":
version: 4.3.1
resolution: "web3-eth-accounts@npm:4.3.1"
dependencies:
"@ethereumjs/rlp": "npm:^4.0.1"
crc-32: "npm:^1.2.2"
ethereum-cryptography: "npm:^2.0.0"
web3-errors: "npm:^1.3.1"
web3-types: "npm:^1.10.0"
web3-utils: "npm:^4.3.3"
web3-validator: "npm:^2.0.6"
checksum: 10/f8b689146c908d88b983bd467c3e794ed96e284490aa3f74e665580202db4f0826d4108f0aa95dc6ef1e14f9a8a41939ff2c4485e9713744dc6474d7082d9239
languageName: node
linkType: hard
"web3-eth-contract@npm:^4.5.0, web3-eth-contract@npm:^4.7.2":
version: 4.7.2
resolution: "web3-eth-contract@npm:4.7.2"
dependencies:
"@ethereumjs/rlp": "npm:^5.0.2"
web3-core: "npm:^4.7.1"
web3-errors: "npm:^1.3.1"
web3-eth: "npm:^4.11.1"
web3-eth-abi: "npm:^4.4.1"
web3-types: "npm:^1.10.0"
web3-utils: "npm:^4.3.3"
web3-validator: "npm:^2.0.6"
checksum: 10/f5dd22199a69c6f10b0c38daee790341f80247a0155bad03e7c1a9ffad2d6c47722010b4fd0e3fe7832a43eb72a2fceadfd2892712ef199898c1e43067a92c0d
languageName: node
linkType: hard
"web3-eth-ens@npm:^4.4.0":
version: 4.4.0
resolution: "web3-eth-ens@npm:4.4.0"
dependencies:
"@adraffy/ens-normalize": "npm:^1.8.8"
web3-core: "npm:^4.5.0"
web3-errors: "npm:^1.2.0"
web3-eth: "npm:^4.8.0"
web3-eth-contract: "npm:^4.5.0"
web3-net: "npm:^4.1.0"
web3-types: "npm:^1.7.0"
web3-utils: "npm:^4.3.0"
web3-validator: "npm:^2.0.6"
checksum: 10/25a1535e095d8ffcbc0641041af69e42aa60ba2989477108a5678c42a06135df9134ccc6024c89c216cb3408848e3905ee178d5b12e3bb740e895ee6ee0bd2cf
languageName: node
linkType: hard
"web3-eth-iban@npm:^4.0.7":
version: 4.0.7
resolution: "web3-eth-iban@npm:4.0.7"
dependencies:
web3-errors: "npm:^1.1.3"
web3-types: "npm:^1.3.0"
web3-utils: "npm:^4.0.7"
web3-validator: "npm:^2.0.3"
checksum: 10/9d7521b4d4aef3a0d697905c7859d8e4d7ce82234320beecba9b24d254592a7ccf0354f329289b4e11a816fcbe3eceb842c4c87678f5e8ec622c8351bc1b9170
languageName: node
linkType: hard
"web3-eth-personal@npm:^4.1.0":
version: 4.1.0
resolution: "web3-eth-personal@npm:4.1.0"
dependencies:
web3-core: "npm:^4.6.0"
web3-eth: "npm:^4.9.0"
web3-rpc-methods: "npm:^1.3.0"
web3-types: "npm:^1.8.0"
web3-utils: "npm:^4.3.1"
web3-validator: "npm:^2.0.6"
checksum: 10/a560b0ef1f28961101c47824aa6fc71722c4e581ef5ffc5b68cf1b7db0fd5804032239f872a167a589b3c0ebe223353b8112b38e247e1f5b5ac48991e12f853c
languageName: node
linkType: hard
"web3-eth@npm:^4.11.1, web3-eth@npm:^4.8.0, web3-eth@npm:^4.9.0":
version: 4.11.1
resolution: "web3-eth@npm:4.11.1"
dependencies:
setimmediate: "npm:^1.0.5"
web3-core: "npm:^4.7.1"
web3-errors: "npm:^1.3.1"
web3-eth-abi: "npm:^4.4.1"
web3-eth-accounts: "npm:^4.3.1"
web3-net: "npm:^4.1.0"
web3-providers-ws: "npm:^4.0.8"
web3-rpc-methods: "npm:^1.3.0"
web3-types: "npm:^1.10.0"
web3-utils: "npm:^4.3.3"
web3-validator: "npm:^2.0.6"
checksum: 10/b39f5f1559a012ece0017f3976207ffb5358c4ebb2e8518721efcc4975005ed8948814613795d1ceee67eb28f33608cbc89f6b231534241052de231c6477ed17
languageName: node
linkType: hard
"web3-net@npm:^4.1.0":
version: 4.1.0
resolution: "web3-net@npm:4.1.0"
dependencies:
web3-core: "npm:^4.4.0"
web3-rpc-methods: "npm:^1.3.0"
web3-types: "npm:^1.6.0"
web3-utils: "npm:^4.3.0"
checksum: 10/2899ed28d9afda9f9faee6424752cb967dabf79128bce25321318e069a41571b9bd9477b480f290fd65f07cd6c0c641def0d72f31a730705112bd14c301f4e5e
languageName: node
linkType: hard
"web3-providers-http@npm:^4.2.0":
version: 4.2.0
resolution: "web3-providers-http@npm:4.2.0"
dependencies:
cross-fetch: "npm:^4.0.0"
web3-errors: "npm:^1.3.0"
web3-types: "npm:^1.7.0"
web3-utils: "npm:^4.3.1"
checksum: 10/812b05d1e0dd8b6c5005bdcfe3c5fbddfe6cdd082bd2654dfe171ad98c3b7ff85b0bab371c70366d2bace2cf45fbf7d2f087b4cb281dbfa12372b902b8138eeb
languageName: node
linkType: hard
"web3-providers-ipc@npm:^4.0.7":
version: 4.0.7
resolution: "web3-providers-ipc@npm:4.0.7"
dependencies:
web3-errors: "npm:^1.1.3"
web3-types: "npm:^1.3.0"
web3-utils: "npm:^4.0.7"
checksum: 10/b953818479f5d9c7b748e10977430fd7e377696f9160ae19b1917c0317e89671c4be824c06723b6fda190258927160fcec0e8e7c1aa87a5f0344008ef7649cda
languageName: node
linkType: hard
"web3-providers-ws@npm:^4.0.8":
version: 4.0.8
resolution: "web3-providers-ws@npm:4.0.8"
dependencies:
"@types/ws": "npm:8.5.3"
isomorphic-ws: "npm:^5.0.0"
web3-errors: "npm:^1.2.0"
web3-types: "npm:^1.7.0"
web3-utils: "npm:^4.3.1"
ws: "npm:^8.17.1"
checksum: 10/9b9fa96fa1fc9455fb1b632de50f542d2589710002ea2cb0cd6a5c1ed9f72960d80ce219ac66b038ea6d0a767056fe653aa258a1c084aa78d5745870cc2703b4
languageName: node
linkType: hard
"web3-rpc-methods@npm:^1.3.0":
version: 1.3.0
resolution: "web3-rpc-methods@npm:1.3.0"
dependencies:
web3-core: "npm:^4.4.0"
web3-types: "npm:^1.6.0"
web3-validator: "npm:^2.0.6"
checksum: 10/8c134b1f2ae1cf94d5c452c53fe699d5951c22c62ea82084559db06722a5f0db2047be4209172ff90432c42f70cf8081fea0ea85a024e4cbcd0e037efd9acfa8
languageName: node
linkType: hard
"web3-rpc-providers@npm:^1.0.0-rc.4":
version: 1.0.0-rc.4
resolution: "web3-rpc-providers@npm:1.0.0-rc.4"
dependencies:
web3-errors: "npm:^1.3.1"
web3-providers-http: "npm:^4.2.0"
web3-providers-ws: "npm:^4.0.8"
web3-types: "npm:^1.10.0"
web3-utils: "npm:^4.3.3"
web3-validator: "npm:^2.0.6"
checksum: 10/a6dff5ce76e6905eb3e8e7175984305b859a35f17ffad9511371e0840097cdccc4d8dd4a4bc893aeb78f93c22034b4c73cac79551a4d7cba204e55590018909b
languageName: node
linkType: hard
"web3-types@npm:^1.10.0, web3-types@npm:^1.3.0, web3-types@npm:^1.6.0, web3-types@npm:^1.7.0, web3-types@npm:^1.8.0":
version: 1.10.0
resolution: "web3-types@npm:1.10.0"
checksum: 10/849f05a001896b27082c5b5c46c62b65a28f463366eeec7223802418a61db6d3487ebfb73d1fe6dcad3f0849a76e20706098819cb4e266df4f75ca24617e62a1
languageName: node
linkType: hard
"web3-utils@npm:^4.0.7, web3-utils@npm:^4.3.0, web3-utils@npm:^4.3.1, web3-utils@npm:^4.3.3":
version: 4.3.3
resolution: "web3-utils@npm:4.3.3"
dependencies:
ethereum-cryptography: "npm:^2.0.0"
eventemitter3: "npm:^5.0.1"
web3-errors: "npm:^1.3.1"
web3-types: "npm:^1.10.0"
web3-validator: "npm:^2.0.6"
checksum: 10/c91ebbe67e469fe184ab258564b1f002f6f0e563a91637429c8e5bd3f0653b970d0c45dac544402021a5512297f0bea39aa2dd0b4c9bc6f54d4b58897f2dd002
languageName: node
linkType: hard
"web3-validator@npm:^2.0.3, web3-validator@npm:^2.0.6":
version: 2.0.6
resolution: "web3-validator@npm:2.0.6"
dependencies:
ethereum-cryptography: "npm:^2.0.0"
util: "npm:^0.12.5"
web3-errors: "npm:^1.2.0"
web3-types: "npm:^1.6.0"
zod: "npm:^3.21.4"
checksum: 10/4df08e5317d55cdb674cbd11d7534a6cb41abfa4912cf3ff976c2b34a98e84500732fa0cade68a848e57b61259b4c9b377773f57de6bb69a5029c2ddef1cd0ab
languageName: node
linkType: hard
"web3@npm:^4.7.0":
version: 4.16.0
resolution: "web3@npm:4.16.0"
dependencies:
web3-core: "npm:^4.7.1"
web3-errors: "npm:^1.3.1"
web3-eth: "npm:^4.11.1"
web3-eth-abi: "npm:^4.4.1"
web3-eth-accounts: "npm:^4.3.1"
web3-eth-contract: "npm:^4.7.2"
web3-eth-ens: "npm:^4.4.0"
web3-eth-iban: "npm:^4.0.7"
web3-eth-personal: "npm:^4.1.0"
web3-net: "npm:^4.1.0"
web3-providers-http: "npm:^4.2.0"
web3-providers-ws: "npm:^4.0.8"
web3-rpc-methods: "npm:^1.3.0"
web3-rpc-providers: "npm:^1.0.0-rc.4"
web3-types: "npm:^1.10.0"
web3-utils: "npm:^4.3.3"
web3-validator: "npm:^2.0.6"
checksum: 10/8d63e70404914d2717d2675ba19350f112b07e50583a0703a68dd326eeb43a5c82b56f1165f4339cd89e697967581e0cd65fdb42ca0f1150fb7a3ce612f1a829
languageName: node
linkType: hard
"webidl-conversions@npm:^3.0.0":
version: 3.0.1
resolution: "webidl-conversions@npm:3.0.1"
checksum: 10/b65b9f8d6854572a84a5c69615152b63371395f0c5dcd6729c45789052296df54314db2bc3e977df41705eacb8bc79c247cee139a63fa695192f95816ed528ad
languageName: node
linkType: hard
"webidl-conversions@npm:^7.0.0":
version: 7.0.0
resolution: "webidl-conversions@npm:7.0.0"
@@ -13097,16 +12642,6 @@ __metadata:
languageName: node
linkType: hard
"whatwg-url@npm:^5.0.0":
version: 5.0.0
resolution: "whatwg-url@npm:5.0.0"
dependencies:
tr46: "npm:~0.0.3"
webidl-conversions: "npm:^3.0.0"
checksum: 10/f95adbc1e80820828b45cc671d97da7cd5e4ef9deb426c31bcd5ab00dc7103042291613b3ef3caec0a2335ed09e0d5ed026c940755dbb6d404e2b27f940fdf07
languageName: node
linkType: hard
"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1":
version: 1.1.1
resolution: "which-boxed-primitive@npm:1.1.1"
@@ -13153,7 +12688,7 @@ __metadata:
languageName: node
linkType: hard
"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19, which-typed-array@npm:^1.1.2":
"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19":
version: 1.1.20
resolution: "which-typed-array@npm:1.1.20"
dependencies:
@@ -13222,7 +12757,7 @@ __metadata:
languageName: node
linkType: hard
"ws@npm:^8.17.1, ws@npm:^8.18.0, ws@npm:^8.20.0, ws@npm:^8.8.1":
"ws@npm:^8.18.0, ws@npm:^8.20.0, ws@npm:^8.8.1":
version: 8.22.0
resolution: "ws@npm:8.22.0"
peerDependencies:
@@ -13334,16 +12869,9 @@ __metadata:
languageName: node
linkType: hard
"zod@npm:^3.21.4, zod@npm:^3.25.67":
version: 3.25.76
resolution: "zod@npm:3.25.76"
checksum: 10/f0c963ec40cd96858451d1690404d603d36507c1fc9682f2dae59ab38b578687d542708a7fdbf645f77926f78c9ed558f57c3d3aa226c285f798df0c4da16995
languageName: node
linkType: hard
"zod@npm:^3.25.0 || ^4.0.0":
version: 4.6.6
resolution: "zod@npm:4.6.6"
checksum: 10/ce628fb33400b531f48b63ad1bd9b5ab95ec3ac60d4e8025892d90af9ca5d03b168aaaf74071928345ad1b1bcd735a7d5cf33230ece7de885240bb0f2b7bb492
"zod@npm:^3.25.0 || ^4.0.0, zod@npm:^4.6.7":
version: 4.6.7
resolution: "zod@npm:4.6.7"
checksum: 10/3ca8b8d6bb401538e59504c543db629ea7beaa775e504c3f22269b406fdffbf1431c856d59a597bf66d8487e4d2be12b03a55d76fc2c63d9f046eae1ca173bca
languageName: node
linkType: hard