From 35c517a7b8fba344fd6e178a3ac0a6d340c6de1a Mon Sep 17 00:00:00 2001
From: zhen <770226915@qq.com>
Date: Thu, 12 Sep 2024 23:02:15 +0800
Subject: [PATCH] chore
---
.../components/{ => scaffold-eth}/Address.vue | 0
.../components/{ => scaffold-eth}/Balance.vue | 0
.../{ => scaffold-eth}/BlockieAvatar.vue | 0
.../{ => scaffold-eth}/FaucetButton.vue | 0
.../{ => scaffold-eth}/WalletConnect.vue | 0
.../scaffold-eth/debug/DebugContracts.vue | 19 +
nuxt/contracts/deployedContracts.ts | 706 ++++++++++++++++++
nuxt/contracts/externalContracts.ts | 16 +
nuxt/nuxt.config.ts | 9 +-
nuxt/pages/debug/index.vue | 1 +
nuxt/utils/scaffold-eth/contract.ts | 309 +++++++-
nuxt/utils/scaffold-eth/contractsData.ts | 7 +
package.json | 3 +
.../hardhat/contracts/YourCollectible.sol | 67 ++
.../hardhat/deploy/01_deploy_your_contract.ts | 43 ++
packages/hardhat/deploy/99_generateTsAbis.ts | 3 +-
.../nextjs/contracts/deployedContracts.ts | 553 +++++++++++++-
pnpm-lock.yaml | 456 +++++------
18 files changed, 1935 insertions(+), 257 deletions(-)
rename nuxt/components/{ => scaffold-eth}/Address.vue (100%)
rename nuxt/components/{ => scaffold-eth}/Balance.vue (100%)
rename nuxt/components/{ => scaffold-eth}/BlockieAvatar.vue (100%)
rename nuxt/components/{ => scaffold-eth}/FaucetButton.vue (100%)
rename nuxt/components/{ => scaffold-eth}/WalletConnect.vue (100%)
create mode 100644 nuxt/components/scaffold-eth/debug/DebugContracts.vue
create mode 100644 nuxt/contracts/deployedContracts.ts
create mode 100644 nuxt/contracts/externalContracts.ts
create mode 100644 nuxt/utils/scaffold-eth/contractsData.ts
create mode 100644 packages/hardhat/contracts/YourCollectible.sol
create mode 100644 packages/hardhat/deploy/01_deploy_your_contract.ts
diff --git a/nuxt/components/Address.vue b/nuxt/components/scaffold-eth/Address.vue
similarity index 100%
rename from nuxt/components/Address.vue
rename to nuxt/components/scaffold-eth/Address.vue
diff --git a/nuxt/components/Balance.vue b/nuxt/components/scaffold-eth/Balance.vue
similarity index 100%
rename from nuxt/components/Balance.vue
rename to nuxt/components/scaffold-eth/Balance.vue
diff --git a/nuxt/components/BlockieAvatar.vue b/nuxt/components/scaffold-eth/BlockieAvatar.vue
similarity index 100%
rename from nuxt/components/BlockieAvatar.vue
rename to nuxt/components/scaffold-eth/BlockieAvatar.vue
diff --git a/nuxt/components/FaucetButton.vue b/nuxt/components/scaffold-eth/FaucetButton.vue
similarity index 100%
rename from nuxt/components/FaucetButton.vue
rename to nuxt/components/scaffold-eth/FaucetButton.vue
diff --git a/nuxt/components/WalletConnect.vue b/nuxt/components/scaffold-eth/WalletConnect.vue
similarity index 100%
rename from nuxt/components/WalletConnect.vue
rename to nuxt/components/scaffold-eth/WalletConnect.vue
diff --git a/nuxt/components/scaffold-eth/debug/DebugContracts.vue b/nuxt/components/scaffold-eth/debug/DebugContracts.vue
new file mode 100644
index 0000000..9510d66
--- /dev/null
+++ b/nuxt/components/scaffold-eth/debug/DebugContracts.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+ No contracts found!
+
+
+
+
+
+
diff --git a/nuxt/contracts/deployedContracts.ts b/nuxt/contracts/deployedContracts.ts
new file mode 100644
index 0000000..6fd43b0
--- /dev/null
+++ b/nuxt/contracts/deployedContracts.ts
@@ -0,0 +1,706 @@
+/**
+ * This file is autogenerated by Scaffold-ETH.
+ * You should not edit it manually or your changes might be overwritten.
+ */
+import type { GenericContractsDeclaration } from '~~/utils/scaffold-eth/contract'
+
+const deployedContracts = {
+ 31337: {
+ YourCollectible: {
+ address: '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0',
+ abi: [
+ {
+ inputs: [],
+ stateMutability: 'nonpayable',
+ type: 'constructor',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'owner',
+ type: 'address',
+ },
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'approved',
+ type: 'address',
+ },
+ {
+ indexed: true,
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'Approval',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'owner',
+ type: 'address',
+ },
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'operator',
+ type: 'address',
+ },
+ {
+ indexed: false,
+ internalType: 'bool',
+ name: 'approved',
+ type: 'bool',
+ },
+ ],
+ name: 'ApprovalForAll',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: 'uint256',
+ name: '_fromTokenId',
+ type: 'uint256',
+ },
+ {
+ indexed: false,
+ internalType: 'uint256',
+ name: '_toTokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'BatchMetadataUpdate',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: 'uint256',
+ name: '_tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'MetadataUpdate',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'previousOwner',
+ type: 'address',
+ },
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'newOwner',
+ type: 'address',
+ },
+ ],
+ name: 'OwnershipTransferred',
+ type: 'event',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'from',
+ type: 'address',
+ },
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'to',
+ type: 'address',
+ },
+ {
+ indexed: true,
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'Transfer',
+ type: 'event',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'to',
+ type: 'address',
+ },
+ {
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'approve',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'owner',
+ type: 'address',
+ },
+ ],
+ name: 'balanceOf',
+ outputs: [
+ {
+ internalType: 'uint256',
+ name: '',
+ type: 'uint256',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'getApproved',
+ outputs: [
+ {
+ internalType: 'address',
+ name: '',
+ type: 'address',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'owner',
+ type: 'address',
+ },
+ {
+ internalType: 'address',
+ name: 'operator',
+ type: 'address',
+ },
+ ],
+ name: 'isApprovedForAll',
+ outputs: [
+ {
+ internalType: 'bool',
+ name: '',
+ type: 'bool',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'to',
+ type: 'address',
+ },
+ {
+ internalType: 'string',
+ name: 'uri',
+ type: 'string',
+ },
+ ],
+ name: 'mintItem',
+ outputs: [
+ {
+ internalType: 'uint256',
+ name: '',
+ type: 'uint256',
+ },
+ ],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'name',
+ outputs: [
+ {
+ internalType: 'string',
+ name: '',
+ type: 'string',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'owner',
+ outputs: [
+ {
+ internalType: 'address',
+ name: '',
+ type: 'address',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'ownerOf',
+ outputs: [
+ {
+ internalType: 'address',
+ name: '',
+ type: 'address',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'renounceOwnership',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'from',
+ type: 'address',
+ },
+ {
+ internalType: 'address',
+ name: 'to',
+ type: 'address',
+ },
+ {
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'safeTransferFrom',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'from',
+ type: 'address',
+ },
+ {
+ internalType: 'address',
+ name: 'to',
+ type: 'address',
+ },
+ {
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ {
+ internalType: 'bytes',
+ name: 'data',
+ type: 'bytes',
+ },
+ ],
+ name: 'safeTransferFrom',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'operator',
+ type: 'address',
+ },
+ {
+ internalType: 'bool',
+ name: 'approved',
+ type: 'bool',
+ },
+ ],
+ name: 'setApprovalForAll',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'bytes4',
+ name: 'interfaceId',
+ type: 'bytes4',
+ },
+ ],
+ name: 'supportsInterface',
+ outputs: [
+ {
+ internalType: 'bool',
+ name: '',
+ type: 'bool',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'symbol',
+ outputs: [
+ {
+ internalType: 'string',
+ name: '',
+ type: 'string',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'uint256',
+ name: 'index',
+ type: 'uint256',
+ },
+ ],
+ name: 'tokenByIndex',
+ outputs: [
+ {
+ internalType: 'uint256',
+ name: '',
+ type: 'uint256',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'tokenIdCounter',
+ outputs: [
+ {
+ internalType: 'uint256',
+ name: '_value',
+ type: 'uint256',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'owner',
+ type: 'address',
+ },
+ {
+ internalType: 'uint256',
+ name: 'index',
+ type: 'uint256',
+ },
+ ],
+ name: 'tokenOfOwnerByIndex',
+ outputs: [
+ {
+ internalType: 'uint256',
+ name: '',
+ type: 'uint256',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'tokenURI',
+ outputs: [
+ {
+ internalType: 'string',
+ name: '',
+ type: 'string',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'totalSupply',
+ outputs: [
+ {
+ internalType: 'uint256',
+ name: '',
+ type: 'uint256',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'from',
+ type: 'address',
+ },
+ {
+ internalType: 'address',
+ name: 'to',
+ type: 'address',
+ },
+ {
+ internalType: 'uint256',
+ name: 'tokenId',
+ type: 'uint256',
+ },
+ ],
+ name: 'transferFrom',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: 'newOwner',
+ type: 'address',
+ },
+ ],
+ name: 'transferOwnership',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ ],
+ inheritedFunctions: {
+ approve:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ balanceOf:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ getApproved:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ isApprovedForAll:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ name: '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ ownerOf:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ safeTransferFrom:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ setApprovalForAll:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ supportsInterface:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ symbol:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ tokenURI:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ transferFrom:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol',
+ tokenByIndex:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol',
+ tokenOfOwnerByIndex:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol',
+ totalSupply:
+ '@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol',
+ owner: '@openzeppelin/contracts/access/Ownable.sol',
+ renounceOwnership: '@openzeppelin/contracts/access/Ownable.sol',
+ transferOwnership: '@openzeppelin/contracts/access/Ownable.sol',
+ },
+ },
+ YourContract: {
+ address: '0x5FbDB2315678afecb367f032d93F642f64180aa3',
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: '_owner',
+ type: 'address',
+ },
+ ],
+ stateMutability: 'nonpayable',
+ type: 'constructor',
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: 'address',
+ name: 'greetingSetter',
+ type: 'address',
+ },
+ {
+ indexed: false,
+ internalType: 'string',
+ name: 'newGreeting',
+ type: 'string',
+ },
+ {
+ indexed: false,
+ internalType: 'bool',
+ name: 'premium',
+ type: 'bool',
+ },
+ {
+ indexed: false,
+ internalType: 'uint256',
+ name: 'value',
+ type: 'uint256',
+ },
+ ],
+ name: 'GreetingChange',
+ type: 'event',
+ },
+ {
+ inputs: [],
+ name: 'greeting',
+ outputs: [
+ {
+ internalType: 'string',
+ name: '',
+ type: 'string',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'owner',
+ outputs: [
+ {
+ internalType: 'address',
+ name: '',
+ type: 'address',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'premium',
+ outputs: [
+ {
+ internalType: 'bool',
+ name: '',
+ type: 'bool',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'string',
+ name: '_newGreeting',
+ type: 'string',
+ },
+ ],
+ name: 'setGreeting',
+ outputs: [],
+ stateMutability: 'payable',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'totalCounter',
+ outputs: [
+ {
+ internalType: 'uint256',
+ name: '',
+ type: 'uint256',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [
+ {
+ internalType: 'address',
+ name: '',
+ type: 'address',
+ },
+ ],
+ name: 'userGreetingCounter',
+ outputs: [
+ {
+ internalType: 'uint256',
+ name: '',
+ type: 'uint256',
+ },
+ ],
+ stateMutability: 'view',
+ type: 'function',
+ },
+ {
+ inputs: [],
+ name: 'withdraw',
+ outputs: [],
+ stateMutability: 'nonpayable',
+ type: 'function',
+ },
+ {
+ stateMutability: 'payable',
+ type: 'receive',
+ },
+ ],
+ inheritedFunctions: {},
+ },
+ },
+} as const
+
+export default deployedContracts satisfies GenericContractsDeclaration
diff --git a/nuxt/contracts/externalContracts.ts b/nuxt/contracts/externalContracts.ts
new file mode 100644
index 0000000..48dc23e
--- /dev/null
+++ b/nuxt/contracts/externalContracts.ts
@@ -0,0 +1,16 @@
+import type { GenericContractsDeclaration } from '~/utils/scaffold-eth/contract'
+
+/**
+ * @example
+ * const externalContracts = {
+ * 1: {
+ * DAI: {
+ * address: "0x...",
+ * abi: [...],
+ * },
+ * },
+ * } as const;
+ */
+const externalContracts = {} as const
+
+export default externalContracts satisfies GenericContractsDeclaration
diff --git a/nuxt/nuxt.config.ts b/nuxt/nuxt.config.ts
index 86979b0..83037cc 100644
--- a/nuxt/nuxt.config.ts
+++ b/nuxt/nuxt.config.ts
@@ -2,11 +2,9 @@
export default defineNuxtConfig({
compatibilityDate: '2024-04-03',
devtools: { enabled: true },
-
devServer: {
port: 3001,
},
-
modules: [
'@wagmi/vue/nuxt',
'@pinia/nuxt',
@@ -41,4 +39,11 @@ export default defineNuxtConfig({
mode: 'svg',
size: '1.5em',
},
+ components: [
+ {
+ path: '~/components/scaffold-eth',
+ pathPrefix: false,
+ },
+ '~/components',
+ ],
})
diff --git a/nuxt/pages/debug/index.vue b/nuxt/pages/debug/index.vue
index db29a85..f0c032a 100644
--- a/nuxt/pages/debug/index.vue
+++ b/nuxt/pages/debug/index.vue
@@ -6,6 +6,7 @@ useSeoMeta({
+
Debug Contracts
diff --git a/nuxt/utils/scaffold-eth/contract.ts b/nuxt/utils/scaffold-eth/contract.ts
index d3028ec..1f90fba 100644
--- a/nuxt/utils/scaffold-eth/contract.ts
+++ b/nuxt/utils/scaffold-eth/contract.ts
@@ -1,6 +1,313 @@
-import type { TransactionReceipt } from 'viem'
+import type { MutateOptions } from '@tanstack/react-query'
+import type {
+ Abi,
+ AbiParameter,
+ AbiParameterToPrimitiveType,
+ AbiParametersToPrimitiveTypes,
+ ExtractAbiEvent,
+ ExtractAbiEventNames,
+ ExtractAbiFunction,
+ ExtractAbiFunctionNames,
+} from 'abitype'
+import type { Simplify } from 'type-fest'
+import type { MergeDeepRecord } from 'type-fest/source/merge-deep'
+import type {
+ Address,
+ Block,
+ GetEventArgs,
+ GetTransactionReceiptReturnType,
+ GetTransactionReturnType,
+ Log,
+ TransactionReceipt,
+ WriteContractErrorType,
+} from 'viem'
+import type { Config, UseReadContractParameters, UseWatchContractEventParameters } from 'wagmi'
+import type { WriteContractParameters, WriteContractReturnType } from 'wagmi/actions'
+import type { WriteContractVariables } from 'wagmi/query'
+import deployedContractsData from '~/contracts/deployedContracts'
+import externalContractsData from '~/contracts/externalContracts'
+import type scaffoldConfig from '~/scaffold.config'
+
+type AddExternalFlag = {
+ [ChainId in keyof T]: {
+ [ContractName in keyof T[ChainId]]: T[ChainId][ContractName] & { external?: true };
+ };
+}
+
+function deepMergeContracts, E extends Record>(local: L, external: E) {
+ const result: Record = {}
+ const allKeys = Array.from(new Set([...Object.keys(external), ...Object.keys(local)]))
+ for (const key of allKeys) {
+ if (!external[key]) {
+ result[key] = local[key]
+ continue
+ }
+ const amendedExternal = Object.fromEntries(
+ Object.entries(external[key] as Record>).map(([contractName, declaration]) => [
+ contractName,
+ { ...declaration, external: true },
+ ]),
+ )
+ result[key] = { ...local[key], ...amendedExternal }
+ }
+ return result as MergeDeepRecord, AddExternalFlag, { arrayMergeMode: 'replace' }>
+}
+
+const contractsData = deepMergeContracts(deployedContractsData, externalContractsData)
+
+export interface InheritedFunctions { readonly [key: string]: string }
+
+export interface GenericContract {
+ address: Address
+ abi: Abi
+ inheritedFunctions?: InheritedFunctions
+ external?: true
+}
+
+export interface GenericContractsDeclaration {
+ [chainId: number]: {
+ [contractName: string]: GenericContract
+ }
+}
+
+export const contracts = contractsData as GenericContractsDeclaration | null
+
+type ConfiguredChainId = (typeof scaffoldConfig)['targetNetworks'][0]['id']
+
+type IsContractDeclarationMissing = typeof contractsData extends { [key in ConfiguredChainId]: any }
+ ? TNo
+ : TYes
+
+type ContractsDeclaration = IsContractDeclarationMissing
+
+type Contracts = ContractsDeclaration[ConfiguredChainId]
+
+export type ContractName = keyof Contracts
+
+export type Contract = Contracts[TContractName]
+
+type InferContractAbi = TContract extends { abi: infer TAbi } ? TAbi : never
+
+export type ContractAbi = InferContractAbi>
+
+export type AbiFunctionInputs = ExtractAbiFunction<
+ TAbi,
+ TFunctionName
+>['inputs']
+
+export type AbiFunctionArguments = AbiParametersToPrimitiveTypes<
+ AbiFunctionInputs
+>
+
+export type AbiFunctionOutputs = ExtractAbiFunction<
+ TAbi,
+ TFunctionName
+>['outputs']
+
+export type AbiFunctionReturnType = IsContractDeclarationMissing<
+ any,
+ AbiParametersToPrimitiveTypes> extends readonly [any]
+ ? AbiParametersToPrimitiveTypes>[0]
+ : AbiParametersToPrimitiveTypes>
+>
+
+export type AbiEventInputs> = ExtractAbiEvent<
+ TAbi,
+ TEventName
+>['inputs']
+
+export enum ContractCodeStatus {
+ LOADING,
+ DEPLOYED,
+ NOT_FOUND,
+}
+
+type AbiStateMutability = 'pure' | 'view' | 'nonpayable' | 'payable'
+export type ReadAbiStateMutability = 'view' | 'pure'
+export type WriteAbiStateMutability = 'nonpayable' | 'payable'
+
+export type FunctionNamesWithInputs<
+ TContractName extends ContractName,
+ TAbiStateMutibility extends AbiStateMutability = AbiStateMutability,
+> = Exclude<
+ Extract<
+ ContractAbi[number],
+ {
+ type: 'function'
+ stateMutability: TAbiStateMutibility
+ }
+ >,
+ {
+ inputs: readonly []
+ }
+>['name']
+
+type Expand = T extends object ? (T extends infer O ? { [K in keyof O]: O[K] } : never) : T
+
+type UnionToIntersection = Expand<(U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never>
+
+type OptionalTupple = T extends readonly [infer H, ...infer R] ? readonly [H | undefined, ...OptionalTupple] : T
+
+type UseScaffoldArgsParam<
+ TContractName extends ContractName,
+ TFunctionName extends ExtractAbiFunctionNames>,
+> =
+ TFunctionName extends FunctionNamesWithInputs
+ ? {
+ args: OptionalTupple, TFunctionName>>>
+ value?: ExtractAbiFunction, TFunctionName>['stateMutability'] extends 'payable'
+ ? bigint | undefined
+ : undefined
+ }
+ : {
+ args?: never
+ }
+
+export type UseScaffoldReadConfig<
+ TContractName extends ContractName,
+ TFunctionName extends ExtractAbiFunctionNames, ReadAbiStateMutability>,
+> = {
+ contractName: TContractName
+ watch?: boolean
+} & IsContractDeclarationMissing<
+ Partial,
+ {
+ functionName: TFunctionName
+ } & UseScaffoldArgsParam &
+ Omit
+>
+
+export type ScaffoldWriteContractVariables<
+ TContractName extends ContractName,
+ TFunctionName extends ExtractAbiFunctionNames, WriteAbiStateMutability>,
+> = IsContractDeclarationMissing<
+ Partial,
+ {
+ functionName: TFunctionName
+ } & UseScaffoldArgsParam &
+ Omit
+>
+
+type WriteVariables = WriteContractVariables
export interface TransactorFuncOptions {
onBlockConfirmation?: (txnReceipt: TransactionReceipt) => void
blockConfirmations?: number
}
+
+export type ScaffoldWriteContractOptions = MutateOptions<
+ WriteContractReturnType,
+ WriteContractErrorType,
+ WriteVariables,
+ unknown
+> &
+TransactorFuncOptions
+
+export type UseScaffoldEventConfig<
+ TContractName extends ContractName,
+ TEventName extends ExtractAbiEventNames>,
+ TEvent extends ExtractAbiEvent, TEventName> = ExtractAbiEvent<
+ ContractAbi,
+ TEventName
+ >,
+> = {
+ contractName: TContractName
+ eventName: TEventName
+} & IsContractDeclarationMissing<
+ Omit & {
+ onLogs: (
+ logs: Simplify<
+ Omit, 'args' | 'eventName'> & {
+ args: Record
+ eventName: string
+ }
+ >[],
+ ) => void
+ },
+ Omit>, 'onLogs' | 'address' | 'abi' | 'eventName'> & {
+ onLogs: (
+ logs: Simplify<
+ Omit, 'args'> & {
+ args: AbiParametersToPrimitiveTypes &
+ GetEventArgs<
+ ContractAbi,
+ TEventName,
+ {
+ IndexedOnly: false
+ }
+ >
+ }
+ >[],
+ ) => void
+ }
+>
+
+type IndexedEventInputs<
+ TContractName extends ContractName,
+ TEventName extends ExtractAbiEventNames>,
+> = Extract, TEventName>[number], { indexed: true }>
+
+export type EventFilters<
+ TContractName extends ContractName,
+ TEventName extends ExtractAbiEventNames>,
+> = IsContractDeclarationMissing<
+ any,
+ IndexedEventInputs extends never
+ ? never
+ : {
+ [Key in IsContractDeclarationMissing<
+ any,
+ IndexedEventInputs['name']
+ >]?: AbiParameterToPrimitiveType, { name: Key }>>;
+ }
+>
+
+export interface UseScaffoldEventHistoryConfig<
+ TContractName extends ContractName,
+ TEventName extends ExtractAbiEventNames>,
+ TBlockData extends boolean = false,
+ TTransactionData extends boolean = false,
+ TReceiptData extends boolean = false,
+> {
+ contractName: TContractName
+ eventName: IsContractDeclarationMissing
+ fromBlock: bigint
+ filters?: EventFilters
+ blockData?: TBlockData
+ transactionData?: TTransactionData
+ receiptData?: TReceiptData
+ watch?: boolean
+ enabled?: boolean
+}
+
+export type UseScaffoldEventHistoryData<
+ TContractName extends ContractName,
+ TEventName extends ExtractAbiEventNames>,
+ TBlockData extends boolean = false,
+ TTransactionData extends boolean = false,
+ TReceiptData extends boolean = false,
+ TEvent extends ExtractAbiEvent, TEventName> = ExtractAbiEvent<
+ ContractAbi,
+ TEventName
+ >,
+> =
+ | IsContractDeclarationMissing<
+ any[],
+ {
+ log: Log
+ args: AbiParametersToPrimitiveTypes &
+ GetEventArgs<
+ ContractAbi,
+ TEventName,
+ {
+ IndexedOnly: false
+ }
+ >
+ block: TBlockData extends true ? Block : null
+ receipt: TReceiptData extends true ? GetTransactionReturnType : null
+ transaction: TTransactionData extends true ? GetTransactionReceiptReturnType : null
+ }[]
+ >
+ | undefined
+
+export type AbiParameterTuple = Extract
diff --git a/nuxt/utils/scaffold-eth/contractsData.ts b/nuxt/utils/scaffold-eth/contractsData.ts
new file mode 100644
index 0000000..f551f1b
--- /dev/null
+++ b/nuxt/utils/scaffold-eth/contractsData.ts
@@ -0,0 +1,7 @@
+import { contracts } from './contract'
+import scaffoldConfig from '~/scaffold.config'
+
+export function getAllContracts() {
+ const contractsData = contracts?.[scaffoldConfig.targetNetworks[0].id]
+ return contractsData || {}
+}
diff --git a/package.json b/package.json
index 4f7b2d5..e30215a 100644
--- a/package.json
+++ b/package.json
@@ -38,5 +38,8 @@
},
"engines": {
"node": ">=18.17.0"
+ },
+ "dependencies": {
+ "@openzeppelin/contracts": "^4.8.1"
}
}
diff --git a/packages/hardhat/contracts/YourCollectible.sol b/packages/hardhat/contracts/YourCollectible.sol
new file mode 100644
index 0000000..2356f8f
--- /dev/null
+++ b/packages/hardhat/contracts/YourCollectible.sol
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.2; //Do not change the solidity version as it negatively impacts submission grading
+
+import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
+import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
+import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
+import "@openzeppelin/contracts/access/Ownable.sol";
+import "@openzeppelin/contracts/utils/Counters.sol";
+
+contract YourCollectible is
+ ERC721,
+ ERC721Enumerable,
+ ERC721URIStorage,
+ Ownable
+{
+ using Counters for Counters.Counter;
+
+ Counters.Counter public tokenIdCounter;
+
+ constructor() ERC721("YourCollectible", "YCB") {}
+
+ function _baseURI() internal pure override returns (string memory) {
+ return "https://ipfs.io/ipfs/";
+ }
+
+ function mintItem(address to, string memory uri) public returns (uint256) {
+ tokenIdCounter.increment();
+ uint256 tokenId = tokenIdCounter.current();
+ _safeMint(to, tokenId);
+ _setTokenURI(tokenId, uri);
+ return tokenId;
+ }
+
+ // The following functions are overrides required by Solidity.
+
+ function _beforeTokenTransfer(
+ address from,
+ address to,
+ uint256 tokenId,
+ uint256 quantity
+ ) internal override(ERC721, ERC721Enumerable) {
+ super._beforeTokenTransfer(from, to, tokenId, quantity);
+ }
+
+ function _burn(
+ uint256 tokenId
+ ) internal override(ERC721, ERC721URIStorage) {
+ super._burn(tokenId);
+ }
+
+ function tokenURI(
+ uint256 tokenId
+ ) public view override(ERC721, ERC721URIStorage) returns (string memory) {
+ return super.tokenURI(tokenId);
+ }
+
+ function supportsInterface(
+ bytes4 interfaceId
+ )
+ public
+ view
+ override(ERC721, ERC721Enumerable, ERC721URIStorage)
+ returns (bool)
+ {
+ return super.supportsInterface(interfaceId);
+ }
+}
diff --git a/packages/hardhat/deploy/01_deploy_your_contract.ts b/packages/hardhat/deploy/01_deploy_your_contract.ts
new file mode 100644
index 0000000..b03c059
--- /dev/null
+++ b/packages/hardhat/deploy/01_deploy_your_contract.ts
@@ -0,0 +1,43 @@
+import { HardhatRuntimeEnvironment } from "hardhat/types";
+import { DeployFunction } from "hardhat-deploy/types";
+import { Contract } from "ethers";
+
+/**
+ * Deploys a contract named "YourContract" using the deployer account and
+ * constructor arguments set to the deployer address
+ *
+ * @param hre HardhatRuntimeEnvironment object.
+ */
+const deployYourContract: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
+ /*
+ On localhost, the deployer account is the one that comes with Hardhat, which is already funded.
+
+ When deploying to live networks (e.g `yarn deploy --network sepolia`), the deployer account
+ should have sufficient balance to pay for the gas fees for contract creation.
+
+ You can generate a random account with `yarn generate` which will fill DEPLOYER_PRIVATE_KEY
+ with a random private key in the .env file (then used on hardhat.config.ts)
+ You can run the `yarn account` command to check your balance in every network.
+ */
+ const { deployer } = await hre.getNamedAccounts();
+ const { deploy } = hre.deployments;
+
+ await deploy("YourCollectible", {
+ from: deployer,
+ // Contract constructor arguments
+ args: [],
+ log: true,
+ // autoMine: can be passed to the deploy function to make the deployment process faster on local networks by
+ // automatically mining the contract deployment transaction. There is no effect on live networks.
+ autoMine: true,
+ });
+
+ // Get the deployed contract to interact with it after deploying.
+ const yourCollectible = await hre.ethers.getContract("YourCollectible", deployer);
+};
+
+export default deployYourContract;
+
+// Tags are useful if you have multiple deploy files and only want to run one of them.
+// e.g. yarn deploy --tags YourContract
+deployYourContract.tags = ["YourCollectible"];
diff --git a/packages/hardhat/deploy/99_generateTsAbis.ts b/packages/hardhat/deploy/99_generateTsAbis.ts
index 351f599..a6c0fb3 100644
--- a/packages/hardhat/deploy/99_generateTsAbis.ts
+++ b/packages/hardhat/deploy/99_generateTsAbis.ts
@@ -100,7 +100,8 @@ function getContractDataFromDeployments() {
* This script should be run last.
*/
const generateTsAbis: DeployFunction = async function () {
- const TARGET_DIR = "../nextjs/contracts/";
+ // const TARGET_DIR = "../nextjs/contracts/";
+ const TARGET_DIR = "../../nuxt/contracts/";
const allContractsData = getContractDataFromDeployments();
const fileContent = Object.entries(allContractsData).reduce((content, [chainId, chainConfig]) => {
diff --git a/packages/nextjs/contracts/deployedContracts.ts b/packages/nextjs/contracts/deployedContracts.ts
index 9b6aca6..7ad640f 100644
--- a/packages/nextjs/contracts/deployedContracts.ts
+++ b/packages/nextjs/contracts/deployedContracts.ts
@@ -6,8 +6,559 @@ import { GenericContractsDeclaration } from "~~/utils/scaffold-eth/contract";
const deployedContracts = {
31337: {
+ YourCollectible: {
+ address: "0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0",
+ abi: [
+ {
+ inputs: [],
+ stateMutability: "nonpayable",
+ type: "constructor",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "owner",
+ type: "address",
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "approved",
+ type: "address",
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "Approval",
+ type: "event",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "owner",
+ type: "address",
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "operator",
+ type: "address",
+ },
+ {
+ indexed: false,
+ internalType: "bool",
+ name: "approved",
+ type: "bool",
+ },
+ ],
+ name: "ApprovalForAll",
+ type: "event",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "_fromTokenId",
+ type: "uint256",
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "_toTokenId",
+ type: "uint256",
+ },
+ ],
+ name: "BatchMetadataUpdate",
+ type: "event",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "_tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "MetadataUpdate",
+ type: "event",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address",
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address",
+ },
+ ],
+ name: "OwnershipTransferred",
+ type: "event",
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "from",
+ type: "address",
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "to",
+ type: "address",
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "Transfer",
+ type: "event",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "to",
+ type: "address",
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "approve",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address",
+ },
+ ],
+ name: "balanceOf",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "getApproved",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address",
+ },
+ {
+ internalType: "address",
+ name: "operator",
+ type: "address",
+ },
+ ],
+ name: "isApprovedForAll",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "to",
+ type: "address",
+ },
+ {
+ internalType: "string",
+ name: "uri",
+ type: "string",
+ },
+ ],
+ name: "mintItem",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [],
+ name: "name",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "ownerOf",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [],
+ name: "renounceOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address",
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address",
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "safeTransferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address",
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address",
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ {
+ internalType: "bytes",
+ name: "data",
+ type: "bytes",
+ },
+ ],
+ name: "safeTransferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "operator",
+ type: "address",
+ },
+ {
+ internalType: "bool",
+ name: "approved",
+ type: "bool",
+ },
+ ],
+ name: "setApprovalForAll",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "interfaceId",
+ type: "bytes4",
+ },
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [],
+ name: "symbol",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "index",
+ type: "uint256",
+ },
+ ],
+ name: "tokenByIndex",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [],
+ name: "tokenIdCounter",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "_value",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address",
+ },
+ {
+ internalType: "uint256",
+ name: "index",
+ type: "uint256",
+ },
+ ],
+ name: "tokenOfOwnerByIndex",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "tokenURI",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [],
+ name: "totalSupply",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address",
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address",
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256",
+ },
+ ],
+ name: "transferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newOwner",
+ type: "address",
+ },
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function",
+ },
+ ],
+ inheritedFunctions: {
+ approve:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ balanceOf:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ getApproved:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ isApprovedForAll:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ name: "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ ownerOf:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ safeTransferFrom:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ setApprovalForAll:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ supportsInterface:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ symbol:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ tokenURI:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ transferFrom:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol",
+ tokenByIndex:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol",
+ tokenOfOwnerByIndex:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol",
+ totalSupply:
+ "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol",
+ owner: "@openzeppelin/contracts/access/Ownable.sol",
+ renounceOwnership: "@openzeppelin/contracts/access/Ownable.sol",
+ transferOwnership: "@openzeppelin/contracts/access/Ownable.sol",
+ },
+ },
YourContract: {
- address: "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",
+ address: "0x5FbDB2315678afecb367f032d93F642f64180aa3",
abi: [
{
inputs: [
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index befebd3..8134bce 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,6 +7,10 @@ settings:
importers:
.:
+ dependencies:
+ '@openzeppelin/contracts':
+ specifier: ^4.8.1
+ version: 4.9.6
devDependencies:
husky:
specifier: ^8.0.1
@@ -17,9 +21,18 @@ importers:
nuxt:
dependencies:
+ '@nuxtjs/color-mode':
+ specifier: ^3.4.4
+ version: 3.4.4(magicast@0.3.4)(rollup@4.21.0)
'@tanstack/vue-query':
specifier: ^5.51.21
version: 5.52.0(vue@3.4.38(typescript@5.5.3))
+ '@uniswap/sdk-core':
+ specifier: ^5.3.1
+ version: 5.3.1
+ '@uniswap/v2-sdk':
+ specifier: ^4.4.1
+ version: 4.4.1
'@wagmi/connectors':
specifier: ^5.1.7
version: 5.1.7(@types/react@18.3.4)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.3)(viem@2.20.0(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(ioredis@5.4.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.4)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.3)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.3)(utf-8-validate@5.0.10)(viem@2.20.0(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
@@ -32,9 +45,15 @@ importers:
'@web3modal/wagmi':
specifier: ^5.1.1
version: 5.1.2(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(@wagmi/connectors@5.1.7(@types/react@18.3.4)(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.3)(viem@2.20.0(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(ioredis@5.4.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.4)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.3)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.3)(utf-8-validate@5.0.10)(viem@2.20.0(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(@wagmi/core@2.13.4(@tanstack/query-core@5.52.0)(@types/react@18.3.4)(react@18.3.1)(typescript@5.5.3)(viem@2.20.0(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(ioredis@5.4.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.4)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.3)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.3)(utf-8-validate@5.0.10)(viem@2.20.0(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4))(vue@3.4.38(typescript@5.5.3))(wagmi@2.12.5(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(ioredis@5.4.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.4)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.3)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.3)(utf-8-validate@5.0.10)(viem@2.20.0(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(zod@3.22.4)
+ blo:
+ specifier: ^1.2.0
+ version: 1.2.0
burner-connector:
specifier: ^0.0.8
version: 0.0.8(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.3)(utf-8-validate@5.0.10)(wagmi@2.12.5(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(ioredis@5.4.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.4)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.3)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.3)(utf-8-validate@5.0.10)(viem@2.20.0(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))(zod@3.22.4)
+ daisyui:
+ specifier: ^4.12.10
+ version: 4.12.10(postcss@8.4.41)
nuxt:
specifier: ^3.12.4
version: 3.13.0(@parcel/watcher@2.4.1)(@types/node@18.15.13)(bufferutil@4.0.8)(eslint@9.9.1(jiti@1.21.6))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.21.0)(terser@5.31.6)(typescript@5.5.3)(utf-8-validate@5.0.10)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))
@@ -48,15 +67,27 @@ importers:
'@antfu/eslint-config':
specifier: ^2.27.1
version: 2.27.1(@typescript-eslint/utils@8.2.0(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.3))(@unocss/eslint-plugin@0.62.3(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.3))(@vue/compiler-sfc@3.4.38)(eslint-plugin-format@0.1.2(eslint@9.9.1(jiti@1.21.6)))(eslint-plugin-react-hooks@4.6.2(eslint@9.9.1(jiti@1.21.6)))(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.3)
- '@nuxt/ui':
- specifier: ^2.18.4
- version: 2.18.4(axios@1.7.5)(idb-keyval@6.2.1)(magicast@0.3.4)(nprogress@0.2.0)(qrcode@1.5.4)(rollup@4.21.0)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))(vue@3.4.38(typescript@5.5.3))
+ '@iconify-json/uil':
+ specifier: ^1.1.9
+ version: 1.2.0
+ '@nuxt/icon':
+ specifier: ^1.5.0
+ version: 1.5.1(magicast@0.3.4)(rollup@4.21.0)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))(vue@3.4.38(typescript@5.5.3))
+ '@nuxtjs/tailwindcss':
+ specifier: ^6.12.1
+ version: 6.12.1(magicast@0.3.4)(rollup@4.21.0)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))
'@pinia/nuxt':
specifier: ^0.5.3
version: 0.5.4(magicast@0.3.4)(rollup@4.21.0)(typescript@5.5.3)(vue@3.4.38(typescript@5.5.3))
'@unocss/eslint-plugin':
specifier: ^0.62.2
version: 0.62.3(eslint@9.9.1(jiti@1.21.6))(typescript@5.5.3)
+ '@vueuse/core':
+ specifier: ^11.0.3
+ version: 11.0.3(vue@3.4.38(typescript@5.5.3))
+ '@vueuse/nuxt':
+ specifier: ^11.0.3
+ version: 11.0.3(magicast@0.3.4)(nuxt@3.13.0(@parcel/watcher@2.4.1)(@types/node@18.15.13)(bufferutil@4.0.8)(eslint@9.9.1(jiti@1.21.6))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.21.0)(terser@5.31.6)(typescript@5.5.3)(utf-8-validate@5.0.10)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6)))(rollup@4.21.0)(vue@3.4.38(typescript@5.5.3))
eslint:
specifier: ^9.9.0
version: 9.9.1(jiti@1.21.6)
@@ -1747,18 +1778,6 @@ packages:
'@hapi/topo@5.1.0':
resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==}
- '@headlessui/tailwindcss@0.2.1':
- resolution: {integrity: sha512-2+5+NZ+RzMyrVeCZOxdbvkUSssSxGvcUxphkIfSVLpRiKsj+/63T2TOL9dBYMXVfj/CGr6hMxSRInzXv6YY7sA==}
- engines: {node: '>=10'}
- peerDependencies:
- tailwindcss: ^3.0
-
- '@headlessui/vue@1.7.22':
- resolution: {integrity: sha512-Hoffjoolq1rY+LOfJ+B/OvkhuBXXBFgd8oBlN+l1TApma2dB0En0ucFZrwQtb33SmcCqd32EQd0y07oziXWNYg==}
- engines: {node: '>=10'}
- peerDependencies:
- vue: ^3.2.0
-
'@heroicons/react@2.1.5':
resolution: {integrity: sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==}
peerDependencies:
@@ -1781,11 +1800,11 @@ packages:
resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==}
engines: {node: '>=18.18'}
- '@iconify-json/heroicons@1.1.24':
- resolution: {integrity: sha512-Axd6nxsEeQMpuK8ugkAkJ1kS6cbmgXX1s1+Z6NbANvtgtNTBIx9bLQcEL6loKjxpfktDXERElrR5G6xzWOqysg==}
+ '@iconify-json/uil@1.2.0':
+ resolution: {integrity: sha512-DFhJYbp/H2BGQ2oBS0DmqhvgkdUXpBTgCErhqwLEeRhkt8+MuTKlivpQf/gPgD5/6wHH37gPX4BhlqU4eH372w==}
- '@iconify/collections@1.0.453':
- resolution: {integrity: sha512-s6X0BI2CeFwE8VNpxkMrIo1Peud7InUtGgYEYw2hfBT59pjhMJRAzMWpAM7ZvBx5N+UfXVE19dbyLGOcazdJ4A==}
+ '@iconify/collections@1.0.458':
+ resolution: {integrity: sha512-xSpTRSiB6jUVHSIasyn4bQXUv+Y79Hxk+xom3IE7BXl8CeRjXjSpOr5BfrRqzVFpXZnUMMWZ6b4DL7J2aaX+aQ==}
'@iconify/types@2.0.0':
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
@@ -2273,6 +2292,11 @@ packages:
peerDependencies:
vite: '*'
+ '@nuxt/devtools-kit@1.4.2':
+ resolution: {integrity: sha512-8a5PhVnC7E94318/sHbNSe9mI2MlsQ8+pJLGs2Hh1OJyidB9SWe6hoFc8q4K9VOtXak9uCFVb5V2JGXS1q+1aA==}
+ peerDependencies:
+ vite: '*'
+
'@nuxt/devtools-wizard@1.3.14':
resolution: {integrity: sha512-5kLB53/7YUME6Y8byrOxRhl0hXWm05jPStJd1CJHKDcGrp+hjxYZaSgEwYtEIQ0A1GF04rfL4bJ+qIL+7e0+9Q==}
hasBin: true
@@ -2283,25 +2307,29 @@ packages:
peerDependencies:
vite: '*'
- '@nuxt/icon@1.4.10':
- resolution: {integrity: sha512-/+we4dhDOE+YPKK7cRa4AhgUslBk3pMVjcUE/B5vWoLHnLmqjHKPVUubFPKilJ4ZvL/HtWLNqLs2IV4hDl2mdQ==}
+ '@nuxt/icon@1.5.1':
+ resolution: {integrity: sha512-NCCJFumuCfLTaPWyfB0NhOqSPmjK3OCCUbsAk0gfQIxwW0ERudrqiwhCtGJljxA8Ae/952OtI79Fpj1M5Sfuhg==}
'@nuxt/kit@3.13.0':
resolution: {integrity: sha512-gbhSbDvYfkGQ0R2ztqTLQLHRMv+7g50kAKKuN6mbF4tL9jg7NPnQ8bAarn2I4Qx8xtmwO+qY1ABkmYMn5S1CpA==}
engines: {node: ^14.18.0 || >=16.10.0}
+ '@nuxt/kit@3.13.1':
+ resolution: {integrity: sha512-FkUL349lp/3nVfTIyws4UDJ3d2jyv5Pk1DC1HQUCOkSloYYMdbRcQAUcb4fe2TCLNWvHM+FhU8jnzGTzjALZYA==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
'@nuxt/schema@3.13.0':
resolution: {integrity: sha512-JBGSjF9Hd8guvTV2312eM1RulCMJc50yR3CeMZPLDsI02A8TXQnABS8EbgvGRvxD43q/ITjj21B2ffG1wEVrnQ==}
engines: {node: ^14.18.0 || >=16.10.0}
+ '@nuxt/schema@3.13.1':
+ resolution: {integrity: sha512-ishbhzVGspjshG9AG0hYnKYY6LWXzCtua7OXV7C/DQ2yA7rRcy1xHpzKZUDbIRyxCHHCAcBd8jfHEUmEuhEPrA==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
'@nuxt/telemetry@2.5.4':
resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==}
hasBin: true
- '@nuxt/ui@2.18.4':
- resolution: {integrity: sha512-NzFUzh5Izd7mduhYhFBlIOcqE8aY+9mbSQ0n8sIASpASv162VJ46OsR5Jm5sbfhKDrgv7UsBk6VKXJXiEI7ThQ==}
- engines: {node: '>=v16.20.2'}
-
'@nuxt/vite-builder@3.13.0':
resolution: {integrity: sha512-FVIpT5wTxGcU3JDFxIyvT6isSZUujVKavQyPo3kgOQKWURDcBcvVY4HdJIVMsSIcaXafH13RZc5RKLlxfIGFdQ==}
engines: {node: ^14.18.0 || >=16.10.0}
@@ -2413,9 +2441,6 @@ packages:
'@polka/url@1.0.0-next.25':
resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==}
- '@popperjs/core@2.11.8':
- resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
-
'@rainbow-me/rainbowkit@2.1.0':
resolution: {integrity: sha512-KUkEHcVfqVuDHS2cxvaoy8R4N1EC/t/x0uYkgUkbDS8ShoW6ZJeP4qocxyvKsdYynm5srI/FPmbTSdgojV279Q==}
engines: {node: '>=12.4'}
@@ -2915,26 +2940,6 @@ packages:
'@swc/helpers@0.5.5':
resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
- '@tailwindcss/aspect-ratio@0.4.2':
- resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==}
- peerDependencies:
- tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1'
-
- '@tailwindcss/container-queries@0.1.1':
- resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==}
- peerDependencies:
- tailwindcss: '>=3.2.0'
-
- '@tailwindcss/forms@0.5.7':
- resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1'
-
- '@tailwindcss/typography@0.5.14':
- resolution: {integrity: sha512-ZvOCjUbsJBjL9CxQBn+VEnFpouzuKhxh2dH8xMIWHILL+HfOYtlAkWcyoon8LlzE53d2Yo6YO6pahKKNW3q1YQ==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || insiders'
-
'@tanstack/match-sorter-utils@8.19.4':
resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==}
engines: {node: '>=12'}
@@ -2947,9 +2952,6 @@ packages:
peerDependencies:
react: ^18 || ^19
- '@tanstack/virtual-core@3.10.4':
- resolution: {integrity: sha512-yHyli4RHVsI+eJ0RjmOsjA9RpHp3/Zah9t+iRjmFa72dq00TeG/NwuLYuCV6CB4RkWD4i5RD421j1eb6BdKgvQ==}
-
'@tanstack/vue-query@5.52.0':
resolution: {integrity: sha512-AfPLrWBIxbLy6x04eylfvpiCaAUJrIyz3MCWtANatFwme8QabQQ3F2/lskdNjeAqF0B2Tn2N2tzDrUa1aCCPVg==}
peerDependencies:
@@ -2959,11 +2961,6 @@ packages:
'@vue/composition-api':
optional: true
- '@tanstack/vue-virtual@3.10.4':
- resolution: {integrity: sha512-oikrjnC7BnUCmqh5ptemclUK6EtJj48AdLcJx1t2fTLQyu+60Alo6gPGC3cANgmbEP/1C9DptbeMcm5AAjyBVg==}
- peerDependencies:
- vue: ^2.7.0 || ^3.0.0
-
'@tootallnate/once@2.0.0':
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
engines: {node: '>= 10'}
@@ -3366,10 +3363,18 @@ packages:
resolution: {integrity: sha512-hr7vwYrXScg+V8/rRc2UL/Ixc/p0P7yqe4D/OxzUdMRYr8RZd+8z5Iu9+WembjZT/DCdbTjde6lsph4Og0n1BQ==}
engines: {node: '>=10'}
+ '@uniswap/sdk-core@5.3.1':
+ resolution: {integrity: sha512-XLJY8PcMZnKYBGLABJnLXcr3EgWql3mmnmpHyV1/MmEh9pLJLHYz4HLwVHb8pGDCqpOFX0e+Ei44/qhC7Q5Dsg==}
+ engines: {node: '>=10'}
+
'@uniswap/v2-sdk@3.3.0':
resolution: {integrity: sha512-cf5PjoNQN5tNELIOVJsqV4/VeuDtxFw6Zl8oFmFJ6PNoQ8sx+XnGoO0aGKTB/o5II3oQ7820xtY3k47UsXgd6A==}
engines: {node: '>=10'}
+ '@uniswap/v2-sdk@4.4.1':
+ resolution: {integrity: sha512-mU0YNgpm7Nmh3RSlcltluYVECdBcfQQIIQIDCM49Rog8ZnW4wp5QqEYkVjgAuqdu1mwLkMDMQUhzhtC0Z2Df6g==}
+ engines: {node: '>=10'}
+
'@unocss/config@0.62.3':
resolution: {integrity: sha512-zYOvFE0HfGIbnP/AvsbAlJpPRx9CQyXzL11m/8zgsHW5SGlJIYxuTll83l/xu026G5mPiksy7quoEOEgCLslqw==}
engines: {node: '>=14'}
@@ -3578,58 +3583,19 @@ packages:
'@vue/shared@3.4.38':
resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==}
- '@vueuse/core@10.11.1':
- resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
-
- '@vueuse/integrations@10.11.1':
- resolution: {integrity: sha512-Y5hCGBguN+vuVYTZmdd/IMXLOdfS60zAmDmFYc4BKBcMUPZH1n4tdyDECCPjXm0bNT3ZRUy1xzTLGaUje8Xyaw==}
- peerDependencies:
- async-validator: ^4
- axios: ^1
- change-case: ^4
- drauu: ^0.3
- focus-trap: ^7
- fuse.js: ^6
- idb-keyval: ^6
- jwt-decode: ^3
- nprogress: ^0.2
- qrcode: ^1.5
- sortablejs: ^1
- universal-cookie: ^6
- peerDependenciesMeta:
- async-validator:
- optional: true
- axios:
- optional: true
- change-case:
- optional: true
- drauu:
- optional: true
- focus-trap:
- optional: true
- fuse.js:
- optional: true
- idb-keyval:
- optional: true
- jwt-decode:
- optional: true
- nprogress:
- optional: true
- qrcode:
- optional: true
- sortablejs:
- optional: true
- universal-cookie:
- optional: true
+ '@vueuse/core@11.0.3':
+ resolution: {integrity: sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw==}
- '@vueuse/math@10.11.1':
- resolution: {integrity: sha512-fkdaNEOn22Vjz/A3vNWO2+eysunlK74ODmJRosweKMEA07oi5WH/CYQ8oGxu2Fa641fhs4hXS7XxdALsGVYlpw==}
+ '@vueuse/metadata@11.0.3':
+ resolution: {integrity: sha512-+FtbO4SD5WpsOcQTcC0hAhNlOid6QNLzqedtquTtQ+CRNBoAt9GuV07c6KNHK1wCmlq8DFPwgiLF2rXwgSHX5Q==}
- '@vueuse/metadata@10.11.1':
- resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==}
+ '@vueuse/nuxt@11.0.3':
+ resolution: {integrity: sha512-1tZGM9lvFl6HqmSQNM6hsHbAzLkBitoh8RsVC8kIG/93d3Pb5dEqUdt1k+OfHyR8V2rfSOwCfJx+wlUTlY0A2g==}
+ peerDependencies:
+ nuxt: ^3.0.0
- '@vueuse/shared@10.11.1':
- resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==}
+ '@vueuse/shared@11.0.3':
+ resolution: {integrity: sha512-0rY2m6HS5t27n/Vp5cTDsKTlNnimCqsbh/fmT2LgE+aaU42EMfXo8+bNX91W9I7DDmxfuACXMmrd7d79JxkqWA==}
'@wagmi/connectors@5.0.22':
resolution: {integrity: sha512-zIewJ+EpuL+RgcfUcPGbdWb+gJu64lK7xnhhve3E30rrjZfGjMWmuWM112X5CDjl1w3qeoZZQWzmSmrZq+d+7Q==}
@@ -4479,6 +4445,14 @@ packages:
magicast:
optional: true
+ c12@1.11.2:
+ resolution: {integrity: sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==}
+ peerDependencies:
+ magicast: ^0.3.4
+ peerDependenciesMeta:
+ magicast:
+ optional: true
+
cac@6.7.14:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
@@ -4963,6 +4937,10 @@ packages:
resolution: {integrity: sha512-pHJg+jbuFsCjz9iclQBqyL3B2HLCBF71BwVNujUYEvCeQMvV97R59MNK3R2+jgJ3a1fcZgI9B3vYgz8lzr/BFQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ daisyui@4.12.10:
+ resolution: {integrity: sha512-jp1RAuzbHhGdXmn957Z2XsTZStXGHzFfF0FgIOZj3Wv9sH7OZgLfXTRZNfKVYxltGUOBsG1kbWAdF5SrqjebvA==}
+ engines: {node: '>=16.9.0'}
+
daisyui@4.5.0:
resolution: {integrity: sha512-RWQCPQ0vBUaxGy768O7Ku8SRQgwdoto1lDzuKeVOcMtYghuSbUY7NoPoMK+k8JH4s1J02OvpNAgtB9MeKpZIwg==}
engines: {node: '>=16.9.0'}
@@ -6192,10 +6170,6 @@ packages:
functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
- fuse.js@6.6.2:
- resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==}
- engines: {node: '>=10'}
-
futoin-hkdf@1.5.3:
resolution: {integrity: sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ==}
engines: {node: '>=8'}
@@ -7234,9 +7208,6 @@ packages:
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
- lodash.castarray@4.4.0:
- resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
-
lodash.clonedeep@4.5.0:
resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
@@ -7252,9 +7223,6 @@ packages:
lodash.isequal@4.5.0:
resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
- lodash.isplainobject@4.0.6:
- resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
-
lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
@@ -7499,10 +7467,6 @@ packages:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
- mini-svg-data-uri@1.4.4:
- resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
- hasBin: true
-
minimalistic-assert@1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
@@ -8399,10 +8363,6 @@ packages:
peerDependencies:
postcss: ^8.4.31
- postcss-selector-parser@6.0.10:
- resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
- engines: {node: '>=4'}
-
postcss-selector-parser@6.1.2:
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
engines: {node: '>=4'}
@@ -9415,9 +9375,6 @@ packages:
peerDependencies:
tailwindcss: 1 || 2 || 2.0.1-compat || 3
- tailwind-merge@2.5.2:
- resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==}
-
tailwindcss@3.4.10:
resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==}
engines: {node: '>=14.0.0'}
@@ -12222,15 +12179,6 @@ snapshots:
dependencies:
'@hapi/hoek': 9.3.0
- '@headlessui/tailwindcss@0.2.1(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))':
- dependencies:
- tailwindcss: 3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))
-
- '@headlessui/vue@1.7.22(vue@3.4.38(typescript@5.5.3))':
- dependencies:
- '@tanstack/vue-virtual': 3.10.4(vue@3.4.38(typescript@5.5.3))
- vue: 3.4.38(typescript@5.5.3)
-
'@heroicons/react@2.1.5(react@18.3.1)':
dependencies:
react: 18.3.1
@@ -12249,11 +12197,11 @@ snapshots:
'@humanwhocodes/retry@0.3.0': {}
- '@iconify-json/heroicons@1.1.24':
+ '@iconify-json/uil@1.2.0':
dependencies:
'@iconify/types': 2.0.0
- '@iconify/collections@1.0.453':
+ '@iconify/collections@1.0.458':
dependencies:
'@iconify/types': 2.0.0
@@ -12915,6 +12863,17 @@ snapshots:
- rollup
- supports-color
+ '@nuxt/devtools-kit@1.4.2(magicast@0.3.4)(rollup@4.21.0)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))':
+ dependencies:
+ '@nuxt/kit': 3.13.1(magicast@0.3.4)(rollup@4.21.0)
+ '@nuxt/schema': 3.13.1(rollup@4.21.0)
+ execa: 7.2.0
+ vite: 5.4.2(@types/node@18.15.13)(terser@5.31.6)
+ transitivePeerDependencies:
+ - magicast
+ - rollup
+ - supports-color
+
'@nuxt/devtools-wizard@1.3.14':
dependencies:
consola: 3.2.3
@@ -12974,13 +12933,13 @@ snapshots:
- supports-color
- utf-8-validate
- '@nuxt/icon@1.4.10(magicast@0.3.4)(rollup@4.21.0)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))(vue@3.4.38(typescript@5.5.3))':
+ '@nuxt/icon@1.5.1(magicast@0.3.4)(rollup@4.21.0)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))(vue@3.4.38(typescript@5.5.3))':
dependencies:
- '@iconify/collections': 1.0.453
+ '@iconify/collections': 1.0.458
'@iconify/types': 2.0.0
'@iconify/utils': 2.1.32
'@iconify/vue': 4.1.3-beta.1(vue@3.4.38(typescript@5.5.3))
- '@nuxt/devtools-kit': 1.3.14(magicast@0.3.4)(rollup@4.21.0)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))
+ '@nuxt/devtools-kit': 1.4.2(magicast@0.3.4)(rollup@4.21.0)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))
'@nuxt/kit': 3.13.0(magicast@0.3.4)(rollup@4.21.0)
consola: 3.2.3
fast-glob: 3.3.2
@@ -13022,6 +12981,33 @@ snapshots:
- rollup
- supports-color
+ '@nuxt/kit@3.13.1(magicast@0.3.4)(rollup@4.21.0)':
+ dependencies:
+ '@nuxt/schema': 3.13.1(rollup@4.21.0)
+ c12: 1.11.2(magicast@0.3.4)
+ consola: 3.2.3
+ defu: 6.1.4
+ destr: 2.0.3
+ globby: 14.0.2
+ hash-sum: 2.0.0
+ ignore: 5.3.2
+ jiti: 1.21.6
+ klona: 2.0.6
+ knitwork: 1.1.0
+ mlly: 1.7.1
+ pathe: 1.1.2
+ pkg-types: 1.2.0
+ scule: 1.3.0
+ semver: 7.6.3
+ ufo: 1.5.4
+ unctx: 2.3.1
+ unimport: 3.11.1(rollup@4.21.0)
+ untyped: 1.4.2
+ transitivePeerDependencies:
+ - magicast
+ - rollup
+ - supports-color
+
'@nuxt/schema@3.13.0(rollup@4.21.0)':
dependencies:
compatx: 0.1.8
@@ -13040,6 +13026,24 @@ snapshots:
- rollup
- supports-color
+ '@nuxt/schema@3.13.1(rollup@4.21.0)':
+ dependencies:
+ compatx: 0.1.8
+ consola: 3.2.3
+ defu: 6.1.4
+ hookable: 5.5.3
+ pathe: 1.1.2
+ pkg-types: 1.2.0
+ scule: 1.3.0
+ std-env: 3.7.0
+ ufo: 1.5.4
+ uncrypto: 0.1.3
+ unimport: 3.11.1(rollup@4.21.0)
+ untyped: 1.4.2
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
'@nuxt/telemetry@2.5.4(magicast@0.3.4)(rollup@4.21.0)':
dependencies:
'@nuxt/kit': 3.13.0(magicast@0.3.4)(rollup@4.21.0)
@@ -13064,51 +13068,6 @@ snapshots:
- rollup
- supports-color
- '@nuxt/ui@2.18.4(axios@1.7.5)(idb-keyval@6.2.1)(magicast@0.3.4)(nprogress@0.2.0)(qrcode@1.5.4)(rollup@4.21.0)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))(vue@3.4.38(typescript@5.5.3))':
- dependencies:
- '@headlessui/tailwindcss': 0.2.1(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))
- '@headlessui/vue': 1.7.22(vue@3.4.38(typescript@5.5.3))
- '@iconify-json/heroicons': 1.1.24
- '@nuxt/icon': 1.4.10(magicast@0.3.4)(rollup@4.21.0)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))(vue@3.4.38(typescript@5.5.3))
- '@nuxt/kit': 3.13.0(magicast@0.3.4)(rollup@4.21.0)
- '@nuxtjs/color-mode': 3.4.4(magicast@0.3.4)(rollup@4.21.0)
- '@nuxtjs/tailwindcss': 6.12.1(magicast@0.3.4)(rollup@4.21.0)(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))
- '@popperjs/core': 2.11.8
- '@tailwindcss/aspect-ratio': 0.4.2(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))
- '@tailwindcss/container-queries': 0.1.1(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))
- '@tailwindcss/forms': 0.5.7(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))
- '@tailwindcss/typography': 0.5.14(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))
- '@vueuse/core': 10.11.1(vue@3.4.38(typescript@5.5.3))
- '@vueuse/integrations': 10.11.1(axios@1.7.5)(fuse.js@6.6.2)(idb-keyval@6.2.1)(nprogress@0.2.0)(qrcode@1.5.4)(vue@3.4.38(typescript@5.5.3))
- '@vueuse/math': 10.11.1(vue@3.4.38(typescript@5.5.3))
- defu: 6.1.4
- fuse.js: 6.6.2
- ohash: 1.1.3
- pathe: 1.1.2
- scule: 1.3.0
- tailwind-merge: 2.5.2
- tailwindcss: 3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))
- transitivePeerDependencies:
- - '@vue/composition-api'
- - async-validator
- - axios
- - change-case
- - drauu
- - focus-trap
- - idb-keyval
- - jwt-decode
- - magicast
- - nprogress
- - qrcode
- - rollup
- - sortablejs
- - supports-color
- - ts-node
- - uWebSockets.js
- - universal-cookie
- - vite
- - vue
-
'@nuxt/vite-builder@3.13.0(@types/node@18.15.13)(eslint@9.9.1(jiti@1.21.6))(magicast@0.3.4)(optionator@0.9.4)(rollup@4.21.0)(terser@5.31.6)(typescript@5.5.3)(vue@3.4.38(typescript@5.5.3))':
dependencies:
'@nuxt/kit': 3.13.0(magicast@0.3.4)(rollup@4.21.0)
@@ -13282,8 +13241,6 @@ snapshots:
'@polka/url@1.0.0-next.25': {}
- '@popperjs/core@2.11.8': {}
-
'@rainbow-me/rainbowkit@2.1.0(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.10.9(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.10.10(@tanstack/query-core@5.52.0)(@tanstack/react-query@5.52.1(react@18.3.1))(@types/react@18.3.4)(bufferutil@4.0.8)(ioredis@5.4.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.4)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.3)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.21.0)(typescript@5.5.3)(utf-8-validate@5.0.10)(viem@2.17.4(bufferutil@4.0.8)(typescript@5.5.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4))':
dependencies:
'@tanstack/react-query': 5.52.1(react@18.3.1)
@@ -14098,27 +14055,6 @@ snapshots:
'@swc/counter': 0.1.3
tslib: 2.7.0
- '@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))':
- dependencies:
- tailwindcss: 3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))
-
- '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))':
- dependencies:
- tailwindcss: 3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))
-
- '@tailwindcss/forms@0.5.7(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))':
- dependencies:
- mini-svg-data-uri: 1.4.4
- tailwindcss: 3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))
-
- '@tailwindcss/typography@0.5.14(tailwindcss@3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3)))':
- dependencies:
- lodash.castarray: 4.4.0
- lodash.isplainobject: 4.0.6
- lodash.merge: 4.6.2
- postcss-selector-parser: 6.0.10
- tailwindcss: 3.4.10(ts-node@10.9.2(@types/node@18.15.13)(typescript@5.5.3))
-
'@tanstack/match-sorter-utils@8.19.4':
dependencies:
remove-accents: 0.5.0
@@ -14130,8 +14066,6 @@ snapshots:
'@tanstack/query-core': 5.52.0
react: 18.3.1
- '@tanstack/virtual-core@3.10.4': {}
-
'@tanstack/vue-query@5.52.0(vue@3.4.38(typescript@5.5.3))':
dependencies:
'@tanstack/match-sorter-utils': 8.19.4
@@ -14140,11 +14074,6 @@ snapshots:
vue: 3.4.38(typescript@5.5.3)
vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.3))
- '@tanstack/vue-virtual@3.10.4(vue@3.4.38(typescript@5.5.3))':
- dependencies:
- '@tanstack/virtual-core': 3.10.4
- vue: 3.4.38(typescript@5.5.3)
-
'@tootallnate/once@2.0.0': {}
'@trivago/prettier-plugin-sort-imports@4.3.0(@vue/compiler-sfc@3.4.38)(prettier@3.3.3)':
@@ -14685,6 +14614,18 @@ snapshots:
tiny-invariant: 1.3.3
toformat: 2.0.0
+ '@uniswap/sdk-core@5.3.1':
+ dependencies:
+ '@ethersproject/address': 5.7.0
+ '@ethersproject/bytes': 5.7.0
+ '@ethersproject/keccak256': 5.7.0
+ '@ethersproject/strings': 5.7.0
+ big.js: 5.2.2
+ decimal.js-light: 2.5.1
+ jsbi: 3.2.5
+ tiny-invariant: 1.3.3
+ toformat: 2.0.0
+
'@uniswap/v2-sdk@3.3.0':
dependencies:
'@ethersproject/address': 5.7.0
@@ -14693,6 +14634,14 @@ snapshots:
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
+ '@uniswap/v2-sdk@4.4.1':
+ dependencies:
+ '@ethersproject/address': 5.7.0
+ '@ethersproject/solidity': 5.7.0
+ '@uniswap/sdk-core': 5.3.1
+ tiny-invariant: 1.3.3
+ tiny-warning: 1.0.3
+
'@unocss/config@0.62.3':
dependencies:
'@unocss/core': 0.62.3
@@ -15096,42 +15045,34 @@ snapshots:
'@vue/shared@3.4.38': {}
- '@vueuse/core@10.11.1(vue@3.4.38(typescript@5.5.3))':
+ '@vueuse/core@11.0.3(vue@3.4.38(typescript@5.5.3))':
dependencies:
'@types/web-bluetooth': 0.0.20
- '@vueuse/metadata': 10.11.1
- '@vueuse/shared': 10.11.1(vue@3.4.38(typescript@5.5.3))
+ '@vueuse/metadata': 11.0.3
+ '@vueuse/shared': 11.0.3(vue@3.4.38(typescript@5.5.3))
vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.3))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
- '@vueuse/integrations@10.11.1(axios@1.7.5)(fuse.js@6.6.2)(idb-keyval@6.2.1)(nprogress@0.2.0)(qrcode@1.5.4)(vue@3.4.38(typescript@5.5.3))':
- dependencies:
- '@vueuse/core': 10.11.1(vue@3.4.38(typescript@5.5.3))
- '@vueuse/shared': 10.11.1(vue@3.4.38(typescript@5.5.3))
- vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.3))
- optionalDependencies:
- axios: 1.7.5
- fuse.js: 6.6.2
- idb-keyval: 6.2.1
- nprogress: 0.2.0
- qrcode: 1.5.4
- transitivePeerDependencies:
- - '@vue/composition-api'
- - vue
+ '@vueuse/metadata@11.0.3': {}
- '@vueuse/math@10.11.1(vue@3.4.38(typescript@5.5.3))':
+ '@vueuse/nuxt@11.0.3(magicast@0.3.4)(nuxt@3.13.0(@parcel/watcher@2.4.1)(@types/node@18.15.13)(bufferutil@4.0.8)(eslint@9.9.1(jiti@1.21.6))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.21.0)(terser@5.31.6)(typescript@5.5.3)(utf-8-validate@5.0.10)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6)))(rollup@4.21.0)(vue@3.4.38(typescript@5.5.3))':
dependencies:
- '@vueuse/shared': 10.11.1(vue@3.4.38(typescript@5.5.3))
+ '@nuxt/kit': 3.13.0(magicast@0.3.4)(rollup@4.21.0)
+ '@vueuse/core': 11.0.3(vue@3.4.38(typescript@5.5.3))
+ '@vueuse/metadata': 11.0.3
+ local-pkg: 0.5.0
+ nuxt: 3.13.0(@parcel/watcher@2.4.1)(@types/node@18.15.13)(bufferutil@4.0.8)(eslint@9.9.1(jiti@1.21.6))(idb-keyval@6.2.1)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.21.0)(terser@5.31.6)(typescript@5.5.3)(utf-8-validate@5.0.10)(vite@5.4.2(@types/node@18.15.13)(terser@5.31.6))
vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.3))
transitivePeerDependencies:
- '@vue/composition-api'
+ - magicast
+ - rollup
+ - supports-color
- vue
- '@vueuse/metadata@10.11.1': {}
-
- '@vueuse/shared@10.11.1(vue@3.4.38(typescript@5.5.3))':
+ '@vueuse/shared@11.0.3(vue@3.4.38(typescript@5.5.3))':
dependencies:
vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.3))
transitivePeerDependencies:
@@ -17151,6 +17092,23 @@ snapshots:
optionalDependencies:
magicast: 0.3.4
+ c12@1.11.2(magicast@0.3.4):
+ dependencies:
+ chokidar: 3.6.0
+ confbox: 0.1.7
+ defu: 6.1.4
+ dotenv: 16.4.5
+ giget: 1.2.3
+ jiti: 1.21.6
+ mlly: 1.7.1
+ ohash: 1.1.3
+ pathe: 1.1.2
+ perfect-debounce: 1.0.0
+ pkg-types: 1.2.0
+ rc9: 2.1.2
+ optionalDependencies:
+ magicast: 0.3.4
+
cac@6.7.14: {}
cache-content-type@1.0.1:
@@ -17674,6 +17632,15 @@ snapshots:
culori@3.3.0: {}
+ daisyui@4.12.10(postcss@8.4.41):
+ dependencies:
+ css-selector-tokenizer: 0.8.0
+ culori: 3.3.0
+ picocolors: 1.0.1
+ postcss-js: 4.0.1(postcss@8.4.41)
+ transitivePeerDependencies:
+ - postcss
+
daisyui@4.5.0(postcss@8.4.41):
dependencies:
css-selector-tokenizer: 0.8.0
@@ -19305,8 +19272,6 @@ snapshots:
functions-have-names@1.2.3: {}
- fuse.js@6.6.2: {}
-
futoin-hkdf@1.5.3: {}
gauge@3.0.2:
@@ -20568,8 +20533,6 @@ snapshots:
lodash.camelcase@4.3.0: {}
- lodash.castarray@4.4.0: {}
-
lodash.clonedeep@4.5.0: {}
lodash.debounce@4.0.8: {}
@@ -20580,8 +20543,6 @@ snapshots:
lodash.isequal@4.5.0: {}
- lodash.isplainobject@4.0.6: {}
-
lodash.memoize@4.1.2: {}
lodash.merge@4.6.2: {}
@@ -20935,8 +20896,6 @@ snapshots:
min-indent@1.0.1: {}
- mini-svg-data-uri@1.4.4: {}
-
minimalistic-assert@1.0.1: {}
minimalistic-crypto-utils@1.0.1: {}
@@ -21985,11 +21944,6 @@ snapshots:
postcss: 8.4.41
postcss-value-parser: 4.2.0
- postcss-selector-parser@6.0.10:
- dependencies:
- cssesc: 3.0.0
- util-deprecate: 1.0.2
-
postcss-selector-parser@6.1.2:
dependencies:
cssesc: 3.0.0
@@ -23172,8 +23126,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- tailwind-merge@2.5.2: {}
-
tailwindcss@3.4.10(ts-node@10.9.2(@types/node@17.0.45)(typescript@5.5.3)):
dependencies:
'@alloc/quick-lru': 5.2.0