-
+
+///
diff --git a/apps/web/tailwind.config.js b/apps/helixbox-app/tailwind.config.js
similarity index 88%
rename from apps/web/tailwind.config.js
rename to apps/helixbox-app/tailwind.config.js
index 9b246313e..e3b3ffe69 100644
--- a/apps/web/tailwind.config.js
+++ b/apps/helixbox-app/tailwind.config.js
@@ -1,3 +1,5 @@
+import defaultTheme from "tailwindcss/defaultTheme";
+
/** @type {import('tailwindcss').Config} */
export default {
content: ["./index.html", "./src/**/*.{jsx,tsx}"],
@@ -75,6 +77,11 @@ export default {
"50%": { transform: "rotate(180deg)" },
"100%": { transform: "rotate(180deg)" },
},
+ "scroll-to-bottom": {
+ "0%": { top: "1lh" },
+ "20%, 55%": { top: "0lh" },
+ "60%, 100%": { top: "-1lh" },
+ },
},
animation: {
"notification-enter": "right-enter 400ms ease-out",
@@ -84,8 +91,12 @@ export default {
"count-loading-large": "count-loading-large 1200ms cubic-bezier(0, 0.5, 0.5, 1) infinite",
"progress-anim-left": "spinner-rotate-left 9000ms linear 4500ms 1 paused forwards", // Duration: 9s, delay: 4.5s
"progress-anim-right": "spinner-rotate-right 9000ms linear 0ms 1 paused forwards",
+ "scroll-to-bottom": "scroll-to-bottom 7000ms cubic-bezier(0.62, 0, 0.38, 1.0) infinite",
},
},
+ fontFamily: {
+ sans: ["IBMPlexSans", ...defaultTheme.fontFamily.sans],
+ },
},
plugins: [],
};
diff --git a/apps/helixbox-app/tsconfig.json b/apps/helixbox-app/tsconfig.json
new file mode 100644
index 000000000..e5cd43d91
--- /dev/null
+++ b/apps/helixbox-app/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"],
+ "references": [{ "path": "./tsconfig.node.json" }]
+}
diff --git a/apps/helixbox-app/tsconfig.node.json b/apps/helixbox-app/tsconfig.node.json
new file mode 100644
index 000000000..97ede7ee6
--- /dev/null
+++ b/apps/helixbox-app/tsconfig.node.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "skipLibCheck": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "allowSyntheticDefaultImports": true,
+ "strict": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/apps/helixbox-app/turbo.json b/apps/helixbox-app/turbo.json
new file mode 100644
index 000000000..5af1d6aea
--- /dev/null
+++ b/apps/helixbox-app/turbo.json
@@ -0,0 +1,8 @@
+{
+ "extends": ["//"],
+ "tasks": {
+ "build": {
+ "env": ["VITE_*"]
+ }
+ }
+}
diff --git a/apps/web/vite.config.ts b/apps/helixbox-app/vite.config.ts
similarity index 100%
rename from apps/web/vite.config.ts
rename to apps/helixbox-app/vite.config.ts
diff --git a/apps/helixbox-home/.eslintrc.cjs b/apps/helixbox-home/.eslintrc.cjs
new file mode 100644
index 000000000..2d73c0120
--- /dev/null
+++ b/apps/helixbox-home/.eslintrc.cjs
@@ -0,0 +1,20 @@
+module.exports = {
+ root: true,
+ env: { browser: true, es2020: true },
+ extends: [
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended',
+ 'plugin:react-hooks/recommended',
+ 'prettier',
+ 'turbo',
+ ],
+ ignorePatterns: ['dist', '.eslintrc.cjs'],
+ parser: '@typescript-eslint/parser',
+ plugins: ['react-refresh'],
+ rules: {
+ 'react-refresh/only-export-components': [
+ 'warn',
+ { allowConstantExport: true },
+ ],
+ },
+}
diff --git a/apps/helixbox-home/.gitignore b/apps/helixbox-home/.gitignore
new file mode 100644
index 000000000..e817378f8
--- /dev/null
+++ b/apps/helixbox-home/.gitignore
@@ -0,0 +1,29 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+# Sentry Config File
+.env.sentry-build-plugin
+
+_generated_
diff --git a/apps/helixbox-home/LICENSE b/apps/helixbox-home/LICENSE
new file mode 100644
index 000000000..e0f844ef5
--- /dev/null
+++ b/apps/helixbox-home/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 helix-bridge
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/apps/helixbox-home/README.md b/apps/helixbox-home/README.md
new file mode 100644
index 000000000..78536b709
--- /dev/null
+++ b/apps/helixbox-home/README.md
@@ -0,0 +1,8 @@
+# HelixBox Home Interface
+
+### Local development
+
+```shell
+$ pnpm install
+$ pnpm run dev
+```
diff --git a/apps/helixbox-home/index.html b/apps/helixbox-home/index.html
new file mode 100644
index 000000000..89cd81473
--- /dev/null
+++ b/apps/helixbox-home/index.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Bridge Stablecoins and Native Tokens on Helixbox Bridge
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/helixbox-home/package.json b/apps/helixbox-home/package.json
new file mode 100644
index 000000000..30ea43800
--- /dev/null
+++ b/apps/helixbox-home/package.json
@@ -0,0 +1,53 @@
+{
+ "name": "helixbox-home",
+ "description": "Helixbox Home Interface",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc && vite build",
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
+ "test": "vitest --run --silent",
+ "clean": "rm -rf node_modules .turbo dist src/_generated_",
+ "preview": "vite preview"
+ },
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react": "^0.26.14",
+ "@sentry/react": "^8.30.0",
+ "@sentry/vite-plugin": "^2.22.4",
+ "localforage": "^1.10.0",
+ "match-sorter": "^7.0.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "react-router-dom": "^6.27.0",
+ "react-transition-group": "^4.4.5",
+ "rxjs": "^7.8.1",
+ "sort-by": "^1.2.0"
+ },
+ "devDependencies": {
+ "@graphql-typed-document-node/core": "^3.2.0",
+ "@types/react": "^18.2.66",
+ "@types/react-dom": "^18.2.22",
+ "@types/react-transition-group": "^4.4.10",
+ "@typescript-eslint/eslint-plugin": "^7.2.0",
+ "@typescript-eslint/parser": "^7.2.0",
+ "@vite-pwa/assets-generator": "^0.2.4",
+ "@vitejs/plugin-react-swc": "^3.5.0",
+ "autoprefixer": "^10.4.19",
+ "eslint": "^8.57.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-config-turbo": "^2.0.0",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-refresh": "^0.4.6",
+ "postcss": "^8.4.38",
+ "tailwindcss": "^3.4.3",
+ "typescript": "^5.2.2",
+ "vite": "^5.2.0",
+ "vite-plugin-pwa": "^0.20.1",
+ "vitest": "^1.6.0",
+ "workbox-core": "^7.1.0",
+ "workbox-window": "^7.1.0"
+ },
+ "packageManager": "pnpm@9.4.0"
+}
diff --git a/apps/helixbox-home/postcss.config.js b/apps/helixbox-home/postcss.config.js
new file mode 100644
index 000000000..2aa7205d4
--- /dev/null
+++ b/apps/helixbox-home/postcss.config.js
@@ -0,0 +1,6 @@
+export default {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
diff --git a/apps/helixbox-home/public/favicon.svg b/apps/helixbox-home/public/favicon.svg
new file mode 100644
index 000000000..e04106a3a
--- /dev/null
+++ b/apps/helixbox-home/public/favicon.svg
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-Bold.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-Bold.ttf
new file mode 100644
index 000000000..e5389d833
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-Bold.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-BoldItalic.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-BoldItalic.ttf
new file mode 100644
index 000000000..31cce79bb
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-BoldItalic.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-ExtraLight.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-ExtraLight.ttf
new file mode 100644
index 000000000..ecd3aff27
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-ExtraLight.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-ExtraLightItalic.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-ExtraLightItalic.ttf
new file mode 100644
index 000000000..5bbda2cc0
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-ExtraLightItalic.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-Italic.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-Italic.ttf
new file mode 100644
index 000000000..46212a3d6
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-Italic.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-Light.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-Light.ttf
new file mode 100644
index 000000000..b3d035d5d
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-Light.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-LightItalic.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-LightItalic.ttf
new file mode 100644
index 000000000..20bb6cfc6
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-LightItalic.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-Medium.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-Medium.ttf
new file mode 100644
index 000000000..9395402b0
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-Medium.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-MediumItalic.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-MediumItalic.ttf
new file mode 100644
index 000000000..7787ad274
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-MediumItalic.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-Regular.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-Regular.ttf
new file mode 100644
index 000000000..b5819647e
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-Regular.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-SemiBold.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-SemiBold.ttf
new file mode 100644
index 000000000..a5bd9ee62
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-SemiBold.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-SemiBoldItalic.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-SemiBoldItalic.ttf
new file mode 100644
index 000000000..a5bcdc40a
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-SemiBoldItalic.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-Thin.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-Thin.ttf
new file mode 100644
index 000000000..910458a9e
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-Thin.ttf differ
diff --git a/apps/helixbox-home/public/fonts/IBMPlexSans-ThinItalic.ttf b/apps/helixbox-home/public/fonts/IBMPlexSans-ThinItalic.ttf
new file mode 100644
index 000000000..d5b4be655
Binary files /dev/null and b/apps/helixbox-home/public/fonts/IBMPlexSans-ThinItalic.ttf differ
diff --git a/apps/helixbox-home/public/fonts/KronaOne-Regular.ttf b/apps/helixbox-home/public/fonts/KronaOne-Regular.ttf
new file mode 100644
index 000000000..51725ff43
Binary files /dev/null and b/apps/helixbox-home/public/fonts/KronaOne-Regular.ttf differ
diff --git a/apps/helixbox-home/public/images/logo.svg b/apps/helixbox-home/public/images/logo.svg
new file mode 100644
index 000000000..c0aedd76f
--- /dev/null
+++ b/apps/helixbox-home/public/images/logo.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/apps/helixbox-home/public/images/mobile-header-menu.svg b/apps/helixbox-home/public/images/mobile-header-menu.svg
new file mode 100644
index 000000000..0a108ec5f
--- /dev/null
+++ b/apps/helixbox-home/public/images/mobile-header-menu.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/helixbox-home/public/images/social/discord.svg b/apps/helixbox-home/public/images/social/discord.svg
new file mode 100644
index 000000000..abb99d447
--- /dev/null
+++ b/apps/helixbox-home/public/images/social/discord.svg
@@ -0,0 +1,6 @@
+
+
+
diff --git a/apps/helixbox-home/public/images/social/email.svg b/apps/helixbox-home/public/images/social/email.svg
new file mode 100644
index 000000000..07fd48c7f
--- /dev/null
+++ b/apps/helixbox-home/public/images/social/email.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/helixbox-home/public/images/social/github.svg b/apps/helixbox-home/public/images/social/github.svg
new file mode 100644
index 000000000..15845bcc1
--- /dev/null
+++ b/apps/helixbox-home/public/images/social/github.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/helixbox-home/public/images/social/x.svg b/apps/helixbox-home/public/images/social/x.svg
new file mode 100644
index 000000000..5c0aa7020
--- /dev/null
+++ b/apps/helixbox-home/public/images/social/x.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/apps/helixbox-home/public/preview.png b/apps/helixbox-home/public/preview.png
new file mode 100644
index 000000000..d72876c3a
Binary files /dev/null and b/apps/helixbox-home/public/preview.png differ
diff --git a/apps/helixbox-home/public/robots.txt b/apps/helixbox-home/public/robots.txt
new file mode 100644
index 000000000..693ade5fc
--- /dev/null
+++ b/apps/helixbox-home/public/robots.txt
@@ -0,0 +1,4 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Allow: /
+Sitemap: https://helix.box/sitemap.xml
diff --git a/apps/helixbox-home/public/vercel.json b/apps/helixbox-home/public/vercel.json
new file mode 100644
index 000000000..4f4ea857f
--- /dev/null
+++ b/apps/helixbox-home/public/vercel.json
@@ -0,0 +1,63 @@
+{
+ "headers": [
+ {
+ "source": "/(.*).html",
+ "headers": [
+ {
+ "key": "Cache-Control",
+ "value": "public, max-age=0, must-revalidate"
+ }
+ ]
+ },
+ {
+ "source": "/sw.js",
+ "headers": [
+ {
+ "key": "Cache-Control",
+ "value": "public, max-age=0, must-revalidate"
+ }
+ ]
+ },
+ {
+ "source": "/manifest.json",
+ "headers": [
+ {
+ "key": "Content-Type",
+ "value": "application/manifest+json"
+ }
+ ]
+ },
+ {
+ "source": "/assets/(.*)",
+ "headers": [
+ {
+ "key": "Cache-Control",
+ "value": "max-age=31536000, immutable"
+ }
+ ]
+ },
+ {
+ "source": "/(.*)",
+ "headers": [
+ {
+ "key": "X-Content-Type-Options",
+ "value": "nosniff"
+ },
+ {
+ "key": "X-Frame-Options",
+ "value": "DENY"
+ },
+ {
+ "key": "X-XSS-Protection",
+ "value": "1; mode=block"
+ }
+ ]
+ }
+ ],
+ "rewrites": [
+ {
+ "source": "/(.*)",
+ "destination": "/index.html"
+ }
+ ]
+}
diff --git a/apps/helixbox-home/public/videos/bridge.mp4 b/apps/helixbox-home/public/videos/bridge.mp4
new file mode 100644
index 000000000..007dc01cd
Binary files /dev/null and b/apps/helixbox-home/public/videos/bridge.mp4 differ
diff --git a/apps/helixbox-home/public/videos/liquidity.mp4 b/apps/helixbox-home/public/videos/liquidity.mp4
new file mode 100644
index 000000000..43876c993
Binary files /dev/null and b/apps/helixbox-home/public/videos/liquidity.mp4 differ
diff --git a/apps/helixbox-home/public/videos/logo.mp4 b/apps/helixbox-home/public/videos/logo.mp4
new file mode 100644
index 000000000..481bb57fc
Binary files /dev/null and b/apps/helixbox-home/public/videos/logo.mp4 differ
diff --git a/apps/helixbox-home/public/videos/xtoken.mp4 b/apps/helixbox-home/public/videos/xtoken.mp4
new file mode 100644
index 000000000..acea3fb44
Binary files /dev/null and b/apps/helixbox-home/public/videos/xtoken.mp4 differ
diff --git a/apps/helixbox-home/pwa-assets.config.ts b/apps/helixbox-home/pwa-assets.config.ts
new file mode 100644
index 000000000..bd84357c7
--- /dev/null
+++ b/apps/helixbox-home/pwa-assets.config.ts
@@ -0,0 +1,19 @@
+import { defineConfig } from "@vite-pwa/assets-generator/config";
+
+export default defineConfig({
+ headLinkOptions: {
+ preset: "2023",
+ },
+ preset: {
+ transparent: { sizes: [64, 192, 512], favicons: [[48, "favicon.ico"]] },
+ maskable: {
+ sizes: [512],
+ resizeOptions: { fit: "contain", background: "#00141D" },
+ },
+ apple: {
+ sizes: [180],
+ resizeOptions: { fit: "contain", background: "#00141D" },
+ },
+ },
+ images: ["public/favicon.svg"],
+});
diff --git a/apps/helixbox-home/scripts/generate-sitemap.js b/apps/helixbox-home/scripts/generate-sitemap.js
new file mode 100644
index 000000000..fdc40e41d
--- /dev/null
+++ b/apps/helixbox-home/scripts/generate-sitemap.js
@@ -0,0 +1,30 @@
+import * as fs from "node:fs";
+import path, { dirname } from "node:path";
+import { fileURLToPath, URL } from "node:url";
+
+const pagesMeta = [
+ { url: "https://helix.box", priority: 1.0 },
+ { url: "https://helix.box/#/liquidity-solver", priority: 0.8 },
+];
+
+const urls = pagesMeta
+ .map((pageMeta) => {
+ const url = new URL(pageMeta.url);
+ return `
+ ${url.toString()}
+ ${new Date().toISOString()}
+ weekly
+ ${pageMeta.priority.toFixed(1)}
+ `;
+ })
+ .join("\n");
+
+const sitemap = `
+
+${urls}
+
+`;
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename);
+fs.writeFileSync(path.resolve(__dirname, "../dist/sitemap.xml"), sitemap);
diff --git a/apps/helixbox-home/src/__tests__/index.spec.ts b/apps/helixbox-home/src/__tests__/index.spec.ts
new file mode 100644
index 000000000..6136c8340
--- /dev/null
+++ b/apps/helixbox-home/src/__tests__/index.spec.ts
@@ -0,0 +1,3 @@
+import { it } from "vitest";
+
+it.todo("TODO");
diff --git a/apps/helixbox-home/src/components/homepage-footer.tsx b/apps/helixbox-home/src/components/homepage-footer.tsx
new file mode 100644
index 000000000..834953ed9
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-footer.tsx
@@ -0,0 +1,96 @@
+import { Link } from "react-router-dom";
+import HomepageSocialMedia from "./homepage-social-media";
+import { products } from "./homepage-products/data";
+
+export default function HomepageFooter() {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
({
+ label: product.title === "Liquidity Solver" ? "Helixbox Liquidity Solver" : product.title,
+ link: product.link,
+ }))}
+ className="flex-1"
+ />
+
+
+ >
+ );
+}
+
+function About() {
+ return (
+
+ Helixbox is focusing on becoming an efficient multi-chain liquidity provider, offering users a superior experience
+ in multi-chain asset transfer and exchange.
+
+ );
+}
+
+function Copyright() {
+ return (
+
{`© ${new Date().getFullYear()} Powered by Helixbox Team`}
+ );
+}
+
+function Column({
+ title,
+ items,
+ className,
+}: {
+ title: string;
+ items: { label: string; link: string }[];
+ className?: string;
+}) {
+ return (
+
+
{title}
+ {items.map((item) =>
+ item.link.startsWith("http") ? (
+
+ {item.label}
+
+ ) : (
+
+ {item.label}
+
+ ),
+ )}
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-header-nav.tsx b/apps/helixbox-home/src/components/homepage-header-nav.tsx
new file mode 100644
index 000000000..2bc9ba8fa
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-header-nav.tsx
@@ -0,0 +1,192 @@
+import {
+ FloatingPortal,
+ offset,
+ safePolygon,
+ useClick,
+ useDismiss,
+ useFloating,
+ useHover,
+ useInteractions,
+ useTransitionStyles,
+} from "@floating-ui/react";
+import { useRef, useState } from "react";
+import { Link } from "react-router-dom";
+
+type Props =
+ | {
+ label: string;
+ items: { label: string; link: string }[];
+ link?: never;
+ pcStyle?: boolean;
+ onClick?: () => void;
+ }
+ | {
+ label: string;
+ link: string;
+ items?: never;
+ pcStyle?: boolean;
+ onClick?: () => void;
+ };
+
+export default function HomepageHeaderNav({ label, items, link, pcStyle, onClick }: Props) {
+ return link !== undefined ? (
+ link.startsWith("http") ? (
+
+ {label}
+
+ ) : (
+
+ {label}
+
+ )
+ ) : pcStyle ? (
+
+ ) : (
+
+ );
+}
+
+function MobileDropdown({
+ label,
+ items,
+ onClick,
+}: {
+ label: string;
+ items: { label: string; link: string }[];
+ onClick?: () => void;
+}) {
+ const ref = useRef
(null);
+ const [isOpen, setIsOpen] = useState(false);
+
+ return (
+
+
setIsOpen((prev) => !prev)} className="inline-flex w-fit items-center gap-2">
+
+ {label}
+
+
+
+
+
+ {items.map((item) =>
+ item.link.startsWith("http") ? (
+
+ {item.label}
+
+ ) : (
+
+ {item.label}
+
+ ),
+ )}
+
+
+
+ );
+}
+
+function PcDropdown({ label, items }: { label: string; items: { label: string; link: string }[] }) {
+ const [isOpen, setIsOpen] = useState(false);
+
+ const { refs, context, floatingStyles } = useFloating({
+ open: isOpen,
+ onOpenChange: setIsOpen,
+ middleware: [offset(10)],
+ placement: "bottom",
+ });
+
+ const { styles, isMounted } = useTransitionStyles(context, {
+ initial: { transform: "translateY(-10px)", opacity: 0 },
+ open: { transform: "translateY(0)", opacity: 1 },
+ close: { transform: "translateY(-10px)", opacity: 0 },
+ });
+
+ const hover = useHover(context, { handleClose: safePolygon() });
+ const click = useClick(context);
+ const dismiss = useDismiss(context);
+ const { getReferenceProps, getFloatingProps } = useInteractions([hover, click, dismiss]);
+
+ return (
+ <>
+
+
+ {label}
+
+
+
+
+ {isMounted && (
+
+
+
{
+ e.stopPropagation();
+ setIsOpen(false);
+ }}
+ >
+ {items.map((item) =>
+ item.link.startsWith("http") ? (
+
+ {item.label}
+
+ ) : (
+
+ {item.label}
+
+ ),
+ )}
+
+
+
+ )}
+ >
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-header.tsx b/apps/helixbox-home/src/components/homepage-header.tsx
new file mode 100644
index 000000000..40c27ca1c
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-header.tsx
@@ -0,0 +1,45 @@
+import { Link } from "react-router-dom";
+import HomepageHeaderNav from "./homepage-header-nav";
+import HomepageMobileMenu from "./homepage-mobile-menu";
+
+const navigations: (
+ | { label: string; link: string; items?: never }
+ | { label: string; link?: never; items: { label: string; link: string }[] }
+)[] = [
+ {
+ label: "Products",
+ items: [
+ { label: "Helixbox Bridge", link: "https://app.helix.box" },
+ { label: "XToken BaaS", link: "https://xtoken.helix.box/" },
+ { label: "Helixbox Liquidity Solver", link: "/liquidity-solver" },
+ ],
+ },
+ { label: "Docs", link: "https://docs.helix.box/" },
+ { label: "Careers", link: "https://apply.workable.com/itering/" },
+];
+
+export default function HomepageHeader() {
+ return (
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-mobile-menu.tsx b/apps/helixbox-home/src/components/homepage-mobile-menu.tsx
new file mode 100644
index 000000000..d0d8390f8
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-mobile-menu.tsx
@@ -0,0 +1,81 @@
+import { PropsWithChildren, useRef, useState } from "react";
+import { createPortal } from "react-dom";
+import { CSSTransition } from "react-transition-group";
+import HomepageHeaderNav from "./homepage-header-nav";
+import { Link } from "react-router-dom";
+import HomepageSocialMedia from "./homepage-social-media";
+
+interface Props {
+ data: (
+ | { label: string; link: string; items?: never }
+ | { label: string; link?: never; items: { label: string; link: string }[] }
+ )[];
+}
+
+export default function HomepageMobileMenu({ data }: Props) {
+ const [isOpen, setIsOpen] = useState(false);
+
+ return (
+ <>
+ setIsOpen(true)}>
+
+
+
+
+ setIsOpen(false)}>
+ Home
+
+ {data.map((item) => (
+ setIsOpen(false)} />
+ ))}
+
+
+
+ >
+ );
+}
+
+function Drawer({
+ children,
+ isOpen,
+ onClose,
+}: PropsWithChildren<{ isOpen: boolean; onClose?: (isOpen: boolean) => void }>) {
+ const nodeRef = useRef(null);
+
+ return createPortal(
+ {
+ document.body.style.overflow = "hidden";
+ }}
+ onExited={() => {
+ document.body.style.overflow = "auto";
+ }}
+ >
+ {
+ e.stopPropagation();
+ }}
+ className="fixed left-0 top-0 z-50 h-screen w-screen overflow-y-auto bg-black/20 backdrop-blur-md"
+ >
+
+
onClose?.(false)}
+ />
+
+
{children}
+
+ ,
+ document.body,
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-one-stop-entry.tsx b/apps/helixbox-home/src/components/homepage-one-stop-entry.tsx
new file mode 100644
index 000000000..596e4dc33
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-one-stop-entry.tsx
@@ -0,0 +1,9 @@
+export default function HomepageOneStopEntry({ className }: { className?: string }) {
+ return (
+
+
+ One-Stop Entry To DeFi
+
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-products/data.ts b/apps/helixbox-home/src/components/homepage-products/data.ts
new file mode 100644
index 000000000..0d3d24d4b
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-products/data.ts
@@ -0,0 +1,23 @@
+export const products: { title: string; description: string; link: string; video: string }[] = [
+ {
+ title: "Helixbox Bridge",
+ description:
+ "Helixbox Bridge provides a secure and efficient cross-chain bridge for seamless asset transfers between different blockchains. It serves as an entry point for multi-chain asset movement, enabling users to transfer assets quickly and with confidence.",
+ link: "https://app.helix.box",
+ video: "videos/bridge.mp4",
+ },
+ {
+ title: "XToken BaaS",
+ description:
+ "XToken BaaS (Bridge as a Service) offers professional cross-chain token mapping bridge services tailored for cryptocurrency token issuance projects or custodial applications. Clients maintain full control over contracts and asset permissions.",
+ link: "https://xtoken.helix.box/",
+ video: "videos/xtoken.mp4",
+ },
+ {
+ title: "Liquidity Solver",
+ description:
+ "Solver services for order flow platforms like CowSwap and UniswapX. Offering low-slippage, high-quality liquidity and migration solutions via on-chain and off-chain strategies like liquidity aggregation and hedging, while also balancing liquidity and prices across multi-chain markets to generate profits through these services.",
+ link: "/liquidity-solver",
+ video: "videos/liquidity.mp4",
+ },
+];
diff --git a/apps/helixbox-home/src/components/homepage-products/index.tsx b/apps/helixbox-home/src/components/homepage-products/index.tsx
new file mode 100644
index 000000000..20f74bf09
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-products/index.tsx
@@ -0,0 +1,82 @@
+import { useMemo, useRef, useState } from "react";
+import Mobile from "./mobile";
+import PC from "./pc";
+import { products } from "./data";
+import { CSSTransition, SwitchTransition } from "react-transition-group";
+
+const defaultVideo = "videos/logo.mp4";
+
+export default function HomepageProducts() {
+ const [video, setVideo] = useState(defaultVideo);
+
+ return (
+ <>
+
+ {products.map((product) => (
+
+ ))}
+
+
+ >
+ );
+}
+
+function AnimatedVideo({ video }: { video: string }) {
+ const previousRef = useRef(null);
+ const currentRef = useRef(null);
+ const activeRef = useRef(video);
+
+ const nodeRef = useMemo(() => {
+ const next = activeRef.current === video ? currentRef : previousRef;
+ activeRef.current = video;
+ return next;
+ }, [video]);
+
+ return (
+
+
+
+
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-products/mobile.tsx b/apps/helixbox-home/src/components/homepage-products/mobile.tsx
new file mode 100644
index 000000000..5769c937b
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-products/mobile.tsx
@@ -0,0 +1,35 @@
+import { Link } from "react-router-dom";
+
+interface Props {
+ title: string;
+ description: string;
+ link: string;
+ video: string;
+}
+
+export default function Mobile({ title, description, link, video }: Props) {
+ return (
+
+
+
{title}
+
{description}
+ {link.startsWith("http") ? (
+
+ Explore Now
+
+ ) : (
+
+ Explore Now
+
+ )}
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-products/pc.tsx b/apps/helixbox-home/src/components/homepage-products/pc.tsx
new file mode 100644
index 000000000..b17d450cb
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-products/pc.tsx
@@ -0,0 +1,124 @@
+import {
+ autoUpdate,
+ flip,
+ FloatingPortal,
+ offset,
+ Placement,
+ safePolygon,
+ shift,
+ useDismiss,
+ useFloating,
+ useFocus,
+ useHover,
+ useInteractions,
+ useRole,
+ useTransitionStyles,
+} from "@floating-ui/react";
+import { useEffect, useState } from "react";
+import { Link } from "react-router-dom";
+
+interface Props {
+ title: string;
+ description: string;
+ link: string;
+ video: string;
+ defaultVideo: string;
+ placement: Placement;
+ className?: string;
+ onHovering?: (video: string) => void;
+}
+
+export default function PC({ title, description, link, video, defaultVideo, placement, className, onHovering }: Props) {
+ const [isOpen, setIsOpen] = useState(false);
+
+ const { refs, context, floatingStyles } = useFloating({
+ open: isOpen,
+ onOpenChange: setIsOpen,
+ placement,
+ middleware: [offset(10), flip(), shift()],
+ whileElementsMounted: autoUpdate,
+ });
+
+ const hover = useHover(context, { move: false, handleClose: safePolygon() });
+ const focus = useFocus(context);
+ const dismiss = useDismiss(context);
+ const role = useRole(context, { role: "tooltip" });
+ const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss, role]);
+
+ const { styles, isMounted } = useTransitionStyles(context, {
+ initial: { transform: "scale(0.5)", opacity: 0 },
+ open: { transform: "scale(1)", opacity: 1 },
+ close: { transform: "scale(0.5)", opacity: 0 },
+ });
+
+ useEffect(() => {
+ onHovering?.(isOpen ? video : defaultVideo);
+ }, [video, defaultVideo, isOpen, onHovering]);
+
+ return (
+ <>
+ {link.startsWith("http") ? (
+
+ {title.split(" ").map((t) => (
+
+ ))}
+
+ ) : (
+
+ {title.split(" ").map((t) => (
+
+ ))}
+
+ )}
+
+ {isMounted && (
+
+
+
+
{description}
+ {link.startsWith("http") ? (
+
+ Explore Now
+
+ ) : (
+
+ Explore Now
+
+ )}
+
+
+
+ )}
+ >
+ );
+}
+
+function Span({ text, isOpen }: { text: string; isOpen: boolean }) {
+ return (
+
+ {text}
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-projects/01.png b/apps/helixbox-home/src/components/homepage-projects/01.png
new file mode 100644
index 000000000..d29f7b83b
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/01.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/02.png b/apps/helixbox-home/src/components/homepage-projects/02.png
new file mode 100644
index 000000000..4de81b9c8
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/02.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/03.png b/apps/helixbox-home/src/components/homepage-projects/03.png
new file mode 100644
index 000000000..619434d3f
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/03.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/04.png b/apps/helixbox-home/src/components/homepage-projects/04.png
new file mode 100644
index 000000000..c28a1b55a
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/04.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/05.png b/apps/helixbox-home/src/components/homepage-projects/05.png
new file mode 100644
index 000000000..58b95c5f8
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/05.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/06.png b/apps/helixbox-home/src/components/homepage-projects/06.png
new file mode 100644
index 000000000..97c899444
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/06.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/07.png b/apps/helixbox-home/src/components/homepage-projects/07.png
new file mode 100644
index 000000000..fc6772bfb
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/07.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/08.png b/apps/helixbox-home/src/components/homepage-projects/08.png
new file mode 100644
index 000000000..1f081a1fb
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/08.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/09.png b/apps/helixbox-home/src/components/homepage-projects/09.png
new file mode 100644
index 000000000..572043ff3
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/09.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/10.png b/apps/helixbox-home/src/components/homepage-projects/10.png
new file mode 100644
index 000000000..6b02da880
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/10.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/11.png b/apps/helixbox-home/src/components/homepage-projects/11.png
new file mode 100644
index 000000000..eea1766d5
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/11.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/12.png b/apps/helixbox-home/src/components/homepage-projects/12.png
new file mode 100644
index 000000000..af61e4f40
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/12.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/13.png b/apps/helixbox-home/src/components/homepage-projects/13.png
new file mode 100644
index 000000000..99dd22d92
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/13.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/14.png b/apps/helixbox-home/src/components/homepage-projects/14.png
new file mode 100644
index 000000000..5769b2f6e
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/14.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/15.png b/apps/helixbox-home/src/components/homepage-projects/15.png
new file mode 100644
index 000000000..18ad775e7
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/15.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/16.png b/apps/helixbox-home/src/components/homepage-projects/16.png
new file mode 100644
index 000000000..fd5d7e372
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/16.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/17.png b/apps/helixbox-home/src/components/homepage-projects/17.png
new file mode 100644
index 000000000..383dd5735
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/17.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/18.png b/apps/helixbox-home/src/components/homepage-projects/18.png
new file mode 100644
index 000000000..3fcd254ac
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/18.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/19.png b/apps/helixbox-home/src/components/homepage-projects/19.png
new file mode 100644
index 000000000..8e58e8776
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/19.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/20.png b/apps/helixbox-home/src/components/homepage-projects/20.png
new file mode 100644
index 000000000..a73b07fd9
Binary files /dev/null and b/apps/helixbox-home/src/components/homepage-projects/20.png differ
diff --git a/apps/helixbox-home/src/components/homepage-projects/index.tsx b/apps/helixbox-home/src/components/homepage-projects/index.tsx
new file mode 100644
index 000000000..83f3c4d48
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-projects/index.tsx
@@ -0,0 +1,203 @@
+import { useCallback, useEffect, useRef, useState } from "react";
+import { interval } from "rxjs";
+
+// In order to make the img tag adaptive to size, we use this import method.
+import p01 from "./01.png";
+import p02 from "./02.png";
+import p03 from "./03.png";
+import p04 from "./04.png";
+import p05 from "./05.png";
+import p06 from "./06.png";
+import p07 from "./07.png";
+import p08 from "./08.png";
+import p09 from "./09.png";
+import p10 from "./10.png";
+import p11 from "./11.png";
+import p12 from "./12.png";
+import p13 from "./13.png";
+import p14 from "./14.png";
+import p15 from "./15.png";
+import p16 from "./16.png";
+import p17 from "./17.png";
+import p18 from "./18.png";
+import p19 from "./19.png";
+import p20 from "./20.png";
+import { useMediaQuery } from "../../hooks/use-media-query";
+
+interface Project {
+ img: string;
+ name: string;
+}
+
+const pData1: Project[] = [
+ { img: p01, name: "Project 1" },
+ { img: p02, name: "Project 2" },
+ { img: p03, name: "Project 3" },
+ { img: p04, name: "Project 4" },
+ { img: p05, name: "Project 5" },
+ { img: p06, name: "Project 6" },
+ { img: p07, name: "Project 7" },
+ { img: p08, name: "Project 8" },
+ { img: p09, name: "Project 9" },
+ { img: p10, name: "Project 10" },
+];
+
+const pData2: Project[] = [
+ { img: p11, name: "Project 11" },
+ { img: p12, name: "Project 12" },
+ { img: p13, name: "Project 13" },
+ { img: p14, name: "Project 14" },
+ { img: p15, name: "Project 15" },
+ { img: p16, name: "Project 16" },
+ { img: p17, name: "Project 17" },
+ { img: p18, name: "Project 18" },
+ { img: p19, name: "Project 19" },
+ { img: p20, name: "Project 20" },
+];
+
+export default function HomepageProjects() {
+ return (
+
+ );
+}
+
+const Card = ({
+ project,
+ halfSize = false,
+ onLoad,
+}: {
+ project: Project;
+ halfSize?: boolean;
+ onLoad?: (e: React.SyntheticEvent) => void;
+}) => {
+ const isLoaded = useRef(false);
+ const ref = useRef(null);
+ useEffect(() => {
+ if (isLoaded.current && ref.current) {
+ if (halfSize) {
+ ref.current.width = ref.current.naturalWidth / 4;
+ ref.current.height = ref.current.naturalHeight / 4;
+ } else {
+ ref.current.width = ref.current.naturalWidth / 2;
+ ref.current.height = ref.current.naturalHeight / 2;
+ }
+ }
+ }, [halfSize]);
+ return (
+ {
+ onLoad?.(e);
+ isLoaded.current = true;
+ if (ref.current) {
+ if (halfSize) {
+ ref.current.width = ref.current.naturalWidth / 4;
+ ref.current.height = ref.current.naturalHeight / 4;
+ } else {
+ ref.current.width = ref.current.naturalWidth / 2;
+ ref.current.height = ref.current.naturalHeight / 2;
+ }
+ }
+ }}
+ />
+ );
+};
+
+function AutoInfiniteScroll({ items, initOffset = 0 }: { initOffset?: number; items: Project[] }) {
+ const isOnPc = useMediaQuery("lg");
+ const initedOffset = useRef(false);
+ const containerRef = useRef(null);
+ const [isHovering, setIsHovering] = useState(false);
+ const [itemsWidth, setItemsWidth] = useState(new Array(items.length).fill(0));
+
+ const isRailsLoaded = useRef(false);
+ const railsRef = useRef(null);
+
+ const handleScroll = useCallback(
+ (e: React.UIEvent) => {
+ const container = e.currentTarget;
+ const scrollPos = container.scrollLeft;
+ const allItemsWidth = itemsWidth.reduce((acc, cur) => acc + cur, 0);
+
+ if (scrollPos >= allItemsWidth) {
+ container.scrollLeft = 1;
+ } else if (scrollPos <= 0) {
+ container.scrollLeft = allItemsWidth + 1;
+ }
+ },
+ [itemsWidth],
+ );
+
+ useEffect(() => {
+ const sub$$ = interval(30).subscribe(() => {
+ if (containerRef.current) {
+ if (!initedOffset.current && containerRef.current.scrollLeft) {
+ initedOffset.current = true;
+ containerRef.current.scrollBy({ left: initOffset });
+ } else if (!isHovering) {
+ containerRef.current.scrollBy(1, 0);
+ }
+ }
+ });
+ return () => {
+ sub$$.unsubscribe();
+ };
+ }, [isHovering, initOffset]);
+
+ useEffect(() => {
+ if (containerRef.current && railsRef.current) {
+ containerRef.current.style.height = `${railsRef.current.clientHeight}px`;
+ }
+ }, [isOnPc]);
+
+ return (
+ setIsHovering(true)}
+ onMouseLeave={() => setIsHovering(false)}
+ >
+
{
+ if (containerRef.current && railsRef.current) {
+ containerRef.current.style.height = `${railsRef.current.clientHeight}px`;
+ }
+ isRailsLoaded.current = true;
+ }}
+ ref={railsRef}
+ >
+ {items.map((item, index) => (
+ {
+ if (e.currentTarget) {
+ const width = e.currentTarget.offsetWidth;
+ setItemsWidth((prev) => {
+ prev[index] = width;
+ return [...prev];
+ });
+ }
+ }}
+ />
+ ))}
+
+ {/* Clone */}
+ {items
+ .concat(items)
+ .concat(items)
+ .map((item, index) => (
+
+ ))}
+
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-slogan.tsx b/apps/helixbox-home/src/components/homepage-slogan.tsx
new file mode 100644
index 000000000..745100e97
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-slogan.tsx
@@ -0,0 +1,21 @@
+export default function HomepageSlogan() {
+ return (
+
+
+
Liquidity
+
Cross-Chain
+
+
+ Without Limits
+
+
+ );
+}
+
+function AnimText({ children, style }: { children: React.ReactNode; style?: React.CSSProperties }) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/homepage-social-media.tsx b/apps/helixbox-home/src/components/homepage-social-media.tsx
new file mode 100644
index 000000000..696d60757
--- /dev/null
+++ b/apps/helixbox-home/src/components/homepage-social-media.tsx
@@ -0,0 +1,30 @@
+const data: { label: string; link: string; icon: string; width: number; height: number }[] = [
+ { label: "Github", link: "https://github.com/helix-bridge", icon: "images/social/github.svg", width: 18, height: 18 },
+ { label: "X", link: "https://x.com/helixofficialx", icon: "images/social/x.svg", width: 16, height: 16 },
+ {
+ label: "Discord",
+ link: "https://discord.gg/6XyyNGugdE",
+ icon: "images/social/discord.svg",
+ width: 21.79,
+ height: 16,
+ },
+ { label: "Email", link: "mailto:hello@helixbridge.app", icon: "images/social/email.svg", width: 19, height: 14 },
+];
+
+export default function HomepageSocialMedia({ className }: { className?: string }) {
+ return (
+
+ {data.map((item) => (
+
+
+
+ ))}
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/pwa-badge.tsx b/apps/helixbox-home/src/components/pwa-badge.tsx
new file mode 100644
index 000000000..064a1aece
--- /dev/null
+++ b/apps/helixbox-home/src/components/pwa-badge.tsx
@@ -0,0 +1,74 @@
+import { useRegisterSW } from "virtual:pwa-register/react";
+import Button from "../ui/button";
+
+export default function PWABadge() {
+ // Periodic sync is disabled, change the value to enable it, the period is in milliseconds
+ // You can remove onRegisteredSW callback and registerPeriodicSync function
+ const period = 0;
+
+ const {
+ needRefresh: [needRefresh, setNeedRefresh],
+ updateServiceWorker,
+ } = useRegisterSW({
+ onRegisteredSW(swUrl, r) {
+ if (period <= 0) return;
+ if (r?.active?.state === "activated") {
+ registerPeriodicSync(period, swUrl, r);
+ } else if (r?.installing) {
+ r.installing.addEventListener("statechange", (e) => {
+ const sw = e.target as ServiceWorker;
+ if (sw.state === "activated") registerPeriodicSync(period, swUrl, r);
+ });
+ }
+ },
+ });
+
+ function close() {
+ setNeedRefresh(false);
+ }
+
+ return (
+
+ {needRefresh && (
+
+
+ New content available, click on Reload button to update.
+
+
+ close()}>
+ Close
+
+ updateServiceWorker(true)}
+ kind="primary"
+ >
+ Reload
+
+
+
+ )}
+
+ );
+}
+
+/**
+ * This function will register a periodic sync check every hour, you can modify the interval as needed.
+ */
+function registerPeriodicSync(period: number, swUrl: string, r: ServiceWorkerRegistration) {
+ if (period <= 0) return;
+
+ setInterval(async () => {
+ if ("onLine" in navigator && !navigator.onLine) return;
+
+ const resp = await fetch(swUrl, {
+ cache: "no-store",
+ headers: {
+ cache: "no-store",
+ "cache-control": "no-cache",
+ },
+ });
+
+ if (resp?.status === 200) await r.update();
+ }, period);
+}
diff --git a/apps/helixbox-home/src/components/slogan-container.tsx b/apps/helixbox-home/src/components/slogan-container.tsx
new file mode 100644
index 000000000..e9874f414
--- /dev/null
+++ b/apps/helixbox-home/src/components/slogan-container.tsx
@@ -0,0 +1,8 @@
+export default function SloganContainer({ children, className }: { children: React.ReactNode; className?: string }) {
+ return (
+
+ );
+}
diff --git a/apps/helixbox-home/src/components/solverpage-feature.tsx b/apps/helixbox-home/src/components/solverpage-feature.tsx
new file mode 100644
index 000000000..dcac97c92
--- /dev/null
+++ b/apps/helixbox-home/src/components/solverpage-feature.tsx
@@ -0,0 +1,27 @@
+interface Props {
+ content: string;
+ img: string;
+ color: string;
+}
+
+export default function SolverpageFeature({ content, img, color }: Props) {
+ return (
+
+
{content}
+
+
+
+
+
+
+ );
+}
+
+// box-shadow: 0px 0px 196px 0px rgba(139, 82, 229, 1);
+// background: linear-gradient(180deg, #5C00A3 0%, #8B52E5 100%);
diff --git a/apps/helixbox-home/src/components/solverpage-features/1.png b/apps/helixbox-home/src/components/solverpage-features/1.png
new file mode 100644
index 000000000..07491e2db
Binary files /dev/null and b/apps/helixbox-home/src/components/solverpage-features/1.png differ
diff --git a/apps/helixbox-home/src/components/solverpage-features/2.png b/apps/helixbox-home/src/components/solverpage-features/2.png
new file mode 100644
index 000000000..4bb20434f
Binary files /dev/null and b/apps/helixbox-home/src/components/solverpage-features/2.png differ
diff --git a/apps/helixbox-home/src/components/solverpage-features/3.png b/apps/helixbox-home/src/components/solverpage-features/3.png
new file mode 100644
index 000000000..42385d160
Binary files /dev/null and b/apps/helixbox-home/src/components/solverpage-features/3.png differ
diff --git a/apps/helixbox-home/src/components/solverpage-features/index.tsx b/apps/helixbox-home/src/components/solverpage-features/index.tsx
new file mode 100644
index 000000000..a1491babe
--- /dev/null
+++ b/apps/helixbox-home/src/components/solverpage-features/index.tsx
@@ -0,0 +1,32 @@
+import SolverpageFeature from "../solverpage-feature";
+import f01 from "./1.png";
+import f02 from "./2.png";
+import f03 from "./3.png";
+
+const features = [
+ {
+ content: "Market-making services for cross-chain bridges",
+ img: f01,
+ color: "#017FE4",
+ },
+ {
+ content: "Solver services for platforms like CowSwap and UniswapX",
+ img: f02,
+ color: "#8B52E5",
+ },
+ {
+ content: "AMM aggregation and multi-chain asset rebalancing",
+ img: f03,
+ color: "#FF130F",
+ },
+];
+
+export default function SolverpageFeatures() {
+ return (
+
+ {features.map((feature, index) => (
+
+ ))}
+
+ );
+}
diff --git a/apps/helixbox-home/src/hooks/use-media-query.ts b/apps/helixbox-home/src/hooks/use-media-query.ts
new file mode 100644
index 000000000..c7dd7de4a
--- /dev/null
+++ b/apps/helixbox-home/src/hooks/use-media-query.ts
@@ -0,0 +1,36 @@
+import { useEffect, useState } from "react";
+
+type BreakpointPrefix = "sm" | "md" | "lg" | "xl" | "2xl";
+
+const mapping: Record = {
+ sm: "640px",
+ md: "768px",
+ lg: "1024px",
+ xl: "1280px",
+ "2xl": "1536px",
+};
+
+/**
+ * Check if media query matches. Refer to https://tailwindcss.com/docs/responsive-design
+ * @param breakpoint "sm" | "md" | "lg" | "xl" | "2xl"
+ * @returns boolean
+ */
+export function useMediaQuery(breakpoint: BreakpointPrefix) {
+ const [matches, setMatches] = useState(false);
+
+ useEffect(() => {
+ const mql = window.matchMedia(`(min-width: ${mapping[breakpoint]})`);
+ setMatches(mql.matches);
+
+ const listener = (e: MediaQueryListEvent) => {
+ setMatches(e.matches);
+ };
+ mql.addEventListener("change", listener, false);
+
+ return () => {
+ mql.addEventListener("change", listener, false);
+ };
+ }, [breakpoint]);
+
+ return matches;
+}
diff --git a/apps/helixbox-home/src/index.css b/apps/helixbox-home/src/index.css
new file mode 100644
index 000000000..a3272eb93
--- /dev/null
+++ b/apps/helixbox-home/src/index.css
@@ -0,0 +1,475 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: normal;
+ font-weight: 100;
+ src: url(/fonts/IBMPlexSans-Thin.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: italic;
+ font-weight: 100;
+ src: url(/fonts/IBMPlexSans-ThinItalic.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: normal;
+ font-weight: 200;
+ src: url(/fonts/IBMPlexSans-ExtraLight.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: italic;
+ font-weight: 200;
+ src: url(/fonts/IBMPlexSans-ExtraLightItalic.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: normal;
+ font-weight: 300;
+ src: url(/fonts/IBMPlexSans-Light.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: italic;
+ font-weight: 300;
+ src: url(/fonts/IBMPlexSans-LightItalic.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: normal;
+ font-weight: 400;
+ src: url(/fonts/IBMPlexSans-Regular.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: italic;
+ font-weight: 400;
+ src: url(/fonts/IBMPlexSans-Italic.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: normal;
+ font-weight: 500;
+ src: url(/fonts/IBMPlexSans-Medium.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: italic;
+ font-weight: 500;
+ src: url(/fonts/IBMPlexSans-MediumItalic.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: normal;
+ font-weight: 600;
+ src: url(/fonts/IBMPlexSans-SemiBold.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: italic;
+ font-weight: 600;
+ src: url(/fonts/IBMPlexSans-SemiBoldItalic.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: normal;
+ font-weight: 700 800;
+ src: url(/fonts/IBMPlexSans-Bold.ttf);
+ }
+ @font-face {
+ font-family: "IBMPlexSans";
+ font-style: italic;
+ font-weight: 700 800;
+ src: url(/fonts/IBMPlexSans-BoldItalic.ttf);
+ }
+ @font-face {
+ font-family: "KronaOne";
+ font-style: normal;
+ font-weight: 400;
+ src: url(/fonts/KronaOne-Regular.ttf);
+ }
+}
+
+@layer components {
+ .app-scrollbar::-webkit-scrollbar {
+ width: 4px;
+ }
+ .app-scrollbar::-webkit-scrollbar-thumb {
+ border-radius: 10px;
+ box-shadow: inset 0 0 5x rgba(0, 0, 0, 0.2);
+ background: hsla(0, 0%, 100%, 0.4);
+ }
+
+ /* Layout */
+ .app-header {
+ @apply h-[64px];
+ }
+ .app-footer {
+ @apply h-[48px];
+ }
+ .app-main {
+ min-height: calc(100vh - 64px - 48px);
+ @apply mt-[64px];
+ }
+
+ /* Page */
+ .page-container {
+ @apply max-w-8xl px-medium mx-auto w-full py-5;
+ }
+
+ /* User */
+ .user-connect-wallet {
+ @apply gap-medium rounded-medium bg-primary px-large lg:hover:bg-primary/80 flex h-9 shrink-0 items-center transition lg:active:translate-y-1;
+ }
+ .user-dropdown-item {
+ @apply gap-medium px-medium py-small inline-flex items-center rounded-xl text-start transition hover:bg-white/10 lg:active:translate-y-1;
+ }
+
+ .button {
+ @apply flex h-8 items-center justify-center lg:h-9;
+ }
+
+ /* Input */
+ .normal-input-wrap {
+ @apply border transition-colors duration-300;
+ }
+ .valid-input-wrap {
+ }
+ .invalid-input-wrap {
+ @apply border-app-red focus-within:border-app-red hover:border-app-red;
+ }
+
+ .select {
+ @apply focus-within:border-primary hover:border-primary border transition duration-300 disabled:cursor-not-allowed disabled:opacity-60 lg:active:translate-y-1 lg:disabled:translate-y-0;
+ }
+}
+
+/* Page header loading bar */
+.loading-bar {
+ background: linear-gradient(90deg, #ffffff 35%, #0085ff 50%, #ffffff 65%);
+ background-position: 100% 50%;
+ background-size: 40% 100%;
+ animation: bar-loading 2.4s linear infinite;
+}
+@keyframes bar-loading {
+ 0% {
+ background-position: 0% 50%;
+ }
+ 100% {
+ background-position: 100% 50%;
+ }
+}
+
+.refresh-countdown {
+ animation: countdown-dash 9.3s linear infinite;
+ animation-delay: 0.7s;
+}
+@keyframes countdown-dash {
+ from {
+ stroke-dashoffset: 0;
+ }
+ to {
+ stroke-dashoffset: -30;
+ }
+}
+
+/* Ellipsis */
+.ellipsis,
+.ellipsis::before,
+.ellipsis::after {
+ animation: ellipsis-frames 1.4s linear infinite;
+ line-height: 0.875rem;
+ font-size: 1rem;
+ font-weight: 700;
+}
+.ellipsis {
+ position: relative;
+}
+.ellipsis::before,
+.ellipsis::after {
+ top: 0;
+ content: ".";
+ position: absolute;
+}
+.ellipsis::before {
+ left: -8px;
+ animation-delay: -0.16s;
+}
+.ellipsis::after {
+ left: 8px;
+ animation-delay: 0.16s;
+}
+@keyframes ellipsis-frames {
+ from {
+ color: #ffffff;
+ }
+ to {
+ color: transparent;
+ }
+}
+
+/* Tx in progress */
+.tx-in-progress {
+ width: 32px;
+ height: 90px;
+ display: block;
+ margin: 20px auto;
+ position: relative;
+ border-radius: 50% 50% 0 0;
+ border-bottom: 10px solid #0085ff;
+ background-color: #fff;
+ background-image: radial-gradient(ellipse at center, #fff 34%, #0085ff 35%, #0085ff 54%, #fff 55%),
+ linear-gradient(#0085ff 10px, transparent 0);
+ background-size: 28px 28px;
+ background-position:
+ center 20px,
+ center 2px;
+ background-repeat: no-repeat;
+ box-sizing: border-box;
+ animation: animloader-back 4s linear infinite alternate;
+}
+.tx-in-progress::before {
+ content: "";
+ box-sizing: border-box;
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 64px;
+ height: 44px;
+ border-radius: 50%;
+ box-shadow: 0px 15px #0085ff inset;
+ top: 67px;
+}
+.tx-in-progress::after {
+ content: "";
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%) rotate(45deg);
+ width: 34px;
+ height: 34px;
+ top: 112%;
+ background: radial-gradient(
+ ellipse at center,
+ rgba(255, 255, 255, 0.5) 8%,
+ rgba(0, 133, 255, 0.6) 24%,
+ rgba(0, 0, 0, 0) 100%
+ );
+ border-radius: 50% 50% 0;
+ background-repeat: no-repeat;
+ background-position: -44px -44px;
+ background-size: 100px 100px;
+ box-shadow: 4px 4px 12px 0px rgba(0, 133, 255, 0.5);
+ box-sizing: border-box;
+ animation: animloader 4s linear infinite alternate;
+}
+@keyframes animloader-back {
+ 0%,
+ 7.5%,
+ 17.5% {
+ transform: translateY(0px);
+ }
+ 5%,
+ 10%,
+ 25% {
+ transform: translateY(-5px);
+ }
+}
+@keyframes animloader {
+ 0% {
+ box-shadow: 4px 4px 12px 2px rgba(255, 255, 255, 0.75);
+ width: 34px;
+ height: 34px;
+ background-position: -44px -44px;
+ background-size: 100px 100px;
+ }
+ 25% {
+ box-shadow: 2px 2px 8px 0px rgba(255, 255, 255, 0.5);
+ width: 30px;
+ height: 28px;
+ background-position: -36px -36px;
+ background-size: 80px 80px;
+ }
+}
+
+/* Drawer */
+.drawer-fade-enter {
+ opacity: 0;
+}
+.drawer-fade-enter > div {
+ transform: translateX(100%);
+}
+.drawer-fade-enter-active {
+ opacity: 1;
+ transition: opacity 300ms;
+}
+.drawer-fade-enter-active > div {
+ transform: translateX(0);
+ transition: transform 300ms;
+}
+.drawer-fade-exit {
+ opacity: 1;
+}
+.drawer-fade-exit > div {
+ transform: translateX(0);
+}
+.drawer-fade-exit-active {
+ opacity: 0;
+ transition: opacity 300ms;
+}
+.drawer-fade-exit-active > div {
+ transform: translateX(100%);
+ transition: transform 300ms;
+}
+
+/* Tabs */
+.tabs-fade-enter {
+ opacity: 0;
+}
+.tabs-fade-enter-active {
+ opacity: 1;
+ transition: opacity 150ms;
+}
+.tabs-fade-exit {
+ opacity: 1;
+}
+.tabs-fade-exit-active {
+ opacity: 0;
+ transition: opacity 150ms;
+}
+
+.video-fade-enter {
+ opacity: 0;
+ transform: scale(0.9);
+}
+.video-fade-enter-active {
+ opacity: 1;
+ transform: scale(1);
+ transition: opacity 200ms, transform 200ms;
+}
+.video-fade-exit {
+ opacity: 1;
+ transform: scale(1);
+}
+.video-fade-exit-active {
+ opacity: 0;
+ transform: scale(0.9);
+ transition: opacity 200ms, transform 200ms;
+}
+
+/* History */
+.history-table-fade-enter {
+ opacity: 0;
+ transform: translateX(-10px);
+}
+.history-table-fade-enter-active {
+ opacity: 1;
+ transform: translateX(0);
+ transition:
+ opacity 100ms,
+ transform 100ms;
+}
+.history-table-fade-exit {
+ opacity: 1;
+ transform: translateX(0);
+}
+.history-table-fade-exit-active {
+ opacity: 0;
+ transform: translateX(-10px);
+ transition:
+ opacity 100ms,
+ transform 100ms;
+}
+.history-detail-fade-enter {
+ opacity: 0;
+ transform: translateX(10px);
+}
+.history-detail-fade-enter-active {
+ opacity: 1;
+ transform: translateX(0);
+ transition:
+ opacity 100ms,
+ transform 100ms;
+}
+.history-detail-fade-exit {
+ opacity: 1;
+ transform: translateX(0);
+}
+.history-detail-fade-exit-active {
+ opacity: 0;
+ transform: translateX(10px);
+ transition:
+ opacity 100ms,
+ transform 100ms;
+}
+
+/* Component loading */
+.component-loading-appear,
+.component-loading-enter {
+ background-color: transparent;
+}
+.component-loading-appear-active,
+.component-loading-enter-active {
+ background-color: rgba(0, 0, 0, 0.35);
+ transition: background-color 300ms;
+}
+.component-loading-appear-done,
+.component-loading-enter-done {
+ background-color: rgba(0, 0, 0, 0.35);
+}
+.component-loading-exit {
+ background-color: rgba(0, 0, 0, 0.35);
+}
+.component-loading-exit-active {
+ background-color: transparent;
+ transition: background-color 300ms;
+}
+
+/* Modal */
+.modal-fade-appear,
+.modal-fade-enter {
+ opacity: 0;
+}
+.modal-fade-appear > div,
+.modal-fade-enter > div {
+ transform: scale(0.5);
+}
+.modal-fade-appear-active,
+.modal-fade-enter-active {
+ opacity: 1;
+ transition: opacity 300ms;
+}
+.modal-fade-appear-active > div,
+.modal-fade-enter-active > div {
+ transform: scale(1);
+ transition: transform 300ms;
+}
+.modal-fade-exit {
+ opacity: 1;
+}
+.modal-fade-exit > div {
+ transform: scale(1);
+}
+.modal-fade-exit-active {
+ opacity: 0;
+ transition: opacity 300ms;
+}
+.modal-fade-exit-active > div {
+ transform: scale(0.5);
+ transition: transform 300ms;
+}
+
+/* For Webkit-based browsers (Chrome, Safari and Opera) */
+.scrollbar-hidden::-webkit-scrollbar {
+ display: none;
+}
+
+/* For IE, Edge and Firefox */
+.scrollbar-hidden {
+ -ms-overflow-style: none; /* IE and Edge */
+ scrollbar-width: none; /* Firefox */
+}
diff --git a/apps/helixbox-home/src/layout.tsx b/apps/helixbox-home/src/layout.tsx
new file mode 100644
index 000000000..12948b1ac
--- /dev/null
+++ b/apps/helixbox-home/src/layout.tsx
@@ -0,0 +1,18 @@
+import { Outlet, useLocation } from "react-router-dom";
+import HomepageHeader from "./components/homepage-header";
+import HomepageFooter from "./components/homepage-footer";
+import { useEffect } from "react";
+
+export default function Layout() {
+ const { pathname } = useLocation();
+ useEffect(() => {
+ window.scrollTo(0, 0);
+ }, [pathname]);
+ return (
+ <>
+
+
+
+ >
+ );
+}
diff --git a/apps/helixbox-home/src/main.tsx b/apps/helixbox-home/src/main.tsx
new file mode 100644
index 000000000..a7955995e
--- /dev/null
+++ b/apps/helixbox-home/src/main.tsx
@@ -0,0 +1,27 @@
+import React from "react";
+import ReactDOM from "react-dom/client";
+import "./index.css";
+import { RouterProvider } from "react-router-dom";
+import { router } from "./router.tsx";
+import PWABadge from "./components/pwa-badge.tsx";
+
+import * as Sentry from "@sentry/react";
+
+Sentry.init({
+ dsn: "https://a66eef9c0aaa54aab451554089b9bebd@o4507939319906304.ingest.us.sentry.io/4507939325411328",
+ integrations: [Sentry.browserTracingIntegration(), Sentry.replayIntegration()],
+ // Tracing
+ tracesSampleRate: 1.0, // Capture 100% of the transactions
+ // Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled
+ tracePropagationTargets: ["localhost", /^https:\/\/yourserver\.io\/api/],
+ // Session Replay
+ replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.
+ replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.
+});
+
+ReactDOM.createRoot(document.getElementById("root")!).render(
+
+
+
+ ,
+);
diff --git a/apps/helixbox-home/src/router.tsx b/apps/helixbox-home/src/router.tsx
new file mode 100644
index 000000000..33fa6e732
--- /dev/null
+++ b/apps/helixbox-home/src/router.tsx
@@ -0,0 +1,19 @@
+import { createHashRouter } from "react-router-dom";
+import NotFound from "./routes/not-found";
+import Error from "./routes/error";
+import Home from "./routes/home";
+import Solver from "./routes/solver";
+import Layout from "./layout";
+
+export const router = createHashRouter([
+ {
+ path: "/",
+ element: ,
+ children: [
+ { index: true, element: },
+ { path: "liquidity-solver", element: },
+ ],
+ errorElement: ,
+ },
+ { path: "*", element: },
+]);
diff --git a/apps/helixbox-home/src/routes/error.tsx b/apps/helixbox-home/src/routes/error.tsx
new file mode 100644
index 000000000..92e982896
--- /dev/null
+++ b/apps/helixbox-home/src/routes/error.tsx
@@ -0,0 +1,16 @@
+import { useRouteError } from "react-router-dom";
+
+export default function Error() {
+ const error = useRouteError() as { statusText?: string; message?: string };
+ // console.error(error);
+
+ return (
+
+ Oops!
+ Sorry, an unexpected error has occurred.
+
+ {error.statusText || error.message}
+
+
+ );
+}
diff --git a/apps/helixbox-home/src/routes/home.tsx b/apps/helixbox-home/src/routes/home.tsx
new file mode 100644
index 000000000..c86b31368
--- /dev/null
+++ b/apps/helixbox-home/src/routes/home.tsx
@@ -0,0 +1,21 @@
+import HomepageSlogan from "../components/homepage-slogan";
+import HomepageOneStopEntry from "../components/homepage-one-stop-entry";
+import HomepageProducts from "../components/homepage-products";
+import HomepageProjects from "../components/homepage-projects";
+import SloganContainer from "../components/slogan-container";
+
+export default function Home() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/helixbox-home/src/routes/not-found.tsx b/apps/helixbox-home/src/routes/not-found.tsx
new file mode 100644
index 000000000..60f6cee71
--- /dev/null
+++ b/apps/helixbox-home/src/routes/not-found.tsx
@@ -0,0 +1,17 @@
+import { Link } from "react-router-dom";
+
+export default function NotFound() {
+ return (
+ <>
+
+
+
Not Found !
+
Could not find requested resource
+
+ Return Home
+
+
+
+ >
+ );
+}
diff --git a/apps/helixbox-home/src/routes/solver.tsx b/apps/helixbox-home/src/routes/solver.tsx
new file mode 100644
index 000000000..d64899fae
--- /dev/null
+++ b/apps/helixbox-home/src/routes/solver.tsx
@@ -0,0 +1,21 @@
+import SloganContainer from "../components/slogan-container";
+import SolverpageFeatures from "../components/solverpage-features";
+
+export default function Solver() {
+ return (
+
+
+
+ Helixbox Liquidity Solver
+
+
+ High-Quality
+
+
+ Liquidity Sources Provider
+
+
+
+
+ );
+}
diff --git a/apps/helixbox-home/src/ui/button.tsx b/apps/helixbox-home/src/ui/button.tsx
new file mode 100644
index 000000000..e1eedd1dd
--- /dev/null
+++ b/apps/helixbox-home/src/ui/button.tsx
@@ -0,0 +1,30 @@
+import { ButtonHTMLAttributes, forwardRef } from "react";
+
+interface Props {
+ kind?: "default" | "primary";
+ busy?: boolean;
+ disabled?: boolean;
+}
+
+export default forwardRef & Props>(function Button(
+ { kind, busy, disabled, className, children, ...rest },
+ ref,
+) {
+ return (
+
+ {busy && (
+
+ )}
+ {children}
+
+ );
+});
diff --git a/apps/helixbox-home/src/vite-env.d.ts b/apps/helixbox-home/src/vite-env.d.ts
new file mode 100644
index 000000000..ec878b71d
--- /dev/null
+++ b/apps/helixbox-home/src/vite-env.d.ts
@@ -0,0 +1,2 @@
+///
+///
diff --git a/apps/helixbox-home/tailwind.config.js b/apps/helixbox-home/tailwind.config.js
new file mode 100644
index 000000000..b895ce0d2
--- /dev/null
+++ b/apps/helixbox-home/tailwind.config.js
@@ -0,0 +1,45 @@
+import defaultTheme from "tailwindcss/defaultTheme";
+
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: ["./index.html", "./src/**/*.{jsx,tsx}"],
+ theme: {
+ extend: {
+ colors: {
+ primary: "#0085FF",
+ },
+ borderRadius: {
+ small: "0.25rem", // 4px
+ medium: "0.5rem", // 8px
+ large: "1rem", // 16px
+ extralarge: "1.5rem", // 24px
+ },
+ spacing: {
+ small: "0.3125rem", // 5px
+ medium: "0.625rem", // 10px
+ large: "0.9375rem", // 15px
+ },
+ maxWidth: {
+ "8xl": "90rem",
+ },
+ screens: {
+ xl: "1200px",
+ "2xl": "1200px",
+ },
+ keyframes: {
+ "scroll-to-bottom": {
+ "0%": { top: "1lh" },
+ "20%, 55%": { top: "0lh" },
+ "60%, 100%": { top: "-1lh" },
+ },
+ },
+ animation: {
+ "scroll-to-bottom": "scroll-to-bottom 7000ms cubic-bezier(0.62, 0, 0.38, 1.0) infinite",
+ },
+ },
+ fontFamily: {
+ sans: ["IBMPlexSans", ...defaultTheme.fontFamily.sans],
+ },
+ },
+ plugins: [],
+};
diff --git a/apps/helixbox-home/tsconfig.json b/apps/helixbox-home/tsconfig.json
new file mode 100644
index 000000000..e5cd43d91
--- /dev/null
+++ b/apps/helixbox-home/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true
+ },
+ "include": ["src"],
+ "references": [{ "path": "./tsconfig.node.json" }]
+}
diff --git a/apps/helixbox-home/tsconfig.node.json b/apps/helixbox-home/tsconfig.node.json
new file mode 100644
index 000000000..97ede7ee6
--- /dev/null
+++ b/apps/helixbox-home/tsconfig.node.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "skipLibCheck": true,
+ "module": "ESNext",
+ "moduleResolution": "bundler",
+ "allowSyntheticDefaultImports": true,
+ "strict": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/apps/helixbox-home/turbo.json b/apps/helixbox-home/turbo.json
new file mode 100644
index 000000000..5af1d6aea
--- /dev/null
+++ b/apps/helixbox-home/turbo.json
@@ -0,0 +1,8 @@
+{
+ "extends": ["//"],
+ "tasks": {
+ "build": {
+ "env": ["VITE_*"]
+ }
+ }
+}
diff --git a/apps/helixbox-home/vite.config.ts b/apps/helixbox-home/vite.config.ts
new file mode 100644
index 000000000..af8ba5f8c
--- /dev/null
+++ b/apps/helixbox-home/vite.config.ts
@@ -0,0 +1,52 @@
+import { sentryVitePlugin } from "@sentry/vite-plugin";
+///
+
+import { defineConfig } from "vite";
+import react from "@vitejs/plugin-react-swc";
+import { VitePWA } from "vite-plugin-pwa";
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ base: "",
+
+ plugins: [
+ react(),
+ VitePWA({
+ registerType: "prompt",
+ injectRegister: false,
+ manifestFilename: "manifest.json",
+ pwaAssets: {
+ disabled: false,
+ config: true,
+ },
+ manifest: {
+ name: "Helix Bridge",
+ short_name: "HelixBridge",
+ description: "Secure, fast, and low-cost cross-chain crypto transfers",
+ theme_color: "#00141D",
+ background_color: "#00141D",
+ },
+ workbox: {
+ globPatterns: ["**/*.{js,css,html,svg,png,ico}"],
+ cleanupOutdatedCaches: true,
+ clientsClaim: true,
+ maximumFileSizeToCacheInBytes: 6291456, // 6MB
+ },
+ devOptions: {
+ enabled: false,
+ navigateFallback: "index.html",
+ suppressWarnings: true,
+ type: "module",
+ },
+ selfDestroying: true,
+ }),
+ sentryVitePlugin({
+ org: "helix-ck",
+ project: "javascript-react",
+ }),
+ ],
+
+ build: {
+ sourcemap: true,
+ },
+});
diff --git a/apps/web/src/routes/root.tsx b/apps/web/src/routes/root.tsx
deleted file mode 100644
index c745474dc..000000000
--- a/apps/web/src/routes/root.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import Footer from "../components/footer";
-import Header from "../components/header";
-import AppProvider from "../providers/app-provider";
-import GraphqlProvider from "../providers/graphql-provider";
-import { Outlet } from "react-router-dom";
-import WalletConnectProvider from "../providers/walletconnect-provider";
-
-export default function Root() {
- return (
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/package.json b/package.json
index c7fadb9a1..3632dc7d9 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "helix-ui",
- "description": "HelixBridge Interfaces",
+ "description": "Helixbox Interfaces",
"private": true,
"scripts": {
"build": "turbo run build",
@@ -8,24 +8,28 @@
"lint": "turbo run lint",
"test": "turbo run test",
"clean": "turbo run clean && pnpm store prune && rm -rf .turbo node_modules",
- "web": "pnpm --filter @helixbridge/web",
- "build:web": "pnpm run build --filter @helixbridge/web",
- "build:ui": "pnpm run build --filter @helixbridge/ui",
+ "helix": "pnpm --filter helix",
+ "home": "pnpm --filter helixbox-home",
+ "app": "pnpm --filter helixbox-app",
+ "build:helix": "pnpm --filter helix run build",
+ "build:home": "pnpm --filter helixbox-home run build",
+ "build:app": "pnpm --filter helixbox-app run build",
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,yaml}\"",
"changeset": "changeset",
"version-packages": "changeset version",
"release": "turbo build --filter=./packages/* && changeset publish",
"prepare": "husky",
- "postinstall": "pnpm --filter @helixbridge/web run codegen:graphql"
+ "postinstall": "pnpm --filter helixbox-app run codegen:graphql"
},
"repository": {
"type": "git",
"url": "git+https://github.com/helix-bridge/helix-ui.git"
},
"keywords": [
+ "helixbox",
"helix",
"helix-ui",
- "helixbridge"
+ "helixbox bridge"
],
"bugs": {
"url": "https://github.com/helix-bridge/helix-ui/issues"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index cb0b3fb87..3727ba897 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -26,7 +26,89 @@ importers:
specifier: ^2.0.9
version: 2.0.9
- apps/web:
+ apps/helix:
+ dependencies:
+ localforage:
+ specifier: ^1.10.0
+ version: 1.10.0
+ match-sorter:
+ specifier: ^7.0.0
+ version: 7.0.0
+ react:
+ specifier: ^18.2.0
+ version: 18.3.1
+ react-dom:
+ specifier: ^18.2.0
+ version: 18.3.1(react@18.3.1)
+ react-router-dom:
+ specifier: ^6.27.0
+ version: 6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ sort-by:
+ specifier: ^1.2.0
+ version: 1.2.0
+ devDependencies:
+ "@types/react":
+ specifier: ^18.2.66
+ version: 18.3.3
+ "@types/react-dom":
+ specifier: ^18.2.22
+ version: 18.3.0
+ "@typescript-eslint/eslint-plugin":
+ specifier: ^7.2.0
+ version: 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
+ "@typescript-eslint/parser":
+ specifier: ^7.2.0
+ version: 7.17.0(eslint@8.57.0)(typescript@5.5.4)
+ "@vite-pwa/assets-generator":
+ specifier: ^0.2.4
+ version: 0.2.4
+ "@vitejs/plugin-react-swc":
+ specifier: ^3.5.0
+ version: 3.7.0(@swc/helpers@0.5.12)(vite@5.3.4(@types/node@20.14.12)(terser@5.31.6))
+ autoprefixer:
+ specifier: ^10.4.19
+ version: 10.4.19(postcss@8.4.39)
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.0
+ eslint-config-prettier:
+ specifier: ^9.1.0
+ version: 9.1.0(eslint@8.57.0)
+ eslint-config-turbo:
+ specifier: ^2.0.0
+ version: 2.0.9(eslint@8.57.0)
+ eslint-plugin-react-hooks:
+ specifier: ^4.6.0
+ version: 4.6.2(eslint@8.57.0)
+ eslint-plugin-react-refresh:
+ specifier: ^0.4.6
+ version: 0.4.9(eslint@8.57.0)
+ postcss:
+ specifier: ^8.4.38
+ version: 8.4.39
+ tailwindcss:
+ specifier: ^3.4.3
+ version: 3.4.6
+ typescript:
+ specifier: ^5.2.2
+ version: 5.5.4
+ vite:
+ specifier: ^5.2.0
+ version: 5.3.4(@types/node@20.14.12)(terser@5.31.6)
+ vite-plugin-pwa:
+ specifier: ^0.20.1
+ version: 0.20.1(@vite-pwa/assets-generator@0.2.4)(vite@5.3.4(@types/node@20.14.12)(terser@5.31.6))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.1.0)
+ vitest:
+ specifier: ^1.6.0
+ version: 1.6.0(@types/node@20.14.12)(terser@5.31.6)
+ workbox-core:
+ specifier: ^7.1.0
+ version: 7.1.0
+ workbox-window:
+ specifier: ^7.1.0
+ version: 7.1.0
+
+ apps/helixbox-app:
dependencies:
"@apollo/client":
specifier: ^3.10.3
@@ -42,7 +124,7 @@ importers:
version: 1.0.7(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)
"@reown/appkit-adapter-wagmi":
specifier: ^1.0.7
- version: 1.0.7(f3kwnolqgggnwa3wyrus5szn2e)
+ version: 1.0.7(l3bqwg3q27kpoc3uzgnypsmksq)
"@sentry/react":
specifier: ^8.30.0
version: 8.30.0(react@18.3.1)
@@ -65,8 +147,8 @@ importers:
specifier: ^1.10.0
version: 1.10.0
match-sorter:
- specifier: ^6.3.4
- version: 6.3.4
+ specifier: ^7.0.0
+ version: 7.0.0
react:
specifier: ^18.2.0
version: 18.3.1
@@ -77,8 +159,8 @@ importers:
specifier: ^1.0.4
version: 1.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-router-dom:
- specifier: ^6.23.1
- version: 6.25.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^6.27.0
+ version: 6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react-transition-group:
specifier: ^4.4.5
version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -86,14 +168,14 @@ importers:
specifier: ^7.8.1
version: 7.8.1
sort-by:
- specifier: ^0.0.2
- version: 0.0.2
+ specifier: ^1.2.0
+ version: 1.2.0
viem:
specifier: ^2.21.19
version: 2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)
wagmi:
specifier: ^2.12.17
- version: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
+ version: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
devDependencies:
"@graphql-codegen/cli":
specifier: 5.0.3
@@ -174,6 +256,109 @@ importers:
specifier: ^7.1.0
version: 7.1.0
+ apps/helixbox-home:
+ dependencies:
+ "@floating-ui/react":
+ specifier: ^0.26.14
+ version: 0.26.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ "@sentry/react":
+ specifier: ^8.30.0
+ version: 8.30.0(react@18.3.1)
+ "@sentry/vite-plugin":
+ specifier: ^2.22.4
+ version: 2.22.4
+ localforage:
+ specifier: ^1.10.0
+ version: 1.10.0
+ match-sorter:
+ specifier: ^7.0.0
+ version: 7.0.0
+ react:
+ specifier: ^18.2.0
+ version: 18.3.1
+ react-dom:
+ specifier: ^18.2.0
+ version: 18.3.1(react@18.3.1)
+ react-router-dom:
+ specifier: ^6.27.0
+ version: 6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-transition-group:
+ specifier: ^4.4.5
+ version: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rxjs:
+ specifier: ^7.8.1
+ version: 7.8.1
+ sort-by:
+ specifier: ^1.2.0
+ version: 1.2.0
+ devDependencies:
+ "@graphql-typed-document-node/core":
+ specifier: ^3.2.0
+ version: 3.2.0(graphql@16.9.0)
+ "@types/react":
+ specifier: ^18.2.66
+ version: 18.3.3
+ "@types/react-dom":
+ specifier: ^18.2.22
+ version: 18.3.0
+ "@types/react-transition-group":
+ specifier: ^4.4.10
+ version: 4.4.10
+ "@typescript-eslint/eslint-plugin":
+ specifier: ^7.2.0
+ version: 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
+ "@typescript-eslint/parser":
+ specifier: ^7.2.0
+ version: 7.17.0(eslint@8.57.0)(typescript@5.5.4)
+ "@vite-pwa/assets-generator":
+ specifier: ^0.2.4
+ version: 0.2.4
+ "@vitejs/plugin-react-swc":
+ specifier: ^3.5.0
+ version: 3.7.0(@swc/helpers@0.5.12)(vite@5.3.4(@types/node@20.14.12)(terser@5.31.6))
+ autoprefixer:
+ specifier: ^10.4.19
+ version: 10.4.19(postcss@8.4.39)
+ eslint:
+ specifier: ^8.57.0
+ version: 8.57.0
+ eslint-config-prettier:
+ specifier: ^9.1.0
+ version: 9.1.0(eslint@8.57.0)
+ eslint-config-turbo:
+ specifier: ^2.0.0
+ version: 2.0.9(eslint@8.57.0)
+ eslint-plugin-react-hooks:
+ specifier: ^4.6.0
+ version: 4.6.2(eslint@8.57.0)
+ eslint-plugin-react-refresh:
+ specifier: ^0.4.6
+ version: 0.4.9(eslint@8.57.0)
+ postcss:
+ specifier: ^8.4.38
+ version: 8.4.39
+ tailwindcss:
+ specifier: ^3.4.3
+ version: 3.4.6
+ typescript:
+ specifier: ^5.2.2
+ version: 5.5.4
+ vite:
+ specifier: ^5.2.0
+ version: 5.3.4(@types/node@20.14.12)(terser@5.31.6)
+ vite-plugin-pwa:
+ specifier: ^0.20.1
+ version: 0.20.1(@vite-pwa/assets-generator@0.2.4)(vite@5.3.4(@types/node@20.14.12)(terser@5.31.6))(workbox-build@7.1.1(@types/babel__core@7.20.5))(workbox-window@7.1.0)
+ vitest:
+ specifier: ^1.6.0
+ version: 1.6.0(@types/node@20.14.12)(terser@5.31.6)
+ workbox-core:
+ specifier: ^7.1.0
+ version: 7.1.0
+ workbox-window:
+ specifier: ^7.1.0
+ version: 7.1.0
+
packages/assets: {}
packages/chains:
@@ -367,31 +552,16 @@ packages:
{ integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== }
engines: { node: ">=6.9.0" }
- "@babel/compat-data@7.24.9":
- resolution:
- { integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng== }
- engines: { node: ">=6.9.0" }
-
"@babel/compat-data@7.25.4":
resolution:
{ integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== }
engines: { node: ">=6.9.0" }
- "@babel/core@7.24.9":
- resolution:
- { integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg== }
- engines: { node: ">=6.9.0" }
-
"@babel/core@7.25.2":
resolution:
{ integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== }
engines: { node: ">=6.9.0" }
- "@babel/generator@7.24.10":
- resolution:
- { integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg== }
- engines: { node: ">=6.9.0" }
-
"@babel/generator@7.25.5":
resolution:
{ integrity: sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w== }
@@ -407,11 +577,6 @@ packages:
{ integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== }
engines: { node: ">=6.9.0" }
- "@babel/helper-compilation-targets@7.24.8":
- resolution:
- { integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw== }
- engines: { node: ">=6.9.0" }
-
"@babel/helper-compilation-targets@7.25.2":
resolution:
{ integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== }
@@ -437,21 +602,6 @@ packages:
peerDependencies:
"@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0
- "@babel/helper-environment-visitor@7.24.7":
- resolution:
- { integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-function-name@7.24.7":
- resolution:
- { integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== }
- engines: { node: ">=6.9.0" }
-
- "@babel/helper-hoist-variables@7.24.7":
- resolution:
- { integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== }
- engines: { node: ">=6.9.0" }
-
"@babel/helper-member-expression-to-functions@7.24.8":
resolution:
{ integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== }
@@ -462,13 +612,6 @@ packages:
{ integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== }
engines: { node: ">=6.9.0" }
- "@babel/helper-module-transforms@7.24.9":
- resolution:
- { integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw== }
- engines: { node: ">=6.9.0" }
- peerDependencies:
- "@babel/core": ^7.0.0
-
"@babel/helper-module-transforms@7.25.2":
resolution:
{ integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== }
@@ -510,11 +653,6 @@ packages:
{ integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== }
engines: { node: ">=6.9.0" }
- "@babel/helper-split-export-declaration@7.24.7":
- resolution:
- { integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== }
- engines: { node: ">=6.9.0" }
-
"@babel/helper-string-parser@7.24.8":
resolution:
{ integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== }
@@ -535,11 +673,6 @@ packages:
{ integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== }
engines: { node: ">=6.9.0" }
- "@babel/helpers@7.24.8":
- resolution:
- { integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ== }
- engines: { node: ">=6.9.0" }
-
"@babel/helpers@7.25.6":
resolution:
{ integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q== }
@@ -550,12 +683,6 @@ packages:
{ integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== }
engines: { node: ">=6.9.0" }
- "@babel/parser@7.24.8":
- resolution:
- { integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== }
- engines: { node: ">=6.0.0" }
- hasBin: true
-
"@babel/parser@7.25.4":
resolution:
{ integrity: sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA== }
@@ -1226,36 +1353,16 @@ packages:
{ integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA== }
engines: { node: ">=6.9.0" }
- "@babel/template@7.24.7":
- resolution:
- { integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== }
- engines: { node: ">=6.9.0" }
-
"@babel/template@7.25.0":
resolution:
{ integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== }
engines: { node: ">=6.9.0" }
- "@babel/traverse@7.24.8":
- resolution:
- { integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ== }
- engines: { node: ">=6.9.0" }
-
"@babel/traverse@7.25.4":
resolution:
{ integrity: sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg== }
engines: { node: ">=6.9.0" }
- "@babel/types@7.24.9":
- resolution:
- { integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ== }
- engines: { node: ">=6.9.0" }
-
- "@babel/types@7.25.4":
- resolution:
- { integrity: sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ== }
- engines: { node: ">=6.9.0" }
-
"@babel/types@7.25.6":
resolution:
{ integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== }
@@ -2613,9 +2720,9 @@ packages:
"@types/react":
optional: true
- "@remix-run/router@1.18.0":
+ "@remix-run/router@1.20.0":
resolution:
- { integrity: sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw== }
+ { integrity: sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg== }
engines: { node: ">=14.0.0" }
"@reown/appkit-adapter-wagmi@1.0.7":
@@ -3086,13 +3193,6 @@ packages:
resolution:
{ integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== }
- "@swc/core-darwin-arm64@1.7.1":
- resolution:
- { integrity: sha512-CuifMhtBNdIq6sHElOcu8E8SOO0BUlLyRw52wC+aiHrb5gR+iGlbi4L9sUhbR5bWoxD0Bz9ZJcE5uUhcLP+lJQ== }
- engines: { node: ">=10" }
- cpu: [arm64]
- os: [darwin]
-
"@swc/core-darwin-arm64@1.7.22":
resolution:
{ integrity: sha512-B2Bh2W+C7ALdGwDxRWAJ+UtNExfozvwyayGiNkbR3wmDKXXeQfhGM5MK+QYUWKu7UQ6ATq69OyZrxofDobKUug== }
@@ -3100,13 +3200,6 @@ packages:
cpu: [arm64]
os: [darwin]
- "@swc/core-darwin-x64@1.7.1":
- resolution:
- { integrity: sha512-IKtddGei7qGISSggN9WGmzoyRcLS0enT905K9GPB+7W5k8SxtNP3Yt2TKcKvfF8hzICk986kKt8Fl/QOTXV9mA== }
- engines: { node: ">=10" }
- cpu: [x64]
- os: [darwin]
-
"@swc/core-darwin-x64@1.7.22":
resolution:
{ integrity: sha512-s34UQntnQ6tL9hS9aX3xG7OfGhpmy05FEEndbHaooGO8O+L5k8uWxhE5KhYCOC0N803sGdZg6YZmKtYrWN/YxA== }
@@ -3114,13 +3207,6 @@ packages:
cpu: [x64]
os: [darwin]
- "@swc/core-linux-arm-gnueabihf@1.7.1":
- resolution:
- { integrity: sha512-GQJydSLM7OVsxcFPJKe22D/h4Vl7FhDsPCTlEaPo+dz7yc2AdoQFJRPSFIRlBz0qm5CxXycDxU9yfH4Omzfxmg== }
- engines: { node: ">=10" }
- cpu: [arm]
- os: [linux]
-
"@swc/core-linux-arm-gnueabihf@1.7.22":
resolution:
{ integrity: sha512-SE69+oos1jLOXx5YdMH//Qc5zQc2xYukajB+0BWmkcFd/S/cCanGWYtdSzYausm8af2Fw1hPJMNIfndJLnBDFw== }
@@ -3128,13 +3214,6 @@ packages:
cpu: [arm]
os: [linux]
- "@swc/core-linux-arm64-gnu@1.7.1":
- resolution:
- { integrity: sha512-Tp94iklMBAgtvlMVWbp9O+qADhNebS90zG835IucKEQB5rd3fEfWtiLP/3vz4hixJT63+yyeXQYs/Hld3vm7HQ== }
- engines: { node: ">=10" }
- cpu: [arm64]
- os: [linux]
-
"@swc/core-linux-arm64-gnu@1.7.22":
resolution:
{ integrity: sha512-59FzDW/ojgiTj4dlnv3Z3ESuVlzhSAq9X12CNYh4/WTCNA8BoJqOnWMRQKspWtoNlnVviFLMvpek0pGXHndEBA== }
@@ -3142,13 +3221,6 @@ packages:
cpu: [arm64]
os: [linux]
- "@swc/core-linux-arm64-musl@1.7.1":
- resolution:
- { integrity: sha512-rbauhgFzeXNmg1jPUeiVkEMcoSHP0HvTklUOn1sUc4U0tu73uvPZI2e3TU1fo6sxE6FJeDJHZORatf+pAEo0fQ== }
- engines: { node: ">=10" }
- cpu: [arm64]
- os: [linux]
-
"@swc/core-linux-arm64-musl@1.7.22":
resolution:
{ integrity: sha512-cMQMI8YRO/XR3OrYuiUlWksNsJOZSkA6gSLNyH6eHTw+FOAzv05oJ4SFYe6s1WesrOqRwhpez6y5H6OIP/EKzg== }
@@ -3156,13 +3228,6 @@ packages:
cpu: [arm64]
os: [linux]
- "@swc/core-linux-x64-gnu@1.7.1":
- resolution:
- { integrity: sha512-941tua/RtD/5GxHZOdLiRp/RIloqIlkJKy9ogbdSEI9VJ3Z5x1LznvxHfOI1mTifJMBwNSJLxtL9snUwxwLgEg== }
- engines: { node: ">=10" }
- cpu: [x64]
- os: [linux]
-
"@swc/core-linux-x64-gnu@1.7.22":
resolution:
{ integrity: sha512-639kA7MXrWqWYfwuSJ+XTg21VYb/5o99R1zJrndoEjEX6m7Wza/sXssQKU5jbbkPoSEKVKNP3n/gazLWiUKgiQ== }
@@ -3170,13 +3235,6 @@ packages:
cpu: [x64]
os: [linux]
- "@swc/core-linux-x64-musl@1.7.1":
- resolution:
- { integrity: sha512-Iuh0XnOQcoeDsJvh8eO73fVldMU/ucZs2qBxr/9TkgpiGBdaluKxymo2MBBopmxqfBwxEdHUa0TDLgEFyZK6bw== }
- engines: { node: ">=10" }
- cpu: [x64]
- os: [linux]
-
"@swc/core-linux-x64-musl@1.7.22":
resolution:
{ integrity: sha512-f3zfGgY8EJQUOk3ve25ZTkNkhB/kHo9QlN2r+0exaE1g9W7X8IS6J8pWzF3hJrV2P9dBi6ofMOt+opVA89JKHA== }
@@ -3184,13 +3242,6 @@ packages:
cpu: [x64]
os: [linux]
- "@swc/core-win32-arm64-msvc@1.7.1":
- resolution:
- { integrity: sha512-H7Q44RZvDCPrKit202+NK014eOjd2VcsVxUX7Dk5D55sqgWgWskzGo7PzrosjiFgw5iVmpm4gDeaXCIS0FCE5A== }
- engines: { node: ">=10" }
- cpu: [arm64]
- os: [win32]
-
"@swc/core-win32-arm64-msvc@1.7.22":
resolution:
{ integrity: sha512-p/Fav5U+LtTJD/tbbS0dKK8SVVAhXo5Jdm1TDeBPJ4BEIVguYBZEXgD3CW9wY4K34g1hscpiz2Q2rktfhFj1+A== }
@@ -3198,13 +3249,6 @@ packages:
cpu: [arm64]
os: [win32]
- "@swc/core-win32-ia32-msvc@1.7.1":
- resolution:
- { integrity: sha512-zbvjPX2hBu+uCEAvqQBc86yBLtWhRSkh4uLGWUQylCHi1CccRfBww9S4RjXzXxK9bCgZSWbXUmfzJTiFuuhgHQ== }
- engines: { node: ">=10" }
- cpu: [ia32]
- os: [win32]
-
"@swc/core-win32-ia32-msvc@1.7.22":
resolution:
{ integrity: sha512-HbmfasaCNTqeCTvDjleYj+jJZQ6MlraiVOdhW55KtbA9mAVQdPBq6DDAvR7VOero3wUNYUM/e36otFKgEJI5Rg== }
@@ -3212,13 +3256,6 @@ packages:
cpu: [ia32]
os: [win32]
- "@swc/core-win32-x64-msvc@1.7.1":
- resolution:
- { integrity: sha512-pVh/IIdKujW8QxNIAI/van8nOB6sb1fi7QMSteSxjOkL0GGDWpx7t3qm1rDboCdS+9iUXEHv+8UJnpya1ko+Dw== }
- engines: { node: ">=10" }
- cpu: [x64]
- os: [win32]
-
"@swc/core-win32-x64-msvc@1.7.22":
resolution:
{ integrity: sha512-lppIveE+hpe7WXny/9cUT+T6sBM/ND0E+dviKWJ5jFBISj2KWomlSJGUjYEsRGJVPnTEc8uOlKK7etmXBhQx9A== }
@@ -3226,16 +3263,6 @@ packages:
cpu: [x64]
os: [win32]
- "@swc/core@1.7.1":
- resolution:
- { integrity: sha512-M4gxJcvzZCH+QQJGVJDF3kT46C05IUPTFcA1wA65WAdg87MDzpr1mwtB/FmPsdcRFRbJIxET6uCsWgubn+KnJQ== }
- engines: { node: ">=10" }
- peerDependencies:
- "@swc/helpers": "*"
- peerDependenciesMeta:
- "@swc/helpers":
- optional: true
-
"@swc/core@1.7.22":
resolution:
{ integrity: sha512-Asn79WKqyjEuO2VEeSnVjn2YiRMToRhFJwOsQeqftBvwWMn1FGUuzVcXtkQFBk37si8Gh2Vkk/+p0u4K5NxDig== }
@@ -4057,12 +4084,6 @@ packages:
resolution:
{ integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== }
- browserslist@4.23.2:
- resolution:
- { integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA== }
- engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
- hasBin: true
-
browserslist@4.23.3:
resolution:
{ integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== }
@@ -4166,10 +4187,6 @@ packages:
{ integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== }
engines: { node: ">=10" }
- caniuse-lite@1.0.30001643:
- resolution:
- { integrity: sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg== }
-
caniuse-lite@1.0.30001653:
resolution:
{ integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw== }
@@ -4770,6 +4787,7 @@ packages:
eciesjs@0.3.20:
resolution:
{ integrity: sha512-Rz5AB8v9+xmMdS/R7RzWPe/R8DP5QfyrkA6ce4umJopoB5su2H2aDy/GcgIfwhmCwxnBkqGf/PbGzmKcGtIgGA== }
+ deprecated: Please upgrade to v0.4+
ee-first@1.1.1:
resolution:
@@ -4781,10 +4799,6 @@ packages:
engines: { node: ">=0.10.0" }
hasBin: true
- electron-to-chromium@1.5.0:
- resolution:
- { integrity: sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA== }
-
electron-to-chromium@1.5.13:
resolution:
{ integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q== }
@@ -4978,6 +4992,7 @@ packages:
resolution:
{ integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== }
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
hasBin: true
espree@9.6.1:
@@ -6596,9 +6611,9 @@ packages:
resolution:
{ integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== }
- match-sorter@6.3.4:
+ match-sorter@7.0.0:
resolution:
- { integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg== }
+ { integrity: sha512-J1370vFVhvn81QrUYv54y3IZbsaG1X4otKSwtGZbyfZxgWgjVxdRkASY+uaT2IlQUGeWFBEPbGFVKv1DNnHYKA== }
memoize-one@5.2.1:
resolution:
@@ -7020,6 +7035,11 @@ packages:
{ integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== }
engines: { node: ">= 0.4" }
+ object-path@0.6.0:
+ resolution:
+ { integrity: sha512-fxrwsCFi3/p+LeLOAwo/wyRMODZxdGBtUlWRzsEpsUVrisZbEfZ21arxLGfaWfcnqb8oHPNihIb4XPE8CQPN5A== }
+ engines: { node: ">=0.8.0" }
+
object.assign@4.1.5:
resolution:
{ integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== }
@@ -7683,17 +7703,17 @@ packages:
{ integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== }
engines: { node: ">=0.10.0" }
- react-router-dom@6.25.1:
+ react-router-dom@6.27.0:
resolution:
- { integrity: sha512-0tUDpbFvk35iv+N89dWNrJp+afLgd+y4VtorJZuOCXK0kkCWjEvb3vTJM++SYvMEpbVwXKf3FjeVveVEb6JpDQ== }
+ { integrity: sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g== }
engines: { node: ">=14.0.0" }
peerDependencies:
react: ">=16.8"
react-dom: ">=16.8"
- react-router@6.25.1:
+ react-router@6.27.0:
resolution:
- { integrity: sha512-u8ELFr5Z6g02nUtpPAggP73Jigj1mRePSwhS/2nkTrlPU5yEkH1vYzWNyvSnSzeeE2DNqWdH+P8OhIh9wuXhTw== }
+ { integrity: sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw== }
engines: { node: ">=14.0.0" }
peerDependencies:
react: ">=16.8"
@@ -8174,9 +8194,9 @@ packages:
resolution:
{ integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== }
- sort-by@0.0.2:
+ sort-by@1.2.0:
resolution:
- { integrity: sha512-iOX5oHA4a0eqTMFiWrHYqv924UeRKFBLhym7iwSVG37Egg2wApgZKAjyzM9WZjMwKv6+8Zi+nIaJ7FYsO9EkoA== }
+ { integrity: sha512-aRyW65r3xMnf4nxJRluCg0H/woJpksU1dQxRtXYzau30sNBOmf5HACpDd9MZDhKh7ALQ5FgSOfMPwZEtUmMqcg== }
source-map-js@1.2.0:
resolution:
@@ -9559,30 +9579,8 @@ snapshots:
"@babel/highlight": 7.24.7
picocolors: 1.0.1
- "@babel/compat-data@7.24.9": {}
-
"@babel/compat-data@7.25.4": {}
- "@babel/core@7.24.9":
- dependencies:
- "@ampproject/remapping": 2.3.0
- "@babel/code-frame": 7.24.7
- "@babel/generator": 7.24.10
- "@babel/helper-compilation-targets": 7.24.8
- "@babel/helper-module-transforms": 7.24.9(@babel/core@7.24.9)
- "@babel/helpers": 7.24.8
- "@babel/parser": 7.24.8
- "@babel/template": 7.24.7
- "@babel/traverse": 7.24.8
- "@babel/types": 7.24.9
- convert-source-map: 2.0.0
- debug: 4.3.5
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
"@babel/core@7.25.2":
dependencies:
"@ampproject/remapping": 2.3.0
@@ -9594,7 +9592,7 @@ snapshots:
"@babel/parser": 7.25.4
"@babel/template": 7.25.0
"@babel/traverse": 7.25.4
- "@babel/types": 7.25.4
+ "@babel/types": 7.25.6
convert-source-map: 2.0.0
debug: 4.3.5
gensync: 1.0.0-beta.2
@@ -9603,16 +9601,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@babel/generator@7.24.10":
- dependencies:
- "@babel/types": 7.24.9
- "@jridgewell/gen-mapping": 0.3.5
- "@jridgewell/trace-mapping": 0.3.25
- jsesc: 2.5.2
-
"@babel/generator@7.25.5":
dependencies:
- "@babel/types": 7.25.4
+ "@babel/types": 7.25.6
"@jridgewell/gen-mapping": 0.3.5
"@jridgewell/trace-mapping": 0.3.25
jsesc: 2.5.2
@@ -9628,14 +9619,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@babel/helper-compilation-targets@7.24.8":
- dependencies:
- "@babel/compat-data": 7.24.9
- "@babel/helper-validator-option": 7.24.8
- browserslist: 4.23.2
- lru-cache: 5.1.1
- semver: 6.3.1
-
"@babel/helper-compilation-targets@7.25.2":
dependencies:
"@babel/compat-data": 7.25.4
@@ -9675,19 +9658,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@babel/helper-environment-visitor@7.24.7":
- dependencies:
- "@babel/types": 7.24.9
-
- "@babel/helper-function-name@7.24.7":
- dependencies:
- "@babel/template": 7.24.7
- "@babel/types": 7.24.9
-
- "@babel/helper-hoist-variables@7.24.7":
- dependencies:
- "@babel/types": 7.24.9
-
"@babel/helper-member-expression-to-functions@7.24.8":
dependencies:
"@babel/traverse": 7.25.4
@@ -9697,19 +9667,8 @@ snapshots:
"@babel/helper-module-imports@7.24.7":
dependencies:
- "@babel/traverse": 7.24.8
- "@babel/types": 7.24.9
- transitivePeerDependencies:
- - supports-color
-
- "@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-environment-visitor": 7.24.7
- "@babel/helper-module-imports": 7.24.7
- "@babel/helper-simple-access": 7.24.7
- "@babel/helper-split-export-declaration": 7.24.7
- "@babel/helper-validator-identifier": 7.24.7
+ "@babel/traverse": 7.25.4
+ "@babel/types": 7.25.6
transitivePeerDependencies:
- supports-color
@@ -9749,8 +9708,8 @@ snapshots:
"@babel/helper-simple-access@7.24.7":
dependencies:
- "@babel/traverse": 7.24.8
- "@babel/types": 7.24.9
+ "@babel/traverse": 7.25.4
+ "@babel/types": 7.25.6
transitivePeerDependencies:
- supports-color
@@ -9761,10 +9720,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@babel/helper-split-export-declaration@7.24.7":
- dependencies:
- "@babel/types": 7.24.9
-
"@babel/helper-string-parser@7.24.8": {}
"@babel/helper-validator-identifier@7.24.7": {}
@@ -9779,11 +9734,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- "@babel/helpers@7.24.8":
- dependencies:
- "@babel/template": 7.24.7
- "@babel/types": 7.24.9
-
"@babel/helpers@7.25.6":
dependencies:
"@babel/template": 7.25.0
@@ -9796,13 +9746,9 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.0.1
- "@babel/parser@7.24.8":
- dependencies:
- "@babel/types": 7.24.9
-
"@babel/parser@7.25.4":
dependencies:
- "@babel/types": 7.25.4
+ "@babel/types": 7.25.6
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)":
dependencies:
@@ -9881,31 +9827,15 @@ snapshots:
dependencies:
"@babel/core": 7.25.2
- "@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- optional: true
-
- "@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
"@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)":
dependencies:
@@ -9947,91 +9877,46 @@ snapshots:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
@@ -10042,21 +9927,11 @@ snapshots:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
"@babel/helper-plugin-utils": 7.24.8
- "@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)":
- dependencies:
- "@babel/core": 7.24.9
- "@babel/helper-plugin-utils": 7.24.8
-
"@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)":
dependencies:
"@babel/core": 7.25.2
@@ -10581,32 +10456,11 @@ snapshots:
dependencies:
regenerator-runtime: 0.14.1
- "@babel/template@7.24.7":
- dependencies:
- "@babel/code-frame": 7.24.7
- "@babel/parser": 7.24.8
- "@babel/types": 7.24.9
-
"@babel/template@7.25.0":
dependencies:
"@babel/code-frame": 7.24.7
"@babel/parser": 7.25.4
- "@babel/types": 7.25.4
-
- "@babel/traverse@7.24.8":
- dependencies:
- "@babel/code-frame": 7.24.7
- "@babel/generator": 7.24.10
- "@babel/helper-environment-visitor": 7.24.7
- "@babel/helper-function-name": 7.24.7
- "@babel/helper-hoist-variables": 7.24.7
- "@babel/helper-split-export-declaration": 7.24.7
- "@babel/parser": 7.24.8
- "@babel/types": 7.24.9
- debug: 4.3.5
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
+ "@babel/types": 7.25.6
"@babel/traverse@7.25.4":
dependencies:
@@ -10614,24 +10468,12 @@ snapshots:
"@babel/generator": 7.25.5
"@babel/parser": 7.25.4
"@babel/template": 7.25.0
- "@babel/types": 7.25.4
+ "@babel/types": 7.25.6
debug: 4.3.5
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- "@babel/types@7.24.9":
- dependencies:
- "@babel/helper-string-parser": 7.24.8
- "@babel/helper-validator-identifier": 7.24.7
- to-fast-properties: 2.0.0
-
- "@babel/types@7.25.4":
- dependencies:
- "@babel/helper-string-parser": 7.24.8
- "@babel/helper-validator-identifier": 7.24.7
- to-fast-properties: 2.0.0
-
"@babel/types@7.25.6":
dependencies:
"@babel/helper-string-parser": 7.24.8
@@ -10716,7 +10558,7 @@ snapshots:
"@changesets/types": 6.0.0
"@manypkg/get-packages": 1.1.3
fs-extra: 7.0.1
- micromatch: 4.0.7
+ micromatch: 4.0.8
"@changesets/errors@0.2.0":
dependencies:
@@ -10749,7 +10591,7 @@ snapshots:
"@changesets/types": 6.0.0
"@manypkg/get-packages": 1.1.3
is-subdir: 1.2.0
- micromatch: 4.0.7
+ micromatch: 4.0.8
spawndamnit: 2.0.0
"@changesets/logger@0.1.0":
@@ -11067,7 +10909,7 @@ snapshots:
json-to-pretty-yaml: 1.2.2
listr2: 4.0.5(enquirer@2.4.1)
log-symbols: 4.1.0
- micromatch: 4.0.7
+ micromatch: 4.0.8
shell-quote: 1.8.1
string-env-interpolation: 1.0.1
ts-log: 2.2.7
@@ -11650,7 +11492,7 @@ snapshots:
"@jest/transform@29.7.0":
dependencies:
- "@babel/core": 7.24.9
+ "@babel/core": 7.25.2
"@jest/types": 29.6.3
"@jridgewell/trace-mapping": 0.3.25
babel-plugin-istanbul: 6.1.1
@@ -11661,7 +11503,7 @@ snapshots:
jest-haste-map: 29.7.0
jest-regex-util: 29.6.3
jest-util: 29.7.0
- micromatch: 4.0.7
+ micromatch: 4.0.8
pirates: 4.0.6
slash: 3.0.0
write-file-atomic: 4.0.2
@@ -11829,7 +11671,7 @@ snapshots:
react-dom: 18.3.1(react@18.3.1)
react-native: 0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10)
- "@metamask/sdk@0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(utf-8-validate@5.0.10)":
+ "@metamask/sdk@0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(utf-8-validate@5.0.10)":
dependencies:
"@metamask/onboarding": 1.0.1
"@metamask/providers": 16.1.0
@@ -11850,7 +11692,7 @@ snapshots:
qrcode-terminal-nooctal: 0.12.1
react-native-webview: 11.26.1(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)
readable-stream: 3.6.2
- rollup-plugin-visualizer: 5.12.0(rollup@2.79.1)
+ rollup-plugin-visualizer: 5.12.0(rollup@4.19.0)
socket.io-client: 4.8.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
util: 0.12.5
uuid: 8.3.2
@@ -11881,8 +11723,8 @@ snapshots:
dependencies:
"@ethereumjs/tx": 4.2.0
"@metamask/superstruct": 3.1.0
- "@noble/hashes": 1.4.0
- "@scure/base": 1.1.7
+ "@noble/hashes": 1.5.0
+ "@scure/base": 1.1.9
"@types/debug": 4.1.12
debug: 4.3.5
pony-cause: 2.1.11
@@ -11895,8 +11737,8 @@ snapshots:
dependencies:
"@ethereumjs/tx": 4.2.0
"@metamask/superstruct": 3.1.0
- "@noble/hashes": 1.4.0
- "@scure/base": 1.1.7
+ "@noble/hashes": 1.5.0
+ "@scure/base": 1.1.9
"@types/debug": 4.1.12
debug: 4.3.5
pony-cause: 2.1.11
@@ -12014,7 +11856,7 @@ snapshots:
"@parcel/watcher-wasm@2.4.1":
dependencies:
is-glob: 4.0.3
- micromatch: 4.0.7
+ micromatch: 4.0.8
"@parcel/watcher-win32-arm64@2.4.1":
optional: true
@@ -12029,7 +11871,7 @@ snapshots:
dependencies:
detect-libc: 1.0.3
is-glob: 4.0.3
- micromatch: 4.0.7
+ micromatch: 4.0.8
node-addon-api: 7.1.1
optionalDependencies:
"@parcel/watcher-android-arm64": 2.4.1
@@ -12350,9 +12192,9 @@ snapshots:
optionalDependencies:
"@types/react": 18.3.3
- "@remix-run/router@1.18.0": {}
+ "@remix-run/router@1.20.0": {}
- "@reown/appkit-adapter-wagmi@1.0.7(f3kwnolqgggnwa3wyrus5szn2e)":
+ "@reown/appkit-adapter-wagmi@1.0.7(l3bqwg3q27kpoc3uzgnypsmksq)":
dependencies:
"@coinbase/wallet-sdk": 4.0.4
"@reown/appkit": 1.0.7(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)
@@ -12364,13 +12206,13 @@ snapshots:
"@reown/appkit-ui": 1.0.7
"@reown/appkit-utils": 1.0.7(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(utf-8-validate@5.0.10)(valtio@1.11.2(@types/react@18.3.3)(react@18.3.1))
"@reown/appkit-wallet": 1.0.7
- "@wagmi/connectors": 5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
+ "@wagmi/connectors": 5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
"@wagmi/core": 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))
"@walletconnect/universal-provider": 2.17.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
"@walletconnect/utils": 2.17.0
valtio: 1.11.2(@types/react@18.3.3)(react@18.3.1)
viem: 2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)
- wagmi: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
+ wagmi: 2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
transitivePeerDependencies:
- "@azure/app-configuration"
- "@azure/cosmos"
@@ -12698,13 +12540,13 @@ snapshots:
dependencies:
"@noble/curves": 1.4.2
"@noble/hashes": 1.4.0
- "@scure/base": 1.1.7
+ "@scure/base": 1.1.9
"@scure/bip32@1.5.0":
dependencies:
"@noble/curves": 1.6.0
"@noble/hashes": 1.5.0
- "@scure/base": 1.1.7
+ "@scure/base": 1.1.9
"@scure/bip39@1.2.1":
dependencies:
@@ -12714,7 +12556,7 @@ snapshots:
"@scure/bip39@1.3.0":
dependencies:
"@noble/hashes": 1.4.0
- "@scure/base": 1.1.7
+ "@scure/base": 1.1.9
"@scure/bip39@1.4.0":
dependencies:
@@ -12948,84 +12790,37 @@ snapshots:
magic-string: 0.25.9
string.prototype.matchall: 4.0.11
- "@swc/core-darwin-arm64@1.7.1":
- optional: true
-
"@swc/core-darwin-arm64@1.7.22":
optional: true
- "@swc/core-darwin-x64@1.7.1":
- optional: true
-
"@swc/core-darwin-x64@1.7.22":
optional: true
- "@swc/core-linux-arm-gnueabihf@1.7.1":
- optional: true
-
"@swc/core-linux-arm-gnueabihf@1.7.22":
optional: true
- "@swc/core-linux-arm64-gnu@1.7.1":
- optional: true
-
"@swc/core-linux-arm64-gnu@1.7.22":
optional: true
- "@swc/core-linux-arm64-musl@1.7.1":
- optional: true
-
"@swc/core-linux-arm64-musl@1.7.22":
optional: true
- "@swc/core-linux-x64-gnu@1.7.1":
- optional: true
-
"@swc/core-linux-x64-gnu@1.7.22":
optional: true
- "@swc/core-linux-x64-musl@1.7.1":
- optional: true
-
"@swc/core-linux-x64-musl@1.7.22":
optional: true
- "@swc/core-win32-arm64-msvc@1.7.1":
- optional: true
-
"@swc/core-win32-arm64-msvc@1.7.22":
optional: true
- "@swc/core-win32-ia32-msvc@1.7.1":
- optional: true
-
"@swc/core-win32-ia32-msvc@1.7.22":
optional: true
- "@swc/core-win32-x64-msvc@1.7.1":
- optional: true
-
"@swc/core-win32-x64-msvc@1.7.22":
optional: true
- "@swc/core@1.7.1(@swc/helpers@0.5.12)":
- dependencies:
- "@swc/counter": 0.1.3
- "@swc/types": 0.1.12
- optionalDependencies:
- "@swc/core-darwin-arm64": 1.7.1
- "@swc/core-darwin-x64": 1.7.1
- "@swc/core-linux-arm-gnueabihf": 1.7.1
- "@swc/core-linux-arm64-gnu": 1.7.1
- "@swc/core-linux-arm64-musl": 1.7.1
- "@swc/core-linux-x64-gnu": 1.7.1
- "@swc/core-linux-x64-musl": 1.7.1
- "@swc/core-win32-arm64-msvc": 1.7.1
- "@swc/core-win32-ia32-msvc": 1.7.1
- "@swc/core-win32-x64-msvc": 1.7.1
- "@swc/helpers": 0.5.12
-
- "@swc/core@1.7.22":
+ "@swc/core@1.7.22(@swc/helpers@0.5.12)":
dependencies:
"@swc/counter": 0.1.3
"@swc/types": 0.1.12
@@ -13040,7 +12835,7 @@ snapshots:
"@swc/core-win32-arm64-msvc": 1.7.22
"@swc/core-win32-ia32-msvc": 1.7.22
"@swc/core-win32-x64-msvc": 1.7.22
- optional: true
+ "@swc/helpers": 0.5.12
"@swc/counter@0.1.3": {}
@@ -13062,24 +12857,24 @@ snapshots:
"@types/babel__core@7.20.5":
dependencies:
- "@babel/parser": 7.24.8
- "@babel/types": 7.24.9
+ "@babel/parser": 7.25.4
+ "@babel/types": 7.25.6
"@types/babel__generator": 7.6.8
"@types/babel__template": 7.4.4
"@types/babel__traverse": 7.20.6
"@types/babel__generator@7.6.8":
dependencies:
- "@babel/types": 7.24.9
+ "@babel/types": 7.25.6
"@types/babel__template@7.4.4":
dependencies:
- "@babel/parser": 7.24.8
- "@babel/types": 7.24.9
+ "@babel/parser": 7.25.4
+ "@babel/types": 7.25.6
"@types/babel__traverse@7.20.6":
dependencies:
- "@babel/types": 7.24.9
+ "@babel/types": 7.25.6
"@types/debug@4.1.12":
dependencies:
@@ -13261,7 +13056,7 @@ snapshots:
"@vitejs/plugin-react-swc@3.7.0(@swc/helpers@0.5.12)(vite@5.3.4(@types/node@20.14.12)(terser@5.31.6))":
dependencies:
- "@swc/core": 1.7.1(@swc/helpers@0.5.12)
+ "@swc/core": 1.7.22(@swc/helpers@0.5.12)
vite: 5.3.4(@types/node@20.14.12)(terser@5.31.6)
transitivePeerDependencies:
- "@swc/helpers"
@@ -13295,10 +13090,10 @@ snapshots:
loupe: 2.3.7
pretty-format: 29.7.0
- "@wagmi/connectors@5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)":
+ "@wagmi/connectors@5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)":
dependencies:
"@coinbase/wallet-sdk": 4.0.4
- "@metamask/sdk": 0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(utf-8-validate@5.0.10)
+ "@metamask/sdk": 0.28.4(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(utf-8-validate@5.0.10)
"@safe-global/safe-apps-provider": 0.18.3(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)
"@safe-global/safe-apps-sdk": 9.1.0(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)
"@wagmi/core": 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))
@@ -13851,8 +13646,8 @@ snapshots:
autoprefixer@10.4.19(postcss@8.4.39):
dependencies:
- browserslist: 4.23.2
- caniuse-lite: 1.0.30001643
+ browserslist: 4.23.3
+ caniuse-lite: 1.0.30001653
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.0.1
@@ -13869,19 +13664,6 @@ snapshots:
dependencies:
"@babel/core": 7.25.2
- babel-jest@29.7.0(@babel/core@7.24.9):
- dependencies:
- "@babel/core": 7.24.9
- "@jest/transform": 29.7.0
- "@types/babel__core": 7.20.5
- babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.6.3(@babel/core@7.24.9)
- chalk: 4.1.2
- graceful-fs: 4.2.11
- slash: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
babel-jest@29.7.0(@babel/core@7.25.2):
dependencies:
"@babel/core": 7.25.2
@@ -13894,7 +13676,6 @@ snapshots:
slash: 3.0.0
transitivePeerDependencies:
- supports-color
- optional: true
babel-plugin-istanbul@6.1.1:
dependencies:
@@ -13908,8 +13689,8 @@ snapshots:
babel-plugin-jest-hoist@29.6.3:
dependencies:
- "@babel/template": 7.24.7
- "@babel/types": 7.24.9
+ "@babel/template": 7.25.0
+ "@babel/types": 7.25.6
"@types/babel__core": 7.20.5
"@types/babel__traverse": 7.20.6
@@ -13945,22 +13726,6 @@ snapshots:
transitivePeerDependencies:
- "@babel/core"
- babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.9):
- dependencies:
- "@babel/core": 7.24.9
- "@babel/plugin-syntax-async-generators": 7.8.4(@babel/core@7.24.9)
- "@babel/plugin-syntax-bigint": 7.8.3(@babel/core@7.24.9)
- "@babel/plugin-syntax-class-properties": 7.12.13(@babel/core@7.24.9)
- "@babel/plugin-syntax-import-meta": 7.10.4(@babel/core@7.24.9)
- "@babel/plugin-syntax-json-strings": 7.8.3(@babel/core@7.24.9)
- "@babel/plugin-syntax-logical-assignment-operators": 7.10.4(@babel/core@7.24.9)
- "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3(@babel/core@7.24.9)
- "@babel/plugin-syntax-numeric-separator": 7.10.4(@babel/core@7.24.9)
- "@babel/plugin-syntax-object-rest-spread": 7.8.3(@babel/core@7.24.9)
- "@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.24.9)
- "@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.24.9)
- "@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.24.9)
-
babel-preset-current-node-syntax@1.0.1(@babel/core@7.25.2):
dependencies:
"@babel/core": 7.25.2
@@ -13976,7 +13741,6 @@ snapshots:
"@babel/plugin-syntax-optional-catch-binding": 7.8.3(@babel/core@7.25.2)
"@babel/plugin-syntax-optional-chaining": 7.8.3(@babel/core@7.25.2)
"@babel/plugin-syntax-top-level-await": 7.14.5(@babel/core@7.25.2)
- optional: true
babel-preset-fbjs@3.4.0(@babel/core@7.25.2):
dependencies:
@@ -14011,18 +13775,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-preset-jest@29.6.3(@babel/core@7.24.9):
- dependencies:
- "@babel/core": 7.24.9
- babel-plugin-jest-hoist: 29.6.3
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.9)
-
babel-preset-jest@29.6.3(@babel/core@7.25.2):
dependencies:
"@babel/core": 7.25.2
babel-plugin-jest-hoist: 29.6.3
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.2)
- optional: true
balanced-match@1.0.2: {}
@@ -14086,13 +13843,6 @@ snapshots:
brorand@1.1.0: {}
- browserslist@4.23.2:
- dependencies:
- caniuse-lite: 1.0.30001643
- electron-to-chromium: 1.5.0
- node-releases: 2.0.18
- update-browserslist-db: 1.1.0(browserslist@4.23.2)
-
browserslist@4.23.3:
dependencies:
caniuse-lite: 1.0.30001653
@@ -14170,8 +13920,6 @@ snapshots:
camelcase@6.3.0: {}
- caniuse-lite@1.0.30001643: {}
-
caniuse-lite@1.0.30001653: {}
capital-case@1.0.4:
@@ -14674,8 +14422,6 @@ snapshots:
dependencies:
jake: 10.9.2
- electron-to-chromium@1.5.0: {}
-
electron-to-chromium@1.5.13: {}
elliptic@6.5.7:
@@ -15085,7 +14831,7 @@ snapshots:
"@nodelib/fs.walk": 1.2.8
glob-parent: 5.1.2
merge2: 1.4.1
- micromatch: 4.0.7
+ micromatch: 4.0.8
fast-json-stable-stringify@2.1.0: {}
@@ -15183,7 +14929,7 @@ snapshots:
find-yarn-workspace-root2@1.2.16:
dependencies:
- micromatch: 4.0.7
+ micromatch: 4.0.8
pkg-dir: 4.2.0
flat-cache@3.2.0:
@@ -15784,8 +15530,8 @@ snapshots:
istanbul-lib-instrument@5.2.1:
dependencies:
- "@babel/core": 7.24.9
- "@babel/parser": 7.24.8
+ "@babel/core": 7.25.2
+ "@babel/parser": 7.25.4
"@istanbuljs/schema": 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@@ -15794,8 +15540,8 @@ snapshots:
istanbul-lib-instrument@6.0.3:
dependencies:
- "@babel/core": 7.24.9
- "@babel/parser": 7.24.8
+ "@babel/core": 7.25.2
+ "@babel/parser": 7.25.4
"@istanbuljs/schema": 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.6.3
@@ -15887,10 +15633,10 @@ snapshots:
jest-config@29.7.0(@types/node@20.14.12):
dependencies:
- "@babel/core": 7.24.9
+ "@babel/core": 7.25.2
"@jest/test-sequencer": 29.7.0
"@jest/types": 29.6.3
- babel-jest: 29.7.0(@babel/core@7.24.9)
+ babel-jest: 29.7.0(@babel/core@7.25.2)
chalk: 4.1.2
ci-info: 3.9.0
deepmerge: 4.3.1
@@ -15904,7 +15650,7 @@ snapshots:
jest-runner: 29.7.0
jest-util: 29.7.0
jest-validate: 29.7.0
- micromatch: 4.0.7
+ micromatch: 4.0.8
parse-json: 5.2.0
pretty-format: 29.7.0
slash: 3.0.0
@@ -15956,7 +15702,7 @@ snapshots:
jest-regex-util: 29.6.3
jest-util: 29.7.0
jest-worker: 29.7.0
- micromatch: 4.0.7
+ micromatch: 4.0.8
walker: 1.0.8
optionalDependencies:
fsevents: 2.3.3
@@ -15980,7 +15726,7 @@ snapshots:
"@types/stack-utils": 2.0.3
chalk: 4.1.2
graceful-fs: 4.2.11
- micromatch: 4.0.7
+ micromatch: 4.0.8
pretty-format: 29.7.0
slash: 3.0.0
stack-utils: 2.0.6
@@ -16071,15 +15817,15 @@ snapshots:
jest-snapshot@29.7.0:
dependencies:
- "@babel/core": 7.24.9
- "@babel/generator": 7.24.10
- "@babel/plugin-syntax-jsx": 7.24.7(@babel/core@7.24.9)
- "@babel/plugin-syntax-typescript": 7.24.7(@babel/core@7.24.9)
- "@babel/types": 7.24.9
+ "@babel/core": 7.25.2
+ "@babel/generator": 7.25.5
+ "@babel/plugin-syntax-jsx": 7.24.7(@babel/core@7.25.2)
+ "@babel/plugin-syntax-typescript": 7.24.7(@babel/core@7.25.2)
+ "@babel/types": 7.25.6
"@jest/expect-utils": 29.7.0
"@jest/transform": 29.7.0
"@jest/types": 29.6.3
- babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.9)
+ babel-preset-current-node-syntax: 1.0.1(@babel/core@7.25.2)
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
@@ -16505,7 +16251,7 @@ snapshots:
marky@1.2.5: {}
- match-sorter@6.3.4:
+ match-sorter@7.0.0:
dependencies:
"@babel/runtime": 7.24.8
remove-accents: 0.5.0
@@ -16895,6 +16641,8 @@ snapshots:
object-keys@1.1.1: {}
+ object-path@0.6.0: {}
+
object.assign@4.1.5:
dependencies:
call-bind: 1.0.7
@@ -17418,16 +17166,16 @@ snapshots:
react-refresh@0.14.2: {}
- react-router-dom@6.25.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ react-router-dom@6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
- "@remix-run/router": 1.18.0
+ "@remix-run/router": 1.20.0
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- react-router: 6.25.1(react@18.3.1)
+ react-router: 6.27.0(react@18.3.1)
- react-router@6.25.1(react@18.3.1):
+ react-router@6.27.0(react@18.3.1):
dependencies:
- "@remix-run/router": 1.18.0
+ "@remix-run/router": 1.20.0
react: 18.3.1
react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
@@ -17588,14 +17336,14 @@ snapshots:
dependencies:
glob: 7.2.3
- rollup-plugin-visualizer@5.12.0(rollup@2.79.1):
+ rollup-plugin-visualizer@5.12.0(rollup@4.19.0):
dependencies:
open: 8.4.2
picomatch: 2.3.1
source-map: 0.7.4
yargs: 17.7.2
optionalDependencies:
- rollup: 2.79.1
+ rollup: 4.19.0
rollup@2.79.1:
optionalDependencies:
@@ -17870,7 +17618,9 @@ snapshots:
dependencies:
atomic-sleep: 1.0.0
- sort-by@0.0.2: {}
+ sort-by@1.2.0:
+ dependencies:
+ object-path: 0.6.0
source-map-js@1.2.0: {}
@@ -18100,7 +17850,7 @@ snapshots:
is-glob: 4.0.3
jiti: 1.21.6
lilconfig: 2.1.0
- micromatch: 4.0.7
+ micromatch: 4.0.8
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.1
@@ -18292,7 +18042,7 @@ snapshots:
sucrase: 3.35.0
tree-kill: 1.2.2
optionalDependencies:
- "@swc/core": 1.7.22
+ "@swc/core": 1.7.22(@swc/helpers@0.5.12)
postcss: 8.4.39
typescript: 5.5.4
transitivePeerDependencies:
@@ -18470,12 +18220,6 @@ snapshots:
upath@1.2.0: {}
- update-browserslist-db@1.1.0(browserslist@4.23.2):
- dependencies:
- browserslist: 4.23.2
- escalade: 3.1.2
- picocolors: 1.0.1
-
update-browserslist-db@1.1.0(browserslist@4.23.3):
dependencies:
browserslist: 4.23.3
@@ -18668,10 +18412,10 @@ snapshots:
vlq@1.0.1: {}
- wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4):
+ wagmi@2.12.17(@tanstack/query-core@5.59.0)(@tanstack/react-query@5.59.0(react@18.3.1))(@types/react@18.3.3)(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4):
dependencies:
"@tanstack/react-query": 5.59.0(react@18.3.1)
- "@wagmi/connectors": 5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@2.79.1)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
+ "@wagmi/connectors": 5.1.15(@types/react@18.3.3)(@wagmi/core@2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4)))(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react-native@0.75.2(@babel/core@7.25.2)(@babel/preset-env@7.25.4(@babel/core@7.25.2))(@types/react@18.3.3)(bufferutil@4.0.8)(react@18.3.1)(typescript@5.5.4)(utf-8-validate@5.0.10))(react@18.3.1)(rollup@4.19.0)(typescript@5.5.4)(utf-8-validate@5.0.10)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)
"@wagmi/core": 2.13.8(@tanstack/query-core@5.59.0)(@types/react@18.3.3)(react@18.3.1)(typescript@5.5.4)(viem@2.21.19(bufferutil@4.0.8)(typescript@5.5.4)(utf-8-validate@5.0.10)(zod@3.22.4))
react: 18.3.1
use-sync-external-store: 1.2.0(react@18.3.1)
@@ -18719,8 +18463,8 @@ snapshots:
webauthn-p256@0.0.5:
dependencies:
- "@noble/curves": 1.4.2
- "@noble/hashes": 1.4.0
+ "@noble/curves": 1.6.0
+ "@noble/hashes": 1.5.0
webextension-polyfill@0.10.0: {}