From 31e130a889cc54107d4308835e7d491c5de4e866 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Wed, 3 Jan 2024 14:40:38 +0800 Subject: [PATCH 01/13] en: wagmiv1 init --- package.json | 3 +- src/App.js | 24 +- src/Providers.js | 14 + src/config/chains.js | 10 + src/utils/wagmi/index.js | 54 ++++ yarn.lock | 680 ++++++++++++++++++++++++++++++++------- 6 files changed, 654 insertions(+), 131 deletions(-) create mode 100644 src/Providers.js create mode 100644 src/config/chains.js create mode 100644 src/utils/wagmi/index.js diff --git a/package.json b/package.json index 022564b4..fa900246 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,8 @@ "style-loader": "^3.3.1", "tailwindcss": "^3.0.2", "terser-webpack-plugin": "^5.2.5", - "wagmi": "^0.12.12", + "viem": "^1.19.1", + "wagmi": "^1.4.6", "web-vitals": "^2.1.4", "webpack": "^5.64.4", "webpack-dev-server": "^4.6.0", diff --git a/src/App.js b/src/App.js index 175fb8c6..d6a3cfe2 100644 --- a/src/App.js +++ b/src/App.js @@ -1,10 +1,7 @@ -import i18n from 'i18next'; import { useEffect } from "react"; import BeforeRouterEnter from "@/components/BeforeRouterEnter"; import { WagmiConfig, configureChains, createClient } from 'wagmi' import { goerli, mainnet, polygon, polygonMumbai } from 'wagmi/chains' -import { MetaMaskConnector } from 'wagmi/connectors/metaMask' -import { WalletConnectConnector } from 'wagmi/connectors/walletConnect' import { publicProvider } from 'wagmi/providers/public' import { infuraProvider } from 'wagmi/providers/infura' import MyProvider from './provider'; @@ -13,6 +10,7 @@ import { EthereumClient, w3mConnectors, w3mProvider } from '@web3modal/ethereum' import { Web3Modal } from '@web3modal/react' import * as Sentry from "@sentry/react"; import { ConfigProvider } from 'antd'; +import Providers from "./Providers"; require("@solana/wallet-adapter-react-ui/styles.css"); const sentryKey = process.env.REACT_APP_SENTRY_KEY; @@ -55,22 +53,6 @@ const web3modalClient = createClient({ // webSocketProvider, }) -const wagmiClient = createClient({ - autoConnect: true, - connectors: [ - new MetaMaskConnector({ chains }), - new WalletConnectConnector({ - chains, - options: { - projectId: projectId, - showQrModal: true - }, - }), - ], - provider, - webSocketProvider, -}) - const ethereumClient = new EthereumClient(web3modalClient, chains) export default function App() { @@ -104,7 +86,7 @@ export default function App() { <> {/* wagmi */} - + - + + {children} + + ) +} \ No newline at end of file diff --git a/src/config/chains.js b/src/config/chains.js new file mode 100644 index 00000000..2d562cf2 --- /dev/null +++ b/src/config/chains.js @@ -0,0 +1,10 @@ +import { polygon, polygonMumbai } from "viem/chains"; + + +export const CHAINS_DEV = [ + polygonMumbai +] + +export const CHAINS = [ + polygon +] \ No newline at end of file diff --git a/src/utils/wagmi/index.js b/src/utils/wagmi/index.js new file mode 100644 index 00000000..04dfa444 --- /dev/null +++ b/src/utils/wagmi/index.js @@ -0,0 +1,54 @@ +import { configureChains } from 'wagmi'; +import { MetaMaskConnector } from 'wagmi/connectors/metaMask'; +import { WalletConnectConnector } from 'wagmi/connectors/walletConnect'; +import { CHAINS, CHAINS_DEV } from '@/config/chains'; + + +export const { publicClient, chains } = configureChains( + process.env.REACT_APP_IS_DEV ? CHAINS_DEV : CHAINS, + [], + { + batch: { + multicall: { + batchSize: 1024 * 200, + wait: 16, + }, + }, + pollingInterval: 6_000, + }, + ) + +export const metaMaskConnector = new MetaMaskConnector({ + chains, + options: { + shimDisconnect: false, + }, +}) + +export const walletConnectConnector = new WalletConnectConnector({ + chains, + options: { + projectId: "a9f8856bf87d913f7af93c2a3e5ebb15", + showQrModal: true + }, +}) + +export const noopStorage = { + getItem: (_key) => '', + setItem: (_key, _value) => null, + removeItem: (_key) => null, +} + +export const wagmiConfig = createConfig({ + storage: createStorage({ + storage: typeof window !== 'undefined' ? window.localStorage : noopStorage, + key: 'wagmi_v1.1', + }), + autoConnect: false, + publicClient, + connectors: [ + metaMaskConnector, + walletConnectConnector, + ], +}) + \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index c36f9b6d..f0d3e085 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,11 @@ resolved "https://registry.npmmirror.com/@adobe/css-tools/-/css-tools-4.3.1.tgz#abfccb8ca78075a2b6187345c26243c1a0842f28" integrity sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg== +"@adraffy/ens-normalize@1.10.0": + version "1.10.0" + resolved "https://registry.npmmirror.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7" + integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q== + "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" @@ -1852,6 +1857,11 @@ resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@ioredis/commands@^1.1.1": + version "1.2.0" + resolved "https://registry.npmmirror.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2198,11 +2208,6 @@ bs58 "^5.0.0" uuid "^8.3.2" -"@ledgerhq/connect-kit-loader@^1.0.1": - version "1.1.2" - resolved "https://registry.npmmirror.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.2.tgz#d550e3c1f046e4c796f32a75324b03606b7e226a" - integrity sha512-mscwGroSJQrCTjtNGBu+18FQbZYA4+q6Tyx6K7CXHl6AwgZKbWfZYdgP2F+fyZcRUdGRsMX8QtvU61VcGGtO1A== - "@ledgerhq/devices@6.27.1", "@ledgerhq/devices@^6.27.1": version "6.27.1" resolved "https://registry.npmmirror.com/@ledgerhq/devices/-/devices-6.27.1.tgz#3b13ab1d1ba8201e9e74a08f390560483978c962" @@ -2422,7 +2427,7 @@ dependencies: "@noble/hashes" "1.3.1" -"@noble/curves@^1.1.0", "@noble/curves@^1.2.0": +"@noble/curves@1.2.0", "@noble/curves@^1.1.0", "@noble/curves@^1.2.0", "@noble/curves@~1.2.0": version "1.2.0" resolved "https://registry.npmmirror.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== @@ -2439,6 +2444,11 @@ resolved "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== +"@noble/hashes@~1.3.2": + version "1.3.3" + resolved "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" + integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -2460,6 +2470,98 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@parcel/watcher-android-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz#d82e74bb564ebd4d8a88791d273a3d2bd61e27ab" + integrity sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA== + +"@parcel/watcher-darwin-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz#c9cd03f8f233d512fcfc873d5b4e23f1569a82ad" + integrity sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw== + +"@parcel/watcher-darwin-x64@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz#83c902994a2a49b9e1ab5050dba24876fdc2c219" + integrity sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow== + +"@parcel/watcher-freebsd-x64@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz#7a0f4593a887e2752b706aff2dae509aef430cf6" + integrity sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw== + +"@parcel/watcher-linux-arm-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz#3fc90c3ebe67de3648ed2f138068722f9b1d47da" + integrity sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ== + +"@parcel/watcher-linux-arm64-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz#f7bbbf2497d85fd11e4c9e9c26ace8f10ea9bcbc" + integrity sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA== + +"@parcel/watcher-linux-arm64-musl@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz#de131a9fcbe1fa0854e9cbf4c55bed3b35bcff43" + integrity sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw== + +"@parcel/watcher-linux-x64-glibc@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz#193dd1c798003cdb5a1e59470ff26300f418a943" + integrity sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow== + +"@parcel/watcher-linux-x64-musl@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz#6dbdb86d96e955ab0fe4a4b60734ec0025a689dd" + integrity sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g== + +"@parcel/watcher-wasm@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-wasm/-/watcher-wasm-2.3.0.tgz#73b66c6fbd2a3326ae86a1ec77eab7139d0dd725" + integrity sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA== + dependencies: + is-glob "^4.0.3" + micromatch "^4.0.5" + napi-wasm "^1.1.0" + +"@parcel/watcher-win32-arm64@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz#59da26a431da946e6c74fa6b0f30b120ea6650b6" + integrity sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw== + +"@parcel/watcher-win32-ia32@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz#3ee6a18b08929cd3b788e8cc9547fd9a540c013a" + integrity sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow== + +"@parcel/watcher-win32-x64@2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz#14e7246289861acc589fd608de39fe5d8b4bb0a7" + integrity sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA== + +"@parcel/watcher@^2.3.0": + version "2.3.0" + resolved "https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.3.0.tgz#803517abbc3981a1a1221791d9f59dc0590d50f9" + integrity sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.3.0" + "@parcel/watcher-darwin-arm64" "2.3.0" + "@parcel/watcher-darwin-x64" "2.3.0" + "@parcel/watcher-freebsd-x64" "2.3.0" + "@parcel/watcher-linux-arm-glibc" "2.3.0" + "@parcel/watcher-linux-arm64-glibc" "2.3.0" + "@parcel/watcher-linux-arm64-musl" "2.3.0" + "@parcel/watcher-linux-x64-glibc" "2.3.0" + "@parcel/watcher-linux-x64-musl" "2.3.0" + "@parcel/watcher-win32-arm64" "2.3.0" + "@parcel/watcher-win32-ia32" "2.3.0" + "@parcel/watcher-win32-x64" "2.3.0" + "@particle-network/auth@^0.5.5": version "0.5.6" resolved "https://registry.npmmirror.com/@particle-network/auth/-/auth-0.5.6.tgz#058e00980511fdf72189b6d4a7576e67934a008a" @@ -2624,29 +2726,21 @@ resolved "https://registry.npmmirror.com/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz#5f1b518ec5fa54437c0b7c4a821546c64fed6922" integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== -"@safe-global/safe-apps-provider@^0.15.2": - version "0.15.2" - resolved "https://registry.npmmirror.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.15.2.tgz#fa5c30140134e72bb969da76b80a16c545323e3a" - integrity sha512-BaoGAuY7h6jLBL7P+M6b7hd+1QfTv8uMyNF3udhiNUwA0XwfzH2ePQB13IEV3Mn7wdcIMEEUDS5kHbtAsj60qQ== +"@safe-global/safe-apps-provider@^0.18.1": + version "0.18.1" + resolved "https://registry.npmmirror.com/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.1.tgz#287b5a1e2ef3be630dacde54279409df3ced8202" + integrity sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg== dependencies: - "@safe-global/safe-apps-sdk" "7.9.0" + "@safe-global/safe-apps-sdk" "^8.1.0" events "^3.3.0" -"@safe-global/safe-apps-sdk@7.9.0": - version "7.9.0" - resolved "https://registry.npmmirror.com/@safe-global/safe-apps-sdk/-/safe-apps-sdk-7.9.0.tgz#0c79a7760470bfdaf4cce9aa5bceef56898c7037" - integrity sha512-S2EI+JL8ocSgE3uGNaDZCzKmwfhtxXZFDUP76vN0FeaY35itFMyi8F0Vhxu0XnZm3yLzJE3tp5px6GhuQFLU6w== - dependencies: - "@safe-global/safe-gateway-typescript-sdk" "^3.5.3" - ethers "^5.7.2" - -"@safe-global/safe-apps-sdk@^7.9.0": - version "7.11.0" - resolved "https://registry.npmmirror.com/@safe-global/safe-apps-sdk/-/safe-apps-sdk-7.11.0.tgz#2cbc164fb70141cdf4d3331ff222cd98a2529316" - integrity sha512-RDamzPM1Lhhiiz0O+Dn6FkFqIh47jmZX+HCV/BBnBBOSKfBJE//IGD3+02zMgojXHTikQAburdPes9qmH1SA1A== +"@safe-global/safe-apps-sdk@^8.1.0": + version "8.1.0" + resolved "https://registry.npmmirror.com/@safe-global/safe-apps-sdk/-/safe-apps-sdk-8.1.0.tgz#d1d0c69cd2bf4eef8a79c5d677d16971926aa64a" + integrity sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w== dependencies: "@safe-global/safe-gateway-typescript-sdk" "^3.5.3" - ethers "^5.7.2" + viem "^1.0.0" "@safe-global/safe-gateway-typescript-sdk@^3.5.3": version "3.12.0" @@ -2658,6 +2752,11 @@ resolved "https://registry.npmmirror.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f" integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q== +"@scure/base@~1.1.2": + version "1.1.5" + resolved "https://registry.npmmirror.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" + integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== + "@scure/bip32@1.3.1": version "1.3.1" resolved "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10" @@ -2667,6 +2766,15 @@ "@noble/hashes" "~1.3.1" "@scure/base" "~1.1.0" +"@scure/bip32@1.3.2": + version "1.3.2" + resolved "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.3.2.tgz#90e78c027d5e30f0b22c1f8d50ff12f3fb7559f8" + integrity sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA== + dependencies: + "@noble/curves" "~1.2.0" + "@noble/hashes" "~1.3.2" + "@scure/base" "~1.1.2" + "@scure/bip39@1.2.1": version "1.2.1" resolved "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" @@ -4217,34 +4325,28 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@wagmi/chains@0.2.22": - version "0.2.22" - resolved "https://registry.npmmirror.com/@wagmi/chains/-/chains-0.2.22.tgz#25e511e134a00742e4fbf5108613dadf876c5bd9" - integrity sha512-TdiOzJT6TO1JrztRNjTA5Quz+UmQlbvWFG8N41u9tta0boHA1JCAzGGvU6KuIcOmJfRJkKOUIt67wlbopCpVHg== - -"@wagmi/connectors@0.3.24": - version "0.3.24" - resolved "https://registry.npmmirror.com/@wagmi/connectors/-/connectors-0.3.24.tgz#2c1d69fc0ae6b85b75a4d57547fc7e2d4bc117e8" - integrity sha512-1pI0G9HRblc651dCz9LXuEu/zWQk23XwOUYqJEINb/c2TTLtw5TnTRIcefxxK6RnxeJvcKfnmK0rdZp/4ujFAA== +"@wagmi/connectors@3.1.10": + version "3.1.10" + resolved "https://registry.npmmirror.com/@wagmi/connectors/-/connectors-3.1.10.tgz#830cd788579ef56a2526574914481f2d3aabc9f7" + integrity sha512-ZLJC1QaeiZarkF07Cr9mOlVjPO1Lf5TBx+JKBms2y5fUIXlKrxCfQgO/gDCureboI+Us2X3IRI659+XacSGpbA== dependencies: "@coinbase/wallet-sdk" "^3.6.6" - "@ledgerhq/connect-kit-loader" "^1.0.1" - "@safe-global/safe-apps-provider" "^0.15.2" - "@safe-global/safe-apps-sdk" "^7.9.0" - "@walletconnect/ethereum-provider" "2.9.0" + "@safe-global/safe-apps-provider" "^0.18.1" + "@safe-global/safe-apps-sdk" "^8.1.0" + "@walletconnect/ethereum-provider" "2.10.6" "@walletconnect/legacy-provider" "^2.0.0" - "@walletconnect/modal" "^2.5.9" - abitype "^0.3.0" + "@walletconnect/modal" "2.6.2" + "@walletconnect/utils" "2.10.2" + abitype "0.8.7" eventemitter3 "^4.0.7" -"@wagmi/core@0.10.17": - version "0.10.17" - resolved "https://registry.npmmirror.com/@wagmi/core/-/core-0.10.17.tgz#d2a641c3c608cad813e9eed290769d577512d935" - integrity sha512-qud45y3IlHp7gYWzoFeyysmhyokRie59Xa5tcx5F1E/v4moD5BY0kzD26mZW/ZQ3WZuVK/lZwiiPRqpqWH52Gw== +"@wagmi/core@1.4.12": + version "1.4.12" + resolved "https://registry.npmmirror.com/@wagmi/core/-/core-1.4.12.tgz#84558d1af746b2bcef02337dc3c46108242b1dd7" + integrity sha512-bLcYmmGgjtl3jAGo8X3Sm6oUwsdjbVxFMu9SWnwHdE4S9JdYeWM57dEhQgq8SYul2yQ7yY2/gimBf1Or0Ky3dQ== dependencies: - "@wagmi/chains" "0.2.22" - "@wagmi/connectors" "0.3.24" - abitype "^0.3.0" + "@wagmi/connectors" "3.1.10" + abitype "0.8.7" eventemitter3 "^4.0.7" zustand "^4.3.1" @@ -4307,24 +4409,24 @@ lodash.isequal "4.5.0" uint8arrays "^3.1.0" -"@walletconnect/core@2.9.0": - version "2.9.0" - resolved "https://registry.npmmirror.com/@walletconnect/core/-/core-2.9.0.tgz#7837a5d015a22b48d35b987bcde2aa9ccdf300d8" - integrity sha512-MZYJghS9YCvGe32UOgDj0mCasaOoGHQaYXWeQblXE/xb8HuaM6kAWhjIQN9P+MNp5QP134BHP5olQostcCotXQ== +"@walletconnect/core@2.10.6": + version "2.10.6" + resolved "https://registry.npmmirror.com/@walletconnect/core/-/core-2.10.6.tgz#786b0d2e2045c210c917e29bfa0498bbc210be20" + integrity sha512-Z4vh4ZdfcoQjgPEOxeuF9HUZCVLtV3MgRbS/awLIj/omDrFnOwlBhxi5Syr4Y8muVGC0ocRetQYHae0/gX5crQ== dependencies: "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-provider" "1.0.13" "@walletconnect/jsonrpc-types" "1.0.3" "@walletconnect/jsonrpc-utils" "1.0.8" - "@walletconnect/jsonrpc-ws-connection" "1.0.12" - "@walletconnect/keyvaluestorage" "^1.0.2" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "^1.1.1" "@walletconnect/logger" "^2.0.1" "@walletconnect/relay-api" "^1.0.9" "@walletconnect/relay-auth" "^1.0.4" "@walletconnect/safe-json" "^1.0.2" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.9.0" - "@walletconnect/utils" "2.9.0" + "@walletconnect/types" "2.10.6" + "@walletconnect/utils" "2.10.6" events "^3.3.0" lodash.isequal "4.5.0" uint8arrays "^3.1.0" @@ -4357,19 +4459,20 @@ dependencies: tslib "1.14.1" -"@walletconnect/ethereum-provider@2.9.0": - version "2.9.0" - resolved "https://registry.npmmirror.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.9.0.tgz#aa6e9e441678c824af8f744c50dafd604f19d69e" - integrity sha512-rSXkC0SXMigJRdIi/M2RMuEuATY1AwtlTWQBnqyxoht7xbO2bQNPCXn0XL4s/GRNrSUtoKSY4aPMHXV4W4yLBA== +"@walletconnect/ethereum-provider@2.10.6": + version "2.10.6" + resolved "https://registry.npmmirror.com/@walletconnect/ethereum-provider/-/ethereum-provider-2.10.6.tgz#53720771cc2d6accd452916a853ac927f26acbaa" + integrity sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.7" "@walletconnect/jsonrpc-provider" "^1.0.13" "@walletconnect/jsonrpc-types" "^1.0.3" "@walletconnect/jsonrpc-utils" "^1.0.8" - "@walletconnect/sign-client" "2.9.0" - "@walletconnect/types" "2.9.0" - "@walletconnect/universal-provider" "2.9.0" - "@walletconnect/utils" "2.9.0" + "@walletconnect/modal" "^2.4.3" + "@walletconnect/sign-client" "2.10.6" + "@walletconnect/types" "2.10.6" + "@walletconnect/universal-provider" "2.10.6" + "@walletconnect/utils" "2.10.6" events "^3.3.0" "@walletconnect/events@^1.0.1": @@ -4425,10 +4528,10 @@ "@walletconnect/jsonrpc-types" "^1.0.3" tslib "1.14.1" -"@walletconnect/jsonrpc-ws-connection@1.0.12": - version "1.0.12" - resolved "https://registry.npmmirror.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.12.tgz#2192314884fabdda6d0a9d22e157e5b352025ed8" - integrity sha512-HAcadga3Qjt1Cqy+qXEW6zjaCs8uJGdGQrqltzl3OjiK4epGZRdvSzTe63P+t/3z+D2wG+ffEPn0GVcDozmN1w== +"@walletconnect/jsonrpc-ws-connection@1.0.13": + version "1.0.13" + resolved "https://registry.npmmirror.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.13.tgz#23b0cdd899801bfbb44a6556936ec2b93ef2adf4" + integrity sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg== dependencies: "@walletconnect/jsonrpc-utils" "^1.0.6" "@walletconnect/safe-json" "^1.0.2" @@ -4436,15 +4539,14 @@ tslib "1.14.1" ws "^7.5.1" -"@walletconnect/jsonrpc-ws-connection@1.0.13": - version "1.0.13" - resolved "https://registry.npmmirror.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.13.tgz#23b0cdd899801bfbb44a6556936ec2b93ef2adf4" - integrity sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg== +"@walletconnect/jsonrpc-ws-connection@1.0.14": + version "1.0.14" + resolved "https://registry.npmmirror.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" + integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== dependencies: "@walletconnect/jsonrpc-utils" "^1.0.6" "@walletconnect/safe-json" "^1.0.2" events "^3.3.0" - tslib "1.14.1" ws "^7.5.1" "@walletconnect/keyvaluestorage@^1.0.2": @@ -4455,6 +4557,15 @@ safe-json-utils "^1.1.1" tslib "1.14.1" +"@walletconnect/keyvaluestorage@^1.1.1": + version "1.1.1" + resolved "https://registry.npmmirror.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" + integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== + dependencies: + "@walletconnect/safe-json" "^1.0.1" + idb-keyval "^6.2.1" + unstorage "^1.9.0" + "@walletconnect/legacy-client@^2.0.0": version "2.0.0" resolved "https://registry.npmmirror.com/@walletconnect/legacy-client/-/legacy-client-2.0.0.tgz#9f2c09694789fd4b6c5d68d6423b44bac55aed30" @@ -4545,7 +4656,7 @@ motion "10.16.2" qrcode "1.5.3" -"@walletconnect/modal@^2.5.9": +"@walletconnect/modal@2.6.2", "@walletconnect/modal@^2.4.3": version "2.6.2" resolved "https://registry.npmmirror.com/@walletconnect/modal/-/modal-2.6.2.tgz#4b534a836f5039eeb3268b80be7217a94dd12651" integrity sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== @@ -4607,19 +4718,19 @@ dependencies: tslib "1.14.1" -"@walletconnect/sign-client@2.9.0": - version "2.9.0" - resolved "https://registry.npmmirror.com/@walletconnect/sign-client/-/sign-client-2.9.0.tgz#fd3b0acb68bc8d56350f01ed70f8c6326e6e89fa" - integrity sha512-mEKc4LlLMebCe45qzqh+MX4ilQK4kOEBzLY6YJpG8EhyT45eX4JMNA7qQoYa9MRMaaVb/7USJcc4e3ZrjZvQmA== +"@walletconnect/sign-client@2.10.6": + version "2.10.6" + resolved "https://registry.npmmirror.com/@walletconnect/sign-client/-/sign-client-2.10.6.tgz#722d2c2844565e2826dce6a6d3a36c9b3ca1ea91" + integrity sha512-EvUWjaZBQu2yKnH5/5F2qzbuiIuUN9ZgrNKgvXkw5z1Dq5RJCks0S9/MFlKH/ZSGqXnLl7uAzBXtoX4sMgbCMA== dependencies: - "@walletconnect/core" "2.9.0" + "@walletconnect/core" "2.10.6" "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.1" "@walletconnect/jsonrpc-utils" "1.0.8" "@walletconnect/logger" "^2.0.1" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.9.0" - "@walletconnect/utils" "2.9.0" + "@walletconnect/types" "2.10.6" + "@walletconnect/utils" "2.10.6" events "^3.3.0" "@walletconnect/sign-client@^2.7.2": @@ -4656,10 +4767,10 @@ "@walletconnect/logger" "^2.0.1" events "^3.3.0" -"@walletconnect/types@2.9.0": - version "2.9.0" - resolved "https://registry.npmmirror.com/@walletconnect/types/-/types-2.9.0.tgz#6e5dfdc7212c1ec4ab49a1ec409c743e16093f72" - integrity sha512-ORopsMfSRvUYqtjKKd6scfg8o4/aGebipLxx92AuuUgMTERSU6cGmIrK6rdLu7W6FBJkmngPLEGc9mRqAb9Lug== +"@walletconnect/types@2.10.2": + version "2.10.2" + resolved "https://registry.npmmirror.com/@walletconnect/types/-/types-2.10.2.tgz#68e433a29ec2cf42d79d8b50c77bd5c1d91db721" + integrity sha512-luNV+07Wdla4STi9AejseCQY31tzWKQ5a7C3zZZaRK/di+rFaAAb7YW04OP4klE7tw/mJRGPTlekZElmHxO8kQ== dependencies: "@walletconnect/events" "^1.0.1" "@walletconnect/heartbeat" "1.2.1" @@ -4668,24 +4779,36 @@ "@walletconnect/logger" "^2.0.1" events "^3.3.0" +"@walletconnect/types@2.10.6": + version "2.10.6" + resolved "https://registry.npmmirror.com/@walletconnect/types/-/types-2.10.6.tgz#d9920ed4fd0113e0addbda8e7e73a5176a3163fd" + integrity sha512-WgHfiTG1yakmxheaBRiXhUdEmgxwrvsAdOIWaMf/spvrzVKYh6sHI3oyEEky5qj5jjiMiyQBeB57QamzCotbcQ== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/heartbeat" "1.2.1" + "@walletconnect/jsonrpc-types" "1.0.3" + "@walletconnect/keyvaluestorage" "^1.1.1" + "@walletconnect/logger" "^2.0.1" + events "^3.3.0" + "@walletconnect/types@^1.8.0": version "1.8.0" resolved "https://registry.npmmirror.com/@walletconnect/types/-/types-1.8.0.tgz#3f5e85b2d6b149337f727ab8a71b8471d8d9a195" integrity sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg== -"@walletconnect/universal-provider@2.9.0": - version "2.9.0" - resolved "https://registry.npmmirror.com/@walletconnect/universal-provider/-/universal-provider-2.9.0.tgz#a6b4a1f099262536e17b5c25bf7b3c89db9945a8" - integrity sha512-k3nkSBkF69sJJVoe17IVoPtnhp/sgaa2t+x7BvA/BKeMxE0DGdtRJdEXotTc8DBmI7o2tkq6l8+HyFBGjQ/CjQ== +"@walletconnect/universal-provider@2.10.6": + version "2.10.6" + resolved "https://registry.npmmirror.com/@walletconnect/universal-provider/-/universal-provider-2.10.6.tgz#1a6c42517581f11ce275474bc70d0eb4f1044525" + integrity sha512-CEivusqqoD31BhCTKp08DnrccfGjwD9MFjZs5BNRorDteRFE8zVm9LmP6DSiNJCw82ZajGlZThggLQ/BAATfwA== dependencies: "@walletconnect/jsonrpc-http-connection" "^1.0.7" "@walletconnect/jsonrpc-provider" "1.0.13" "@walletconnect/jsonrpc-types" "^1.0.2" "@walletconnect/jsonrpc-utils" "^1.0.7" "@walletconnect/logger" "^2.0.1" - "@walletconnect/sign-client" "2.9.0" - "@walletconnect/types" "2.9.0" - "@walletconnect/utils" "2.9.0" + "@walletconnect/sign-client" "2.10.6" + "@walletconnect/types" "2.10.6" + "@walletconnect/utils" "2.10.6" events "^3.3.0" "@walletconnect/utils@2.10.1", "@walletconnect/utils@^2.4.5": @@ -4708,10 +4831,30 @@ query-string "7.1.3" uint8arrays "^3.1.0" -"@walletconnect/utils@2.9.0": - version "2.9.0" - resolved "https://registry.npmmirror.com/@walletconnect/utils/-/utils-2.9.0.tgz#c73925edb9fefe79021bcf028e957028f986b728" - integrity sha512-7Tu3m6dZL84KofrNBcblsgpSqU2vdo9ImLD7zWimLXERVGNQ8smXG+gmhQYblebIBhsPzjy9N38YMC3nPlfQNw== +"@walletconnect/utils@2.10.2": + version "2.10.2" + resolved "https://registry.npmmirror.com/@walletconnect/utils/-/utils-2.10.2.tgz#1f2c6a2f1bb95bcc4517b1e94aa7164c9286eb46" + integrity sha512-syxXRpc2yhSknMu3IfiBGobxOY7fLfLTJuw+ppKaeO6WUdZpIit3wfuGOcc0Ms3ZPFCrGfyGOoZsCvgdXtptRg== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "^1.0.2" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "^1.0.3" + "@walletconnect/relay-api" "^1.0.9" + "@walletconnect/safe-json" "^1.0.2" + "@walletconnect/time" "^1.0.2" + "@walletconnect/types" "2.10.2" + "@walletconnect/window-getters" "^1.0.1" + "@walletconnect/window-metadata" "^1.0.1" + detect-browser "5.3.0" + query-string "7.1.3" + uint8arrays "^3.1.0" + +"@walletconnect/utils@2.10.6": + version "2.10.6" + resolved "https://registry.npmmirror.com/@walletconnect/utils/-/utils-2.10.6.tgz#749b37d14e291e346862e7027ec7548463350226" + integrity sha512-oRsWWhN2+hi3aiDXrQEOfysz6FHQJGXLsNQPVt+WIBJplO6Szmdau9dbleD88u1iiT4GKPqE0R9FOYvvPm1H/w== dependencies: "@stablelib/chacha20poly1305" "1.0.1" "@stablelib/hkdf" "1.0.1" @@ -4721,7 +4864,7 @@ "@walletconnect/relay-api" "^1.0.9" "@walletconnect/safe-json" "^1.0.2" "@walletconnect/time" "^1.0.2" - "@walletconnect/types" "2.9.0" + "@walletconnect/types" "2.10.6" "@walletconnect/window-getters" "^1.0.1" "@walletconnect/window-metadata" "^1.0.1" detect-browser "5.3.0" @@ -4929,10 +5072,15 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abitype@^0.3.0: - version "0.3.0" - resolved "https://registry.npmmirror.com/abitype/-/abitype-0.3.0.tgz#75150e337d88cc0b2423ed0d3fc36935f139d04c" - integrity sha512-0YokyAV4hKMcy97Pl+6QgZBlBdZJN2llslOs7kiFY+cu7kMlVXDBpxMExfv0krzBCQt2t7hNovpQ3y/zvEm18A== +abitype@0.8.7: + version "0.8.7" + resolved "https://registry.npmmirror.com/abitype/-/abitype-0.8.7.tgz#e4b3f051febd08111f486c0cc6a98fa72d033622" + integrity sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w== + +abitype@0.9.8: + version "0.9.8" + resolved "https://registry.npmmirror.com/abitype/-/abitype-0.9.8.tgz#1f120b6b717459deafd213dfbf3a3dd1bf10ae8c" + integrity sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ== abort-controller@^3.0.0: version "3.0.0" @@ -4977,6 +5125,11 @@ acorn@^7.1.1: resolved "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.10.0: + version "8.11.3" + resolved "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" resolved "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" @@ -5184,7 +5337,7 @@ any-promise@^1.0.0: resolved "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== -anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@^3.0.3, anymatch@^3.1.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -5192,6 +5345,11 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +arch@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + arg@^5.0.2: version "5.0.2" resolved "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" @@ -6134,6 +6292,13 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +citty@^0.1.4, citty@^0.1.5: + version "0.1.5" + resolved "https://registry.npmmirror.com/citty/-/citty-0.1.5.tgz#fe37ceae5dc764af75eb2fece99d2bf527ea4e50" + integrity sha512-AS7n5NSc0OQVMV9v6wt3ByujNIrne0/cTjiC2MYqhvao57VNfiuVksTSr2p17nVOhEr2KtqiAkGwHcgMC/qUuQ== + dependencies: + consola "^3.2.3" + cjs-module-lexer@^1.0.0: version "1.2.3" resolved "https://registry.npmmirror.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" @@ -6151,6 +6316,15 @@ clean-css@^5.2.2: dependencies: source-map "~0.6.0" +clipboardy@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/clipboardy/-/clipboardy-3.0.0.tgz#f3876247404d334c9ed01b6f269c11d09a5e3092" + integrity sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg== + dependencies: + arch "^2.2.0" + execa "^5.1.1" + is-wsl "^2.2.0" + cliui@^5.0.0: version "5.0.0" resolved "https://registry.npmmirror.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -6183,6 +6357,11 @@ clsx@^1.1.0: resolved "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== +cluster-key-slot@^1.1.0: + version "1.1.2" + resolved "https://registry.npmmirror.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== + co@^4.6.0: version "4.6.0" resolved "https://registry.npmmirror.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -6333,6 +6512,11 @@ connect-history-api-fallback@^2.0.0: resolved "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== +consola@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" + integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== + content-disposition@0.5.4: version "0.5.4" resolved "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" @@ -6355,6 +6539,11 @@ convert-source-map@^2.0.0: resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +cookie-es@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/cookie-es/-/cookie-es-1.0.0.tgz#4759684af168dfc54365b2c2dda0a8d7ee1e4865" + integrity sha512-mWYvfOLrfEc996hlKcdABeIiPHUPC6DM2QYZdGGOvhOTbA3tjm2eBwqlJpoFdjC89NI4Qt6h0Pu06Mp+1Pj5OQ== + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -6833,6 +7022,11 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, de has-property-descriptors "^1.0.0" object-keys "^1.1.1" +defu@^6.1.2, defu@^6.1.3: + version "6.1.3" + resolved "https://registry.npmmirror.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" + integrity sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ== + delay@^5.0.0: version "5.0.0" resolved "https://registry.npmmirror.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" @@ -6843,6 +7037,11 @@ delayed-stream@~1.0.0: resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + depd@2.0.0: version "2.0.0" resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -6866,6 +7065,11 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +destr@^2.0.1, destr@^2.0.2: + version "2.0.2" + resolved "https://registry.npmmirror.com/destr/-/destr-2.0.2.tgz#8d3c0ee4ec0a76df54bc8b819bca215592a8c218" + integrity sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg== + destroy@1.2.0: version "1.2.0" resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" @@ -6881,6 +7085,11 @@ detect-browser@5.3.0, detect-browser@^5.3.0: resolved "https://registry.npmmirror.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.npmmirror.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -7789,7 +7998,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" -execa@^5.0.0: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -8207,6 +8416,11 @@ get-package-type@^0.1.0: resolved "https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-port-please@^3.1.1: + version "3.1.1" + resolved "https://registry.npmmirror.com/get-port-please/-/get-port-please-3.1.1.tgz#2556623cddb4801d823c0a6a15eec038abb483be" + integrity sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA== + get-stream@^6.0.0: version "6.0.1" resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -8339,6 +8553,20 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" +h3@^1.8.1, h3@^1.8.2: + version "1.9.0" + resolved "https://registry.npmmirror.com/h3/-/h3-1.9.0.tgz#c5f512a93026df9837db6f30c9ef51135dd46752" + integrity sha512-+F3ZqrNV/CFXXfZ2lXBINHi+rM4Xw3CDC5z2CDK3NMPocjonKipGLLDSkrqY9DOrioZNPTIdDMWfQKm//3X2DA== + dependencies: + cookie-es "^1.0.0" + defu "^6.1.3" + destr "^2.0.2" + iron-webcrypto "^1.0.0" + radix3 "^1.1.0" + ufo "^1.3.2" + uncrypto "^0.1.3" + unenv "^1.7.4" + handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -8755,6 +8983,11 @@ http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" +http-shutdown@^1.2.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/http-shutdown/-/http-shutdown-1.2.2.tgz#41bc78fc767637c4c95179bc492f312c0ae64c5f" + integrity sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -8811,6 +9044,11 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== +idb-keyval@^6.2.1: + version "6.2.1" + resolved "https://registry.npmmirror.com/idb-keyval/-/idb-keyval-6.2.1.tgz#94516d625346d16f56f3b33855da11bfded2db33" + integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== + idb@^7.0.1: version "7.1.1" resolved "https://registry.npmmirror.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" @@ -8911,6 +9149,21 @@ intersection-observer@^0.12.0: resolved "https://registry.npmmirror.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375" integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg== +ioredis@^5.3.2: + version "5.3.2" + resolved "https://registry.npmmirror.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" + integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -8921,6 +9174,11 @@ ipaddr.js@^2.0.1: resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.1.0.tgz#2119bc447ff8c257753b196fc5f1ce08a4cdf39f" integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== +iron-webcrypto@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/iron-webcrypto/-/iron-webcrypto-1.0.0.tgz#e3b689c0c61b434a0a4cb82d0aeabbc8b672a867" + integrity sha512-anOK1Mktt8U1Xi7fCM3RELTuYbnFikQY5VtrDj7kPgpejV7d43tWKhzgioO0zpkazLEL/j/iayRqnJhrGfqUsg== + is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" @@ -9238,6 +9496,11 @@ isomorphic-ws@^4.0.1: resolved "https://registry.npmmirror.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== +isows@1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/isows/-/isows-1.0.3.tgz#93c1cf0575daf56e7120bab5c8c448b0809d0d74" + integrity sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg== + istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -9858,6 +10121,11 @@ jiti@^1.18.2: resolved "https://registry.npmmirror.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== +jiti@^1.20.0: + version "1.21.0" + resolved "https://registry.npmmirror.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + js-base64@^3.7.2: version "3.7.5" resolved "https://registry.npmmirror.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" @@ -10015,6 +10283,11 @@ json5@^2.1.2, json5@^2.2.0, json5@^2.2.3: resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -10155,6 +10428,29 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +listhen@^1.5.5: + version "1.5.5" + resolved "https://registry.npmmirror.com/listhen/-/listhen-1.5.5.tgz#58915512af70f770aa3e9fb19367adf479bb58c4" + integrity sha512-LXe8Xlyh3gnxdv4tSjTjscD1vpr/2PRpzq8YIaMJgyKzRG8wdISlWVWnGThJfHnlJ6hmLt2wq1yeeix0TEbuoA== + dependencies: + "@parcel/watcher" "^2.3.0" + "@parcel/watcher-wasm" "2.3.0" + citty "^0.1.4" + clipboardy "^3.0.0" + consola "^3.2.3" + defu "^6.1.2" + get-port-please "^3.1.1" + h3 "^1.8.1" + http-shutdown "^1.2.2" + jiti "^1.20.0" + mlly "^1.4.2" + node-forge "^1.3.1" + pathe "^1.1.1" + std-env "^3.4.3" + ufo "^1.3.0" + untun "^0.1.2" + uqr "^0.1.2" + lit-element@^3.3.0: version "3.3.3" resolved "https://registry.npmmirror.com/lit-element/-/lit-element-3.3.3.tgz#10bc19702b96ef5416cf7a70177255bfb17b3209" @@ -10240,6 +10536,16 @@ lodash.debounce@^4.0.8: resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.isarguments@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== + lodash.isequal@4.5.0: version "4.5.0" resolved "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -10304,6 +10610,11 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" +lru-cache@^10.0.2: + version "10.1.0" + resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -11037,6 +11348,11 @@ mime@1.6.0: resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -11090,6 +11406,16 @@ mkdirp@~0.5.1: dependencies: minimist "^1.2.6" +mlly@^1.2.0, mlly@^1.4.2: + version "1.4.2" + resolved "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== + dependencies: + acorn "^8.10.0" + pathe "^1.1.1" + pkg-types "^1.0.3" + ufo "^1.3.0" + motion@10.16.2: version "10.16.2" resolved "https://registry.npmmirror.com/motion/-/motion-10.16.2.tgz#7dc173c6ad62210a7e9916caeeaf22c51e598d21" @@ -11102,7 +11428,7 @@ motion@10.16.2: "@motionone/utils" "^10.15.1" "@motionone/vue" "^10.16.2" -mri@^1.1.0: +mri@^1.1.0, mri@^1.2.0: version "1.2.0" resolved "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== @@ -11149,6 +11475,11 @@ nanoid@^3.3.6: resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +napi-wasm@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/napi-wasm/-/napi-wasm-1.1.0.tgz#bbe617823765ae9c1bc12ff5942370eae7b2ba4e" + integrity sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== + natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -11182,6 +11513,16 @@ node-addon-api@^2.0.0: resolved "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== +node-addon-api@^7.0.0: + version "7.0.0" + resolved "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" + integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== + +node-fetch-native@^1.4.0, node-fetch-native@^1.4.1: + version "1.6.1" + resolved "https://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" + integrity sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw== + node-fetch@^2.6.12: version "2.7.0" resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -11189,7 +11530,7 @@ node-fetch@^2.6.12: dependencies: whatwg-url "^5.0.0" -node-forge@^1: +node-forge@^1, node-forge@^1.3.1: version "1.3.1" resolved "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== @@ -11354,6 +11695,15 @@ obuf@^1.0.0, obuf@^1.1.2: resolved "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== +ofetch@^1.3.3: + version "1.3.3" + resolved "https://registry.npmmirror.com/ofetch/-/ofetch-1.3.3.tgz#588cb806a28e5c66c2c47dd8994f9059a036d8c0" + integrity sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg== + dependencies: + destr "^2.0.1" + node-fetch-native "^1.4.0" + ufo "^1.3.0" + on-exit-leak-free@^0.2.0: version "0.2.0" resolved "https://registry.npmmirror.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209" @@ -11567,6 +11917,11 @@ path-type@^4.0.0: resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pathe@^1.1.0, pathe@^1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== + pbkdf2@^3.0.3: version "3.1.2" resolved "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" @@ -11655,6 +12010,15 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.2.0" + pathe "^1.1.0" + pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -12480,6 +12844,11 @@ quick-format-unescaped@^4.0.3: resolved "https://registry.npmmirror.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7" integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== +radix3@^1.1.0: + version "1.1.0" + resolved "https://registry.npmmirror.com/radix3/-/radix3-1.1.0.tgz#9745df67a49c522e94a33d0a93cf743f104b6e0d" + integrity sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A== + raf@^3.4.1: version "3.4.1" resolved "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" @@ -13136,6 +13505,18 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.npmmirror.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== + dependencies: + redis-errors "^1.0.0" + redux@^4.2.1: version "4.2.1" resolved "https://registry.npmmirror.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" @@ -13991,6 +14372,11 @@ stackframe@^1.3.4: resolved "https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + state-local@^1.0.6: version "1.0.7" resolved "https://registry.npmmirror.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5" @@ -14013,6 +14399,11 @@ statuses@2.0.1: resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +std-env@^3.4.3: + version "3.7.0" + resolved "https://registry.npmmirror.com/std-env/-/std-env-3.7.0.tgz#c9f7386ced6ecf13360b6c6c55b8aaa4ef7481d2" + integrity sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== + stop-iteration-iterator@^1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" @@ -14700,6 +15091,11 @@ typescript@^4.6.2: resolved "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +ufo@^1.3.0, ufo@^1.3.1, ufo@^1.3.2: + version "1.3.2" + resolved "https://registry.npmmirror.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" + integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== + uint8arrays@^3.0.0, uint8arrays@^3.1.0: version "3.1.1" resolved "https://registry.npmmirror.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" @@ -14717,11 +15113,27 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +uncrypto@^0.1.3: + version "0.1.3" + resolved "https://registry.npmmirror.com/uncrypto/-/uncrypto-0.1.3.tgz#e1288d609226f2d02d8d69ee861fa20d8348ef2b" + integrity sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== + underscore@1.12.1: version "1.12.1" resolved "https://registry.npmmirror.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== +unenv@^1.7.4: + version "1.8.0" + resolved "https://registry.npmmirror.com/unenv/-/unenv-1.8.0.tgz#0f860d5278405700bd95d47b23bc01f3a735d68c" + integrity sha512-uIGbdCWZfhRRmyKj1UioCepQ0jpq638j/Cf0xFTn4zD1nGJ2lSdzYHLzfdXN791oo/0juUiSWW1fBklXMTsuqg== + dependencies: + consola "^3.2.3" + defu "^6.1.3" + mime "^3.0.0" + node-fetch-native "^1.4.1" + pathe "^1.1.1" + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -14881,6 +15293,32 @@ unquote@~1.1.1: resolved "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== +unstorage@^1.9.0: + version "1.10.1" + resolved "https://registry.npmmirror.com/unstorage/-/unstorage-1.10.1.tgz#bf8cc00a406e40a6293e893da9807057d95875b0" + integrity sha512-rWQvLRfZNBpF+x8D3/gda5nUCQL2PgXy2jNG4U7/Rc9BGEv9+CAJd0YyGCROUBKs9v49Hg8huw3aih5Bf5TAVw== + dependencies: + anymatch "^3.1.3" + chokidar "^3.5.3" + destr "^2.0.2" + h3 "^1.8.2" + ioredis "^5.3.2" + listhen "^1.5.5" + lru-cache "^10.0.2" + mri "^1.2.0" + node-fetch-native "^1.4.1" + ofetch "^1.3.3" + ufo "^1.3.1" + +untun@^0.1.2: + version "0.1.3" + resolved "https://registry.npmmirror.com/untun/-/untun-0.1.3.tgz#5d10dee37a3a5737ff03d158be877dae0a0e58a6" + integrity sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== + dependencies: + citty "^0.1.5" + consola "^3.2.3" + pathe "^1.1.1" + upath@^1.2.0: version "1.2.0" resolved "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -14894,6 +15332,11 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" +uqr@^0.1.2: + version "0.1.2" + resolved "https://registry.npmmirror.com/uqr/-/uqr-0.1.2.tgz#5c6cd5dcff9581f9bb35b982cb89e2c483a41d7d" + integrity sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -15056,6 +15499,20 @@ vfile@^5.0.0, vfile@^5.3.7: unist-util-stringify-position "^3.0.0" vfile-message "^3.0.0" +viem@^1.0.0, viem@^1.19.1: + version "1.21.4" + resolved "https://registry.npmmirror.com/viem/-/viem-1.21.4.tgz#883760e9222540a5a7e0339809202b45fe6a842d" + integrity sha512-BNVYdSaUjeS2zKQgPs+49e5JKocfo60Ib2yiXOWBT6LuVxY1I/6fFX3waEtpXvL1Xn4qu+BVitVtMh9lyThyhQ== + dependencies: + "@adraffy/ens-normalize" "1.10.0" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@scure/bip32" "1.3.2" + "@scure/bip39" "1.2.1" + abitype "0.9.8" + isows "1.0.3" + ws "8.13.0" + void-elements@3.1.0: version "3.1.0" resolved "https://registry.npmmirror.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" @@ -15075,16 +15532,16 @@ w3c-xmlserializer@^2.0.0: dependencies: xml-name-validator "^3.0.0" -wagmi@^0.12.12: - version "0.12.19" - resolved "https://registry.npmmirror.com/wagmi/-/wagmi-0.12.19.tgz#5f5038330907f70c033ea51ef8a9136289567256" - integrity sha512-S/el9BDb/HNeQWh1v8TvntMPX/CgKLDAoJqDb8i7jifLfWPqFL7gor3vnI1Vs6ZlB8uh7m+K1Qyg+mKhbITuDQ== +wagmi@^1.4.6: + version "1.4.12" + resolved "https://registry.npmmirror.com/wagmi/-/wagmi-1.4.12.tgz#e5d31c6d7621ecd9e32eded6c7b1041201223127" + integrity sha512-QRxpjhdMlZmbYTfn9VQkQMKq+l3kwA1O7tF10vaykPrjbGX+IIlyn72ib9oqW9BfQO7n/Sf/mnVz1zbxRhGPWA== dependencies: "@tanstack/query-sync-storage-persister" "^4.27.1" "@tanstack/react-query" "^4.28.0" "@tanstack/react-query-persist-client" "^4.28.0" - "@wagmi/core" "0.10.17" - abitype "^0.3.0" + "@wagmi/core" "1.4.12" + abitype "0.8.7" use-sync-external-store "^1.2.0" walker@^1.0.7: @@ -15617,6 +16074,11 @@ ws@7.4.6: resolved "https://registry.npmmirror.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@8.13.0: + version "8.13.0" + resolved "https://registry.npmmirror.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + ws@^7.4.5, ws@^7.4.6, ws@^7.5.1: version "7.5.9" resolved "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" From ca5aed1f84872aafa9b62a363546ed12ce7a9408 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Wed, 3 Jan 2024 14:43:36 +0800 Subject: [PATCH 02/13] del: webmodal --- package.json | 2 - src/App.js | 39 --------------- .../CustomChallenge/CustomConnect.js | 3 -- src/containers/AppHeader.js | 6 +-- src/containers/DefaultLayout.js | 4 +- yarn.lock | 49 +------------------ 6 files changed, 4 insertions(+), 99 deletions(-) diff --git a/package.json b/package.json index fa900246..4fead4d8 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,6 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", - "@web3modal/ethereum": "^2.3.3", - "@web3modal/react": "^2.3.3", "ahooks": "^3.7.5", "antd": "^5.1.7", "axios": "^1.5.0", diff --git a/src/App.js b/src/App.js index d6a3cfe2..ad5c59de 100644 --- a/src/App.js +++ b/src/App.js @@ -1,13 +1,7 @@ import { useEffect } from "react"; import BeforeRouterEnter from "@/components/BeforeRouterEnter"; -import { WagmiConfig, configureChains, createClient } from 'wagmi' -import { goerli, mainnet, polygon, polygonMumbai } from 'wagmi/chains' -import { publicProvider } from 'wagmi/providers/public' -import { infuraProvider } from 'wagmi/providers/infura' import MyProvider from './provider'; import { StyleProvider, legacyLogicalPropertiesTransformer } from '@ant-design/cssinjs'; -import { EthereumClient, w3mConnectors, w3mProvider } from '@web3modal/ethereum' -import { Web3Modal } from '@web3modal/react' import * as Sentry from "@sentry/react"; import { ConfigProvider } from 'antd'; import Providers from "./Providers"; @@ -32,29 +26,6 @@ if (sentryKey) { }); } - -const projectId = process.env.REACT_APP_PROJECT_ID; -const infura = process.env.REACT_APP_INFURA_API_KEY; - -const { chains, provider, webSocketProvider } = configureChains( - [mainnet, goerli, polygonMumbai, polygon], - [ - // alchemyProvider({ apiKey: process.env.NEXT_PUBLIC_ALCHEMY_API_KEY! }), - infuraProvider({ apiKey: infura }), - publicProvider(), - ], - { targetQuorum: 1 }, -) -const { publicClient } = configureChains(chains, [w3mProvider({ projectId })]) -const web3modalClient = createClient({ - autoConnect: true, - connectors: w3mConnectors({ projectId, chains }), - publicClient, - // webSocketProvider, -}) - -const ethereumClient = new EthereumClient(web3modalClient, chains) - export default function App() { function localInit(params) { @@ -83,9 +54,6 @@ export default function App() { },[]) return ( - <> - - {/* wagmi */} - - ) } \ No newline at end of file diff --git a/src/components/CustomChallenge/CustomConnect.js b/src/components/CustomChallenge/CustomConnect.js index 0e624e83..58ce7f9e 100644 --- a/src/components/CustomChallenge/CustomConnect.js +++ b/src/components/CustomChallenge/CustomConnect.js @@ -3,7 +3,6 @@ import { useEffect } from "react"; import { NickName } from "../../utils/NickName"; import { useRequest } from "ahooks"; import { useTranslation } from "react-i18next"; -import { useWeb3Modal } from "@web3modal/react"; import { changeConnect } from "@/utils/redux"; import { useAddress } from "@/hooks/useAddress"; @@ -13,11 +12,9 @@ export default function CustomConnect(props) { const { t } = useTranslation(["claim"]); const { step, setStep, isMobile } = props; const { address } = useAddress(); - const { isOpen, open, close, setDefaultChain } = useWeb3Modal(); const openModalConnect = () => { if (isMobile) { - open() return } changeConnect() diff --git a/src/containers/AppHeader.js b/src/containers/AppHeader.js index bdf1b96e..7e3334d5 100644 --- a/src/containers/AppHeader.js +++ b/src/containers/AppHeader.js @@ -13,7 +13,6 @@ import "@/assets/styles/container.scss" import "@/assets/styles/mobile/container.scss" import { hashAvatar } from '@/utils/HashAvatar'; import { NickName } from '@/utils/NickName'; -import { useWeb3Modal } from "@web3modal/react"; import logo_white from "@/assets/images/svg/logo-white.png"; import logo_normal from "@/assets/images/svg/logo-normal.png"; import { changeConnect } from '@/utils/redux'; @@ -33,7 +32,6 @@ export default function AppHeader({ isMobile, user }) { const { disconnect } = useDisconnect(); const navigateTo = useNavigate(); const location = useLocation(); - const { isOpen, open, close, setDefaultChain } = useWeb3Modal(); let [isOpenM, setIsOpenM] = useState(false); const items = [ @@ -97,8 +95,8 @@ export default function AppHeader({ isMobile, user }) { const openModal = async() => { if (isMobile) { - await open({route: "ConnectWallet"}) - setIsOpenM(!isOpenM) + // await open({route: "ConnectWallet"}) + // setIsOpenM(!isOpenM) return } changeConnect(); diff --git a/src/containers/DefaultLayout.js b/src/containers/DefaultLayout.js index 24c681bf..3fa9a44d 100644 --- a/src/containers/DefaultLayout.js +++ b/src/containers/DefaultLayout.js @@ -11,7 +11,6 @@ import CustomSigner from "@/redux/CustomSigner"; import CustomConnect from "@/redux/CustomConnect"; import MyContext from "@/provider/context"; import store, { hideCustomSigner, showCustomSigner } from "@/redux/store"; -import { useWeb3Modal } from "@web3modal/react"; import { useAddress } from "@/hooks/useAddress"; import { useWallet } from "@solana/wallet-adapter-react"; import { useAccount, useDisconnect } from "wagmi"; @@ -27,7 +26,6 @@ export default function DefaultLayout(params) { const navigateTo = useNavigate(); const location = useLocation(); const { isMobile, user } = useContext(MyContext); - const { close } = useWeb3Modal(); const [api, contextHolder] = notification.useNotification(); // const [messageApi, contextHolder] = message.useMessage(); let [footerHide, setFooterHide] = useState(false); @@ -167,7 +165,7 @@ export default function DefaultLayout(params) { } if (address && isMobile && localStorage.getItem("decert.token")) { - close() + // close() } if (addr === null && address) { diff --git a/yarn.lock b/yarn.lock index f0d3e085..fd674808 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4898,36 +4898,6 @@ "@walletconnect/window-getters" "^1.0.1" tslib "1.14.1" -"@web3modal/core@2.7.1": - version "2.7.1" - resolved "https://registry.npmmirror.com/@web3modal/core/-/core-2.7.1.tgz#257534d45f7b5d6bddbc667f787c094eb91dd281" - integrity sha512-eFWR1tK1qN4FguhaZq2VW0AVr8DC/Fox2eJnK1eTfk32hxSgUtl8wr5fVM8EoLeoapQ7Zcc0SNg/QLuLQ9t2tA== - dependencies: - valtio "1.11.0" - -"@web3modal/ethereum@^2.3.3": - version "2.7.1" - resolved "https://registry.npmmirror.com/@web3modal/ethereum/-/ethereum-2.7.1.tgz#464dbc1d00d075c16961b77e9a353b1966538653" - integrity sha512-1x3qhYh9qgtvw1MDQD4VeDf2ZOsVANKRPtUty4lF+N4L8xnAIwvNKUAMA4j6T5xSsjqUfq5Tdy5mYsNxLmsWMA== - -"@web3modal/react@^2.3.3": - version "2.7.1" - resolved "https://registry.npmmirror.com/@web3modal/react/-/react-2.7.1.tgz#c768aae41bfe15abe379f8b6489d69d153fc7a46" - integrity sha512-+zvP5Q7Q3ozW2hyA1NvS8giVDeZWA6PWgVhKA6656dCnOutonPUpWYuFPJahsFBYCrhLO8ApPmomgb6Dx/mh5A== - dependencies: - "@web3modal/core" "2.7.1" - "@web3modal/ui" "2.7.1" - -"@web3modal/ui@2.7.1": - version "2.7.1" - resolved "https://registry.npmmirror.com/@web3modal/ui/-/ui-2.7.1.tgz#9c2cb0f66623fcf41084f50e63acff33f26b0635" - integrity sha512-JpGJbLAl/Wmuyyn+JwuwtlPD8mUW2HV/gsSxKWZoElgjbfDY4vjHo9PH2G++2HhugISfzjawp43r8lP/hWgWOQ== - dependencies: - "@web3modal/core" "2.7.1" - lit "2.7.6" - motion "10.16.2" - qrcode "1.5.3" - "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -10460,22 +10430,13 @@ lit-element@^3.3.0: "@lit/reactive-element" "^1.3.0" lit-html "^2.8.0" -lit-html@^2.7.0, lit-html@^2.8.0: +lit-html@^2.8.0: version "2.8.0" resolved "https://registry.npmmirror.com/lit-html/-/lit-html-2.8.0.tgz#96456a4bb4ee717b9a7d2f94562a16509d39bffa" integrity sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== dependencies: "@types/trusted-types" "^2.0.2" -lit@2.7.6: - version "2.7.6" - resolved "https://registry.npmmirror.com/lit/-/lit-2.7.6.tgz#810007b876ed43e0c70124de91831921598b1665" - integrity sha512-1amFHA7t4VaaDe+vdQejSVBklwtH9svGoG6/dZi9JhxtJBBlqY5D1RV7iLUYY0trCqQc4NfhYYZilZiVHt7Hxg== - dependencies: - "@lit/reactive-element" "^1.6.0" - lit-element "^3.3.0" - lit-html "^2.7.0" - lit@2.8.0: version "2.8.0" resolved "https://registry.npmmirror.com/lit/-/lit-2.8.0.tgz#4d838ae03059bf9cafa06e5c61d8acc0081e974e" @@ -15429,14 +15390,6 @@ v8-to-istanbul@^8.1.0: convert-source-map "^1.6.0" source-map "^0.7.3" -valtio@1.11.0: - version "1.11.0" - resolved "https://registry.npmmirror.com/valtio/-/valtio-1.11.0.tgz#c029dcd17a0f99d2fbec933721fe64cfd32a31ed" - integrity sha512-65Yd0yU5qs86b5lN1eu/nzcTgQ9/6YnD6iO+DDaDbQLn1Zv2w12Gwk43WkPlUBxk5wL/6cD5YMFf7kj6HZ1Kpg== - dependencies: - proxy-compare "2.5.1" - use-sync-external-store "1.2.0" - valtio@1.11.2: version "1.11.2" resolved "https://registry.npmmirror.com/valtio/-/valtio-1.11.2.tgz#b8049c02dfe65620635d23ebae9121a741bb6530" From 4bd581ff92f31d6fa7b571e8f7c4da95b7322ae5 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Wed, 3 Jan 2024 15:12:04 +0800 Subject: [PATCH 03/13] =?UTF-8?q?en:=20=E6=A0=B9=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 44 ++-------------------------- src/Providers.js | 60 ++++++++++++++++++++++++++++++++++++--- src/index.js | 8 ++++-- src/utils/solana/index.js | 11 +++++++ src/utils/wagmi/index.js | 5 ++-- src/wallet/index.js | 44 ---------------------------- 6 files changed, 78 insertions(+), 94 deletions(-) create mode 100644 src/utils/solana/index.js delete mode 100644 src/wallet/index.js diff --git a/src/App.js b/src/App.js index ad5c59de..b8f35ebd 100644 --- a/src/App.js +++ b/src/App.js @@ -1,31 +1,8 @@ import { useEffect } from "react"; import BeforeRouterEnter from "@/components/BeforeRouterEnter"; import MyProvider from './provider'; -import { StyleProvider, legacyLogicalPropertiesTransformer } from '@ant-design/cssinjs'; -import * as Sentry from "@sentry/react"; -import { ConfigProvider } from 'antd'; -import Providers from "./Providers"; require("@solana/wallet-adapter-react-ui/styles.css"); -const sentryKey = process.env.REACT_APP_SENTRY_KEY; -if (sentryKey) { - Sentry.init({ - dsn: sentryKey, - integrations: [ - new Sentry.BrowserTracing({ - // Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled - tracePropagationTargets: ["localhost", /^https:\/\/yourserver\.io\/api/], - }), - new Sentry.Replay(), - ], - // Performance Monitoring - tracesSampleRate: process.env.REACT_APP_SENTRY_TRACES || 1.0, // Capture 100% of the transactions, reduce in production! - // Session Replay - replaysSessionSampleRate: process.env.REACT_APP_SENTRY_REPLAYS_SESSION || 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production. - replaysOnErrorSampleRate: process.env.REACT_APP_SENTRY_REPLAYS_ON_ERROR || 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur. - }); -} - export default function App() { function localInit(params) { @@ -54,23 +31,8 @@ export default function App() { },[]) return ( - - - - - - - - - + + + ) } \ No newline at end of file diff --git a/src/Providers.js b/src/Providers.js index 534b7b29..31f48474 100644 --- a/src/Providers.js +++ b/src/Providers.js @@ -1,14 +1,66 @@ +import { ConnectionProvider, WalletProvider } from "@solana/wallet-adapter-react"; +import { WalletModalProvider } from "@solana/wallet-adapter-react-ui"; +import { clusterApiUrl } from "@solana/web3.js"; +import { coinbase, network, phantom, trust } from "./utils/solana"; import { WagmiConfig } from "wagmi"; import { wagmiConfig } from "./utils/wagmi"; +import { ConfigProvider } from 'antd'; +import { StyleProvider, legacyLogicalPropertiesTransformer } from '@ant-design/cssinjs'; +import * as Sentry from "@sentry/react"; +import { useMemo } from "react"; +require("@solana/wallet-adapter-react-ui/styles.css"); - +const sentryKey = process.env.REACT_APP_SENTRY_KEY; +if (sentryKey) { + Sentry.init({ + dsn: sentryKey, + integrations: [ + new Sentry.BrowserTracing({ + // Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled + tracePropagationTargets: ["localhost", /^https:\/\/yourserver\.io\/api/], + }), + new Sentry.Replay(), + ], + // Performance Monitoring + tracesSampleRate: process.env.REACT_APP_SENTRY_TRACES || 1.0, // Capture 100% of the transactions, reduce in production! + // Session Replay + replaysSessionSampleRate: process.env.REACT_APP_SENTRY_REPLAYS_SESSION || 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production. + replaysOnErrorSampleRate: process.env.REACT_APP_SENTRY_REPLAYS_ON_ERROR || 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur. + }); +} export default function Providers({children}) { + window.Buffer = window.Buffer || require("buffer").Buffer; + + const endpoint = useMemo(() => clusterApiUrl(network), [network]); + const wallets = useMemo( + () => [ + coinbase, phantom, trust + ], + [network] + ); return ( - - {children} - + // solana + + + + {/* wagmi */} + + + + {children} + + + + + + ) } \ No newline at end of file diff --git a/src/index.js b/src/index.js index 0ec89701..6f63ef06 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,6 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; +import { BrowserRouter } from 'react-router-dom'; import "./assets/locales/config"; import 'antd/dist/reset.css'; import '@/assets/styles/index.css'; @@ -7,13 +8,14 @@ import 'highlight.js/styles/vs.css'; import 'github-markdown-css/github-markdown-light.css'; import 'bytemd/dist/index.css'; import App from './App'; -import { BrowserRouter } from 'react-router-dom'; -import WalletAdapter from './wallet'; +import Providers from "./Providers"; const root = ReactDOM.createRoot(document.getElementById('root')); root.render( - + + + ); diff --git a/src/utils/solana/index.js b/src/utils/solana/index.js new file mode 100644 index 00000000..c901e7b5 --- /dev/null +++ b/src/utils/solana/index.js @@ -0,0 +1,11 @@ +import { WalletAdapterNetwork } from "@solana/wallet-adapter-base"; +import { + CoinbaseWalletAdapter, + PhantomWalletAdapter, + TrustWalletAdapter, +} from "@solana/wallet-adapter-wallets"; + +export const network = WalletAdapterNetwork.Mainnet; +export const phantom = new PhantomWalletAdapter(); +export const coinbase = new CoinbaseWalletAdapter(); +export const trust = new TrustWalletAdapter(); \ No newline at end of file diff --git a/src/utils/wagmi/index.js b/src/utils/wagmi/index.js index 04dfa444..8e846206 100644 --- a/src/utils/wagmi/index.js +++ b/src/utils/wagmi/index.js @@ -1,12 +1,13 @@ -import { configureChains } from 'wagmi'; +import { configureChains, createConfig, createStorage } from 'wagmi'; import { MetaMaskConnector } from 'wagmi/connectors/metaMask'; import { WalletConnectConnector } from 'wagmi/connectors/walletConnect'; +import { publicProvider } from 'wagmi/providers/public'; import { CHAINS, CHAINS_DEV } from '@/config/chains'; export const { publicClient, chains } = configureChains( process.env.REACT_APP_IS_DEV ? CHAINS_DEV : CHAINS, - [], + [publicProvider()], { batch: { multicall: { diff --git a/src/wallet/index.js b/src/wallet/index.js deleted file mode 100644 index 94059849..00000000 --- a/src/wallet/index.js +++ /dev/null @@ -1,44 +0,0 @@ -import { useMemo } from "react"; -import App from "../App"; -import { clusterApiUrl } from "@solana/web3.js"; -import { - ConnectionProvider, - WalletProvider -} from "@solana/wallet-adapter-react"; -import { WalletAdapterNetwork } from "@solana/wallet-adapter-base"; -import { - CoinbaseWalletAdapter, - PhantomWalletAdapter, - SolflareWalletAdapter, - TrustWalletAdapter, -} from "@solana/wallet-adapter-wallets"; -import { WalletModalProvider } from "@solana/wallet-adapter-react-ui"; - -require("@solana/wallet-adapter-react-ui/styles.css"); - -export default function WalletAdapter() { - window.Buffer = window.Buffer || require("buffer").Buffer; - - const network = WalletAdapterNetwork.Mainnet; - const endpoint = useMemo(() => clusterApiUrl(network), [network]); - - const phantom = new PhantomWalletAdapter(); - const coinbase = new CoinbaseWalletAdapter(); - const trust = new TrustWalletAdapter(); - const wallets = useMemo( - () => [ - coinbase, phantom, trust - // new SolflareWalletAdapter({ network }), - ], - [network] - ); - return ( - - - - - - - - ); -} From c112dfa7b0d3a2b5c559903e181536a59db269e2 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Wed, 3 Jan 2024 16:22:46 +0800 Subject: [PATCH 04/13] =?UTF-8?q?en:=20wagmiv1=20=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Providers.js | 5 +- src/components/CustomChallenge/CustomClaim.js | 7 +- .../CustomChallenge/CustomCompleted.js | 20 +- src/contracts/Badge.abi.js | 423 ++++++++++++++++-- src/contracts/QuestMinter.abi.js | 295 ++++++++++-- src/contracts/contracts.js | 1 - src/contracts/index.js | 4 + src/hooks/usePublish.js | 84 ++-- src/hooks/usePublishCollection.js | 26 +- src/provider/index.js | 14 +- src/redux/CustomSigner.js | 5 +- src/utils/wagmi/index.js | 2 +- src/views/Collection/index.js | 3 - src/views/Publish/index.js | 9 +- 14 files changed, 766 insertions(+), 132 deletions(-) delete mode 100644 src/contracts/contracts.js create mode 100644 src/contracts/index.js diff --git a/src/Providers.js b/src/Providers.js index 31f48474..c4e21b65 100644 --- a/src/Providers.js +++ b/src/Providers.js @@ -55,10 +55,11 @@ export default function Providers({children}) { Progress: { gapDegree: 0}, }}} > - {children} - + {children} + + diff --git a/src/components/CustomChallenge/CustomClaim.js b/src/components/CustomChallenge/CustomClaim.js index 294a555c..29aab55b 100644 --- a/src/components/CustomChallenge/CustomClaim.js +++ b/src/components/CustomChallenge/CustomClaim.js @@ -6,7 +6,7 @@ import { } from '@ant-design/icons'; import { getClaimHash, getQuests, hasClaimed, submitHash } from "../../request/api/public"; import { claim } from "../../controller"; -import { useNetwork, useSigner, useSwitchNetwork, useWaitForTransaction } from "wagmi"; +import { useNetwork, useSwitchNetwork, useWaitForTransaction } from "wagmi"; import { useEffect, useState } from "react"; import ModalLoading from "../CustomModal/ModalLoading"; import { GetScorePercent } from "@/utils/GetPercent"; @@ -28,7 +28,6 @@ export default function CustomClaim(props) { const navigateTo = useNavigate(); const { chain } = useNetwork(); const { verify } = useVerifyToken(); - const { data: signer } = useSigner(); let [open, setOpen] = useState(); let [link, setLink] = useState(""); let [status, setStatus] = useState(0); @@ -51,7 +50,7 @@ export default function CustomClaim(props) { let [isModalAirdropOpen, setIsModalAirdropOpen] = useState(); let [writeLoading, setWriteLoading] = useState(); const { isLoading } = useWaitForTransaction({ - hash: claimHash, + hash: claimHash?.hash, onSuccess() { // 清除cache const cache = JSON.parse(localStorage.getItem('decert.cache')); @@ -114,7 +113,7 @@ export default function CustomClaim(props) { obj.tokenId, obj.score, signature.data, - signer + // signer ) setClaimHash(claimHash); setWriteLoading(false); diff --git a/src/components/CustomChallenge/CustomCompleted.js b/src/components/CustomChallenge/CustomCompleted.js index 9d60513c..3ccd4840 100644 --- a/src/components/CustomChallenge/CustomCompleted.js +++ b/src/components/CustomChallenge/CustomCompleted.js @@ -2,30 +2,25 @@ import { Spin } from "antd"; import { LoadingOutlined } from '@ant-design/icons'; -import { useEffect, useState } from "react"; +import { useContext, useEffect, useState } from "react"; import { Encryption } from "@/utils/Encryption"; -import { useSigner } from "wagmi"; import { GetPercent } from "@/utils/GetPercent"; import { useVerifyToken } from "@/hooks/useVerifyToken"; import CustomClaimInfo from "./CustomClaimInfo"; import CustomClaimStep from "./CustomClaimStep"; -import { useBadgeContract } from "@/controller/contract"; import Confetti from "react-confetti"; -import { constans } from "@/utils/constans"; import { useAddress } from "@/hooks/useAddress"; +import MyContext from "@/provider/context"; export default function CustomCompleted(props) { const { answers, detail, tokenId, isClaim, address: addr } = props; - const { defaultChainId } = constans(); + const { badgeContract } = useContext(MyContext); const { verify } = useVerifyToken(); - const { data: signer } = useSigner({ - chainId: defaultChainId - }); + const { data: signer } = useWalletClient(); const { address, isConnected } = useAddress(); const { decode } = Encryption(); - const key = process.env.REACT_APP_ANSWERS_KEY; let [answerInfo, setAnswerInfo] = useState(); let [showConfetti, setShowConfetti] = useState(false); @@ -34,11 +29,14 @@ export default function CustomCompleted(props) { let [percent, setPercent] = useState(0); let [scoresArgs, setScoresArgs] = useState([Number(tokenId), addr]); - const { data, isLoading, refetch } = useBadgeContract({ - functionName: "scores", + const { refetch } = useContractRead({ + ...badgeContract, + enabled: false, + functionName: 'scores', args: scoresArgs }) + const contrast = async(arr) => { const questions = detail.metadata.properties.questions; let totalScore = 0; diff --git a/src/contracts/Badge.abi.js b/src/contracts/Badge.abi.js index 8655b170..519de9c0 100644 --- a/src/contracts/Badge.abi.js +++ b/src/contracts/Badge.abi.js @@ -1,41 +1,384 @@ module.exports = [ - "constructor(string)", - "error AlreadyHoldsBadge()", - "error InvalidMinter()", - "error NonApprovableERC1155Token()", - "error NonTransferrableERC1155Token()", - "error NonexistentToken()", - "error NotClaimedYet()", - "error OnlyMinter()", - "error TokenIdAlreadyExists()", - "event ApprovalForAll(address indexed,address indexed,bool)", - "event OwnershipTransferred(address indexed,address indexed)", - "event SetMinter(address,bool)", - "event TransferBatch(address indexed,address indexed,address indexed,uint256[],uint256[])", - "event TransferSingle(address indexed,address indexed,address indexed,uint256,uint256)", - "event URI(string,uint256 indexed)", - "function balanceOf(address,uint256) view returns (uint256)", - "function balanceOfBatch(address[],uint256[]) view returns (uint256[])", - "function create(address,uint256,uint256,string,bytes) returns (uint256)", - "function creators(uint256) view returns (address)", - "function exists(uint256) view returns (bool)", - "function isApprovedForAll(address,address) view returns (bool)", - "function mint(address,uint256,uint256,bytes)", - "function minters(address) view returns (bool)", - "function name() view returns (string)", - "function owner() view returns (address)", - "function renounceOwnership()", - "function safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)", - "function safeTransferFrom(address,address,uint256,uint256,bytes)", - "function scores(uint256,address) view returns (uint256)", - "function setApprovalForAll(address,bool)", - "function setCustomURI(uint256,string)", - "function setMinter(address,bool)", - "function supportsInterface(bytes4) view returns (bool)", - "function symbol() view returns (string)", - "function tokenSupply(uint256) view returns (uint256)", - "function transferOwnership(address)", - "function updateScore(address,uint256,uint256)", - "function uri(uint256) view returns (string)" -] -; \ No newline at end of file + { + inputs: [{ internalType: "string", name: "uri_", type: "string" }], + stateMutability: "nonpayable", + type: "constructor", + }, + { inputs: [], name: "AlreadyHoldsBadge", type: "error" }, + { inputs: [], name: "InvalidMinter", type: "error" }, + { inputs: [], name: "NonApprovableERC1155Token", type: "error" }, + { inputs: [], name: "NonTransferrableERC1155Token", type: "error" }, + { inputs: [], name: "NonexistentToken", type: "error" }, + { inputs: [], name: "NotClaimedYet", type: "error" }, + { inputs: [], name: "OnlyMinter", type: "error" }, + { inputs: [], name: "TokenIdAlreadyExists", type: "error" }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "account", + 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: true, + internalType: "address", + name: "previousOwner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "newOwner", + type: "address", + }, + ], + name: "OwnershipTransferred", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "minter", + type: "address", + }, + { + indexed: false, + internalType: "bool", + name: "enabled", + type: "bool", + }, + ], + name: "SetMinter", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "operator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256[]", + name: "ids", + type: "uint256[]", + }, + { + indexed: false, + internalType: "uint256[]", + name: "values", + type: "uint256[]", + }, + ], + name: "TransferBatch", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "operator", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "id", + type: "uint256", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "TransferSingle", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "value", + type: "string", + }, + { + indexed: true, + internalType: "uint256", + name: "id", + type: "uint256", + }, + ], + name: "URI", + type: "event", + }, + { + inputs: [ + { internalType: "address", name: "account", type: "address" }, + { internalType: "uint256", name: "id", type: "uint256" }, + ], + name: "balanceOf", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { internalType: "address[]", name: "accounts", type: "address[]" }, + { internalType: "uint256[]", name: "ids", type: "uint256[]" }, + ], + name: "balanceOfBatch", + outputs: [{ internalType: "uint256[]", name: "", type: "uint256[]" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "creator", type: "address" }, + { internalType: "uint256", name: "id", type: "uint256" }, + { internalType: "uint256", name: "initialSupply", type: "uint256" }, + { internalType: "string", name: "uri_", type: "string" }, + { internalType: "bytes", name: "data", type: "bytes" }, + ], + name: "create", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [{ internalType: "uint256", name: "", type: "uint256" }], + name: "creators", + outputs: [{ internalType: "address", name: "", type: "address" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [{ internalType: "uint256", name: "tokenId", type: "uint256" }], + name: "exists", + outputs: [{ internalType: "bool", name: "", type: "bool" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "account", 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: "uint256", name: "id", type: "uint256" }, + { internalType: "uint256", name: "amount", type: "uint256" }, + { internalType: "bytes", name: "data", type: "bytes" }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [{ internalType: "address", name: "", type: "address" }], + name: "minters", + outputs: [{ internalType: "bool", name: "", type: "bool" }], + stateMutability: "view", + 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: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "from", type: "address" }, + { internalType: "address", name: "to", type: "address" }, + { internalType: "uint256[]", name: "ids", type: "uint256[]" }, + { internalType: "uint256[]", name: "amounts", type: "uint256[]" }, + { internalType: "bytes", name: "data", type: "bytes" }, + ], + name: "safeBatchTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "from", type: "address" }, + { internalType: "address", name: "to", type: "address" }, + { internalType: "uint256", name: "id", type: "uint256" }, + { internalType: "uint256", name: "amount", type: "uint256" }, + { internalType: "bytes", name: "data", type: "bytes" }, + ], + name: "safeTransferFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "uint256", name: "", type: "uint256" }, + { internalType: "address", name: "", type: "address" }, + ], + name: "scores", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "", type: "address" }, + { internalType: "bool", name: "", type: "bool" }, + ], + name: "setApprovalForAll", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "uint256", name: "id", type: "uint256" }, + { internalType: "string", name: "newURI", type: "string" }, + ], + name: "setCustomURI", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "minter", type: "address" }, + { internalType: "bool", name: "enabled", type: "bool" }, + ], + name: "setMinter", + 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: "tokenId", type: "uint256" }], + name: "tokenSupply", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "newOwner", type: "address" }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "to", type: "address" }, + { internalType: "uint256", name: "tokenId", type: "uint256" }, + { internalType: "uint256", name: "score", type: "uint256" }, + ], + name: "updateScore", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [{ internalType: "uint256", name: "id", type: "uint256" }], + name: "uri", + outputs: [{ internalType: "string", name: "", type: "string" }], + stateMutability: "view", + type: "function", + }, +]; diff --git a/src/contracts/QuestMinter.abi.js b/src/contracts/QuestMinter.abi.js index bad6a066..57212c23 100644 --- a/src/contracts/QuestMinter.abi.js +++ b/src/contracts/QuestMinter.abi.js @@ -1,28 +1,269 @@ module.exports = [ - "constructor(address,address)", - "error InvalidArray()", - "error InvalidSigner()", - "error NonexistentToken()", - "error NotCreator()", - "error NotInTime()", - "error OverLimit()", - "event Airdroped(uint256 indexed,address indexed)", - "event Claimed(uint256 indexed,address indexed)", - "event Donation(address,address,uint256)", - "event OwnershipTransferred(address indexed,address indexed)", - "event SignerChanged(address)", - "function airdropBadge(uint256[],address[],uint256[],bytes)", - "function badge() view returns (address)", - "function claim(uint256,uint256,bytes) payable", - "function createQuest(tuple(uint32,uint32,uint192,string,string),bytes)", - "function modifyQuest(uint256,tuple(uint32,uint32,uint192,string,string),bytes)", - "function owner() view returns (address)", - "function quest() view returns (address)", - "function renounceOwnership()", - "function setBadgeURI(uint256,string,bytes)", - "function setSigner(address)", - "function signer() view returns (address)", - "function startTokenId() view returns (uint256)", - "function transferOwnership(address)", - "function updateScore(uint256,uint256,bytes)" -] + { + inputs: [ + { internalType: "address", name: "badge_", type: "address" }, + { internalType: "address", name: "quest_", type: "address" }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { inputs: [], name: "InvalidArray", type: "error" }, + { inputs: [], name: "InvalidSigner", type: "error" }, + { inputs: [], name: "NonexistentToken", type: "error" }, + { inputs: [], name: "NotCreator", type: "error" }, + { inputs: [], name: "NotInTime", type: "error" }, + { inputs: [], name: "OverLimit", type: "error" }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + ], + name: "Airdroped", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "Claimed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "Donation", + 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: false, + internalType: "address", + name: "signer", + type: "address", + }, + ], + name: "SignerChanged", + type: "event", + }, + { + inputs: [ + { internalType: "uint256[]", name: "tokenIds", type: "uint256[]" }, + { internalType: "address[]", name: "receivers", type: "address[]" }, + { internalType: "uint256[]", name: "scores", type: "uint256[]" }, + { internalType: "bytes", name: "signature", type: "bytes" }, + ], + name: "airdropBadge", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "badge", + outputs: [ + { internalType: "contract IBadge", name: "", type: "address" }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { internalType: "uint256", name: "tokenId", type: "uint256" }, + { internalType: "uint256", name: "score", type: "uint256" }, + { internalType: "bytes", name: "signature", type: "bytes" }, + ], + name: "claim", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + components: [ + { internalType: "uint32", name: "startTs", type: "uint32" }, + { internalType: "uint32", name: "endTs", type: "uint32" }, + { + internalType: "uint192", + name: "supply", + type: "uint192", + }, + { internalType: "string", name: "title", type: "string" }, + { internalType: "string", name: "uri", type: "string" }, + ], + internalType: "struct IQuest.QuestData", + name: "questData", + type: "tuple", + }, + { internalType: "bytes", name: "signature", type: "bytes" }, + ], + name: "createQuest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "uint256", name: "tokenId", type: "uint256" }, + { + components: [ + { internalType: "uint32", name: "startTs", type: "uint32" }, + { internalType: "uint32", name: "endTs", type: "uint32" }, + { + internalType: "uint192", + name: "supply", + type: "uint192", + }, + { internalType: "string", name: "title", type: "string" }, + { internalType: "string", name: "uri", type: "string" }, + ], + internalType: "struct IQuest.QuestData", + name: "questData", + type: "tuple", + }, + { internalType: "bytes", name: "signature", type: "bytes" }, + ], + name: "modifyQuest", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "owner", + outputs: [{ internalType: "address", name: "", type: "address" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "quest", + outputs: [ + { internalType: "contract IQuest", name: "", type: "address" }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "renounceOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "uint256", name: "tokenId", type: "uint256" }, + { internalType: "string", name: "uri", type: "string" }, + { internalType: "bytes", name: "signature", type: "bytes" }, + ], + name: "setBadgeURI", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [{ internalType: "address", name: "signer_", type: "address" }], + name: "setSigner", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "signer", + outputs: [{ internalType: "address", name: "", type: "address" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "startTokenId", + outputs: [{ internalType: "uint256", name: "", type: "uint256" }], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { internalType: "address", name: "newOwner", type: "address" }, + ], + name: "transferOwnership", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { internalType: "uint256", name: "tokenId", type: "uint256" }, + { internalType: "uint256", name: "score", type: "uint256" }, + { internalType: "bytes", name: "signature", type: "bytes" }, + ], + name: "updateScore", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; diff --git a/src/contracts/contracts.js b/src/contracts/contracts.js deleted file mode 100644 index 744c39bc..00000000 --- a/src/contracts/contracts.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = []; \ No newline at end of file diff --git a/src/contracts/index.js b/src/contracts/index.js new file mode 100644 index 00000000..ba669db6 --- /dev/null +++ b/src/contracts/index.js @@ -0,0 +1,4 @@ +export { default as BadgeAbi } from './Badge.abi'; +export { default as BadgeAddr } from './Badge.address'; +export { default as QuestMinterAbi } from './QuestMinter.abi'; +export { default as QuestMinterAddr } from './QuestMinter.address'; diff --git a/src/hooks/usePublish.js b/src/hooks/usePublish.js index 3343a570..546baf1b 100644 --- a/src/hooks/usePublish.js +++ b/src/hooks/usePublish.js @@ -1,15 +1,15 @@ -import { useEffect, useState } from "react"; -import { useNetwork, useSigner, useSwitchNetwork, useWaitForTransaction } from "wagmi"; +import { useContext, useEffect, useState } from "react"; +import { useContractWrite, useNetwork, useSwitchNetwork, useWaitForTransaction, useWalletClient } from "wagmi"; import { useVerifyToken } from "@/hooks/useVerifyToken"; import { addQuests, modifyQuests, submitHash } from "@/request/api/public"; import { constans } from "@/utils/constans"; -import { createQuest, modifyQuest } from "@/controller"; import { message } from "antd"; import { useNavigate } from "react-router-dom"; import axios from "axios"; import { useTranslation } from "react-i18next"; import { useRequest, useUpdateEffect } from "ahooks"; import { pollingGetQuest } from "@/request/api/polling"; +import MyContext from "@/provider/context"; @@ -17,8 +17,9 @@ export const usePublish = (props) => { const { jsonHash, recommend, changeId } = props; const { defaultChainId } = constans(); + const { data: signer } = useWalletClient(); + const { questContract } = useContext(MyContext); const { chain } = useNetwork(); - const { data: signer } = useSigner(); const { verify } = useVerifyToken(); const { ipfsPath, maxUint32, maxUint192 } = constans(); const navigateTo = useNavigate(); @@ -41,7 +42,7 @@ export const usePublish = (props) => { let [createTokenId, setCreateTokenId] = useState(); let [createLoading, setCreateLoading] = useState(); const { isLoading: transactionLoading, data } = useWaitForTransaction({ - hash: createQuestHash, + hash: createQuestHash?.hash, cacheTime: 0 }) const { run, cancel } = useRequest(getChallenge, { @@ -51,6 +52,18 @@ export const usePublish = (props) => { }); + const { writeAsync: createQuest } = useContractWrite({ + ...questContract, + functionName: 'createQuest', + }) + + const { writeAsync: modifyQuest } = useContractWrite({ + ...questContract, + functionName: 'modifyQuest', + }) + + + function getChallenge() { pollingGetQuest({id: createTokenId||changeId}) .then(res => { @@ -75,30 +88,42 @@ export const usePublish = (props) => { } const write = (sign, obj, params) => { - changeId ? - modifyQuest(changeId, obj, sign, signer) - .then(res => { - setIsLoading(false); - if (res) { - submitHash({ - hash: res, - params: params - }) - setCreateQuestHash(res) - } - }) - : - createQuest(obj, sign, signer) - .then(res => { - setIsLoading(false); - if (res) { - submitHash({ - hash: res, - params: params - }) - setCreateQuestHash(res) - } - }) + let { startTs, endTs, supply, title, uri } = obj; + endTs = constans().maxUint32; + supply = constans().maxUint192; + const args = [startTs, endTs, supply, title, uri]; + if (changeId) { + modifyQuest({ args: [changeId, args, sign] }) + .then(res => { + setIsLoading(false); + if (res) { + submitHash({ + hash: res.hash, + params: params + }) + setCreateQuestHash(res) + } + }) + .catch(err => { + console.log(err); + }) + }else{ + createQuest({ args: [args, sign] }) + .then(res => { + setIsLoading(false); + if (res) { + submitHash({ + hash: res.hash, + params: params + }) + setCreateQuestHash(res) + } + }) + .catch(err => { + console.log(err); + setIsLoading(false); + }) + } } const processingData = async() => { @@ -183,6 +208,7 @@ export const usePublish = (props) => { setCreateLoading(createLoading); run() } + console.log(data.logs); data.logs.forEach(log => { if (log.topics[0] === "0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b") { createTokenId = parseInt(log.topics[1], 16); diff --git a/src/hooks/usePublishCollection.js b/src/hooks/usePublishCollection.js index 2face069..44008652 100644 --- a/src/hooks/usePublishCollection.js +++ b/src/hooks/usePublishCollection.js @@ -1,19 +1,19 @@ -import { useNetwork, useSigner, useSwitchNetwork, useWaitForTransaction } from "wagmi"; +import { useContractWrite, useNetwork, useSwitchNetwork, useWaitForTransaction } from "wagmi"; import { useVerifyToken } from "./useVerifyToken"; import { constans } from "@/utils/constans"; import { useNavigate } from "react-router-dom"; import { useTranslation } from "react-i18next"; -import { useEffect, useState } from "react"; -import { createQuest } from "@/controller"; +import { useContext, useEffect, useState } from "react"; import { addQuests, submitHash } from "@/request/api/public"; import { useUpdateEffect } from "ahooks"; import { message } from "antd"; +import MyContext from "@/provider/context"; export default function usePublishCollection({ detail, jsonHash, collectionId }) { + const { questContract } = useContext(MyContext); const { chain } = useNetwork(); - const { data: signer } = useSigner(); const { verify } = useVerifyToken(); const navigateTo = useNavigate(); const { t } = useTranslation(["publish", "translation"]); @@ -23,6 +23,10 @@ export default function usePublishCollection({ detail, jsonHash, collectionId }) let [isSwitch, setIsSwitch] = useState(false); let [createQuestHash, setCreateQuestHash] = useState(); + const { writeAsync: createQuest } = useContractWrite({ + ...questContract, + functionName: 'createQuest', + }) const { switchNetwork } = useSwitchNetwork({ chainId: defaultChainId, onError() { @@ -33,22 +37,30 @@ export default function usePublishCollection({ detail, jsonHash, collectionId }) } }) const { isLoading: transactionLoading } = useWaitForTransaction({ - hash: createQuestHash, + hash: createQuestHash?.hash, cacheTime: 0 }) const write = (sign, obj, params) => { - createQuest(obj, sign, signer) + let { startTs, endTs, supply, title, uri } = obj; + endTs = constans().maxUint32; + supply = constans().maxUint192; + const args = [startTs, endTs, supply, title, uri]; + createQuest({ args: [args, sign] }) .then(res => { setIsLoading(false); if (res) { submitHash({ - hash: res, + hash: res.hash, params }) setCreateQuestHash(res) } }) + .catch(err => { + console.log(err); + setIsLoading(false); + }) } const processingData = async() => { diff --git a/src/provider/index.js b/src/provider/index.js index 12a4c84b..138b1caf 100644 --- a/src/provider/index.js +++ b/src/provider/index.js @@ -1,11 +1,23 @@ import store from "@/redux/store"; import { useState } from "react"; import MyContext from "./context"; +import { getContract } from '@wagmi/core' +import { BadgeAbi, BadgeAddr, QuestMinterAbi, QuestMinterAddr } from "@/contracts"; export default function MyProvider(props) { let [isMobile, setIsMobile] = useState(); let [user, setUser] = useState(); + const questContract = getContract({ + address: QuestMinterAddr, + abi: QuestMinterAbi, + }) + + const badgeContract = getContract({ + address: BadgeAddr, + abi: BadgeAbi, + }) + function handleMobileChange() { isMobile = store.getState().isMobile; setIsMobile(isMobile); @@ -21,7 +33,7 @@ export default function MyProvider(props) { store.subscribe(handleUser); return ( - + {props.children} ); diff --git a/src/redux/CustomSigner.js b/src/redux/CustomSigner.js index 1fa6bdb1..8e3d8d41 100644 --- a/src/redux/CustomSigner.js +++ b/src/redux/CustomSigner.js @@ -3,7 +3,7 @@ import { Modal } from 'antd'; import { useEffect } from 'react'; import { connect } from 'react-redux'; import { useLocation, useNavigate } from 'react-router-dom'; -import { useDisconnect, useSigner } from 'wagmi'; +import { useDisconnect, useWalletClient } from 'wagmi'; import { useWallet } from "@solana/wallet-adapter-react"; import { useAddress } from '@/hooks/useAddress'; import { useRequest } from 'ahooks'; @@ -11,10 +11,10 @@ const { confirm } = Modal; function CustomSigner(props) { - const { data: signer } = useSigner(); const { connected, wallet } = useWallet(); const { address } = useAddress(); const { disconnect } = useDisconnect(); + const { data: signer } = useWalletClient(); const navigateTo = useNavigate(); const location = useLocation(); @@ -53,6 +53,7 @@ function CustomSigner(props) { } }) .catch(err => { + console.log(err); Modal.destroyAll() props.hide() }) diff --git a/src/utils/wagmi/index.js b/src/utils/wagmi/index.js index 8e846206..4b0b86cd 100644 --- a/src/utils/wagmi/index.js +++ b/src/utils/wagmi/index.js @@ -45,7 +45,7 @@ export const wagmiConfig = createConfig({ storage: typeof window !== 'undefined' ? window.localStorage : noopStorage, key: 'wagmi_v1.1', }), - autoConnect: false, + autoConnect: true, publicClient, connectors: [ metaMaskConnector, diff --git a/src/views/Collection/index.js b/src/views/Collection/index.js index 1108e4a1..4ad7ebe4 100644 --- a/src/views/Collection/index.js +++ b/src/views/Collection/index.js @@ -12,12 +12,10 @@ import { useTranslation } from "react-i18next"; import { ExclamationCircleOutlined } from '@ant-design/icons'; -import CollectionChallenger from "./challenger"; import CollectionInfo from "./detail"; import usePublishCollection from "@/hooks/usePublishCollection"; import { hasClaimed } from "@/request/api/public"; import MyContext from "@/provider/context"; -import { useProvider, useSigner } from "wagmi"; import Challenger from "../Question/Challenger"; @@ -26,7 +24,6 @@ export default function Collection(params) { const { id } = useParams(); const { isMobile } = useContext(MyContext); - const { data: signer } = useSigner() const { address, walletType, isConnected } = useAddress(); const { ipfsPath, defaultImg, openseaLink } = constans(); const [api, contextHolder] = notification.useNotification(); diff --git a/src/views/Publish/index.js b/src/views/Publish/index.js index 420aa678..5f59ff9c 100644 --- a/src/views/Publish/index.js +++ b/src/views/Publish/index.js @@ -3,7 +3,7 @@ import { useTranslation } from "react-i18next"; import { Button, Form, Input, InputNumber, Select, Spin, Upload, message } from "antd"; import { UploadOutlined } from '@ant-design/icons'; import { useUpdateEffect } from "ahooks"; -import { useSigner } from "wagmi"; +import { useWalletClient } from "wagmi"; import "@/assets/styles/view-style/publish.scss" import "@/assets/styles/component-style"; @@ -20,7 +20,6 @@ import { getQuests, modifyRecommend } from "@/request/api/public"; import { usePublish } from "@/hooks/usePublish"; import { clearDataBase, getDataBase, saveCache } from "@/utils/saveCache"; import store, { setChallenge } from "@/redux/store"; -import { tokenSupply } from "@/controller"; const { TextArea } = Input; @@ -34,7 +33,7 @@ export default function Publish(params) { const isFirstRender = useRef(true); // 是否是第一次渲染 const questions = Form.useWatch("questions", form); // 舰艇form表单内的questions - const { data: signer } = useSigner(); + const { data: signer } = useWalletClient(); const { isConnected, walletType, address } = useAddress(); const { t } = useTranslation(["publish", "translation"]); const { encode, decode } = Encryption(); @@ -197,7 +196,9 @@ export default function Publish(params) { // 修改挑战情况下 => 判断该挑战是否有人铸造 async function hasClaimed(tokenId) { - const supply = await tokenSupply(tokenId, signer) + // TODO: 改为后端查 + // const supply = await tokenSupply(tokenId, signer) + const supply = 0 // 已有人claim,终止 if ( typeof supply === "number" && supply > 0) { message.warning(t("profile:edit.error")); From 88b7445a79884f0db9701353c8c3aa96b4b38769 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Wed, 3 Jan 2024 16:35:39 +0800 Subject: [PATCH 05/13] =?UTF-8?q?fix:=20wagmi=E8=87=AA=E5=8A=A8=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 1 - src/utils/GetSign.js | 2 +- src/utils/wagmi/index.js | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/App.js b/src/App.js index b8f35ebd..8d7b174e 100644 --- a/src/App.js +++ b/src/App.js @@ -1,7 +1,6 @@ import { useEffect } from "react"; import BeforeRouterEnter from "@/components/BeforeRouterEnter"; import MyProvider from './provider'; -require("@solana/wallet-adapter-react-ui/styles.css"); export default function App() { diff --git a/src/utils/GetSign.js b/src/utils/GetSign.js index da342dbe..bfb13f3b 100644 --- a/src/utils/GetSign.js +++ b/src/utils/GetSign.js @@ -43,7 +43,7 @@ export async function GetSign(params) { // 2、获取签名 // 判断当前address为solana if (/^0x/.test(address)) { - await signer?.signMessage(message) + await signer?.signMessage({message}) .then(async(res) => { // 3、获取token await authLoginSign({ diff --git a/src/utils/wagmi/index.js b/src/utils/wagmi/index.js index 4b0b86cd..a10eb0f7 100644 --- a/src/utils/wagmi/index.js +++ b/src/utils/wagmi/index.js @@ -45,7 +45,7 @@ export const wagmiConfig = createConfig({ storage: typeof window !== 'undefined' ? window.localStorage : noopStorage, key: 'wagmi_v1.1', }), - autoConnect: true, + autoConnect: localStorage.getItem("decert.address") ? true : false, publicClient, connectors: [ metaMaskConnector, From 34daeb8c534e3bf7f2a96b479269a2edc2415019 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Wed, 3 Jan 2024 16:51:47 +0800 Subject: [PATCH 06/13] =?UTF-8?q?fix:=20=E5=88=87=E6=8D=A2=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/containers/DefaultLayout.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/containers/DefaultLayout.js b/src/containers/DefaultLayout.js index 3fa9a44d..e40dd446 100644 --- a/src/containers/DefaultLayout.js +++ b/src/containers/DefaultLayout.js @@ -177,12 +177,12 @@ export default function DefaultLayout(params) { // 已登陆 ====> 切换账号 // 判断是否在当前网站 if (!document.hidden) { - ClearStorage(); localStorage.setItem("decert.address", address); - isClaim(path); - // isCert(path, 'toggle'); - isExplore(path); - isUser(path); + // ClearStorage(); + // isClaim(path); + // // isCert(path, 'toggle'); + // isExplore(path); + // isUser(path); await sign() }else{ if (walletType === "evm") { From c4ce71fe6ee976d090dd9c62919c209bf73012ce Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Wed, 3 Jan 2024 17:23:50 +0800 Subject: [PATCH 07/13] fix: bignumber err --- src/components/CustomChallenge/CustomClaim.js | 91 +++++++------- src/controller/config.js | 40 ------- src/controller/contract.js | 42 ------- src/controller/index.js | 111 ------------------ src/hooks/usePublish.js | 13 +- src/utils/constans.js | 5 +- src/views/Publish/index.js | 1 - 7 files changed, 53 insertions(+), 250 deletions(-) delete mode 100644 src/controller/config.js delete mode 100644 src/controller/contract.js delete mode 100644 src/controller/index.js diff --git a/src/components/CustomChallenge/CustomClaim.js b/src/components/CustomChallenge/CustomClaim.js index 29aab55b..13b0035d 100644 --- a/src/components/CustomChallenge/CustomClaim.js +++ b/src/components/CustomChallenge/CustomClaim.js @@ -5,7 +5,6 @@ import { CloseOutlined } from '@ant-design/icons'; import { getClaimHash, getQuests, hasClaimed, submitHash } from "../../request/api/public"; -import { claim } from "../../controller"; import { useNetwork, useSwitchNetwork, useWaitForTransaction } from "wagmi"; import { useEffect, useState } from "react"; import ModalLoading from "../CustomModal/ModalLoading"; @@ -79,53 +78,53 @@ export default function CustomClaim(props) { const goclaim = async() => { - if (chain.id != defaultChainId) { - setIsSwitch(true); - return - } + // if (chain.id != defaultChainId) { + // setIsSwitch(true); + // return + // } - let hasHash = true; - await verify() - .catch(() => { - hasHash = false; - }) - if (!hasHash) { - return - } - let obj = {...cliamObj}; - obj.uri = obj.uri[obj.tokenId] - obj.score = GetScorePercent(cliamObj.totalScore, cliamObj.score); - setWriteLoading(true); - const signature = await getClaimHash(obj); - if (signature.message.indexOf("Question Updated") !== -1 || signature.message.indexOf("题目已更新") !== -1 ) { - Modal.warning({ - ...modalNotice({ - t, - text: t("translation:message.error.challenge-modify"), - onOk: () => {navigateTo(0)}, - icon: "😵" - } - )}); - return - } - if (signature) { - claimHash = await claim( - obj.tokenId, - obj.score, - signature.data, - // signer - ) - setClaimHash(claimHash); - setWriteLoading(false); + // let hasHash = true; + // await verify() + // .catch(() => { + // hasHash = false; + // }) + // if (!hasHash) { + // return + // } + // let obj = {...cliamObj}; + // obj.uri = obj.uri[obj.tokenId] + // obj.score = GetScorePercent(cliamObj.totalScore, cliamObj.score); + // setWriteLoading(true); + // const signature = await getClaimHash(obj); + // if (signature.message.indexOf("Question Updated") !== -1 || signature.message.indexOf("题目已更新") !== -1 ) { + // Modal.warning({ + // ...modalNotice({ + // t, + // text: t("translation:message.error.challenge-modify"), + // onOk: () => {navigateTo(0)}, + // icon: "😵" + // } + // )}); + // return + // } + // if (signature) { + // claimHash = await claim( + // obj.tokenId, + // obj.score, + // signature.data, + // // signer + // ) + // setClaimHash(claimHash); + // setWriteLoading(false); - if (claimHash) { - submitHash({hash: claimHash}) - // 弹出等待框 - setIsModalOpen(true); - } - }else{ - setWriteLoading(false); - } + // if (claimHash) { + // submitHash({hash: claimHash}) + // // 弹出等待框 + // setIsModalOpen(true); + // } + // }else{ + // setWriteLoading(false); + // } } const handleCancel = () => { diff --git a/src/controller/config.js b/src/controller/config.js deleted file mode 100644 index 3a3bba73..00000000 --- a/src/controller/config.js +++ /dev/null @@ -1,40 +0,0 @@ -import { usePrepareContractWrite } from "wagmi"; -import badgeAddr from "@/contracts/Badge.address"; -import badge from "@/contracts/Badge.abi"; -import questMinterAddr from "@/contracts/QuestMinter.address"; -import questMinter from "@/contracts/QuestMinter.abi"; -import { constans } from "@/utils/constans"; - -export function useBadgeConfig({functionName, args}) { - const { defaultChainId } = constans(); - const { config, error } = usePrepareContractWrite({ - address: badgeAddr, - abi: badge, - functionName: functionName, - args: args, - chainId: defaultChainId, - onError() { - console.log(error); - } - }) - return { - config - } -} - -export function useQuestConfig({functionName, args}) { - const { defaultChainId } = constans(); - const { config, error } = usePrepareContractWrite({ - address: questMinterAddr, - abi: questMinter, - functionName: functionName, - args: args, - chainId: defaultChainId, - onError() { - console.log(error); - } - }) - return { - config - } -} \ No newline at end of file diff --git a/src/controller/contract.js b/src/controller/contract.js deleted file mode 100644 index bc3a921b..00000000 --- a/src/controller/contract.js +++ /dev/null @@ -1,42 +0,0 @@ -import { useContractRead } from "wagmi" -import { useBadgeConfig, useQuestConfig } from "./config" -import { constans } from "@/utils/constans"; - - -export function useBadgeContract({functionName, args}) { - const { defaultChainId } = constans(); - - const { config } = useBadgeConfig({ - functionName: functionName, - args: args - }) - const { data, isLoading, refetch, error } = useContractRead({ - ...config, - chainId: defaultChainId - }) - - return { - data, - isLoading, - refetch - } -} - -export function useQuestContract({functionName, args}) { - const { defaultChainId } = constans(); - - const { config } = useQuestConfig({ - functionName: functionName, - args: args - }) - const { data, isLoading, refetch } = useContractRead({ - ...config, - chainId: defaultChainId - }) - - return { - data, - isLoading, - refetch - } -} \ No newline at end of file diff --git a/src/controller/index.js b/src/controller/index.js deleted file mode 100644 index a7cde70e..00000000 --- a/src/controller/index.js +++ /dev/null @@ -1,111 +0,0 @@ -import questMinterAddr from "@/contracts/QuestMinter.address"; -import questMinter from "@/contracts/QuestMinter.abi"; - -import badgeAddr from "@/contracts/Badge.address"; -import badge from "@/contracts/Badge.abi"; -import { ethers } from "ethers"; -import { constans } from "@/utils/constans"; - - - -// questMinter ===> -export async function createQuest(questData, signature, provider ) { - - const Contract = new ethers.Contract(questMinterAddr, questMinter, provider); - - // endTs, supply - - let { startTs, endTs, supply, title, uri } = questData; - endTs = constans().maxUint32; - supply = constans().maxUint192; - // supply = constans().maxUint32; - const params = [startTs, endTs, supply, title, uri]; - let txHash = ''; - try { - const resp = await Contract.createQuest(params, signature); - txHash = resp.hash; - - } catch (err) { - console.dir(err); - } - return txHash; -} - -export async function modifyQuest(tokenId, questData, signature, provider ) { - - const Contract = new ethers.Contract(questMinterAddr, questMinter, provider); - - // endTs, supply - - let { startTs, endTs, supply, title, uri } = questData; - endTs = constans().maxUint32; - supply = constans().maxUint192; - // supply = constans().maxUint32; - const params = [startTs, endTs, supply, title, uri]; - let txHash = ''; - try { - const resp = await Contract.modifyQuest(tokenId, params, signature); - txHash = resp.hash; - - } catch (err) { - console.dir(err); - } - return txHash; -} - -export async function claim(tokenId, score, signature, provider) { - - const Contract = new ethers.Contract(questMinterAddr, questMinter, provider); - - let txHash = ''; - try { - const resp = await Contract.claim(tokenId, score, signature); - txHash = resp.hash; - } catch (err) { - console.dir(err); - } - return txHash; -} - - -// badge ===> -export async function tokenSupply(tokenId, provider) { - const Contract = new ethers.Contract(badgeAddr, badge, provider); - - let txHash = ''; - try { - const resp = await Contract.tokenSupply(tokenId); - txHash = resp.toNumber(); - } catch (err) { - console.dir(err); - } - return txHash; -} - -export async function balanceOf(owner, tokenId, provider) { - - const Contract = new ethers.Contract(badgeAddr, badge, provider); - - let txHash = ''; - try { - const resp = await Contract.balanceOf(owner, tokenId); - txHash = resp.toNumber(); - } catch (err) { - console.dir(err); - } - return txHash; -} - -export async function chainScores(owner, tokenId, provider) { - - const Contract = new ethers.Contract(badgeAddr, badge, provider); - - let txHash = ''; - try { - const resp = await Contract.scores(tokenId, owner); - txHash = resp.toNumber(); - } catch (err) { - console.dir(err); - } - return txHash; -} diff --git a/src/hooks/usePublish.js b/src/hooks/usePublish.js index 546baf1b..cf05d532 100644 --- a/src/hooks/usePublish.js +++ b/src/hooks/usePublish.js @@ -16,12 +16,11 @@ import MyContext from "@/provider/context"; export const usePublish = (props) => { const { jsonHash, recommend, changeId } = props; - const { defaultChainId } = constans(); + const { defaultChainId, ipfsPath, maxUint32, maxUint192 } = constans(); const { data: signer } = useWalletClient(); const { questContract } = useContext(MyContext); const { chain } = useNetwork(); const { verify } = useVerifyToken(); - const { ipfsPath, maxUint32, maxUint192 } = constans(); const navigateTo = useNavigate(); const { t } = useTranslation(["publish", "translation"]); const { switchNetwork } = useSwitchNetwork({ @@ -89,8 +88,8 @@ export const usePublish = (props) => { const write = (sign, obj, params) => { let { startTs, endTs, supply, title, uri } = obj; - endTs = constans().maxUint32; - supply = constans().maxUint192; + endTs = maxUint32; + supply = maxUint192.toFixed(); const args = [startTs, endTs, supply, title, uri]; if (changeId) { modifyQuest({ args: [changeId, args, sign] }) @@ -135,7 +134,7 @@ export const usePublish = (props) => { description: detail.description, 'start_ts': '0', 'end_ts': maxUint32.toString(), - 'supply': maxUint192.toString(), + 'supply': maxUint192.toFixed(), }) : await addQuests({ @@ -144,12 +143,12 @@ export const usePublish = (props) => { description: detail.description, 'start_ts': '0', 'end_ts': maxUint32.toString(), - 'supply': maxUint192.toString(), + 'supply': maxUint192.toFixed(), }) const questData = { 'startTs': 0, 'endTs': maxUint32.toString(), - 'supply': maxUint192.toString(), + 'supply': maxUint192.toFixed(), 'title': detail.title, 'uri': "ipfs://"+jsonHash, } diff --git a/src/utils/constans.js b/src/utils/constans.js index e9ab3b0d..96a5d3a6 100644 --- a/src/utils/constans.js +++ b/src/utils/constans.js @@ -1,6 +1,5 @@ -import { BigNumber } from "ethers"; import BadgeAddress from "@/contracts/Badge.address"; - +import Big from 'big.js'; export const constans = (contractType) => { @@ -65,7 +64,7 @@ export const constans = (contractType) => { const questAddr = process.env.REACT_APP_CONTRACT_QUEST_ADDRESS; const maxUint32 = Math.pow(2,32) - 1; - const maxUint192 = BigNumber.from('2').pow(192).sub(1); + const maxUint192 = new Big(2).pow(192).minus(1); const imgPath = process.env.REACT_APP_BASE_URL; diff --git a/src/views/Publish/index.js b/src/views/Publish/index.js index 5f59ff9c..bd14e9b1 100644 --- a/src/views/Publish/index.js +++ b/src/views/Publish/index.js @@ -245,7 +245,6 @@ export default function Publish(params) { answers: answers[i] }) }); - console.log(data); changeItem = { tokenId, title, From 25a499781348c718fe75c9489d525f056d6d61b2 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Thu, 4 Jan 2024 10:19:42 +0800 Subject: [PATCH 08/13] en: es2021 BigInt --- .eslintrc.js | 24 +++ package.json | 9 +- src/hooks/usePublish.js | 9 +- src/utils/constans.js | 6 +- src/views/Index.js | 1 - yarn.lock | 459 +++------------------------------------- 6 files changed, 66 insertions(+), 442 deletions(-) create mode 100644 .eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..4baddaf0 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,24 @@ +module.exports = { + env: { + browser: true, + es2021: true, + }, + // extends: ["eslint:recommended", "plugin:react/recommended"], + // overrides: [ + // { + // env: { + // node: true, + // }, + // files: [".eslintrc.{js,cjs}"], + // parserOptions: { + // sourceType: "script", + // }, + // }, + // ], + // parserOptions: { + // ecmaVersion: "latest", + // sourceType: "module", + // }, + // plugins: ["react"], + // rules: {}, + }; \ No newline at end of file diff --git a/package.json b/package.json index 4fead4d8..4f774bea 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "eslint": "^8.3.0", "eslint-config-react-app": "^7.0.1", "eslint-webpack-plugin": "^3.1.1", - "ethers": "^5.7.2", "file-loader": "^6.2.0", "fs-extra": "^10.0.0", "github-markdown-css": "^5.2.0", @@ -113,9 +112,11 @@ }, "browserslist": { "production": [ - ">0.2%", - "not dead", - "not op_mini all" + "chrome >= 67", + "edge >= 79", + "firefox >= 68", + "opera >= 54", + "safari >= 14" ], "development": [ "last 1 chrome version", diff --git a/src/hooks/usePublish.js b/src/hooks/usePublish.js index cf05d532..722ee06c 100644 --- a/src/hooks/usePublish.js +++ b/src/hooks/usePublish.js @@ -17,7 +17,6 @@ export const usePublish = (props) => { const { jsonHash, recommend, changeId } = props; const { defaultChainId, ipfsPath, maxUint32, maxUint192 } = constans(); - const { data: signer } = useWalletClient(); const { questContract } = useContext(MyContext); const { chain } = useNetwork(); const { verify } = useVerifyToken(); @@ -88,8 +87,6 @@ export const usePublish = (props) => { const write = (sign, obj, params) => { let { startTs, endTs, supply, title, uri } = obj; - endTs = maxUint32; - supply = maxUint192.toFixed(); const args = [startTs, endTs, supply, title, uri]; if (changeId) { modifyQuest({ args: [changeId, args, sign] }) @@ -134,7 +131,7 @@ export const usePublish = (props) => { description: detail.description, 'start_ts': '0', 'end_ts': maxUint32.toString(), - 'supply': maxUint192.toFixed(), + 'supply': maxUint192.toString(), }) : await addQuests({ @@ -143,12 +140,12 @@ export const usePublish = (props) => { description: detail.description, 'start_ts': '0', 'end_ts': maxUint32.toString(), - 'supply': maxUint192.toFixed(), + 'supply': maxUint192.toString(), }) const questData = { 'startTs': 0, 'endTs': maxUint32.toString(), - 'supply': maxUint192.toFixed(), + 'supply':maxUint192.toString(), 'title': detail.title, 'uri': "ipfs://"+jsonHash, } diff --git a/src/utils/constans.js b/src/utils/constans.js index 96a5d3a6..52169d5c 100644 --- a/src/utils/constans.js +++ b/src/utils/constans.js @@ -1,5 +1,5 @@ import BadgeAddress from "@/contracts/Badge.address"; -import Big from 'big.js'; +import { maxUint192 } from "viem"; export const constans = (contractType) => { @@ -64,7 +64,7 @@ export const constans = (contractType) => { const questAddr = process.env.REACT_APP_CONTRACT_QUEST_ADDRESS; const maxUint32 = Math.pow(2,32) - 1; - const maxUint192 = new Big(2).pow(192).minus(1); + const bigInt192 = BigInt(maxUint192); const imgPath = process.env.REACT_APP_BASE_URL; @@ -81,7 +81,7 @@ export const constans = (contractType) => { return { maxUint32, - maxUint192, + maxUint192: bigInt192, openseaLink, openseaSolanaLink, defaultImg, diff --git a/src/views/Index.js b/src/views/Index.js index b6049a92..dfe5a2ed 100644 --- a/src/views/Index.js +++ b/src/views/Index.js @@ -12,7 +12,6 @@ import { useContext, useEffect, useState } from "react"; import axios from "axios"; import CustomIcon from "@/components/CustomIcon"; import i18n from 'i18next'; -import { WalletMultiButton } from "@solana/wallet-adapter-react-ui"; export default function Index(params) { diff --git a/yarn.lock b/yarn.lock index fd674808..172c5a7a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1430,10 +1430,10 @@ resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4" integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== -"@eslint/eslintrc@^2.1.2": - version "2.1.2" - resolved "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396" - integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1445,10 +1445,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.51.0": - version "8.51.0" - resolved "https://registry.npmmirror.com/@eslint/js/-/js-8.51.0.tgz#6d419c240cfb2b66da37df230f7e7eef801c32fa" - integrity sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg== +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.npmmirror.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@ethereumjs/common@^3.2.0": version "3.2.0" @@ -1482,348 +1482,6 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" - integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" - integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" - integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" - integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - -"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" - integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" - integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" - integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - bn.js "^5.2.1" - -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" - integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" - integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - -"@ethersproject/contracts@5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" - integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== - dependencies: - "@ethersproject/abi" "^5.7.0" - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" - integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" - integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" - integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== - dependencies: - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/pbkdf2" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" - integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - js-sha3 "0.8.0" - -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" - integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== - -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": - version "5.7.1" - resolved "https://registry.npmmirror.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" - integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" - integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" - integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== - dependencies: - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/providers@5.7.2": - version "5.7.2" - resolved "https://registry.npmmirror.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" - integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/base64" "^5.7.0" - "@ethersproject/basex" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/networks" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/web" "^5.7.0" - bech32 "1.1.4" - ws "7.4.6" - -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" - integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" - integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" - integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - hash.js "1.1.7" - -"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" - integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - bn.js "^5.2.1" - elliptic "6.5.4" - hash.js "1.1.7" - -"@ethersproject/solidity@5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" - integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/sha2" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" - integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" - integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== - dependencies: - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/rlp" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - -"@ethersproject/units@5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" - integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== - dependencies: - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/constants" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - -"@ethersproject/wallet@5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" - integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== - dependencies: - "@ethersproject/abstract-provider" "^5.7.0" - "@ethersproject/abstract-signer" "^5.7.0" - "@ethersproject/address" "^5.7.0" - "@ethersproject/bignumber" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/hdnode" "^5.7.0" - "@ethersproject/json-wallets" "^5.7.0" - "@ethersproject/keccak256" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/random" "^5.7.0" - "@ethersproject/signing-key" "^5.7.0" - "@ethersproject/transactions" "^5.7.0" - "@ethersproject/wordlists" "^5.7.0" - -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": - version "5.7.1" - resolved "https://registry.npmmirror.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" - integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== - dependencies: - "@ethersproject/base64" "^5.7.0" - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - -"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": - version "5.7.0" - resolved "https://registry.npmmirror.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" - integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== - dependencies: - "@ethersproject/bytes" "^5.7.0" - "@ethersproject/hash" "^5.7.0" - "@ethersproject/logger" "^5.7.0" - "@ethersproject/properties" "^5.7.0" - "@ethersproject/strings" "^5.7.0" - "@fractalwagmi/popup-connection@^1.0.18": version "1.1.1" resolved "https://registry.npmmirror.com/@fractalwagmi/popup-connection/-/popup-connection-1.1.1.tgz#2dfff4f3bb89d17947adae597f355faf46c194a9" @@ -1838,12 +1496,12 @@ "@solana/wallet-adapter-base" "^0.9.17" bs58 "^5.0.0" -"@humanwhocodes/config-array@^0.11.11": - version "0.11.11" - resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844" - integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - "@humanwhocodes/object-schema" "^1.2.1" + "@humanwhocodes/object-schema" "^2.0.1" debug "^4.1.1" minimatch "^3.0.5" @@ -1852,10 +1510,10 @@ resolved "https://registry.npmmirror.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@ioredis/commands@^1.1.1": version "1.2.0" @@ -4325,6 +3983,11 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + "@wagmi/connectors@3.1.10": version "3.1.10" resolved "https://registry.npmmirror.com/@wagmi/connectors/-/connectors-3.1.10.tgz#830cd788579ef56a2526574914481f2d3aabc9f7" @@ -5118,11 +4781,6 @@ adjust-sourcemap-loader@^4.0.0: loader-utils "^2.0.0" regex-parser "^2.2.11" -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.npmmirror.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== - aes-js@^3.1.2: version "3.1.2" resolved "https://registry.npmmirror.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" @@ -5749,11 +5407,6 @@ batch@0.6.1: resolved "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== -bech32@1.1.4: - version "1.1.4" - resolved "https://registry.npmmirror.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - bfj@^7.0.2: version "7.1.0" resolved "https://registry.npmmirror.com/bfj/-/bfj-7.1.0.tgz#c5177d522103f9040e1b12980fe8c38cf41d3f8b" @@ -7300,7 +6953,7 @@ electron-to-chromium@^1.4.535: resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.544.tgz#fcb156d83f0ee6e4c9d030c6fedb2a37594f3abf" integrity sha512-54z7squS1FyFRSUqq/knOFSptjjogLZXbKcYk3B0qkE1KZzvqASwRZnY2KzZQJqIYLVD38XZeoiMRflYSwyO4w== -elliptic@6.5.4, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -7751,17 +7404,18 @@ eslint-webpack-plugin@^3.1.1: schema-utils "^4.0.0" eslint@^8.3.0: - version "8.51.0" - resolved "https://registry.npmmirror.com/eslint/-/eslint-8.51.0.tgz#4a82dae60d209ac89a5cff1604fea978ba4950f3" - integrity sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA== + version "8.56.0" + resolved "https://registry.npmmirror.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.2" - "@eslint/js" "8.51.0" - "@humanwhocodes/config-array" "^0.11.11" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -7904,42 +7558,6 @@ ethereum-cryptography@^2.0.0: "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" -ethers@^5.7.2: - version "5.7.2" - resolved "https://registry.npmmirror.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" - integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== - dependencies: - "@ethersproject/abi" "5.7.0" - "@ethersproject/abstract-provider" "5.7.0" - "@ethersproject/abstract-signer" "5.7.0" - "@ethersproject/address" "5.7.0" - "@ethersproject/base64" "5.7.0" - "@ethersproject/basex" "5.7.0" - "@ethersproject/bignumber" "5.7.0" - "@ethersproject/bytes" "5.7.0" - "@ethersproject/constants" "5.7.0" - "@ethersproject/contracts" "5.7.0" - "@ethersproject/hash" "5.7.0" - "@ethersproject/hdnode" "5.7.0" - "@ethersproject/json-wallets" "5.7.0" - "@ethersproject/keccak256" "5.7.0" - "@ethersproject/logger" "5.7.0" - "@ethersproject/networks" "5.7.1" - "@ethersproject/pbkdf2" "5.7.0" - "@ethersproject/properties" "5.7.0" - "@ethersproject/providers" "5.7.2" - "@ethersproject/random" "5.7.0" - "@ethersproject/rlp" "5.7.0" - "@ethersproject/sha2" "5.7.0" - "@ethersproject/signing-key" "5.7.0" - "@ethersproject/solidity" "5.7.0" - "@ethersproject/strings" "5.7.0" - "@ethersproject/transactions" "5.7.0" - "@ethersproject/units" "5.7.0" - "@ethersproject/wallet" "5.7.0" - "@ethersproject/web" "5.7.1" - "@ethersproject/wordlists" "5.7.0" - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -8600,7 +8218,7 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== @@ -10106,11 +9724,6 @@ js-cookie@^2.x.x: resolved "https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== -js-sha3@0.8.0: - version "0.8.0" - resolved "https://registry.npmmirror.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -14007,11 +13620,6 @@ scroll-into-view-if-needed@^3.0.3: dependencies: compute-scroll-into-view "^3.0.2" -scrypt-js@3.0.1: - version "3.0.1" - resolved "https://registry.npmmirror.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" - integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== - sdp@^2.12.0, sdp@^2.6.0: version "2.12.0" resolved "https://registry.npmmirror.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" @@ -16022,11 +15630,6 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@7.4.6: - version "7.4.6" - resolved "https://registry.npmmirror.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - ws@8.13.0: version "8.13.0" resolved "https://registry.npmmirror.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" From f08f3954dee60d6879944e579d190452b5bb95c4 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Thu, 4 Jan 2024 10:44:08 +0800 Subject: [PATCH 09/13] en: wagmi cacheName --- src/utils/wagmi/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/wagmi/index.js b/src/utils/wagmi/index.js index a10eb0f7..49671008 100644 --- a/src/utils/wagmi/index.js +++ b/src/utils/wagmi/index.js @@ -43,7 +43,7 @@ export const noopStorage = { export const wagmiConfig = createConfig({ storage: createStorage({ storage: typeof window !== 'undefined' ? window.localStorage : noopStorage, - key: 'wagmi_v1.1', + key: 'wagmi', }), autoConnect: localStorage.getItem("decert.address") ? true : false, publicClient, From ebbeb48065c5d7fd8bf13729efbd84f27c2382be Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Thu, 4 Jan 2024 15:04:10 +0800 Subject: [PATCH 10/13] en: mobile connector --- src/components/CustomChallenge/CustomConnect.js | 7 +++++++ src/containers/AppHeader.js | 13 +++++++++---- src/views/Claim/step_connect.js | 10 ++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/components/CustomChallenge/CustomConnect.js b/src/components/CustomChallenge/CustomConnect.js index 58ce7f9e..469139b3 100644 --- a/src/components/CustomChallenge/CustomConnect.js +++ b/src/components/CustomChallenge/CustomConnect.js @@ -5,6 +5,7 @@ import { useRequest } from "ahooks"; import { useTranslation } from "react-i18next"; import { changeConnect } from "@/utils/redux"; import { useAddress } from "@/hooks/useAddress"; +import { useConnect } from "wagmi"; export default function CustomConnect(props) { @@ -12,9 +13,15 @@ export default function CustomConnect(props) { const { t } = useTranslation(["claim"]); const { step, setStep, isMobile } = props; const { address } = useAddress(); + const { connect, connectors } = useConnect({ + onError(err){ + console.log(err); + } + }) const openModalConnect = () => { if (isMobile) { + connect({connector: connectors[1]}) return } changeConnect() diff --git a/src/containers/AppHeader.js b/src/containers/AppHeader.js index 7e3334d5..c9744687 100644 --- a/src/containers/AppHeader.js +++ b/src/containers/AppHeader.js @@ -2,7 +2,7 @@ import i18n from 'i18next'; import { useTranslation } from 'react-i18next'; import { useEffect, useState } from 'react'; import { Link, useLocation, useNavigate } from 'react-router-dom'; -import { useDisconnect } from 'wagmi'; +import { useConnect, useDisconnect } from 'wagmi'; import { Button, Dropdown, message } from 'antd'; import { MenuOutlined, @@ -26,9 +26,14 @@ import { ClearStorage } from '@/utils/ClearStorage'; export default function AppHeader({ isMobile, user }) { const { address, walletType, isConnected } = useAddress(); - const { connected, wallet } = useWallet(); + const { wallet } = useWallet(); const { imgPath } = constans(); const { t } = useTranslation(); + const { connect, connectors } = useConnect({ + onError(err){ + console.log(err); + } + }) const { disconnect } = useDisconnect(); const navigateTo = useNavigate(); const location = useLocation(); @@ -95,8 +100,8 @@ export default function AppHeader({ isMobile, user }) { const openModal = async() => { if (isMobile) { - // await open({route: "ConnectWallet"}) - // setIsOpenM(!isOpenM) + connect({connector: connectors[1]}) + setIsOpenM(!isOpenM) return } changeConnect(); diff --git a/src/views/Claim/step_connect.js b/src/views/Claim/step_connect.js index 2b90ae0c..397b97af 100644 --- a/src/views/Claim/step_connect.js +++ b/src/views/Claim/step_connect.js @@ -6,18 +6,24 @@ import { useRequest } from "ahooks"; import { Button } from "antd"; import { useContext, useEffect } from "react"; import { useTranslation } from "react-i18next"; +import { useConnect } from "wagmi"; export default function StepConnect({setStep, step}) { - const { web3Modal, isMobile } = useContext(MyContext); + const { isMobile } = useContext(MyContext); const { t } = useTranslation(["claim"]); const { address } = useAddress(); + const { connect, connectors } = useConnect({ + onError(err){ + console.log(err); + } + }) const openModalConnect = () => { if (isMobile) { - web3Modal.open() + connect({connector: connectors[1]}) return } changeConnect() From 2f5fd8753b00969c0ddbad7b2ba93a84652de42a Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Thu, 4 Jan 2024 15:22:44 +0800 Subject: [PATCH 11/13] =?UTF-8?q?en:=20=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=BC=80=E6=94=BE=E9=A2=98=E7=AD=94=E9=A2=98=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E7=99=BB=E9=99=86=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Challenge/index.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/views/Challenge/index.js b/src/views/Challenge/index.js index 6f478aa8..797abfe5 100644 --- a/src/views/Challenge/index.js +++ b/src/views/Challenge/index.js @@ -2,7 +2,7 @@ import "@/assets/styles/view-style/challenge.scss" import "@/assets/styles/mobile/view-style/challenge.scss" import store from "@/redux/store"; import i18n from 'i18next'; -import { useEffect, useRef, useState } from "react"; +import { useContext, useEffect, useRef, useState } from "react"; import { useTranslation } from 'react-i18next'; import { Button, Modal, Progress, message } from 'antd'; import { ArrowLeftOutlined, ExportOutlined, CloseOutlined } from '@ant-design/icons'; @@ -18,6 +18,8 @@ import ModalAnswers from '../../components/CustomModal/ModalAnswers'; import { useAddress } from "@/hooks/useAddress"; import { changeConnect } from "@/utils/redux"; import { useUpdateEffect } from "ahooks"; +import { useConnect } from "wagmi"; +import MyContext from "@/provider/context"; export default function Challenge(params) { @@ -28,6 +30,7 @@ export default function Challenge(params) { const location = useLocation(); const navigateTo = useNavigate(); const childRef = useRef(null); + const { isMobile } = useContext(MyContext); let [detail, setDetail] = useState(); let [cacheDetail, setCacheDetail] = useState(); let [answers, setAnswers] = useState([]); @@ -36,6 +39,11 @@ export default function Challenge(params) { let [isPreview, setIsPreview] = useState(); let [realAnswer, setRealAnswer] = useState([]); let [questKey, setQuestKey] = useState(100); + const { connect, connectors } = useConnect({ + onError(err){ + console.log(err); + } + }) let [page, setPage] = useState(1); const [isModalOpen, setIsModalOpen] = useState(false); @@ -182,7 +190,11 @@ export default function Challenge(params) { const isOpenQuest = answers.filter(answer => answer?.type === "open_quest"); // 有开放题的同时未登录 if (isOpenQuest.length !== 0 && !isConnected) { - changeConnect(); + if (isMobile) { + connect({connector: connectors[1]}) + }else{ + changeConnect(); + } return } if (isOpenQuest.length !== 0 && detail.open_quest_review_status !== 0) { From d4bc3ea7875af91f21915ec290f09a960b693d1f Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Thu, 4 Jan 2024 15:27:22 +0800 Subject: [PATCH 12/13] =?UTF-8?q?en:=20wagmi=E8=87=AA=E5=8A=A8=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/wagmi/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/wagmi/index.js b/src/utils/wagmi/index.js index 49671008..cc8faea9 100644 --- a/src/utils/wagmi/index.js +++ b/src/utils/wagmi/index.js @@ -45,7 +45,7 @@ export const wagmiConfig = createConfig({ storage: typeof window !== 'undefined' ? window.localStorage : noopStorage, key: 'wagmi', }), - autoConnect: localStorage.getItem("decert.address") ? true : false, + autoConnect: localStorage.getItem("wagmi.connected") ? true : false, publicClient, connectors: [ metaMaskConnector, From 5fcfe4c3adb0404c0e1d926ae00c7a59aa28ea38 Mon Sep 17 00:00:00 2001 From: Caoqizhi <2391580279@qq.com> Date: Thu, 4 Jan 2024 15:34:48 +0800 Subject: [PATCH 13/13] =?UTF-8?q?en:=20disconnect=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/containers/AppHeader.js | 15 ++++++--------- src/containers/DefaultLayout.js | 13 +++++-------- src/redux/CustomDisconnect.js | 13 +++++-------- 3 files changed, 16 insertions(+), 25 deletions(-) diff --git a/src/containers/AppHeader.js b/src/containers/AppHeader.js index c9744687..a88cb266 100644 --- a/src/containers/AppHeader.js +++ b/src/containers/AppHeader.js @@ -34,7 +34,7 @@ export default function AppHeader({ isMobile, user }) { console.log(err); } }) - const { disconnect } = useDisconnect(); + const { disconnectAsync } = useDisconnect(); const navigateTo = useNavigate(); const location = useLocation(); let [isOpenM, setIsOpenM] = useState(false); @@ -127,16 +127,13 @@ export default function AppHeader({ isMobile, user }) { } - function goDisconnect() { + async function goDisconnect() { if (walletType === "evm") { - disconnect(); - ClearStorage(); + await disconnectAsync(); }else{ - wallet.adapter.disconnect() - .then(res => { - ClearStorage(); - }) + await wallet.adapter.disconnect() } + ClearStorage(); // 判断是否是claim页 const path = location.pathname; @@ -247,7 +244,7 @@ export default function AppHeader({ isMobile, user }) { { isConnected ? - + : } diff --git a/src/containers/DefaultLayout.js b/src/containers/DefaultLayout.js index e40dd446..b89862fb 100644 --- a/src/containers/DefaultLayout.js +++ b/src/containers/DefaultLayout.js @@ -13,7 +13,7 @@ import MyContext from "@/provider/context"; import store, { hideCustomSigner, showCustomSigner } from "@/redux/store"; import { useAddress } from "@/hooks/useAddress"; import { useWallet } from "@solana/wallet-adapter-react"; -import { useAccount, useDisconnect } from "wagmi"; +import { useDisconnect } from "wagmi"; import { getUnreadMessage, readMessage } from "@/request/api/public"; import { useTranslation } from "react-i18next"; import CustomDisconnect from "@/redux/CustomDisconnect"; @@ -35,7 +35,7 @@ export default function DefaultLayout(params) { const { address, isConnected, walletType } = useAddress(); const { wallet, connected } = useWallet(); - const { disconnect } = useDisconnect() + const { disconnectAsync } = useDisconnect() // 获取当前账号未读信息 const { runAsync, cancel } = useRequest(getUnreadMessage, { @@ -186,14 +186,11 @@ export default function DefaultLayout(params) { await sign() }else{ if (walletType === "evm") { - disconnect(); - ClearStorage(); + await disconnectAsync(); }else{ - wallet.adapter.disconnect() - .then(res => { - ClearStorage(); - }) + await wallet.adapter.disconnect() } + ClearStorage(); } } } diff --git a/src/redux/CustomDisconnect.js b/src/redux/CustomDisconnect.js index c006ce24..9bb0dd4e 100644 --- a/src/redux/CustomDisconnect.js +++ b/src/redux/CustomDisconnect.js @@ -9,20 +9,17 @@ function CustomDisconnect(props) { const { wallet } = useWallet(); const { walletType, isConnected } = useAddress(); - const { disconnect } = useDisconnect(); + const { disconnectAsync } = useDisconnect(); - function goDisconnect() { + async function goDisconnect() { props.setDisConnect(false); if (walletType === "evm") { - disconnect(); - ClearStorage(); + await disconnectAsync(); }else{ - wallet.adapter.disconnect() - .then(res => { - ClearStorage(); - }) + await wallet.adapter.disconnect() } + ClearStorage(); } useEffect(() => {