From 0c58444b8b12d549cffbe19ce8a912dade7abd6d Mon Sep 17 00:00:00 2001 From: William Hua Date: Wed, 26 Jun 2024 19:24:55 -0400 Subject: [PATCH] sessions: arweave config reader --- packages/sessions/package.json | 1 + packages/sessions/src/tracker.ts | 2 +- packages/sessions/src/trackers/arweave.ts | 552 ++++++++++++++++++ packages/sessions/src/trackers/index.ts | 1 + packages/sessions/tests/local.spec.ts | 122 ++++ pnpm-lock.yaml | 678 +++++++++++++--------- 6 files changed, 1092 insertions(+), 264 deletions(-) create mode 100644 packages/sessions/src/trackers/arweave.ts diff --git a/packages/sessions/package.json b/packages/sessions/package.json index 8126c4fcf..70241b5b8 100644 --- a/packages/sessions/package.json +++ b/packages/sessions/package.json @@ -14,6 +14,7 @@ "test:coverage": "nyc pnpm test" }, "dependencies": { + "@0xsequence/abi": "workspace:*", "@0xsequence/core": "workspace:*", "@0xsequence/migration": "workspace:*", "@0xsequence/replacer": "workspace:*", diff --git a/packages/sessions/src/tracker.ts b/packages/sessions/src/tracker.ts index 2ba337339..f076943fe 100644 --- a/packages/sessions/src/tracker.ts +++ b/packages/sessions/src/tracker.ts @@ -18,7 +18,7 @@ export type ConfigDataDump = { presignedTransactions: PresignedConfigLink[] } -export abstract class ConfigTracker { +export interface ConfigTracker { loadPresignedConfiguration: (args: { wallet: string fromImageHash: string diff --git a/packages/sessions/src/trackers/arweave.ts b/packages/sessions/src/trackers/arweave.ts new file mode 100644 index 000000000..80144405c --- /dev/null +++ b/packages/sessions/src/trackers/arweave.ts @@ -0,0 +1,552 @@ +import { walletContracts } from '@0xsequence/abi' +import { commons, v2 } from '@0xsequence/core' +import { migrator } from '@0xsequence/migration' +import { CachedEIP5719 } from '@0xsequence/replacer' +import { ethers } from 'ethers' +import { ConfigTracker, PresignedConfig, PresignedConfigLink } from '../tracker' + +const ArweaveRateLimitDelay = 5 * 60 * 1000 + +export class ArweaveReader implements ConfigTracker, migrator.PresignedMigrationTracker { + private readonly configs: Map> = new Map() + + private readonly eip5719?: CachedEIP5719 + + constructor( + readonly namespace = 'Sequence-Sessions', + eip5719Provider?: ethers.providers.Provider + ) { + if (eip5719Provider) { + this.eip5719 = new CachedEIP5719(eip5719Provider) + } + } + + async loadPresignedConfiguration(args: { + wallet: string + fromImageHash: string + longestPath?: boolean + }): Promise { + const wallet = ethers.utils.getAddress(args.wallet) + + const fromConfig = await this.configOfImageHash({ imageHash: args.fromImageHash }) + if (!fromConfig) { + throw new Error(`unable to find from config ${args.fromImageHash}`) + } + if (!v2.config.isWalletConfig(fromConfig)) { + throw new Error(`from config ${args.fromImageHash} is not v2`) + } + const fromCheckpoint = ethers.BigNumber.from(fromConfig.checkpoint) + + const items = Object.entries( + await findItems({ Type: 'config update', Wallet: wallet }, { namespace: this.namespace }) + ).flatMap(([id, tags]) => { + try { + const { Signer: signer, Subdigest: subdigest, Digest: digest, 'To-Config': toImageHash } = tags + + let toCheckpoint: ethers.BigNumber + try { + toCheckpoint = ethers.BigNumber.from(tags['To-Checkpoint']) + } catch { + throw new Error(`to checkpoint is not a number: ${tags['To-Checkpoint']}`) + } + if (toCheckpoint.lte(fromCheckpoint)) { + return [] + } + + if (!ethers.utils.isAddress(signer)) { + throw new Error(`signer is not an address: ${signer}`) + } + + if (!ethers.utils.isHexString(subdigest, 32)) { + throw new Error(`subdigest is not a hash: ${subdigest}`) + } + + if (!ethers.utils.isHexString(digest, 32)) { + throw new Error(`digest is not a hash: ${digest}`) + } + + let chainId: ethers.BigNumber + try { + chainId = ethers.BigNumber.from(tags['Chain-ID']) + } catch { + throw new Error(`chain id is not a number: ${tags['Chain-ID']}`) + } + + if (!ethers.utils.isHexString(toImageHash, 32)) { + throw new Error(`to config is not a hash: ${toImageHash}`) + } + + return [{ id, signer, subdigest, digest, chainId, toImageHash, toCheckpoint }] + } catch (error) { + console.warn(`invalid wallet ${wallet} config update ${id}:`, error) + return [] + } + }) + + const signatures: Map> = new Map() + let candidates: typeof items = [] + + for (const item of items) { + let imageHashSignatures = signatures.get(item.toImageHash) + if (!imageHashSignatures) { + imageHashSignatures = new Map() + signatures.set(item.toImageHash, imageHashSignatures) + candidates.push(item) + } + imageHashSignatures.set(item.signer, item) + } + + if (args.longestPath) { + candidates.sort(({ toCheckpoint: a }, { toCheckpoint: b }) => a.sub(b).toNumber()) + } else { + candidates.sort(({ toCheckpoint: a }, { toCheckpoint: b }) => b.sub(a).toNumber()) + } + + const updates: PresignedConfigLink[] = [] + + for (let currentConfig = fromConfig; candidates.length; ) { + const currentImageHash = v2.config.imageHash(currentConfig) + + let nextCandidate: (typeof candidates)[number] | undefined + let nextCandidateItems: Map + let nextCandidateSigners: string[] = [] + + for (const candidate of candidates) { + nextCandidateItems = signatures.get(candidate.toImageHash)! + nextCandidateSigners = Array.from(nextCandidateItems.keys()) + + const { weight } = v2.signature.encodeSigners( + currentConfig, + new Map(nextCandidateSigners.map(signer => [signer, { signature: '0x', isDynamic: false }])), + [], + 0 + ) + + if (weight.gte(currentConfig.threshold)) { + nextCandidate = candidate + break + } + } + + if (!nextCandidate) { + console.warn( + `unreachable configs with checkpoint > ${ethers.BigNumber.from(currentConfig.checkpoint).toString()} from config ${currentImageHash}` + ) + break + } + + const nextImageHash = nextCandidate.toImageHash + const nextConfig = await this.configOfImageHash({ imageHash: nextImageHash }) + if (!nextConfig) { + console.warn(`unable to find config ${nextImageHash}`) + candidates = candidates.filter(({ toImageHash }) => toImageHash !== nextImageHash) + continue + } + if (!v2.config.isWalletConfig(nextConfig)) { + console.warn(`config ${nextImageHash} is not v2`) + candidates = candidates.filter(({ toImageHash }) => toImageHash !== nextImageHash) + continue + } + + try { + const nextCandidateSignatures = new Map( + ( + await Promise.all( + nextCandidateSigners.map(async signer => { + const { id, subdigest } = nextCandidateItems.get(signer)! + try { + let signature = await (await fetchItem(id)).text() + if (this.eip5719) { + try { + signature = ethers.utils.hexlify(await this.eip5719.runByEIP5719(signer, subdigest, signature)) + } catch (error) { + console.warn(`unable to run eip-5719 on config update ${id}`) + } + } + const recovered = commons.signer.tryRecoverSigner(subdigest, signature) + return [[signer, { signature, isDynamic: recovered !== signer }] as const] + } catch (error) { + console.warn(`unable to fetch signer ${signer} config update ${id}:`, error) + return [] + } + }) + ) + ).flat() + ) + + const { encoded: signature, weight } = v2.signature.encodeSigners(currentConfig, nextCandidateSignatures, [], 0) + if (weight.lt(currentConfig.threshold)) { + throw new Error( + `insufficient signing power ${weight.toString()} < ${ethers.BigNumber.from(currentConfig.threshold).toString()}` + ) + } + updates.push({ wallet, signature, nextImageHash }) + + currentConfig = nextConfig + candidates = candidates.filter(({ toCheckpoint }) => toCheckpoint.gt(currentConfig.checkpoint)) + } catch (error) { + console.warn( + `unable to reconstruct wallet ${wallet} update from config ${currentImageHash} to config ${nextImageHash}:`, + error + ) + candidates = candidates.filter(({ toImageHash }) => toImageHash !== nextImageHash) + } + } + + return updates + } + + savePresignedConfiguration(_args: PresignedConfig): Promise { + throw new Error('arweave backend does not support saving config updates') + } + + saveWitnesses(_args: { wallet: string; digest: string; chainId: ethers.BigNumberish; signatures: string[] }): Promise { + throw new Error('arweave backend does not support saving signatures') + } + + async configOfImageHash(args: { imageHash: string; noCache?: boolean }): Promise { + if (!args.noCache) { + const config = this.configs.get(args.imageHash) + if (config) { + try { + return await config + } catch { + const config = this.configs.get(args.imageHash) + if (config) { + return config + } + } + } + } + + const config = (async (imageHash: string): Promise => { + const items = Object.entries(await findItems({ Type: 'config', Config: imageHash }, { namespace: this.namespace })).flatMap( + ([id, tags]) => { + try { + const version = Number(tags.Version) + if (!version) { + throw new Error(`invalid version: ${tags.Version}`) + } + + return [{ id, version }] + } catch (error) { + console.warn(`config ${imageHash} at ${id} invalid:`, error) + return [] + } + } + ) + + switch (items.length) { + case 0: + this.configs.set(imageHash, Promise.resolve(undefined)) + return + case 1: + break + default: + console.warn(`multiple configs ${imageHash} at ${items.map(({ id }) => id).join(', ')}, using first`) + break + } + + const { id, version } = items[0] + + const config = { ...(await (await fetchItem(id)).json()), version } + if (config.tree) { + config.tree = toTopology(config.tree) + } + this.configs.set(imageHash, Promise.resolve(config)) + return config + })(args.imageHash) + + if (!args.noCache) { + this.configs.set(args.imageHash, config) + } + + return config + } + + saveWalletConfig(_args: { config: commons.config.Config }): Promise { + throw new Error('arweave backend does not support saving configs') + } + + async imageHashOfCounterfactualWallet(args: { + wallet: string + noCache?: boolean + }): Promise<{ imageHash: string; context: commons.context.WalletContext } | undefined> { + const wallet = ethers.utils.getAddress(args.wallet) + + const items = Object.entries(await findItems({ Type: 'wallet', Wallet: wallet }, { namespace: this.namespace })).flatMap( + ([id, tags]) => { + try { + const { 'Deploy-Config': imageHash } = tags + + const version = Number(tags['Deploy-Version']) + if (!version) { + throw new Error(`invalid version: ${tags['Deploy-Version']}`) + } + + if (!imageHash) { + throw new Error('no deploy config') + } + + const context = commons.context.defaultContexts[version] + if (!context) { + throw new Error(`unknown version: ${version}`) + } + + if (commons.context.addressOf(context, imageHash) !== wallet) { + throw new Error(`incorrect v${version} deploy config: ${imageHash}`) + } + + return [{ id, imageHash, context }] + } catch (error) { + console.warn(`wallet ${wallet} at ${id} invalid:`, error) + return [] + } + } + ) + + switch (items.length) { + case 0: + return + case 1: + break + default: + console.warn(`multiple deploy configs for wallet ${wallet} at ${items.map(({ id }) => id).join(', ')}, using first`) + break + } + + return items[0] + } + + saveCounterfactualWallet(_args: { config: commons.config.Config; context: commons.context.WalletContext[] }): Promise { + throw new Error('arweave backend does not support saving wallets') + } + + async walletsOfSigner(args: { + signer: string + noCache?: boolean + }): Promise> { + const signer = ethers.utils.getAddress(args.signer) + + const proofs: Map }> = new Map() + + for (const [id, tags] of Object.entries( + await findItems({ Type: ['signature', 'config update'], Signer: signer, Witness: 'true' }, { namespace: this.namespace }) + )) { + const { Wallet: wallet, Subdigest: subdigest, Digest: digest, 'Chain-ID': chainId } = tags + + try { + if (proofs.has(wallet)) { + continue + } + + if (subdigest !== commons.signature.subdigestOf({ digest, chainId, address: wallet })) { + throw new Error('incorrect subdigest') + } + + proofs.set(wallet, { + digest, + chainId: ethers.BigNumber.from(chainId), + signature: fetchItem(id).then(response => response.text()) + }) + } catch (error) { + console.warn(`signer ${signer} signature ${id} of wallet ${wallet} invalid:`, error) + } + } + + return Promise.all( + [...proofs.entries()].map(async ([wallet, { digest, chainId, signature }]) => ({ + wallet, + proof: { digest, chainId, signature: await signature } + })) + ) + } + + async getMigration( + address: string, + fromImageHash: string, + fromVersion: number, + chainId: ethers.BigNumberish + ): Promise { + const wallet = ethers.utils.getAddress(address) + + const items = Object.entries( + await findItems( + { + Type: 'migration', + Migration: wallet, + 'Chain-ID': ethers.BigNumber.from(chainId).toString(), + 'From-Version': `${fromVersion}`, + 'From-Config': fromImageHash + }, + { namespace: this.namespace } + ) + ).flatMap(([id, tags]) => { + try { + const { 'To-Config': toImageHash, Executor: executor } = tags + + const toVersion = Number(tags['To-Version']) + if (!toVersion) { + throw new Error(`invalid version: ${tags['To-Version']}`) + } + + if (!ethers.utils.isHexString(toImageHash, 32)) { + throw new Error(`to config is not a hash: ${toImageHash}`) + } + + if (!ethers.utils.isAddress(executor)) { + throw new Error(`executor is not an address: ${executor}`) + } + + return { id, toVersion, toImageHash, executor } + } catch (error) { + console.warn( + `chain ${ethers.BigNumber.from(chainId).toString()} migration ${id} for v${fromVersion} wallet ${wallet} from config ${fromImageHash} invalid:`, + error + ) + return [] + } + }) + + switch (items.length) { + case 0: + return + case 1: + break + default: + console.warn( + `multiple chain ${chainId} migrations for v${fromVersion} wallet ${wallet} from config ${fromImageHash} at ${items.map(({ id }) => id).join(', ')}, using first` + ) + break + } + + const { id, toVersion, toImageHash, executor } = items[0] + + const [data, toConfig] = await Promise.all([ + fetchItem(id).then(response => response.text()), + this.configOfImageHash({ imageHash: toImageHash }) + ]) + + if (!toConfig) { + throw new Error(`unable to find to config ${toImageHash} for migration`) + } + + const mainModule = new ethers.utils.Interface(walletContracts.mainModule.abi) + const [encoded, nonce, signature] = mainModule.decodeFunctionData('execute', data) + const transactions = commons.transaction.fromTxAbiEncode(encoded) + const subdigest = commons.transaction.subdigestOfTransactions(wallet, chainId, nonce, transactions) + + return { + tx: { entrypoint: executor, transactions, nonce, chainId, intent: { id: subdigest, wallet }, signature }, + fromVersion, + toVersion: Number(toVersion), + toConfig + } + } + + saveMigration(_address: string, _signed: migrator.SignedMigration, _contexts: commons.context.VersionedContext): Promise { + throw new Error('arweave backend does not support saving migrations') + } +} + +async function findItems( + filter: { [name: string]: string | string[] }, + options?: { namespace?: string; pageSize?: number; maxResults?: number } +): Promise<{ [id: string]: { [tag: string]: string } }> { + const namespace = options?.namespace + const pageSize = options?.pageSize ?? 100 + const maxResults = options?.maxResults + + const tags = Object.entries(filter).map( + ([name, values]) => + `{ name: "${namespace ? `${namespace}-${name}` : name}", values: [${typeof values === 'string' ? `"${values}"` : values.map(value => `"${value}"`).join(', ')}] }` + ) + + const edges: Array<{ cursor: string; node: { id: string; tags: Array<{ name: string; value: string }> } }> = [] + + for (let hasNextPage = true; hasNextPage && (maxResults === undefined || edges.length < maxResults); ) { + const query = ` + query { + transactions(sort: HEIGHT_DESC, ${edges.length ? `first: ${pageSize}, after: "${edges[edges.length - 1].cursor}"` : `first: ${pageSize}`}, tags: [${tags.join(', ')}]) { + pageInfo { + hasNextPage + } + edges { + cursor + node { + id + tags { + name + value + } + } + } + } + } + ` + + let response: Response + while (true) { + response = await fetch('https://arweave.net/graphql', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ query }), + redirect: 'follow' + }) + if (response.status !== 429) { + break + } + await new Promise(resolve => setTimeout(resolve, ArweaveRateLimitDelay)) + } + + const { + data: { transactions } + } = await response.json() + + edges.push(...transactions.edges) + + hasNextPage = transactions.pageInfo.hasNextPage + } + + return Object.fromEntries( + edges.map(({ node: { id, tags } }) => [ + id, + Object.fromEntries( + tags.map(({ name, value }) => [ + namespace && name.startsWith(`${namespace}-`) ? name.slice(namespace.length + 1) : name, + value + ]) + ) + ]) + ) +} + +async function fetchItem(id: string): Promise { + while (true) { + const response = await fetch(`https://arweave.net/${id}`, { redirect: 'follow' }) + if (response.status !== 429) { + return response + } + await new Promise(resolve => setTimeout(resolve, ArweaveRateLimitDelay)) + } +} + +function toTopology(topology: any): v2.config.Topology { + if (typeof topology === 'object' && topology?.node !== undefined) { + return { nodeHash: topology.node } + } + + if (topology instanceof Array && topology.length === 2) { + return { left: toTopology(topology[0]), right: toTopology(topology[1]) } + } + + if (v2.config.isNode(topology)) { + return { left: toTopology(topology.left), right: toTopology(topology.right) } + } + + if (v2.config.isNestedLeaf(topology)) { + return { ...topology, tree: toTopology(topology.tree) } + } + + return topology +} diff --git a/packages/sessions/src/trackers/index.ts b/packages/sessions/src/trackers/index.ts index 05dddeb00..a26c0c789 100644 --- a/packages/sessions/src/trackers/index.ts +++ b/packages/sessions/src/trackers/index.ts @@ -1,3 +1,4 @@ +export * as arweave from './arweave' export * as debug from './debug' export * as local from './local' export * as remote from './remote' diff --git a/packages/sessions/tests/local.spec.ts b/packages/sessions/tests/local.spec.ts index 7dc9a349b..894be2bad 100644 --- a/packages/sessions/tests/local.spec.ts +++ b/packages/sessions/tests/local.spec.ts @@ -1180,6 +1180,128 @@ describe('Local config tracker', () => { }) }) +describe('Arweave config reader', () => { + const namespace = 'axovybcmguutleij' + + it('Should find the config for an image hash', async () => { + const imageHash = '0x8f482f815eaa9520202b76568b8603defad3460f9f345b2bf87a28df5b5cb3db' + + const reader = new trackers.arweave.ArweaveReader(namespace) + const config = await reader.configOfImageHash({ imageHash }) + if (!config) { + throw new Error('config not found') + } + + const coder = universal.genericCoderFor(config.version) + expect(coder.config.imageHashOf(config)).to.equal(imageHash) + }) + + it('Should find the deploy config for a wallet', async () => { + const address = '0xF67736062872Dbc10FD2882B15C868b6c9645A9D' + + const reader = new trackers.arweave.ArweaveReader(namespace) + const wallet = await reader.imageHashOfCounterfactualWallet({ wallet: address }) + if (!wallet) { + throw new Error('wallet not found') + } + + expect(commons.context.addressOf(wallet.context, wallet.imageHash)).to.equal(address) + }) + + it('Should find the wallets for a signer', async () => { + const signer = '0x764d3a80ae2C1Dc0a38d14787f382168EF0Cd270' + + const reader = new trackers.arweave.ArweaveReader(namespace) + const wallets = await reader.walletsOfSigner({ signer }) + + expect(wallets.some(({ wallet }) => wallet === '0x647E7eb8E2834f8818E964B97336e41E20639267')).to.be.true + + expect( + wallets.every( + ({ wallet, proof: { digest, chainId, signature } }) => + commons.signer.recoverSigner(commons.signature.subdigestOf({ digest, chainId, address: wallet }), signature) === signer + ) + ).to.be.true + }) + + it('Should find the shortest sequence of config updates from a config', async () => { + const wallet = '0x05971669C685c1ECbc4D441D1b81Ecc49A249EEe' + const fromImageHash = '0x004c53ffce56402f25764c11c5538f83b73064cc2bd15b14701062f92fd3d648' + + const reader = new trackers.arweave.ArweaveReader(namespace) + const updates = await reader.loadPresignedConfiguration({ wallet, fromImageHash }) + + expect(updates).to.deep.equal([ + { + wallet: '0x05971669C685c1ECbc4D441D1b81Ecc49A249EEe', + nextImageHash: '0x0120af3a0e2941d5a36b7f2e243610f6351a8e290da1bec3cbc3b6b779222884', + signature: + '0x020005000000000003d5201fd0e49c26d0cade41946fb556027b2dff5bcfabaccade08966202848e7e2a176606a431262902c871978e2f04366f02da9b82d91b8c4fcaaa6e14ddfeee1b02040000160102597772c0a183204efaec323b37a9ed6d88c988040400007b02031d76d1d72ec65a9b933745bd0a87caa0fac75af0000062020001000000000001b55725759bf1af93aab1669a44e2c0f1bf1c04103c1a3c2b81fc29fe54bcc49f1342954985f438410c8c8aa3d049675886bbd8b52e256e1cb9d7c10a616f8d901c02010190d62a32d1cc65aa3e80b567c8c0d3ca0f411e6103' + } + ]) + }) + + it('Should find the longest sequence of config updates from a config', async () => { + const wallet = '0x05971669C685c1ECbc4D441D1b81Ecc49A249EEe' + const fromImageHash = '0x004c53ffce56402f25764c11c5538f83b73064cc2bd15b14701062f92fd3d648' + + const reader = new trackers.arweave.ArweaveReader(namespace) + const updates = await reader.loadPresignedConfiguration({ wallet, fromImageHash, longestPath: true }) + + expect(updates).to.deep.equal([ + { + wallet: '0x05971669C685c1ECbc4D441D1b81Ecc49A249EEe', + nextImageHash: '0x8aebdaf8de8d8c6db6879841e7b85f6480841282af739a9f39b1f0c69b42d6a2', + signature: + '0x0200050000000000038ee84d1cf3a3bd92165f0b85f83e407a7e69a3ee76d82f214e189b5aa5cf2a05277bd8e0723d4b027125058cfa2c6e7eba6c68051ee95368cf80245e1d7ebbb81b02040000160102597772c0a183204efaec323b37a9ed6d88c988040400007b02031d76d1d72ec65a9b933745bd0a87caa0fac75af0000062020001000000000001ac512777ebd109baf295b2f20d4ba11ef847644dda15a6b19eefd857b195a0294401a3a0080f529fda753191660ab61588356c9bf15b8cd54117fc0cf0f6c8fe1c02010190d62a32d1cc65aa3e80b567c8c0d3ca0f411e6103' + }, + { + wallet: '0x05971669C685c1ECbc4D441D1b81Ecc49A249EEe', + nextImageHash: '0x37758fed5c4c60994461125152139963b5025521cbd7c708de3d95df396605e0', + signature: + '0x0200050000000103c4b8aa34ceeec966dd15d51d5004c2695e21efc746dcb48531e8670ed01b858e0400007b02031d76d1d72ec65a9b933745bd0a87caa0fac75af0000062020001000000000001ee79a0d368eb32bc73446fabbf65e265beadc06d41720bb5144852e6182dff92154ebec93a0b0f28344dcf4fc533b979d2612e73c8cf04f0aac653e3014394c91b02010190d62a32d1cc65aa3e80b567c8c0d3ca0f411e6103040000440002c8989589a1489d456908c6c2f0317ce0bacf8fc2d64a696461642cfdb6d439f725d19274ce07f96f401232413fa0f9ce6d98497d20935138c2b710fa7ae9f5e01b02' + }, + { + wallet: '0x05971669C685c1ECbc4D441D1b81Ecc49A249EEe', + nextImageHash: '0x0120af3a0e2941d5a36b7f2e243610f6351a8e290da1bec3cbc3b6b779222884', + signature: + '0x020005000000020003d5201fd0e49c26d0cade41946fb556027b2dff5bcfabaccade08966202848e7e2a176606a431262902c871978e2f04366f02da9b82d91b8c4fcaaa6e14ddfeee1b02040000160102c623539534a553bb81a8e85698e5103bb55f2dac0400007b02031d76d1d72ec65a9b933745bd0a87caa0fac75af0000062020001000000000001b55725759bf1af93aab1669a44e2c0f1bf1c04103c1a3c2b81fc29fe54bcc49f1342954985f438410c8c8aa3d049675886bbd8b52e256e1cb9d7c10a616f8d901c02010190d62a32d1cc65aa3e80b567c8c0d3ca0f411e6103' + } + ]) + }) + + it('Should find a migration', async () => { + const address = '0x32284cD48A2cD2b3613Cbf8CD56693fe39B738Ee' + const fromVersion = 1 + const fromImageHash = '0x2662c159baa712737224f8a3aef97e5585ba4f2550ad2354832066b88b44fddf' + const toVersion = 2 + const toImageHash = '0xd2a9ad2da5358d21878a6e79d39feb4c1e67f984aa3db074021b51b6ffdad3d5' + const chainId = 42161 + + const reader = new trackers.arweave.ArweaveReader(namespace) + const migration = await reader.getMigration(address, fromImageHash, fromVersion, chainId) + if (!migration) { + throw new Error('migration not found') + } + + expect(migration.tx.intent.wallet).to.equal(address) + expect(ethers.BigNumber.from(migration.tx.chainId).eq(chainId)).to.be.true + expect(migration.fromVersion).to.equal(fromVersion) + expect(migration.toVersion).to.equal(toVersion) + expect(migration.toConfig.version).to.equal(toVersion) + + const toCoder = universal.genericCoderFor(migration.toVersion) + expect(toCoder.config.imageHashOf(migration.toConfig)).to.equal(toImageHash) + + const provider: ethers.providers.Provider = null! + const fromCoder = universal.genericCoderFor(migration.fromVersion) + const decoded = fromCoder.signature.decode(migration.tx.signature) + const digest = commons.transaction.digestOfTransactions(migration.tx.nonce, migration.tx.transactions) + const recovered = await fromCoder.signature.recover(decoded, { digest, chainId, address }, provider) + expect(fromCoder.config.imageHashOf(recovered.config)).to.equal(fromImageHash) + }) +}) + function normalize(value: any): any { switch (typeof value) { case 'object': diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2efb44ed3..e29b9aa28 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -97,7 +97,7 @@ importers: version: 20.11.20 '@typescript-eslint/eslint-plugin': specifier: ^6.13.2 - version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3) + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: ^6.13.2 version: 6.21.0(eslint@8.57.0)(typescript@5.3.3) @@ -121,19 +121,19 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.0.1 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) + version: 5.1.3(@types/eslint@8.56.3)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) express: specifier: ^4.18.2 version: 4.18.2(supports-color@6.1.0) hardhat: specifier: ^2.20.1 - version: 2.20.1(ts-node@10.9.2)(typescript@5.3.3) + version: 2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10) husky: specifier: ^8.0.0 version: 8.0.3 @@ -148,7 +148,7 @@ importers: version: 3.2.5 puppeteer: specifier: ^21.6.0 - version: 21.11.0(typescript@5.3.3) + version: 21.11.0(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10) rimraf: specifier: ^5.0.5 version: 5.0.5 @@ -224,25 +224,25 @@ importers: version: link:../tests '@0xsequence/wallet-contracts': specifier: ^2.0.0 - version: 2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(typechain@5.2.0)(typescript@5.3.3) + version: 2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(bufferutil@4.0.7)(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@6.0.3) '@babel/plugin-transform-runtime': specifier: ^7.19.6 version: 7.23.9(@babel/core@7.23.9) babel-loader: specifier: ^9.1.0 - version: 9.1.3(@babel/core@7.23.9)(webpack@5.90.3) + version: 9.1.3(@babel/core@7.23.9)(webpack@5.90.3(webpack-cli@4.10.0)) ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) ganache: specifier: ^7.5.0 version: 7.9.2 hardhat: specifier: ^2.20.1 - version: 2.20.1(ts-node@10.9.2)(typescript@5.3.3) + version: 2.20.1(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@6.0.3) html-webpack-plugin: specifier: ^5.3.1 - version: 5.6.0(webpack@5.90.3) + version: 5.6.0(webpack@5.90.3(webpack-cli@4.10.0)) webpack: specifier: ^5.65.0 version: 5.90.3(webpack-cli@4.10.0) @@ -251,7 +251,7 @@ importers: version: 4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3) webpack-dev-server: specifier: ^3.11.2 - version: 3.11.3(webpack-cli@4.10.0)(webpack@5.90.3) + version: 3.11.3(bufferutil@4.0.7)(utf-8-validate@6.0.3)(webpack-cli@4.10.0)(webpack@5.90.3) packages/abi: {} @@ -283,7 +283,7 @@ importers: version: link:../wallet ethers: specifier: ^5.5.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) devDependencies: '@0xsequence/signhub': specifier: workspace:* @@ -316,7 +316,7 @@ importers: version: link:../core '@0xsequence/ethauth': specifier: ^0.8.1 - version: 0.8.1(ethers@5.7.2) + version: 0.8.1(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@0xsequence/indexer': specifier: workspace:* version: link:../indexer @@ -347,19 +347,19 @@ importers: version: link:../tests '@0xsequence/wallet-contracts': specifier: ^1.10.0 - version: 1.10.0 + version: 1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) concurrently: specifier: ^7.5.0 version: 7.6.0 ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) hardhat: specifier: ^2.20.1 - version: 2.20.1(ts-node@10.9.2)(typescript@5.3.3) + version: 2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10) mockttp: specifier: ^3.6.0 - version: 3.10.1 + version: 3.10.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/core: dependencies: @@ -368,7 +368,7 @@ importers: version: link:../abi ethers: specifier: '>=5.5' - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) devDependencies: '@istanbuljs/nyc-config-typescript': specifier: ^1.0.2 @@ -388,22 +388,22 @@ importers: version: 5.7.0 '@ethersproject/providers': specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@nomiclabs/hardhat-ethers': specifier: ^2.2.1 - version: 2.2.3(ethers@5.7.2)(hardhat@2.20.1) + version: 2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)) '@nomiclabs/hardhat-web3': specifier: ^2.0.0 - version: 2.0.0(hardhat@2.20.1)(web3@1.10.4) + version: 2.0.0(hardhat@2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@typechain/ethers-v5': specifier: ^10.1.1 - version: 10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.3.2)(typescript@5.3.3) + version: 10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3) dotenv: specifier: ^16.0.3 version: 16.4.5 ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) typechain: specifier: ^8.1.1 version: 8.3.2(typescript@5.3.3) @@ -421,7 +421,7 @@ importers: version: link:../utils '@0xsequence/wallet-contracts': specifier: ^1.10.0 - version: 1.10.0 + version: 1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) devDependencies: '@0xsequence/signhub': specifier: workspace:* @@ -437,7 +437,7 @@ importers: version: 5.7.0 ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/guard: dependencies: @@ -455,7 +455,7 @@ importers: version: link:../utils ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/indexer: {} @@ -474,7 +474,7 @@ importers: version: link:../wallet ethers: specifier: ^5.5.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) devDependencies: '@istanbuljs/nyc-config-typescript': specifier: ^1.0.2 @@ -497,10 +497,10 @@ importers: devDependencies: '@0xsequence/wallet-contracts': specifier: ^2.0.0 - version: 2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(typechain@5.2.0)(typescript@5.3.3) + version: 2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(bufferutil@4.0.7)(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@6.0.3) '@ethersproject/providers': specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) '@types/web3-provider-engine': specifier: ^14.0.1 version: 14.0.4 @@ -509,7 +509,7 @@ importers: version: 9.0.1 ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) ganache: specifier: ^7.5.0 version: 7.9.2 @@ -518,10 +518,10 @@ importers: version: 6.1.0 web3: specifier: ^1.8.1 - version: 1.10.4 + version: 1.10.4(bufferutil@4.0.7)(utf-8-validate@6.0.3) web3-provider-engine: specifier: ^16.0.4 - version: 16.0.7 + version: 16.0.7(bufferutil@4.0.7)(utf-8-validate@6.0.3) packages/network: dependencies: @@ -540,7 +540,7 @@ importers: devDependencies: ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/provider: dependencies: @@ -586,10 +586,10 @@ importers: version: 0.10.7 ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) hardhat: specifier: ^2.20.1 - version: 2.20.1(ts-node@10.9.2)(typescript@5.3.3) + version: 2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10) packages/react-native: dependencies: @@ -620,10 +620,10 @@ importers: version: link:../tests '@0xsequence/wallet-contracts': specifier: ^1.10.0 - version: 1.10.0 + version: 1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/replacer: dependencies: @@ -635,10 +635,13 @@ importers: version: link:../core ethers: specifier: '>=5.5' - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/sessions: dependencies: + '@0xsequence/abi': + specifier: workspace:* + version: link:../abi '@0xsequence/core': specifier: workspace:* version: link:../core @@ -650,7 +653,7 @@ importers: version: link:../replacer ethers: specifier: ^5.5.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) idb: specifier: ^7.1.1 version: 7.1.1 @@ -678,7 +681,7 @@ importers: version: link:../core ethers: specifier: ^5.5.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) devDependencies: '@istanbuljs/nyc-config-typescript': specifier: ^1.0.2 @@ -694,7 +697,7 @@ importers: version: link:../core '@0xsequence/wallet-contracts': specifier: ^1.10.0 - version: 1.10.0 + version: 1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) devDependencies: '@0xsequence/signhub': specifier: workspace:* @@ -704,7 +707,7 @@ importers: version: link:../tests ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/tests: dependencies: @@ -717,10 +720,10 @@ importers: version: 1.0.2(nyc@15.1.0) ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) web3: specifier: ^1.8.1 - version: 1.10.4 + version: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/utils: dependencies: @@ -730,7 +733,7 @@ importers: devDependencies: ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/waas: dependencies: @@ -745,7 +748,7 @@ importers: version: 3.521.0 ethers: specifier: '>=5.5' - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) idb: specifier: ^7.1.1 version: 7.1.1 @@ -770,7 +773,7 @@ importers: version: link:../waas ethers: specifier: '>=5.5' - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages/wallet: dependencies: @@ -795,22 +798,22 @@ importers: devDependencies: '@0xsequence/ethauth': specifier: ^0.8.1 - version: 0.8.1(ethers@5.7.2) + version: 0.8.1(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@0xsequence/tests': specifier: workspace:* version: link:../tests '@0xsequence/wallet-contracts': specifier: ^2.0.0 - version: 2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(typechain@5.2.0)(typescript@5.3.3) + version: 2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10) '@istanbuljs/nyc-config-typescript': specifier: ^1.0.1 version: 1.0.2(nyc@15.1.0) ethers: specifier: ^5.7.2 - version: 5.7.2 + version: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) web3: specifier: ^1.8.1 - version: 1.10.4 + version: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages: @@ -2455,10 +2458,6 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - '@trufflesuite/bigint-buffer@1.1.10': - resolution: {integrity: sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==} - engines: {node: '>= 14.0.0'} - '@trufflesuite/uws-js-unofficial@20.30.0-unofficial.0': resolution: {integrity: sha512-r5X0aOQcuT6pLwTRLD+mPnAM/nlKtvIK4Z+My++A8tTOR0qTjNRx8UB8jzRj3D+p9PMAp5LnpCUUGmz7/TppwA==} @@ -2942,14 +2941,6 @@ packages: resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} engines: {node: '>=0.10.0'} - array-back@1.0.4: - resolution: {integrity: sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==} - engines: {node: '>=0.12.0'} - - array-back@2.0.0: - resolution: {integrity: sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==} - engines: {node: '>=4'} - array-back@3.1.0: resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} engines: {node: '>=6'} @@ -3551,10 +3542,6 @@ packages: command-exists@1.2.9: resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} - command-line-args@4.0.7: - resolution: {integrity: sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==} - hasBin: true - command-line-args@5.2.1: resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} engines: {node: '>=4.0.0'} @@ -4307,7 +4294,6 @@ packages: ethereumjs-abi@https://codeload.github.com/ethereumjs/ethereumjs-abi/tar.gz/ee3994657fa7a427238e6ba92a84d0b529bbcde0: resolution: {tarball: https://codeload.github.com/ethereumjs/ethereumjs-abi/tar.gz/ee3994657fa7a427238e6ba92a84d0b529bbcde0} - name: ethereumjs-abi version: 0.6.8 ethereumjs-account@2.0.5: @@ -4514,10 +4500,6 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} - find-replace@1.0.3: - resolution: {integrity: sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==} - engines: {node: '>=4.0.0'} - find-replace@3.0.0: resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} engines: {node: '>=4.0.0'} @@ -5553,10 +5535,6 @@ packages: keccak256@1.0.6: resolution: {integrity: sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==} - keccak@3.0.2: - resolution: {integrity: sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ==} - engines: {node: '>=10.0.0'} - keccak@3.0.4: resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} engines: {node: '>=10.0.0'} @@ -5614,10 +5592,6 @@ packages: level-ws@0.0.0: resolution: {integrity: sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==} - leveldown@6.1.0: - resolution: {integrity: sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==} - engines: {node: '>=10.12.0'} - levelup@1.3.9: resolution: {integrity: sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==} @@ -6004,9 +5978,6 @@ packages: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} - napi-macros@2.0.0: - resolution: {integrity: sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==} - native-duplexpair@1.0.0: resolution: {integrity: sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==} @@ -6049,10 +6020,6 @@ packages: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} - node-gyp-build@4.4.0: - resolution: {integrity: sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==} - hasBin: true - node-gyp-build@4.8.0: resolution: {integrity: sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==} hasBin: true @@ -7333,10 +7300,6 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - test-value@2.1.0: - resolution: {integrity: sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==} - engines: {node: '>=0.10.0'} - text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -7510,12 +7473,6 @@ packages: type@2.7.2: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - typechain@5.2.0: - resolution: {integrity: sha512-0INirvQ+P+MwJOeMct+WLkUE4zov06QxC96D+i3uGFEHoiSkZN70MKDQsaj8zkL86wQwByJReI2e7fOUwECFuw==} - hasBin: true - peerDependencies: - typescript: '>=4.1.0' - typechain@8.3.2: resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} hasBin: true @@ -7558,9 +7515,6 @@ packages: resolution: {integrity: sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA==} engines: {node: '>=0.1.14'} - typical@2.6.1: - resolution: {integrity: sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==} - typical@4.0.0: resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} engines: {node: '>=8'} @@ -8155,24 +8109,38 @@ packages: snapshots: - '@0xsequence/ethauth@0.8.1(ethers@5.7.2)': + '@0xsequence/ethauth@0.8.1(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: - ethers: 5.7.2 + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) js-base64: 3.7.7 - '@0xsequence/wallet-contracts@1.10.0': + '@0xsequence/wallet-contracts@1.10.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': optionalDependencies: '@ethersproject/abi': 5.7.0 - '@ethersproject/providers': 5.7.2 - ethers: 5.7.2 + '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - '@0xsequence/wallet-contracts@2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(typechain@5.2.0)(typescript@5.3.3)': + '@0xsequence/wallet-contracts@2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(bufferutil@4.0.7)(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@6.0.3)': dependencies: - '@typechain/ethers-v5': 7.2.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@5.2.0)(typescript@5.3.3) - ethers: 5.7.2 + '@typechain/ethers-v5': 7.2.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(ethers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3) + ethers: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + keccak256: 1.0.6 + transitivePeerDependencies: + - '@ethersproject/abi' + - '@ethersproject/bytes' + - '@ethersproject/providers' + - bufferutil + - typechain + - typescript + - utf-8-validate + + '@0xsequence/wallet-contracts@2.0.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10)': + dependencies: + '@typechain/ethers-v5': 7.2.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) keccak256: 1.0.6 transitivePeerDependencies: - '@ethersproject/abi' @@ -9764,7 +9732,7 @@ snapshots: dependencies: '@ethersproject/logger': 5.7.0 - '@ethersproject/providers@5.7.2': + '@ethersproject/providers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3)': dependencies: '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/abstract-signer': 5.7.0 @@ -9785,7 +9753,33 @@ snapshots: '@ethersproject/transactions': 5.7.0 '@ethersproject/web': 5.7.1 bech32: 1.1.4 - ws: 7.4.6 + ws: 7.4.6(bufferutil@4.0.7)(utf-8-validate@6.0.3) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + bech32: 1.1.4 + ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -9918,27 +9912,27 @@ snapshots: dependencies: '@types/node': 20.11.20 - '@httptoolkit/subscriptions-transport-ws@0.11.2(graphql@15.8.0)': + '@httptoolkit/subscriptions-transport-ws@0.11.2(bufferutil@4.0.8)(graphql@15.8.0)(utf-8-validate@5.0.10)': dependencies: backo2: 1.0.2 eventemitter3: 3.1.2 graphql: 15.8.0 iterall: 1.3.0 symbol-observable: 1.2.0 - ws: 8.16.0 + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - '@httptoolkit/websocket-stream@6.0.1': + '@httptoolkit/websocket-stream@6.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@types/ws': 8.5.10 duplexify: 3.7.1 inherits: 2.0.4 - isomorphic-ws: 4.0.1(ws@8.16.0) + isomorphic-ws: 4.0.1(ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) readable-stream: 2.3.8 safe-buffer: 5.2.1 - ws: 8.16.0 + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) xtend: 4.0.2 transitivePeerDependencies: - bufferutil @@ -10154,11 +10148,12 @@ snapshots: '@nomicfoundation/ethereumjs-rlp': 5.0.4 '@nomicfoundation/ethereumjs-trie': 6.0.4 '@nomicfoundation/ethereumjs-util': 9.0.4 - '@nomicfoundation/ethereumjs-verkle': 0.0.2 debug: 4.3.4(supports-color@6.1.0) ethereum-cryptography: 0.1.3 js-sdsl: 4.4.2 lru-cache: 10.2.0 + optionalDependencies: + '@nomicfoundation/ethereumjs-verkle': 0.0.2 transitivePeerDependencies: - c-kzg - supports-color @@ -10256,16 +10251,16 @@ snapshots: '@nomicfoundation/solidity-analyzer-win32-ia32-msvc': 0.1.1 '@nomicfoundation/solidity-analyzer-win32-x64-msvc': 0.1.1 - '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2)(hardhat@2.20.1)': + '@nomiclabs/hardhat-ethers@2.2.3(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(hardhat@2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10))': dependencies: - ethers: 5.7.2 - hardhat: 2.20.1(ts-node@10.9.2)(typescript@5.3.3) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + hardhat: 2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10) - '@nomiclabs/hardhat-web3@2.0.0(hardhat@2.20.1)(web3@1.10.4)': + '@nomiclabs/hardhat-web3@2.0.0(hardhat@2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10))(web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@types/bignumber.js': 5.0.0 - hardhat: 2.20.1(ts-node@10.9.2)(typescript@5.3.3) - web3: 1.10.4 + hardhat: 2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10) + web3: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@pkgjs/parseargs@0.11.0': optional: true @@ -10737,10 +10732,6 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': {} - '@trufflesuite/bigint-buffer@1.1.10': - dependencies: - node-gyp-build: 4.4.0 - '@trufflesuite/uws-js-unofficial@20.30.0-unofficial.0': dependencies: ws: 8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3) @@ -10756,25 +10747,36 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@typechain/ethers-v5@10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@8.3.2)(typescript@5.3.3)': + '@typechain/ethers-v5@10.2.1(@ethersproject/abi@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3)': dependencies: '@ethersproject/abi': 5.7.0 - '@ethersproject/providers': 5.7.2 - ethers: 5.7.2 + '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) lodash: 4.17.21 ts-essentials: 7.0.3(typescript@5.3.3) typechain: 8.3.2(typescript@5.3.3) typescript: 5.3.3 - '@typechain/ethers-v5@7.2.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2)(ethers@5.7.2)(typechain@5.2.0)(typescript@5.3.3)': + '@typechain/ethers-v5@7.2.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(ethers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3))(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3)': dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/bytes': 5.7.0 - '@ethersproject/providers': 5.7.2 - ethers: 5.7.2 + '@ethersproject/providers': 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + ethers: 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) lodash: 4.17.21 ts-essentials: 7.0.3(typescript@5.3.3) - typechain: 5.2.0(typescript@5.3.3) + typechain: 8.3.2(typescript@5.3.3) + typescript: 5.3.3 + + '@typechain/ethers-v5@7.2.0(@ethersproject/abi@5.7.0)(@ethersproject/bytes@5.7.0)(@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.3.3))(typescript@5.3.3)': + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + lodash: 4.17.21 + ts-essentials: 7.0.3(typescript@5.3.3) + typechain: 8.3.2(typescript@5.3.3) typescript: 5.3.3 '@types/bignumber.js@5.0.0': @@ -10909,7 +10911,7 @@ snapshots: '@types/node': 20.11.20 optional: true - '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3)': + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0)(typescript@5.3.3)': dependencies: '@eslint-community/regexpp': 4.10.0 '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) @@ -10924,6 +10926,7 @@ snapshots: natural-compare: 1.4.0 semver: 7.6.0 ts-api-utils: 1.2.1(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -10936,6 +10939,7 @@ snapshots: '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4(supports-color@6.1.0) eslint: 8.57.0 + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -10952,6 +10956,7 @@ snapshots: debug: 4.3.4(supports-color@6.1.0) eslint: 8.57.0 ts-api-utils: 1.2.1(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -10968,6 +10973,7 @@ snapshots: minimatch: 9.0.3 semver: 7.6.0 ts-api-utils: 1.2.1(typescript@5.3.3) + optionalDependencies: typescript: 5.3.3 transitivePeerDependencies: - supports-color @@ -11087,20 +11093,21 @@ snapshots: '@webassemblyjs/ast': 1.11.6 '@xtuc/long': 4.2.2 - '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.90.3)': + '@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3))(webpack@5.90.3(webpack-cli@4.10.0))': dependencies: webpack: 5.90.3(webpack-cli@4.10.0) webpack-cli: 4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3) - '@webpack-cli/info@1.5.0(webpack-cli@4.10.0)': + '@webpack-cli/info@1.5.0(webpack-cli@4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3))': dependencies: envinfo: 7.11.1 webpack-cli: 4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3) - '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0)(webpack-dev-server@3.11.3)': + '@webpack-cli/serve@1.7.0(webpack-cli@4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3))(webpack-dev-server@3.11.3(bufferutil@4.0.7)(utf-8-validate@6.0.3)(webpack-cli@4.10.0)(webpack@5.90.3))': dependencies: webpack-cli: 4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3) - webpack-dev-server: 3.11.3(webpack-cli@4.10.0)(webpack@5.90.3) + optionalDependencies: + webpack-dev-server: 3.11.3(bufferutil@4.0.7)(utf-8-validate@6.0.3)(webpack-cli@4.10.0)(webpack@5.90.3) '@xtuc/ieee754@1.2.0': {} @@ -11184,7 +11191,7 @@ snapshots: ajv: 6.12.6 ajv-formats@2.1.1(ajv@8.12.0): - dependencies: + optionalDependencies: ajv: 8.12.0 ajv-keywords@3.5.2(ajv@6.12.6): @@ -11283,14 +11290,6 @@ snapshots: arr-union@3.1.0: {} - array-back@1.0.4: - dependencies: - typical: 2.6.1 - - array-back@2.0.0: - dependencies: - typical: 2.6.1 - array-back@3.1.0: {} array-back@4.0.2: {} @@ -11467,7 +11466,7 @@ snapshots: axios@1.6.7: dependencies: - follow-redirects: 1.15.5(debug@4.3.4) + follow-redirects: 1.15.5(debug@4.3.4(supports-color@6.1.0)) form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -11475,7 +11474,7 @@ snapshots: b4a@1.6.6: {} - babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.90.3): + babel-loader@9.1.3(@babel/core@7.23.9)(webpack@5.90.3(webpack-cli@4.10.0)): dependencies: '@babel/core': 7.23.9 find-cache-dir: 4.0.0 @@ -11729,6 +11728,7 @@ snapshots: bufferutil@4.0.7: dependencies: node-gyp-build: 4.8.0 + optional: true bufferutil@4.0.8: dependencies: @@ -12016,12 +12016,6 @@ snapshots: command-exists@1.2.9: {} - command-line-args@4.0.7: - dependencies: - array-back: 2.0.0 - find-replace: 1.0.3 - typical: 2.6.1 - command-line-args@5.2.1: dependencies: array-back: 3.1.0 @@ -12165,6 +12159,7 @@ snapshots: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 + optionalDependencies: typescript: 5.3.3 crc-32@1.2.2: {} @@ -12273,21 +12268,25 @@ snapshots: debug@2.6.9(supports-color@6.1.0): dependencies: ms: 2.0.0 + optionalDependencies: supports-color: 6.1.0 debug@3.2.7(supports-color@6.1.0): dependencies: ms: 2.1.3 + optionalDependencies: supports-color: 6.1.0 debug@4.3.4(supports-color@6.1.0): dependencies: ms: 2.1.2 + optionalDependencies: supports-color: 6.1.0 debug@4.3.4(supports-color@8.1.1): dependencies: ms: 2.1.2 + optionalDependencies: supports-color: 8.1.1 decamelize-keys@1.1.1: @@ -12694,18 +12693,18 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) debug: 3.2.7(supports-color@6.1.0) + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint@8.57.0): dependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.4 array.prototype.flat: 1.3.2 @@ -12714,7 +12713,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.1 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -12724,18 +12723,22 @@ snapshots: object.values: 1.1.7 semver: 6.3.1 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5): + eslint-plugin-prettier@5.1.3(@types/eslint@8.56.3)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): dependencies: eslint: 8.57.0 - eslint-config-prettier: 9.1.0(eslint@8.57.0) prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 + optionalDependencies: + '@types/eslint': 8.56.3 + eslint-config-prettier: 9.1.0(eslint@8.57.0) eslint-scope@5.1.1: dependencies: @@ -12891,13 +12894,26 @@ snapshots: - encoding - supports-color - eth-lib@0.1.29: + eth-lib@0.1.29(bufferutil@4.0.7)(utf-8-validate@6.0.3): dependencies: bn.js: 4.12.0 elliptic: 6.5.4 nano-json-stream-parser: 0.1.2 servify: 0.1.12 - ws: 3.3.3 + ws: 3.3.3(bufferutil@4.0.7)(utf-8-validate@6.0.3) + xhr-request-promise: 0.1.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + eth-lib@0.1.29(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + nano-json-stream-parser: 0.1.2 + servify: 0.1.12 + ws: 3.3.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) xhr-request-promise: 0.1.3 transitivePeerDependencies: - bufferutil @@ -13054,7 +13070,7 @@ snapshots: rustbn.js: 0.2.0 safe-buffer: 5.2.1 - ethers@5.7.2: + ethers@5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3): dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/abstract-provider': 5.7.0 @@ -13074,7 +13090,43 @@ snapshots: '@ethersproject/networks': 5.7.1 '@ethersproject/pbkdf2': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2 + '@ethersproject/providers': 5.7.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/solidity': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/units': 5.7.0 + '@ethersproject/wallet': 5.7.0 + '@ethersproject/web': 5.7.1 + '@ethersproject/wordlists': 5.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/contracts': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@ethersproject/random': 5.7.0 '@ethersproject/rlp': 5.7.0 '@ethersproject/sha2': 5.7.0 @@ -13332,11 +13384,6 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - find-replace@1.0.3: - dependencies: - array-back: 1.0.4 - test-value: 2.1.0 - find-replace@3.0.0: dependencies: array-back: 3.1.0 @@ -13381,8 +13428,12 @@ snapshots: flatted@3.3.1: {} + follow-redirects@1.15.5(debug@4.3.4(supports-color@6.1.0)): + optionalDependencies: + debug: 4.3.4(supports-color@6.1.0) + follow-redirects@1.15.5(debug@4.3.4): - dependencies: + optionalDependencies: debug: 4.3.4(supports-color@6.1.0) for-each@0.3.3: @@ -13502,7 +13553,6 @@ snapshots: ganache@7.9.2: dependencies: - '@trufflesuite/bigint-buffer': 1.1.10 '@trufflesuite/uws-js-unofficial': 20.30.0-unofficial.0 '@types/bn.js': 5.1.5 '@types/lru-cache': 5.1.1 @@ -13511,9 +13561,6 @@ snapshots: abstract-leveldown: 7.2.0 async-eventemitter: 0.2.4 emittery: 0.10.0 - keccak: 3.0.2 - leveldown: 6.1.0 - secp256k1: 4.0.3 optionalDependencies: bufferutil: 4.0.5 utf-8-validate: 5.0.7 @@ -13749,7 +13796,7 @@ snapshots: hard-rejection@2.1.0: {} - hardhat@2.20.1(ts-node@10.9.2)(typescript@5.3.3): + hardhat@2.20.1(bufferutil@4.0.7)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@6.0.3): dependencies: '@ethersproject/abi': 5.7.0 '@metamask/eth-sig-util': 4.0.1 @@ -13797,12 +13844,74 @@ snapshots: solc: 0.7.3(debug@4.3.4) source-map-support: 0.5.21 stacktrace-parser: 0.1.10 - ts-node: 10.9.2(@types/node@20.11.20)(typescript@5.3.3) tsort: 0.0.1 + undici: 5.28.3 + uuid: 8.3.2 + ws: 7.5.9(bufferutil@4.0.7)(utf-8-validate@6.0.3) + optionalDependencies: + ts-node: 10.9.2(@types/node@20.11.20)(typescript@5.3.3) typescript: 5.3.3 + transitivePeerDependencies: + - bufferutil + - c-kzg + - supports-color + - utf-8-validate + + hardhat@2.20.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.11.20)(typescript@5.3.3))(typescript@5.3.3)(utf-8-validate@5.0.10): + dependencies: + '@ethersproject/abi': 5.7.0 + '@metamask/eth-sig-util': 4.0.1 + '@nomicfoundation/ethereumjs-block': 5.0.4 + '@nomicfoundation/ethereumjs-blockchain': 7.0.4 + '@nomicfoundation/ethereumjs-common': 4.0.4 + '@nomicfoundation/ethereumjs-evm': 2.0.4(@nomicfoundation/ethereumjs-verkle@0.0.2) + '@nomicfoundation/ethereumjs-rlp': 5.0.4 + '@nomicfoundation/ethereumjs-statemanager': 2.0.4(@nomicfoundation/ethereumjs-verkle@0.0.2) + '@nomicfoundation/ethereumjs-trie': 6.0.4 + '@nomicfoundation/ethereumjs-tx': 5.0.4 + '@nomicfoundation/ethereumjs-util': 9.0.4 + '@nomicfoundation/ethereumjs-verkle': 0.0.2 + '@nomicfoundation/ethereumjs-vm': 7.0.4(@nomicfoundation/ethereumjs-verkle@0.0.2) + '@nomicfoundation/solidity-analyzer': 0.1.1 + '@sentry/node': 5.30.0 + '@types/bn.js': 5.1.5 + '@types/lru-cache': 5.1.1 + adm-zip: 0.4.16 + aggregate-error: 3.1.0 + ansi-escapes: 4.3.2 + boxen: 5.1.2 + chalk: 2.4.2 + chokidar: 3.6.0 + ci-info: 2.0.0 + debug: 4.3.4(supports-color@6.1.0) + enquirer: 2.4.1 + env-paths: 2.2.1 + ethereum-cryptography: 1.2.0 + ethereumjs-abi: 0.6.8 + find-up: 2.1.0 + fp-ts: 1.19.3 + fs-extra: 7.0.1 + glob: 7.2.0 + immutable: 4.3.5 + io-ts: 1.10.4 + keccak: 3.0.4 + lodash: 4.17.21 + mnemonist: 0.38.5 + mocha: 10.3.0 + p-map: 4.0.0 + raw-body: 2.5.2 + resolve: 1.17.0 + semver: 6.3.1 + solc: 0.7.3(debug@4.3.4) + source-map-support: 0.5.21 + stacktrace-parser: 0.1.10 + tsort: 0.0.1 undici: 5.28.3 uuid: 8.3.2 - ws: 7.5.9 + ws: 7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + ts-node: 10.9.2(@types/node@20.11.20)(typescript@5.3.3) + typescript: 5.3.3 transitivePeerDependencies: - bufferutil - c-kzg @@ -13899,13 +14008,14 @@ snapshots: relateurl: 0.2.7 terser: 5.28.1 - html-webpack-plugin@5.6.0(webpack@5.90.3): + html-webpack-plugin@5.6.0(webpack@5.90.3(webpack-cli@4.10.0)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 + optionalDependencies: webpack: 5.90.3(webpack-cli@4.10.0) htmlparser2@6.1.0: @@ -13951,9 +14061,9 @@ snapshots: transitivePeerDependencies: - supports-color - http-proxy-middleware@0.19.1(debug@4.3.4)(supports-color@6.1.0): + http-proxy-middleware@0.19.1(debug@4.3.4(supports-color@6.1.0))(supports-color@6.1.0): dependencies: - http-proxy: 1.18.1(debug@4.3.4) + http-proxy: 1.18.1(debug@4.3.4(supports-color@6.1.0)) is-glob: 4.0.3 lodash: 4.17.21 micromatch: 3.1.10(supports-color@6.1.0) @@ -13961,10 +14071,10 @@ snapshots: - debug - supports-color - http-proxy@1.18.1(debug@4.3.4): + http-proxy@1.18.1(debug@4.3.4(supports-color@6.1.0)): dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.5(debug@4.3.4) + follow-redirects: 1.15.5(debug@4.3.4(supports-color@6.1.0)) requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -14291,9 +14401,9 @@ snapshots: isobject@3.0.1: {} - isomorphic-ws@4.0.1(ws@8.16.0): + isomorphic-ws@4.0.1(ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: - ws: 8.16.0 + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) isstream@0.1.2: {} @@ -14476,12 +14586,6 @@ snapshots: buffer: 6.0.3 keccak: 3.0.4 - keccak@3.0.2: - dependencies: - node-addon-api: 2.0.2 - node-gyp-build: 4.8.0 - readable-stream: 3.6.2 - keccak@3.0.4: dependencies: node-addon-api: 2.0.2 @@ -14541,12 +14645,6 @@ snapshots: readable-stream: 1.0.34 xtend: 2.1.2 - leveldown@6.1.0: - dependencies: - abstract-leveldown: 7.2.0 - napi-macros: 2.0.0 - node-gyp-build: 4.8.0 - levelup@1.3.9: dependencies: deferred-leveldown: 1.2.2 @@ -14905,13 +15003,13 @@ snapshots: mock-fs@4.14.0: {} - mockttp@3.10.1: + mockttp@3.10.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@graphql-tools/schema': 8.5.1(graphql@15.8.0) '@graphql-tools/utils': 8.13.1(graphql@15.8.0) '@httptoolkit/httpolyglot': 2.2.1 - '@httptoolkit/subscriptions-transport-ws': 0.11.2(graphql@15.8.0) - '@httptoolkit/websocket-stream': 6.0.1 + '@httptoolkit/subscriptions-transport-ws': 0.11.2(bufferutil@4.0.8)(graphql@15.8.0)(utf-8-validate@5.0.10) + '@httptoolkit/websocket-stream': 6.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@types/cors': 2.8.17 '@types/node': 20.11.20 base64-arraybuffer: 0.1.5 @@ -14931,7 +15029,7 @@ snapshots: http-encoding: 1.5.1 http2-wrapper: 2.2.1 https-proxy-agent: 5.0.1 - isomorphic-ws: 4.0.1(ws@8.16.0) + isomorphic-ws: 4.0.1(ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) lodash: 4.17.21 lru-cache: 7.18.3 native-duplexpair: 1.0.0 @@ -14945,7 +15043,7 @@ snapshots: socks-proxy-agent: 7.0.0 typed-error: 3.2.2 uuid: 8.3.2 - ws: 8.16.0 + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -15013,8 +15111,6 @@ snapshots: transitivePeerDependencies: - supports-color - napi-macros@2.0.0: {} - native-duplexpair@1.0.0: {} natural-compare@1.4.0: {} @@ -15042,8 +15138,6 @@ snapshots: node-forge@1.3.1: {} - node-gyp-build@4.4.0: {} - node-gyp-build@4.8.0: {} node-preload@0.2.1: @@ -15546,25 +15640,25 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@21.11.0: + puppeteer-core@21.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: '@puppeteer/browsers': 1.9.1 chromium-bidi: 0.5.8(devtools-protocol@0.0.1232444) cross-fetch: 4.0.0 debug: 4.3.4(supports-color@6.1.0) devtools-protocol: 0.0.1232444 - ws: 8.16.0 + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding - supports-color - utf-8-validate - puppeteer@21.11.0(typescript@5.3.3): + puppeteer@21.11.0(bufferutil@4.0.8)(typescript@5.3.3)(utf-8-validate@5.0.10): dependencies: '@puppeteer/browsers': 1.9.1 cosmiconfig: 9.0.0(typescript@5.3.3) - puppeteer-core: 21.11.0 + puppeteer-core: 21.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - encoding @@ -16419,11 +16513,29 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swarm-js@0.1.42: + swarm-js@0.1.42(bufferutil@4.0.7)(utf-8-validate@6.0.3): + dependencies: + bluebird: 3.7.2 + buffer: 5.7.1 + eth-lib: 0.1.29(bufferutil@4.0.7)(utf-8-validate@6.0.3) + fs-extra: 4.0.3 + got: 11.8.6 + mime-types: 2.1.35 + mkdirp-promise: 5.0.1 + mock-fs: 4.14.0 + setimmediate: 1.0.5 + tar: 4.4.19 + xhr-request: 1.1.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + swarm-js@0.1.42(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: bluebird: 3.7.2 buffer: 5.7.1 - eth-lib: 0.1.29 + eth-lib: 0.1.29(bufferutil@4.0.8)(utf-8-validate@5.0.10) fs-extra: 4.0.3 got: 11.8.6 mime-types: 2.1.35 @@ -16488,7 +16600,7 @@ snapshots: term-size@2.2.1: {} - terser-webpack-plugin@5.3.10(webpack@5.90.3): + terser-webpack-plugin@5.3.10(webpack@5.90.3(webpack-cli@4.10.0)): dependencies: '@jridgewell/trace-mapping': 0.3.23 jest-worker: 27.5.1 @@ -16510,11 +16622,6 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 - test-value@2.1.0: - dependencies: - array-back: 1.0.4 - typical: 2.6.1 - text-table@0.2.0: {} through@2.3.8: {} @@ -16675,22 +16782,6 @@ snapshots: type@2.7.2: {} - typechain@5.2.0(typescript@5.3.3): - dependencies: - '@types/prettier': 2.7.3 - command-line-args: 4.0.7 - debug: 4.3.4(supports-color@6.1.0) - fs-extra: 7.0.1 - glob: 7.2.3 - js-sha3: 0.8.0 - lodash: 4.17.21 - mkdirp: 1.0.4 - prettier: 2.8.8 - ts-essentials: 7.0.3(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - typechain@8.3.2(typescript@5.3.3): dependencies: '@types/prettier': 2.7.3 @@ -16755,8 +16846,6 @@ snapshots: typeson@6.1.0: {} - typical@2.6.1: {} - typical@4.0.0: {} typical@5.2.0: {} @@ -16856,6 +16945,7 @@ snapshots: utf-8-validate@6.0.3: dependencies: node-gyp-build: 4.8.0 + optional: true utf8@3.0.0: {} @@ -16923,11 +17013,21 @@ snapshots: dependencies: defaults: 1.0.4 - web3-bzz@1.10.4: + web3-bzz@1.10.4(bufferutil@4.0.7)(utf-8-validate@6.0.3): dependencies: '@types/node': 12.20.55 got: 12.1.0 - swarm-js: 0.1.42 + swarm-js: 0.1.42(bufferutil@4.0.7)(utf-8-validate@6.0.3) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + web3-bzz@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + '@types/node': 12.20.55 + got: 12.1.0 + swarm-js: 0.1.42(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - supports-color @@ -17072,7 +17172,7 @@ snapshots: - encoding - supports-color - web3-provider-engine@16.0.7: + web3-provider-engine@16.0.7(bufferutil@4.0.7)(utf-8-validate@6.0.3): dependencies: '@cypress/request': 3.0.1 '@ethereumjs/tx': 3.5.2 @@ -17092,7 +17192,7 @@ snapshots: promise-to-callback: 1.0.0 readable-stream: 2.3.8 semaphore: 1.1.0 - ws: 7.5.9 + ws: 7.5.9(bufferutil@4.0.7)(utf-8-validate@6.0.3) xhr: 2.6.0 xtend: 4.0.2 transitivePeerDependencies: @@ -17143,9 +17243,24 @@ snapshots: randombytes: 2.1.0 utf8: 3.0.0 - web3@1.10.4: + web3@1.10.4(bufferutil@4.0.7)(utf-8-validate@6.0.3): + dependencies: + web3-bzz: 1.10.4(bufferutil@4.0.7)(utf-8-validate@6.0.3) + web3-core: 1.10.4 + web3-eth: 1.10.4 + web3-eth-personal: 1.10.4 + web3-net: 1.10.4 + web3-shh: 1.10.4 + web3-utils: 1.10.4 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + web3@1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: - web3-bzz: 1.10.4 + web3-bzz: 1.10.4(bufferutil@4.0.8)(utf-8-validate@5.0.10) web3-core: 1.10.4 web3-eth: 1.10.4 web3-eth-personal: 1.10.4 @@ -17169,9 +17284,9 @@ snapshots: webpack-cli@4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3): dependencies: '@discoveryjs/json-ext': 0.5.7 - '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.90.3) - '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0) - '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0)(webpack-dev-server@3.11.3) + '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3))(webpack@5.90.3(webpack-cli@4.10.0)) + '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3)) + '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3))(webpack-dev-server@3.11.3(bufferutil@4.0.7)(utf-8-validate@6.0.3)(webpack-cli@4.10.0)(webpack@5.90.3)) colorette: 2.0.20 commander: 7.2.0 cross-spawn: 7.0.3 @@ -17180,10 +17295,11 @@ snapshots: interpret: 2.2.0 rechoir: 0.7.1 webpack: 5.90.3(webpack-cli@4.10.0) - webpack-dev-server: 3.11.3(webpack-cli@4.10.0)(webpack@5.90.3) webpack-merge: 5.10.0 + optionalDependencies: + webpack-dev-server: 3.11.3(bufferutil@4.0.7)(utf-8-validate@6.0.3)(webpack-cli@4.10.0)(webpack@5.90.3) - webpack-dev-middleware@3.7.3(webpack@5.90.3): + webpack-dev-middleware@3.7.3(webpack@5.90.3(webpack-cli@4.10.0)): dependencies: memory-fs: 0.4.1 mime: 2.6.0 @@ -17192,7 +17308,7 @@ snapshots: webpack: 5.90.3(webpack-cli@4.10.0) webpack-log: 2.0.0 - webpack-dev-server@3.11.3(webpack-cli@4.10.0)(webpack@5.90.3): + webpack-dev-server@3.11.3(bufferutil@4.0.7)(utf-8-validate@6.0.3)(webpack-cli@4.10.0)(webpack@5.90.3): dependencies: ansi-html-community: 0.0.8 bonjour: 3.5.0 @@ -17203,7 +17319,7 @@ snapshots: del: 4.1.1 express: 4.18.2(supports-color@6.1.0) html-entities: 1.4.0 - http-proxy-middleware: 0.19.1(debug@4.3.4)(supports-color@6.1.0) + http-proxy-middleware: 0.19.1(debug@4.3.4(supports-color@6.1.0))(supports-color@6.1.0) import-local: 2.0.0 internal-ip: 4.3.0 ip: 1.1.9 @@ -17224,11 +17340,12 @@ snapshots: supports-color: 6.1.0 url: 0.11.3 webpack: 5.90.3(webpack-cli@4.10.0) - webpack-cli: 4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3) - webpack-dev-middleware: 3.7.3(webpack@5.90.3) + webpack-dev-middleware: 3.7.3(webpack@5.90.3(webpack-cli@4.10.0)) webpack-log: 2.0.0 - ws: 6.2.2 + ws: 6.2.2(bufferutil@4.0.7)(utf-8-validate@6.0.3) yargs: 13.3.2 + optionalDependencies: + webpack-cli: 4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -17269,10 +17386,11 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.90.3) + terser-webpack-plugin: 5.3.10(webpack@5.90.3(webpack-cli@4.10.0)) watchpack: 2.4.0 - webpack-cli: 4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3) webpack-sources: 3.2.3 + optionalDependencies: + webpack-cli: 4.10.0(webpack-dev-server@3.11.3)(webpack@5.90.3) transitivePeerDependencies: - '@swc/core' - esbuild @@ -17396,26 +17514,60 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@3.3.3: + ws@3.3.3(bufferutil@4.0.7)(utf-8-validate@6.0.3): dependencies: async-limiter: 1.0.1 safe-buffer: 5.1.2 ultron: 1.1.1 + optionalDependencies: + bufferutil: 4.0.7 + utf-8-validate: 6.0.3 - ws@6.2.2: + ws@3.3.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + async-limiter: 1.0.1 + safe-buffer: 5.1.2 + ultron: 1.1.1 + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + ws@6.2.2(bufferutil@4.0.7)(utf-8-validate@6.0.3): dependencies: async-limiter: 1.0.1 + optionalDependencies: + bufferutil: 4.0.7 + utf-8-validate: 6.0.3 - ws@7.4.6: {} + ws@7.4.6(bufferutil@4.0.7)(utf-8-validate@6.0.3): + optionalDependencies: + bufferutil: 4.0.7 + utf-8-validate: 6.0.3 - ws@7.5.9: {} + ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + ws@7.5.9(bufferutil@4.0.7)(utf-8-validate@6.0.3): + optionalDependencies: + bufferutil: 4.0.7 + utf-8-validate: 6.0.3 + + ws@7.5.9(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 ws@8.13.0(bufferutil@4.0.7)(utf-8-validate@6.0.3): - dependencies: + optionalDependencies: bufferutil: 4.0.7 utf-8-validate: 6.0.3 - ws@8.16.0: {} + ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 xhr-request-promise@0.1.3: dependencies: @@ -17537,4 +17689,4 @@ snapshots: zod@3.22.4: {} - zstd-codec@0.1.4: {} \ No newline at end of file + zstd-codec@0.1.4: {}