From ff6df0fa6cd063232633841a5404d3ba42dbd484 Mon Sep 17 00:00:00 2001 From: Daniel Beal Date: Thu, 4 Sep 2025 23:17:25 +0900 Subject: [PATCH 1/3] fix(cli): cleanup pitfalls and improve overall fetch UX fixes https://linear.app/usecannon/issue/CAN-735/fix-wierd-behaviors-with-cannon-fetch --- CLAUDE.md | 22 +++++++ packages/cli/src/commands/config/index.ts | 10 +-- packages/cli/src/commands/fetch.ts | 64 ++++++++++++++----- packages/cli/src/index.ts | 10 ++- .../test/e2e/scripts/non-interactive/fetch.sh | 6 +- 5 files changed, 87 insertions(+), 25 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 2680b1abb..ecdc7e6c7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,6 +39,7 @@ Cannon is a DevOps tool for EVM chains designed for testing, deploying, and publ - `cannon build --keep-alive` - Build and keep node running for interaction - `cannon run ` - Run a built package locally - `cannon test` - Build cannonfile and run forge tests with deployment context +- `cannon fetch [package:version]` - Fetch package data from IPFS (auto-detects package name) - `cannon publish --chain-id ` - Publish package to registry - `cannon verify ` - Verify contracts on Etherscan - `cannon inspect ` - Inspect package deployment data @@ -120,6 +121,7 @@ examples/ # Sample projects and usage demos 4. **Test**: `cannon test` runs forge tests with deployment context using cannon-std 5. **Deploy**: `cannon build --rpc-url --private-key ` for live networks 6. **Publish**: `cannon publish --chain-id ` to share with others +7. **Fetch**: `cannon fetch ` to download and use published packages ### Cannonfile Structure ```toml @@ -147,6 +149,26 @@ args = [] - Chain actions using template interpolation for dependencies - Add `privateSourceCode = true` to exclude source from published packages +### Fetching Packages +The `cannon fetch` command downloads package data from IPFS and stores it locally: + +```bash +# Auto-detect package name from IPFS data (recommended) +cannon fetch ipfs://QmTK6qhaBAxwRTmFVejHyKyVeAzibxeWdJ1j3LXVj98eej --chain-id 1 + +# Or specify package name explicitly for validation +cannon fetch ipfs://QmTK6qhaBAxwRTmFVejHyKyVeAzibxeWdJ1j3LXVj98eej synthetix-omnibus:3.10.1 --chain-id 1 + +# Use the fetched package +cannon run synthetix-omnibus:3.10.1 --chain-id 1 +``` + +**When to use `cannon fetch`:** +- Download published packages from IPFS to use locally +- Share package deployments across teams using IPFS hashes +- Access packages that aren't published to the on-chain registry +- Work with packages in development or testing environments + ## Development Notes - Use `pnpm` exclusively (enforced by preinstall hook) diff --git a/packages/cli/src/commands/config/index.ts b/packages/cli/src/commands/config/index.ts index 953697e06..7d53e2120 100644 --- a/packages/cli/src/commands/config/index.ts +++ b/packages/cli/src/commands/config/index.ts @@ -274,16 +274,16 @@ export const commandsConfig: CommandsConfig = { ], }, fetch: { - description: 'Fetch cannon package data from an IPFS hash and store it in the local registry.', + description: 'Fetch cannon package data from an IPFS hash and store it in the local registry. Package name will be auto-detected from IPFS data if not specified.', arguments: [ - { - flags: '', - description: 'Name, version and preset of the Cannon package to fetch from (name:version@preset)', - }, { flags: '', description: 'IPFS hash to fetch deployment data from', }, + { + flags: '[packageRef]', + description: 'Optional: Name, version and preset of the Cannon package (name:version@preset). Will be auto-detected if not provided.', + }, ], options: [ { diff --git a/packages/cli/src/commands/fetch.ts b/packages/cli/src/commands/fetch.ts index 92c1d2b7e..c15166584 100644 --- a/packages/cli/src/commands/fetch.ts +++ b/packages/cli/src/commands/fetch.ts @@ -14,10 +14,12 @@ import fs from 'node:fs'; import path from 'path'; import util from 'util'; -import { log } from '../util/console'; +import { log, warn } from '../util/console'; import { LocalRegistry } from '../registry'; import { resolveCliSettings } from '../settings'; +import { yellow, bold } from 'chalk'; + const debug = Debug('cannon:cli:fetch'); const mkdir = util.promisify(fs.mkdir); @@ -38,7 +40,7 @@ async function storeDeployReference(filePath: string, content: string) { } } -export async function fetch(fullPackageRef: string, chainId: number, _ipfsUrl: string, _metaIpfsUrl?: string) { +export async function fetch(fullPackageRef: string | null, chainId: number | null, _ipfsUrl: string, _metaIpfsUrl?: string) { const ipfsUrl = getIpfsUrl(_ipfsUrl); const metaIpfsUrl = getIpfsUrl(_metaIpfsUrl); @@ -50,8 +52,6 @@ export async function fetch(fullPackageRef: string, chainId: number, _ipfsUrl: s const cliSettings = resolveCliSettings(); - const { name, version, preset } = new PackageReference(fullPackageRef); - const localRegistry = new LocalRegistry(cliSettings.cannonDirectory); const storage = new CannonStorage(localRegistry, { @@ -66,34 +66,64 @@ export async function fetch(fullPackageRef: string, chainId: number, _ipfsUrl: s // Fetching deployment info const deployInfo: DeploymentInfo = await storage.readBlob(ipfsUrl); - const def = new ChainDefinition(deployInfo.def); - - const preCtx = await createInitialContext(def, deployInfo.meta, deployInfo.chainId || chainId, deployInfo.options); - - const pkgName = `${name}:${def.getVersion(preCtx) || version}@${preset}`; - if (!deployInfo || Object.keys(deployInfo).length === 0) { - throw new Error(`could not find package data on IPFS using the hash: ${ipfsUrl}`); + throw new Error( + `Could not find package data on IPFS using the hash: ${ipfsUrl}\n` + + `Please verify that:\n` + + ` - The IPFS hash is correct\n` + + ` - The IPFS gateway is accessible\n` + + ` - The hash contains valid Cannon package data` + ); } - if (name !== deployInfo.def.name) { - throw new Error(`deployment data at ${ipfsUrl} does not match the specified package "${pkgName}"`); + const def = new ChainDefinition(deployInfo.def); + const preCtx = await createInitialContext(def, deployInfo.meta, deployInfo.chainId || chainId || 13370, deployInfo.options); + + let name: string, version: string, preset: string; + + let packageRef = ''; + if (fullPackageRef) { + // Package reference was provided, validate it matches the IPFS data + const ref = new PackageReference(fullPackageRef); + + if (ref.name !== deployInfo.def.name) { + warn(yellow('The IPFS package you downloaded is being saved to a different name than is recorded in the package data. Please double check to make sure this is correct.')); + warn(yellow(bold(`Package Name (IPFS Data): ${deployInfo.def.name}`))) + warn(yellow(bold(`Provided Name: ${ref.name}`))) + } else if (ref.version !== deployInfo.def.version) { + warn(yellow('The IPFS package you downloaded is being saved to a different version than is recorded in the package data. Please double check to make sure that this is correct.')); + warn(yellow(bold(`Package Version (IPFS Data): ${deployInfo.def.version}`))) + warn(yellow(bold(`Provided Version: ${ref.version}`))) + } else if (deployInfo.chainId && chainId !== deployInfo.chainId) { + warn(yellow('The IPFS package you downloaded is being saved to a different chain ID than is recorded in the package data. Please double check to make sure that this is correct.')); + warn(yellow(bold(`Chain ID (IPFS Data): ${deployInfo.chainId}`))) + warn(yellow(bold(`Chain ID (User Input): ${chainId}`))) + } + + packageRef = fullPackageRef; + } else { + // Auto-detect package information from IPFS data + packageRef = new PackageReference(`${deployInfo.def.name}:${def.getVersion(preCtx) || 'latest'}@${def.getPreset(preCtx)}`).fullPackageRef; + + log(`\nDetected package: ${packageRef}`); } debug('storing deploy info'); - const deployPath = localRegistry.getTagReferenceStorage(pkgName, deployInfo.chainId || chainId); + const resolvedChainId = chainId || deployInfo.chainId || 13370; + + const deployPath = localRegistry.getTagReferenceStorage(packageRef, resolvedChainId); await storeDeployReference(deployPath, ipfsUrl); if (metaIpfsUrl) { debug('reading metadata from ipfs'); - const deployMetadataPath = localRegistry.getMetaTagReferenceStorage(pkgName, chainId); + const deployMetadataPath = localRegistry.getMetaTagReferenceStorage(packageRef, resolvedChainId); await storeDeployReference(deployMetadataPath, metaIpfsUrl); } - log(`\n\nSuccessfully fetched and saved deployment data for the following package: ${pkgName}`); + log(`\n\nSuccessfully fetched and saved deployment data for the following package: ${packageRef}`); log( - `run 'cannon publish ${pkgName} --chain-id --private-key ' to publish the package to the registry` + `run 'cannon publish ${packageRef} --chain-id --private-key ' to publish the package to the registry` ); } diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index d4564b792..77590f309 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -319,13 +319,19 @@ applyCommandsConfig(program.command('alter'), commandsConfig.alter).action(async }); applyCommandsConfig(program.command('fetch'), commandsConfig.fetch).action(async function ( - packageRef, givenIpfsUrl, + packageRef, options ) { const { fetch } = await import('./commands/fetch'); - const { fullPackageRef, chainId } = await getPackageReference(packageRef, options.chainId); + let fullPackageRef = null; + let chainId = null; + if (packageRef) { + const refInfo = await getPackageReference(packageRef, options.chainId); + fullPackageRef = refInfo.fullPackageRef; + chainId = refInfo.chainId; + } const ipfsUrl = getIpfsUrl(givenIpfsUrl); const metaIpfsUrl = getIpfsUrl(options.metaHash) || undefined; diff --git a/packages/cli/test/e2e/scripts/non-interactive/fetch.sh b/packages/cli/test/e2e/scripts/non-interactive/fetch.sh index e6b9370e4..c9d743398 100755 --- a/packages/cli/test/e2e/scripts/non-interactive/fetch.sh +++ b/packages/cli/test/e2e/scripts/non-interactive/fetch.sh @@ -1 +1,5 @@ -$CANNON fetch synthetix:3.3.4@main QmUtELWtepNn1ByaFUF8YAgLMtdvy6GGe2P9ex48EVit4H --chain-id 1 +# Test with auto-detection (new preferred usage) +$CANNON fetch QmUtELWtepNn1ByaFUF8YAgLMtdvy6GGe2P9ex48EVit4H --chain-id 1 + +# Test with explicit package name (backwards compatibility) +$CANNON fetch QmUtELWtepNn1ByaFUF8YAgLMtdvy6GGe2P9ex48EVit4H synthetix:3.3.4@main --chain-id 1 From b360d3f9845564983a648093a1965c586923e72a Mon Sep 17 00:00:00 2001 From: Daniel Beal Date: Mon, 20 Oct 2025 08:42:51 -0700 Subject: [PATCH 2/3] fixes from claude suggestions --- packages/cli/src/commands/fetch.ts | 12 +- pnpm-lock.yaml | 530 +---------------------------- 2 files changed, 15 insertions(+), 527 deletions(-) diff --git a/packages/cli/src/commands/fetch.ts b/packages/cli/src/commands/fetch.ts index bd8912a31..3371a2a90 100644 --- a/packages/cli/src/commands/fetch.ts +++ b/packages/cli/src/commands/fetch.ts @@ -14,7 +14,7 @@ import fs from 'node:fs'; import path from 'path'; import util from 'util'; -import { logSpinner, warnSpinner } from '../util/console'; +import { log, logSpinner, warnSpinner } from '../util/console'; import { LocalRegistry } from '../registry'; import { resolveCliSettings } from '../settings'; @@ -90,11 +90,13 @@ export async function fetch(fullPackageRef: string | null, chainId: number | nul warnSpinner(yellow('The IPFS package you downloaded is being saved to a different name than is recorded in the package data. Please double check to make sure this is correct.')); warnSpinner(yellow(bold(`Package Name (IPFS Data): ${deployInfo.def.name}`))) warnSpinner(yellow(bold(`Provided Name: ${ref.name}`))) - } else if (ref.version !== deployInfo.def.version) { + } + if (ref.version !== deployInfo.def.version) { warnSpinner(yellow('The IPFS package you downloaded is being saved to a different version than is recorded in the package data. Please double check to make sure that this is correct.')); warnSpinner(yellow(bold(`Package Version (IPFS Data): ${deployInfo.def.version}`))) warnSpinner(yellow(bold(`Provided Version: ${ref.version}`))) - } else if (deployInfo.chainId && chainId !== deployInfo.chainId) { + } + if (deployInfo.chainId !== null && chainId !== deployInfo.chainId) { warnSpinner(yellow('The IPFS package you downloaded is being saved to a different chain ID than is recorded in the package data. Please double check to make sure that this is correct.')); warnSpinner(yellow(bold(`Chain ID (IPFS Data): ${deployInfo.chainId}`))) warnSpinner(yellow(bold(`Chain ID (User Input): ${chainId}`))) @@ -122,8 +124,8 @@ export async function fetch(fullPackageRef: string | null, chainId: number | nul await storeDeployReference(deployMetadataPath, metaIpfsUrl); } - logSpinner(`\n\nSuccessfully fetched and saved deployment data for the following package: ${pkgName}`); + logSpinner(`\n\nSuccessfully fetched and saved deployment data for the following package: ${packageRef}`); logSpinner( - `run 'cannon publish ${pkgName} --chain-id --private-key ' to publish the package to the registry` + `run 'cannon publish ${packageRef} --chain-id --private-key ' to publish the package to the registry` ); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9e954ef8a..fdb7caa10 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -823,36 +823,6 @@ importers: specifier: ^5.8.3 version: 5.8.3 - packages/vscode: - devDependencies: - '@types/mocha': - specifier: ^10.0.10 - version: 10.0.10 - '@types/node': - specifier: 20.x - version: 20.19.22 - '@types/vscode': - specifier: ^1.102.0 - version: 1.105.0 - '@typescript-eslint/eslint-plugin': - specifier: ^8.31.1 - version: 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3))(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3) - '@typescript-eslint/parser': - specifier: ^8.31.1 - version: 8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3) - '@vscode/test-cli': - specifier: ^0.0.11 - version: 0.0.11 - '@vscode/test-electron': - specifier: ^2.5.2 - version: 2.5.2 - eslint: - specifier: ^9.25.1 - version: 9.38.0(jiti@1.21.7) - typescript: - specifier: ^5.8.3 - version: 5.8.3 - packages/website: dependencies: '@ethersproject/bignumber': @@ -2945,12 +2915,6 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.9.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -2959,42 +2923,14 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.21.1': - resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.4.1': - resolution: {integrity: sha512-csZAzkNhsgwb0I/UAV6/RGFTbiakPCf0ZrGmrIxQpYvGZ00PhTkSnyKNolphgIvmnJeGw6rcGVEXfTzUnFuEvw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/core@0.16.0': - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.43.0': resolution: {integrity: sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.38.0': - resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@2.1.7': - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.4.0': - resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ethereumjs/common@2.5.0': resolution: {integrity: sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==} @@ -3216,14 +3152,6 @@ packages: peerDependencies: react-hook-form: ^7.0.0 - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} - engines: {node: '>=18.18.0'} - '@humanwhocodes/config-array@0.11.14': resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -3237,10 +3165,6 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} - '@hutson/parse-repository-url@3.0.2': resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} @@ -6634,9 +6558,6 @@ packages: '@types/node@18.15.13': resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} - '@types/node@20.19.22': - resolution: {integrity: sha512-hRnu+5qggKDSyWHlnmThnUqg62l29Aj/6vcYgUaSFL9oc7DVjeWEQN3PRgdSc6F8d9QRMWkf36CLMch1Do/+RQ==} - '@types/node@22.14.0': resolution: {integrity: sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==} @@ -6784,9 +6705,6 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@types/vscode@1.105.0': - resolution: {integrity: sha512-Lotk3CTFlGZN8ray4VxJE7axIyLZZETQJVWi/lYoUVQuqfRxlQhVOfoejsD2V3dVXPSbS15ov5ZyowMAzgUqcw==} - '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} @@ -6821,14 +6739,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.46.1': - resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.46.1 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@5.62.0': resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6846,19 +6756,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.46.1': - resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/project-service@8.46.1': - resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6867,16 +6764,6 @@ packages: resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.46.1': - resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.46.1': - resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@5.62.0': resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6894,13 +6781,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.46.1': - resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6909,10 +6789,6 @@ packages: resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.46.1': - resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6928,12 +6804,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.46.1': - resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6947,13 +6817,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.46.1': - resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6962,10 +6825,6 @@ packages: resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.46.1': - resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/promise-all-settled@1.1.2': resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} @@ -7173,15 +7032,6 @@ packages: '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - '@vscode/test-cli@0.0.11': - resolution: {integrity: sha512-qO332yvzFqGhBMJrp6TdwbIydiHgCtxXc2Nl6M58mbH/Z+0CyLR76Jzv4YWPEthhrARprzCRJUqzFvTHFhTj7Q==} - engines: {node: '>=18'} - hasBin: true - - '@vscode/test-electron@2.5.2': - resolution: {integrity: sha512-8ukpxv4wYe0iWMRQU18jhzJOHkeGKbnw7xWRX3Zw1WJA4cEKbHcmmLPdPrPtL6rhDcrlCZN+xKRpv09n4gRHYg==} - engines: {node: '>=16'} - '@wagmi/connectors@5.7.12': resolution: {integrity: sha512-pLFuZ1PsLkNyY11mx0+IOrMM7xACWCBRxaulfX17osqixkDFeOAyqFGBjh/XxkvRyrDJUdO4F+QHEeSoOiPpgg==} peerDependencies: @@ -8079,11 +7929,6 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - c8@9.1.0: - resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} - engines: {node: '>=14.14.0'} - hasBin: true - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -9302,10 +9147,6 @@ packages: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} - diff@7.0.0: - resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} - engines: {node: '>=0.3.1'} - diffie-hellman@5.0.3: resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} @@ -9818,10 +9659,6 @@ packages: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -9830,34 +9667,16 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.43.0: resolution: {integrity: sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true - eslint@9.38.0: - resolution: {integrity: sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - esniff@2.0.1: resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} engines: {node: '>=0.10'} - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -10238,10 +10057,6 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} @@ -10303,10 +10118,6 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true @@ -10679,10 +10490,6 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -11089,9 +10896,6 @@ packages: resolution: {integrity: sha512-lCYzQrWzdnA68K03oMj/BUlBJrVBnslzDOgGFymAp49NmdGEJxGeN7sHh5mCva0nQkq+kkKSuru2zLf1m04+3A==} engines: {node: '>=14.0.0'} - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - immutable@4.3.7: resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} @@ -11964,9 +11768,6 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} - jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} - just-debounce-it@1.1.0: resolution: {integrity: sha512-87Nnc0qZKgBZuhFZjYVjSraic0x7zwjhaTMrCKlj0QYKH6lh0KbFzVnfu6LHan03NO7J8ygjeBeD0epejn5Zcg==} @@ -12079,9 +11880,6 @@ packages: resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} engines: {node: ^16.14.0 || >=18.0.0} - lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} - lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -12983,11 +12781,6 @@ packages: engines: {node: '>= 14.0.0'} hasBin: true - mocha@11.7.4: - resolution: {integrity: sha512-1jYAaY8x0kAZ0XszLWu14pzsf4KV740Gld4HXkhNTXwcHx4AUEDkPzgEHg9CM5dVcW+zv036tjpsEbLraPJj4w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - mock-fs@4.14.0: resolution: {integrity: sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==} @@ -15428,10 +15221,6 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-color@9.4.0: - resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} - engines: {node: '>=12'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -17034,9 +16823,6 @@ packages: workerpool@6.5.1: resolution: {integrity: sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==} - workerpool@9.3.4: - resolution: {integrity: sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==} - wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} @@ -20396,31 +20182,10 @@ snapshots: eslint: 8.43.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.0(eslint@9.38.0(jiti@1.21.7))': - dependencies: - eslint: 9.38.0(jiti@1.21.7) - eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.21.1': - dependencies: - '@eslint/object-schema': 2.1.7 - debug: 4.4.0(supports-color@8.1.1) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.4.1': - dependencies: - '@eslint/core': 0.16.0 - - '@eslint/core@0.16.0': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 @@ -20435,31 +20200,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.3.1': - dependencies: - ajv: 6.12.6 - debug: 4.4.0(supports-color@8.1.1) - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - '@eslint/js@8.43.0': {} - '@eslint/js@9.38.0': {} - - '@eslint/object-schema@2.1.7': {} - - '@eslint/plugin-kit@0.4.0': - dependencies: - '@eslint/core': 0.16.0 - levn: 0.4.1 - '@ethereumjs/common@2.5.0': dependencies: crc-32: 1.2.2 @@ -20964,13 +20706,6 @@ snapshots: dependencies: react-hook-form: 7.55.0(react@18.3.1) - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.7': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 - '@humanwhocodes/config-array@0.11.14': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -20983,8 +20718,6 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@humanwhocodes/retry@0.4.3': {} - '@hutson/parse-repository-url@3.0.2': {} '@iarna/toml@3.0.0': {} @@ -25203,10 +24936,6 @@ snapshots: '@types/node@18.15.13': {} - '@types/node@20.19.22': - dependencies: - undici-types: 6.21.0 - '@types/node@22.14.0': dependencies: undici-types: 6.21.0 @@ -25358,8 +25087,6 @@ snapshots: '@types/uuid@9.0.8': {} - '@types/vscode@1.105.0': {} - '@types/ws@8.18.1': dependencies: '@types/node': 22.14.0 @@ -25415,23 +25142,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3))(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/type-utils': 8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.46.1 - eslint: 9.38.0(jiti@1.21.7) - graphemer: 1.4.0 - ignore: 7.0.4 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@5.62.0(eslint@8.43.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 5.62.0 @@ -25456,27 +25166,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.46.1 - debug: 4.4.0(supports-color@8.1.1) - eslint: 9.38.0(jiti@1.21.7) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.46.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.8.3) - '@typescript-eslint/types': 8.46.1 - debug: 4.4.0(supports-color@8.1.1) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -25487,15 +25176,6 @@ snapshots: '@typescript-eslint/types': 8.29.0 '@typescript-eslint/visitor-keys': 8.29.0 - '@typescript-eslint/scope-manager@8.46.1': - dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 - - '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - '@typescript-eslint/type-utils@5.62.0(eslint@8.43.0)(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) @@ -25519,24 +25199,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3) - debug: 4.4.0(supports-color@8.1.1) - eslint: 9.38.0(jiti@1.21.7) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@8.29.0': {} - '@typescript-eslint/types@8.46.1': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -25565,22 +25231,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.46.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.46.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.8.3) - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/visitor-keys': 8.46.1 - debug: 4.4.0(supports-color@8.1.1) - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.43.0)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@8.43.0) @@ -25607,17 +25257,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.1(eslint@9.38.0(jiti@1.21.7))(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@1.21.7)) - '@typescript-eslint/scope-manager': 8.46.1 - '@typescript-eslint/types': 8.46.1 - '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.8.3) - eslint: 9.38.0(jiti@1.21.7) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -25628,11 +25267,6 @@ snapshots: '@typescript-eslint/types': 8.29.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.46.1': - dependencies: - '@typescript-eslint/types': 8.46.1 - eslint-visitor-keys: 4.2.1 - '@ungap/promise-all-settled@1.1.2': {} '@ungap/structured-clone@1.3.0': {} @@ -25930,28 +25564,6 @@ snapshots: loupe: 3.1.3 tinyrainbow: 1.2.0 - '@vscode/test-cli@0.0.11': - dependencies: - '@types/mocha': 10.0.10 - c8: 9.1.0 - chokidar: 3.6.0 - enhanced-resolve: 5.18.1 - glob: 10.4.5 - minimatch: 9.0.5 - mocha: 11.7.4 - supports-color: 9.4.0 - yargs: 17.7.2 - - '@vscode/test-electron@2.5.2': - dependencies: - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - jszip: 3.10.1 - ora: 8.2.0 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - '@wagmi/connectors@5.7.12(@types/react@18.2.37)(@wagmi/core@2.16.7(@tanstack/query-core@5.71.10)(@types/react@18.2.37)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.5.0(react@18.3.1))(viem@2.30.1(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.6.0)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.1(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)': dependencies: '@coinbase/wallet-sdk': 4.3.0 @@ -26526,10 +26138,6 @@ snapshots: dependencies: acorn: 8.14.1 - acorn-jsx@5.3.2(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - acorn-walk@8.3.4: dependencies: acorn: 8.14.1 @@ -27359,20 +26967,6 @@ snapshots: bytes@3.1.2: {} - c8@9.1.0: - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@istanbuljs/schema': 0.1.3 - find-up: 5.0.0 - foreground-child: 3.3.1 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-reports: 3.1.7 - test-exclude: 6.0.0 - v8-to-istanbul: 9.3.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - cac@6.7.14: {} cacache@18.0.4: @@ -28694,8 +28288,6 @@ snapshots: diff@5.2.0: {} - diff@7.0.0: {} - diffie-hellman@5.0.3: dependencies: bn.js: 4.12.1 @@ -29307,8 +28899,8 @@ snapshots: '@typescript-eslint/parser': 8.29.0(eslint@8.43.0)(typescript@5.8.3) eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.43.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.43.0) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint@8.43.0))(eslint@8.43.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.43.0) eslint-plugin-react: 7.37.5(eslint@8.43.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.43.0) @@ -29331,7 +28923,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.43.0): + eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint@8.43.0))(eslint@8.43.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0(supports-color@8.1.1) @@ -29342,18 +28934,18 @@ snapshots: tinyglobby: 0.2.12 unrs-resolver: 1.3.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.43.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.43.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0): dependencies: debug: 3.2.7(supports-color@8.1.1) optionalDependencies: '@typescript-eslint/parser': 8.29.0(eslint@8.43.0)(typescript@5.8.3) eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.43.0) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint@8.43.0))(eslint@8.43.0) transitivePeerDependencies: - supports-color @@ -29399,7 +28991,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0)(eslint@8.43.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -29410,7 +29002,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.43.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.43.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.43.0)(typescript@5.8.3))(eslint@8.43.0))(eslint@8.43.0))(eslint@8.43.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -29491,17 +29083,10 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-scope@8.4.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.0: {} - eslint-visitor-keys@4.2.1: {} - eslint@8.43.0: dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@8.43.0) @@ -29546,47 +29131,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.38.0(jiti@1.21.7): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@1.21.7)) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.1 - '@eslint/core': 0.16.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.38.0 - '@eslint/plugin-kit': 0.4.0 - '@humanfs/node': 0.16.7 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.7 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@8.1.1) - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 1.21.7 - transitivePeerDependencies: - - supports-color - esniff@2.0.1: dependencies: d: 1.0.2 @@ -29594,12 +29138,6 @@ snapshots: event-emitter: 0.3.5 type: 2.7.3 - espree@10.4.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 - espree@9.6.1: dependencies: acorn: 8.14.1 @@ -30269,10 +29807,6 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - filelist@1.0.4: dependencies: minimatch: 5.1.6 @@ -30360,11 +29894,6 @@ snapshots: keyv: 4.5.4 rimraf: 3.0.2 - flat-cache@4.0.1: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - flat@5.0.2: {} flatted@3.3.3: {} @@ -30786,8 +30315,6 @@ snapshots: dependencies: type-fest: 0.20.2 - globals@14.0.0: {} - globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -31470,8 +30997,6 @@ snapshots: imagescript@1.3.0: {} - immediate@3.0.6: {} - immutable@4.3.7: {} immutable@5.1.1: {} @@ -32597,13 +32122,6 @@ snapshots: object.assign: 4.1.7 object.values: 1.2.1 - jszip@3.10.1: - dependencies: - lie: 3.3.0 - pako: 1.0.11 - readable-stream: 2.3.8 - setimmediate: 1.0.5 - just-debounce-it@1.1.0: {} just-diff-apply@5.5.0: {} @@ -32836,10 +32354,6 @@ snapshots: transitivePeerDependencies: - supports-color - lie@3.3.0: - dependencies: - immediate: 3.0.6 - lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -34316,30 +33830,6 @@ snapshots: yargs-parser: 20.2.9 yargs-unparser: 2.0.0 - mocha@11.7.4: - dependencies: - browser-stdout: 1.3.1 - chokidar: 4.0.3 - debug: 4.4.0(supports-color@8.1.1) - diff: 7.0.0 - escape-string-regexp: 4.0.0 - find-up: 5.0.0 - glob: 10.4.5 - he: 1.2.0 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - log-symbols: 4.1.0 - minimatch: 9.0.5 - ms: 2.1.3 - picocolors: 1.1.1 - serialize-javascript: 6.0.2 - strip-json-comments: 3.1.1 - supports-color: 8.1.1 - workerpool: 9.3.4 - yargs: 17.7.2 - yargs-parser: 21.1.1 - yargs-unparser: 2.0.0 - mock-fs@4.14.0: {} mock-fs@5.5.0: {} @@ -37422,8 +36912,6 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-color@9.4.0: {} - supports-preserve-symlinks-flag@1.0.0: {} swarm-js@0.1.42(bufferutil@4.0.9)(utf-8-validate@5.0.10): @@ -39585,8 +39073,6 @@ snapshots: workerpool@6.5.1: {} - workerpool@9.3.4: {} - wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 From 34d2bef615e87cd0a1b6cfe5fcedd57be8e6f341 Mon Sep 17 00:00:00 2001 From: Daniel Beal Date: Mon, 20 Oct 2025 08:52:14 -0700 Subject: [PATCH 3/3] lint fix --- packages/cli/src/commands/config/index.ts | 6 ++- packages/cli/src/commands/fetch.ts | 51 +++++++++++++++-------- 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/packages/cli/src/commands/config/index.ts b/packages/cli/src/commands/config/index.ts index 7d53e2120..680c90aef 100644 --- a/packages/cli/src/commands/config/index.ts +++ b/packages/cli/src/commands/config/index.ts @@ -274,7 +274,8 @@ export const commandsConfig: CommandsConfig = { ], }, fetch: { - description: 'Fetch cannon package data from an IPFS hash and store it in the local registry. Package name will be auto-detected from IPFS data if not specified.', + description: + 'Fetch cannon package data from an IPFS hash and store it in the local registry. Package name will be auto-detected from IPFS data if not specified.', arguments: [ { flags: '', @@ -282,7 +283,8 @@ export const commandsConfig: CommandsConfig = { }, { flags: '[packageRef]', - description: 'Optional: Name, version and preset of the Cannon package (name:version@preset). Will be auto-detected if not provided.', + description: + 'Optional: Name, version and preset of the Cannon package (name:version@preset). Will be auto-detected if not provided.', }, ], options: [ diff --git a/packages/cli/src/commands/fetch.ts b/packages/cli/src/commands/fetch.ts index 3371a2a90..1016a0e82 100644 --- a/packages/cli/src/commands/fetch.ts +++ b/packages/cli/src/commands/fetch.ts @@ -69,17 +69,20 @@ export async function fetch(fullPackageRef: string | null, chainId: number | nul if (!deployInfo || Object.keys(deployInfo).length === 0) { throw new Error( `Could not find package data on IPFS using the hash: ${ipfsUrl}\n` + - `Please verify that:\n` + - ` - The IPFS hash is correct\n` + - ` - The IPFS gateway is accessible\n` + - ` - The hash contains valid Cannon package data` + 'Please verify that:\n' + + ' - The IPFS hash is correct\n' + + ' - The IPFS gateway is accessible\n' + + ' - The hash contains valid Cannon package data' ); } const def = new ChainDefinition(deployInfo.def); - const preCtx = await createInitialContext(def, deployInfo.meta, deployInfo.chainId || chainId || 13370, deployInfo.options); - - let name: string, version: string, preset: string; + const preCtx = await createInitialContext( + def, + deployInfo.meta, + deployInfo.chainId || chainId || 13370, + deployInfo.options + ); let packageRef = ''; if (fullPackageRef) { @@ -87,25 +90,39 @@ export async function fetch(fullPackageRef: string | null, chainId: number | nul const ref = new PackageReference(fullPackageRef); if (ref.name !== deployInfo.def.name) { - warnSpinner(yellow('The IPFS package you downloaded is being saved to a different name than is recorded in the package data. Please double check to make sure this is correct.')); - warnSpinner(yellow(bold(`Package Name (IPFS Data): ${deployInfo.def.name}`))) - warnSpinner(yellow(bold(`Provided Name: ${ref.name}`))) + warnSpinner( + yellow( + 'The IPFS package you downloaded is being saved to a different name than is recorded in the package data. Please double check to make sure this is correct.' + ) + ); + warnSpinner(yellow(bold(`Package Name (IPFS Data): ${deployInfo.def.name}`))); + warnSpinner(yellow(bold(`Provided Name: ${ref.name}`))); } if (ref.version !== deployInfo.def.version) { - warnSpinner(yellow('The IPFS package you downloaded is being saved to a different version than is recorded in the package data. Please double check to make sure that this is correct.')); - warnSpinner(yellow(bold(`Package Version (IPFS Data): ${deployInfo.def.version}`))) - warnSpinner(yellow(bold(`Provided Version: ${ref.version}`))) + warnSpinner( + yellow( + 'The IPFS package you downloaded is being saved to a different version than is recorded in the package data. Please double check to make sure that this is correct.' + ) + ); + warnSpinner(yellow(bold(`Package Version (IPFS Data): ${deployInfo.def.version}`))); + warnSpinner(yellow(bold(`Provided Version: ${ref.version}`))); } if (deployInfo.chainId !== null && chainId !== deployInfo.chainId) { - warnSpinner(yellow('The IPFS package you downloaded is being saved to a different chain ID than is recorded in the package data. Please double check to make sure that this is correct.')); - warnSpinner(yellow(bold(`Chain ID (IPFS Data): ${deployInfo.chainId}`))) - warnSpinner(yellow(bold(`Chain ID (User Input): ${chainId}`))) + warnSpinner( + yellow( + 'The IPFS package you downloaded is being saved to a different chain ID than is recorded in the package data. Please double check to make sure that this is correct.' + ) + ); + warnSpinner(yellow(bold(`Chain ID (IPFS Data): ${deployInfo.chainId}`))); + warnSpinner(yellow(bold(`Chain ID (User Input): ${chainId}`))); } packageRef = fullPackageRef; } else { // Auto-detect package information from IPFS data - packageRef = new PackageReference(`${deployInfo.def.name}:${def.getVersion(preCtx) || 'latest'}@${def.getPreset(preCtx)}`).fullPackageRef; + packageRef = new PackageReference( + `${deployInfo.def.name}:${def.getVersion(preCtx) || 'latest'}@${def.getPreset(preCtx)}` + ).fullPackageRef; log(`\nDetected package: ${packageRef}`); }