From 5ffcf3c304fd45510faf4f8d1bfeecb61a6b9a31 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:35:15 +0200 Subject: [PATCH 01/30] Chore: Update editorconfig with specific rules --- .editorconfig | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/.editorconfig b/.editorconfig index ef38528..b1be01b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,5 +9,22 @@ indent_size = 2 insert_final_newline = true max_line_length = 120 trim_trailing_whitespace = true -use_tabs = false -use_single_quotes = true + +[*.json] +indent_size = 2 + +[package.json] +indent_size = 4 + +[funding.json] +indent_size = 4 + +[env.d.ts] +indent_style = tab + +[*.md] +trim_trailing_whitespace = false + +[*.sol] +indent_size = 2 +max_line_length = 120 From 1fb31ae27e6d25645903843f0692032fdc057499 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:35:15 +0200 Subject: [PATCH 02/30] Feat: Introduce core devnet utilities and prool dependency --- package.json | 6 +- scripts/devnet/accounts.ts | 26 ++++++++ scripts/devnet/anvil.ts | 45 ++++++++++++++ scripts/devnet/client.ts | 74 +++++++++++++++++++++++ scripts/devnet/deploy.ts | 100 +++++++++++++++++++++++++++++++ scripts/devnet/encoding.ts | 92 +++++++++++++++++++++++++++++ scripts/devnet/scenarios.ts | 115 ++++++++++++++++++++++++++++++++++++ scripts/devnet/setup.ts | 100 +++++++++++++++++++++++++++++++ scripts/devnet/shutdown.ts | 30 ++++++++++ scripts/devnet/types.ts | 77 ++++++++++++++++++++++++ 10 files changed, 662 insertions(+), 3 deletions(-) create mode 100644 scripts/devnet/accounts.ts create mode 100644 scripts/devnet/anvil.ts create mode 100644 scripts/devnet/client.ts create mode 100644 scripts/devnet/deploy.ts create mode 100644 scripts/devnet/encoding.ts create mode 100644 scripts/devnet/scenarios.ts create mode 100644 scripts/devnet/setup.ts create mode 100644 scripts/devnet/shutdown.ts create mode 100644 scripts/devnet/types.ts diff --git a/package.json b/package.json index 997f084..2dfa459 100644 --- a/package.json +++ b/package.json @@ -21,17 +21,17 @@ }, "dependencies": { "@wagmi/cli": "^2.0.4", + "prool": "^0.2.4", "viem": "^2.9.29", "wagmi": "^2.3.1" }, "devDependencies": { "@types/bun": "^1.0.2", "@types/node": "^20.11.5", - "bun": "^1.0.24", "prettier": "^3.2.4", "solc": "^0.8.23", "solhint": "^4.1.1", "typescript": "^5.3.3" }, - "license": "UNLICENSED" -} \ No newline at end of file + "license": "MIT" +} diff --git a/scripts/devnet/accounts.ts b/scripts/devnet/accounts.ts new file mode 100644 index 0000000..aec69c5 --- /dev/null +++ b/scripts/devnet/accounts.ts @@ -0,0 +1,26 @@ +import { mnemonicToAccount, type HDAccount } from 'viem/accounts' + +/** + * The canonical Anvil/Hardhat test mnemonic. The ENS devnet uses the same + * phrase, so these accounts are funded on both our spawned node and a shared + * ENS devnet node. + */ +export const DEVNET_MNEMONIC = + 'test test test test test test test test test test test junk' as const + +/** Private key for account #0 of {@link DEVNET_MNEMONIC} (the deployer). */ +export const DEPLOYER_PRIVATE_KEY = + '0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80' as const + +export const ACCOUNT_NAMES = ['deployer', 'alice', 'bob', 'carol', 'dave'] as const + +export type AccountName = (typeof ACCOUNT_NAMES)[number] + +export function getNamedAccounts(): Record { + return Object.fromEntries( + ACCOUNT_NAMES.map((name, index) => [ + name, + mnemonicToAccount(DEVNET_MNEMONIC, { addressIndex: index }) + ]) + ) as Record +} diff --git a/scripts/devnet/anvil.ts b/scripts/devnet/anvil.ts new file mode 100644 index 0000000..820b5d5 --- /dev/null +++ b/scripts/devnet/anvil.ts @@ -0,0 +1,45 @@ +import { Instance } from 'prool' +import type { AnvilHandle } from './types.ts' +import { DEVNET_MNEMONIC } from './accounts.ts' + +export async function startAnvil({ + port, + chainId, + host, + autoMine, + procLog +}: { + port: number + chainId: number + host: string + autoMine: boolean + procLog: boolean +}): Promise { + // NOTE: do not pass `silent: true` — prool resolves `start()` by waiting for + // anvil's "Listening on" stdout message, which `silent` would suppress. + const instance = Instance.anvil({ + port, + chainId, + host, + mnemonic: DEVNET_MNEMONIC, + accounts: 10, + ...(autoMine ? { blockTime: 1 } : {}) + }) + + if (procLog) { + instance.on('message', (message) => process.stdout.write(message)) + } + + const stopFn = await instance.start() + const rpcHost = host === '0.0.0.0' ? '127.0.0.1' : host + + return { + rpcUrl: `http://${rpcHost}:${port}`, + wsUrl: `ws://${rpcHost}:${port}`, + chainId, + stop: async () => { + await instance.stop() + await stopFn() + } + } +} diff --git a/scripts/devnet/client.ts b/scripts/devnet/client.ts new file mode 100644 index 0000000..7e5ba7e --- /dev/null +++ b/scripts/devnet/client.ts @@ -0,0 +1,74 @@ +import { + createTestClient, + defineChain, + getContract, + http, + publicActions, + walletActions, + type Account, + type Chain +} from 'viem' +import { + efpAccountMetadataAbi, + efpListMinterAbi, + efpListRecordsAbi, + efpListRegistryAbi +} from '../../generated/abi.ts' +import type { Deployments, DevnetContracts } from './types.ts' + +export function defineDevnetChain(chainId: number, rpcUrl: string, wsUrl: string): Chain { + return defineChain({ + id: chainId, + name: `EFP Devnet (${chainId})`, + nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, + rpcUrls: { default: { http: [rpcUrl], webSocket: [wsUrl] } } + }) +} + +export function createDevnetClient({ + chain, + rpcUrl, + account +}: { + chain: Chain + rpcUrl: string + account: Account +}) { + return createTestClient({ + chain, + mode: 'anvil', + account, + transport: http(rpcUrl), + pollingInterval: 100, + cacheTime: 0 + }) + .extend(publicActions) + .extend(walletActions) +} + +export type DevnetClient = ReturnType + +export function getContracts(client: DevnetClient, deployments: Deployments): DevnetContracts { + return { + EFPAccountMetadata: getContract({ + abi: efpAccountMetadataAbi, + address: deployments.EFPAccountMetadata, + client + }), + EFPListRegistry: getContract({ + abi: efpListRegistryAbi, + address: deployments.EFPListRegistry, + client + }), + EFPListRecords: getContract({ + abi: efpListRecordsAbi, + address: deployments.EFPListRecords, + client + }), + EFPListMinter: getContract({ + abi: efpListMinterAbi, + address: deployments.EFPListMinter, + client + }) + } +} diff --git a/scripts/devnet/deploy.ts b/scripts/devnet/deploy.ts new file mode 100644 index 0000000..10e1126 --- /dev/null +++ b/scripts/devnet/deploy.ts @@ -0,0 +1,100 @@ +import { mkdir, readFile, writeFile } from 'node:fs/promises' +import path from 'node:path' +import { getAddress, isAddress, type Hex } from 'viem' +import type { ContractName, Deployments } from './types.ts' + +const CONTRACT_NAMES: ContractName[] = [ + 'EFPAccountMetadata', + 'EFPListRegistry', + 'EFPListRecords', + 'EFPListMinter', + 'TokenURIProvider' +] + +function broadcastPath(chainId: number) { + return path.join(process.cwd(), 'broadcast', 'deploy.s.sol', String(chainId), 'run-latest.json') +} + +export function deploymentPath(chainId: number) { + return path.join(process.cwd(), 'deployments', `devnet-${chainId}.json`) +} + +/** + * Runs the existing, unmodified `scripts/deploy.s.sol` against `rpcUrl` and + * reads the resulting addresses out of Forge's broadcast artifact. We do not + * touch the deploy scripts so the live/reproducible deployment stays identical. + */ +export async function deployContracts({ + rpcUrl, + chainId, + privateKey, + quiet = true +}: { + rpcUrl: string + chainId: number + privateKey: Hex + quiet?: boolean +}): Promise { + const proc = Bun.spawn( + [ + 'forge', + 'script', + 'scripts/deploy.s.sol', + '--rpc-url', + rpcUrl, + '--broadcast', + '--private-key', + privateKey, + '--slow' + ], + { + cwd: process.cwd(), + stdout: quiet ? 'ignore' : 'inherit', + stderr: 'inherit', + env: { + ...process.env, + PRIVATE_KEY: privateKey, + FOUNDRY_DISABLE_NIGHTLY_WARNING: 'true' + } + } + ) + + const exitCode = await proc.exited + if (exitCode !== 0) { + throw new Error(`forge deploy exited with code ${exitCode}`) + } + + return readDeploymentsFromBroadcast(chainId) +} + +export async function readDeploymentsFromBroadcast(chainId: number): Promise { + const raw = await readFile(broadcastPath(chainId), 'utf8') + const artifact = JSON.parse(raw) as { + transactions: Array<{ transactionType: string; contractName: string | null; contractAddress: string | null }> + } + + const found = new Map() + for (const tx of artifact.transactions) { + if (tx.transactionType === 'CREATE' && tx.contractName && tx.contractAddress) { + if (!found.has(tx.contractName)) found.set(tx.contractName, tx.contractAddress) + } + } + + const deployments = { chainId } as Deployments + for (const name of CONTRACT_NAMES) { + const address = found.get(name) + if (!address || !isAddress(address)) { + throw new Error(`Deployment for ${name} not found in broadcast artifact (chainId ${chainId})`) + } + deployments[name] = getAddress(address) + } + + return deployments +} + +export async function saveDeployments(deployments: Deployments): Promise { + const file = deploymentPath(deployments.chainId) + await mkdir(path.dirname(file), { recursive: true }) + await writeFile(file, `${JSON.stringify(deployments, null, 2)}\n`) + return file +} diff --git a/scripts/devnet/encoding.ts b/scripts/devnet/encoding.ts new file mode 100644 index 0000000..c787ed3 --- /dev/null +++ b/scripts/devnet/encoding.ts @@ -0,0 +1,92 @@ +import { + concatHex, + numberToHex, + pad, + stringToHex, + type Address, + type Hex +} from 'viem' + +/** + * On-chain encodings for EFP, mirrored from the Solidity helpers + * (`scripts/util/ListOpUtils.sol`, `EFPListMinter.decodeL1ListStorageLocation`). + * + * These are intentionally tiny and dependency-free so scenarios + tests can + * build calldata without going through the Forge scripts. + */ + +const LIST_STORAGE_LOCATION_VERSION = 0x01 +const LIST_STORAGE_LOCATION_TYPE_L1 = 0x01 + +const LIST_OP_VERSION = 0x01 +const LIST_RECORD_VERSION = 0x01 +const LIST_RECORD_TYPE_ADDRESS = 0x01 + +export const ListOpcode = { + ADD_RECORD: 0x01, + REMOVE_RECORD: 0x02, + ADD_TAG: 0x03, + REMOVE_TAG: 0x04 +} as const + +function byte(value: number): Hex { + return numberToHex(value, { size: 1 }) +} + +/** + * Encodes an L1 list storage location: + * version(1) | type(1) | chainId(32) | listRecords(20) | slot(32) = 86 bytes + */ +export function encodeListStorageLocation({ + chainId, + listRecords, + slot +}: { + chainId: number | bigint + listRecords: Address + slot: bigint +}): Hex { + return concatHex([ + byte(LIST_STORAGE_LOCATION_VERSION), + byte(LIST_STORAGE_LOCATION_TYPE_L1), + numberToHex(BigInt(chainId), { size: 32 }), + pad(listRecords, { size: 20 }), + numberToHex(slot, { size: 32 }) + ]) +} + +/** A list record pointing at an address: version(1) | type(1) | address(20). */ +export function encodeAddressRecord(address: Address): Hex { + return concatHex([byte(LIST_RECORD_VERSION), byte(LIST_RECORD_TYPE_ADDRESS), pad(address, { size: 20 })]) +} + +/** A raw list op: opVersion(1) | opcode(1) | data. */ +export function encodeListOp({ opcode, data }: { opcode: number; data: Hex }): Hex { + return concatHex([byte(LIST_OP_VERSION), byte(opcode), data]) +} + +/** Add-record op that follows `target`. */ +export function encodeFollowOp(target: Address): Hex { + return encodeListOp({ opcode: ListOpcode.ADD_RECORD, data: encodeAddressRecord(target) }) +} + +/** Remove-record op that unfollows `target`. */ +export function encodeUnfollowOp(target: Address): Hex { + return encodeListOp({ opcode: ListOpcode.REMOVE_RECORD, data: encodeAddressRecord(target) }) +} + +/** Tag op: appends a UTF-8 tag to the address record. */ +export function encodeTagOp(target: Address, tag: string): Hex { + return encodeListOp({ + opcode: ListOpcode.ADD_TAG, + data: concatHex([encodeAddressRecord(target), stringToHex(tag)]) + }) +} + +/** Untag op. */ +export function encodeUntagOp(target: Address, tag: string): Hex { + return encodeListOp({ + opcode: ListOpcode.REMOVE_TAG, + data: concatHex([encodeAddressRecord(target), stringToHex(tag)]) + }) +} diff --git a/scripts/devnet/scenarios.ts b/scripts/devnet/scenarios.ts new file mode 100644 index 0000000..ec7825c --- /dev/null +++ b/scripts/devnet/scenarios.ts @@ -0,0 +1,115 @@ +import type { Account, Address, Hex } from 'viem' +import { encodeFollowOp, encodeListStorageLocation, encodeTagOp } from './encoding.ts' +import type { DevnetEnvironment } from './types.ts' + +/** EFPListRegistry.MintState enum. */ +export const MintState = { + Disabled: 0, + OwnerOnly: 1, + PublicMint: 2, + PublicBatch: 3 +} as const + +async function send(env: DevnetEnvironment, hash: Hex): Promise { + await env.client.waitForTransactionReceipt({ hash }) +} + +/** Opens public minting so any account can mint a primary list. */ +export async function openPublicMint(env: DevnetEnvironment): Promise { + const current = await env.contracts.EFPListRegistry.read.getMintState() + if (current === MintState.PublicMint || current === MintState.PublicBatch) return + const hash = await env.contracts.EFPListRegistry.write.setMintState([MintState.PublicMint], { + account: env.deployer + }) + await send(env, hash) +} + +export type MintedList = { tokenId: bigint; slot: bigint; owner: Address; manager: Account } + +/** + * Mints a primary list. The `manager` account becomes the list manager (so it + * can apply ops), and the NFT is minted to `to` (defaults to the manager). + */ +export async function mintList( + env: DevnetEnvironment, + { manager = env.deployer, to }: { manager?: Account; to?: Address } = {} +): Promise { + const owner = to ?? manager.address + const tokenId = await env.contracts.EFPListRegistry.read.totalSupply() + const slot = tokenId + + const listStorageLocation = encodeListStorageLocation({ + chainId: env.chainId, + listRecords: env.deployments.EFPListRecords, + slot + }) + + const hash = await env.contracts.EFPListMinter.write.easyMintTo([owner, listStorageLocation], { + account: manager + }) + await send(env, hash) + + return { tokenId, slot, owner, manager } +} + +/** Applies follow ops for `targets` on `slot`, signed by `manager`. */ +export async function follow( + env: DevnetEnvironment, + { manager, slot, targets }: { manager: Account; slot: bigint; targets: Address[] } +): Promise { + if (targets.length === 0) return + const ops = targets.map(encodeFollowOp) + const hash = await env.contracts.EFPListRecords.write.applyListOps([slot, ops], { account: manager }) + await send(env, hash) +} + +/** Applies a tag op for `target` on `slot`, signed by `manager`. */ +export async function tag( + env: DevnetEnvironment, + { manager, slot, target, value }: { manager: Account; slot: bigint; target: Address; value: string } +): Promise { + const hash = await env.contracts.EFPListRecords.write.applyListOps([slot, [encodeTagOp(target, value)]], { + account: manager + }) + await send(env, hash) +} + +export type Scenario = (env: DevnetEnvironment) => Promise + +/** Deploy only — leaves the chain empty. */ +const empty: Scenario = async () => {} + +/** One list owned by the deployer, following alice and bob. */ +const minimal: Scenario = async (env) => { + await openPublicMint(env) + const { slot } = await mintList(env, { manager: env.deployer }) + await follow(env, { + manager: env.deployer, + slot, + targets: [env.accounts.alice.address, env.accounts.bob.address] + }) +} + +/** A small social graph: alice, bob, carol each mint a list and follow peers. */ +const demoGraph: Scenario = async (env) => { + await openPublicMint(env) + const peers = ['alice', 'bob', 'carol'] as const + + for (const name of peers) { + const manager = env.accounts[name] + const { slot } = await mintList(env, { manager }) + const targets = peers + .filter((other) => other !== name) + .map((other) => env.accounts[other].address) + await follow(env, { manager, slot, targets }) + await tag(env, { manager, slot, target: env.accounts.dave.address, value: 'efp' }) + } +} + +export const scenarios = { empty, minimal, demoGraph } satisfies Record + +export type ScenarioName = keyof typeof scenarios + +export function isScenarioName(value: string): value is ScenarioName { + return value in scenarios +} diff --git a/scripts/devnet/setup.ts b/scripts/devnet/setup.ts new file mode 100644 index 0000000..a823666 --- /dev/null +++ b/scripts/devnet/setup.ts @@ -0,0 +1,100 @@ +import { createPublicClient, http, type Hex } from 'viem' +import { startAnvil } from './anvil.ts' +import { DEPLOYER_PRIVATE_KEY, getNamedAccounts } from './accounts.ts' +import { createDevnetClient, defineDevnetChain, getContracts } from './client.ts' +import { deployContracts, saveDeployments } from './deploy.ts' +import type { AnvilHandle, DevnetEnvironment, SetupDevnetOptions } from './types.ts' + +function wsFromHttp(rpcUrl: string): string { + return rpcUrl.replace(/^http/, 'ws') +} + +async function waitForNode(rpcUrl: string, timeoutMs = 60_000): Promise { + const probe = createPublicClient({ transport: http(rpcUrl) }) + const deadline = Date.now() + timeoutMs + let lastError: unknown + while (Date.now() < deadline) { + try { + return await probe.getChainId() + } catch (error) { + lastError = error + await new Promise((resolve) => setTimeout(resolve, 500)) + } + } + throw new Error(`Node at ${rpcUrl} not reachable within ${timeoutMs}ms: ${String(lastError)}`) +} + +/** + * Boots an EFP devnet and returns a ready-to-use environment. + * + * Two modes: + * - **standalone**: spawns a local anvil via prool (default). + * - **attached**: pass `rpcUrl` to deploy EFP onto an already-running node, + * e.g. the ENS devnet (`http://devnet:8545`). The node is left running on + * shutdown in this mode. + */ +export async function setupDevnet(options: SetupDevnetOptions = {}): Promise { + const { + rpcUrl: externalRpcUrl, + port = 8545, + chainId: requestedChainId = 31337, + host = '127.0.0.1', + autoMine = true, + procLog = false, + saveDeployments: persist = false, + quiet = true + } = options + + const external = Boolean(externalRpcUrl) + let anvil: AnvilHandle | null = null + let rpcUrl: string + let wsUrl: string + let chainId: number + + if (externalRpcUrl) { + rpcUrl = externalRpcUrl + wsUrl = wsFromHttp(externalRpcUrl) + chainId = await waitForNode(rpcUrl) + } else { + anvil = await startAnvil({ port, chainId: requestedChainId, host, autoMine, procLog }) + rpcUrl = anvil.rpcUrl + wsUrl = anvil.wsUrl + chainId = await waitForNode(rpcUrl) + } + + const accounts = getNamedAccounts() + const chain = defineDevnetChain(chainId, rpcUrl, wsUrl) + const client = createDevnetClient({ chain, rpcUrl, account: accounts.deployer }) + + const deployments = await deployContracts({ + rpcUrl, + chainId, + privateKey: DEPLOYER_PRIVATE_KEY as Hex, + quiet + }) + + if (persist) { + const file = await saveDeployments(deployments) + if (!quiet) console.log('Saved deployments to', file) + } + + const contracts = getContracts(client, deployments) + + return { + rpcUrl, + wsUrl, + chainId, + external, + client, + accounts, + deployer: accounts.deployer, + deployments, + contracts, + snapshot: () => client.snapshot(), + revert: (id) => client.revert({ id }), + mine: (blocks = 1) => client.mine({ blocks }), + shutdown: async () => { + if (anvil) await anvil.stop() + } + } +} diff --git a/scripts/devnet/shutdown.ts b/scripts/devnet/shutdown.ts new file mode 100644 index 0000000..0c8769a --- /dev/null +++ b/scripts/devnet/shutdown.ts @@ -0,0 +1,30 @@ +const finalizers: Array<() => void | Promise> = [] +let shuttingDown = false + +export function onShutdown(finalizer: () => void | Promise) { + finalizers.push(finalizer) +} + +async function shutdown(signal?: string) { + if (shuttingDown) return + shuttingDown = true + + if (signal) console.log(`\nShutting down (${signal})...`) + + await Promise.allSettled(finalizers.map((fn) => fn())) + process.exit(0) +} + +export function registerShutdownHandlers() { + process.once('SIGINT', () => void shutdown('SIGINT')) + process.once('SIGTERM', () => void shutdown('SIGTERM')) + process.once('uncaughtException', async (error) => { + console.error(error) + await shutdown('uncaughtException') + throw error + }) +} + +export async function keepAlive() { + await new Promise(() => {}) +} diff --git a/scripts/devnet/types.ts b/scripts/devnet/types.ts new file mode 100644 index 0000000..9e2fbcf --- /dev/null +++ b/scripts/devnet/types.ts @@ -0,0 +1,77 @@ +import type { Address, GetContractReturnType, Hex } from 'viem' +import type { HDAccount } from 'viem/accounts' +import type { + efpAccountMetadataAbi, + efpListMinterAbi, + efpListRecordsAbi, + efpListRegistryAbi +} from '../../generated/abi.ts' +import type { DevnetClient } from './client.ts' + +export type ContractName = + | 'EFPAccountMetadata' + | 'EFPListRegistry' + | 'EFPListRecords' + | 'EFPListMinter' + | 'TokenURIProvider' + +export type Deployments = Record & { chainId: number } + +export type DevnetContracts = { + EFPAccountMetadata: GetContractReturnType + EFPListRegistry: GetContractReturnType + EFPListRecords: GetContractReturnType + EFPListMinter: GetContractReturnType +} + +export type AnvilHandle = { + rpcUrl: string + wsUrl: string + chainId: number + stop: () => Promise +} + +export type DevnetEnvironment = { + /** JSON-RPC endpoints of the devnet node. */ + rpcUrl: string + wsUrl: string + chainId: number + /** True when EFP was deployed onto a pre-existing node (e.g. the ENS devnet). */ + external: boolean + /** viem client (public + wallet + test actions), defaulting to the deployer. */ + client: DevnetClient + /** Named, funded dev accounts derived from the standard test mnemonic. */ + accounts: Record + deployer: HDAccount + /** Deployed contract addresses. */ + deployments: Deployments + /** Bound viem contract instances. */ + contracts: DevnetContracts + /** Take an anvil state snapshot; returns the snapshot id. */ + snapshot: () => Promise + /** Revert to a previously taken snapshot. */ + revert: (id: Hex) => Promise + /** Mine `blocks` blocks (default 1). */ + mine: (blocks?: number) => Promise + /** Stop the node (if we own it) and release resources. */ + shutdown: () => Promise +} + +export type SetupDevnetOptions = { + /** Connect to an existing node instead of spawning one (e.g. the ENS devnet). */ + rpcUrl?: string + /** Anvil port when spawning a node. @default 8545 */ + port?: number + /** Chain id when spawning a node. @default 31337 */ + chainId?: number + /** Host to bind when spawning a node. @default 127.0.0.1 */ + host?: string + /** Interval-mine every second when spawning a node. @default true */ + autoMine?: boolean + /** Forward anvil stdout/stderr to the console. @default false */ + procLog?: boolean + /** Persist `deployments/devnet-.json` for downstream consumers. @default false */ + saveDeployments?: boolean + /** Suppress the deploy script's stdout. @default true */ + quiet?: boolean +} From 5c0f40ee13d75967af10d279ba38f203b329a5b4 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:35:15 +0200 Subject: [PATCH 03/30] Feat: Add main devnet runner script --- scripts/runDevnet.ts | 96 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 scripts/runDevnet.ts diff --git a/scripts/runDevnet.ts b/scripts/runDevnet.ts new file mode 100644 index 0000000..44c8e4a --- /dev/null +++ b/scripts/runDevnet.ts @@ -0,0 +1,96 @@ +#!/usr/bin/env bun +import { createServer } from 'node:http' +import { parseArgs } from 'node:util' +import { getAddress } from 'viem' +import { setupDevnet } from './devnet/setup.ts' +import { isScenarioName, scenarios, type ScenarioName } from './devnet/scenarios.ts' +import { keepAlive, onShutdown, registerShutdownHandlers } from './devnet/shutdown.ts' + +const t0 = Date.now() + +const args = parseArgs({ + args: process.argv.slice(2), + options: { + 'rpc-url': { type: 'string', default: process.env.DEVNET_RPC_URL }, + port: { type: 'string', default: process.env.DEVNET_PORT ?? '8545' }, + 'chain-id': { type: 'string', default: process.env.DEVNET_CHAIN_ID ?? '31337' }, + host: { type: 'string', default: process.env.DEVNET_HOST ?? '127.0.0.1' }, + scenario: { type: 'string', default: process.env.DEVNET_SCENARIO ?? 'empty' }, + 'save-deployments': { type: 'boolean', default: process.env.DEVNET_SAVE_DEPLOYMENTS !== 'false' }, + 'no-auto-mine': { type: 'boolean', default: false }, + 'proc-log': { type: 'boolean', default: false }, + 'health-port': { type: 'string', default: process.env.DEVNET_HEALTH_PORT ?? '8000' } + }, + strict: true +}) + +const scenarioName = args.values.scenario as string +if (!isScenarioName(scenarioName)) { + console.error(`Unknown scenario "${scenarioName}". Available: ${Object.keys(scenarios).join(', ')}`) + process.exit(1) +} + +const host = args.values.host! +const healthPort = Number(args.values['health-port']) + +registerShutdownHandlers() + +console.log('Starting EFP devnet...') +const env = await setupDevnet({ + rpcUrl: args.values['rpc-url'], + port: Number(args.values.port), + chainId: Number(args.values['chain-id']), + host, + autoMine: !args.values['no-auto-mine'], + procLog: args.values['proc-log'] ?? false, + saveDeployments: args.values['save-deployments'] ?? true, + quiet: !(args.values['proc-log'] ?? false) +}) +onShutdown(() => env.shutdown()) + +console.log(`Running scenario "${scenarioName}"...`) +await scenarios[scenarioName as ScenarioName](env) + +console.log() +console.log('Named accounts:') +console.table( + Object.entries(env.accounts).map(([name, account]) => ({ Name: name, Address: account.address })) +) + +console.log() +console.log('Deployments:') +console.table( + (Object.keys(env.deployments) as Array) + .filter((key) => key !== 'chainId') + .map((name) => ({ Contract: name, Address: getAddress(env.deployments[name] as string) })) +) + +console.log() +console.log({ + Chain: env.chainId, + Endpoint: `{http,ws}://${host}:${args.values.port}`, + Attached: env.external, + Scenario: scenarioName, + ReadyMs: Date.now() - t0 +}) + +const healthServer = createServer((req, res) => { + if (req.url !== '/health' && req.url !== '/') { + res.writeHead(404) + res.end() + return + } + res.writeHead(200, { 'Content-Type': 'text/plain' }) + res.end('healthy\n') +}) +healthServer.listen(healthPort, host, () => { + console.log(`Healthcheck listening on http://${host}:${healthPort}/health`) +}) +onShutdown( + () => + new Promise((resolve) => { + healthServer.close(() => resolve()) + }) +) + +await keepAlive() From 8208fa27a42186654e95f27bd2504db7533484d4 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:35:15 +0200 Subject: [PATCH 04/30] Chore: Prepare Docker environment for devnet --- .dockerignore | 3 +++ Dockerfile.devnet | 36 ++++++++++++++++++++++++++++++++++++ deployments/.gitkeep | 0 3 files changed, 39 insertions(+) create mode 100644 Dockerfile.devnet create mode 100644 deployments/.gitkeep diff --git a/.dockerignore b/.dockerignore index ba7f1e0..6ff2c99 100644 --- a/.dockerignore +++ b/.dockerignore @@ -10,6 +10,9 @@ !generated/ !lib/ !scripts/ +!scripts/devnet/ +!deployments/ +!Dockerfile.devnet !src/ # needed for forge diff --git a/Dockerfile.devnet b/Dockerfile.devnet new file mode 100644 index 0000000..0a3e9bc --- /dev/null +++ b/Dockerfile.devnet @@ -0,0 +1,36 @@ +FROM oven/bun:1.2.13 + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + curl \ + git \ + build-essential \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +# Install Foundry +RUN curl -L https://foundry.paradigm.xyz | bash +ENV PATH="/root/.foundry/bin:${PATH}" +RUN foundryup + +WORKDIR /app + +# Install dependencies +COPY package.json bun.lockb ./ +RUN bun install --frozen-lockfile + +# Copy source and build contracts +COPY . . +RUN forge install && forge build + +EXPOSE 8545 8000 + +ENV FOUNDRY_DISABLE_NIGHTLY_WARNING=true +# Bind to all interfaces inside the container; everything else is env-driven: +# DEVNET_RPC_URL attach to an existing node (e.g. http://devnet:8545) instead of spawning anvil +# DEVNET_SCENARIO composable scenario to seed (empty | minimal | demoGraph) +# DEVNET_CHAIN_ID chain id when spawning a node (default 31337) +ENV DEVNET_HOST=0.0.0.0 +ENV DEVNET_SCENARIO=demoGraph + +CMD ["bun", "scripts/runDevnet.ts"] diff --git a/deployments/.gitkeep b/deployments/.gitkeep new file mode 100644 index 0000000..e69de29 From fc891e7cd39250b2ea33c59a557964ff54592e1b Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:35:15 +0200 Subject: [PATCH 05/30] Feat: Integrate devnet into Docker Compose configurations --- compose.attach.yml | 57 ++++++++++++++++++++++++++++++++++++++++++++++ compose.yml | 52 +++++++++++++++++------------------------- 2 files changed, 78 insertions(+), 31 deletions(-) create mode 100644 compose.attach.yml diff --git a/compose.attach.yml b/compose.attach.yml new file mode 100644 index 0000000..110bd23 --- /dev/null +++ b/compose.attach.yml @@ -0,0 +1,57 @@ +name: efp-ens-devnet + +# Runs the EFP devnet ALONGSIDE the ENS devnet, deploying the EFP contracts onto +# the same anvil node that ENS uses. This mirrors the ENS devnet service from +# https://github.com/namehash/ensnode/blob/main/docker/services/devnet.yml +# +# docker compose -f compose.attach.yml up +# +# Result: one chain (id 31337) with both ENS v2 and EFP contracts deployed, +# reachable at devnet:8545. EFP addresses are written to the shared +# `efp-deployments` volume as /deployments/devnet-31337.json. +services: + # The ENS devnet (prebuilt image), exactly as ensnode runs it. + devnet: + container_name: devnet + image: ghcr.io/ensdomains/contracts-v2:main-5677359 + command: ./script/runDevnet.ts + pull_policy: always + ports: + - '8545:8545' + environment: + ANVIL_IP_ADDR: '0.0.0.0' + healthcheck: + test: ['CMD', 'curl', '--fail', '-s', 'http://localhost:8000/health'] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + start_interval: 1s + + # Deploys + seeds EFP onto the ENS devnet node, then serves its own health. + efp-devnet: + container_name: efp-devnet + build: + context: . + dockerfile: Dockerfile.devnet + depends_on: + devnet: + condition: service_healthy + ports: + - '8001:8000' + environment: + DEVNET_HOST: 0.0.0.0 + DEVNET_RPC_URL: http://devnet:8545 + DEVNET_SCENARIO: ${DEVNET_SCENARIO:-demoGraph} + volumes: + - efp-deployments:/app/deployments + healthcheck: + test: ['CMD', 'curl', '--fail', '-s', 'http://localhost:8000/health'] + interval: 10s + timeout: 5s + retries: 5 + start_period: 60s + start_interval: 1s + +volumes: + efp-deployments: diff --git a/compose.yml b/compose.yml index 305f609..b10cf2b 100644 --- a/compose.yml +++ b/compose.yml @@ -1,37 +1,27 @@ -version: '3.8' - name: efp-contracts -networks: - default: - driver: bridge - +# Standalone EFP devnet: spawns its own anvil, deploys the EFP contracts, and +# seeds a scenario. RPC on :8545, healthcheck on :8000. +# +# To run EFP alongside (and on top of) the ENS devnet instead, see +# compose.attach.yml. services: - anvil: - container_name: efp-contracts-anvil - image: ghcr.io/foundry-rs/foundry:latest - command: anvil - tty: true - environment: - - ANVIL_IP_ADDR=0.0.0.0 - ports: - - 8545:8545 - networks: - - default - - contracts: - container_name: efp-contracts - restart: no + efp-devnet: + container_name: efp-devnet build: context: . - dockerfile: Dockerfile - command: bun launch:localhost + dockerfile: Dockerfile.devnet + ports: + - '8545:8545' + - '8000:8000' environment: - - ETHEREUM_LOCAL_NODE_URL=${ETHEREUM_LOCAL_NODE_URL:-http://host.docker.internal:8545} - - ANVIL_ACCOUNT_PRIVATE_KEY=${ANVIL_ACCOUNT_PRIVATE_KEY:-0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80} - - PRIVATE_KEY=${PRIVATE_KEY:-0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80} - - MINT_TOTAL_SUPPLY=${MINT_TOTAL_SUPPLY:-100} - - FORGE_ARGS=${FORGE_ARGS:-} - network_mode: host - stdin_open: true - tty: true + DEVNET_HOST: 0.0.0.0 + DEVNET_CHAIN_ID: ${DEVNET_CHAIN_ID:-31337} + DEVNET_SCENARIO: ${DEVNET_SCENARIO:-demoGraph} + healthcheck: + test: ['CMD', 'curl', '--fail', '-s', 'http://localhost:8000/health'] + interval: 10s + timeout: 5s + retries: 5 + start_period: 40s + start_interval: 1s From a800c506e78e5017e6a6c62a0c97a8fc54ed4165 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:35:15 +0200 Subject: [PATCH 06/30] Chore: Update package.json for devnet scripts and project details --- package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 2dfa459..4e74b07 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,15 @@ { "name": "beta-contracts", "version": "1.0.0", - "repository": "github:ethereumfollowprotocol/beta-contractst", + "repository": "github:ethereumfollowprotocol/contracts", "type": "module", "scripts": { "build": "wagmi generate && bun format:ts && (cp ./generated/abi.ts ../indexer/src/abi/generated/index.ts || true)", "clean": "forge clean", + "devnet": "bun scripts/runDevnet.ts", + "devnet:seed": "bun scripts/runDevnet.ts --scenario demoGraph", + "devnet:attach": "bun scripts/runDevnet.ts --rpc-url http://127.0.0.1:8545 --scenario demoGraph", + "devnet:test": "bun test --timeout 120000 scripts/devnet", "docs": "forge doc --serve --port 4433 --open", "deploy:localhost": "forge script scripts/deploy.s.sol --fork-url https://eth-sepolia.g.alchemy.com/v2/[ALCHEMY_ID] --broadcast --private-key [PRIVATE_KEY] && bun enable-public-mint", "enable-public-mint": "bun ./scripts/update-mint-state.ts --public-batch", From fbc009eabb3aafdbef57a6eabf56962cd5961f58 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:35:15 +0200 Subject: [PATCH 07/30] Test: Add EFP devnet integration tests --- scripts/devnet/devnet.test.ts | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 scripts/devnet/devnet.test.ts diff --git a/scripts/devnet/devnet.test.ts b/scripts/devnet/devnet.test.ts new file mode 100644 index 0000000..7ccce4e --- /dev/null +++ b/scripts/devnet/devnet.test.ts @@ -0,0 +1,49 @@ +import { afterAll, beforeAll, describe, expect, test } from 'bun:test' +import type { Hex } from 'viem' +import { setupDevnet } from './setup.ts' +import { follow, mintList, openPublicMint } from './scenarios.ts' +import type { DevnetEnvironment } from './types.ts' + +// NOTE: spawning anvil + deploying via forge takes longer than bun's default +// 5s hook timeout — run with `bun test --timeout 120000` (see `devnet:test`). +describe('efp devnet', () => { + let env: DevnetEnvironment + let baseline: Hex + + beforeAll(async () => { + // Spawns an ephemeral anvil on a non-default port and deploys EFP onto it. + env = await setupDevnet({ port: 8645, chainId: 31337 }) + await openPublicMint(env) + baseline = await env.snapshot() + }) + + afterAll(async () => { + await env?.shutdown() + }) + + test('deploys all contracts', () => { + expect(env.deployments.EFPListRegistry).toMatch(/^0x[0-9a-fA-F]{40}$/) + expect(env.deployments.EFPListMinter).toMatch(/^0x[0-9a-fA-F]{40}$/) + }) + + test('mints a list and records follows', async () => { + const { tokenId, slot } = await mintList(env, { manager: env.accounts.alice }) + expect(await env.contracts.EFPListRegistry.read.ownerOf([tokenId])).toBe(env.accounts.alice.address) + + await follow(env, { + manager: env.accounts.alice, + slot, + targets: [env.accounts.bob.address, env.accounts.carol.address] + }) + + expect(await env.contracts.EFPListRecords.read.getListOpCount([slot])).toBe(2n) + + // Roll back to the clean post-deploy snapshot for the next test. + await env.revert(baseline) + baseline = await env.snapshot() + }) + + test('snapshot/revert isolates state', async () => { + expect(await env.contracts.EFPListRegistry.read.totalSupply()).toBe(0n) + }) +}) From 87e56e7e68420b95b6be938cb3f77c30303fb444 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:35:55 +0200 Subject: [PATCH 08/30] chore(deps): update bun lockfile --- bun.lockb | Bin 444105 -> 461446 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index 819ebb8d49b8a618d37960138719264a9d3407dd..3038fa6680f7b10eaafd00520cf5f12afcbd5392 100755 GIT binary patch delta 106037 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 From bf9af22931d03736d90795e0d109942937c9cf74 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:45:41 +0200 Subject: [PATCH 09/30] ci(devnet): add workflow to build, test, and publish devnet image - Automates the build, smoke test, and publication of the devnet Docker image - Triggers on relevant code changes, pull requests, and pushes to main branch - Includes a smoke test to verify devnet health before publishing - Publishes tagged images to GitHub Container Registry (GHCR) --- .github/workflows/build-devnet.yml | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 .github/workflows/build-devnet.yml diff --git a/.github/workflows/build-devnet.yml b/.github/workflows/build-devnet.yml new file mode 100644 index 0000000..2175a8d --- /dev/null +++ b/.github/workflows/build-devnet.yml @@ -0,0 +1,101 @@ +name: build-devnet + +on: + push: + branches: [main] + pull_request: + paths: + - 'src/**' + - 'scripts/**' + - 'lib/**' + - 'generated/**' + - 'Dockerfile.devnet' + - 'foundry.toml' + - 'package.json' + - 'bun.lockb' + - '.github/workflows/build-devnet.yml' + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE: ghcr.io/${{ github.repository }}/devnet + +concurrency: + group: build-devnet-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build & publish devnet image + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Docker metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.IMAGE }} + tags: | + type=ref,event=branch + type=ref,event=pr + type=sha,format=long + type=sha,format=short,prefix=${{ github.ref_name }}-,enable={{is_default_branch}} + type=raw,value=latest,enable={{is_default_branch}} + + - name: Build image + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile.devnet + load: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Smoke test (deploy + seed + health) + env: + IMAGE_REF: ${{ env.IMAGE }}:${{ steps.meta.outputs.version }} + run: | + docker run -d --name efp-devnet -p 8545:8545 -p 8000:8000 "$IMAGE_REF" + for i in $(seq 1 90); do + if curl -fsS http://localhost:8000/health >/dev/null; then + echo "Healthy after ${i}s" + exit 0 + fi + if [ -z "$(docker ps -q -f name=efp-devnet -f status=running)" ]; then + echo "::error::container exited early" + docker logs efp-devnet + exit 1 + fi + sleep 1 + done + echo "::error::devnet did not become healthy" + docker logs efp-devnet + exit 1 + + - name: Tear down smoke test + if: always() + run: docker rm -f efp-devnet || true + + - name: Log in to GHCR + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Push image + if: github.event_name != 'pull_request' + run: docker push --all-tags "${IMAGE}" From c644b32fc73ed335326c35777270c9e4fa440b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nejc=20Drobni=C4=8D?= Date: Sat, 30 May 2026 16:50:49 +0200 Subject: [PATCH 10/30] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/build-devnet.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-devnet.yml b/.github/workflows/build-devnet.yml index 2175a8d..be40b14 100644 --- a/.github/workflows/build-devnet.yml +++ b/.github/workflows/build-devnet.yml @@ -10,6 +10,8 @@ on: - 'lib/**' - 'generated/**' - 'Dockerfile.devnet' + - 'compose.yml' + - 'compose.attach.yml' - 'foundry.toml' - 'package.json' - 'bun.lockb' From 22cad8097db2f0fe602608a0586dc41f7b21b298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nejc=20Drobni=C4=8D?= Date: Sat, 30 May 2026 16:51:36 +0200 Subject: [PATCH 11/30] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- scripts/devnet/shutdown.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/devnet/shutdown.ts b/scripts/devnet/shutdown.ts index 0c8769a..6a9f376 100644 --- a/scripts/devnet/shutdown.ts +++ b/scripts/devnet/shutdown.ts @@ -5,14 +5,14 @@ export function onShutdown(finalizer: () => void | Promise) { finalizers.push(finalizer) } -async function shutdown(signal?: string) { +async function shutdown(signal?: string, exitCode = 0) { if (shuttingDown) return shuttingDown = true if (signal) console.log(`\nShutting down (${signal})...`) await Promise.allSettled(finalizers.map((fn) => fn())) - process.exit(0) + process.exit(exitCode) } export function registerShutdownHandlers() { @@ -20,10 +20,10 @@ export function registerShutdownHandlers() { process.once('SIGTERM', () => void shutdown('SIGTERM')) process.once('uncaughtException', async (error) => { console.error(error) - await shutdown('uncaughtException') - throw error + await shutdown('uncaughtException', 1) }) } +} export async function keepAlive() { await new Promise(() => {}) From 2041d7e368e11a8445f6ba38f9d868f7e46796e7 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:54:59 +0200 Subject: [PATCH 12/30] chore(bun): update lockfile format to bun.lock Bun 1.x transitioned from a binary `bun.lockb` to a human-readable `bun.lock` file. This updates the project to use the new text-based lockfile format and adjusts the CI workflow accordingly for better diffing and consistency. --- .github/workflows/build-devnet.yml | 2 +- bun.lock | 1408 ++++++++++++++++++++++++++++ bun.lockb | Bin 461446 -> 0 bytes 3 files changed, 1409 insertions(+), 1 deletion(-) create mode 100644 bun.lock delete mode 100755 bun.lockb diff --git a/.github/workflows/build-devnet.yml b/.github/workflows/build-devnet.yml index be40b14..645f61a 100644 --- a/.github/workflows/build-devnet.yml +++ b/.github/workflows/build-devnet.yml @@ -14,7 +14,7 @@ on: - 'compose.attach.yml' - 'foundry.toml' - 'package.json' - - 'bun.lockb' + - 'bun.lock' - '.github/workflows/build-devnet.yml' workflow_dispatch: diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..7dabd7b --- /dev/null +++ b/bun.lock @@ -0,0 +1,1408 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "beta-contracts", + "dependencies": { + "@wagmi/cli": "^2.0.4", + "prool": "^0.2.4", + "viem": "^2.9.29", + "wagmi": "^2.3.1", + }, + "devDependencies": { + "@types/bun": "^1.0.2", + "@types/node": "^20.11.5", + "prettier": "^3.2.4", + "solc": "^0.8.23", + "solhint": "^4.1.1", + "typescript": "^5.3.3", + }, + }, + }, + "packages": { + "@adraffy/ens-normalize": ["@adraffy/ens-normalize@1.11.1", "", {}, "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ=="], + + "@babel/code-frame": ["@babel/code-frame@7.29.7", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.29.7", "", {}, "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg=="], + + "@babel/runtime": ["@babel/runtime@7.29.7", "", {}, "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw=="], + + "@base-org/account": ["@base-org/account@2.4.0", "", { "dependencies": { "@coinbase/cdp-sdk": "^1.0.0", "@noble/hashes": "1.4.0", "clsx": "1.2.1", "eventemitter3": "5.0.1", "idb-keyval": "6.2.1", "ox": "0.6.9", "preact": "10.24.2", "viem": "^2.31.7", "zustand": "5.0.3" } }, "sha512-A4Umpi8B9/pqR78D1Yoze4xHyQaujioVRqqO3d6xuDFw9VRtjg6tK3bPlwE0aW+nVH/ntllCpPa2PbI8Rnjcug=="], + + "@coinbase/cdp-sdk": ["@coinbase/cdp-sdk@1.51.0", "", { "dependencies": { "@solana-program/system": "^0.10.0", "@solana-program/token": "^0.9.0", "@solana/kit": "^5.5.1", "abitype": "1.0.6", "axios": "1.16.0", "axios-retry": "^4.5.0", "bs58": "^6.0.0", "jose": "^6.2.0", "md5": "^2.3.0", "uncrypto": "^0.1.3", "viem": "^2.47.0", "zod": "^3.25.76" } }, "sha512-XK8+OXDER1jirYpuiOct4ij65ODQ31LsmyRrZi/J7zF4GB89qxWZ0KPfAdsqJMP7VvE4no+Q++MKkQtAJUBoyg=="], + + "@coinbase/wallet-sdk": ["@coinbase/wallet-sdk@4.3.6", "", { "dependencies": { "@noble/hashes": "1.4.0", "clsx": "1.2.1", "eventemitter3": "5.0.1", "idb-keyval": "6.2.1", "ox": "0.6.9", "preact": "10.24.2", "viem": "^2.27.2", "zustand": "5.0.3" } }, "sha512-4q8BNG1ViL4mSAAvPAtpwlOs1gpC+67eQtgIwNvT3xyeyFFd+guwkc8bcX5rTmQhXpqnhzC4f0obACbP9CqMSA=="], + + "@ecies/ciphers": ["@ecies/ciphers@0.2.6", "", { "peerDependencies": { "@noble/ciphers": "^1.0.0" } }, "sha512-patgsRPKGkhhoBjETV4XxD0En4ui5fbX0hzayqI3M8tvNMGUoUvmyYAIWwlxBc1KX5cturfqByYdj5bYGRpN9g=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], + + "@ethereumjs/common": ["@ethereumjs/common@3.2.0", "", { "dependencies": { "@ethereumjs/util": "^8.1.0", "crc-32": "^1.2.0" } }, "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA=="], + + "@ethereumjs/rlp": ["@ethereumjs/rlp@4.0.1", "", { "bin": { "rlp": "bin/rlp" } }, "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw=="], + + "@ethereumjs/tx": ["@ethereumjs/tx@4.2.0", "", { "dependencies": { "@ethereumjs/common": "^3.2.0", "@ethereumjs/rlp": "^4.0.1", "@ethereumjs/util": "^8.1.0", "ethereum-cryptography": "^2.0.0" } }, "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw=="], + + "@ethereumjs/util": ["@ethereumjs/util@8.1.0", "", { "dependencies": { "@ethereumjs/rlp": "^4.0.1", "ethereum-cryptography": "^2.0.0", "micro-ftch": "^0.3.1" } }, "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA=="], + + "@gemini-wallet/core": ["@gemini-wallet/core@0.3.2", "", { "dependencies": { "@metamask/rpc-errors": "7.0.2", "eventemitter3": "5.0.1" }, "peerDependencies": { "viem": ">=2.0.0" } }, "sha512-Z4aHi3ECFf5oWYWM3F1rW83GJfB9OvhBYPTmb5q+VyK3uvzvS48lwo+jwh2eOoCRWEuT/crpb9Vwp2QaS5JqgQ=="], + + "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], + + "@lit-labs/ssr-dom-shim": ["@lit-labs/ssr-dom-shim@1.6.0", "", {}, "sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ=="], + + "@lit/reactive-element": ["@lit/reactive-element@2.1.2", "", { "dependencies": { "@lit-labs/ssr-dom-shim": "^1.5.0" } }, "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A=="], + + "@metamask/eth-json-rpc-provider": ["@metamask/eth-json-rpc-provider@1.0.1", "", { "dependencies": { "@metamask/json-rpc-engine": "^7.0.0", "@metamask/safe-event-emitter": "^3.0.0", "@metamask/utils": "^5.0.1" } }, "sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA=="], + + "@metamask/json-rpc-engine": ["@metamask/json-rpc-engine@8.0.2", "", { "dependencies": { "@metamask/rpc-errors": "^6.2.1", "@metamask/safe-event-emitter": "^3.0.0", "@metamask/utils": "^8.3.0" } }, "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA=="], + + "@metamask/json-rpc-middleware-stream": ["@metamask/json-rpc-middleware-stream@7.0.2", "", { "dependencies": { "@metamask/json-rpc-engine": "^8.0.2", "@metamask/safe-event-emitter": "^3.0.0", "@metamask/utils": "^8.3.0", "readable-stream": "^3.6.2" } }, "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg=="], + + "@metamask/object-multiplex": ["@metamask/object-multiplex@2.1.0", "", { "dependencies": { "once": "^1.4.0", "readable-stream": "^3.6.2" } }, "sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA=="], + + "@metamask/onboarding": ["@metamask/onboarding@1.0.1", "", { "dependencies": { "bowser": "^2.9.0" } }, "sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ=="], + + "@metamask/providers": ["@metamask/providers@16.1.0", "", { "dependencies": { "@metamask/json-rpc-engine": "^8.0.1", "@metamask/json-rpc-middleware-stream": "^7.0.1", "@metamask/object-multiplex": "^2.0.0", "@metamask/rpc-errors": "^6.2.1", "@metamask/safe-event-emitter": "^3.1.1", "@metamask/utils": "^8.3.0", "detect-browser": "^5.2.0", "extension-port-stream": "^3.0.0", "fast-deep-equal": "^3.1.3", "is-stream": "^2.0.0", "readable-stream": "^3.6.2", "webextension-polyfill": "^0.10.0" } }, "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g=="], + + "@metamask/rpc-errors": ["@metamask/rpc-errors@7.0.2", "", { "dependencies": { "@metamask/utils": "^11.0.1", "fast-safe-stringify": "^2.0.6" } }, "sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw=="], + + "@metamask/safe-event-emitter": ["@metamask/safe-event-emitter@3.1.2", "", {}, "sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA=="], + + "@metamask/sdk": ["@metamask/sdk@0.33.1", "", { "dependencies": { "@babel/runtime": "^7.26.0", "@metamask/onboarding": "^1.0.1", "@metamask/providers": "16.1.0", "@metamask/sdk-analytics": "0.0.5", "@metamask/sdk-communication-layer": "0.33.1", "@metamask/sdk-install-modal-web": "0.32.1", "@paulmillr/qr": "^0.2.1", "bowser": "^2.9.0", "cross-fetch": "^4.0.0", "debug": "4.3.4", "eciesjs": "^0.4.11", "eth-rpc-errors": "^4.0.3", "eventemitter2": "^6.4.9", "obj-multiplex": "^1.0.0", "pump": "^3.0.0", "readable-stream": "^3.6.2", "socket.io-client": "^4.5.1", "tslib": "^2.6.0", "util": "^0.12.4", "uuid": "^8.3.2" } }, "sha512-1mcOQVGr9rSrVcbKPNVzbZ8eCl1K0FATsYH3WJ/MH4WcZDWGECWrXJPNMZoEAkLxWiMe8jOQBumg2pmcDa9zpQ=="], + + "@metamask/sdk-analytics": ["@metamask/sdk-analytics@0.0.5", "", { "dependencies": { "openapi-fetch": "^0.13.5" } }, "sha512-fDah+keS1RjSUlC8GmYXvx6Y26s3Ax1U9hGpWb6GSY5SAdmTSIqp2CvYy6yW0WgLhnYhW+6xERuD0eVqV63QIQ=="], + + "@metamask/sdk-communication-layer": ["@metamask/sdk-communication-layer@0.33.1", "", { "dependencies": { "@metamask/sdk-analytics": "0.0.5", "bufferutil": "^4.0.8", "date-fns": "^2.29.3", "debug": "4.3.4", "utf-8-validate": "^5.0.2", "uuid": "^8.3.2" }, "peerDependencies": { "cross-fetch": "^4.0.0", "eciesjs": "*", "eventemitter2": "^6.4.9", "readable-stream": "^3.6.2", "socket.io-client": "^4.5.1" } }, "sha512-0bI9hkysxcfbZ/lk0T2+aKVo1j0ynQVTuB3sJ5ssPWlz+Z3VwveCkP1O7EVu1tsVVCb0YV5WxK9zmURu2FIiaA=="], + + "@metamask/sdk-install-modal-web": ["@metamask/sdk-install-modal-web@0.32.1", "", { "dependencies": { "@paulmillr/qr": "^0.2.1" } }, "sha512-MGmAo6qSjf1tuYXhCu2EZLftq+DSt5Z7fsIKr2P+lDgdTPWgLfZB1tJKzNcwKKOdf6q9Qmmxn7lJuI/gq5LrKw=="], + + "@metamask/superstruct": ["@metamask/superstruct@3.2.1", "", {}, "sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g=="], + + "@metamask/utils": ["@metamask/utils@11.11.0", "", { "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.1.0", "@noble/hashes": "^1.3.1", "@scure/base": "^1.1.3", "@types/debug": "^4.1.7", "@types/lodash": "^4.17.20", "debug": "^4.3.4", "lodash": "^4.17.21", "pony-cause": "^2.1.10", "semver": "^7.5.4", "uuid": "^9.0.1" } }, "sha512-0nF2CWjWQr/m0Y2t2lJnBTU1/CZPPTvKvcESLplyWe/tyeb8zFOi/FeneDmaFnML6LYRIGZU6f+xR0jKAIUZfw=="], + + "@noble/ciphers": ["@noble/ciphers@1.3.0", "", {}, "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw=="], + + "@noble/curves": ["@noble/curves@1.9.1", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA=="], + + "@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@paulmillr/qr": ["@paulmillr/qr@0.2.1", "", {}, "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ=="], + + "@pnpm/config.env-replace": ["@pnpm/config.env-replace@1.1.0", "", {}, "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w=="], + + "@pnpm/network.ca-file": ["@pnpm/network.ca-file@1.0.2", "", { "dependencies": { "graceful-fs": "4.2.10" } }, "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA=="], + + "@pnpm/npm-conf": ["@pnpm/npm-conf@3.0.2", "", { "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" } }, "sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA=="], + + "@reown/appkit": ["@reown/appkit@1.7.8", "", { "dependencies": { "@reown/appkit-common": "1.7.8", "@reown/appkit-controllers": "1.7.8", "@reown/appkit-pay": "1.7.8", "@reown/appkit-polyfills": "1.7.8", "@reown/appkit-scaffold-ui": "1.7.8", "@reown/appkit-ui": "1.7.8", "@reown/appkit-utils": "1.7.8", "@reown/appkit-wallet": "1.7.8", "@walletconnect/types": "2.21.0", "@walletconnect/universal-provider": "2.21.0", "bs58": "6.0.0", "valtio": "1.13.2", "viem": ">=2.29.0" } }, "sha512-51kTleozhA618T1UvMghkhKfaPcc9JlKwLJ5uV+riHyvSoWPKPRIa5A6M1Wano5puNyW0s3fwywhyqTHSilkaA=="], + + "@reown/appkit-common": ["@reown/appkit-common@1.7.8", "", { "dependencies": { "big.js": "6.2.2", "dayjs": "1.11.13", "viem": ">=2.29.0" } }, "sha512-ridIhc/x6JOp7KbDdwGKY4zwf8/iK8EYBl+HtWrruutSLwZyVi5P8WaZa+8iajL6LcDcDF7LoyLwMTym7SRuwQ=="], + + "@reown/appkit-controllers": ["@reown/appkit-controllers@1.7.8", "", { "dependencies": { "@reown/appkit-common": "1.7.8", "@reown/appkit-wallet": "1.7.8", "@walletconnect/universal-provider": "2.21.0", "valtio": "1.13.2", "viem": ">=2.29.0" } }, "sha512-IdXlJlivrlj6m63VsGLsjtPHHsTWvKGVzWIP1fXZHVqmK+rZCBDjCi9j267Rb9/nYRGHWBtlFQhO8dK35WfeDA=="], + + "@reown/appkit-pay": ["@reown/appkit-pay@1.7.8", "", { "dependencies": { "@reown/appkit-common": "1.7.8", "@reown/appkit-controllers": "1.7.8", "@reown/appkit-ui": "1.7.8", "@reown/appkit-utils": "1.7.8", "lit": "3.3.0", "valtio": "1.13.2" } }, "sha512-OSGQ+QJkXx0FEEjlpQqIhT8zGJKOoHzVnyy/0QFrl3WrQTjCzg0L6+i91Ad5Iy1zb6V5JjqtfIFpRVRWN4M3pw=="], + + "@reown/appkit-polyfills": ["@reown/appkit-polyfills@1.7.8", "", { "dependencies": { "buffer": "6.0.3" } }, "sha512-W/kq786dcHHAuJ3IV2prRLEgD/2iOey4ueMHf1sIFjhhCGMynMkhsOhQMUH0tzodPqUgAC494z4bpIDYjwWXaA=="], + + "@reown/appkit-scaffold-ui": ["@reown/appkit-scaffold-ui@1.7.8", "", { "dependencies": { "@reown/appkit-common": "1.7.8", "@reown/appkit-controllers": "1.7.8", "@reown/appkit-ui": "1.7.8", "@reown/appkit-utils": "1.7.8", "@reown/appkit-wallet": "1.7.8", "lit": "3.3.0" } }, "sha512-RCeHhAwOrIgcvHwYlNWMcIDibdI91waaoEYBGw71inE0kDB8uZbE7tE6DAXJmDkvl0qPh+DqlC4QbJLF1FVYdQ=="], + + "@reown/appkit-ui": ["@reown/appkit-ui@1.7.8", "", { "dependencies": { "@reown/appkit-common": "1.7.8", "@reown/appkit-controllers": "1.7.8", "@reown/appkit-wallet": "1.7.8", "lit": "3.3.0", "qrcode": "1.5.3" } }, "sha512-1hjCKjf6FLMFzrulhl0Y9Vb9Fu4royE+SXCPSWh4VhZhWqlzUFc7kutnZKx8XZFVQH4pbBvY62SpRC93gqoHow=="], + + "@reown/appkit-utils": ["@reown/appkit-utils@1.7.8", "", { "dependencies": { "@reown/appkit-common": "1.7.8", "@reown/appkit-controllers": "1.7.8", "@reown/appkit-polyfills": "1.7.8", "@reown/appkit-wallet": "1.7.8", "@walletconnect/logger": "2.1.2", "@walletconnect/universal-provider": "2.21.0", "valtio": "1.13.2", "viem": ">=2.29.0" } }, "sha512-8X7UvmE8GiaoitCwNoB86pttHgQtzy4ryHZM9kQpvjQ0ULpiER44t1qpVLXNM4X35O0v18W0Dk60DnYRMH2WRw=="], + + "@reown/appkit-wallet": ["@reown/appkit-wallet@1.7.8", "", { "dependencies": { "@reown/appkit-common": "1.7.8", "@reown/appkit-polyfills": "1.7.8", "@walletconnect/logger": "2.1.2", "zod": "3.22.4" } }, "sha512-kspz32EwHIOT/eg/ZQbFPxgXq0B/olDOj3YMu7gvLEFz4xyOFd/wgzxxAXkp5LbG4Cp++s/elh79rVNmVFdB9A=="], + + "@safe-global/safe-apps-provider": ["@safe-global/safe-apps-provider@0.18.6", "", { "dependencies": { "@safe-global/safe-apps-sdk": "^9.1.0", "events": "^3.3.0" } }, "sha512-4LhMmjPWlIO8TTDC2AwLk44XKXaK6hfBTWyljDm0HQ6TWlOEijVWNrt2s3OCVMSxlXAcEzYfqyu1daHZooTC2Q=="], + + "@safe-global/safe-apps-sdk": ["@safe-global/safe-apps-sdk@9.1.0", "", { "dependencies": { "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", "viem": "^2.1.1" } }, "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q=="], + + "@safe-global/safe-gateway-typescript-sdk": ["@safe-global/safe-gateway-typescript-sdk@3.23.1", "", {}, "sha512-6ORQfwtEJYpalCeVO21L4XXGSdbEMfyp2hEv6cP82afKXSwvse6d3sdelgaPWUxHIsFRkWvHDdzh8IyyKHZKxw=="], + + "@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], + + "@scure/bip32": ["@scure/bip32@1.7.0", "", { "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw=="], + + "@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], + + "@sec-ant/readable-stream": ["@sec-ant/readable-stream@0.4.1", "", {}, "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg=="], + + "@sindresorhus/is": ["@sindresorhus/is@5.6.0", "", {}, "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g=="], + + "@sindresorhus/merge-streams": ["@sindresorhus/merge-streams@4.0.0", "", {}, "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ=="], + + "@socket.io/component-emitter": ["@socket.io/component-emitter@3.1.2", "", {}, "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="], + + "@solana-program/system": ["@solana-program/system@0.10.0", "", { "peerDependencies": { "@solana/kit": "^5.0" } }, "sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g=="], + + "@solana-program/token": ["@solana-program/token@0.9.0", "", { "peerDependencies": { "@solana/kit": "^5.0" } }, "sha512-vnZxndd4ED4Fc56sw93cWZ2djEeeOFxtaPS8SPf5+a+JZjKA/EnKqzbE1y04FuMhIVrLERQ8uR8H2h72eZzlsA=="], + + "@solana/accounts": ["@solana/accounts@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1", "@solana/rpc-spec": "5.5.1", "@solana/rpc-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-TfOY9xixg5rizABuLVuZ9XI2x2tmWUC/OoN556xwfDlhBHBjKfszicYYOyD6nbFmwTGYarCmyGIdteXxTXIdhQ=="], + + "@solana/addresses": ["@solana/addresses@5.5.1", "", { "dependencies": { "@solana/assertions": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1", "@solana/nominal-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-5xoah3Q9G30HQghu/9BiHLb5pzlPKRC3zydQDmE3O9H//WfayxTFppsUDCL6FjYUHqj/wzK6CWHySglc2RkpdA=="], + + "@solana/assertions": ["@solana/assertions@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-YTCSWAlGwSlVPnWtWLm3ukz81wH4j2YaCveK+TjpvUU88hTy6fmUqxi0+hvAMAe4zKXpJyj3Az7BrLJRxbIm4Q=="], + + "@solana/codecs": ["@solana/codecs@5.5.1", "", { "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/codecs-data-structures": "5.5.1", "@solana/codecs-numbers": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/options": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-Vea29nJub/bXjfzEV7ZZQ/PWr1pYLZo3z0qW0LQL37uKKVzVFRQlwetd7INk3YtTD3xm9WUYr7bCvYUk3uKy2g=="], + + "@solana/codecs-core": ["@solana/codecs-core@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-TgBt//bbKBct0t6/MpA8ElaOA3sa8eYVvR7LGslCZ84WiAwwjCY0lW/lOYsFHJQzwREMdUyuEyy5YWBKtdh8Rw=="], + + "@solana/codecs-data-structures": ["@solana/codecs-data-structures@5.5.1", "", { "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/codecs-numbers": "5.5.1", "@solana/errors": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-97bJWGyUY9WvBz3mX1UV3YPWGDTez6btCfD0ip3UVEXJbItVuUiOkzcO5iFDUtQT5riKT6xC+Mzl+0nO76gd0w=="], + + "@solana/codecs-numbers": ["@solana/codecs-numbers@5.5.1", "", { "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/errors": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-rllMIZAHqmtvC0HO/dc/21wDuWaD0B8Ryv8o+YtsICQBuiL/0U4AGwH7Pi5GNFySYk0/crSuwfIqQFtmxNSPFw=="], + + "@solana/codecs-strings": ["@solana/codecs-strings@5.5.1", "", { "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/codecs-numbers": "5.5.1", "@solana/errors": "5.5.1" }, "peerDependencies": { "fastestsmallesttextencoderdecoder": "^1.0.22", "typescript": "^5.0.0" }, "optionalPeers": ["fastestsmallesttextencoderdecoder", "typescript"] }, "sha512-7klX4AhfHYA+uKKC/nxRGP2MntbYQCR3N6+v7bk1W/rSxYuhNmt+FN8aoThSZtWIKwN6BEyR1167ka8Co1+E7A=="], + + "@solana/errors": ["@solana/errors@5.5.1", "", { "dependencies": { "chalk": "5.6.2", "commander": "14.0.2" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"], "bin": { "errors": "bin/cli.mjs" } }, "sha512-vFO3p+S7HoyyrcAectnXbdsMfwUzY2zYFUc2DEe5BwpiE9J1IAxPBGjOWO6hL1bbYdBrlmjNx8DXCslqS+Kcmg=="], + + "@solana/fast-stable-stringify": ["@solana/fast-stable-stringify@5.5.1", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-Ni7s2FN33zTzhTFgRjEbOVFO+UAmK8qi3Iu0/GRFYK4jN696OjKHnboSQH/EacQ+yGqS54bfxf409wU5dsLLCw=="], + + "@solana/functional": ["@solana/functional@5.5.1", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-tTHoJcEQq3gQx5qsdsDJ0LEJeFzwNpXD80xApW9o/PPoCNimI3SALkZl+zNW8VnxRrV3l3yYvfHWBKe/X3WG3w=="], + + "@solana/instruction-plans": ["@solana/instruction-plans@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1", "@solana/instructions": "5.5.1", "@solana/keys": "5.5.1", "@solana/promises": "5.5.1", "@solana/transaction-messages": "5.5.1", "@solana/transactions": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-7z3CB7YMcFKuVvgcnNY8bY6IsZ8LG61Iytbz7HpNVGX2u1RthOs1tRW8luTzSG1MPL0Ox7afyAVMYeFqSPHnaQ=="], + + "@solana/instructions": ["@solana/instructions@5.5.1", "", { "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/errors": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-h0G1CG6S+gUUSt0eo6rOtsaXRBwCq1+Js2a+Ps9Bzk9q7YHNFA75/X0NWugWLgC92waRp66hrjMTiYYnLBoWOQ=="], + + "@solana/keys": ["@solana/keys@5.5.1", "", { "dependencies": { "@solana/assertions": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1", "@solana/nominal-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-KRD61cL7CRL+b4r/eB9dEoVxIf/2EJ1Pm1DmRYhtSUAJD2dJ5Xw8QFuehobOGm9URqQ7gaQl+Fkc1qvDlsWqKg=="], + + "@solana/kit": ["@solana/kit@5.5.1", "", { "dependencies": { "@solana/accounts": "5.5.1", "@solana/addresses": "5.5.1", "@solana/codecs": "5.5.1", "@solana/errors": "5.5.1", "@solana/functional": "5.5.1", "@solana/instruction-plans": "5.5.1", "@solana/instructions": "5.5.1", "@solana/keys": "5.5.1", "@solana/offchain-messages": "5.5.1", "@solana/plugin-core": "5.5.1", "@solana/programs": "5.5.1", "@solana/rpc": "5.5.1", "@solana/rpc-api": "5.5.1", "@solana/rpc-parsed-types": "5.5.1", "@solana/rpc-spec-types": "5.5.1", "@solana/rpc-subscriptions": "5.5.1", "@solana/rpc-types": "5.5.1", "@solana/signers": "5.5.1", "@solana/sysvars": "5.5.1", "@solana/transaction-confirmation": "5.5.1", "@solana/transaction-messages": "5.5.1", "@solana/transactions": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-irKUGiV2yRoyf+4eGQ/ZeCRxa43yjFEL1DUI5B0DkcfZw3cr0VJtVJnrG8OtVF01vT0OUfYOcUn6zJW5TROHvQ=="], + + "@solana/nominal-types": ["@solana/nominal-types@5.5.1", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-I1ImR+kfrLFxN5z22UDiTWLdRZeKtU0J/pkWkO8qm/8WxveiwdIv4hooi8pb6JnlR4mSrWhq0pCIOxDYrL9GIQ=="], + + "@solana/offchain-messages": ["@solana/offchain-messages@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/codecs-data-structures": "5.5.1", "@solana/codecs-numbers": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1", "@solana/keys": "5.5.1", "@solana/nominal-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-g+xHH95prTU+KujtbOzj8wn+C7ZNoiLhf3hj6nYq3MTyxOXtBEysguc97jJveUZG0K97aIKG6xVUlMutg5yxhw=="], + + "@solana/options": ["@solana/options@5.5.1", "", { "dependencies": { "@solana/codecs-core": "5.5.1", "@solana/codecs-data-structures": "5.5.1", "@solana/codecs-numbers": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-eo971c9iLNLmk+yOFyo7yKIJzJ/zou6uKpy6mBuyb/thKtS/haiKIc3VLhyTXty3OH2PW8yOlORJnv4DexJB8A=="], + + "@solana/plugin-core": ["@solana/plugin-core@5.5.1", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-VUZl30lDQFJeiSyNfzU1EjYt2QZvoBFKEwjn1lilUJw7KgqD5z7mbV7diJhT+dLFs36i0OsjXvq5kSygn8YJ3A=="], + + "@solana/programs": ["@solana/programs@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/errors": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-7U9kn0Jsx1NuBLn5HRTFYh78MV4XN145Yc3WP/q5BlqAVNlMoU9coG5IUTJIG847TUqC1lRto3Dnpwm6T4YRpA=="], + + "@solana/promises": ["@solana/promises@5.5.1", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-T9lfuUYkGykJmppEcssNiCf6yiYQxJkhiLPP+pyAc2z84/7r3UVIb2tNJk4A9sucS66pzJnVHZKcZVGUUp6wzA=="], + + "@solana/rpc": ["@solana/rpc@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1", "@solana/fast-stable-stringify": "5.5.1", "@solana/functional": "5.5.1", "@solana/rpc-api": "5.5.1", "@solana/rpc-spec": "5.5.1", "@solana/rpc-spec-types": "5.5.1", "@solana/rpc-transformers": "5.5.1", "@solana/rpc-transport-http": "5.5.1", "@solana/rpc-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-ku8zTUMrkCWci66PRIBC+1mXepEnZH/q1f3ck0kJZ95a06bOTl5KU7HeXWtskkyefzARJ5zvCs54AD5nxjQJ+A=="], + + "@solana/rpc-api": ["@solana/rpc-api@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1", "@solana/keys": "5.5.1", "@solana/rpc-parsed-types": "5.5.1", "@solana/rpc-spec": "5.5.1", "@solana/rpc-transformers": "5.5.1", "@solana/rpc-types": "5.5.1", "@solana/transaction-messages": "5.5.1", "@solana/transactions": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-XWOQQPhKl06Vj0xi3RYHAc6oEQd8B82okYJ04K7N0Vvy3J4PN2cxeK7klwkjgavdcN9EVkYCChm2ADAtnztKnA=="], + + "@solana/rpc-parsed-types": ["@solana/rpc-parsed-types@5.5.1", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-HEi3G2nZqGEsa3vX6U0FrXLaqnUCg4SKIUrOe8CezD+cSFbRTOn3rCLrUmJrhVyXlHoQVaRO9mmeovk31jWxJg=="], + + "@solana/rpc-spec": ["@solana/rpc-spec@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1", "@solana/rpc-spec-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-m3LX2bChm3E3by4mQrH4YwCAFY57QBzuUSWqlUw7ChuZ+oLLOq7b2czi4i6L4Vna67j3eCmB3e+4tqy1j5wy7Q=="], + + "@solana/rpc-spec-types": ["@solana/rpc-spec-types@5.5.1", "", { "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-6OFKtRpIEJQs8Jb2C4OO8KyP2h2Hy1MFhatMAoXA+0Ik8S3H+CicIuMZvGZ91mIu/tXicuOOsNNLu3HAkrakrw=="], + + "@solana/rpc-subscriptions": ["@solana/rpc-subscriptions@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1", "@solana/fast-stable-stringify": "5.5.1", "@solana/functional": "5.5.1", "@solana/promises": "5.5.1", "@solana/rpc-spec-types": "5.5.1", "@solana/rpc-subscriptions-api": "5.5.1", "@solana/rpc-subscriptions-channel-websocket": "5.5.1", "@solana/rpc-subscriptions-spec": "5.5.1", "@solana/rpc-transformers": "5.5.1", "@solana/rpc-types": "5.5.1", "@solana/subscribable": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-CTMy5bt/6mDh4tc6vUJms9EcuZj3xvK0/xq8IQ90rhkpYvate91RjBP+egvjgSayUg9yucU9vNuUpEjz4spM7w=="], + + "@solana/rpc-subscriptions-api": ["@solana/rpc-subscriptions-api@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/keys": "5.5.1", "@solana/rpc-subscriptions-spec": "5.5.1", "@solana/rpc-transformers": "5.5.1", "@solana/rpc-types": "5.5.1", "@solana/transaction-messages": "5.5.1", "@solana/transactions": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-5Oi7k+GdeS8xR2ly1iuSFkAv6CZqwG0Z6b1QZKbEgxadE1XGSDrhM2cn59l+bqCozUWCqh4c/A2znU/qQjROlw=="], + + "@solana/rpc-subscriptions-channel-websocket": ["@solana/rpc-subscriptions-channel-websocket@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1", "@solana/functional": "5.5.1", "@solana/rpc-subscriptions-spec": "5.5.1", "@solana/subscribable": "5.5.1", "ws": "^8.19.0" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-7tGfBBrYY8TrngOyxSHoCU5shy86iA9SRMRrPSyBhEaZRAk6dnbdpmUTez7gtdVo0BCvh9nzQtUycKWSS7PnFQ=="], + + "@solana/rpc-subscriptions-spec": ["@solana/rpc-subscriptions-spec@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1", "@solana/promises": "5.5.1", "@solana/rpc-spec-types": "5.5.1", "@solana/subscribable": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-iq+rGq5fMKP3/mKHPNB6MC8IbVW41KGZg83Us/+LE3AWOTWV1WT20KT2iH1F1ik9roi42COv/TpoZZvhKj45XQ=="], + + "@solana/rpc-transformers": ["@solana/rpc-transformers@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1", "@solana/functional": "5.5.1", "@solana/nominal-types": "5.5.1", "@solana/rpc-spec-types": "5.5.1", "@solana/rpc-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-OsWqLCQdcrRJKvHiMmwFhp9noNZ4FARuMkHT5us3ustDLXaxOjF0gfqZLnMkulSLcKt7TGXqMhBV+HCo7z5M8Q=="], + + "@solana/rpc-transport-http": ["@solana/rpc-transport-http@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1", "@solana/rpc-spec": "5.5.1", "@solana/rpc-spec-types": "5.5.1", "undici-types": "^7.19.2" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-yv8GoVSHqEV0kUJEIhkdOVkR2SvJ6yoWC51cJn2rSV7plr6huLGe0JgujCmB7uZhhaLbcbP3zxXxu9sOjsi7Fg=="], + + "@solana/rpc-types": ["@solana/rpc-types@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/codecs-numbers": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1", "@solana/nominal-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-bibTFQ7PbHJJjGJPmfYC2I+/5CRFS4O2p9WwbFraX1Keeel+nRrt/NBXIy8veP5AEn2sVJIyJPpWBRpCx1oATA=="], + + "@solana/signers": ["@solana/signers@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/errors": "5.5.1", "@solana/instructions": "5.5.1", "@solana/keys": "5.5.1", "@solana/nominal-types": "5.5.1", "@solana/offchain-messages": "5.5.1", "@solana/transaction-messages": "5.5.1", "@solana/transactions": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-FY0IVaBT2kCAze55vEieR6hag4coqcuJ31Aw3hqRH7mv6sV8oqwuJmUrx+uFwOp1gwd5OEAzlv6N4hOOple4sQ=="], + + "@solana/subscribable": ["@solana/subscribable@5.5.1", "", { "dependencies": { "@solana/errors": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-9K0PsynFq0CsmK1CDi5Y2vUIJpCqkgSS5yfDN0eKPgHqEptLEaia09Kaxc90cSZDZU5mKY/zv1NBmB6Aro9zQQ=="], + + "@solana/sysvars": ["@solana/sysvars@5.5.1", "", { "dependencies": { "@solana/accounts": "5.5.1", "@solana/codecs": "5.5.1", "@solana/errors": "5.5.1", "@solana/rpc-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-k3Quq87Mm+geGUu1GWv6knPk0ALsfY6EKSJGw9xUJDHzY/RkYSBnh0RiOrUhtFm2TDNjOailg8/m0VHmi3reFA=="], + + "@solana/transaction-confirmation": ["@solana/transaction-confirmation@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1", "@solana/keys": "5.5.1", "@solana/promises": "5.5.1", "@solana/rpc": "5.5.1", "@solana/rpc-subscriptions": "5.5.1", "@solana/rpc-types": "5.5.1", "@solana/transaction-messages": "5.5.1", "@solana/transactions": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-j4mKlYPHEyu+OD7MBt3jRoX4ScFgkhZC6H65on4Fux6LMScgivPJlwnKoZMnsgxFgWds0pl+BYzSiALDsXlYtw=="], + + "@solana/transaction-messages": ["@solana/transaction-messages@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/codecs-data-structures": "5.5.1", "@solana/codecs-numbers": "5.5.1", "@solana/errors": "5.5.1", "@solana/functional": "5.5.1", "@solana/instructions": "5.5.1", "@solana/nominal-types": "5.5.1", "@solana/rpc-types": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-aXyhMCEaAp3M/4fP0akwBBQkFPr4pfwoC5CLDq999r/FUwDax2RE/h4Ic7h2Xk+JdcUwsb+rLq85Y52hq84XvQ=="], + + "@solana/transactions": ["@solana/transactions@5.5.1", "", { "dependencies": { "@solana/addresses": "5.5.1", "@solana/codecs-core": "5.5.1", "@solana/codecs-data-structures": "5.5.1", "@solana/codecs-numbers": "5.5.1", "@solana/codecs-strings": "5.5.1", "@solana/errors": "5.5.1", "@solana/functional": "5.5.1", "@solana/instructions": "5.5.1", "@solana/keys": "5.5.1", "@solana/nominal-types": "5.5.1", "@solana/rpc-types": "5.5.1", "@solana/transaction-messages": "5.5.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-8hHtDxtqalZ157pnx6p8k10D7J/KY/biLzfgh9R09VNLLY3Fqi7kJvJCr7M2ik3oRll56pxhraAGCC9yIT6eOA=="], + + "@solidity-parser/parser": ["@solidity-parser/parser@0.18.0", "", {}, "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA=="], + + "@szmarczak/http-timer": ["@szmarczak/http-timer@5.0.1", "", { "dependencies": { "defer-to-connect": "^2.0.1" } }, "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw=="], + + "@tanstack/query-core": ["@tanstack/query-core@5.100.14", "", {}, "sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew=="], + + "@tanstack/react-query": ["@tanstack/react-query@5.100.14", "", { "dependencies": { "@tanstack/query-core": "5.100.14" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-oOr6aRdSFEwWhzxEkD/9ZcItM3+LjBSkeVmadWKwUssAHTsqd/7bOjWrX4AbvEkoEhgAxzN0Xk6H/aYzXiYBAw=="], + + "@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="], + + "@types/debug": ["@types/debug@4.1.13", "", { "dependencies": { "@types/ms": "*" } }, "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw=="], + + "@types/http-cache-semantics": ["@types/http-cache-semantics@4.2.0", "", {}, "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q=="], + + "@types/lodash": ["@types/lodash@4.17.24", "", {}, "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ=="], + + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + + "@types/node": ["@types/node@20.19.41", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-ECymXOukMnOoVkC2bb1Vc/w/836DXncOg5m8Xj1RH7xSHZJWNYY6Zh7EH477vcnD5egKNNfy2RpNOmuChhFPgQ=="], + + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + + "@wagmi/cli": ["@wagmi/cli@2.10.0", "", { "dependencies": { "abitype": "^1.1.1", "bundle-require": "^5.1.0", "cac": "^6.7.14", "change-case": "^5.4.4", "chokidar": "4.0.1", "dedent": "^0.7.0", "dotenv": "^16.3.1", "dotenv-expand": "^10.0.0", "esbuild": "~0.25.4", "escalade": "3.2.0", "fdir": "^6.1.1", "nanospinner": "1.2.2", "pathe": "^1.1.2", "picocolors": "^1.0.0", "picomatch": "^3.0.0", "prettier": "^3.0.3", "viem": "2.x", "zod": "^4.1.11" }, "peerDependencies": { "typescript": ">=5.7.3" }, "optionalPeers": ["typescript"], "bin": { "wagmi": "dist/esm/cli.js" } }, "sha512-2tYt6Bp1q26mWexH+XE6dMpPB5/Gp/3OVtE2SeeJ/gNHKLZmVF/TuoZR75mpJKTpofyvpz/fnuMCkUxzbc/kRw=="], + + "@wagmi/connectors": ["@wagmi/connectors@6.2.0", "", { "dependencies": { "@base-org/account": "2.4.0", "@coinbase/wallet-sdk": "4.3.6", "@gemini-wallet/core": "0.3.2", "@metamask/sdk": "0.33.1", "@safe-global/safe-apps-provider": "0.18.6", "@safe-global/safe-apps-sdk": "9.1.0", "@walletconnect/ethereum-provider": "2.21.1", "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3", "porto": "0.2.35" }, "peerDependencies": { "@wagmi/core": "2.22.1", "typescript": ">=5.0.4", "viem": "2.x" }, "optionalPeers": ["typescript"] }, "sha512-2NfkbqhNWdjfibb4abRMrn7u6rPjEGolMfApXss6HCDVt9AW2oVC6k8Q5FouzpJezElxLJSagWz9FW1zaRlanA=="], + + "@wagmi/core": ["@wagmi/core@2.22.1", "", { "dependencies": { "eventemitter3": "5.0.1", "mipd": "0.0.7", "zustand": "5.0.0" }, "peerDependencies": { "@tanstack/query-core": ">=5.0.0", "typescript": ">=5.0.4", "viem": "2.x" }, "optionalPeers": ["@tanstack/query-core", "typescript"] }, "sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg=="], + + "@walletconnect/core": ["@walletconnect/core@2.21.1", "", { "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/jsonrpc-ws-connection": "1.0.16", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.1", "@walletconnect/utils": "2.21.1", "@walletconnect/window-getters": "1.0.1", "es-toolkit": "1.33.0", "events": "3.3.0", "uint8arrays": "3.1.0" } }, "sha512-Tp4MHJYcdWD846PH//2r+Mu4wz1/ZU/fr9av1UWFiaYQ2t2TPLDiZxjLw54AAEpMqlEHemwCgiRiAmjR1NDdTQ=="], + + "@walletconnect/environment": ["@walletconnect/environment@1.0.1", "", { "dependencies": { "tslib": "1.14.1" } }, "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg=="], + + "@walletconnect/ethereum-provider": ["@walletconnect/ethereum-provider@2.21.1", "", { "dependencies": { "@reown/appkit": "1.7.8", "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/sign-client": "2.21.1", "@walletconnect/types": "2.21.1", "@walletconnect/universal-provider": "2.21.1", "@walletconnect/utils": "2.21.1", "events": "3.3.0" } }, "sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw=="], + + "@walletconnect/events": ["@walletconnect/events@1.0.1", "", { "dependencies": { "keyvaluestorage-interface": "^1.0.0", "tslib": "1.14.1" } }, "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ=="], + + "@walletconnect/heartbeat": ["@walletconnect/heartbeat@1.2.2", "", { "dependencies": { "@walletconnect/events": "^1.0.1", "@walletconnect/time": "^1.0.2", "events": "^3.3.0" } }, "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw=="], + + "@walletconnect/jsonrpc-http-connection": ["@walletconnect/jsonrpc-http-connection@1.0.8", "", { "dependencies": { "@walletconnect/jsonrpc-utils": "^1.0.6", "@walletconnect/safe-json": "^1.0.1", "cross-fetch": "^3.1.4", "events": "^3.3.0" } }, "sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw=="], + + "@walletconnect/jsonrpc-provider": ["@walletconnect/jsonrpc-provider@1.0.14", "", { "dependencies": { "@walletconnect/jsonrpc-utils": "^1.0.8", "@walletconnect/safe-json": "^1.0.2", "events": "^3.3.0" } }, "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow=="], + + "@walletconnect/jsonrpc-types": ["@walletconnect/jsonrpc-types@1.0.4", "", { "dependencies": { "events": "^3.3.0", "keyvaluestorage-interface": "^1.0.0" } }, "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ=="], + + "@walletconnect/jsonrpc-utils": ["@walletconnect/jsonrpc-utils@1.0.8", "", { "dependencies": { "@walletconnect/environment": "^1.0.1", "@walletconnect/jsonrpc-types": "^1.0.3", "tslib": "1.14.1" } }, "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw=="], + + "@walletconnect/jsonrpc-ws-connection": ["@walletconnect/jsonrpc-ws-connection@1.0.16", "", { "dependencies": { "@walletconnect/jsonrpc-utils": "^1.0.6", "@walletconnect/safe-json": "^1.0.2", "events": "^3.3.0", "ws": "^7.5.1" } }, "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q=="], + + "@walletconnect/keyvaluestorage": ["@walletconnect/keyvaluestorage@1.1.1", "", { "dependencies": { "@walletconnect/safe-json": "^1.0.1", "idb-keyval": "^6.2.1", "unstorage": "^1.9.0" }, "peerDependencies": { "@react-native-async-storage/async-storage": "1.x" }, "optionalPeers": ["@react-native-async-storage/async-storage"] }, "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA=="], + + "@walletconnect/logger": ["@walletconnect/logger@2.1.2", "", { "dependencies": { "@walletconnect/safe-json": "^1.0.2", "pino": "7.11.0" } }, "sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw=="], + + "@walletconnect/relay-api": ["@walletconnect/relay-api@1.0.11", "", { "dependencies": { "@walletconnect/jsonrpc-types": "^1.0.2" } }, "sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q=="], + + "@walletconnect/relay-auth": ["@walletconnect/relay-auth@1.1.0", "", { "dependencies": { "@noble/curves": "1.8.0", "@noble/hashes": "1.7.0", "@walletconnect/safe-json": "^1.0.1", "@walletconnect/time": "^1.0.2", "uint8arrays": "^3.0.0" } }, "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ=="], + + "@walletconnect/safe-json": ["@walletconnect/safe-json@1.0.2", "", { "dependencies": { "tslib": "1.14.1" } }, "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA=="], + + "@walletconnect/sign-client": ["@walletconnect/sign-client@2.21.1", "", { "dependencies": { "@walletconnect/core": "2.21.1", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.1", "@walletconnect/utils": "2.21.1", "events": "3.3.0" } }, "sha512-QaXzmPsMnKGV6tc4UcdnQVNOz4zyXgarvdIQibJ4L3EmLat73r5ZVl4c0cCOcoaV7rgM9Wbphgu5E/7jNcd3Zg=="], + + "@walletconnect/time": ["@walletconnect/time@1.0.2", "", { "dependencies": { "tslib": "1.14.1" } }, "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g=="], + + "@walletconnect/types": ["@walletconnect/types@2.21.1", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "events": "3.3.0" } }, "sha512-UeefNadqP6IyfwWC1Yi7ux+ljbP2R66PLfDrDm8izmvlPmYlqRerJWJvYO4t0Vvr9wrG4Ko7E0c4M7FaPKT/sQ=="], + + "@walletconnect/universal-provider": ["@walletconnect/universal-provider@2.21.1", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/sign-client": "2.21.1", "@walletconnect/types": "2.21.1", "@walletconnect/utils": "2.21.1", "es-toolkit": "1.33.0", "events": "3.3.0" } }, "sha512-Wjx9G8gUHVMnYfxtasC9poGm8QMiPCpXpbbLFT+iPoQskDDly8BwueWnqKs4Mx2SdIAWAwuXeZ5ojk5qQOxJJg=="], + + "@walletconnect/utils": ["@walletconnect/utils@2.21.1", "", { "dependencies": { "@noble/ciphers": "1.2.1", "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.1", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "bs58": "6.0.0", "detect-browser": "5.3.0", "query-string": "7.1.3", "uint8arrays": "3.1.0", "viem": "2.23.2" } }, "sha512-VPZvTcrNQCkbGOjFRbC24mm/pzbRMUq2DSQoiHlhh0X1U7ZhuIrzVtAoKsrzu6rqjz0EEtGxCr3K1TGRqDG4NA=="], + + "@walletconnect/window-getters": ["@walletconnect/window-getters@1.0.1", "", { "dependencies": { "tslib": "1.14.1" } }, "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q=="], + + "@walletconnect/window-metadata": ["@walletconnect/window-metadata@1.0.1", "", { "dependencies": { "@walletconnect/window-getters": "^1.0.1", "tslib": "1.14.1" } }, "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA=="], + + "abitype": ["abitype@1.2.3", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3.22.0 || ^4.0.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg=="], + + "ajv": ["ajv@6.15.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "antlr4": ["antlr4@4.13.2", "", {}, "sha512-QiVbZhyy4xAZ17UPEuG3YTOt8ZaoeOR1CvEAqrEsDBsOqINslaB147i9xqljZqoyf5S+EUlGStaj+t22LT9MOg=="], + + "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "ast-parents": ["ast-parents@0.0.1", "", {}, "sha512-XHusKxKz3zoYk1ic8Un640joHbFMhbqneyoZfoKnEGtf2ey9Uh/IdpcQplODdO/kENaMIWsD0nJm4+wX3UNLHA=="], + + "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="], + + "async-mutex": ["async-mutex@0.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw=="], + + "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], + + "atomic-sleep": ["atomic-sleep@1.0.0", "", {}, "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ=="], + + "available-typed-arrays": ["available-typed-arrays@1.0.7", "", { "dependencies": { "possible-typed-array-names": "^1.0.0" } }, "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ=="], + + "axios": ["axios@1.16.0", "", { "dependencies": { "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" } }, "sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w=="], + + "axios-retry": ["axios-retry@4.5.0", "", { "dependencies": { "is-retry-allowed": "^2.2.0" }, "peerDependencies": { "axios": "0.x || 1.x" } }, "sha512-aR99oXhpEDGo0UuAlYcn2iGRds30k366Zfa05XWScR9QaQD4JYiP3/1Qt1u7YlefUOK+cn0CcwoL1oefavQUlQ=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "base-x": ["base-x@5.0.1", "", {}, "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg=="], + + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + + "big.js": ["big.js@6.2.2", "", {}, "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ=="], + + "bn.js": ["bn.js@5.2.3", "", {}, "sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w=="], + + "bowser": ["bowser@2.14.1", "", {}, "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg=="], + + "brace-expansion": ["brace-expansion@2.1.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA=="], + + "bs58": ["bs58@6.0.0", "", { "dependencies": { "base-x": "^5.0.0" } }, "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw=="], + + "buffer": ["buffer@6.0.3", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA=="], + + "bufferutil": ["bufferutil@4.1.0", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw=="], + + "bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="], + + "bundle-require": ["bundle-require@5.1.0", "", { "dependencies": { "load-tsconfig": "^0.2.3" }, "peerDependencies": { "esbuild": ">=0.18" } }, "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA=="], + + "cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], + + "cacheable-lookup": ["cacheable-lookup@7.0.0", "", {}, "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="], + + "cacheable-request": ["cacheable-request@10.2.14", "", { "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", "http-cache-semantics": "^4.1.1", "keyv": "^4.5.3", "mimic-response": "^4.0.0", "normalize-url": "^8.0.0", "responselike": "^3.0.0" } }, "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ=="], + + "call-bind": ["call-bind@1.0.9", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" } }, "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ=="], + + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], + + "cbw-sdk": ["@coinbase/wallet-sdk@3.9.3", "", { "dependencies": { "bn.js": "^5.2.1", "buffer": "^6.0.3", "clsx": "^1.2.1", "eth-block-tracker": "^7.1.0", "eth-json-rpc-filters": "^6.0.0", "eventemitter3": "^5.0.1", "keccak": "^3.0.3", "preact": "^10.16.0", "sha.js": "^2.4.11" } }, "sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="], + + "charenc": ["charenc@0.0.2", "", {}, "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA=="], + + "chokidar": ["chokidar@4.0.1", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA=="], + + "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], + + "cliui": ["cliui@6.0.0", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" } }, "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ=="], + + "clsx": ["clsx@1.2.1", "", {}, "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + + "command-exists": ["command-exists@1.2.9", "", {}, "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w=="], + + "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], + + "config-chain": ["config-chain@1.1.13", "", { "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ=="], + + "cookie-es": ["cookie-es@1.2.3", "", {}, "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw=="], + + "core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="], + + "cosmiconfig": ["cosmiconfig@8.3.6", "", { "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0", "path-type": "^4.0.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA=="], + + "crc-32": ["crc-32@1.2.2", "", { "bin": { "crc32": "bin/crc32.njs" } }, "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="], + + "cross-fetch": ["cross-fetch@4.1.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "crossws": ["crossws@0.3.5", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA=="], + + "crypt": ["crypt@0.0.2", "", {}, "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow=="], + + "date-fns": ["date-fns@2.30.0", "", { "dependencies": { "@babel/runtime": "^7.21.0" } }, "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw=="], + + "dayjs": ["dayjs@1.11.13", "", {}, "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="], + + "debug": ["debug@4.3.4", "", { "dependencies": { "ms": "2.1.2" } }, "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="], + + "decamelize": ["decamelize@1.2.0", "", {}, "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="], + + "decode-uri-component": ["decode-uri-component@0.2.2", "", {}, "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="], + + "decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="], + + "dedent": ["dedent@0.7.0", "", {}, "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="], + + "deep-extend": ["deep-extend@0.6.0", "", {}, "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="], + + "defer-to-connect": ["defer-to-connect@2.0.1", "", {}, "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="], + + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], + + "defu": ["defu@6.1.7", "", {}, "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ=="], + + "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], + + "derive-valtio": ["derive-valtio@0.1.0", "", { "peerDependencies": { "valtio": "*" } }, "sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A=="], + + "destr": ["destr@2.0.5", "", {}, "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA=="], + + "detect-browser": ["detect-browser@5.3.0", "", {}, "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w=="], + + "dijkstrajs": ["dijkstrajs@1.0.3", "", {}, "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="], + + "dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + + "dotenv-expand": ["dotenv-expand@10.0.0", "", {}, "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A=="], + + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + + "duplexify": ["duplexify@4.1.3", "", { "dependencies": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", "readable-stream": "^3.1.1", "stream-shift": "^1.0.2" } }, "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA=="], + + "eciesjs": ["eciesjs@0.4.18", "", { "dependencies": { "@ecies/ciphers": "^0.2.5", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.7", "@noble/hashes": "^1.8.0" } }, "sha512-wG99Zcfcys9fZux7Cft8BAX/YrOJLJSZ3jyYPfhZHqN2E+Ffx+QXBDsv3gubEgPtV6dTzJMSQUwk1H98/t/0wQ=="], + + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "encode-utf8": ["encode-utf8@1.0.3", "", {}, "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="], + + "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], + + "engine.io-client": ["engine.io-client@6.6.5", "", { "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.4.1", "engine.io-parser": "~5.2.1", "ws": "~8.20.1", "xmlhttprequest-ssl": "~2.1.1" } }, "sha512-QCwxUDULPlXv8F6tqMMKx5dNkTe6OaBYRMPYeXKBlyOoKvAmE0ac6pW7fFhSscJ/5SI7666/U/B+MElbsrJlIg=="], + + "engine.io-parser": ["engine.io-parser@5.2.3", "", {}, "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q=="], + + "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="], + + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-object-atoms": ["es-object-atoms@1.1.2", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="], + + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + + "es-toolkit": ["es-toolkit@1.33.0", "", {}, "sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg=="], + + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "eth-block-tracker": ["eth-block-tracker@7.1.0", "", { "dependencies": { "@metamask/eth-json-rpc-provider": "^1.0.0", "@metamask/safe-event-emitter": "^3.0.0", "@metamask/utils": "^5.0.1", "json-rpc-random-id": "^1.0.1", "pify": "^3.0.0" } }, "sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg=="], + + "eth-json-rpc-filters": ["eth-json-rpc-filters@6.0.1", "", { "dependencies": { "@metamask/safe-event-emitter": "^3.0.0", "async-mutex": "^0.2.6", "eth-query": "^2.1.2", "json-rpc-engine": "^6.1.0", "pify": "^5.0.0" } }, "sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig=="], + + "eth-query": ["eth-query@2.1.2", "", { "dependencies": { "json-rpc-random-id": "^1.0.0", "xtend": "^4.0.1" } }, "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA=="], + + "eth-rpc-errors": ["eth-rpc-errors@4.0.3", "", { "dependencies": { "fast-safe-stringify": "^2.0.6" } }, "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg=="], + + "ethereum-cryptography": ["ethereum-cryptography@2.2.1", "", { "dependencies": { "@noble/curves": "1.4.2", "@noble/hashes": "1.4.0", "@scure/bip32": "1.4.0", "@scure/bip39": "1.3.0" } }, "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg=="], + + "eventemitter2": ["eventemitter2@6.4.9", "", {}, "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg=="], + + "eventemitter3": ["eventemitter3@5.0.1", "", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="], + + "events": ["events@3.3.0", "", {}, "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="], + + "execa": ["execa@9.6.1", "", { "dependencies": { "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.6", "figures": "^6.1.0", "get-stream": "^9.0.0", "human-signals": "^8.0.1", "is-plain-obj": "^4.1.0", "is-stream": "^4.0.1", "npm-run-path": "^6.0.0", "pretty-ms": "^9.2.0", "signal-exit": "^4.1.0", "strip-final-newline": "^4.0.0", "yoctocolors": "^2.1.1" } }, "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA=="], + + "extension-port-stream": ["extension-port-stream@3.0.0", "", { "dependencies": { "readable-stream": "^3.6.2 || ^4.4.2", "webextension-polyfill": ">=0.10.0 <1.0" } }, "sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-diff": ["fast-diff@1.3.0", "", {}, "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-redact": ["fast-redact@3.5.0", "", {}, "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A=="], + + "fast-safe-stringify": ["fast-safe-stringify@2.1.1", "", {}, "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="], + + "fast-uri": ["fast-uri@3.1.2", "", {}, "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "figures": ["figures@6.1.0", "", { "dependencies": { "is-unicode-supported": "^2.0.0" } }, "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg=="], + + "filter-obj": ["filter-obj@1.1.0", "", {}, "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="], + + "find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + + "follow-redirects": ["follow-redirects@1.16.0", "", {}, "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw=="], + + "for-each": ["for-each@0.3.5", "", { "dependencies": { "is-callable": "^1.2.7" } }, "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg=="], + + "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], + + "form-data-encoder": ["form-data-encoder@2.1.4", "", {}, "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw=="], + + "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "generator-function": ["generator-function@2.0.1", "", {}, "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g=="], + + "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + + "get-port": ["get-port@7.2.0", "", {}, "sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg=="], + + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + + "get-stream": ["get-stream@9.0.1", "", { "dependencies": { "@sec-ant/readable-stream": "^0.4.1", "is-stream": "^4.0.1" } }, "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA=="], + + "glob": ["glob@8.1.0", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", "once": "^1.3.0" } }, "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ=="], + + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + + "got": ["got@12.6.1", "", { "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "cacheable-lookup": "^7.0.0", "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", "form-data-encoder": "^2.1.2", "get-stream": "^6.0.1", "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", "responselike": "^3.0.0" } }, "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ=="], + + "graceful-fs": ["graceful-fs@4.2.10", "", {}, "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="], + + "h3": ["h3@1.15.11", "", { "dependencies": { "cookie-es": "^1.2.3", "crossws": "^0.3.5", "defu": "^6.1.6", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.4", "radix3": "^1.1.2", "ufo": "^1.6.3", "uncrypto": "^0.1.3" } }, "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + + "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="], + + "hono": ["hono@4.12.23", "", {}, "sha512-eIaZ9qDgu7XV0pxOCrg7/WhnQ6Ivm22UcxhXx/A3dcbqbbYgBEkc6e/J/s7j2tS96zoB0S9VBdLwQNCWwUo4LA=="], + + "http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="], + + "http-proxy": ["http-proxy@1.18.1", "", { "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" } }, "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ=="], + + "http2-wrapper": ["http2-wrapper@2.2.1", "", { "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" } }, "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ=="], + + "human-signals": ["human-signals@8.0.1", "", {}, "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ=="], + + "idb-keyval": ["idb-keyval@6.2.1", "", {}, "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg=="], + + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], + + "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + + "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], + + "iron-webcrypto": ["iron-webcrypto@1.2.1", "", {}, "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg=="], + + "is-arguments": ["is-arguments@1.2.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA=="], + + "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], + + "is-buffer": ["is-buffer@1.1.6", "", {}, "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="], + + "is-callable": ["is-callable@1.2.7", "", {}, "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-generator-function": ["is-generator-function@1.1.2", "", { "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", "safe-regex-test": "^1.1.0" } }, "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA=="], + + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], + + "is-regex": ["is-regex@1.2.1", "", { "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g=="], + + "is-retry-allowed": ["is-retry-allowed@2.2.0", "", {}, "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg=="], + + "is-stream": ["is-stream@4.0.1", "", {}, "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A=="], + + "is-typed-array": ["is-typed-array@1.1.15", "", { "dependencies": { "which-typed-array": "^1.1.16" } }, "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ=="], + + "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], + + "isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "isows": ["isows@1.0.7", "", { "peerDependencies": { "ws": "*" } }, "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg=="], + + "jose": ["jose@6.2.3", "", {}, "sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw=="], + + "js-sha3": ["js-sha3@0.8.0", "", {}, "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-parse-even-better-errors": ["json-parse-even-better-errors@2.3.1", "", {}, "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="], + + "json-rpc-engine": ["json-rpc-engine@6.1.0", "", { "dependencies": { "@metamask/safe-event-emitter": "^2.0.0", "eth-rpc-errors": "^4.0.2" } }, "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ=="], + + "json-rpc-random-id": ["json-rpc-random-id@1.0.1", "", {}, "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "keccak": ["keccak@3.0.4", "", { "dependencies": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0", "readable-stream": "^3.6.0" } }, "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "keyvaluestorage-interface": ["keyvaluestorage-interface@1.0.0", "", {}, "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g=="], + + "latest-version": ["latest-version@7.0.0", "", { "dependencies": { "package-json": "^8.1.0" } }, "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg=="], + + "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], + + "lit": ["lit@3.3.0", "", { "dependencies": { "@lit/reactive-element": "^2.1.0", "lit-element": "^4.2.0", "lit-html": "^3.3.0" } }, "sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw=="], + + "lit-element": ["lit-element@4.2.2", "", { "dependencies": { "@lit-labs/ssr-dom-shim": "^1.5.0", "@lit/reactive-element": "^2.1.0", "lit-html": "^3.3.0" } }, "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w=="], + + "lit-html": ["lit-html@3.3.3", "", { "dependencies": { "@types/trusted-types": "^2.0.2" } }, "sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA=="], + + "load-tsconfig": ["load-tsconfig@0.2.5", "", {}, "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg=="], + + "locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + + "lodash": ["lodash@4.18.1", "", {}, "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q=="], + + "lodash.truncate": ["lodash.truncate@4.4.2", "", {}, "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw=="], + + "lowercase-keys": ["lowercase-keys@3.0.0", "", {}, "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ=="], + + "lru-cache": ["lru-cache@11.5.1", "", {}, "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A=="], + + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + + "md5": ["md5@2.3.0", "", { "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", "is-buffer": "~1.1.6" } }, "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g=="], + + "memorystream": ["memorystream@0.3.1", "", {}, "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw=="], + + "micro-ftch": ["micro-ftch@0.3.1", "", {}, "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg=="], + + "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + + "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + + "mimic-response": ["mimic-response@4.0.0", "", {}, "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg=="], + + "minimatch": ["minimatch@5.1.9", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw=="], + + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + + "minipass": ["minipass@7.1.3", "", {}, "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="], + + "minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], + + "mipd": ["mipd@0.0.7", "", { "peerDependencies": { "typescript": ">=5.0.4" }, "optionalPeers": ["typescript"] }, "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg=="], + + "mkdirp": ["mkdirp@3.0.1", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="], + + "ms": ["ms@2.1.2", "", {}, "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="], + + "multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], + + "nanospinner": ["nanospinner@1.2.2", "", { "dependencies": { "picocolors": "^1.1.1" } }, "sha512-Zt/AmG6qRU3e+WnzGGLuMCEAO/dAu45stNbHY223tUxldaDAeE+FxSPsd9Q+j+paejmm0ZbrNVs5Sraqy3dRxA=="], + + "node-addon-api": ["node-addon-api@2.0.2", "", {}, "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="], + + "node-fetch": ["node-fetch@2.7.0", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="], + + "node-fetch-native": ["node-fetch-native@1.6.7", "", {}, "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q=="], + + "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="], + + "node-mock-http": ["node-mock-http@1.0.4", "", {}, "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ=="], + + "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + + "normalize-url": ["normalize-url@8.1.1", "", {}, "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ=="], + + "npm-run-path": ["npm-run-path@6.0.0", "", { "dependencies": { "path-key": "^4.0.0", "unicorn-magic": "^0.3.0" } }, "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA=="], + + "obj-multiplex": ["obj-multiplex@1.0.0", "", { "dependencies": { "end-of-stream": "^1.4.0", "once": "^1.4.0", "readable-stream": "^2.3.3" } }, "sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA=="], + + "ofetch": ["ofetch@1.5.1", "", { "dependencies": { "destr": "^2.0.5", "node-fetch-native": "^1.6.7", "ufo": "^1.6.1" } }, "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA=="], + + "on-exit-leak-free": ["on-exit-leak-free@0.2.0", "", {}, "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg=="], + + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + + "openapi-fetch": ["openapi-fetch@0.13.8", "", { "dependencies": { "openapi-typescript-helpers": "^0.0.15" } }, "sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ=="], + + "openapi-typescript-helpers": ["openapi-typescript-helpers@0.0.15", "", {}, "sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw=="], + + "os-tmpdir": ["os-tmpdir@1.0.2", "", {}, "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="], + + "ox": ["ox@0.14.25", "", { "dependencies": { "@adraffy/ens-normalize": "^1.11.0", "@noble/ciphers": "^1.3.0", "@noble/curves": "1.9.1", "@noble/hashes": "^1.8.0", "@scure/bip32": "^1.7.0", "@scure/bip39": "^1.6.0", "abitype": "^1.2.3", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-8DoibKtxE8yw63Y2jjMhlbjaURev6WCx4QR4MWLusl2/qIaeTzMJMBIYIDl1KOF45+8H1Ur6eLTdPlUoO8PlRw=="], + + "p-cancelable": ["p-cancelable@3.0.0", "", {}, "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw=="], + + "p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + + "p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + + "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + + "package-json": ["package-json@8.1.1", "", { "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", "registry-url": "^6.0.0", "semver": "^7.3.7" } }, "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "parse-json": ["parse-json@5.2.0", "", { "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg=="], + + "parse-ms": ["parse-ms@4.0.0", "", {}, "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="], + + "pathe": ["pathe@1.1.2", "", {}, "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@3.0.2", "", {}, "sha512-cfDHL6LStTEKlNilboNtobT/kEa30PtAf2Q1OgszfrG/rpVl1xaFWT9ktfkS306GmHgmnad1Sw4wabhlvFtsTw=="], + + "pify": ["pify@3.0.0", "", {}, "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="], + + "pino": ["pino@7.11.0", "", { "dependencies": { "atomic-sleep": "^1.0.0", "fast-redact": "^3.0.0", "on-exit-leak-free": "^0.2.0", "pino-abstract-transport": "v0.5.0", "pino-std-serializers": "^4.0.0", "process-warning": "^1.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.1.0", "safe-stable-stringify": "^2.1.0", "sonic-boom": "^2.2.1", "thread-stream": "^0.15.1" }, "bin": { "pino": "bin.js" } }, "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg=="], + + "pino-abstract-transport": ["pino-abstract-transport@0.5.0", "", { "dependencies": { "duplexify": "^4.1.2", "split2": "^4.0.0" } }, "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ=="], + + "pino-std-serializers": ["pino-std-serializers@4.0.0", "", {}, "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q=="], + + "pluralize": ["pluralize@8.0.0", "", {}, "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA=="], + + "pngjs": ["pngjs@5.0.0", "", {}, "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="], + + "pony-cause": ["pony-cause@2.1.11", "", {}, "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg=="], + + "porto": ["porto@0.2.35", "", { "dependencies": { "hono": "^4.10.3", "idb-keyval": "^6.2.1", "mipd": "^0.0.7", "ox": "^0.9.6", "zod": "^4.1.5", "zustand": "^5.0.1" }, "peerDependencies": { "@tanstack/react-query": ">=5.59.0", "@wagmi/core": ">=2.16.3", "expo-auth-session": ">=7.0.8", "expo-crypto": ">=15.0.7", "expo-web-browser": ">=15.0.8", "react": ">=18", "react-native": ">=0.81.4", "typescript": ">=5.4.0", "viem": ">=2.37.0", "wagmi": ">=2.0.0" }, "optionalPeers": ["@tanstack/react-query", "expo-auth-session", "expo-crypto", "expo-web-browser", "react", "react-native", "typescript", "wagmi"], "bin": { "porto": "dist/cli/bin/index.js" } }, "sha512-gu9FfjjvvYBgQXUHWTp6n3wkTxVtEcqFotM7i3GEZeoQbvLGbssAicCz6hFZ8+xggrJWwi/RLmbwNra50SMmUQ=="], + + "possible-typed-array-names": ["possible-typed-array-names@1.1.0", "", {}, "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg=="], + + "preact": ["preact@10.24.2", "", {}, "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q=="], + + "prettier": ["prettier@3.8.3", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw=="], + + "pretty-ms": ["pretty-ms@9.3.0", "", { "dependencies": { "parse-ms": "^4.0.0" } }, "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ=="], + + "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], + + "process-warning": ["process-warning@1.0.0", "", {}, "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q=="], + + "prool": ["prool@0.2.4", "", { "dependencies": { "change-case": "5.4.4", "eventemitter3": "^5.0.1", "execa": "^9.1.0", "get-port": "^7.1.0", "http-proxy": "^1.18.1", "tar": "7.2.0" }, "peerDependencies": { "@pimlico/alto": "*", "testcontainers": ">=11.10.0" }, "optionalPeers": ["@pimlico/alto", "testcontainers"] }, "sha512-KAGs6e++7MJNQ/vq8Xrk6akz0lRk6AmhuGzSHkluX3kwVj2XjNDDOYSINZwahRv3xfSD0rXYv3iA/2vXw7z47w=="], + + "proto-list": ["proto-list@1.2.4", "", {}, "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA=="], + + "proxy-compare": ["proxy-compare@2.6.0", "", {}, "sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw=="], + + "proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="], + + "pump": ["pump@3.0.4", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "qrcode": ["qrcode@1.5.3", "", { "dependencies": { "dijkstrajs": "^1.0.1", "encode-utf8": "^1.0.3", "pngjs": "^5.0.0", "yargs": "^15.3.1" }, "bin": { "qrcode": "bin/qrcode" } }, "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg=="], + + "query-string": ["query-string@7.1.3", "", { "dependencies": { "decode-uri-component": "^0.2.2", "filter-obj": "^1.1.0", "split-on-first": "^1.0.0", "strict-uri-encode": "^2.0.0" } }, "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg=="], + + "quick-format-unescaped": ["quick-format-unescaped@4.0.4", "", {}, "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg=="], + + "quick-lru": ["quick-lru@5.1.1", "", {}, "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="], + + "radix3": ["radix3@1.1.2", "", {}, "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA=="], + + "rc": ["rc@1.2.8", "", { "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "./cli.js" } }, "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="], + + "react": ["react@19.2.6", "", {}, "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q=="], + + "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + + "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], + + "real-require": ["real-require@0.1.0", "", {}, "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg=="], + + "registry-auth-token": ["registry-auth-token@5.1.1", "", { "dependencies": { "@pnpm/npm-conf": "^3.0.2" } }, "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q=="], + + "registry-url": ["registry-url@6.0.1", "", { "dependencies": { "rc": "1.2.8" } }, "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q=="], + + "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + + "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="], + + "require-main-filename": ["require-main-filename@2.0.0", "", {}, "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="], + + "requires-port": ["requires-port@1.0.0", "", {}, "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="], + + "resolve-alpn": ["resolve-alpn@1.2.1", "", {}, "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "responselike": ["responselike@3.0.0", "", { "dependencies": { "lowercase-keys": "^3.0.0" } }, "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg=="], + + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "safe-regex-test": ["safe-regex-test@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="], + + "safe-stable-stringify": ["safe-stable-stringify@2.5.0", "", {}, "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA=="], + + "semver": ["semver@5.7.2", "", { "bin": { "semver": "bin/semver" } }, "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g=="], + + "set-blocking": ["set-blocking@2.0.0", "", {}, "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="], + + "set-function-length": ["set-function-length@1.2.2", "", { "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" } }, "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg=="], + + "sha.js": ["sha.js@2.4.12", "", { "dependencies": { "inherits": "^2.0.4", "safe-buffer": "^5.2.1", "to-buffer": "^1.2.0" }, "bin": { "sha.js": "bin.js" } }, "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + + "slice-ansi": ["slice-ansi@4.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ=="], + + "socket.io-client": ["socket.io-client@4.8.3", "", { "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.4.1", "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" } }, "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g=="], + + "socket.io-parser": ["socket.io-parser@4.2.6", "", { "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.4.1" } }, "sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg=="], + + "solc": ["solc@0.8.35", "", { "dependencies": { "command-exists": "^1.2.8", "commander": "^8.1.0", "follow-redirects": "^1.12.1", "js-sha3": "0.8.0", "memorystream": "^0.3.1", "semver": "^5.5.0", "tmp": "0.0.33" }, "bin": { "solcjs": "solc.js" } }, "sha512-OaP/4zyoKRo2CjqZDxbtkeRlEo6MxP4FLCxntw1Agf9OSoecmwYKoFBSB34UcSKBFBucrTh3Mb0nRoJou62ibw=="], + + "solhint": ["solhint@4.5.4", "", { "dependencies": { "@solidity-parser/parser": "^0.18.0", "ajv": "^6.12.6", "antlr4": "^4.13.1-patch-1", "ast-parents": "^0.0.1", "chalk": "^4.1.2", "commander": "^10.0.0", "cosmiconfig": "^8.0.0", "fast-diff": "^1.2.0", "glob": "^8.0.3", "ignore": "^5.2.4", "js-yaml": "^4.1.0", "latest-version": "^7.0.0", "lodash": "^4.17.21", "pluralize": "^8.0.0", "semver": "^7.5.2", "strip-ansi": "^6.0.1", "table": "^6.8.1", "text-table": "^0.2.0" }, "optionalDependencies": { "prettier": "^2.8.3" }, "bin": { "solhint": "solhint.js" } }, "sha512-Cu1XiJXub2q1eCr9kkJ9VPv1sGcmj3V7Zb76B0CoezDOB9bu3DxKIFFH7ggCl9fWpEPD6xBmRLfZrYijkVmujQ=="], + + "sonic-boom": ["sonic-boom@2.8.0", "", { "dependencies": { "atomic-sleep": "^1.0.0" } }, "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg=="], + + "split-on-first": ["split-on-first@1.1.0", "", {}, "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="], + + "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], + + "stream-shift": ["stream-shift@1.0.3", "", {}, "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ=="], + + "strict-uri-encode": ["strict-uri-encode@2.0.0", "", {}, "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="], + + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-final-newline": ["strip-final-newline@4.0.0", "", {}, "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw=="], + + "strip-json-comments": ["strip-json-comments@2.0.1", "", {}, "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="], + + "superstruct": ["superstruct@1.0.4", "", {}, "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "table": ["table@6.9.0", "", { "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" } }, "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A=="], + + "tar": ["tar@7.2.0", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.0", "minizlib": "^3.0.1", "mkdirp": "^3.0.1", "yallist": "^5.0.0" } }, "sha512-hctwP0Nb4AB60bj8WQgRYaMOuJYRAPMGiQUAotms5igN8ppfQM+IvjQ5HcKu1MaZh2Wy2KWVTe563Yj8dfc14w=="], + + "text-table": ["text-table@0.2.0", "", {}, "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="], + + "thread-stream": ["thread-stream@0.15.2", "", { "dependencies": { "real-require": "^0.1.0" } }, "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA=="], + + "tmp": ["tmp@0.0.33", "", { "dependencies": { "os-tmpdir": "~1.0.2" } }, "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw=="], + + "to-buffer": ["to-buffer@1.2.2", "", { "dependencies": { "isarray": "^2.0.5", "safe-buffer": "^5.2.1", "typed-array-buffer": "^1.0.3" } }, "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw=="], + + "tr46": ["tr46@0.0.3", "", {}, "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "typed-array-buffer": ["typed-array-buffer@1.0.3", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-typed-array": "^1.1.14" } }, "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "ufo": ["ufo@1.6.4", "", {}, "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA=="], + + "uint8arrays": ["uint8arrays@3.1.0", "", { "dependencies": { "multiformats": "^9.4.2" } }, "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog=="], + + "uncrypto": ["uncrypto@0.1.3", "", {}, "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "unicorn-magic": ["unicorn-magic@0.3.0", "", {}, "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA=="], + + "unstorage": ["unstorage@1.17.5", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^5.0.0", "destr": "^2.0.5", "h3": "^1.15.10", "lru-cache": "^11.2.7", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.1", "ufo": "^1.6.3" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6 || ^7 || ^8", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1 || ^2 || ^3", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "use-sync-external-store": ["use-sync-external-store@1.4.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw=="], + + "utf-8-validate": ["utf-8-validate@5.0.10", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ=="], + + "util": ["util@0.12.5", "", { "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", "which-typed-array": "^1.1.2" } }, "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA=="], + + "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + + "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], + + "valtio": ["valtio@1.13.2", "", { "dependencies": { "derive-valtio": "0.1.0", "proxy-compare": "2.6.0", "use-sync-external-store": "1.2.0" }, "peerDependencies": { "@types/react": ">=16.8", "react": ">=16.8" }, "optionalPeers": ["@types/react", "react"] }, "sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A=="], + + "viem": ["viem@2.51.3", "", { "dependencies": { "@noble/curves": "1.9.1", "@noble/hashes": "1.8.0", "@scure/bip32": "1.7.0", "@scure/bip39": "1.6.0", "abitype": "1.2.3", "isows": "1.0.7", "ox": "0.14.25", "ws": "8.20.1" }, "peerDependencies": { "typescript": ">=5.0.4" }, "optionalPeers": ["typescript"] }, "sha512-DA4EbrsvatzzLo6MwcWWiv6kI6dIr3I9HH9B6qsJaClN/s0AjIDUz5RIxl+VmGrovIUCcIvG8744yuGH7d37zw=="], + + "wagmi": ["wagmi@2.19.5", "", { "dependencies": { "@wagmi/connectors": "6.2.0", "@wagmi/core": "2.22.1", "use-sync-external-store": "1.4.0" }, "peerDependencies": { "@tanstack/react-query": ">=5.0.0", "react": ">=18", "typescript": ">=5.0.4", "viem": "2.x" }, "optionalPeers": ["typescript"] }, "sha512-RQUfKMv6U+EcSNNGiPbdkDtJwtuFxZWLmvDiQmjjBgkuPulUwDJsKhi7gjynzJdsx2yDqhHCXkKsbbfbIsHfcQ=="], + + "webextension-polyfill": ["webextension-polyfill@0.10.0", "", {}, "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g=="], + + "webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], + + "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "which-module": ["which-module@2.0.1", "", {}, "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="], + + "which-typed-array": ["which-typed-array@1.1.21", "", { "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.9", "call-bound": "^1.0.4", "for-each": "^0.3.5", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" } }, "sha512-zbRA8cVm6io/d5W8uIe2hblzN76/Wm3v/yiythQvr+dpBWeqhPSWIDNj4zOyHi4zKbMK6DN34Xsr9jPHJERAEw=="], + + "wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], + + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + + "ws": ["ws@8.20.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w=="], + + "xmlhttprequest-ssl": ["xmlhttprequest-ssl@2.1.2", "", {}, "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ=="], + + "xtend": ["xtend@4.0.2", "", {}, "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="], + + "y18n": ["y18n@4.0.3", "", {}, "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="], + + "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], + + "yargs": ["yargs@15.4.1", "", { "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="], + + "yargs-parser": ["yargs-parser@18.1.3", "", { "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ=="], + + "yoctocolors": ["yoctocolors@2.1.2", "", {}, "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug=="], + + "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="], + + "zustand": ["zustand@5.0.0", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ=="], + + "@base-org/account/@noble/hashes": ["@noble/hashes@1.4.0", "", {}, "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="], + + "@base-org/account/ox": ["ox@0.6.9", "", { "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@scure/bip32": "^1.5.0", "@scure/bip39": "^1.4.0", "abitype": "^1.0.6", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug=="], + + "@base-org/account/zustand": ["zustand@5.0.3", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg=="], + + "@coinbase/cdp-sdk/abitype": ["abitype@1.0.6", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3 >=3.22.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A=="], + + "@coinbase/cdp-sdk/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + + "@coinbase/wallet-sdk/@noble/hashes": ["@noble/hashes@1.4.0", "", {}, "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="], + + "@coinbase/wallet-sdk/ox": ["ox@0.6.9", "", { "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@scure/bip32": "^1.5.0", "@scure/bip39": "^1.4.0", "abitype": "^1.0.6", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug=="], + + "@coinbase/wallet-sdk/zustand": ["zustand@5.0.3", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine": ["@metamask/json-rpc-engine@7.3.3", "", { "dependencies": { "@metamask/rpc-errors": "^6.2.1", "@metamask/safe-event-emitter": "^3.0.0", "@metamask/utils": "^8.3.0" } }, "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg=="], + + "@metamask/eth-json-rpc-provider/@metamask/utils": ["@metamask/utils@5.0.2", "", { "dependencies": { "@ethereumjs/tx": "^4.1.2", "@types/debug": "^4.1.7", "debug": "^4.3.4", "semver": "^7.3.8", "superstruct": "^1.0.3" } }, "sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g=="], + + "@metamask/json-rpc-engine/@metamask/rpc-errors": ["@metamask/rpc-errors@6.4.0", "", { "dependencies": { "@metamask/utils": "^9.0.0", "fast-safe-stringify": "^2.0.6" } }, "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg=="], + + "@metamask/json-rpc-engine/@metamask/utils": ["@metamask/utils@8.5.0", "", { "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.0.0", "@noble/hashes": "^1.3.1", "@scure/base": "^1.1.3", "@types/debug": "^4.1.7", "debug": "^4.3.4", "pony-cause": "^2.1.10", "semver": "^7.5.4", "uuid": "^9.0.1" } }, "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ=="], + + "@metamask/json-rpc-middleware-stream/@metamask/utils": ["@metamask/utils@8.5.0", "", { "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.0.0", "@noble/hashes": "^1.3.1", "@scure/base": "^1.1.3", "@types/debug": "^4.1.7", "debug": "^4.3.4", "pony-cause": "^2.1.10", "semver": "^7.5.4", "uuid": "^9.0.1" } }, "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ=="], + + "@metamask/providers/@metamask/rpc-errors": ["@metamask/rpc-errors@6.4.0", "", { "dependencies": { "@metamask/utils": "^9.0.0", "fast-safe-stringify": "^2.0.6" } }, "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg=="], + + "@metamask/providers/@metamask/utils": ["@metamask/utils@8.5.0", "", { "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.0.0", "@noble/hashes": "^1.3.1", "@scure/base": "^1.1.3", "@types/debug": "^4.1.7", "debug": "^4.3.4", "pony-cause": "^2.1.10", "semver": "^7.5.4", "uuid": "^9.0.1" } }, "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ=="], + + "@metamask/providers/is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], + + "@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/utils/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], + + "@reown/appkit/@walletconnect/types": ["@walletconnect/types@2.21.0", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "events": "3.3.0" } }, "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw=="], + + "@reown/appkit/@walletconnect/universal-provider": ["@walletconnect/universal-provider@2.21.0", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/sign-client": "2.21.0", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "es-toolkit": "1.33.0", "events": "3.3.0" } }, "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider": ["@walletconnect/universal-provider@2.21.0", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/sign-client": "2.21.0", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "es-toolkit": "1.33.0", "events": "3.3.0" } }, "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg=="], + + "@reown/appkit-utils/@walletconnect/universal-provider": ["@walletconnect/universal-provider@2.21.0", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/jsonrpc-http-connection": "1.0.8", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/sign-client": "2.21.0", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "es-toolkit": "1.33.0", "events": "3.3.0" } }, "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg=="], + + "@reown/appkit-wallet/zod": ["zod@3.22.4", "", {}, "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg=="], + + "@solana/errors/chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + + "@solana/errors/commander": ["commander@14.0.2", "", {}, "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ=="], + + "@solana/rpc-transport-http/undici-types": ["undici-types@7.26.0", "", {}, "sha512-OY7qWYg4TsPpqg/kL2FfNnGA8cmAhPpLt45XQ2jd8p9UobYQ7Q09LeiCq5QwZhlKNLBj0iTUlBNhs4M2AVFmxA=="], + + "@walletconnect/environment/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + + "@walletconnect/events/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + + "@walletconnect/jsonrpc-http-connection/cross-fetch": ["cross-fetch@3.2.0", "", { "dependencies": { "node-fetch": "^2.7.0" } }, "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q=="], + + "@walletconnect/jsonrpc-utils/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + + "@walletconnect/jsonrpc-ws-connection/ws": ["ws@7.5.11", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA=="], + + "@walletconnect/keyvaluestorage/idb-keyval": ["idb-keyval@6.2.4", "", {}, "sha512-D/NzHWUmYJGXi++z67aMSrnisb9A3621CyRK5G89JyTlN13C8xf0g04DLxUKMufPem3e3L2JAXR6Z00OWy183Q=="], + + "@walletconnect/relay-auth/@noble/curves": ["@noble/curves@1.8.0", "", { "dependencies": { "@noble/hashes": "1.7.0" } }, "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ=="], + + "@walletconnect/relay-auth/@noble/hashes": ["@noble/hashes@1.7.0", "", {}, "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w=="], + + "@walletconnect/safe-json/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + + "@walletconnect/time/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + + "@walletconnect/utils/@noble/ciphers": ["@noble/ciphers@1.2.1", "", {}, "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA=="], + + "@walletconnect/utils/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@walletconnect/utils/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@walletconnect/utils/viem": ["viem@2.23.2", "", { "dependencies": { "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@scure/bip32": "1.6.2", "@scure/bip39": "1.5.4", "abitype": "1.0.8", "isows": "1.0.6", "ox": "0.6.7", "ws": "8.18.0" }, "peerDependencies": { "typescript": ">=5.0.4" }, "optionalPeers": ["typescript"] }, "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA=="], + + "@walletconnect/window-getters/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + + "@walletconnect/window-metadata/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], + + "anymatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], + + "cacheable-request/get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], + + "decompress-response/mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], + + "eciesjs/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], + + "engine.io-client/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "eth-block-tracker/@metamask/utils": ["@metamask/utils@5.0.2", "", { "dependencies": { "@ethereumjs/tx": "^4.1.2", "@types/debug": "^4.1.7", "debug": "^4.3.4", "semver": "^7.3.8", "superstruct": "^1.0.3" } }, "sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g=="], + + "eth-json-rpc-filters/pify": ["pify@5.0.0", "", {}, "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA=="], + + "ethereum-cryptography/@noble/curves": ["@noble/curves@1.4.2", "", { "dependencies": { "@noble/hashes": "1.4.0" } }, "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw=="], + + "ethereum-cryptography/@noble/hashes": ["@noble/hashes@1.4.0", "", {}, "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg=="], + + "ethereum-cryptography/@scure/bip32": ["@scure/bip32@1.4.0", "", { "dependencies": { "@noble/curves": "~1.4.0", "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" } }, "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg=="], + + "ethereum-cryptography/@scure/bip39": ["@scure/bip39@1.3.0", "", { "dependencies": { "@noble/hashes": "~1.4.0", "@scure/base": "~1.1.6" } }, "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ=="], + + "got/get-stream": ["get-stream@6.0.1", "", {}, "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="], + + "http-proxy/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="], + + "json-rpc-engine/@metamask/safe-event-emitter": ["@metamask/safe-event-emitter@2.0.0", "", {}, "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q=="], + + "npm-run-path/path-key": ["path-key@4.0.0", "", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="], + + "obj-multiplex/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + + "package-json/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "porto/idb-keyval": ["idb-keyval@6.2.4", "", {}, "sha512-D/NzHWUmYJGXi++z67aMSrnisb9A3621CyRK5G89JyTlN13C8xf0g04DLxUKMufPem3e3L2JAXR6Z00OWy183Q=="], + + "porto/ox": ["ox@0.9.17", "", { "dependencies": { "@adraffy/ens-normalize": "^1.11.0", "@noble/ciphers": "^1.3.0", "@noble/curves": "1.9.1", "@noble/hashes": "^1.8.0", "@scure/bip32": "^1.7.0", "@scure/bip39": "^1.6.0", "abitype": "^1.0.9", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-rKAnhzhRU3Xh3hiko+i1ZxywZ55eWQzeS/Q4HRKLx2PqfHOolisZHErSsJVipGlmQKHW5qwOED/GighEw9dbLg=="], + + "porto/zustand": ["zustand@5.0.14", "", { "peerDependencies": { "@types/react": ">=18.0.0", "immer": ">=9.0.6", "react": ">=18.0.0", "use-sync-external-store": ">=1.2.0" }, "optionalPeers": ["@types/react", "immer", "react", "use-sync-external-store"] }, "sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g=="], + + "socket.io-client/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "socket.io-parser/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "solhint/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], + + "solhint/prettier": ["prettier@2.8.8", "", { "bin": { "prettier": "bin-prettier.js" } }, "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="], + + "solhint/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "table/ajv": ["ajv@8.20.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="], + + "to-buffer/isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], + + "unstorage/chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="], + + "valtio/use-sync-external-store": ["use-sync-external-store@1.2.0", "", { "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA=="], + + "@base-org/account/ox/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@coinbase/wallet-sdk/ox/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/rpc-errors": ["@metamask/rpc-errors@6.4.0", "", { "dependencies": { "@metamask/utils": "^9.0.0", "fast-safe-stringify": "^2.0.6" } }, "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/utils": ["@metamask/utils@8.5.0", "", { "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.0.0", "@noble/hashes": "^1.3.1", "@scure/base": "^1.1.3", "@types/debug": "^4.1.7", "debug": "^4.3.4", "pony-cause": "^2.1.10", "semver": "^7.5.4", "uuid": "^9.0.1" } }, "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ=="], + + "@metamask/eth-json-rpc-provider/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/eth-json-rpc-provider/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils": ["@metamask/utils@9.3.0", "", { "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.1.0", "@noble/hashes": "^1.3.1", "@scure/base": "^1.1.3", "@types/debug": "^4.1.7", "debug": "^4.3.4", "pony-cause": "^2.1.10", "semver": "^7.5.4", "uuid": "^9.0.1" } }, "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g=="], + + "@metamask/json-rpc-engine/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/json-rpc-engine/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/json-rpc-engine/@metamask/utils/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], + + "@metamask/json-rpc-middleware-stream/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/json-rpc-middleware-stream/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/json-rpc-middleware-stream/@metamask/utils/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], + + "@metamask/providers/@metamask/rpc-errors/@metamask/utils": ["@metamask/utils@9.3.0", "", { "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.1.0", "@noble/hashes": "^1.3.1", "@scure/base": "^1.1.3", "@types/debug": "^4.1.7", "debug": "^4.3.4", "pony-cause": "^2.1.10", "semver": "^7.5.4", "uuid": "^9.0.1" } }, "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g=="], + + "@metamask/providers/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/providers/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/providers/@metamask/utils/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], + + "@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/sign-client": ["@walletconnect/sign-client@2.21.0", "", { "dependencies": { "@walletconnect/core": "2.21.0", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "events": "3.3.0" } }, "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/types": ["@walletconnect/types@2.21.0", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "events": "3.3.0" } }, "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils": ["@walletconnect/utils@2.21.0", "", { "dependencies": { "@noble/ciphers": "1.2.1", "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "bs58": "6.0.0", "detect-browser": "5.3.0", "query-string": "7.1.3", "uint8arrays": "3.1.0", "viem": "2.23.2" } }, "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/sign-client": ["@walletconnect/sign-client@2.21.0", "", { "dependencies": { "@walletconnect/core": "2.21.0", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "events": "3.3.0" } }, "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/types": ["@walletconnect/types@2.21.0", "", { "dependencies": { "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "events": "3.3.0" } }, "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils": ["@walletconnect/utils@2.21.0", "", { "dependencies": { "@noble/ciphers": "1.2.1", "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "bs58": "6.0.0", "detect-browser": "5.3.0", "query-string": "7.1.3", "uint8arrays": "3.1.0", "viem": "2.23.2" } }, "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/sign-client": ["@walletconnect/sign-client@2.21.0", "", { "dependencies": { "@walletconnect/core": "2.21.0", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "events": "3.3.0" } }, "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils": ["@walletconnect/utils@2.21.0", "", { "dependencies": { "@noble/ciphers": "1.2.1", "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "bs58": "6.0.0", "detect-browser": "5.3.0", "query-string": "7.1.3", "uint8arrays": "3.1.0", "viem": "2.23.2" } }, "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig=="], + + "@walletconnect/utils/viem/@scure/bip32": ["@scure/bip32@1.6.2", "", { "dependencies": { "@noble/curves": "~1.8.1", "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.2" } }, "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw=="], + + "@walletconnect/utils/viem/@scure/bip39": ["@scure/bip39@1.5.4", "", { "dependencies": { "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.4" } }, "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA=="], + + "@walletconnect/utils/viem/abitype": ["abitype@1.0.8", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3 >=3.22.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg=="], + + "@walletconnect/utils/viem/isows": ["isows@1.0.6", "", { "peerDependencies": { "ws": "*" } }, "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw=="], + + "@walletconnect/utils/viem/ox": ["ox@0.6.7", "", { "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@scure/bip32": "^1.5.0", "@scure/bip39": "^1.4.0", "abitype": "^1.0.6", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA=="], + + "@walletconnect/utils/viem/ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="], + + "engine.io-client/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "eth-block-tracker/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "eth-block-tracker/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "ethereum-cryptography/@scure/bip32/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], + + "ethereum-cryptography/@scure/bip39/@scure/base": ["@scure/base@1.1.9", "", {}, "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg=="], + + "obj-multiplex/readable-stream/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + + "obj-multiplex/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + + "socket.io-client/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "socket.io-parser/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "table/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], + + "unstorage/chokidar/readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils": ["@metamask/utils@9.3.0", "", { "dependencies": { "@ethereumjs/tx": "^4.2.0", "@metamask/superstruct": "^3.1.0", "@noble/hashes": "^1.3.1", "@scure/base": "^1.1.3", "@types/debug": "^4.1.7", "debug": "^4.3.4", "pony-cause": "^2.1.10", "semver": "^7.5.4", "uuid": "^9.0.1" } }, "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/utils/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], + + "@metamask/eth-json-rpc-provider/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], + + "@metamask/json-rpc-engine/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@metamask/json-rpc-middleware-stream/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@metamask/providers/@metamask/rpc-errors/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/providers/@metamask/rpc-errors/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/providers/@metamask/rpc-errors/@metamask/utils/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], + + "@metamask/providers/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/sign-client/@walletconnect/core": ["@walletconnect/core@2.21.0", "", { "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/jsonrpc-ws-connection": "1.0.16", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "@walletconnect/window-getters": "1.0.1", "es-toolkit": "1.33.0", "events": "3.3.0", "uint8arrays": "3.1.0" } }, "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/@noble/ciphers": ["@noble/ciphers@1.2.1", "", {}, "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem": ["viem@2.23.2", "", { "dependencies": { "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@scure/bip32": "1.6.2", "@scure/bip39": "1.5.4", "abitype": "1.0.8", "isows": "1.0.6", "ox": "0.6.7", "ws": "8.18.0" }, "peerDependencies": { "typescript": ">=5.0.4" }, "optionalPeers": ["typescript"] }, "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/sign-client/@walletconnect/core": ["@walletconnect/core@2.21.0", "", { "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/jsonrpc-ws-connection": "1.0.16", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "@walletconnect/window-getters": "1.0.1", "es-toolkit": "1.33.0", "events": "3.3.0", "uint8arrays": "3.1.0" } }, "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/@noble/ciphers": ["@noble/ciphers@1.2.1", "", {}, "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem": ["viem@2.23.2", "", { "dependencies": { "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@scure/bip32": "1.6.2", "@scure/bip39": "1.5.4", "abitype": "1.0.8", "isows": "1.0.6", "ox": "0.6.7", "ws": "8.18.0" }, "peerDependencies": { "typescript": ">=5.0.4" }, "optionalPeers": ["typescript"] }, "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/sign-client/@walletconnect/core": ["@walletconnect/core@2.21.0", "", { "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/jsonrpc-ws-connection": "1.0.16", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.1.0", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", "@walletconnect/types": "2.21.0", "@walletconnect/utils": "2.21.0", "@walletconnect/window-getters": "1.0.1", "es-toolkit": "1.33.0", "events": "3.3.0", "uint8arrays": "3.1.0" } }, "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/@noble/ciphers": ["@noble/ciphers@1.2.1", "", {}, "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem": ["viem@2.23.2", "", { "dependencies": { "@noble/curves": "1.8.1", "@noble/hashes": "1.7.1", "@scure/bip32": "1.6.2", "@scure/bip39": "1.5.4", "abitype": "1.0.8", "isows": "1.0.6", "ox": "0.6.7", "ws": "8.18.0" }, "peerDependencies": { "typescript": ">=5.0.4" }, "optionalPeers": ["typescript"] }, "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA=="], + + "@walletconnect/utils/viem/ox/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], + + "@walletconnect/utils/viem/ox/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@walletconnect/utils/viem/ox/@scure/bip32": ["@scure/bip32@1.7.0", "", { "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw=="], + + "@walletconnect/utils/viem/ox/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], + + "@walletconnect/utils/viem/ox/abitype": ["abitype@1.2.3", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3.22.0 || ^4.0.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg=="], + + "eth-block-tracker/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils/uuid": ["uuid@9.0.1", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@metamask/providers/@metamask/rpc-errors/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/@scure/bip32": ["@scure/bip32@1.6.2", "", { "dependencies": { "@noble/curves": "~1.8.1", "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.2" } }, "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/@scure/bip39": ["@scure/bip39@1.5.4", "", { "dependencies": { "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.4" } }, "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/abitype": ["abitype@1.0.8", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3 >=3.22.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/isows": ["isows@1.0.6", "", { "peerDependencies": { "ws": "*" } }, "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/ox": ["ox@0.6.7", "", { "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@scure/bip32": "^1.5.0", "@scure/bip39": "^1.4.0", "abitype": "^1.0.6", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/@scure/bip32": ["@scure/bip32@1.6.2", "", { "dependencies": { "@noble/curves": "~1.8.1", "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.2" } }, "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/@scure/bip39": ["@scure/bip39@1.5.4", "", { "dependencies": { "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.4" } }, "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/abitype": ["abitype@1.0.8", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3 >=3.22.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/isows": ["isows@1.0.6", "", { "peerDependencies": { "ws": "*" } }, "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/ox": ["ox@0.6.7", "", { "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@scure/bip32": "^1.5.0", "@scure/bip39": "^1.4.0", "abitype": "^1.0.6", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/@scure/bip32": ["@scure/bip32@1.6.2", "", { "dependencies": { "@noble/curves": "~1.8.1", "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.2" } }, "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/@scure/bip39": ["@scure/bip39@1.5.4", "", { "dependencies": { "@noble/hashes": "~1.7.1", "@scure/base": "~1.2.4" } }, "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/abitype": ["abitype@1.0.8", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3 >=3.22.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/isows": ["isows@1.0.6", "", { "peerDependencies": { "ws": "*" } }, "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/ox": ["ox@0.6.7", "", { "dependencies": { "@adraffy/ens-normalize": "^1.10.1", "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@scure/bip32": "^1.5.0", "@scure/bip39": "^1.4.0", "abitype": "^1.0.6", "eventemitter3": "5.0.1" }, "peerDependencies": { "typescript": ">=5.4.0" }, "optionalPeers": ["typescript"] }, "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="], + + "@walletconnect/utils/viem/ox/@scure/bip32/@noble/curves": ["@noble/curves@1.9.1", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA=="], + + "@metamask/eth-json-rpc-provider/@metamask/json-rpc-engine/@metamask/rpc-errors/@metamask/utils/debug/ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip32": ["@scure/bip32@1.7.0", "", { "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/abitype": ["abitype@1.2.3", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3.22.0 || ^4.0.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip32": ["@scure/bip32@1.7.0", "", { "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/abitype": ["abitype@1.2.3", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3.22.0 || ^4.0.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip32": ["@scure/bip32@1.7.0", "", { "dependencies": { "@noble/curves": "~1.9.0", "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/abitype": ["abitype@1.2.3", "", { "peerDependencies": { "typescript": ">=5.0.4", "zod": "^3.22.0 || ^4.0.0" }, "optionalPeers": ["typescript", "zod"] }, "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg=="], + + "@reown/appkit-controllers/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip32/@noble/curves": ["@noble/curves@1.9.1", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA=="], + + "@reown/appkit-utils/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip32/@noble/curves": ["@noble/curves@1.9.1", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA=="], + + "@reown/appkit/@walletconnect/universal-provider/@walletconnect/utils/viem/ox/@scure/bip32/@noble/curves": ["@noble/curves@1.9.1", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA=="], + } +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 3038fa6680f7b10eaafd00520cf5f12afcbd5392..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461446 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�*!rh*M@YTp?b5O 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 O&Qph{B=P@izyA-;HD{~< From 5384d43985dbbb20eea7127993a0ee2a9a27855c Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 16:55:08 +0200 Subject: [PATCH 13/30] refactor: Update SPDX license identifier to MIT in all Solidity files --- scripts/deploy.s.sol | 2 +- scripts/mint.s.sol | 2 +- scripts/util/BytesUtils.sol | 2 +- scripts/util/CSVUtils.sol | 2 +- scripts/util/Colors.sol | 2 +- scripts/util/ContractConfigs.sol | 2 +- scripts/util/Contracts.sol | 2 +- scripts/util/Deployer.sol | 2 +- scripts/util/ListNFTsCsvLoader.sol | 2 +- scripts/util/ListOpUtils.sol | 2 +- scripts/util/ListOpsCsvLoader.sol | 2 +- scripts/util/ListRecordUtils.sol | 2 +- scripts/util/Logger.sol | 2 +- scripts/util/StringUtils.sol | 2 +- src/EFPAccountMetadata.sol | 2 +- src/EFPListMinter.sol | 2 +- src/EFPListRecords.sol | 2 +- src/EFPListRegistry.sol | 2 +- src/TokenURIProvider.sol | 2 +- src/interfaces/IEFPAccountMetadata.sol | 2 +- src/interfaces/IEFPListNFTPriceOracle.sol | 2 +- src/interfaces/IEFPListRecords.sol | 2 +- src/interfaces/IEFPListRegistry.sol | 2 +- src/interfaces/ITokenURIProvider.sol | 2 +- src/types/ListOp.sol | 2 +- src/types/ListRecord.sol | 2 +- src/types/ListStorageLocation.sol | 2 +- test/EFPAccountMetadata.t.sol | 2 +- test/EFPListMetadata.t.sol | 2 +- test/EFPListMinter.t.sol | 2 +- test/EFPListRecords.gas.t.sol | 2 +- test/EFPListRecords.t.sol | 2 +- test/EFPListRegistry.t.sol | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/scripts/deploy.s.sol b/scripts/deploy.s.sol index f2c9a6d..c1ed666 100644 --- a/scripts/deploy.s.sol +++ b/scripts/deploy.s.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {console} from 'lib/forge-std/src/console.sol'; diff --git a/scripts/mint.s.sol b/scripts/mint.s.sol index d4666ba..c8f11f6 100644 --- a/scripts/mint.s.sol +++ b/scripts/mint.s.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {console} from 'lib/forge-std/src/console.sol'; diff --git a/scripts/util/BytesUtils.sol b/scripts/util/BytesUtils.sol index 4866519..75425c7 100644 --- a/scripts/util/BytesUtils.sol +++ b/scripts/util/BytesUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; library BytesUtils { diff --git a/scripts/util/CSVUtils.sol b/scripts/util/CSVUtils.sol index 100db01..a9afb26 100644 --- a/scripts/util/CSVUtils.sol +++ b/scripts/util/CSVUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {BytesUtils} from './BytesUtils.sol'; diff --git a/scripts/util/Colors.sol b/scripts/util/Colors.sol index 2123d29..a997850 100644 --- a/scripts/util/Colors.sol +++ b/scripts/util/Colors.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; library Colors { diff --git a/scripts/util/ContractConfigs.sol b/scripts/util/ContractConfigs.sol index 2de7bdc..11fab6c 100644 --- a/scripts/util/ContractConfigs.sol +++ b/scripts/util/ContractConfigs.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; library ContractConfigs { diff --git a/scripts/util/Contracts.sol b/scripts/util/Contracts.sol index aff6535..7e90f4b 100644 --- a/scripts/util/Contracts.sol +++ b/scripts/util/Contracts.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; struct Contracts { diff --git a/scripts/util/Deployer.sol b/scripts/util/Deployer.sol index 1d83faf..f270ac7 100644 --- a/scripts/util/Deployer.sol +++ b/scripts/util/Deployer.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import 'forge-std/console.sol'; diff --git a/scripts/util/ListNFTsCsvLoader.sol b/scripts/util/ListNFTsCsvLoader.sol index d5218b7..90f9058 100644 --- a/scripts/util/ListNFTsCsvLoader.sol +++ b/scripts/util/ListNFTsCsvLoader.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {BytesUtils} from '../util/BytesUtils.sol'; diff --git a/scripts/util/ListOpUtils.sol b/scripts/util/ListOpUtils.sol index cc3e902..554b1c5 100644 --- a/scripts/util/ListOpUtils.sol +++ b/scripts/util/ListOpUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {Colors} from './Colors.sol'; diff --git a/scripts/util/ListOpsCsvLoader.sol b/scripts/util/ListOpsCsvLoader.sol index 1a5ef65..e27262d 100644 --- a/scripts/util/ListOpsCsvLoader.sol +++ b/scripts/util/ListOpsCsvLoader.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {BytesUtils} from '../util/BytesUtils.sol'; diff --git a/scripts/util/ListRecordUtils.sol b/scripts/util/ListRecordUtils.sol index 1ecc203..c81acb3 100644 --- a/scripts/util/ListRecordUtils.sol +++ b/scripts/util/ListRecordUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {ListRecord} from '../../src/types/ListRecord.sol'; diff --git a/scripts/util/Logger.sol b/scripts/util/Logger.sol index 5cdf12e..bca9676 100644 --- a/scripts/util/Logger.sol +++ b/scripts/util/Logger.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import 'forge-std/console.sol'; diff --git a/scripts/util/StringUtils.sol b/scripts/util/StringUtils.sol index a05d77f..0943032 100644 --- a/scripts/util/StringUtils.sol +++ b/scripts/util/StringUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; library StringUtils { diff --git a/src/EFPAccountMetadata.sol b/src/EFPAccountMetadata.sol index 2c94c00..1bc623b 100644 --- a/src/EFPAccountMetadata.sol +++ b/src/EFPAccountMetadata.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {Ownable} from 'lib/openzeppelin-contracts/contracts/access/Ownable.sol'; diff --git a/src/EFPListMinter.sol b/src/EFPListMinter.sol index d62bc0c..c295061 100644 --- a/src/EFPListMinter.sol +++ b/src/EFPListMinter.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {Ownable} from 'lib/openzeppelin-contracts/contracts/access/Ownable.sol'; diff --git a/src/EFPListRecords.sol b/src/EFPListRecords.sol index 092bbbb..d780e2b 100644 --- a/src/EFPListRecords.sol +++ b/src/EFPListRecords.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {Ownable} from 'lib/openzeppelin-contracts/contracts/access/Ownable.sol'; diff --git a/src/EFPListRegistry.sol b/src/EFPListRegistry.sol index fb44006..c31c544 100644 --- a/src/EFPListRegistry.sol +++ b/src/EFPListRegistry.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {ERC721A} from 'lib/ERC721A/contracts/ERC721A.sol'; diff --git a/src/TokenURIProvider.sol b/src/TokenURIProvider.sol index 7243906..d581354 100644 --- a/src/TokenURIProvider.sol +++ b/src/TokenURIProvider.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import {Ownable} from 'lib/openzeppelin-contracts/contracts/access/Ownable.sol'; diff --git a/src/interfaces/IEFPAccountMetadata.sol b/src/interfaces/IEFPAccountMetadata.sol index 4095647..9b82f2b 100644 --- a/src/interfaces/IEFPAccountMetadata.sol +++ b/src/interfaces/IEFPAccountMetadata.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; /** diff --git a/src/interfaces/IEFPListNFTPriceOracle.sol b/src/interfaces/IEFPListNFTPriceOracle.sol index c9fd6e9..612937c 100644 --- a/src/interfaces/IEFPListNFTPriceOracle.sol +++ b/src/interfaces/IEFPListNFTPriceOracle.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; /** diff --git a/src/interfaces/IEFPListRecords.sol b/src/interfaces/IEFPListRecords.sol index 918334b..64246dd 100644 --- a/src/interfaces/IEFPListRecords.sol +++ b/src/interfaces/IEFPListRecords.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; /** diff --git a/src/interfaces/IEFPListRegistry.sol b/src/interfaces/IEFPListRegistry.sol index 823bea6..ea17fc2 100644 --- a/src/interfaces/IEFPListRegistry.sol +++ b/src/interfaces/IEFPListRegistry.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; /** diff --git a/src/interfaces/ITokenURIProvider.sol b/src/interfaces/ITokenURIProvider.sol index b8d8bca..3acc5e3 100644 --- a/src/interfaces/ITokenURIProvider.sol +++ b/src/interfaces/ITokenURIProvider.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; interface ITokenURIProvider { diff --git a/src/types/ListOp.sol b/src/types/ListOp.sol index 54ff268..be5dee9 100644 --- a/src/types/ListOp.sol +++ b/src/types/ListOp.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; /** diff --git a/src/types/ListRecord.sol b/src/types/ListRecord.sol index fbb7943..3364b5a 100644 --- a/src/types/ListRecord.sol +++ b/src/types/ListRecord.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; /** diff --git a/src/types/ListStorageLocation.sol b/src/types/ListStorageLocation.sol index fd8d322..3e862d2 100644 --- a/src/types/ListStorageLocation.sol +++ b/src/types/ListStorageLocation.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; /** diff --git a/test/EFPAccountMetadata.t.sol b/test/EFPAccountMetadata.t.sol index 13d54d5..53c3e96 100644 --- a/test/EFPAccountMetadata.t.sol +++ b/test/EFPAccountMetadata.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import 'forge-std/Test.sol'; diff --git a/test/EFPListMetadata.t.sol b/test/EFPListMetadata.t.sol index c1e9bd2..efa7881 100644 --- a/test/EFPListMetadata.t.sol +++ b/test/EFPListMetadata.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import 'forge-std/Test.sol'; diff --git a/test/EFPListMinter.t.sol b/test/EFPListMinter.t.sol index 2c25a62..fc681c2 100644 --- a/test/EFPListMinter.t.sol +++ b/test/EFPListMinter.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; // import "forge-std/Test.sol"; diff --git a/test/EFPListRecords.gas.t.sol b/test/EFPListRecords.gas.t.sol index 112d340..b4b773d 100644 --- a/test/EFPListRecords.gas.t.sol +++ b/test/EFPListRecords.gas.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import 'forge-std/Test.sol'; diff --git a/test/EFPListRecords.t.sol b/test/EFPListRecords.t.sol index 2f9f7db..831356c 100644 --- a/test/EFPListRecords.t.sol +++ b/test/EFPListRecords.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import 'forge-std/Test.sol'; diff --git a/test/EFPListRegistry.t.sol b/test/EFPListRegistry.t.sol index e0a89ce..d4e899b 100644 --- a/test/EFPListRegistry.t.sol +++ b/test/EFPListRegistry.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: UNLICENSED +// SPDX-License-Identifier: MIT pragma solidity ^0.8.23; import 'forge-std/Test.sol'; From 72862fa7ddd3245c0f70e93525cdfbbe22be8024 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 17:07:10 +0200 Subject: [PATCH 14/30] chore(dockerfiles): update to use bun.lock * Aligns both `Dockerfile` and `Dockerfile.devnet` to use the new `bun.lock` file for dependency installation. * Reflects Bun's transition from the binary `bun.lockb` to the human-readable `bun.lock` format. * Includes minor formatting adjustments for `RUN` commands. --- Dockerfile | 22 +++++++++++----------- Dockerfile.devnet | 12 ++++++------ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 18e94cf..aee3ce0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,20 +3,20 @@ FROM oven/bun:latest as setup RUN apt-get update \ && apt-get install -y \ - ca-certificates \ - curl \ - git \ - gnupg \ - tree \ + ca-certificates \ + curl \ + git \ + gnupg \ + tree \ && rm -rf /var/lib/apt/lists/* # install nodejs RUN mkdir -p /etc/apt/keyrings \ - && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ - && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ - && apt-get update \ - && apt-get install -y nodejs \ - && rm -rf /var/lib/apt/lists/* + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ + && apt-get install -y nodejs \ + && rm -rf /var/lib/apt/lists/* # install foundryup RUN curl -L https://foundry.paradigm.xyz | bash @@ -26,7 +26,7 @@ RUN foundryup WORKDIR /usr/src/app # install project dependencies -COPY bun.lockb package.json ./ +COPY bun.lock package.json ./ RUN bun install --production --frozen-lockfile # copy the rest of the project diff --git a/Dockerfile.devnet b/Dockerfile.devnet index 0a3e9bc..df1ec07 100644 --- a/Dockerfile.devnet +++ b/Dockerfile.devnet @@ -2,11 +2,11 @@ FROM oven/bun:1.2.13 # Install system dependencies RUN apt-get update && apt-get install -y \ - curl \ - git \ - build-essential \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* + curl \ + git \ + build-essential \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* # Install Foundry RUN curl -L https://foundry.paradigm.xyz | bash @@ -16,7 +16,7 @@ RUN foundryup WORKDIR /app # Install dependencies -COPY package.json bun.lockb ./ +COPY package.json bun.lock ./ RUN bun install --frozen-lockfile # Copy source and build contracts From 0f63bd1a0ac373ae010de9aec14e6e1da805148f Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 17:28:39 +0200 Subject: [PATCH 15/30] chore(dockerignore): explicitly include bun.lock for docker builds * Adds an exception to `.dockerignore` to prevent `bun.lock` from being excluded from the Docker build context. * This is necessary as `bun.lock` has replaced `bun.lockb` as the standard lockfile for Bun 1.x. * Ensures Docker builds can properly utilize the new lockfile format for consistent dependency management, aligning with recent Dockerfile updates. --- .dockerignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.dockerignore b/.dockerignore index 6ff2c99..c4e1c5f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,6 +3,7 @@ # except for !.gitmodules !bun.lockb +!bun.lock !foundry.toml !package.json !solhint.json From 8d72481f7cd6ddd478cafa13810dbece3e55bcbf Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 18:33:30 +0200 Subject: [PATCH 16/30] fix(devnet): remove extraneous brace in shutdown handlers --- scripts/devnet/shutdown.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/devnet/shutdown.ts b/scripts/devnet/shutdown.ts index 6a9f376..6b69183 100644 --- a/scripts/devnet/shutdown.ts +++ b/scripts/devnet/shutdown.ts @@ -23,7 +23,6 @@ export function registerShutdownHandlers() { await shutdown('uncaughtException', 1) }) } -} export async function keepAlive() { await new Promise(() => {}) From 1dc38a296350c6d332bcb2cf0a016b5bfa7a4cd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nejc=20Drobni=C4=8D?= Date: Sat, 30 May 2026 19:05:59 +0200 Subject: [PATCH 17/30] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/build-devnet.yml | 2 +- scripts/devnet/scenarios.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-devnet.yml b/.github/workflows/build-devnet.yml index 645f61a..19f2d00 100644 --- a/.github/workflows/build-devnet.yml +++ b/.github/workflows/build-devnet.yml @@ -4,12 +4,12 @@ on: push: branches: [main] pull_request: - paths: - 'src/**' - 'scripts/**' - 'lib/**' - 'generated/**' - 'Dockerfile.devnet' + - '.dockerignore' - 'compose.yml' - 'compose.attach.yml' - 'foundry.toml' diff --git a/scripts/devnet/scenarios.ts b/scripts/devnet/scenarios.ts index ec7825c..775bdf3 100644 --- a/scripts/devnet/scenarios.ts +++ b/scripts/devnet/scenarios.ts @@ -111,5 +111,6 @@ export const scenarios = { empty, minimal, demoGraph } satisfies Record Date: Sat, 30 May 2026 19:17:03 +0200 Subject: [PATCH 18/30] feat: Introduce 'blockTime' for Anvil interval mining --- scripts/devnet/anvil.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/devnet/anvil.ts b/scripts/devnet/anvil.ts index 820b5d5..5f1d1c2 100644 --- a/scripts/devnet/anvil.ts +++ b/scripts/devnet/anvil.ts @@ -6,24 +6,29 @@ export async function startAnvil({ port, chainId, host, - autoMine, + blockTime, procLog }: { port: number chainId: number host: string - autoMine: boolean + /** Interval mining period in seconds. `0` keeps Anvil's default instant automining. */ + blockTime: number procLog: boolean }): Promise { // NOTE: do not pass `silent: true` — prool resolves `start()` by waiting for // anvil's "Listening on" stdout message, which `silent` would suppress. + // + // `blockTime > 0` => interval mining (a block every N seconds). + // `blockTime === 0` => omit the flag, leaving Anvil's default instant + // automining (mine immediately on each transaction). const instance = Instance.anvil({ port, chainId, host, mnemonic: DEVNET_MNEMONIC, accounts: 10, - ...(autoMine ? { blockTime: 1 } : {}) + ...(blockTime > 0 ? { blockTime } : {}) }) if (procLog) { From 9bcb53d193c60234323955963d9d46e0405081e0 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 19:17:04 +0200 Subject: [PATCH 19/30] refactor(devnet): Update SetupDevnetOptions to use 'blockTime' --- scripts/devnet/types.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/devnet/types.ts b/scripts/devnet/types.ts index 9e2fbcf..ee776b1 100644 --- a/scripts/devnet/types.ts +++ b/scripts/devnet/types.ts @@ -66,8 +66,11 @@ export type SetupDevnetOptions = { chainId?: number /** Host to bind when spawning a node. @default 127.0.0.1 */ host?: string - /** Interval-mine every second when spawning a node. @default true */ - autoMine?: boolean + /** + * Interval mining period in seconds when spawning a node. `0` keeps Anvil's + * default instant automining (mine on each transaction). @default 1 + */ + blockTime?: number /** Forward anvil stdout/stderr to the console. @default false */ procLog?: boolean /** Persist `deployments/devnet-.json` for downstream consumers. @default false */ From 898ed76eea3488f60ad775b329f19aebc204a612 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 19:17:04 +0200 Subject: [PATCH 20/30] refactor(devnet): Use 'blockTime' in setupDevnet function --- scripts/devnet/setup.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/devnet/setup.ts b/scripts/devnet/setup.ts index a823666..caedc66 100644 --- a/scripts/devnet/setup.ts +++ b/scripts/devnet/setup.ts @@ -39,7 +39,7 @@ export async function setupDevnet(options: SetupDevnetOptions = {}): Promise Date: Sat, 30 May 2026 19:17:04 +0200 Subject: [PATCH 21/30] refactor(scripts): Replace --no-auto-mine with --block-time in runDevnet --- scripts/runDevnet.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/runDevnet.ts b/scripts/runDevnet.ts index 44c8e4a..7959328 100644 --- a/scripts/runDevnet.ts +++ b/scripts/runDevnet.ts @@ -17,7 +17,7 @@ const args = parseArgs({ host: { type: 'string', default: process.env.DEVNET_HOST ?? '127.0.0.1' }, scenario: { type: 'string', default: process.env.DEVNET_SCENARIO ?? 'empty' }, 'save-deployments': { type: 'boolean', default: process.env.DEVNET_SAVE_DEPLOYMENTS !== 'false' }, - 'no-auto-mine': { type: 'boolean', default: false }, + 'block-time': { type: 'string', default: process.env.DEVNET_BLOCK_TIME ?? '1' }, 'proc-log': { type: 'boolean', default: false }, 'health-port': { type: 'string', default: process.env.DEVNET_HEALTH_PORT ?? '8000' } }, @@ -41,7 +41,7 @@ const env = await setupDevnet({ port: Number(args.values.port), chainId: Number(args.values['chain-id']), host, - autoMine: !args.values['no-auto-mine'], + blockTime: Number(args.values['block-time']), procLog: args.values['proc-log'] ?? false, saveDeployments: args.values['save-deployments'] ?? true, quiet: !(args.values['proc-log'] ?? false) From a49cfe09bc0fb2e0627f6cb3a8626d39ecd67414 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 20:00:50 +0200 Subject: [PATCH 22/30] ci(build-devnet): limit pull request triggers to relevant paths Only run the devnet build workflow on pull requests when changes are detected in source code, scripts, or libraries. This optimizes CI resource usage by preventing unnecessary builds for changes in unrelated files. --- .github/workflows/build-devnet.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-devnet.yml b/.github/workflows/build-devnet.yml index 19f2d00..ba93aef 100644 --- a/.github/workflows/build-devnet.yml +++ b/.github/workflows/build-devnet.yml @@ -4,6 +4,7 @@ on: push: branches: [main] pull_request: + paths: - 'src/**' - 'scripts/**' - 'lib/**' From d50b2691727d6a6ce9aeba2e9febd60c48c02505 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sat, 30 May 2026 22:40:44 +0200 Subject: [PATCH 23/30] style(scripts): remove extraneous closing brace --- scripts/devnet/scenarios.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/devnet/scenarios.ts b/scripts/devnet/scenarios.ts index 775bdf3..b646242 100644 --- a/scripts/devnet/scenarios.ts +++ b/scripts/devnet/scenarios.ts @@ -113,4 +113,3 @@ export type ScenarioName = keyof typeof scenarios export function isScenarioName(value: string): value is ScenarioName { return Object.hasOwn(scenarios, value) } -} From 2bd95431f0bf1fdcfe4b861ba352f3183e49b471 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sun, 31 May 2026 06:39:17 +0200 Subject: [PATCH 24/30] feat(devnet): integrate devnet tests into CI and refine runtime options * add a dedicated CI job to automate devnet integration tests * enhance devnet stability by handling unhandled promise rejections during shutdown * introduce `--no-save-deployments` flag for `runDevnet.ts`, offering clearer control over deployment persistence --- .github/workflows/test.yml | 24 ++++++++++++++++++++++++ scripts/devnet/shutdown.ts | 4 ++++ scripts/runDevnet.ts | 11 +++++++++-- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c3e7435..f8d846a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,3 +41,27 @@ jobs: run: | forge test -vvv id: test + + devnet: + name: Devnet integration tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4.1.1 + with: + submodules: recursive + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Install Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.2.13 + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Run devnet integration tests + run: bun run devnet:test diff --git a/scripts/devnet/shutdown.ts b/scripts/devnet/shutdown.ts index 6b69183..7f4728d 100644 --- a/scripts/devnet/shutdown.ts +++ b/scripts/devnet/shutdown.ts @@ -22,6 +22,10 @@ export function registerShutdownHandlers() { console.error(error) await shutdown('uncaughtException', 1) }) + process.once('unhandledRejection', async (reason) => { + console.error(reason) + await shutdown('unhandledRejection', 1) + }) } export async function keepAlive() { diff --git a/scripts/runDevnet.ts b/scripts/runDevnet.ts index 7959328..566002f 100644 --- a/scripts/runDevnet.ts +++ b/scripts/runDevnet.ts @@ -16,7 +16,8 @@ const args = parseArgs({ 'chain-id': { type: 'string', default: process.env.DEVNET_CHAIN_ID ?? '31337' }, host: { type: 'string', default: process.env.DEVNET_HOST ?? '127.0.0.1' }, scenario: { type: 'string', default: process.env.DEVNET_SCENARIO ?? 'empty' }, - 'save-deployments': { type: 'boolean', default: process.env.DEVNET_SAVE_DEPLOYMENTS !== 'false' }, + 'save-deployments': { type: 'boolean' }, + 'no-save-deployments': { type: 'boolean' }, 'block-time': { type: 'string', default: process.env.DEVNET_BLOCK_TIME ?? '1' }, 'proc-log': { type: 'boolean', default: false }, 'health-port': { type: 'string', default: process.env.DEVNET_HEALTH_PORT ?? '8000' } @@ -33,6 +34,12 @@ if (!isScenarioName(scenarioName)) { const host = args.values.host! const healthPort = Number(args.values['health-port']) +// Node's parseArgs has no native `--no-*` negation, so resolve precedence +// explicitly: --no-save-deployments > --save-deployments > env default (on). +const saveDeployments = args.values['no-save-deployments'] + ? false + : (args.values['save-deployments'] ?? process.env.DEVNET_SAVE_DEPLOYMENTS !== 'false') + registerShutdownHandlers() console.log('Starting EFP devnet...') @@ -43,7 +50,7 @@ const env = await setupDevnet({ host, blockTime: Number(args.values['block-time']), procLog: args.values['proc-log'] ?? false, - saveDeployments: args.values['save-deployments'] ?? true, + saveDeployments, quiet: !(args.values['proc-log'] ?? false) }) onShutdown(() => env.shutdown()) From 7140d248929f5001913afcd4b9dbaaccd3e23446 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sun, 31 May 2026 07:42:34 +0200 Subject: [PATCH 25/30] chore(solidity): update SPDX license identifier to UNLICENSED --- scripts/deploy.s.sol | 2 +- scripts/mint.s.sol | 2 +- scripts/util/BytesUtils.sol | 2 +- scripts/util/CSVUtils.sol | 2 +- scripts/util/Colors.sol | 2 +- scripts/util/ContractConfigs.sol | 2 +- scripts/util/Contracts.sol | 2 +- scripts/util/Deployer.sol | 2 +- scripts/util/ListNFTsCsvLoader.sol | 2 +- scripts/util/ListOpUtils.sol | 2 +- scripts/util/ListOpsCsvLoader.sol | 2 +- scripts/util/ListRecordUtils.sol | 2 +- scripts/util/Logger.sol | 2 +- scripts/util/StringUtils.sol | 2 +- src/EFPAccountMetadata.sol | 2 +- src/EFPListMinter.sol | 2 +- src/EFPListRecords.sol | 2 +- src/EFPListRegistry.sol | 2 +- src/TokenURIProvider.sol | 2 +- src/interfaces/IEFPAccountMetadata.sol | 2 +- src/interfaces/IEFPListNFTPriceOracle.sol | 2 +- src/interfaces/IEFPListRecords.sol | 2 +- src/interfaces/IEFPListRegistry.sol | 2 +- src/interfaces/ITokenURIProvider.sol | 2 +- src/types/ListOp.sol | 2 +- src/types/ListRecord.sol | 2 +- src/types/ListStorageLocation.sol | 2 +- test/EFPAccountMetadata.t.sol | 2 +- test/EFPListMetadata.t.sol | 2 +- test/EFPListMinter.t.sol | 2 +- test/EFPListRecords.gas.t.sol | 2 +- test/EFPListRecords.t.sol | 2 +- test/EFPListRegistry.t.sol | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/scripts/deploy.s.sol b/scripts/deploy.s.sol index c1ed666..f2c9a6d 100644 --- a/scripts/deploy.s.sol +++ b/scripts/deploy.s.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {console} from 'lib/forge-std/src/console.sol'; diff --git a/scripts/mint.s.sol b/scripts/mint.s.sol index c8f11f6..d4666ba 100644 --- a/scripts/mint.s.sol +++ b/scripts/mint.s.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {console} from 'lib/forge-std/src/console.sol'; diff --git a/scripts/util/BytesUtils.sol b/scripts/util/BytesUtils.sol index 75425c7..4866519 100644 --- a/scripts/util/BytesUtils.sol +++ b/scripts/util/BytesUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; library BytesUtils { diff --git a/scripts/util/CSVUtils.sol b/scripts/util/CSVUtils.sol index a9afb26..100db01 100644 --- a/scripts/util/CSVUtils.sol +++ b/scripts/util/CSVUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {BytesUtils} from './BytesUtils.sol'; diff --git a/scripts/util/Colors.sol b/scripts/util/Colors.sol index a997850..2123d29 100644 --- a/scripts/util/Colors.sol +++ b/scripts/util/Colors.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; library Colors { diff --git a/scripts/util/ContractConfigs.sol b/scripts/util/ContractConfigs.sol index 11fab6c..2de7bdc 100644 --- a/scripts/util/ContractConfigs.sol +++ b/scripts/util/ContractConfigs.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; library ContractConfigs { diff --git a/scripts/util/Contracts.sol b/scripts/util/Contracts.sol index 7e90f4b..aff6535 100644 --- a/scripts/util/Contracts.sol +++ b/scripts/util/Contracts.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; struct Contracts { diff --git a/scripts/util/Deployer.sol b/scripts/util/Deployer.sol index f270ac7..1d83faf 100644 --- a/scripts/util/Deployer.sol +++ b/scripts/util/Deployer.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import 'forge-std/console.sol'; diff --git a/scripts/util/ListNFTsCsvLoader.sol b/scripts/util/ListNFTsCsvLoader.sol index 90f9058..d5218b7 100644 --- a/scripts/util/ListNFTsCsvLoader.sol +++ b/scripts/util/ListNFTsCsvLoader.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {BytesUtils} from '../util/BytesUtils.sol'; diff --git a/scripts/util/ListOpUtils.sol b/scripts/util/ListOpUtils.sol index 554b1c5..cc3e902 100644 --- a/scripts/util/ListOpUtils.sol +++ b/scripts/util/ListOpUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {Colors} from './Colors.sol'; diff --git a/scripts/util/ListOpsCsvLoader.sol b/scripts/util/ListOpsCsvLoader.sol index e27262d..1a5ef65 100644 --- a/scripts/util/ListOpsCsvLoader.sol +++ b/scripts/util/ListOpsCsvLoader.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {BytesUtils} from '../util/BytesUtils.sol'; diff --git a/scripts/util/ListRecordUtils.sol b/scripts/util/ListRecordUtils.sol index c81acb3..1ecc203 100644 --- a/scripts/util/ListRecordUtils.sol +++ b/scripts/util/ListRecordUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {ListRecord} from '../../src/types/ListRecord.sol'; diff --git a/scripts/util/Logger.sol b/scripts/util/Logger.sol index bca9676..5cdf12e 100644 --- a/scripts/util/Logger.sol +++ b/scripts/util/Logger.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import 'forge-std/console.sol'; diff --git a/scripts/util/StringUtils.sol b/scripts/util/StringUtils.sol index 0943032..a05d77f 100644 --- a/scripts/util/StringUtils.sol +++ b/scripts/util/StringUtils.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; library StringUtils { diff --git a/src/EFPAccountMetadata.sol b/src/EFPAccountMetadata.sol index 1bc623b..2c94c00 100644 --- a/src/EFPAccountMetadata.sol +++ b/src/EFPAccountMetadata.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {Ownable} from 'lib/openzeppelin-contracts/contracts/access/Ownable.sol'; diff --git a/src/EFPListMinter.sol b/src/EFPListMinter.sol index c295061..d62bc0c 100644 --- a/src/EFPListMinter.sol +++ b/src/EFPListMinter.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {Ownable} from 'lib/openzeppelin-contracts/contracts/access/Ownable.sol'; diff --git a/src/EFPListRecords.sol b/src/EFPListRecords.sol index d780e2b..092bbbb 100644 --- a/src/EFPListRecords.sol +++ b/src/EFPListRecords.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {Ownable} from 'lib/openzeppelin-contracts/contracts/access/Ownable.sol'; diff --git a/src/EFPListRegistry.sol b/src/EFPListRegistry.sol index c31c544..fb44006 100644 --- a/src/EFPListRegistry.sol +++ b/src/EFPListRegistry.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {ERC721A} from 'lib/ERC721A/contracts/ERC721A.sol'; diff --git a/src/TokenURIProvider.sol b/src/TokenURIProvider.sol index d581354..7243906 100644 --- a/src/TokenURIProvider.sol +++ b/src/TokenURIProvider.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import {Ownable} from 'lib/openzeppelin-contracts/contracts/access/Ownable.sol'; diff --git a/src/interfaces/IEFPAccountMetadata.sol b/src/interfaces/IEFPAccountMetadata.sol index 9b82f2b..4095647 100644 --- a/src/interfaces/IEFPAccountMetadata.sol +++ b/src/interfaces/IEFPAccountMetadata.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; /** diff --git a/src/interfaces/IEFPListNFTPriceOracle.sol b/src/interfaces/IEFPListNFTPriceOracle.sol index 612937c..c9fd6e9 100644 --- a/src/interfaces/IEFPListNFTPriceOracle.sol +++ b/src/interfaces/IEFPListNFTPriceOracle.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; /** diff --git a/src/interfaces/IEFPListRecords.sol b/src/interfaces/IEFPListRecords.sol index 64246dd..918334b 100644 --- a/src/interfaces/IEFPListRecords.sol +++ b/src/interfaces/IEFPListRecords.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; /** diff --git a/src/interfaces/IEFPListRegistry.sol b/src/interfaces/IEFPListRegistry.sol index ea17fc2..823bea6 100644 --- a/src/interfaces/IEFPListRegistry.sol +++ b/src/interfaces/IEFPListRegistry.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; /** diff --git a/src/interfaces/ITokenURIProvider.sol b/src/interfaces/ITokenURIProvider.sol index 3acc5e3..b8d8bca 100644 --- a/src/interfaces/ITokenURIProvider.sol +++ b/src/interfaces/ITokenURIProvider.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; interface ITokenURIProvider { diff --git a/src/types/ListOp.sol b/src/types/ListOp.sol index be5dee9..54ff268 100644 --- a/src/types/ListOp.sol +++ b/src/types/ListOp.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; /** diff --git a/src/types/ListRecord.sol b/src/types/ListRecord.sol index 3364b5a..fbb7943 100644 --- a/src/types/ListRecord.sol +++ b/src/types/ListRecord.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; /** diff --git a/src/types/ListStorageLocation.sol b/src/types/ListStorageLocation.sol index 3e862d2..fd8d322 100644 --- a/src/types/ListStorageLocation.sol +++ b/src/types/ListStorageLocation.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; /** diff --git a/test/EFPAccountMetadata.t.sol b/test/EFPAccountMetadata.t.sol index 53c3e96..13d54d5 100644 --- a/test/EFPAccountMetadata.t.sol +++ b/test/EFPAccountMetadata.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import 'forge-std/Test.sol'; diff --git a/test/EFPListMetadata.t.sol b/test/EFPListMetadata.t.sol index efa7881..c1e9bd2 100644 --- a/test/EFPListMetadata.t.sol +++ b/test/EFPListMetadata.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import 'forge-std/Test.sol'; diff --git a/test/EFPListMinter.t.sol b/test/EFPListMinter.t.sol index fc681c2..2c25a62 100644 --- a/test/EFPListMinter.t.sol +++ b/test/EFPListMinter.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; // import "forge-std/Test.sol"; diff --git a/test/EFPListRecords.gas.t.sol b/test/EFPListRecords.gas.t.sol index b4b773d..112d340 100644 --- a/test/EFPListRecords.gas.t.sol +++ b/test/EFPListRecords.gas.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import 'forge-std/Test.sol'; diff --git a/test/EFPListRecords.t.sol b/test/EFPListRecords.t.sol index 831356c..2f9f7db 100644 --- a/test/EFPListRecords.t.sol +++ b/test/EFPListRecords.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import 'forge-std/Test.sol'; diff --git a/test/EFPListRegistry.t.sol b/test/EFPListRegistry.t.sol index d4e899b..e0a89ce 100644 --- a/test/EFPListRegistry.t.sol +++ b/test/EFPListRegistry.t.sol @@ -1,4 +1,4 @@ -// SPDX-License-Identifier: MIT +// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.23; import 'forge-std/Test.sol'; From 65a94a01d493145fec41471916cb6c946766f2d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nejc=20Drobni=C4=8D?= Date: Sun, 31 May 2026 18:53:11 +0200 Subject: [PATCH 26/30] Update scripts/devnet/anvil.ts Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --- scripts/devnet/anvil.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/devnet/anvil.ts b/scripts/devnet/anvil.ts index 5f1d1c2..1519855 100644 --- a/scripts/devnet/anvil.ts +++ b/scripts/devnet/anvil.ts @@ -43,7 +43,6 @@ export async function startAnvil({ wsUrl: `ws://${rpcHost}:${port}`, chainId, stop: async () => { - await instance.stop() await stopFn() } } From 94616d2f6520f1171ac04910acce7c2f6660656a Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sun, 31 May 2026 18:55:35 +0200 Subject: [PATCH 27/30] ci(build-devnet): update push trigger branch to master --- .github/workflows/build-devnet.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-devnet.yml b/.github/workflows/build-devnet.yml index ba93aef..95a64a8 100644 --- a/.github/workflows/build-devnet.yml +++ b/.github/workflows/build-devnet.yml @@ -2,7 +2,7 @@ name: build-devnet on: push: - branches: [main] + branches: [master] pull_request: paths: - 'src/**' From 5944bc35427b8e936e3397cc8398f7afb7a36681 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sun, 31 May 2026 19:00:04 +0200 Subject: [PATCH 28/30] feat(devnet): pin Foundry version in Dockerfile --- Dockerfile.devnet | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile.devnet b/Dockerfile.devnet index df1ec07..d6f1139 100644 --- a/Dockerfile.devnet +++ b/Dockerfile.devnet @@ -8,10 +8,11 @@ RUN apt-get update && apt-get install -y \ ca-certificates \ && rm -rf /var/lib/apt/lists/* -# Install Foundry -RUN curl -L https://foundry.paradigm.xyz | bash +# Install Foundry, pinned to a specific release for reproducible builds. +# Override at build time with: --build-arg FOUNDRY_VERSION=v1.7.0 +ARG FOUNDRY_VERSION=v1.7.1 ENV PATH="/root/.foundry/bin:${PATH}" -RUN foundryup +RUN curl -L https://foundry.paradigm.xyz | bash && foundryup --install "${FOUNDRY_VERSION}" WORKDIR /app From 91f847b7bf0c785ad3393b9e979b7b4d2cdc9bbf Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sun, 31 May 2026 19:00:04 +0200 Subject: [PATCH 29/30] fix(devnet): improve private key security in deploy script --- scripts/devnet/deploy.ts | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/scripts/devnet/deploy.ts b/scripts/devnet/deploy.ts index 10e1126..0427ec6 100644 --- a/scripts/devnet/deploy.ts +++ b/scripts/devnet/deploy.ts @@ -35,29 +35,19 @@ export async function deployContracts({ privateKey: Hex quiet?: boolean }): Promise { - const proc = Bun.spawn( - [ - 'forge', - 'script', - 'scripts/deploy.s.sol', - '--rpc-url', - rpcUrl, - '--broadcast', - '--private-key', - privateKey, - '--slow' - ], - { - cwd: process.cwd(), - stdout: quiet ? 'ignore' : 'inherit', - stderr: 'inherit', - env: { - ...process.env, - PRIVATE_KEY: privateKey, - FOUNDRY_DISABLE_NIGHTLY_WARNING: 'true' - } + // deploy.s.sol broadcasts with `vm.startBroadcast(vm.envUint('PRIVATE_KEY'))`, + // so the key is passed via the env var only — never as a CLI arg, which would + // otherwise be visible to other users via `ps`/`/proc//cmdline`. + const proc = Bun.spawn(['forge', 'script', 'scripts/deploy.s.sol', '--rpc-url', rpcUrl, '--broadcast', '--slow'], { + cwd: process.cwd(), + stdout: quiet ? 'ignore' : 'inherit', + stderr: 'inherit', + env: { + ...process.env, + PRIVATE_KEY: privateKey, + FOUNDRY_DISABLE_NIGHTLY_WARNING: 'true' } - ) + }) const exitCode = await proc.exited if (exitCode !== 0) { From e48f99b7fbbbb880e1ea24bd661b58e42a4a4ce2 Mon Sep 17 00:00:00 2001 From: Nejc Drobnic Date: Sun, 31 May 2026 19:16:21 +0200 Subject: [PATCH 30/30] fix(devnet): stop anvil on setup failure ensure the Anvil instance is stopped if an error occurs during the devnet setup process, preventing orphaned processes. --- scripts/devnet/setup.ts | 63 ++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/scripts/devnet/setup.ts b/scripts/devnet/setup.ts index caedc66..771e60c 100644 --- a/scripts/devnet/setup.ts +++ b/scripts/devnet/setup.ts @@ -62,39 +62,44 @@ export async function setupDevnet(options: SetupDevnetOptions = {}): Promise client.snapshot(), - revert: (id) => client.revert({ id }), - mine: (blocks = 1) => client.mine({ blocks }), - shutdown: async () => { - if (anvil) await anvil.stop() + return { + rpcUrl, + wsUrl, + chainId, + external, + client, + accounts, + deployer: accounts.deployer, + deployments, + contracts, + snapshot: () => client.snapshot(), + revert: (id) => client.revert({ id }), + mine: (blocks = 1) => client.mine({ blocks }), + shutdown: async () => { + if (anvil) await anvil.stop() + } } + } catch (error) { + if (anvil) await anvil.stop() + throw error } }