diff --git a/packages/agent/test/encrypt-inline-policy.test.ts b/packages/agent/test/encrypt-inline-policy.test.ts index 9bdf8d4eb3..adce407375 100644 --- a/packages/agent/test/encrypt-inline-policy.test.ts +++ b/packages/agent/test/encrypt-inline-policy.test.ts @@ -40,6 +40,19 @@ async function resolveEncryptInlinePayload( contextGraphId: string, publishContextGraphId?: string, ) { + // RFC-39 / LU-11 refactor extracted the access-policy probe + curated + // bootstrap into the private helper `_resolveCuratedChainKeyContext`, + // which `_resolveEncryptInlinePayload` now delegates to before returning + // either the AEAD callback or `undefined`. The lightweight `agentLike` + // harness in this file does not extend `DKGAgent.prototype`, so we must + // also bind the helper here — otherwise the first call throws + // `TypeError: this._resolveCuratedChainKeyContext is not a function` + // before any of the policy assertions below can run. All test cases in + // this file short-circuit inside the policy probe (public CG → undefined, + // unknown policy → throw) so they never touch the curated bootstrap + // dependencies (`createAndDistributeSwmSenderKeyEpoch` etc.). + agentLike._resolveCuratedChainKeyContext = (DKGAgent.prototype as any) + ._resolveCuratedChainKeyContext; return (DKGAgent.prototype as any)._resolveEncryptInlinePayload.call( agentLike, contextGraphId, diff --git a/packages/chain/src/mock-adapter.ts b/packages/chain/src/mock-adapter.ts index ce32cca272..a849f00cf6 100644 --- a/packages/chain/src/mock-adapter.ts +++ b/packages/chain/src/mock-adapter.ts @@ -137,6 +137,28 @@ export class MockChainAdapter implements ChainAdapter { return id; } + /** + * OT-RFC-39 LU-11 — resolve an EOA to its on-chain identityId. + * + * Mirrors `EVMChainAdapter.getIdentityIdForAddress` so the mock-backed + * fifth authorization path for `PROTOCOL_GET_CIPHERTEXT_CHUNK` + * (registered-node-operator auth in `dkg-agent`) can be exercised + * offline. Address lookups try both checksum and lowercase forms + * because `seedIdentity` stores whatever the caller passed. + * + * Returns `0n` for non-addresses or addresses with no seeded identity + * — matching Solidity's zero-init mapping semantics. + */ + async getIdentityIdForAddress(address: string): Promise { + if (!ethers.isAddress(address)) return 0n; + const checksum = ethers.getAddress(address); + return ( + this.identities.get(checksum) ?? + this.identities.get(checksum.toLowerCase()) ?? + 0n + ); + } + /** * Test helper: seed a deterministic identity for an address in this in-memory adapter. * Used by black-box daemon tests that need stable participant IDs across processes. diff --git a/packages/node-ui/package.json b/packages/node-ui/package.json index ac29abc9b8..1e0a32e10a 100644 --- a/packages/node-ui/package.json +++ b/packages/node-ui/package.json @@ -41,6 +41,7 @@ "@vitejs/plugin-react": "^4", "@vitest/coverage-v8": "^4.0.18", "cross-env": "^10.1.0", + "happy-dom": "20.8.9", "react": "^19", "react-dom": "^19", "react-router-dom": "^7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f15c1d0021..5f286089b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,7 +48,7 @@ importers: version: 22.19.11 '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) esbench: specifier: ^0.8.1 version: 0.8.1(esbuild@0.27.7)(playwright-core@1.59.1)(rollup@4.60.4)(sucrase@3.35.1)(typescript@5.9.3)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) @@ -66,7 +66,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) demo: dependencies: @@ -100,7 +100,7 @@ importers: devDependencies: vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) devnet/conviction-lazy-settle: dependencies: @@ -110,7 +110,7 @@ importers: devDependencies: vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) devnet/v10-core-flows: dependencies: @@ -120,7 +120,7 @@ importers: devDependencies: vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) devnet/v10-end-to-end: dependencies: @@ -130,7 +130,7 @@ importers: devDependencies: vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) devnet/v10-stress: dependencies: @@ -140,7 +140,7 @@ importers: devDependencies: vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/adapter-elizaos: dependencies: @@ -150,10 +150,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/adapter-hermes: dependencies: @@ -163,10 +163,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/adapter-openclaw: dependencies: @@ -176,10 +176,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/agent: dependencies: @@ -231,10 +231,10 @@ importers: version: 4.0.9 '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/chain: dependencies: @@ -318,10 +318,10 @@ importers: version: 1.26.1 '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/core: dependencies: @@ -394,10 +394,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/epcis: dependencies: @@ -413,10 +413,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/evm-module: dependencies: @@ -523,7 +523,7 @@ importers: version: 19.2.14 '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) three: specifier: ^0.184.0 version: 0.184.0 @@ -538,7 +538,7 @@ importers: version: 6.4.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) optionalDependencies: jsonld: specifier: ^8.3.3 @@ -558,7 +558,7 @@ importers: devDependencies: vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) packages/network-sim: dependencies: @@ -580,7 +580,7 @@ importers: version: 4.7.0(vite@6.4.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) typescript: specifier: ^5.7.0 version: 5.9.3 @@ -589,7 +589,7 @@ importers: version: 6.4.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/node-ui: dependencies: @@ -653,10 +653,13 @@ importers: version: 4.7.0(vite@6.4.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) cross-env: specifier: ^10.1.0 version: 10.1.0 + happy-dom: + specifier: 20.8.9 + version: 20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10) react: specifier: ^19 version: 19.2.4 @@ -680,7 +683,7 @@ importers: version: 6.4.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/publisher: dependencies: @@ -705,10 +708,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/query: dependencies: @@ -721,10 +724,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/random-sampling: dependencies: @@ -743,13 +746,13 @@ importers: version: link:../publisher '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) ethers: specifier: ^6 version: 6.16.0(bufferutil@4.1.0)(utf-8-validate@5.0.10) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages/storage: dependencies: @@ -762,10 +765,10 @@ importers: devDependencies: '@vitest/coverage-v8': specifier: ^4.0.18 - version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) vitest: specifier: ^4.0.18 - version: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) packages: @@ -2626,6 +2629,12 @@ packages: '@types/webxr@0.5.24': resolution: {integrity: sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==} + '@types/whatwg-mimetype@3.0.2': + resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@ungap/structured-clone@1.3.1': resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} @@ -3541,6 +3550,10 @@ packages: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -3992,6 +4005,10 @@ packages: engines: {node: '>=0.4.7'} hasBin: true + happy-dom@20.8.9: + resolution: {integrity: sha512-Tz23LR9T9jOGVZm2x1EPdXqwA37G/owYMxRwU0E4miurAtFsPMQ1d2Jc2okUaSjZqAFz2oEn3FLXC5a0a+siyA==} + engines: {node: '>=20.0.0'} + hardhat-abi-exporter@2.11.0: resolution: {integrity: sha512-hBC4Xzncew9pdqVpzWoEEBJUthp99TCH39cHlMehVxBBQ6EIsIFyj3N0yd0hkVDfM8/s/FMRAuO5jntZBpwCZQ==} engines: {node: '>=14.14.0'} @@ -6419,6 +6436,10 @@ packages: resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} engines: {node: '>=8.0.0'} + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + wherearewe@2.0.1: resolution: {integrity: sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==} engines: {node: '>=16.0.0', npm: '>=7.0.0'} @@ -8538,6 +8559,12 @@ snapshots: '@types/webxr@0.5.24': {} + '@types/whatwg-mimetype@3.0.2': {} + + '@types/ws@8.18.1': + dependencies: + '@types/node': 22.19.11 + '@ungap/structured-clone@1.3.1': {} '@vitejs/plugin-react@4.7.0(vite@6.4.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': @@ -8552,7 +8579,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.18 @@ -8564,7 +8591,7 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + vitest: 4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) '@vitest/coverage-v8@4.0.18(vitest@4.1.7)': dependencies: @@ -8578,7 +8605,7 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.1.7(@types/node@22.19.11)(@vitest/coverage-v8@4.0.18)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + vitest: 4.1.7(@types/node@22.19.11)(@vitest/coverage-v8@4.0.18)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/expect@4.0.18': dependencies: @@ -9482,6 +9509,8 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 + entities@7.0.1: {} + env-paths@2.2.1: {} error-ex@1.3.4: @@ -10139,6 +10168,18 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 + happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10): + dependencies: + '@types/node': 22.19.11 + '@types/whatwg-mimetype': 3.0.2 + '@types/ws': 8.18.1 + entities: 7.0.1 + whatwg-mimetype: 3.0.0 + ws: 8.20.1(bufferutil@4.1.0)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + hardhat-abi-exporter@2.11.0(hardhat@2.28.6(patch_hash=0d296aadcb2c28c2040ee89cecb4d10311c66f2e64ca77faf8151dbc4822dff9)(bufferutil@4.1.0)(ts-node@10.9.2(@types/node@22.19.11)(typescript@5.9.3))(typescript@5.9.3)(utf-8-validate@5.0.10)): dependencies: '@ethersproject/abi': 5.8.0 @@ -12982,7 +13023,7 @@ snapshots: tsx: 4.21.0 yaml: 2.9.0 - vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3): + vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3): dependencies: '@vitest/expect': 4.0.18 '@vitest/mocker': 4.0.18(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) @@ -13006,6 +13047,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.19.11 + happy-dom: 20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10) transitivePeerDependencies: - jiti - less @@ -13019,7 +13061,7 @@ snapshots: - tsx - yaml - vitest@4.0.18(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0): + vitest@4.0.18(@types/node@22.19.11)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0): dependencies: '@vitest/expect': 4.0.18 '@vitest/mocker': 4.0.18(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) @@ -13043,6 +13085,7 @@ snapshots: why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.19.11 + happy-dom: 20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10) transitivePeerDependencies: - jiti - less @@ -13056,7 +13099,7 @@ snapshots: - tsx - yaml - vitest@4.1.7(@types/node@22.19.11)(@vitest/coverage-v8@4.0.18)(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): + vitest@4.1.7(@types/node@22.19.11)(@vitest/coverage-v8@4.0.18)(happy-dom@20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10))(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.7 '@vitest/mocker': 4.1.7(vite@7.3.2(@types/node@22.19.11)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) @@ -13081,6 +13124,7 @@ snapshots: optionalDependencies: '@types/node': 22.19.11 '@vitest/coverage-v8': 4.0.18(vitest@4.1.7) + happy-dom: 20.8.9(bufferutil@4.1.0)(utf-8-validate@5.0.10) transitivePeerDependencies: - msw @@ -13109,6 +13153,8 @@ snapshots: randombytes: 2.1.0 utf8: 3.0.0 + whatwg-mimetype@3.0.0: {} + wherearewe@2.0.1: dependencies: is-electron: 2.2.2