diff --git a/.env.example b/.env.example index 586139c5..03051c15 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,6 @@ -NEXT_PUBLIC_PROJECT_ID="" \ No newline at end of file +NEXT_PUBLIC_PROJECT_ID="" + +# Subgraph deploy (optional; for subgraph/deploy-production-no-prompt.sh) +# Get deploy key from https://thegraph.com/studio/ → your subgraph → Deploy key +# GRAPH_DEPLOY_KEY="" +# GRAPH_VERSION_LABEL="v0.1.2-metals-oracle" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c9194b27..b024c97a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,6 +55,7 @@ "husky": "^9.1.7", "lint-staged": "^15.4.3", "postcss": "^8.4.35", + "sharp": "^0.34.5", "tailwindcss": "^3.4.1", "typescript": "^5.9.2" } @@ -168,9 +169,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", - "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", "license": "MIT", "optional": true, "dependencies": { @@ -486,19 +487,20 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "devOptional": true, "license": "MIT", - "optional": true, "engines": { "node": ">=18" } }, "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.4.tgz", - "integrity": "sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -511,16 +513,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.3" + "@img/sharp-libvips-darwin-arm64": "1.2.4" } }, "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.4.tgz", - "integrity": "sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -533,16 +536,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.3" + "@img/sharp-libvips-darwin-x64": "1.2.4" } }, "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.3.tgz", - "integrity": "sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -553,12 +557,13 @@ } }, "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.3.tgz", - "integrity": "sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -569,12 +574,13 @@ } }, "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.3.tgz", - "integrity": "sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", "cpu": [ "arm" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -585,12 +591,13 @@ } }, "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.3.tgz", - "integrity": "sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -601,12 +608,30 @@ } }, "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.3.tgz", - "integrity": "sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", "cpu": [ "ppc64" ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -617,12 +642,13 @@ } }, "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.3.tgz", - "integrity": "sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", "cpu": [ "s390x" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -633,12 +659,13 @@ } }, "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.3.tgz", - "integrity": "sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -649,12 +676,13 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.3.tgz", - "integrity": "sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", "cpu": [ "arm64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -665,12 +693,13 @@ } }, "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.3.tgz", - "integrity": "sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", "cpu": [ "x64" ], + "dev": true, "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -681,12 +710,13 @@ } }, "node_modules/@img/sharp-linux-arm": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.4.tgz", - "integrity": "sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", "cpu": [ "arm" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -699,16 +729,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.3" + "@img/sharp-libvips-linux-arm": "1.2.4" } }, "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.4.tgz", - "integrity": "sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -721,16 +752,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.3" + "@img/sharp-libvips-linux-arm64": "1.2.4" } }, "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.4.tgz", - "integrity": "sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", "cpu": [ "ppc64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -743,16 +775,40 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.3" + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" } }, "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.4.tgz", - "integrity": "sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", "cpu": [ "s390x" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -765,16 +821,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.3" + "@img/sharp-libvips-linux-s390x": "1.2.4" } }, "node_modules/@img/sharp-linux-x64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.4.tgz", - "integrity": "sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -787,16 +844,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.3" + "@img/sharp-libvips-linux-x64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.4.tgz", - "integrity": "sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -809,16 +867,17 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.3" + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" } }, "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.4.tgz", - "integrity": "sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0", "optional": true, "os": [ @@ -831,20 +890,21 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.3" + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" } }, "node_modules/@img/sharp-wasm32": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.4.tgz", - "integrity": "sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", "cpu": [ "wasm32" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { - "@emnapi/runtime": "^1.5.0" + "@emnapi/runtime": "^1.7.0" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -854,12 +914,13 @@ } }, "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.4.tgz", - "integrity": "sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", "cpu": [ "arm64" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ @@ -873,12 +934,13 @@ } }, "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.4.tgz", - "integrity": "sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", "cpu": [ "ia32" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ @@ -892,12 +954,13 @@ } }, "node_modules/@img/sharp-win32-x64": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.4.tgz", - "integrity": "sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", "cpu": [ "x64" ], + "dev": true, "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ @@ -6984,9 +7047,9 @@ "license": "MIT" }, "node_modules/detect-libc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz", - "integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", "engines": { "node": ">=8" @@ -11275,15 +11338,6 @@ "integrity": "sha512-4taoDCleft9RtzVHLA73VDnRBwJNqlwbW8ShO6S0G9b+bM5ArGe1MVFW9xpromuPvQgVUYCSjRxNAQuNtADqyA==", "license": "MIT" }, - "node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/pony-cause": { "version": "2.1.11", "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz", @@ -11689,6 +11743,15 @@ "node": ">=10.13.0" } }, + "node_modules/qrcode/node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/query-string": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", @@ -12353,16 +12416,16 @@ } }, "node_modules/sharp": { - "version": "0.34.4", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.4.tgz", - "integrity": "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==", + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", - "optional": true, "dependencies": { "@img/colour": "^1.0.0", - "detect-libc": "^2.1.0", - "semver": "^7.7.2" + "detect-libc": "^2.1.2", + "semver": "^7.7.3" }, "engines": { "node": "^18.17.0 || ^20.3.0 || >=21.0.0" @@ -12371,28 +12434,43 @@ "url": "https://opencollective.com/libvips" }, "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.4", - "@img/sharp-darwin-x64": "0.34.4", - "@img/sharp-libvips-darwin-arm64": "1.2.3", - "@img/sharp-libvips-darwin-x64": "1.2.3", - "@img/sharp-libvips-linux-arm": "1.2.3", - "@img/sharp-libvips-linux-arm64": "1.2.3", - "@img/sharp-libvips-linux-ppc64": "1.2.3", - "@img/sharp-libvips-linux-s390x": "1.2.3", - "@img/sharp-libvips-linux-x64": "1.2.3", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.3", - "@img/sharp-libvips-linuxmusl-x64": "1.2.3", - "@img/sharp-linux-arm": "0.34.4", - "@img/sharp-linux-arm64": "0.34.4", - "@img/sharp-linux-ppc64": "0.34.4", - "@img/sharp-linux-s390x": "0.34.4", - "@img/sharp-linux-x64": "0.34.4", - "@img/sharp-linuxmusl-arm64": "0.34.4", - "@img/sharp-linuxmusl-x64": "0.34.4", - "@img/sharp-wasm32": "0.34.4", - "@img/sharp-win32-arm64": "0.34.4", - "@img/sharp-win32-ia32": "0.34.4", - "@img/sharp-win32-x64": "0.34.4" + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/shebang-command": { diff --git a/package.json b/package.json index a448a5ab..a924ada5 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "husky": "^9.1.7", "lint-staged": "^15.4.3", "postcss": "^8.4.35", + "sharp": "^0.34.5", "tailwindcss": "^3.4.1", "typescript": "^5.9.2" }, diff --git a/public/icons/haGOLD.png b/public/icons/haGOLD.png index bd2cbc8f..75f74722 100644 Binary files a/public/icons/haGOLD.png and b/public/icons/haGOLD.png differ diff --git a/scripts/make-png-transparent.js b/scripts/make-png-transparent.js new file mode 100644 index 00000000..479c161c --- /dev/null +++ b/scripts/make-png-transparent.js @@ -0,0 +1,41 @@ +#!/usr/bin/env node +/** + * One-off script: make black background of haGOLD.png transparent. + * Usage: node scripts/make-png-transparent.js + */ +const fs = require("fs"); +const path = require("path"); +const sharp = require("sharp"); + +const inputPath = path.join(__dirname, "../public/icons/haGOLD.png"); +const outputPath = inputPath; + +async function main() { + const { data, info } = await sharp(inputPath) + .ensureAlpha() + .raw() + .toBuffer({ resolveWithObject: true }); + + const { width, height, channels } = info; + const BLACK_THRESHOLD = 40; + + for (let i = 0; i < data.length; i += channels) { + const r = data[i]; + const g = data[i + 1]; + const b = data[i + 2]; + if (r <= BLACK_THRESHOLD && g <= BLACK_THRESHOLD && b <= BLACK_THRESHOLD) { + data[i + 3] = 0; // set alpha to 0 + } + } + + await sharp(data, { raw: { width, height, channels } }) + .png() + .toFile(outputPath); + + console.log("Done: black background made transparent in", outputPath); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/scripts/query-marks-debug.sh b/scripts/query-marks-debug.sh new file mode 100755 index 00000000..5ace0c96 --- /dev/null +++ b/scripts/query-marks-debug.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# Query the Harbor Marks subgraph for a wallet to debug "marks not accumulating". +# Usage: +# GRAPH_URL="https://api.studio.thegraph.com/query/1718836/harbor-marks/v0.1.1-metals-bonus" ./scripts/query-marks-debug.sh 0xAE7Dbb17bc40D53A6363409c6B1ED88d3cFdc31e +# Or use your staging subgraph URL (same as NEXT_PUBLIC_GRAPH_URL): +# GRAPH_URL="" ./scripts/query-marks-debug.sh 0xAE7Dbb17bc40D53A6363409c6B1ED88d3cFdc31e + +WALLET="${1:-0xAE7Dbb17bc40D53A6363409c6B1ED88d3cFdc31e}" +GRAPH_URL="${GRAPH_URL:-https://api.studio.thegraph.com/query/1718836/harbor-marks/v0.1.1-metals-bonus}" +USER_LOWER=$(echo "$WALLET" | tr '[:upper:]' '[:lower:]') + +# Metals genesis addresses (lowercase) +FXUSD_GOLD="0x2cbf457112ef5a16cfca10fb173d56a5cc9daa66" +STETH_GOLD="0x8ad6b177137a6c33070c27d98355717849ce526c" +FXUSD_SILVER="0x66d18b9dd5d1cd51957dfea0e0373b54e06118c8" +STETH_SILVER="0x8f655ca32a1fa8032955989c19e91886f26439dc" + +echo "Querying subgraph: $GRAPH_URL" +echo "Wallet: $WALLET" +echo "" + +for GENESIS in "$FXUSD_GOLD" "$STETH_GOLD" "$FXUSD_SILVER" "$STETH_SILVER"; do + ID="${GENESIS}-${USER_LOWER}" + NAME="$GENESIS" + case "$GENESIS" in + $FXUSD_GOLD) NAME="fxUSD-GOLD" ;; + $STETH_GOLD) NAME="stETH-GOLD" ;; + $FXUSD_SILVER) NAME="fxUSD-SILVER" ;; + $STETH_SILVER) NAME="stETH-SILVER" ;; + esac + echo "--- $NAME (id: $ID) ---" + curl -s -X POST "$GRAPH_URL" \ + -H "Content-Type: application/json" \ + -d "{\"query\":\"query { userHarborMarks(id: \\\"$ID\\\") { currentMarks campaignId currentDepositUSD } }\"}" | jq . + echo "" +done diff --git a/src/app/api/landing/summary/route.ts b/src/app/api/landing/summary/route.ts index c7401d7e..6e8ffa4a 100644 --- a/src/app/api/landing/summary/route.ts +++ b/src/app/api/landing/summary/route.ts @@ -430,21 +430,36 @@ export async function GET(request: Request) { name: string; symbol?: string; collateralSymbol?: string; + peggedSymbol?: string; + leveragedSymbol?: string; + pegTarget?: string; + campaignId?: string; projectedApr: number | null; longSide: string; shortSide: string; + phase: "live" | "coming-next" | "planned"; + status?: string; }> >(); for (const [marketId, market] of maidenVoyageMarkets) { - const title = + const campaignLabel = (market as any)?.marksCampaign?.label || "Maiden Voyage"; - const collateralSymbol = market.collateral?.symbol?.toLowerCase(); + const campaignId = (market as any)?.marksCampaign?.id; + const collateralSymbol = market.collateral?.symbol; + const peggedSymbol = market.peggedToken?.symbol; + const leveragedSymbol = market.leveragedToken?.symbol; + const pegTarget = (market as any)?.pegTarget; + const status = (market as any)?.status; + const collateralSymbolLower = collateralSymbol?.toLowerCase(); let projectedApr: number | null = null; - if (collateralSymbol === "fxsave") { + if (collateralSymbolLower === "fxsave") { projectedApr = defillamaApys.fxsaveApyPercent; - } else if (collateralSymbol === "wsteth" || collateralSymbol === "steth") { + } else if ( + collateralSymbolLower === "wsteth" || + collateralSymbolLower === "steth" + ) { projectedApr = defillamaApys.wstethApyPercent; } @@ -456,7 +471,7 @@ export async function GET(request: Request) { : null; const now = Date.now(); let phase: "live" | "coming-next" | "planned" = "planned"; - const isComingSoon = (market as any).status === "coming-soon"; + const isComingSoon = status === "coming-soon"; const hasEnded = endDate !== null && now > endDate; if (hasEnded && !isComingSoon) { continue; @@ -467,7 +482,7 @@ export async function GET(request: Request) { phase = "coming-next"; } else if (endDate && now <= endDate) { phase = "live"; - } else if ((market as any).status === "genesis") { + } else if (status === "genesis") { phase = "live"; } @@ -475,15 +490,20 @@ export async function GET(request: Request) { marketId, name: market.name, symbol: market.peggedToken?.symbol, - collateralSymbol: market.collateral?.symbol, + collateralSymbol, + peggedSymbol, + leveragedSymbol, + pegTarget, + campaignId, projectedApr, longSide: parseLongSide(market), shortSide: parseShortSide(market), phase, + status, }; - const list = maidenVoyagesMap.get(title) || []; + const list = maidenVoyagesMap.get(campaignLabel) || []; list.push(entry); - maidenVoyagesMap.set(title, list); + maidenVoyagesMap.set(campaignLabel, list); } const maidenVoyages = Array.from(maidenVoyagesMap.entries()).map( diff --git a/src/app/genesis/page.tsx b/src/app/genesis/page.tsx index e0552400..37d4b8e1 100644 --- a/src/app/genesis/page.tsx +++ b/src/app/genesis/page.tsx @@ -548,6 +548,22 @@ export default function GenesisIndexPage() { new Set([...marketsWithOtherErrors, ...bonusMarketsWithOtherErrors]) ); + // Oracle pricing failed: user has deposit but subgraph reports 0 USD (oracle unavailable) + const marketsWithOraclePricingError = useMemo(() => { + const list: string[] = []; + (marksResults || []).forEach((r: { genesisAddress?: string; data?: { userHarborMarks?: { currentDeposit?: string; currentDepositUSD?: string } }; errors?: unknown[] }) => { + const marks = r.data?.userHarborMarks; + if (!marks || r.errors?.length) return; + const currentDeposit = parseFloat(marks.currentDeposit || "0"); + const currentDepositUSD = parseFloat(marks.currentDepositUSD || "0"); + if (currentDeposit > 0 && currentDepositUSD === 0 && r.genesisAddress) { + list.push(r.genesisAddress); + } + }); + return list; + }, [marksResults]); + const hasOraclePricingError = marketsWithOraclePricingError.length > 0; + const queryClient = useQueryClient(); // Index layout per market: [isEnded, balanceOf?, claimable?] @@ -1881,6 +1897,14 @@ export default function GenesisIndexPage() { markets={combinedMarketsWithOtherErrors.map(getMarketName)} /> )} + {hasOraclePricingError && ( + + )} {/* Divider */}
@@ -1992,7 +2016,7 @@ export default function GenesisIndexPage() { >
Market
-
APR
+
Marks
Deposit Assets 0 + ? (Date.now() / 1000 - lastUpdated) / + (24 * 60 * 60) + : 0; + const displayMarks = genesisEnded + ? userMarksForMarket + : userMarksForMarket + + daysElapsed * currentDepositUSD * 10; + return (
- APR + Marks
- {isValidAPR ? ( - isAprRevealed && canShowCombinedAPR ? ( - - - {isLoadingAPR || safeIsLoadingTotalTVL - ? "..." - : (() => { - const tideAPR = calculateTideAPR( - marksForAPR, - marksForAPRTotal, - depositForAPR, - tvlForAPR, - daysLeftInGenesis, - fdv - ); - const underlyingAPRPercent = - (underlyingAPR || 0) * 100; - const combined = - underlyingAPRPercent + tideAPR; - - // Debug calculation - if ( - process.env.NODE_ENV === - "development" - ) { - console.log( - "[APR Calculation]", - { - marketId: id, - underlyingAPRPercent, - tideAPR, - combined, - isValid: - !isNaN(combined) && - isFinite(combined), - } - ); - } - - return isNaN(combined) || - !isFinite(combined) - ? "..." - : `${combined.toFixed(2)}%`; - })()} - - + + {isLoadingMarks ? ( + "..." ) : ( -
- - - {isLoadingAPR - ? "..." - : `${(underlyingAPR * 100).toFixed( - 2 - )}%`} - + - Marks - - -
- ) - ) : ( - - - - - )} + <> + {displayMarks >= 0 + ? displayMarks.toLocaleString( + undefined, + { + maximumFractionDigits: 1, + minimumFractionDigits: 0, + } + ) + : "-"} + Marks + + )} +
); })()} @@ -3224,77 +3197,46 @@ export default function GenesisIndexPage() { })() : undefined; + // Display marks accumulated for this market + const lastUpdatedMd = marks + ? parseInt(marks.lastUpdated || "0", 10) + : 0; + const daysElapsedMd = + lastUpdatedMd > 0 + ? (Date.now() / 1000 - lastUpdatedMd) / + (24 * 60 * 60) + : 0; + const displayMarksMd = genesisEnded + ? userMarksForMarket + : userMarksForMarket + + daysElapsedMd * currentDepositUSD * 10; + return (
- {isValidAPR ? ( - isAprRevealed && canShowCombinedAPR ? ( - - - {isLoadingAPR || safeIsLoadingTotalTVL - ? "..." - : (() => { - const tideAPR = - calculateTideAPR( - marksForAPR, - marksForAPRTotal, - depositForAPR, - tvlForAPR, - daysLeftInGenesisMd, - fdv - ); - const underlyingAPRPercent = - (underlyingAPR || 0) * 100; - const combined = - underlyingAPRPercent + - tideAPR; - return isNaN(combined) || - !isFinite(combined) - ? "..." - : `${combined.toFixed(2)}%`; - })()} - - + + {isLoadingMarks ? ( + "..." ) : ( - - - {isLoadingAPR - ? "..." - : `${(underlyingAPR * 100).toFixed( - 2 - )}%`} - + - Marks - - - ) - ) : ( - - - - - )} + <> + {displayMarksMd >= 0 + ? displayMarksMd.toLocaleString( + undefined, + { + maximumFractionDigits: 1, + minimumFractionDigits: 0, + } + ) + : "-"} + Marks + + )} +
); })() @@ -3827,77 +3769,46 @@ export default function GenesisIndexPage() { })() : undefined; + // Display marks accumulated for this market + const lastUpdatedLg = marks + ? parseInt(marks.lastUpdated || "0", 10) + : 0; + const daysElapsedLg = + lastUpdatedLg > 0 + ? (Date.now() / 1000 - lastUpdatedLg) / + (24 * 60 * 60) + : 0; + const displayMarksLg = genesisEnded + ? userMarksForMarket + : userMarksForMarket + + daysElapsedLg * currentDepositUSD * 10; + return (
- {isValidAPR ? ( - isAprRevealed && canShowCombinedAPR ? ( - - - {isLoadingAPR || safeIsLoadingTotalTVL - ? "..." - : (() => { - const tideAPR = - calculateTideAPR( - marksForAPR, - marksForAPRTotal, - depositForAPR, - tvlForAPR, - daysLeftInGenesisLg, - fdv - ); - const underlyingAPRPercent = - (underlyingAPR || 0) * 100; - const combined = - underlyingAPRPercent + - tideAPR; - return isNaN(combined) || - !isFinite(combined) - ? "..." - : `${combined.toFixed(2)}%`; - })()} - - + + {isLoadingMarks ? ( + "..." ) : ( - - - {isLoadingAPR - ? "..." - : `${(underlyingAPR * 100).toFixed( - 2 - )}%`} - + - Marks - - - ) - ) : ( - - - - - )} + <> + {displayMarksLg >= 0 + ? displayMarksLg.toLocaleString( + undefined, + { + maximumFractionDigits: 1, + minimumFractionDigits: 0, + } + ) + : "-"} + Marks + + )} +
); })() @@ -4461,10 +4372,18 @@ export default function GenesisIndexPage() { const isFxSAVE = collateralSymbolNormalized === "fxsave"; const isEurMarket = id === "steth-eur" || id === "fxusd-eur"; + const isLaunchMarket = + id === "eth-fxusd" || id === "btc-fxusd" || id === "btc-steth"; + // Metals and all future campaigns use 25k fxSAVE / 15 wstETH + const isMetalsOrFuture = !isLaunchMarket && !isEurMarket; const thresholdAmount = isEurMarket ? isFxSAVE ? 50000 : 15 + : isMetalsOrFuture + ? isFxSAVE + ? 25000 + : 15 : isFxSAVE ? 250000 : 70; @@ -4694,28 +4613,22 @@ export default function GenesisIndexPage() { {marketName}
- {collateralSymbol} = - {peggedSymbol} + - {leveragedSymbol}
@@ -4740,12 +4653,10 @@ export default function GenesisIndexPage() { {/* Anchor Token Column */}
- {peggedSymbol} {peggedSymbol} @@ -4755,12 +4666,10 @@ export default function GenesisIndexPage() { {/* Sail Token Column */}
- {leveragedSymbol} {leveragedSymbol} @@ -4789,28 +4698,22 @@ export default function GenesisIndexPage() { {marketName}
- {collateralSymbol} = - {peggedSymbol} + - {leveragedSymbol}
@@ -4826,12 +4729,10 @@ export default function GenesisIndexPage() { Anchor Token
- {peggedSymbol} {peggedSymbol} @@ -4844,12 +4745,10 @@ export default function GenesisIndexPage() {
- {leveragedSymbol} {leveragedSymbol} diff --git a/src/app/ledger-marks/page.tsx b/src/app/ledger-marks/page.tsx index 14aafaa5..6afda282 100644 --- a/src/app/ledger-marks/page.tsx +++ b/src/app/ledger-marks/page.tsx @@ -316,9 +316,9 @@ export default function LedgerMarksLeaderboard() { const [leaderboardTab, setLeaderboardTab] = useState< "campaigns" | "anchor-sail" >("campaigns"); - const [campaignTab, setCampaignTab] = useState< - "launch-maiden-voyage" | "euro-maiden-voyage" - >("launch-maiden-voyage"); +const [campaignTab, setCampaignTab] = useState< + "launch-maiden-voyage" | "euro-maiden-voyage" | "metals-maiden-voyage" +>("launch-maiden-voyage"); const [campaignSortBy, setCampaignSortBy] = useState< "total" | "perDay" | "bonus" >("total"); @@ -332,13 +332,14 @@ export default function LedgerMarksLeaderboard() { "asc" | "desc" >("desc"); - const campaignTabs = [ +const campaignTabs = [ { id: "launch-maiden-voyage", label: "Launch", subtitle: "1% of $TIDE", }, { id: "euro-maiden-voyage", label: "Euro" }, + { id: "metals-maiden-voyage", label: "Metals" }, ] as const; const activeCampaign = campaignTabs.find((tab) => tab.id === campaignTab) ?? campaignTabs[0]; diff --git a/src/app/page.tsx b/src/app/page.tsx index a309ac2f..82583984 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,7 +2,7 @@ import { redirect } from "next/navigation"; import { markets, isGenesisActive } from "@/config/markets"; export default function HomePage() { - // Check if any genesis market is currently active + // Check if any genesis market is currently active (genesis has not ended) const hasActiveGenesis = Object.values(markets).some((market) => { // Only check markets that have a genesis address configured const hasGenesisAddress = @@ -16,7 +16,7 @@ export default function HomePage() { return isGenesisActive(market); }); - // Redirect to genesis page if there's an active genesis, otherwise to anchor + // Redirect to genesis if any market's genesis is active, otherwise to anchor if (hasActiveGenesis) { redirect("/genesis"); } else { diff --git a/src/components/AnchorDepositWithdrawModal.tsx b/src/components/AnchorDepositWithdrawModal.tsx index 87eec94d..8308f9bd 100644 --- a/src/components/AnchorDepositWithdrawModal.tsx +++ b/src/components/AnchorDepositWithdrawModal.tsx @@ -365,10 +365,13 @@ export const AnchorDepositWithdrawModal = ({ collateralPool: "immediate" | "request"; sailPool: "immediate" | "request"; }>({ - collateralPool: "immediate", - sailPool: "immediate", + collateralPool: "request", + sailPool: "request", }); + // Toggle to enable 1% early withdraw option (hidden by default; user must opt-in) + const [earlyWithdraw1PctEnabled, setEarlyWithdraw1PctEnabled] = useState(false); + // Transaction status tracking const [transactionSteps, setTransactionSteps] = useState( [] @@ -2239,8 +2242,8 @@ export const AnchorDepositWithdrawModal = ({ // Check if window is currently open (now is between start and end) if (now >= start && now <= end) { - // Window is OPEN - show "(free)" only, time remaining is shown in banner - return "(free)"; + // Window is OPEN - return "free" (template adds parens: " (free)") + return "free"; } // Window is NOT open (either before it opens: now < start, or after it closes: now > end) @@ -2373,6 +2376,50 @@ export const AnchorDepositWithdrawModal = ({ return percent; }, [sailPoolEarlyFee, sailPoolAddress]); + // Sync withdrawal method to "request" or "immediate" based on window status when pool is selected + const isWindowOpen = useCallback(( + request: readonly [bigint, bigint] | undefined + ): boolean => { + if (!request || request[0] === 0n && request[1] === 0n) return false; + const [start, end] = request; + const now = BigInt(Math.floor(Date.now() / 1000)); + return now >= start && now <= end; + }, []); + + useEffect(() => { + if (activeTab !== "withdraw" || !isOpen) return; + setWithdrawalMethods((prev) => { + let changed = false; + const next = { ...prev }; + if (selectedPositions.collateralPool) { + const windowOpen = isWindowOpen(collateralPoolRequest); + const desired = windowOpen ? "immediate" : (prev.collateralPool === "immediate" && earlyWithdraw1PctEnabled ? "immediate" : "request"); + if (next.collateralPool !== desired) { + next.collateralPool = desired; + changed = true; + } + } + if (selectedPositions.sailPool) { + const windowOpen = isWindowOpen(sailPoolRequest); + const desired = windowOpen ? "immediate" : (prev.sailPool === "immediate" && earlyWithdraw1PctEnabled ? "immediate" : "request"); + if (next.sailPool !== desired) { + next.sailPool = desired; + changed = true; + } + } + return changed ? next : prev; + }); + }, [ + activeTab, + isOpen, + selectedPositions.collateralPool, + selectedPositions.sailPool, + collateralPoolRequest, + sailPoolRequest, + earlyWithdraw1PctEnabled, + isWindowOpen, + ]); + // Calculate early withdrawal fee amounts based on withdrawal amounts const earlyWithdrawalFees = useMemo(() => { const fees: Array<{ @@ -4770,6 +4817,7 @@ export const AnchorDepositWithdrawModal = ({ useEffect(() => { if (!isOpen) { hasInitializedOnOpen.current = false; + setEarlyWithdraw1PctEnabled(false); return; } if (hasInitializedOnOpen.current) return; @@ -11315,13 +11363,13 @@ export const AnchorDepositWithdrawModal = ({ })); setWithdrawalMethods((prev) => ({ ...prev, - collateralPool: "immediate", - sailPool: "immediate", + collateralPool: "request", + sailPool: "request", })); return; } - // Same market: toggle this pool only + // Same market: toggle this pool only - set method when checking based on window if (p.poolType === "collateral") { setSelectedPositions((prev) => ({ ...prev, @@ -11462,8 +11510,19 @@ export const AnchorDepositWithdrawModal = ({ {isSelected && hasBalance && (
- {/* Withdrawal Method Toggle */} + {/* Withdrawal Method: Request (default) or Early Withdraw (1% fee, gated by toggle unless window open) */} + {(() => { + const poolWindowOpen = !!(request && request[0] > 0n && request[1] > 0n) && (() => { + const [start, end] = request; + const now = BigInt(Math.floor(Date.now() / 1000)); + return now >= start && now <= end; + })(); + const showEarlyWithdrawOption = poolWindowOpen || earlyWithdraw1PctEnabled; + const show1PctToggle = !poolWindowOpen; + return ( + <>
+ {showEarlyWithdrawOption && ( + )}
+ {show1PctToggle && ( +
+ + Withdraw now - Charge a 1% fee to receive funds immediately + + +
+ )} + + ); + })()} {/* Window status banner */} {(() => { diff --git a/src/components/GenesisDepositModal.tsx b/src/components/GenesisDepositModal.tsx index fcbe58da..8678d1a7 100644 --- a/src/components/GenesisDepositModal.tsx +++ b/src/components/GenesisDepositModal.tsx @@ -222,6 +222,16 @@ const underlyingPriceUSD = wrappedPriceData.underlyingPriceUSD; const wrappedRate = wrappedPriceData.wrappedRate; const coinGeckoPrice = wrappedPriceData.coinGeckoPrice; + +// Debug wrappedRate for fxSAVE markets +if (process.env.NODE_ENV === "development" && isOpen && collateralSymbol.toLowerCase() === "fxsave") { + console.log("[GenesisDepositModal] wrappedRate check:", { + wrappedRate: wrappedRate?.toString(), + collateralSymbol, + priceOracle: marketAddresses?.priceOracle, + wrappedPriceData, + }); +} const maxUnderlyingPrice = wrappedPriceData.coinGeckoPrice ? BigInt(Math.floor((wrappedPriceData.coinGeckoPrice ?? 0) * 1e18)) : (underlyingSymbol?.toLowerCase() === "fxusd" || collateralSymbol.toLowerCase() === "fxusd") @@ -322,9 +332,9 @@ const swapTargetToken = isFxSAVEMarket ? USDC_ADDRESS : ETH_ADDRESS; const PARASWAP_TOKEN_TRANSFER_PROXY = "0x216b4b4ba9f3e719726886d34a177484278bfcae" as `0x${string}`; // Now that needsSwap is defined, determine if we should use USDC zap or ETH zap -// USDC zap: direct USDC/FXUSD deposits OR swaps in fxSAVE markets +// USDC zap: direct USDC/FXUSD/FXSAVE deposits OR swaps in fxSAVE markets // ETH zap: direct ETH/stETH deposits OR swaps in wstETH markets -const useUSDCZap = !isETHStETHMarket && (isUSDC || isFXUSD || needsSwap); +const useUSDCZap = !isETHStETHMarket && (isUSDC || isFXUSD || isFXSAVE || needsSwap); const needsETHZapAfterSwap = isETHStETHMarket && needsSwap; // Determine if custom token is selected (needed for hooks below) @@ -338,10 +348,10 @@ const tokenAddressForDecimals = isNativeETH const { decimals: tokenDecimals, isLoading: isLoadingTokenDecimals } = useTokenDecimals(tokenAddressForDecimals); // Determine selected token decimals (handle special cases) -// For USDC and ETH, we know the decimals, so no loading needed +// For USDC, fxUSD, fxSAVE, and ETH, we know the decimals, so no loading needed // For other tokens, wait for decimals to load to avoid incorrect calculations -const selectedTokenDecimals = isUSDC ? 6 : (isNativeETH ? 18 : tokenDecimals); -const hasValidDecimals = isUSDC || isNativeETH || !isLoadingTokenDecimals; +const selectedTokenDecimals = isUSDC ? 6 : (isNativeETH || isFXUSD || isFXSAVE ? 18 : tokenDecimals); +const hasValidDecimals = isUSDC || isNativeETH || isFXUSD || isFXSAVE || !isLoadingTokenDecimals; // Fetch token metadata (symbol, name) for custom tokens const { data: customTokenSymbol } = useContractRead({ @@ -634,7 +644,24 @@ const canAttemptPermit = !needsSwap && !isNativeETH && !!genesisZapAddress && - ((isStETH && useETHZap) || ((isUSDC || isFXUSD) && useUSDCZap)); + ((isStETH && useETHZap) || ((isUSDC || isFXUSD || isFXSAVE) && useUSDCZap)); + +// Debug permit toggle visibility +if (process.env.NODE_ENV === "development" && isOpen) { + console.log("[GenesisDepositModal] Permit toggle check:", { + selectedAsset, + needsSwap, + isNativeETH, + genesisZapAddress, + isUSDC, + isFXUSD, + isFXSAVE, + useUSDCZap, + canAttemptPermit, + isPermitCapable, + }); +} + const shouldUsePermit = permitEnabled && canAttemptPermit; const showPermitToggle = canAttemptPermit; const userCurrentDeposit: bigint = typeof currentDeposit === 'bigint' ? currentDeposit : 0n; @@ -1869,9 +1896,15 @@ if (depositToken === selectedAsset) { depositTokenPriceUSD = fxSAVECoinGeckoPrice || 1.08; } else if (depositTokenLower === "wsteth") { // Use CoinGecko wstETH price or stETH price * wrapped rate - depositTokenPriceUSD = coinGeckoPrice || (stEthCoinGeckoPrice && wrappedRate - ? stEthCoinGeckoPrice * (Number(wrappedRate) / 1e18) + depositTokenPriceUSD = coinGeckoPrice || (stEthCoinGeckoPrice && wrappedRate + ? stEthCoinGeckoPrice * (Number(wrappedRate) / 1e18) : collateralPriceUSD); + } else if (depositTokenLower === "eth" || depositTokenLower === "steth") { + // Zap deposits: user deposited ETH or stETH; use ETH/stETH price, not wstETH. + // In wstETH markets underlyingPriceUSD can be wstETH price, which would overstate USD. + depositTokenPriceUSD = stEthCoinGeckoPrice || (wrappedRate && collateralPriceUSD > 0 + ? collateralPriceUSD / (Number(wrappedRate) / 1e18) + : collateralPriceUSD) || 0; } else if (depositTokenLower === "fxusd") { depositTokenPriceUSD = 1.0; } else if (depositTokenLower === "usdc") { diff --git a/src/components/shared/TokenLogo.tsx b/src/components/shared/TokenLogo.tsx index 281f0a88..0ce01bcd 100644 --- a/src/components/shared/TokenLogo.tsx +++ b/src/components/shared/TokenLogo.tsx @@ -26,13 +26,18 @@ export function TokenLogo({ const logoPath = getLogoPath(symbol); return ( - {alt + + {alt + ); } diff --git a/src/config/contracts.ts b/src/config/contracts.ts index e8b9c806..fe61dbcf 100644 --- a/src/config/contracts.ts +++ b/src/config/contracts.ts @@ -278,14 +278,14 @@ const productionMarkets: Markets = { reservePool: "0xc033e81ED555D6db63A3E0Af9795454C7BdF094a", rebalancePoolCollateral: "0x0000000000000000000000000000000000000000", // placeholder rebalancePoolLeveraged: "0x0000000000000000000000000000000000000000", // placeholder - collateralPrice: "0x0000000000000000000000000000000000000000", // placeholder + collateralPrice: "0x4be4501336130E61e5872cB953e886a3a84D34Cc", // fxUSD-GOLD price oracle (for wrappedRate) genesisZap: "0x1048a287DDefF38E9A5c1e564A83f6978a2DC1eF", // GenesisUSDCZap_v4 for GOLD peggedTokenZap: "0xf0ff6D8d707D81d87caf2faa2447253f283f8873" as `0x${string}`, // MinterUSDCZap_v3 for GOLD/fxUSD leveragedTokenZap: "0xf0ff6D8d707D81d87caf2faa2447253f283f8873" as `0x${string}`, // MinterUSDCZap_v3 for GOLD/fxUSD (same contract) }, genesis: { startDate: "2026-01-21T00:00:00Z", - endDate: "2026-01-31T00:00:00Z", + endDate: "2026-02-23T17:00:00Z", // Sunday, February 23rd at 5pm UK (GMT) rewards: { pegged: { symbol: "haGOLD", @@ -321,14 +321,14 @@ const productionMarkets: Markets = { reservePool: "0x8224E5264FdD99547a21fFf34bDB60e78faB1609", rebalancePoolCollateral: "0x0000000000000000000000000000000000000000", // placeholder rebalancePoolLeveraged: "0x0000000000000000000000000000000000000000", // placeholder - collateralPrice: "0x0000000000000000000000000000000000000000", // placeholder + collateralPrice: "0x4ebde6143C5E366264ba7416FdEa18BC27C04A31", // stETH-GOLD price oracle (for wrappedRate) genesisZap: "0xCDf5BdcD7A035C2F20782e607D4f9F8f26280f93", // GenesisETHZap_v4 for GOLD peggedTokenZap: "0x3ce5e801A89eA0AC36fC29C12562695d4E6F0fec" as `0x${string}`, // MinterETHZap_v3 for GOLD/stETH leveragedTokenZap: "0x3ce5e801A89eA0AC36fC29C12562695d4E6F0fec" as `0x${string}`, // MinterETHZap_v3 for GOLD/stETH (same contract) }, genesis: { startDate: "2026-01-21T00:00:00Z", - endDate: "2026-01-31T00:00:00Z", + endDate: "2026-02-23T17:00:00Z", // Sunday, February 23rd at 5pm UK (GMT) rewards: { pegged: { symbol: "haGOLD", @@ -455,7 +455,7 @@ const productionMarkets: Markets = { }, genesis: { startDate: "2026-02-01T00:00:00Z", // Placeholder - Coming Soon - endDate: "2026-02-08T20:00:00Z", // Placeholder - Coming Soon + endDate: "2026-02-23T17:00:00Z", // Sunday, February 23rd at 5pm UK (GMT) rewards: { pegged: { symbol: "haMCAP", @@ -495,7 +495,7 @@ const productionMarkets: Markets = { }, genesis: { startDate: "2026-02-01T00:00:00Z", // Placeholder - Coming Soon - endDate: "2026-02-08T20:00:00Z", // Placeholder - Coming Soon + endDate: "2026-02-23T17:00:00Z", // Sunday, February 23rd at 5pm UK (GMT) rewards: { pegged: { symbol: "haMCAP", @@ -531,11 +531,14 @@ const productionMarkets: Markets = { reservePool: "0xDBF9F31795DAEa636e3e1305f897BFa8D2aA017d", rebalancePoolCollateral: "0x0000000000000000000000000000000000000000", // placeholder rebalancePoolLeveraged: "0x0000000000000000000000000000000000000000", // placeholder - collateralPrice: "0x0000000000000000000000000000000000000000", // placeholder + collateralPrice: "0x14816ff286f2eA46AB48c3275401Fd4b1ef817B5", // fxUSD-SILVER price oracle (for wrappedRate) + genesisZap: "0xd19d801a0427Dd91bcbAfB0FcA783a3231a749c8", // GenesisUSDCZap_v4 for SILVER (deployed 2026-02-11) + peggedTokenZap: "0xf0ff6D8d707D81d87caf2faa2447253f283f8873" as `0x${string}`, // MinterUSDCZap_v3 for SILVER/fxUSD (same as GOLD) + leveragedTokenZap: "0xf0ff6D8d707D81d87caf2faa2447253f283f8873" as `0x${string}`, // MinterUSDCZap_v3 for SILVER/fxUSD (same as GOLD) }, genesis: { startDate: "2026-02-01T00:00:00Z", // Placeholder - Coming Soon - endDate: "2026-02-08T20:00:00Z", // Placeholder - Coming Soon + endDate: "2026-02-23T17:00:00Z", // Sunday, February 23rd at 5pm UK (GMT) rewards: { pegged: { symbol: "haSILVER", @@ -571,11 +574,14 @@ const productionMarkets: Markets = { reservePool: "0x77AC9343621402B938d5A39727Da76891aFFA419", rebalancePoolCollateral: "0x0000000000000000000000000000000000000000", // placeholder rebalancePoolLeveraged: "0x0000000000000000000000000000000000000000", // placeholder - collateralPrice: "0x0000000000000000000000000000000000000000", // placeholder + collateralPrice: "0x7223E17bD4527AcbE44644300eA0F09A4AeBC995", // stETH-SILVER price oracle (for wrappedRate) + genesisZap: "0xC128Cbf15920455569e1926C982567d2bE21AC50", // GenesisETHZap_v4 for SILVER (deployed 2026-02-11) + peggedTokenZap: "0x3ce5e801A89eA0AC36fC29C12562695d4E6F0fec" as `0x${string}`, // MinterETHZap_v3 for SILVER/stETH (same as GOLD) + leveragedTokenZap: "0x3ce5e801A89eA0AC36fC29C12562695d4E6F0fec" as `0x${string}`, // MinterETHZap_v3 for SILVER/stETH (same as GOLD) }, genesis: { startDate: "2026-02-01T00:00:00Z", // Placeholder - Coming Soon - endDate: "2026-02-08T20:00:00Z", // Placeholder - Coming Soon + endDate: "2026-02-23T17:00:00Z", // Sunday, February 23rd at 5pm UK (GMT) rewards: { pegged: { symbol: "haSILVER", diff --git a/src/config/graph.ts b/src/config/graph.ts index 694a63ec..2e452ea4 100644 --- a/src/config/graph.ts +++ b/src/config/graph.ts @@ -3,15 +3,18 @@ const GRAPH_API_KEY = process.env.NEXT_PUBLIC_GRAPH_API_KEY || "247d3c7824af808d9ba8a671c7bddfdf"; const useTest2 = process.env.NEXT_PUBLIC_USE_TEST2_CONTRACTS === "true"; +// Default marks subgraph (v0.1.4 = metals consistent pricing). Override with NEXT_PUBLIC_GRAPH_URL if needed. +const DEFAULT_MARKS_URL = "https://api.studio.thegraph.com/query/1718836/harbor-marks/v0.1.4-metals-consistent-pricing"; + export const GRAPH_CONFIG = { - // Harbor Marks subgraph (for marks tracking) + // Harbor Marks subgraph. Use env to override (e.g. gateway). Default: Studio v0.1.4 (metals consistent pricing). marks: { url: (useTest2 ? process.env.NEXT_PUBLIC_GRAPH_URL_TEST2 || process.env.NEXT_PUBLIC_GRAPH_URL : process.env.NEXT_PUBLIC_GRAPH_URL) || - `https://gateway.thegraph.com/api/subgraphs/id/6XgXZkgr2SL1UWeriY6MsJV9aB2BUfemtMbsfuRq6uP1`, + DEFAULT_MARKS_URL, chainId: 1, network: "mainnet", }, @@ -29,9 +32,7 @@ export const GRAPH_CONFIG = { }, // Alias for backward compatibility production: { - url: - process.env.NEXT_PUBLIC_GRAPH_URL || - `https://gateway.thegraph.com/api/subgraphs/id/6XgXZkgr2SL1UWeriY6MsJV9aB2BUfemtMbsfuRq6uP1`, + url: process.env.NEXT_PUBLIC_GRAPH_URL || DEFAULT_MARKS_URL, chainId: 1, network: "mainnet", }, @@ -61,10 +62,15 @@ export const CONTRACTS_WBTC = { stabilityPoolLeveraged: "0xfc2145de73ec53e34c4e6809b56a61321315e806", }; +// Harbor Marks subgraph version (metals consistent pricing). Bump when redeploying subgraph. +const HARBOR_MARKS_VERSION = "v0.1.4-metals-consistent-pricing"; +const STUDIO_MARKS_BASE = "https://api.studio.thegraph.com/query/1718836/harbor-marks"; +const STUDIO_MARKS_DEFAULT = `${STUDIO_MARKS_BASE}/${HARBOR_MARKS_VERSION}`; + // Get the Graph URL for marks (always production/mainnet) export const getGraphUrl = (): string => { if (typeof window !== "undefined" && window.location.hostname === "localhost") { - return "https://api.studio.thegraph.com/query/1718836/harbor-marks/campaigns-v0.03"; + return STUDIO_MARKS_DEFAULT; } return GRAPH_CONFIG.marks.url; }; diff --git a/src/config/markets.ts b/src/config/markets.ts index 3ec1c23c..f0319ced 100644 --- a/src/config/markets.ts +++ b/src/config/markets.ts @@ -260,7 +260,7 @@ export const markets = { ...(useTest2 ? {} : { "fxusd-gold": { name: "fxUSD-GOLD", - status: "coming-soon" as const, + status: "genesis" as const, pegTarget: "GOLD", chain: { name: "Ethereum", @@ -295,16 +295,19 @@ export const markets = { feeReceiver: contractsMarkets["fxusd-gold"].addresses.feeReceiver, collateralToken: contractsMarkets["fxusd-gold"].addresses.collateralToken, wrappedCollateralToken: contractsMarkets["fxusd-gold"].addresses.wrappedCollateralToken, + genesisZap: contractsMarkets["fxusd-gold"].addresses.genesisZap, // GenesisUSDCZap_v4 for GOLD + peggedTokenZap: contractsMarkets["fxusd-gold"].addresses.peggedTokenZap, // MinterUSDCZap_v3 for GOLD/fxUSD + leveragedTokenZap: contractsMarkets["fxusd-gold"].addresses.leveragedTokenZap, // MinterUSDCZap_v3 for GOLD/fxUSD }, peggedToken: { name: "Harbor Anchored GOLD", symbol: "haGOLD", - description: "Pegged token (coming soon)", + description: "Pegged token", }, leveragedToken: { name: "Harbor Sail fxUSD-GOLD", symbol: "hsFXUSD-GOLD", - description: "Leveraged token (coming soon)", + description: "Leveraged token", }, rewardPoints: { pointsPerDollar: 100, @@ -332,7 +335,7 @@ export const markets = { }, "steth-gold": { name: "stETH-GOLD", - status: "coming-soon" as const, + status: "genesis" as const, pegTarget: "GOLD", chain: { name: "Ethereum", @@ -367,16 +370,19 @@ export const markets = { feeReceiver: contractsMarkets["steth-gold"].addresses.feeReceiver, collateralToken: contractsMarkets["steth-gold"].addresses.collateralToken, wrappedCollateralToken: contractsMarkets["steth-gold"].addresses.wrappedCollateralToken, + genesisZap: contractsMarkets["steth-gold"].addresses.genesisZap, // GenesisETHZap_v4 for GOLD + peggedTokenZap: contractsMarkets["steth-gold"].addresses.peggedTokenZap, // MinterETHZap_v3 for GOLD/stETH + leveragedTokenZap: contractsMarkets["steth-gold"].addresses.leveragedTokenZap, // MinterETHZap_v3 for GOLD/stETH }, peggedToken: { name: "Harbor Anchored GOLD", symbol: "haGOLD", - description: "Pegged token (coming soon)", + description: "Pegged token", }, leveragedToken: { name: "Harbor Sail stETH-GOLD", symbol: "hsSTETH-GOLD", - description: "Leveraged token (coming soon)", + description: "Leveraged token", }, rewardPoints: { pointsPerDollar: 100, @@ -692,7 +698,7 @@ export const markets = { }, "steth-silver": { name: "stETH-SILVER", - status: "coming-soon" as const, + status: "genesis" as const, pegTarget: "SILVER", chain: { name: "Ethereum", @@ -727,16 +733,19 @@ export const markets = { feeReceiver: contractsMarkets["steth-silver"].addresses.feeReceiver, collateralToken: contractsMarkets["steth-silver"].addresses.collateralToken, wrappedCollateralToken: contractsMarkets["steth-silver"].addresses.wrappedCollateralToken, + genesisZap: contractsMarkets["steth-silver"].addresses.genesisZap, // GenesisETHZap_v4 for SILVER + peggedTokenZap: contractsMarkets["steth-silver"].addresses.peggedTokenZap, // MinterETHZap_v3 for SILVER/stETH + leveragedTokenZap: contractsMarkets["steth-silver"].addresses.leveragedTokenZap, // MinterETHZap_v3 for SILVER/stETH }, peggedToken: { name: "Harbor Anchored SILVER", symbol: "haSILVER", - description: "Pegged token (coming soon)", + description: "Pegged token", }, leveragedToken: { name: "Harbor Sail stETH-SILVER", symbol: "hsSTETH-SILVER", - description: "Leveraged token (coming soon)", + description: "Leveraged token", }, rewardPoints: { pointsPerDollar: 100, @@ -764,7 +773,7 @@ export const markets = { }, "fxusd-silver": { name: "fxUSD-SILVER", - status: "coming-soon" as const, + status: "genesis" as const, pegTarget: "SILVER", chain: { name: "Ethereum", @@ -799,16 +808,19 @@ export const markets = { feeReceiver: contractsMarkets["fxusd-silver"].addresses.feeReceiver, collateralToken: contractsMarkets["fxusd-silver"].addresses.collateralToken, wrappedCollateralToken: contractsMarkets["fxusd-silver"].addresses.wrappedCollateralToken, + genesisZap: contractsMarkets["fxusd-silver"].addresses.genesisZap, // GenesisUSDCZap_v4 for SILVER + peggedTokenZap: contractsMarkets["fxusd-silver"].addresses.peggedTokenZap, // MinterUSDCZap_v3 for SILVER/fxUSD + leveragedTokenZap: contractsMarkets["fxusd-silver"].addresses.leveragedTokenZap, // MinterUSDCZap_v3 for SILVER/fxUSD }, peggedToken: { name: "Harbor Anchored SILVER", symbol: "haSILVER", - description: "Pegged token (coming soon)", + description: "Pegged token", }, leveragedToken: { name: "Harbor Sail fxUSD-SILVER", symbol: "hsFXUSD-SILVER", - description: "Leveraged token (coming soon)", + description: "Leveraged token", }, rewardPoints: { pointsPerDollar: 100, diff --git a/src/hooks/useHarborMarks.ts b/src/hooks/useHarborMarks.ts index b276afa0..6b81f387 100644 --- a/src/hooks/useHarborMarks.ts +++ b/src/hooks/useHarborMarks.ts @@ -388,6 +388,18 @@ export function useAllHarborMarks(genesisAddresses: string[]) { const results = await Promise.all(queries); + // Debug: log whether userHarborMarks is present (set NEXT_PUBLIC_DEBUG_HARBOR_MARKS=true on staging to trace "marks not accumulating") + const debugMarks = typeof window !== "undefined" && process.env.NEXT_PUBLIC_DEBUG_HARBOR_MARKS === "true"; + if (debugMarks) { + results.forEach((r, i) => { + const genesisAddress = genesisAddresses[i]; + const id = `${genesisAddress.toLowerCase()}-${address!.toLowerCase()}`; + const hasMarks = !!r.data?.userHarborMarks; + const currentMarks = r.data?.userHarborMarks?.currentMarks ?? "null"; + console.log(`[useAllHarborMarks] ${genesisAddress.slice(0, 10)}... => ${hasMarks ? `currentMarks=${currentMarks}` : "userHarborMarks=null"} (query id: ${id})`); + }); + } + // Map results with error details and merge with previous valid data const mappedResults = results.map((result, index) => { const genesisAddress = genesisAddresses[index]; diff --git a/subgraph/deploy-production-no-prompt.sh b/subgraph/deploy-production-no-prompt.sh new file mode 100755 index 00000000..f771fbaf --- /dev/null +++ b/subgraph/deploy-production-no-prompt.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# Deploy Harbor Marks subgraph to The Graph Studio with no interactive prompts. +# +# Uses GRAPH_DEPLOY_KEY from: +# 1. Environment (export GRAPH_DEPLOY_KEY=...) +# 2. ../.env.local (sourced if present) +# 3. Or run once: graph auth --studio (then key can be omitted) +# +# Optional: GRAPH_VERSION_LABEL (default: v0.1.2-metals-oracle) + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$SCRIPT_DIR" + +# Load from parent .env.local if present (do not commit .env.local) +if [ -f "../.env.local" ]; then + set -a + # shellcheck source=../.env.local + source "../.env.local" + set +a +fi + +VERSION_LABEL="${GRAPH_VERSION_LABEL:-v0.1.4-metals-consistent-pricing}" + +echo "Deploying harbor-marks with version $VERSION_LABEL (no prompts)..." + +cp subgraph.production.yaml subgraph.yaml +graph codegen +graph build + +if [ -n "${GRAPH_DEPLOY_KEY}" ]; then + graph deploy \ + --node https://api.studio.thegraph.com/deploy/ \ + --deploy-key "$GRAPH_DEPLOY_KEY" \ + harbor-marks \ + --version-label "$VERSION_LABEL" +else + # Use stored auth from: graph auth --studio + graph deploy \ + --node https://api.studio.thegraph.com/deploy/ \ + harbor-marks \ + --version-label "$VERSION_LABEL" +fi + +echo "Done. Check sync at: https://thegraph.com/studio/subgraph/harbor-marks" diff --git a/subgraph/package.json b/subgraph/package.json index 1dac47b9..d13e9d3f 100644 --- a/subgraph/package.json +++ b/subgraph/package.json @@ -13,6 +13,7 @@ "use:marks:production": "cp subgraph.production.yaml subgraph.yaml", "use:marks:test": "cp subgraph.test.yaml subgraph.yaml", "deploy:marks:production": "cp subgraph.production.yaml subgraph.yaml && graph codegen && graph build && graph deploy --node https://api.studio.thegraph.com/deploy/ --deploy-key $GRAPH_DEPLOY_KEY harbor-marks", + "deploy:marks:production:no-prompt": "bash deploy-production-no-prompt.sh", "deploy:marks:production:version": "cp subgraph.production.yaml subgraph.yaml && graph codegen && graph build && graph deploy --node https://api.studio.thegraph.com/deploy/ --deploy-key $GRAPH_DEPLOY_KEY harbor-marks --version-label", "deploy:marks:test": "cp subgraph.test.yaml subgraph.yaml && graph codegen && graph build && graph deploy --node https://api.studio.thegraph.com/deploy/ --deploy-key $GRAPH_DEPLOY_KEY harbor-marks-test", "deploy:marks:test:version": "cp subgraph.test.yaml subgraph.yaml && graph codegen && graph build && graph deploy --node https://api.studio.thegraph.com/deploy/ --deploy-key $GRAPH_DEPLOY_KEY harbor-marks-test --version-label", diff --git a/subgraph/src/genesis.ts b/subgraph/src/genesis.ts index c25bd311..165962f8 100644 --- a/subgraph/src/genesis.ts +++ b/subgraph/src/genesis.ts @@ -24,8 +24,12 @@ const EARLY_BONUS_THRESHOLD_FXSAVE = BigDecimal.fromString("250000"); // 250k fx const EARLY_BONUS_THRESHOLD_WSTETH = BigDecimal.fromString("70"); // 70 wstETH tokens (not USD) const EARLY_BONUS_THRESHOLD_FXSAVE_EUR = BigDecimal.fromString("50000"); // 50k fxUSD tokens (EUR markets) const EARLY_BONUS_THRESHOLD_WSTETH_EUR = BigDecimal.fromString("15"); // ~50k USD in wstETH (EUR markets) +// Metals and all future campaigns (lower threshold) +const EARLY_BONUS_THRESHOLD_FXSAVE_METALS = BigDecimal.fromString("25000"); // 25k fxSAVE +const EARLY_BONUS_THRESHOLD_WSTETH_METALS = BigDecimal.fromString("15"); // 15 wstETH const SECONDS_PER_DAY = BigDecimal.fromString("86400"); const E18 = BigDecimal.fromString("1000000000000000000"); // 10^18 +const CHAINLINK_DECIMALS = BigDecimal.fromString("100000000"); // 10^8 - Chainlink USD feeds // 8 days (boost duration, per product rules) const BOOST_DURATION_SECONDS = BigInt.fromI32(8 * 24 * 60 * 60); @@ -53,6 +57,20 @@ function getCampaignId(contractAddress: Bytes): string { return "euro-maiden-voyage"; } + // Metals Maiden Voyage (GOLD + SILVER) + if (address == "0x2cbf457112ef5a16cfca10fb173d56a5cc9daa66") { + return "metals-maiden-voyage"; // fxUSD-GOLD genesis + } + if (address == "0x8ad6b177137a6c33070c27d98355717849ce526c") { + return "metals-maiden-voyage"; // stETH-GOLD genesis + } + if (address == "0x66d18b9dd5d1cd51957dfea0e0373b54e06118c8") { + return "metals-maiden-voyage"; // fxUSD-SILVER genesis + } + if (address == "0x8f655ca32a1fa8032955989c19e91886f26439dc") { + return "metals-maiden-voyage"; // stETH-SILVER genesis + } + return "unknown-maiden-voyage"; } @@ -63,6 +81,9 @@ function getCampaignLabel(campaignId: string): string { if (campaignId == "euro-maiden-voyage") { return "Euro Maiden Voyage"; } + if (campaignId == "metals-maiden-voyage") { + return "Metals Maiden Voyage"; + } return "Unknown Maiden Voyage"; } @@ -220,51 +241,30 @@ function getPriceOracleAddress(genesisAddress: string): string { if (genesisAddress == "0xa9eb43ed6ba3b953a82741f3e226c1d6b029699b") { return "0x71437c90f1e0785dd691fd02f7be0b90cd14c097"; // fxUSD/EUR (EUR::fxUSD::priceOracle) } - return ""; -} - -// Fallback prices if oracle fails (in USD) -function getFallbackPrice(genesisAddress: string): BigDecimal { - // Production v1 contracts - if (genesisAddress == "0xc9df4f62474cf6cde6c064db29416a9f4f27ebdc") { - return BigDecimal.fromString("1.07"); // fxSAVE ~$1.07 (production v1) - } - if (genesisAddress == "0x42cc9a19b358a2a918f891d8a6199d8b05f0bc1c") { - return BigDecimal.fromString("1.07"); // fxSAVE ~$1.07 (production v1) - } - if (genesisAddress == "0xc64fc46eed431e92c1b5e24dc296b5985ce6cc00") { - return BigDecimal.fromString("4400"); // wstETH ~$4400 (production v1) - } - // Legacy test contracts - if (genesisAddress == "0x5f4398e1d3e33f93e3d7ee710d797e2a154cb073") { - return BigDecimal.fromString("1.07"); // fxSAVE ~$1.07 - } - if (genesisAddress == "0x288c61c3b3684ff21adf38d878c81457b19bd2fe") { - return BigDecimal.fromString("1.07"); // fxSAVE ~$1.07 - } - if (genesisAddress == "0x9ae0b57ceada0056dbe21edcd638476fcba3ccc0") { - return BigDecimal.fromString("4400"); // wstETH ~$4400 (stETH ~$3600 * rate ~1.22) + // Metals maiden voyage (GOLD/SILVER, fxUSD and stETH collaterals) + if (genesisAddress == "0x2cbf457112ef5a16cfca10fb173d56a5cc9daa66") { + return "0x1f7f62889e599e51b9e21b27d589fa521516d147"; // fxUSD/GOLD } - if (genesisAddress == "0x1454707877cdb966e29cea8a190c2169eeca4b8c") { - return BigDecimal.fromString("1.07"); // fxSAVE ~$1.07 + if (genesisAddress == "0x8ad6b177137a6c33070c27d98355717849ce526c") { + return "0x4ebde6143c5e366264ba7416fdea18bc27c04a31"; // stETH/GOLD } - // EUR markets (production v1) - if (genesisAddress == "0xf4f97218a00213a57a32e4606aaecc99e1805a89") { - return BigDecimal.fromString("3600"); // wstETH ~$3600 (stETH/EUR) + if (genesisAddress == "0x66d18b9dd5d1cd51957dfea0e0373b54e06118c8") { + return "0x14816ff286f2ea46ab48c3275401fd4b1ef817b5"; // fxUSD/SILVER } - if (genesisAddress == "0xa9eb43ed6ba3b953a82741f3e226c1d6b029699b") { - return BigDecimal.fromString("1.07"); // fxSAVE ~$1.07 (fxUSD/EUR) + if (genesisAddress == "0x8f655ca32a1fa8032955989c19e91886f26439dc") { + return "0x7223e17bd4527acbe44644300ea0f09a4aebc995"; // stETH/SILVER } - return BigDecimal.fromString("1.0"); // Default fallback + return ""; } /** * Fetch real-time price from the WrappedPriceOracle contract * Returns the wrapped token price in USD (underlying price * wrapped rate) + * Returns 0 if oracle is missing or fails so the app can display an error. * * @param genesisAddress - The genesis contract address * @param block - The current block - * @returns Wrapped token price in USD, or fallback price if oracle fails + * @returns Wrapped token price in USD, or 0 if oracle is missing/fails (app shows error) */ export function getWrappedTokenPriceUSD(genesisAddress: Bytes, block: ethereum.Block): BigDecimal { const genesisAddressStr = genesisAddress.toHexString(); @@ -478,44 +478,66 @@ export function getWrappedTokenPriceUSD(genesisAddress: Bytes, block: ethereum.B return wstethUsdPrice; } - // For other markets, use oracle normally + // Metals (GOLD/SILVER): same pattern as fxUSD/BTC/stETH - oracle returns collateral/peg rate (18 decimals), we multiply by Chainlink peg/USD. + const isMetalsGenesis = + genesisAddressStr == "0x2cbf457112ef5a16cfca10fb173d56a5cc9daa66" || + genesisAddressStr == "0x8ad6b177137a6c33070c27d98355717849ce526c" || + genesisAddressStr == "0x66d18b9dd5d1cd51957dfea0e0373b54e06118c8" || + genesisAddressStr == "0x8f655ca32a1fa8032955989c19e91886f26439dc"; + const isGoldMarket = + genesisAddressStr == "0x2cbf457112ef5a16cfca10fb173d56a5cc9daa66" || + genesisAddressStr == "0x8ad6b177137a6c33070c27d98355717849ce526c"; + + if (isMetalsGenesis) { + const oracleAddressStr = getPriceOracleAddress(genesisAddressStr); + if (oracleAddressStr == "") { + return BigDecimal.fromString("0"); + } + const oracleAddress = Address.fromString(oracleAddressStr); + const oracle = WrappedPriceOracle.bind(oracleAddress); + const result = oracle.try_latestAnswer(); + if (result.reverted) { + return BigDecimal.fromString("0"); + } + // value1 = collateral/peg rate (e.g. fxSAVE per gold or silver unit), 18 decimals - same as other campaigns + const fxsaveRateDecimal = result.value.value1.toBigDecimal().div(E18); + const wrappedRate = result.value.value3.toBigDecimal().div(E18); + // Peg/USD from Chainlink: XAU/USD or XAG/USD (8 decimals) + const pegUsdFeedAddress = isGoldMarket + ? Address.fromString("0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6") // XAU/USD + : Address.fromString("0x379589227b15F1a12195D3f2d90bBc9F31f95235"); // XAG/USD + const pegUsdOracle = ChainlinkAggregator.bind(pegUsdFeedAddress); + const pegUsdResult = pegUsdOracle.try_latestAnswer(); + if (pegUsdResult.reverted) { + return BigDecimal.fromString("0"); + } + const peggedTokenUsdPrice = pegUsdResult.value.toBigDecimal().div(CHAINLINK_DECIMALS); + const wrappedTokenPriceUSD = fxsaveRateDecimal.times(peggedTokenUsdPrice).times(wrappedRate); + if (wrappedTokenPriceUSD.le(BigDecimal.fromString("0"))) { + return BigDecimal.fromString("0"); + } + return wrappedTokenPriceUSD; + } + + // For other (non-metals) markets, use oracle with 18 decimals for both value1 and value3 - consistent with all campaigns. const oracleAddressStr = getPriceOracleAddress(genesisAddressStr); - - // If no oracle configured, return 0 to indicate pricing failure if (oracleAddressStr == "") { return BigDecimal.fromString("0"); } - - // Bind to the price oracle contract const oracleAddress = Address.fromString(oracleAddressStr); const oracle = WrappedPriceOracle.bind(oracleAddress); - - // Call latestAnswer() which returns (minUnderlyingPrice, maxUnderlyingPrice, minWrappedRate, maxWrappedRate) const result = oracle.try_latestAnswer(); - if (result.reverted) { - // Oracle call failed - return 0 to indicate pricing failure return BigDecimal.fromString("0"); } - - // Extract values (all in 18 decimals) - const maxUnderlyingPrice = result.value.value1; // maxUnderlyingPrice (e.g., wstETH = $4000) - const maxWrappedRate = result.value.value3; // maxWrappedRate (e.g., wstETH rate = 1.0) - - // Convert from BigInt (18 decimals) to BigDecimal + const maxUnderlyingPrice = result.value.value1; + const maxWrappedRate = result.value.value3; const underlyingPriceUSD = maxUnderlyingPrice.toBigDecimal().div(E18); const wrappedRate = maxWrappedRate.toBigDecimal().div(E18); - - // Calculate wrapped token price: underlying price * wrapped rate - // Example: wstETH = $4000 * 1.0 = $4000 const wrappedTokenPriceUSD = underlyingPriceUSD.times(wrappedRate); - - // Ensure we have a valid price if (wrappedTokenPriceUSD.le(BigDecimal.fromString("0"))) { - // Calculated price is invalid - return 0 to indicate pricing failure return BigDecimal.fromString("0"); } - return wrappedTokenPriceUSD; } @@ -562,6 +584,8 @@ function getCollateralSymbol(genesisAddress: string): string { if (addr == "0xc9df4f62474cf6cde6c064db29416a9f4f27ebdc" || // ETH/fxUSD (production v1) addr == "0x42cc9a19b358a2a918f891d8a6199d8b05f0bc1c" || // BTC/fxUSD (production v1) addr == "0xa9eb43ed6ba3b953a82741f3e226c1d6b029699b" || // fxUSD/EUR (new) + addr == "0x2cbf457112ef5a16cfca10fb173d56a5cc9daa66" || // GOLD::fxUSD::genesis (Metals) + addr == "0x66d18b9dd5d1cd51957dfea0e0373b54e06118c8" || // SILVER::fxUSD::genesis (Metals) // Legacy test contracts (for backward compatibility) addr == "0x5f4398e1d3e33f93e3d7ee710d797e2a154cb073" || addr == "0x288c61c3b3684ff21adf38d878c81457b19bd2fe" || @@ -571,6 +595,8 @@ function getCollateralSymbol(genesisAddress: string): string { // Production v1: BTC/stETH market uses wstETH if (addr == "0xc64fc46eed431e92c1b5e24dc296b5985ce6cc00" || // BTC/stETH (production v1) addr == "0xf4f97218a00213a57a32e4606aaecc99e1805a89" || // stETH/EUR + addr == "0x8ad6b177137a6c33070c27d98355717849ce526c" || // GOLD::stETH::genesis (Metals) + addr == "0x8f655ca32a1fa8032955989c19e91886f26439dc" || // SILVER::stETH::genesis (Metals) // Legacy test contract (for backward compatibility) addr == "0x9ae0b57ceada0056dbe21edcd638476fcba3ccc0") { return "wstETH"; @@ -592,6 +618,13 @@ function getEarlyBonusThresholdAmount( // fxUSD-EUR genesis return EARLY_BONUS_THRESHOLD_FXSAVE_EUR; } + // Metals maiden voyage (and default for all future campaigns) + if (addr == "0x2cbf457112ef5a16cfca10fb173d56a5cc9daa66" || addr == "0x66d18b9dd5d1cd51957dfea0e0373b54e06118c8") { + return EARLY_BONUS_THRESHOLD_FXSAVE_METALS; // fxUSD-GOLD, fxUSD-SILVER + } + if (addr == "0x8ad6b177137a6c33070c27d98355717849ce526c" || addr == "0x8f655ca32a1fa8032955989c19e91886f26439dc") { + return EARLY_BONUS_THRESHOLD_WSTETH_METALS; // stETH-GOLD, stETH-SILVER + } const isFxSAVE = collateralSymbol == "fxSAVE"; return isFxSAVE ? EARLY_BONUS_THRESHOLD_FXSAVE : EARLY_BONUS_THRESHOLD_WSTETH; } diff --git a/subgraph/subgraph.production.yaml b/subgraph/subgraph.production.yaml index 60fc97ea..c1a21438 100644 --- a/subgraph/subgraph.production.yaml +++ b/subgraph/subgraph.production.yaml @@ -588,6 +588,158 @@ dataSources: handler: handleGenesisEnd file: ./src/genesis.ts + # Genesis - fxUSD/GOLD market (Metals Maiden Voyage) + - kind: ethereum + name: Genesis_fxUSD_GOLD + network: mainnet + source: + address: "0x2cbF457112Ef5A16cfcA10Fb173d56a5cc9DAa66" # GOLD::fxUSD::genesis from harbor_v1.state + abi: Genesis + startBlock: 24271147 + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Deposit + - Withdrawal + - GenesisEnd + - UserHarborMarks + - UserList + - MarksMultiplier + - UserTotalMarks + abis: + - name: Genesis + file: ./abis/Genesis.json + - name: ERC20 + file: ./abis/ERC20.json + - name: WrappedPriceOracle + file: ./abis/WrappedPriceOracle.json + - name: ChainlinkAggregator + file: ./abis/ChainlinkAggregator.json + eventHandlers: + - event: Deposit(indexed address,indexed address,uint256) + handler: handleDeposit + - event: Withdraw(indexed address,indexed address,uint256) + handler: handleWithdraw + - event: GenesisEnds() + handler: handleGenesisEnd + file: ./src/genesis.ts + + # Genesis - stETH/GOLD market (Metals Maiden Voyage) + - kind: ethereum + name: Genesis_stETH_GOLD + network: mainnet + source: + address: "0x8Ad6b177137A6c33070c27d98355717849Ce526c" # GOLD::stETH::genesis from harbor_v1.state + abi: Genesis + startBlock: 24271147 + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Deposit + - Withdrawal + - GenesisEnd + - UserHarborMarks + - UserList + - MarksMultiplier + - UserTotalMarks + abis: + - name: Genesis + file: ./abis/Genesis.json + - name: ERC20 + file: ./abis/ERC20.json + - name: WrappedPriceOracle + file: ./abis/WrappedPriceOracle.json + - name: ChainlinkAggregator + file: ./abis/ChainlinkAggregator.json + eventHandlers: + - event: Deposit(indexed address,indexed address,uint256) + handler: handleDeposit + - event: Withdraw(indexed address,indexed address,uint256) + handler: handleWithdraw + - event: GenesisEnds() + handler: handleGenesisEnd + file: ./src/genesis.ts + + # Genesis - fxUSD/SILVER market (Metals Maiden Voyage) + - kind: ethereum + name: Genesis_fxUSD_SILVER + network: mainnet + source: + address: "0x66d18B9Dd5d1cd51957DFea0e0373b54E06118C8" # SILVER::fxUSD::genesis from harbor_v1.state + abi: Genesis + startBlock: 24271147 + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Deposit + - Withdrawal + - GenesisEnd + - UserHarborMarks + - UserList + - MarksMultiplier + - UserTotalMarks + abis: + - name: Genesis + file: ./abis/Genesis.json + - name: ERC20 + file: ./abis/ERC20.json + - name: WrappedPriceOracle + file: ./abis/WrappedPriceOracle.json + - name: ChainlinkAggregator + file: ./abis/ChainlinkAggregator.json + eventHandlers: + - event: Deposit(indexed address,indexed address,uint256) + handler: handleDeposit + - event: Withdraw(indexed address,indexed address,uint256) + handler: handleWithdraw + - event: GenesisEnds() + handler: handleGenesisEnd + file: ./src/genesis.ts + + # Genesis - stETH/SILVER market (Metals Maiden Voyage) + - kind: ethereum + name: Genesis_stETH_SILVER + network: mainnet + source: + address: "0x8f655Ca32A1Fa8032955989c19e91886F26439dc" # SILVER::stETH::genesis from harbor_v1.state + abi: Genesis + startBlock: 24271147 + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Deposit + - Withdrawal + - GenesisEnd + - UserHarborMarks + - UserList + - MarksMultiplier + - UserTotalMarks + abis: + - name: Genesis + file: ./abis/Genesis.json + - name: ERC20 + file: ./abis/ERC20.json + - name: WrappedPriceOracle + file: ./abis/WrappedPriceOracle.json + - name: ChainlinkAggregator + file: ./abis/ChainlinkAggregator.json + eventHandlers: + - event: Deposit(indexed address,indexed address,uint256) + handler: handleDeposit + - event: Withdraw(indexed address,indexed address,uint256) + handler: handleWithdraw + - event: GenesisEnds() + handler: handleGenesisEnd + file: ./src/genesis.ts + # Leveraged Token (hsSTETH-BTC) - sail token for BTC/stETH market # Note: haBTC is shared with BTC/fxUSD market, so we don't need to track it again - kind: ethereum diff --git a/subgraph/subgraph.yaml b/subgraph/subgraph.yaml index 60fc97ea..c1a21438 100644 --- a/subgraph/subgraph.yaml +++ b/subgraph/subgraph.yaml @@ -588,6 +588,158 @@ dataSources: handler: handleGenesisEnd file: ./src/genesis.ts + # Genesis - fxUSD/GOLD market (Metals Maiden Voyage) + - kind: ethereum + name: Genesis_fxUSD_GOLD + network: mainnet + source: + address: "0x2cbF457112Ef5A16cfcA10Fb173d56a5cc9DAa66" # GOLD::fxUSD::genesis from harbor_v1.state + abi: Genesis + startBlock: 24271147 + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Deposit + - Withdrawal + - GenesisEnd + - UserHarborMarks + - UserList + - MarksMultiplier + - UserTotalMarks + abis: + - name: Genesis + file: ./abis/Genesis.json + - name: ERC20 + file: ./abis/ERC20.json + - name: WrappedPriceOracle + file: ./abis/WrappedPriceOracle.json + - name: ChainlinkAggregator + file: ./abis/ChainlinkAggregator.json + eventHandlers: + - event: Deposit(indexed address,indexed address,uint256) + handler: handleDeposit + - event: Withdraw(indexed address,indexed address,uint256) + handler: handleWithdraw + - event: GenesisEnds() + handler: handleGenesisEnd + file: ./src/genesis.ts + + # Genesis - stETH/GOLD market (Metals Maiden Voyage) + - kind: ethereum + name: Genesis_stETH_GOLD + network: mainnet + source: + address: "0x8Ad6b177137A6c33070c27d98355717849Ce526c" # GOLD::stETH::genesis from harbor_v1.state + abi: Genesis + startBlock: 24271147 + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Deposit + - Withdrawal + - GenesisEnd + - UserHarborMarks + - UserList + - MarksMultiplier + - UserTotalMarks + abis: + - name: Genesis + file: ./abis/Genesis.json + - name: ERC20 + file: ./abis/ERC20.json + - name: WrappedPriceOracle + file: ./abis/WrappedPriceOracle.json + - name: ChainlinkAggregator + file: ./abis/ChainlinkAggregator.json + eventHandlers: + - event: Deposit(indexed address,indexed address,uint256) + handler: handleDeposit + - event: Withdraw(indexed address,indexed address,uint256) + handler: handleWithdraw + - event: GenesisEnds() + handler: handleGenesisEnd + file: ./src/genesis.ts + + # Genesis - fxUSD/SILVER market (Metals Maiden Voyage) + - kind: ethereum + name: Genesis_fxUSD_SILVER + network: mainnet + source: + address: "0x66d18B9Dd5d1cd51957DFea0e0373b54E06118C8" # SILVER::fxUSD::genesis from harbor_v1.state + abi: Genesis + startBlock: 24271147 + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Deposit + - Withdrawal + - GenesisEnd + - UserHarborMarks + - UserList + - MarksMultiplier + - UserTotalMarks + abis: + - name: Genesis + file: ./abis/Genesis.json + - name: ERC20 + file: ./abis/ERC20.json + - name: WrappedPriceOracle + file: ./abis/WrappedPriceOracle.json + - name: ChainlinkAggregator + file: ./abis/ChainlinkAggregator.json + eventHandlers: + - event: Deposit(indexed address,indexed address,uint256) + handler: handleDeposit + - event: Withdraw(indexed address,indexed address,uint256) + handler: handleWithdraw + - event: GenesisEnds() + handler: handleGenesisEnd + file: ./src/genesis.ts + + # Genesis - stETH/SILVER market (Metals Maiden Voyage) + - kind: ethereum + name: Genesis_stETH_SILVER + network: mainnet + source: + address: "0x8f655Ca32A1Fa8032955989c19e91886F26439dc" # SILVER::stETH::genesis from harbor_v1.state + abi: Genesis + startBlock: 24271147 + mapping: + kind: ethereum/events + apiVersion: 0.0.7 + language: wasm/assemblyscript + entities: + - Deposit + - Withdrawal + - GenesisEnd + - UserHarborMarks + - UserList + - MarksMultiplier + - UserTotalMarks + abis: + - name: Genesis + file: ./abis/Genesis.json + - name: ERC20 + file: ./abis/ERC20.json + - name: WrappedPriceOracle + file: ./abis/WrappedPriceOracle.json + - name: ChainlinkAggregator + file: ./abis/ChainlinkAggregator.json + eventHandlers: + - event: Deposit(indexed address,indexed address,uint256) + handler: handleDeposit + - event: Withdraw(indexed address,indexed address,uint256) + handler: handleWithdraw + - event: GenesisEnds() + handler: handleGenesisEnd + file: ./src/genesis.ts + # Leveraged Token (hsSTETH-BTC) - sail token for BTC/stETH market # Note: haBTC is shared with BTC/fxUSD market, so we don't need to track it again - kind: ethereum diff --git a/yarn.lock b/yarn.lock index 580730da..6fffaa2f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -63,29 +63,14 @@ "@emnapi/wasi-threads" "1.1.0" tslib "^2.4.0" -"@emnapi/core@^1.5.0", "@emnapi/core@^1.7.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.8.1.tgz#fd9efe721a616288345ffee17a1f26ac5dd01349" - integrity sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg== - dependencies: - "@emnapi/wasi-threads" "1.1.0" - tslib "^2.4.0" - "@emnapi/runtime@^1.4.3": - version "1.5.0" - resolved "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz" - integrity sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ== - dependencies: - tslib "^2.4.0" - -"@emnapi/runtime@^1.5.0", "@emnapi/runtime@^1.7.1": version "1.8.1" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.1.tgz#550fa7e3c0d49c5fb175a116e8cd70614f9a22a5" + resolved "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz" integrity sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg== dependencies: tslib "^2.4.0" -"@emnapi/wasi-threads@1.1.0", "@emnapi/wasi-threads@^1.1.0": +"@emnapi/wasi-threads@1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz" integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== @@ -240,135 +225,17 @@ resolved "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz" integrity sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw== -"@img/sharp-darwin-arm64@0.34.4": - version "0.34.4" - resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.4.tgz" - integrity sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA== - optionalDependencies: - "@img/sharp-libvips-darwin-arm64" "1.2.3" - -"@img/sharp-darwin-x64@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.4.tgz#0ba2bd9dbf07f7300fab73305b787e66156f7752" - integrity sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg== - optionalDependencies: - "@img/sharp-libvips-darwin-x64" "1.2.3" - -"@img/sharp-libvips-darwin-arm64@1.2.3": - version "1.2.3" - resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.3.tgz" - integrity sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw== - -"@img/sharp-libvips-darwin-x64@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.3.tgz#c42ff786d4a1f42ef8929dba4a989dd5df6417f0" - integrity sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA== - -"@img/sharp-libvips-linux-arm64@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.3.tgz#c9073e5c4b629ee417f777db21c552910d84ed77" - integrity sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ== - -"@img/sharp-libvips-linux-arm@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.3.tgz#3cbc333fd6b8f224a14d69b03a1dd11df897c799" - integrity sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA== - -"@img/sharp-libvips-linux-ppc64@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.3.tgz#68e0e0076299f43d838468675674fabcc7161d16" - integrity sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg== - -"@img/sharp-libvips-linux-s390x@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.3.tgz#7da9ab11a50c0ca905979f0aae14a4ccffab27b2" - integrity sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w== - -"@img/sharp-libvips-linux-x64@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.3.tgz#3b162d6b190cf77926819040e09fb15eec42135e" - integrity sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg== - -"@img/sharp-libvips-linuxmusl-arm64@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.3.tgz#ac99576630dd8e33cb598d7c4586f6e0655912ea" - integrity sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw== - -"@img/sharp-libvips-linuxmusl-x64@1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.3.tgz#93e9495af7bf6c4e0d41dd71d0196c35c3753a1c" - integrity sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g== - -"@img/sharp-linux-arm64@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.4.tgz#0570ff1a4fa6e1d6779456fca8b5e8c18a6a9cf2" - integrity sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ== +"@img/sharp-darwin-arm64@0.34.5": + version "0.34.5" + resolved "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz" + integrity sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w== optionalDependencies: - "@img/sharp-libvips-linux-arm64" "1.2.3" + "@img/sharp-libvips-darwin-arm64" "1.2.4" -"@img/sharp-linux-arm@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.4.tgz#5f020d933f54f3fc49203d32c3b7dd0ec11ffcdb" - integrity sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA== - optionalDependencies: - "@img/sharp-libvips-linux-arm" "1.2.3" - -"@img/sharp-linux-ppc64@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.4.tgz#8d5775f6dc7e30ea3a1efa43798b7690bb5cb344" - integrity sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ== - optionalDependencies: - "@img/sharp-libvips-linux-ppc64" "1.2.3" - -"@img/sharp-linux-s390x@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.4.tgz#740aa5b369188ee2c1913b1015e7f830f4dfdb50" - integrity sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw== - optionalDependencies: - "@img/sharp-libvips-linux-s390x" "1.2.3" - -"@img/sharp-linux-x64@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.4.tgz#573ce4196b2d0771bba32acc13a37b7adc9b6212" - integrity sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A== - optionalDependencies: - "@img/sharp-libvips-linux-x64" "1.2.3" - -"@img/sharp-linuxmusl-arm64@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.4.tgz#3c91bc8348cc3b42b43c6fca14f9dbb5cb47bd0d" - integrity sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA== - optionalDependencies: - "@img/sharp-libvips-linuxmusl-arm64" "1.2.3" - -"@img/sharp-linuxmusl-x64@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.4.tgz#33de7d476ac9e2db7ef654331b54cc679b806bda" - integrity sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg== - optionalDependencies: - "@img/sharp-libvips-linuxmusl-x64" "1.2.3" - -"@img/sharp-wasm32@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.34.4.tgz#d617f7b3f851f899802298f360667c20605c0198" - integrity sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA== - dependencies: - "@emnapi/runtime" "^1.5.0" - -"@img/sharp-win32-arm64@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.4.tgz#38e2c8a88826eac647f7c3f99efefb39897a8f5c" - integrity sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA== - -"@img/sharp-win32-ia32@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.4.tgz#003a7eb0fdaba600790c3007cfd756e41a9cf749" - integrity sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw== - -"@img/sharp-win32-x64@0.34.4": - version "0.34.4" - resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.4.tgz#b19f1f88ace8bfc20784a0ad31767f3438e025d1" - integrity sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig== +"@img/sharp-libvips-darwin-arm64@1.2.4": + version "1.2.4" + resolved "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz" + integrity sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -510,14 +377,6 @@ readable-stream "^3.6.2" webextension-polyfill "^0.10.0" -"@metamask/rpc-errors@7.0.2": - version "7.0.2" - resolved "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-7.0.2.tgz" - integrity sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw== - dependencies: - "@metamask/utils" "^11.0.1" - fast-safe-stringify "^2.0.6" - "@metamask/rpc-errors@^6.2.1": version "6.4.0" resolved "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz" @@ -526,6 +385,14 @@ "@metamask/utils" "^9.0.0" fast-safe-stringify "^2.0.6" +"@metamask/rpc-errors@7.0.2": + version "7.0.2" + resolved "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-7.0.2.tgz" + integrity sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw== + dependencies: + "@metamask/utils" "^11.0.1" + fast-safe-stringify "^2.0.6" + "@metamask/safe-event-emitter@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz" @@ -656,24 +523,6 @@ resolved "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-3.1.2.tgz" integrity sha512-JEW4DEtBzfe8HvUYecLU9e6+XJnKDlUAIve8FvPzF3Kzs6Xo/KuZkZJsDH0wJXl/qEZbeeE7edxDNY3kMs39hQ== -"@napi-rs/wasm-runtime@^0.2.11": - version "0.2.12" - resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz#3e78a8b96e6c33a6c517e1894efbd5385a7cb6f2" - integrity sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ== - dependencies: - "@emnapi/core" "^1.4.3" - "@emnapi/runtime" "^1.4.3" - "@tybys/wasm-util" "^0.10.0" - -"@napi-rs/wasm-runtime@^1.0.5": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz#c3705ab549d176b8dc5172723d6156c3dc426af2" - integrity sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A== - dependencies: - "@emnapi/core" "^1.7.1" - "@emnapi/runtime" "^1.7.1" - "@tybys/wasm-util" "^0.10.1" - "@next/env@15.5.9": version "15.5.9" resolved "https://registry.npmjs.org/@next/env/-/env-15.5.9.tgz" @@ -691,78 +540,85 @@ resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.7.tgz" integrity sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw== -"@next/swc-darwin-x64@15.5.7": - version "15.5.7" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.7.tgz#18009e9fcffc5c0687cc9db24182ddeac56280d9" - integrity sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg== - -"@next/swc-linux-arm64-gnu@15.5.7": - version "15.5.7" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.7.tgz#fe7c7e08264cf522d4e524299f6d3e63d68d579a" - integrity sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA== - -"@next/swc-linux-arm64-musl@15.5.7": - version "15.5.7" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.7.tgz#94228fe293475ec34a5a54284e1056876f43a3cf" - integrity sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw== - -"@next/swc-linux-x64-gnu@15.5.7": - version "15.5.7" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.7.tgz#078c71201dfe7fcfb8fa6dc92aae6c94bc011cdc" - integrity sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw== - -"@next/swc-linux-x64-musl@15.5.7": - version "15.5.7" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.7.tgz#72947f5357f9226292353e0bb775643da3c7a182" - integrity sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA== - -"@next/swc-win32-arm64-msvc@15.5.7": - version "15.5.7" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.7.tgz#397b912cd51c6a80e32b9c0507ecd82514353941" - integrity sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ== - -"@next/swc-win32-x64-msvc@15.5.7": - version "15.5.7" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.7.tgz#e02b543d9dc6c1631d4ac239cb1177245dfedfe4" - integrity sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw== - -"@noble/ciphers@1.2.1": +"@noble/ciphers@^1.0.0", "@noble/ciphers@1.2.1": version "1.2.1" resolved "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz" integrity sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA== -"@noble/ciphers@1.3.0", "@noble/ciphers@^1.3.0": +"@noble/ciphers@^1.3.0", "@noble/ciphers@1.3.0": version "1.3.0" resolved "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz" integrity sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw== -"@noble/curves@1.4.2", "@noble/curves@1.8.0", "@noble/curves@1.8.1", "@noble/curves@1.9.1", "@noble/curves@1.9.2", "@noble/curves@^1.6.0", "@noble/curves@^1.9.1", "@noble/curves@~1.4.0", "@noble/curves@~1.8.1", "@noble/curves@~1.9.0": +"@noble/curves@^1.6.0", "@noble/curves@~1.8.1", "@noble/curves@1.8.1": + version "1.8.1" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz" + integrity sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ== + dependencies: + "@noble/hashes" "1.7.1" + +"@noble/curves@^1.9.1": version "1.9.7" resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz" integrity sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw== dependencies: "@noble/hashes" "1.8.0" -"@noble/hashes@1.4.0", "@noble/hashes@^1.3.1", "@noble/hashes@~1.4.0": +"@noble/curves@~1.4.0": + version "1.4.2" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz" + integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/curves@~1.9.0", "@noble/curves@1.9.2": + version "1.9.2" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz" + integrity sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g== + dependencies: + "@noble/hashes" "1.8.0" + +"@noble/curves@1.4.2": + version "1.4.2" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz" + integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/curves@1.8.0": + version "1.8.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz" + integrity sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ== + dependencies: + "@noble/hashes" "1.7.0" + +"@noble/curves@1.9.1": + version "1.9.1" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz" + integrity sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA== + dependencies: + "@noble/hashes" "1.8.0" + +"@noble/hashes@^1.3.1", "@noble/hashes@~1.4.0", "@noble/hashes@1.4.0": version "1.4.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== -"@noble/hashes@1.7.0": - version "1.7.0" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz" - integrity sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w== - -"@noble/hashes@1.7.1", "@noble/hashes@^1.5.0", "@noble/hashes@~1.7.1": +"@noble/hashes@^1.5.0", "@noble/hashes@~1.7.1", "@noble/hashes@1.7.1": version "1.7.1" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz" integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== -"@noble/hashes@1.8.0", "@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0": +"@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0", "@noble/hashes@1.8.0": version "1.8.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== +"@noble/hashes@1.7.0": + version "1.7.0" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz" + integrity sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w== + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -771,7 +627,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1266,26 +1122,7 @@ "@walletconnect/logger" "2.1.2" zod "3.22.4" -"@reown/appkit@1.7.8": - version "1.7.8" - resolved "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.8.tgz" - integrity sha512-51kTleozhA618T1UvMghkhKfaPcc9JlKwLJ5uV+riHyvSoWPKPRIa5A6M1Wano5puNyW0s3fwywhyqTHSilkaA== - dependencies: - "@reown/appkit-common" "1.7.8" - "@reown/appkit-controllers" "1.7.8" - "@reown/appkit-pay" "1.7.8" - "@reown/appkit-polyfills" "1.7.8" - "@reown/appkit-scaffold-ui" "1.7.8" - "@reown/appkit-ui" "1.7.8" - "@reown/appkit-utils" "1.7.8" - "@reown/appkit-wallet" "1.7.8" - "@walletconnect/types" "2.21.0" - "@walletconnect/universal-provider" "2.21.0" - bs58 "6.0.0" - valtio "1.13.2" - viem ">=2.29.0" - -"@reown/appkit@1.8.8", "@reown/appkit@^1.7.15": +"@reown/appkit@^1.7.15", "@reown/appkit@1.8.8": version "1.8.8" resolved "https://registry.npmjs.org/@reown/appkit/-/appkit-1.8.8.tgz" integrity sha512-2p6XhBjHRjePSEoaZ5ndsMkIIhiS8lyriQI+BWSn3Y3ed3Kd1Ykd7AKOQVgZXQKcFDfyA//vohWlI90GDaVk8g== @@ -1306,6 +1143,25 @@ optionalDependencies: "@lit/react" "1.0.8" +"@reown/appkit@1.7.8": + version "1.7.8" + resolved "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.8.tgz" + integrity sha512-51kTleozhA618T1UvMghkhKfaPcc9JlKwLJ5uV+riHyvSoWPKPRIa5A6M1Wano5puNyW0s3fwywhyqTHSilkaA== + dependencies: + "@reown/appkit-common" "1.7.8" + "@reown/appkit-controllers" "1.7.8" + "@reown/appkit-pay" "1.7.8" + "@reown/appkit-polyfills" "1.7.8" + "@reown/appkit-scaffold-ui" "1.7.8" + "@reown/appkit-ui" "1.7.8" + "@reown/appkit-utils" "1.7.8" + "@reown/appkit-wallet" "1.7.8" + "@walletconnect/types" "2.21.0" + "@walletconnect/universal-provider" "2.21.0" + bs58 "6.0.0" + valtio "1.13.2" + viem ">=2.29.0" + "@rtsao/scc@^1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz" @@ -1316,7 +1172,7 @@ resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.12.0.tgz" integrity sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw== -"@safe-global/safe-apps-provider@0.18.6", "@safe-global/safe-apps-provider@^0.18.6": +"@safe-global/safe-apps-provider@^0.18.6", "@safe-global/safe-apps-provider@0.18.6": version "0.18.6" resolved "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.6.tgz" integrity sha512-4LhMmjPWlIO8TTDC2AwLk44XKXaK6hfBTWyljDm0HQ6TWlOEijVWNrt2s3OCVMSxlXAcEzYfqyu1daHZooTC2Q== @@ -1324,7 +1180,7 @@ "@safe-global/safe-apps-sdk" "^9.1.0" events "^3.3.0" -"@safe-global/safe-apps-sdk@9.1.0", "@safe-global/safe-apps-sdk@^9.1.0": +"@safe-global/safe-apps-sdk@^9.1.0", "@safe-global/safe-apps-sdk@9.1.0": version "9.1.0" resolved "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz" integrity sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q== @@ -1337,7 +1193,7 @@ resolved "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.23.1.tgz" integrity sha512-6ORQfwtEJYpalCeVO21L4XXGSdbEMfyp2hEv6cP82afKXSwvse6d3sdelgaPWUxHIsFRkWvHDdzh8IyyKHZKxw== -"@scure/base@1.2.6", "@scure/base@^1.1.3", "@scure/base@~1.2.2", "@scure/base@~1.2.4", "@scure/base@~1.2.5": +"@scure/base@^1.1.3", "@scure/base@~1.2.2", "@scure/base@~1.2.4", "@scure/base@~1.2.5", "@scure/base@1.2.6": version "1.2.6" resolved "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz" integrity sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg== @@ -1347,16 +1203,7 @@ resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz" integrity sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg== -"@scure/bip32@1.4.0": - version "1.4.0" - resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz" - integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg== - dependencies: - "@noble/curves" "~1.4.0" - "@noble/hashes" "~1.4.0" - "@scure/base" "~1.1.6" - -"@scure/bip32@1.6.2", "@scure/bip32@^1.5.0": +"@scure/bip32@^1.5.0", "@scure/bip32@1.6.2": version "1.6.2" resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz" integrity sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw== @@ -1365,7 +1212,7 @@ "@noble/hashes" "~1.7.1" "@scure/base" "~1.2.2" -"@scure/bip32@1.7.0", "@scure/bip32@^1.7.0": +"@scure/bip32@^1.7.0", "@scure/bip32@1.7.0": version "1.7.0" resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz" integrity sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw== @@ -1374,15 +1221,16 @@ "@noble/hashes" "~1.8.0" "@scure/base" "~1.2.5" -"@scure/bip39@1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz" - integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ== +"@scure/bip32@1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz" + integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg== dependencies: + "@noble/curves" "~1.4.0" "@noble/hashes" "~1.4.0" "@scure/base" "~1.1.6" -"@scure/bip39@1.5.4", "@scure/bip39@^1.4.0": +"@scure/bip39@^1.4.0", "@scure/bip39@1.5.4": version "1.5.4" resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz" integrity sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA== @@ -1390,7 +1238,7 @@ "@noble/hashes" "~1.7.1" "@scure/base" "~1.2.4" -"@scure/bip39@1.6.0", "@scure/bip39@^1.6.0": +"@scure/bip39@^1.6.0", "@scure/bip39@1.6.0": version "1.6.0" resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz" integrity sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A== @@ -1398,6 +1246,14 @@ "@noble/hashes" "~1.8.0" "@scure/base" "~1.2.5" +"@scure/bip39@1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz" + integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ== + dependencies: + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + "@socket.io/component-emitter@~3.1.0": version "3.1.2" resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz" @@ -1410,7 +1266,7 @@ dependencies: "@solana/errors" "5.1.0" -"@solana/codecs-numbers@5.1.0", "@solana/codecs-numbers@^5.0.0": +"@solana/codecs-numbers@^5.0.0", "@solana/codecs-numbers@5.1.0": version "5.1.0" resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-5.1.0.tgz" integrity sha512-Ea5/9yjDNOrDZcI40UGzzi6Aq1JNsmzM4m5pOk6Xb3JRZ0YdKOv/MwuCqb6jRgzZ7SQjHhkfGL43kHLJA++bOw== @@ -1435,13 +1291,6 @@ chalk "5.6.2" commander "14.0.2" -"@swc/helpers@0.5.15": - version "0.5.15" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz" - integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g== - dependencies: - tslib "^2.8.0" - "@swc/helpers@^0.5.0": version "0.5.17" resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz" @@ -1449,6 +1298,13 @@ dependencies: tslib "^2.8.0" +"@swc/helpers@0.5.15": + version "0.5.15" + resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz" + integrity sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g== + dependencies: + tslib "^2.8.0" + "@tailwindcss/node@4.1.14": version "4.1.14" resolved "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.14.tgz" @@ -1462,73 +1318,11 @@ source-map-js "^1.2.1" tailwindcss "4.1.14" -"@tailwindcss/oxide-android-arm64@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.14.tgz#8903678d75715d913b8f7c5f6fa0517af83b5111" - integrity sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ== - "@tailwindcss/oxide-darwin-arm64@4.1.14": version "4.1.14" resolved "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.14.tgz" integrity sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA== -"@tailwindcss/oxide-darwin-x64@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.14.tgz#ac1af82da01299143129fdf615f6fcc046b4094e" - integrity sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw== - -"@tailwindcss/oxide-freebsd-x64@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.14.tgz#a955cedf9b020147d222f92490e9d331db9b5c36" - integrity sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw== - -"@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.14.tgz#5474bee4d377144107f3f0198a3c0225a46c02e6" - integrity sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw== - -"@tailwindcss/oxide-linux-arm64-gnu@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.14.tgz#b06ca140083b353735414e32f7a8786f55ce2dd6" - integrity sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w== - -"@tailwindcss/oxide-linux-arm64-musl@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.14.tgz#85f4cabea2a07609274d1f747bd098c5da2a7cd2" - integrity sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ== - -"@tailwindcss/oxide-linux-x64-gnu@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.14.tgz#0d7fbf91763a2f6886044a050298489107d120bd" - integrity sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg== - -"@tailwindcss/oxide-linux-x64-musl@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.14.tgz#93578713064ba4c16df517df01b3c546ecc9878d" - integrity sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q== - -"@tailwindcss/oxide-wasm32-wasi@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.14.tgz#9e55999129a952a3dcc2196cc9cc55248cc1b1fe" - integrity sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ== - dependencies: - "@emnapi/core" "^1.5.0" - "@emnapi/runtime" "^1.5.0" - "@emnapi/wasi-threads" "^1.1.0" - "@napi-rs/wasm-runtime" "^1.0.5" - "@tybys/wasm-util" "^0.10.1" - tslib "^2.4.0" - -"@tailwindcss/oxide-win32-arm64-msvc@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.14.tgz#097c00bfc60cd84943a9cb5e853b25fa25525c77" - integrity sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA== - -"@tailwindcss/oxide-win32-x64-msvc@4.1.14": - version "4.1.14" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.14.tgz#eaa49fa930ce16b23478d3b58c079a40ac0b6622" - integrity sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA== - "@tailwindcss/oxide@4.1.14": version "4.1.14" resolved "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.14.tgz" @@ -1561,12 +1355,12 @@ postcss "^8.4.41" tailwindcss "4.1.14" -"@tanstack/query-core@5.90.2": +"@tanstack/query-core@>=5.0.0", "@tanstack/query-core@5.90.2": version "5.90.2" resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.2.tgz" integrity sha512-k/TcR3YalnzibscALLwxeiLUub6jN5EDLwKDiO7q5f4ICEoptJ+n9+7vcEFy5/x/i6Q+Lb/tXrsKCggf5uQJXQ== -"@tanstack/react-query@^5.83.0": +"@tanstack/react-query@^5.83.0", "@tanstack/react-query@>=5.0.0", "@tanstack/react-query@>=5.59.0": version "5.90.2" resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.2.tgz" integrity sha512-CLABiR+h5PYfOWr/z+vWFt5VsOA2ekQeRQBFSKlcoW6Ndx/f8rfyVmq4LbgOM4GG2qtxAxjLYLOpCNTYm4uKzw== @@ -1585,9 +1379,9 @@ resolved "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz" integrity sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA== -"@tybys/wasm-util@^0.10.0", "@tybys/wasm-util@^0.10.1": +"@tybys/wasm-util@^0.10.0": version "0.10.1" - resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414" + resolved "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz" integrity sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg== dependencies: tslib "^2.4.0" @@ -1677,12 +1471,12 @@ dependencies: undici-types "~6.21.0" -"@types/react-dom@^19.1.9": +"@types/react-dom@*", "@types/react-dom@^19.1.9": version "19.1.11" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.11.tgz" integrity sha512-3BKc/yGdNTYQVVw4idqHtSOcFsgGuBbMveKCOgF8wQ5QtrYOc3jDIlzg3jef04zcXFIHLelyGlj0T+BJ8+KN+w== -"@types/react@^19.1.13": +"@types/react@*", "@types/react@^19.0.0", "@types/react@^19.1.13", "@types/react@>=16.8", "@types/react@>=18.0.0", "@types/react@17 || 18 || 19": version "19.1.17" resolved "https://registry.npmjs.org/@types/react/-/react-19.1.17.tgz" integrity sha512-Qec1E3mhALmaspIrhWt9jkQMNdw6bReVu64mjvhbhq2NFPftLPVr+l1SZgmw/66WwBNpDh7ao5AT6gF5v41PFA== @@ -1716,7 +1510,7 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser@^6.0.0": +"@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser@^6.0.0", "@typescript-eslint/parser@^6.0.0 || ^6.0.0-alpha": version "6.21.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz" integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== @@ -1790,104 +1584,12 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== -"@unrs/resolver-binding-android-arm-eabi@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz#9f5b04503088e6a354295e8ea8fe3cb99e43af81" - integrity sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw== - -"@unrs/resolver-binding-android-arm64@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz#7414885431bd7178b989aedc4d25cccb3865bc9f" - integrity sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g== - "@unrs/resolver-binding-darwin-arm64@1.11.1": version "1.11.1" resolved "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz" integrity sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g== -"@unrs/resolver-binding-darwin-x64@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz#fd4d81257b13f4d1a083890a6a17c00de571f0dc" - integrity sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ== - -"@unrs/resolver-binding-freebsd-x64@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz#d2513084d0f37c407757e22f32bd924a78cfd99b" - integrity sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw== - -"@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz#844d2605d057488d77fab09705f2866b86164e0a" - integrity sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw== - -"@unrs/resolver-binding-linux-arm-musleabihf@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz#204892995cefb6bd1d017d52d097193bc61ddad3" - integrity sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw== - -"@unrs/resolver-binding-linux-arm64-gnu@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz#023eb0c3aac46066a10be7a3f362e7b34f3bdf9d" - integrity sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ== - -"@unrs/resolver-binding-linux-arm64-musl@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz#9e6f9abb06424e3140a60ac996139786f5d99be0" - integrity sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w== - -"@unrs/resolver-binding-linux-ppc64-gnu@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz#b111417f17c9d1b02efbec8e08398f0c5527bb44" - integrity sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA== - -"@unrs/resolver-binding-linux-riscv64-gnu@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz#92ffbf02748af3e99873945c9a8a5ead01d508a9" - integrity sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ== - -"@unrs/resolver-binding-linux-riscv64-musl@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz#0bec6f1258fc390e6b305e9ff44256cb207de165" - integrity sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew== - -"@unrs/resolver-binding-linux-s390x-gnu@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz#577843a084c5952f5906770633ccfb89dac9bc94" - integrity sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg== - -"@unrs/resolver-binding-linux-x64-gnu@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz#36fb318eebdd690f6da32ac5e0499a76fa881935" - integrity sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w== - -"@unrs/resolver-binding-linux-x64-musl@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz#bfb9af75f783f98f6a22c4244214efe4df1853d6" - integrity sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA== - -"@unrs/resolver-binding-wasm32-wasi@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz#752c359dd875684b27429500d88226d7cc72f71d" - integrity sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ== - dependencies: - "@napi-rs/wasm-runtime" "^0.2.11" - -"@unrs/resolver-binding-win32-arm64-msvc@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz#ce5735e600e4c2fbb409cd051b3b7da4a399af35" - integrity sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw== - -"@unrs/resolver-binding-win32-ia32-msvc@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz#72fc57bc7c64ec5c3de0d64ee0d1810317bc60a6" - integrity sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ== - -"@unrs/resolver-binding-win32-x64-msvc@1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz#538b1e103bf8d9864e7b85cc96fa8d6fb6c40777" - integrity sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g== - -"@wagmi/connectors@5.11.2", "@wagmi/connectors@>=5.9.9": +"@wagmi/connectors@>=5.9.9", "@wagmi/connectors@5.11.2": version "5.11.2" resolved "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.11.2.tgz" integrity sha512-OkiElOI8xXGPDZE5UdG6NgDT3laSkEh9llX1DDapUnfnKecK3Tr/HUf5YzgwDhEoox8mdxp+8ZCjtnTKz56SdA== @@ -1902,7 +1604,7 @@ cbw-sdk "npm:@coinbase/wallet-sdk@3.9.3" porto "0.2.19" -"@wagmi/core@2.21.2": +"@wagmi/core@>=2.16.3", "@wagmi/core@>=2.20.3", "@wagmi/core@2.21.2": version "2.21.2" resolved "https://registry.npmjs.org/@wagmi/core/-/core-2.21.2.tgz" integrity sha512-Rp4waam2z0FQUDINkJ91jq38PI5wFUHCv1YBL2LXzAQswaEk1ZY8d6+WG3vYGhFHQ22DXy2AlQ8IWmj+2EG3zQ== @@ -2016,7 +1718,7 @@ "@walletconnect/utils" "2.21.1" events "3.3.0" -"@walletconnect/events@1.0.1", "@walletconnect/events@^1.0.1": +"@walletconnect/events@^1.0.1", "@walletconnect/events@1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz" integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== @@ -2052,7 +1754,7 @@ "@walletconnect/safe-json" "^1.0.2" events "^3.3.0" -"@walletconnect/jsonrpc-types@1.0.4", "@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3": +"@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3", "@walletconnect/jsonrpc-types@1.0.4": version "1.0.4" resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz" integrity sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ== @@ -2060,7 +1762,7 @@ events "^3.3.0" keyvaluestorage-interface "^1.0.0" -"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.8": +"@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.8", "@walletconnect/jsonrpc-utils@1.0.8": version "1.0.8" resolved "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz" integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== @@ -2114,7 +1816,7 @@ "@walletconnect/time" "^1.0.2" uint8arrays "^3.0.0" -"@walletconnect/safe-json@1.0.2", "@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": +"@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2", "@walletconnect/safe-json@1.0.2": version "1.0.2" resolved "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz" integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== @@ -2166,7 +1868,7 @@ "@walletconnect/utils" "2.21.7" events "3.3.0" -"@walletconnect/time@1.0.2", "@walletconnect/time@^1.0.2": +"@walletconnect/time@^1.0.2", "@walletconnect/time@1.0.2": version "1.0.2" resolved "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz" integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== @@ -2335,7 +2037,7 @@ uint8arrays "3.1.1" viem "2.31.0" -"@walletconnect/window-getters@1.0.1", "@walletconnect/window-getters@^1.0.1": +"@walletconnect/window-getters@^1.0.1", "@walletconnect/window-getters@1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz" integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== @@ -2370,6 +2072,11 @@ "@web3icons/common" "0.11.19" react "^18.2.0" +abitype@^1.0.6, abitype@^1.0.9: + version "1.1.1" + resolved "https://registry.npmjs.org/abitype/-/abitype-1.1.1.tgz" + integrity sha512-Loe5/6tAgsBukY95eGaPSDmQHIjRZYQq8PB1MpsNccDIK8WiV+Uw6WzaIXipvaxTEL2yEB0OpEaQv3gs8pkS9Q== + abitype@1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz" @@ -2380,17 +2087,12 @@ abitype@1.1.0: resolved "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz" integrity sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A== -abitype@^1.0.6, abitype@^1.0.9: - version "1.1.1" - resolved "https://registry.npmjs.org/abitype/-/abitype-1.1.1.tgz" - integrity sha512-Loe5/6tAgsBukY95eGaPSDmQHIjRZYQq8PB1MpsNccDIK8WiV+Uw6WzaIXipvaxTEL2yEB0OpEaQv3gs8pkS9Q== - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: version "8.15.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz" integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== @@ -2429,7 +2131,17 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: +ansi-styles@^6.0.0: + version "6.2.3" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + +ansi-styles@^6.1.0: + version "6.2.3" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + +ansi-styles@^6.2.1: version "6.2.3" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz" integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== @@ -2683,7 +2395,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.24.4: +browserslist@^4.24.4, "browserslist@>= 4.21.0": version "4.26.3" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz" integrity sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w== @@ -2701,7 +2413,7 @@ bs58@6.0.0: dependencies: base-x "^5.0.0" -buffer@6.0.3, buffer@^6.0.3: +buffer@^6.0.3, buffer@6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -2709,7 +2421,7 @@ buffer@6.0.3, buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -bufferutil@^4.0.8: +bufferutil@^4.0.1, bufferutil@^4.0.8: version "4.0.9" resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz" integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== @@ -2777,11 +2489,6 @@ caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.300017 preact "^10.16.0" sha.js "^2.4.11" -chalk@5.6.2, chalk@^5.4.1: - version "5.6.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz" - integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - chalk@^4.0.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" @@ -2790,6 +2497,16 @@ chalk@^4.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.4.1: + version "5.6.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + +chalk@5.6.2: + version "5.6.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chokidar@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" @@ -2853,7 +2570,7 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clsx@1.2.1, clsx@^1.2.1: +clsx@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== @@ -2863,6 +2580,11 @@ clsx@^2.0.0, clsx@^2.1.1: resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== +clsx@1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + color-convert@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" @@ -2880,11 +2602,6 @@ colorette@^2.0.20, colorette@^2.0.7: resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -commander@14.0.2: - version "14.0.2" - resolved "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz" - integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== - commander@^13.1.0: version "13.1.0" resolved "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz" @@ -2895,6 +2612,11 @@ commander@^4.0.0: resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@14.0.2: + version "14.0.2" + resolved "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz" + integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" @@ -2955,7 +2677,7 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -"d3-array@2 - 3", "d3-array@2.10.0 - 3", d3-array@^3.1.6: +d3-array@^3.1.6, "d3-array@2 - 3", "d3-array@2.10.0 - 3": version "3.2.4" resolved "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz" integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== @@ -2977,7 +2699,7 @@ d3-ease@^3.0.1: resolved "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz" integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== -"d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: +d3-interpolate@^3.0.1, "d3-interpolate@1.2.0 - 3": version "3.0.1" resolved "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz" integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== @@ -3014,7 +2736,7 @@ d3-shape@^3.1.0: dependencies: d3-time "1 - 3" -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@^3.0.0: +d3-time@^3.0.0, "d3-time@1 - 3", "d3-time@2.1.1 - 3": version "3.1.0" resolved "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz" integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== @@ -3075,13 +2797,6 @@ dayjs@1.11.13: resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz" integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== -debug@4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - debug@^3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" @@ -3096,13 +2811,27 @@ debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0: dependencies: ms "^2.1.3" -debug@~4.3.1, debug@~4.3.2: +debug@~4.3.1: + version "4.3.7" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + +debug@~4.3.2: version "4.3.7" resolved "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz" integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== dependencies: ms "^2.1.3" +debug@4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" @@ -3156,15 +2885,15 @@ destr@^2.0.3, destr@^2.0.5: resolved "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz" integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== -detect-browser@5.3.0, detect-browser@^5.2.0: +detect-browser@^5.2.0, detect-browser@5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz" integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== -detect-libc@^2.0.3, detect-libc@^2.0.4, detect-libc@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz" - integrity sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw== +detect-libc@^2.0.3, detect-libc@^2.0.4, detect-libc@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== detect-node-es@^1.1.0: version "1.1.0" @@ -3239,7 +2968,7 @@ eastasianwidth@^0.2.0: resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -eciesjs@^0.4.11: +eciesjs@*, eciesjs@^0.4.11: version "0.4.15" resolved "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.15.tgz" integrity sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA== @@ -3500,7 +3229,7 @@ eslint-module-utils@^2.12.1: dependencies: debug "^3.2.7" -eslint-plugin-import@^2.31.0: +eslint-plugin-import@*, eslint-plugin-import@^2.31.0: version "2.32.0" resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz" integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== @@ -3588,7 +3317,7 @@ eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.56.0: +eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0 || ^9.0.0", eslint@^8.56.0: version "8.57.1" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz" integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== @@ -3717,17 +3446,17 @@ eventemitter2@^6.4.9: resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz" integrity sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg== -eventemitter3@5.0.1, eventemitter3@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" - integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - eventemitter3@^4.0.1: version "4.0.7" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@3.3.0, events@^3.3.0: +eventemitter3@^5.0.1, eventemitter3@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +events@^3.3.0, events@3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -3770,7 +3499,7 @@ fast-equals@^5.0.1: resolved "https://registry.npmjs.org/fast-equals/-/fast-equals-5.3.2.tgz" integrity sha512-6rxyATwPCkaFIL3JLqw8qXqMpIZ942pTX/tbQFkRsDGblS8tNGtlUauA/+mt6RUfqn/4MoEr+WDkYoIQbibWuQ== -fast-glob@3.3.1, fast-glob@^3.2.9: +fast-glob@^3.2.9, fast-glob@3.3.1: version "3.3.1" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -4009,7 +3738,7 @@ get-tsconfig@^4.10.0: dependencies: resolve-pkg-maps "^1.0.0" -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -4021,7 +3750,14 @@ glob-parent@^6.0.2: resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: - is-glob "^4.0.3" + is-glob "^4.0.3" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" glob@^10.3.10: version "10.5.0" @@ -4172,7 +3908,7 @@ husky@^9.1.7: resolved "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz" integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== -idb-keyval@6.2.1, idb-keyval@^6.2.1: +idb-keyval@^6.2.1, idb-keyval@6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz" integrity sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== @@ -4208,7 +3944,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4520,7 +4256,7 @@ jiti@^1.21.7: resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz" integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== -jiti@^2.6.0: +jiti@^2.6.0, jiti@>=1.21.0: version "2.6.1" resolved "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz" integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== @@ -4633,51 +4369,6 @@ lightningcss-darwin-arm64@1.30.1: resolved "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz" integrity sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ== -lightningcss-darwin-x64@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz#e81105d3fd6330860c15fe860f64d39cff5fbd22" - integrity sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA== - -lightningcss-freebsd-x64@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz#a0e732031083ff9d625c5db021d09eb085af8be4" - integrity sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig== - -lightningcss-linux-arm-gnueabihf@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz#1f5ecca6095528ddb649f9304ba2560c72474908" - integrity sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q== - -lightningcss-linux-arm64-gnu@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz#eee7799726103bffff1e88993df726f6911ec009" - integrity sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw== - -lightningcss-linux-arm64-musl@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz#f2e4b53f42892feeef8f620cbb889f7c064a7dfe" - integrity sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ== - -lightningcss-linux-x64-gnu@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz#2fc7096224bc000ebb97eea94aea248c5b0eb157" - integrity sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw== - -lightningcss-linux-x64-musl@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz#66dca2b159fd819ea832c44895d07e5b31d75f26" - integrity sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ== - -lightningcss-win32-arm64-msvc@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz#7d8110a19d7c2d22bfdf2f2bb8be68e7d1b69039" - integrity sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA== - -lightningcss-win32-x64-msvc@1.30.1: - version "1.30.1" - resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz#fd7dd008ea98494b85d24b4bea016793f2e0e352" - integrity sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg== - lightningcss@1.30.1: version "1.30.1" resolved "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz" @@ -4750,7 +4441,7 @@ lit-html@^3.3.0: dependencies: "@types/trusted-types" "^2.0.2" -lit@3.3.0, lit@^3: +lit@^3, lit@3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/lit/-/lit-3.3.0.tgz" integrity sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw== @@ -4856,14 +4547,21 @@ mimic-function@^5.0.0: resolved "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz" integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^3.0.5: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: - brace-expansion "^2.0.1" + brace-expansion "^1.1.7" + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -4877,6 +4575,13 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" @@ -4894,7 +4599,7 @@ minizlib@^3.1.0: dependencies: minipass "^7.1.2" -mipd@0.0.7, mipd@^0.0.7: +mipd@^0.0.7, mipd@0.0.7: version "0.0.7" resolved "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz" integrity sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg== @@ -4919,16 +4624,16 @@ motion@^12.23.16: framer-motion "^12.23.22" tslib "^2.4.0" -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + multiformats@^9.4.2: version "9.9.0" resolved "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz" @@ -4958,7 +4663,7 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -next@^15.5.9: +next@^15.5.9, next@>=13.2.0: version "15.5.9" resolved "https://registry.npmjs.org/next/-/next-15.5.9.tgz" integrity sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg== @@ -5186,6 +4891,20 @@ own-keys@^1.0.1: object-keys "^1.1.1" safe-push-apply "^1.0.0" +ox@^0.9.6: + version "0.9.8" + resolved "https://registry.npmjs.org/ox/-/ox-0.9.8.tgz" + integrity sha512-bedy2pidGW8/XKVlXiAo/sIJxO4RAY9DsLyzZ7ppzGdPrECjS/7RN26CDoeABkbCtZWtGH5k/+Sx/KD/8J3xUQ== + dependencies: + "@adraffy/ens-normalize" "^1.11.0" + "@noble/ciphers" "^1.3.0" + "@noble/curves" "1.9.1" + "@noble/hashes" "^1.8.0" + "@scure/bip32" "^1.7.0" + "@scure/bip39" "^1.6.0" + abitype "^1.0.9" + eventemitter3 "5.0.1" + ox@0.6.7: version "0.6.7" resolved "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz" @@ -5240,20 +4959,6 @@ ox@0.9.6: abitype "^1.0.9" eventemitter3 "5.0.1" -ox@^0.9.6: - version "0.9.8" - resolved "https://registry.npmjs.org/ox/-/ox-0.9.8.tgz" - integrity sha512-bedy2pidGW8/XKVlXiAo/sIJxO4RAY9DsLyzZ7ppzGdPrECjS/7RN26CDoeABkbCtZWtGH5k/+Sx/KD/8J3xUQ== - dependencies: - "@adraffy/ens-normalize" "^1.11.0" - "@noble/ciphers" "^1.3.0" - "@noble/curves" "1.9.1" - "@noble/hashes" "^1.8.0" - "@scure/bip32" "^1.7.0" - "@scure/bip39" "^1.6.0" - abitype "^1.0.9" - eventemitter3 "5.0.1" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -5347,7 +5052,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -picomatch@^4.0.3: +"picomatch@^3 || ^4", picomatch@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== @@ -5508,6 +5213,15 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== +postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.35, postcss@^8.4.41, postcss@^8.4.47, postcss@>=8.0.9: + version "8.5.6" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" + integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== + dependencies: + nanoid "^3.3.11" + picocolors "^1.1.1" + source-map-js "^1.2.1" + postcss@8.4.31: version "8.4.31" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz" @@ -5517,16 +5231,7 @@ postcss@8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.4.35, postcss@^8.4.41, postcss@^8.4.47: - version "8.5.6" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -preact@10.24.2, preact@^10.16.0: +preact@^10.16.0, preact@10.24.2: version "10.24.2" resolved "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz" integrity sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q== @@ -5555,16 +5260,16 @@ prop-types@^15.6.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" -proxy-compare@2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.6.0.tgz" - integrity sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw== - proxy-compare@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz" integrity sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q== +proxy-compare@2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.6.0.tgz" + integrity sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw== + pump@^3.0.0: version "3.0.3" resolved "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz" @@ -5613,7 +5318,7 @@ radix3@^1.1.2: resolved "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz" integrity sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA== -react-dom@^19.1.1: +"react-dom@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react-dom@^18 || ^19 || ^19.0.0-rc", "react-dom@^18.0.0 || ^19.0.0", "react-dom@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react-dom@^19.1.1, react-dom@>=16.6.0, react-dom@>=16.8.0: version "19.1.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz" integrity sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw== @@ -5681,17 +5386,24 @@ react-transition-group@^4.4.5: loose-envify "^1.4.0" prop-types "^15.6.2" -react@^18.2.0: +react@*, "react@^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", "react@^18 || ^19", "react@^18 || ^19 || ^19.0.0-rc", "react@^18.0.0 || ^19.0.0", "react@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react@^19.1.1, "react@>= 16 || ^19.0.0-rc", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0", react@>=16.6.0, react@>=16.8.0, react@>=18, react@>=18.0.0: + version "19.1.1" + resolved "https://registry.npmjs.org/react/-/react-19.1.1.tgz" + integrity sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ== + +"react@^16.8.0 || ^17.0.0 || ^18.0.0", react@>=16.8: version "18.3.1" resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" -react@^19.1.1: - version "19.1.1" - resolved "https://registry.npmjs.org/react/-/react-19.1.1.tgz" - integrity sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ== +react@^18.2.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" read-cache@^1.0.0: version "1.0.0" @@ -5909,16 +5621,21 @@ secure-json-parse@^4.0.0: resolved "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-4.0.0.tgz" integrity sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA== -semver@7.7.2, semver@^7.3.8, semver@^7.5.4, semver@^7.7.1, semver@^7.7.2: - version "7.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz" - integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== - semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +semver@^7.3.8, semver@^7.5.4, semver@^7.7.1, semver@7.7.2: + version "7.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + +semver@^7.7.3: + version "7.7.4" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz" + integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== + set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" @@ -5964,37 +5681,39 @@ sha.js@^2.4.11: safe-buffer "^5.2.1" to-buffer "^1.2.0" -sharp@^0.34.3: - version "0.34.4" - resolved "https://registry.npmjs.org/sharp/-/sharp-0.34.4.tgz" - integrity sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA== +sharp@^0.34.3, sharp@^0.34.5: + version "0.34.5" + resolved "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz" + integrity sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg== dependencies: "@img/colour" "^1.0.0" - detect-libc "^2.1.0" - semver "^7.7.2" + detect-libc "^2.1.2" + semver "^7.7.3" optionalDependencies: - "@img/sharp-darwin-arm64" "0.34.4" - "@img/sharp-darwin-x64" "0.34.4" - "@img/sharp-libvips-darwin-arm64" "1.2.3" - "@img/sharp-libvips-darwin-x64" "1.2.3" - "@img/sharp-libvips-linux-arm" "1.2.3" - "@img/sharp-libvips-linux-arm64" "1.2.3" - "@img/sharp-libvips-linux-ppc64" "1.2.3" - "@img/sharp-libvips-linux-s390x" "1.2.3" - "@img/sharp-libvips-linux-x64" "1.2.3" - "@img/sharp-libvips-linuxmusl-arm64" "1.2.3" - "@img/sharp-libvips-linuxmusl-x64" "1.2.3" - "@img/sharp-linux-arm" "0.34.4" - "@img/sharp-linux-arm64" "0.34.4" - "@img/sharp-linux-ppc64" "0.34.4" - "@img/sharp-linux-s390x" "0.34.4" - "@img/sharp-linux-x64" "0.34.4" - "@img/sharp-linuxmusl-arm64" "0.34.4" - "@img/sharp-linuxmusl-x64" "0.34.4" - "@img/sharp-wasm32" "0.34.4" - "@img/sharp-win32-arm64" "0.34.4" - "@img/sharp-win32-ia32" "0.34.4" - "@img/sharp-win32-x64" "0.34.4" + "@img/sharp-darwin-arm64" "0.34.5" + "@img/sharp-darwin-x64" "0.34.5" + "@img/sharp-libvips-darwin-arm64" "1.2.4" + "@img/sharp-libvips-darwin-x64" "1.2.4" + "@img/sharp-libvips-linux-arm" "1.2.4" + "@img/sharp-libvips-linux-arm64" "1.2.4" + "@img/sharp-libvips-linux-ppc64" "1.2.4" + "@img/sharp-libvips-linux-riscv64" "1.2.4" + "@img/sharp-libvips-linux-s390x" "1.2.4" + "@img/sharp-libvips-linux-x64" "1.2.4" + "@img/sharp-libvips-linuxmusl-arm64" "1.2.4" + "@img/sharp-libvips-linuxmusl-x64" "1.2.4" + "@img/sharp-linux-arm" "0.34.5" + "@img/sharp-linux-arm64" "0.34.5" + "@img/sharp-linux-ppc64" "0.34.5" + "@img/sharp-linux-riscv64" "0.34.5" + "@img/sharp-linux-s390x" "0.34.5" + "@img/sharp-linux-x64" "0.34.5" + "@img/sharp-linuxmusl-arm64" "0.34.5" + "@img/sharp-linuxmusl-x64" "0.34.5" + "@img/sharp-wasm32" "0.34.5" + "@img/sharp-win32-arm64" "0.34.5" + "@img/sharp-win32-ia32" "0.34.5" + "@img/sharp-win32-x64" "0.34.5" shebang-command@^2.0.0: version "2.0.0" @@ -6144,6 +5863,20 @@ strict-uri-encode@^2.0.0: resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + string-argv@^0.3.2: version "0.3.2" resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" @@ -6253,20 +5986,6 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -6281,7 +6000,14 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1, strip-ansi@^7.1.0: +strip-ansi@^7.0.1: + version "7.1.2" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.1" + +strip-ansi@^7.1.0: version "7.1.2" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz" integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== @@ -6360,12 +6086,7 @@ tailwindcss-animate@^1.0.7: resolved "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz" integrity sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA== -tailwindcss@4.1.14: - version "4.1.14" - resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz" - integrity sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA== - -tailwindcss@^3.4.1: +tailwindcss@^3.4.1, "tailwindcss@>=3.0.0 || insiders": version "3.4.18" resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz" integrity sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ== @@ -6393,6 +6114,11 @@ tailwindcss@^3.4.1: resolve "^1.22.8" sucrase "^3.35.0" +tailwindcss@4.1.14: + version "4.1.14" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz" + integrity sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA== + tapable@^2.2.0: version "2.2.3" resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz" @@ -6489,16 +6215,16 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.0, tslib@^2.8.0: version "2.8.1" resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== +tslib@1.14.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" @@ -6556,7 +6282,7 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" -typescript@^5.9.2: +typescript@^5.0.0, typescript@^5.9.2, typescript@>=3.3.1, typescript@>=4.2.0, typescript@>=5.0.4, typescript@>=5.3.3, typescript@>=5.4.0: version "5.9.3" resolved "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== @@ -6566,7 +6292,7 @@ ufo@^1.5.4, ufo@^1.6.1: resolved "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz" integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA== -uint8arrays@3.1.0, uint8arrays@^3.0.0: +uint8arrays@^3.0.0, uint8arrays@3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz" integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== @@ -6671,6 +6397,11 @@ use-sidecar@^1.1.3: detect-node-es "^1.1.0" tslib "^2.0.0" +use-sync-external-store@^1.5.0, use-sync-external-store@>=1.2.0: + version "1.5.0" + resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz" + integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== + use-sync-external-store@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz" @@ -6681,12 +6412,7 @@ use-sync-external-store@1.4.0: resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz" integrity sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw== -use-sync-external-store@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz" - integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== - -utf-8-validate@^5.0.2: +utf-8-validate@^5.0.2, utf-8-validate@>=5.0.2: version "5.0.10" resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz" integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== @@ -6719,6 +6445,13 @@ uuid@^9.0.1: resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +valtio@*, valtio@2.1.7: + version "2.1.7" + resolved "https://registry.npmjs.org/valtio/-/valtio-2.1.7.tgz" + integrity sha512-DwJhCDpujuQuKdJ2H84VbTjEJJteaSmqsuUltsfbfdbotVfNeTE4K/qc/Wi57I9x8/2ed4JNdjEna7O6PfavRg== + dependencies: + proxy-compare "^3.0.1" + valtio@1.13.2: version "1.13.2" resolved "https://registry.npmjs.org/valtio/-/valtio-1.13.2.tgz" @@ -6728,13 +6461,6 @@ valtio@1.13.2: proxy-compare "2.6.0" use-sync-external-store "1.2.0" -valtio@2.1.7: - version "2.1.7" - resolved "https://registry.npmjs.org/valtio/-/valtio-2.1.7.tgz" - integrity sha512-DwJhCDpujuQuKdJ2H84VbTjEJJteaSmqsuUltsfbfdbotVfNeTE4K/qc/Wi57I9x8/2ed4JNdjEna7O6PfavRg== - dependencies: - proxy-compare "^3.0.1" - victory-vendor@^36.6.8: version "36.9.2" resolved "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz" @@ -6755,6 +6481,20 @@ victory-vendor@^36.6.8: d3-time "^3.0.0" d3-timer "^3.0.1" +viem@^2.1.1, viem@^2.27.2, viem@^2.31.7, viem@^2.32.0, viem@>=2.0.0, viem@>=2.29.0, viem@>=2.37.0, viem@>=2.37.1, viem@>=2.37.2, viem@2.x: + version "2.37.9" + resolved "https://registry.npmjs.org/viem/-/viem-2.37.9.tgz" + integrity sha512-XXUOE5yJcjr9/M9kRoQcPMUfetwHprO9aTho6vNELjBKJIBx7rYq1fjvBw+xEnhsRjhh5lsORi6B0h8fYFB7NA== + dependencies: + "@noble/curves" "1.9.1" + "@noble/hashes" "1.8.0" + "@scure/bip32" "1.7.0" + "@scure/bip39" "1.6.0" + abitype "1.1.0" + isows "1.0.7" + ox "0.9.6" + ws "8.18.3" + viem@2.23.2: version "2.23.2" resolved "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz" @@ -6783,21 +6523,7 @@ viem@2.31.0: ox "0.7.1" ws "8.18.2" -viem@>=2.29.0, viem@>=2.37.2, viem@^2.1.1, viem@^2.27.2, viem@^2.31.7, viem@^2.32.0: - version "2.37.9" - resolved "https://registry.npmjs.org/viem/-/viem-2.37.9.tgz" - integrity sha512-XXUOE5yJcjr9/M9kRoQcPMUfetwHprO9aTho6vNELjBKJIBx7rYq1fjvBw+xEnhsRjhh5lsORi6B0h8fYFB7NA== - dependencies: - "@noble/curves" "1.9.1" - "@noble/hashes" "1.8.0" - "@scure/bip32" "1.7.0" - "@scure/bip39" "1.6.0" - abitype "1.1.0" - isows "1.0.7" - ox "0.9.6" - ws "8.18.3" - -wagmi@^2.15.7: +wagmi@^2.15.7, wagmi@>=2.0.0, wagmi@>=2.16.9: version "2.17.5" resolved "https://registry.npmjs.org/wagmi/-/wagmi-2.17.5.tgz" integrity sha512-Sk2e40gfo68gbJ6lHkpIwCMkH76rO0+toCPjf3PzdQX37rZo9042DdNTYcSg3zhnx8abFJtrk/5vAWfR8APTDw== @@ -6806,7 +6532,7 @@ wagmi@^2.15.7: "@wagmi/core" "2.21.2" use-sync-external-store "1.4.0" -"webextension-polyfill@>=0.10.0 <1.0", webextension-polyfill@^0.10.0: +webextension-polyfill@^0.10.0, "webextension-polyfill@>=0.10.0 <1.0": version "0.10.0" resolved "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz" integrity sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g== @@ -6935,6 +6661,16 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +ws@*, ws@^7.5.1: + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + ws@8.18.0: version "8.18.0" resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" @@ -6950,16 +6686,6 @@ ws@8.18.3: resolved "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz" integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== -ws@^7.5.1: - version "7.5.10" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" - integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== - -ws@~8.17.1: - version "8.17.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== - xmlhttprequest-ssl@~2.1.1: version "2.1.2" resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz" @@ -6980,7 +6706,7 @@ yallist@^5.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz" integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== -yaml@^2.7.0: +yaml@^2.4.2, yaml@^2.7.0: version "2.8.1" resolved "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz" integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== @@ -7015,7 +6741,7 @@ yocto-queue@^0.1.0: resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zod@3.22.4: +"zod@^3 >=3.22.0", "zod@^3.22.0 || ^4.0.0", zod@3.22.4: version "3.22.4" resolved "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz" integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== @@ -7025,12 +6751,12 @@ zod@^4.1.5: resolved "https://registry.npmjs.org/zod/-/zod-4.1.11.tgz" integrity sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg== +zustand@^5.0.1, zustand@5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz" + integrity sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg== + zustand@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/zustand/-/zustand-5.0.0.tgz" integrity sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ== - -zustand@5.0.3, zustand@^5.0.1: - version "5.0.3" - resolved "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz" - integrity sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==