done changes

This commit is contained in:
yoginawaka 2025-02-20 23:18:50 +05:30
commit 0dff7d3b92
5 changed files with 665 additions and 912 deletions

View File

@ -1,199 +0,0 @@
"use client"
import { memo, useEffect, useState, useCallback } from 'react';
import { useRouter } from 'next/navigation';
import Cookies from 'js-cookie';
import { usePrivy } from '@privy-io/react-auth';
import { Providers } from '@/components/providers/privy-provider';
import { Mail, ArrowRight, Hexagon, LucideIcon } from 'lucide-react';
interface LoginButtonProps {
icon: LucideIcon;
text: string;
onClick: () => void;
}
interface FeatureCardProps {
text: string;
}
// Futuristic geometric background
const BackgroundEffect = memo(function BackgroundEffect() {
return (
<div className="absolute inset-0 overflow-hidden">
{/* Base gradient */}
<div className="absolute inset-0 bg-gradient-to-br from-gray-50 via-gray-100 to-gray-200" />
{/* Geometric patterns */}
<div className="absolute inset-0 opacity-5">
<div className="absolute top-0 left-0 w-full h-full">
{Array.from({ length: 5 }).map((_, i) => (
<div
key={i}
className="absolute transform -translate-x-1/2 -translate-y-1/2"
style={{
left: `${Math.random() * 100}%`,
top: `${Math.random() * 100}%`,
width: `${Math.random() * 300 + 100}px`,
height: `${Math.random() * 300 + 100}px`,
border: '2px solid rgba(0,0,0,1)',
transform: `rotate(${Math.random() * 360}deg)`,
}}
>
<Hexagon className="w-full h-full stroke-current opacity-40" />
</div>
))}
</div>
</div>
{/* Modern gradient orbs */}
<div className="absolute top-0 right-0 w-[500px] h-[500px] bg-gradient-to-br from-gray-200/40 to-transparent rounded-full blur-3xl transform rotate-12 opacity-60" />
<div className="absolute bottom-0 left-0 w-[500px] h-[500px] bg-gradient-to-tr from-gray-200/40 to-transparent rounded-full blur-3xl transform -rotate-12 opacity-60" />
</div>
);
});
// Enhanced loading animation
const LoadingSpinner = memo(function LoadingSpinner() {
return (
<div className="min-h-screen flex items-center justify-center bg-gradient-to-br from-gray-50 via-gray-50 to-gray-50">
<div className="relative">
<div className="absolute inset-0 border-2 border-gray-800/20 rounded-lg blur animate-pulse" />
<div className="relative flex items-center justify-center w-16 h-16">
<div className="absolute w-full h-full border-t-2 border-gray-800 rounded-full animate-spin" />
<div className="absolute w-10 h-10 border-t-2 border-gray-800/50 rounded-full animate-spin-slow" />
</div>
</div>
</div>
);
});
// Enhanced button with modern hover effects
const LoginButton = memo(function LoginButton({ icon: Icon, text, onClick }: LoginButtonProps) {
return (
<button
onClick={onClick}
className="group relative w-full flex items-center justify-between px-6 py-4 rounded-xl
bg-gradient-to-r from-gray-700/90 to-gray-600/90 hover:from-gray-800 hover:to-gray-700
text-white transform transition-all duration-300
hover:shadow-[0_0_20px_rgba(0,0,0,0.1)] hover:scale-[1.01]"
>
<div className="absolute inset-px rounded-[11px] bg-gradient-to-r from-white/[0.08] to-transparent opacity-0 group-hover:opacity-100 transition-opacity" />
<div className="flex items-center space-x-3 z-10">
<div className="p-1 rounded-lg bg-white/10">
<Icon className="w-4 h-4" />
</div>
<span className="font-medium tracking-wide">{text}</span>
</div>
<div className="flex items-center z-10">
<ArrowRight className="w-5 h-5 transform group-hover:translate-x-1 transition-transform" />
</div>
</button>
);
});
// Modern feature card
const FeatureCard = memo(function FeatureCard({ text }: FeatureCardProps) {
return (
<div className="relative group">
<div className="absolute inset-0 bg-gradient-to-r from-gray-600/20 to-gray-500/20 rounded-xl blur-sm transform transition-all duration-300 group-hover:scale-105 opacity-0 group-hover:opacity-100" />
<div className="relative p-4 rounded-xl bg-white/[0.03] border border-white/10 backdrop-blur-sm
transform transition-all duration-300">
<p className="text-sm text-gray-600 font-medium">{text}</p>
</div>
</div>
);
});
const LoginContent = memo(function LoginContent() {
const router = useRouter();
const [isLoading, setIsLoading] = useState(true);
const privy = usePrivy();
const handleLogin = useCallback(() => privy.login(), [privy]);
// const handleWalletConnect = useCallback(() => privy.connectWallet(), [privy]);
useEffect(() => {
if (privy?.ready) {
setIsLoading(false);
if (privy.authenticated) {
localStorage.setItem('useremail', privy.user?.email?.address ?? "Guest");
Cookies.set('privy-authenticated', 'true', { path: '/', expires: 1 });
router.push('/dashboard');
}
}
}, [privy.ready, privy.authenticated, router]);
if (isLoading) return <LoadingSpinner />;
return (
<main className="min-h-screen relative overflow-hidden">
<BackgroundEffect />
<div className="relative min-h-screen flex items-center justify-center p-4">
<div className="w-full max-w-md">
<div className="relative p-8 rounded-2xl overflow-hidden">
{/* Card backdrop blur effect */}
<div className="absolute inset-0 bg-white/40 backdrop-blur-xl rounded-2xl" />
{/* Content */}
<div className="relative">
<div className="text-center mb-10">
<h1 className="text-5xl font-bold text-transparent bg-clip-text bg-gradient-to-b from-gray-800 to-gray-600 mb-3">
ALMAZE
</h1>
<div className="flex items-center justify-center gap-3 text-gray-500">
<span className="w-2 h-2 rounded-full bg-gray-400" />
<span className="text-lg tracking-wide">Secure</span>
<span className="w-2 h-2 rounded-full bg-gray-400" />
<span className="text-lg tracking-wide">Seamless</span>
<span className="w-2 h-2 rounded-full bg-gray-400" />
<span className="text-lg tracking-wide">Smart</span>
</div>
</div>
<div className="space-y-4 mb-8">
<LoginButton
icon={Mail}
text="Continue with ALMAZE"
onClick={handleLogin}
/>
{/* <LoginButton
icon={Wallet}
text="Connect Wallet"
onClick={handleWalletConnect}
/> */}
</div>
<div className="text-center">
<p className="text-gray-500 text-sm">
By continuing, you agree to our{' '}
<a href="#" className="text-gray-700 hover:text-gray-900 underline underline-offset-4 transition-colors">
Terms of Service
</a>
</p>
</div>
</div>
</div>
<div className="mt-8 grid grid-cols-3 gap-4">
<FeatureCard text="Secure Storage" />
<FeatureCard text="Fast Transactions" />
<FeatureCard text="24/7 Support" />
</div>
</div>
</div>
</main>
);
});
const Home = memo(function Home() {
return (
<Providers>
<LoginContent />
</Providers>
);
});
export default Home;

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,8 @@
import { PrivyProvider } from '@privy-io/react-auth'; import { PrivyProvider } from '@privy-io/react-auth';
import { ReactNode , useEffect } from 'react'; import { ReactNode , useEffect } from 'react';
import {toSolanaWalletConnectors} from '@privy-io/react-auth/solana'; // Replace this with any of the networks listed at https://github.com/wevm/viem/blob/main/src/chains/index.ts
import {bsc} from 'viem/chains';
export function Providers({ children }: { children: ReactNode }) { export function Providers({ children }: { children: ReactNode }) {
useEffect(() => { useEffect(() => {
@ -10,12 +11,6 @@ export function Providers({ children }: { children: ReactNode }) {
localStorage.removeItem('privy:embedded-wallet:ready'); localStorage.removeItem('privy:embedded-wallet:ready');
}, []); }, []);
const solanaConnectors = toSolanaWalletConnectors({
// By default, shouldAutoConnect is enabled
shouldAutoConnect: true,
});
return ( return (
<PrivyProvider <PrivyProvider
appId={process.env.NEXT_PUBLIC_PRIVY_APP_ID || ''} appId={process.env.NEXT_PUBLIC_PRIVY_APP_ID || ''}
@ -25,15 +20,8 @@ export function Providers({ children }: { children: ReactNode }) {
"theme":"#FFFFFF", "theme":"#FFFFFF",
"showWalletLoginFirst": false, "showWalletLoginFirst": false,
"logo": "https://auth.privy.io/logos/privy-logo.png", "logo": "https://auth.privy.io/logos/privy-logo.png",
"walletChainType": 'solana-only', "walletChainType": 'ethereum-only',
"walletList": [ "walletList": ['metamask', 'wallet_connect', 'coinbase_wallet', 'rabby_wallet', 'cryptocom','safe']
"phantom"
]
},
"externalWallets": {
"solana": {
"connectors": solanaConnectors,
},
}, },
"loginMethods": [ "loginMethods": [
"email", "email",
@ -46,7 +34,9 @@ export function Providers({ children }: { children: ReactNode }) {
}, },
"mfa": { "mfa": {
"noPromptOnMfaRequired": false "noPromptOnMfaRequired": false
} },
defaultChain: bsc,
supportedChains: [bsc]
}} }}
> >
{children} {children}

169
package-lock.json generated
View File

@ -34,7 +34,8 @@
"tailwind-merge": "^2.6.0", "tailwind-merge": "^2.6.0",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"three": "^0.172.0", "three": "^0.172.0",
"uuid": "^11.0.5" "uuid": "^11.0.5",
"viem": "^2.23.2"
}, },
"devDependencies": { "devDependencies": {
"@types/js-cookie": "^3.0.6", "@types/js-cookie": "^3.0.6",
@ -51,7 +52,8 @@
"node_modules/@adraffy/ens-normalize": { "node_modules/@adraffy/ens-normalize": {
"version": "1.11.0", "version": "1.11.0",
"resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz",
"integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==" "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==",
"license": "MIT"
}, },
"node_modules/@ai-sdk/provider": { "node_modules/@ai-sdk/provider": {
"version": "1.0.4", "version": "1.0.4",
@ -1601,11 +1603,12 @@
} }
}, },
"node_modules/@noble/curves": { "node_modules/@noble/curves": {
"version": "1.8.0", "version": "1.8.1",
"resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz",
"integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==",
"license": "MIT",
"dependencies": { "dependencies": {
"@noble/hashes": "1.7.0" "@noble/hashes": "1.7.1"
}, },
"engines": { "engines": {
"node": "^14.21.3 || >=16" "node": "^14.21.3 || >=16"
@ -1615,9 +1618,10 @@
} }
}, },
"node_modules/@noble/hashes": { "node_modules/@noble/hashes": {
"version": "1.7.0", "version": "1.7.1",
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz",
"integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==",
"license": "MIT",
"engines": { "engines": {
"node": "^14.21.3 || >=16" "node": "^14.21.3 || >=16"
}, },
@ -4330,9 +4334,10 @@
"integrity": "sha512-x+BLw/opaz9LiVyrMsP75nO1Rg0QfrACUYIbVSfGwY/w0DiWIPYYrpte6us//KZXinxFAOJl0+C17L1Vi2vmDw==" "integrity": "sha512-x+BLw/opaz9LiVyrMsP75nO1Rg0QfrACUYIbVSfGwY/w0DiWIPYYrpte6us//KZXinxFAOJl0+C17L1Vi2vmDw=="
}, },
"node_modules/abitype": { "node_modules/abitype": {
"version": "1.0.7", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.7.tgz", "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz",
"integrity": "sha512-ZfYYSktDQUwc2eduYu8C4wOs+RDPmnRYMh7zNfzeMtGGgb0U+6tLGjixUic6mXf5xKKCcgT5Qp6cv39tOARVFw==", "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==",
"license": "MIT",
"funding": { "funding": {
"url": "https://github.com/sponsors/wevm" "url": "https://github.com/sponsors/wevm"
}, },
@ -9512,15 +9517,16 @@
} }
}, },
"node_modules/ox": { "node_modules/ox": {
"version": "0.6.0", "version": "0.6.7",
"resolved": "https://registry.npmjs.org/ox/-/ox-0.6.0.tgz", "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz",
"integrity": "sha512-blUzTLidvUlshv0O02CnLFqBLidNzPoAZdIth894avUAotTuWziznv6IENv5idRuOSSP3dH8WzcYw84zVdu0Aw==", "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==",
"funding": [ "funding": [
{ {
"type": "github", "type": "github",
"url": "https://github.com/sponsors/wevm" "url": "https://github.com/sponsors/wevm"
} }
], ],
"license": "MIT",
"dependencies": { "dependencies": {
"@adraffy/ens-normalize": "^1.10.1", "@adraffy/ens-normalize": "^1.10.1",
"@noble/curves": "^1.6.0", "@noble/curves": "^1.6.0",
@ -9540,33 +9546,36 @@
} }
}, },
"node_modules/ox/node_modules/@scure/base": { "node_modules/ox/node_modules/@scure/base": {
"version": "1.2.1", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz",
"integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==", "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==",
"license": "MIT",
"funding": { "funding": {
"url": "https://paulmillr.com/funding/" "url": "https://paulmillr.com/funding/"
} }
}, },
"node_modules/ox/node_modules/@scure/bip32": { "node_modules/ox/node_modules/@scure/bip32": {
"version": "1.6.1", "version": "1.6.2",
"resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.1.tgz", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz",
"integrity": "sha512-jSO+5Ud1E588Y+LFo8TaB8JVPNAZw/lGGao+1SepHDeTs2dFLurdNIAgUuDlwezqEjRjElkCJajVrtrZaBxvaQ==", "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==",
"license": "MIT",
"dependencies": { "dependencies": {
"@noble/curves": "~1.8.0", "@noble/curves": "~1.8.1",
"@noble/hashes": "~1.7.0", "@noble/hashes": "~1.7.1",
"@scure/base": "~1.2.1" "@scure/base": "~1.2.2"
}, },
"funding": { "funding": {
"url": "https://paulmillr.com/funding/" "url": "https://paulmillr.com/funding/"
} }
}, },
"node_modules/ox/node_modules/@scure/bip39": { "node_modules/ox/node_modules/@scure/bip39": {
"version": "1.5.1", "version": "1.5.4",
"resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.1.tgz", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz",
"integrity": "sha512-GnlufVSP9UdAo/H2Patfv22VTtpNTyfi+I3qCKpvuB5l1KWzEYx+l2TNpBy9Ksh4xTs3Rn06tBlpWCi/1Vz8gw==", "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==",
"license": "MIT",
"dependencies": { "dependencies": {
"@noble/hashes": "~1.7.0", "@noble/hashes": "~1.7.1",
"@scure/base": "~1.2.1" "@scure/base": "~1.2.4"
}, },
"funding": { "funding": {
"url": "https://paulmillr.com/funding/" "url": "https://paulmillr.com/funding/"
@ -12110,24 +12119,24 @@
} }
}, },
"node_modules/viem": { "node_modules/viem": {
"version": "2.22.8", "version": "2.23.2",
"resolved": "https://registry.npmjs.org/viem/-/viem-2.22.8.tgz", "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz",
"integrity": "sha512-iB3PW/a/qzpYbpjo3R662u6a/zo6piZHez/N/bOC25C79FYXBCs8mQDqwiHk3FYErUhS4KVZLabKV9zGMd+EgQ==", "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==",
"funding": [ "funding": [
{ {
"type": "github", "type": "github",
"url": "https://github.com/sponsors/wevm" "url": "https://github.com/sponsors/wevm"
} }
], ],
"license": "MIT",
"dependencies": { "dependencies": {
"@noble/curves": "1.7.0", "@noble/curves": "1.8.1",
"@noble/hashes": "1.6.1", "@noble/hashes": "1.7.1",
"@scure/bip32": "1.6.0", "@scure/bip32": "1.6.2",
"@scure/bip39": "1.5.0", "@scure/bip39": "1.5.4",
"abitype": "1.0.7", "abitype": "1.0.8",
"isows": "1.0.6", "isows": "1.0.6",
"ox": "0.6.0", "ox": "0.6.7",
"webauthn-p256": "0.0.10",
"ws": "8.18.0" "ws": "8.18.0"
}, },
"peerDependencies": { "peerDependencies": {
@ -12139,70 +12148,37 @@
} }
} }
}, },
"node_modules/viem/node_modules/@noble/curves": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz",
"integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==",
"dependencies": {
"@noble/hashes": "1.6.0"
},
"engines": {
"node": "^14.21.3 || >=16"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/viem/node_modules/@noble/curves/node_modules/@noble/hashes": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz",
"integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==",
"engines": {
"node": "^14.21.3 || >=16"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/viem/node_modules/@noble/hashes": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
"integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==",
"engines": {
"node": "^14.21.3 || >=16"
},
"funding": {
"url": "https://paulmillr.com/funding/"
}
},
"node_modules/viem/node_modules/@scure/base": { "node_modules/viem/node_modules/@scure/base": {
"version": "1.2.1", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz",
"integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==", "integrity": "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==",
"license": "MIT",
"funding": { "funding": {
"url": "https://paulmillr.com/funding/" "url": "https://paulmillr.com/funding/"
} }
}, },
"node_modules/viem/node_modules/@scure/bip32": { "node_modules/viem/node_modules/@scure/bip32": {
"version": "1.6.0", "version": "1.6.2",
"resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.0.tgz", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz",
"integrity": "sha512-82q1QfklrUUdXJzjuRU7iG7D7XiFx5PHYVS0+oeNKhyDLT7WPqs6pBcM2W5ZdwOwKCwoE1Vy1se+DHjcXwCYnA==", "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==",
"license": "MIT",
"dependencies": { "dependencies": {
"@noble/curves": "~1.7.0", "@noble/curves": "~1.8.1",
"@noble/hashes": "~1.6.0", "@noble/hashes": "~1.7.1",
"@scure/base": "~1.2.1" "@scure/base": "~1.2.2"
}, },
"funding": { "funding": {
"url": "https://paulmillr.com/funding/" "url": "https://paulmillr.com/funding/"
} }
}, },
"node_modules/viem/node_modules/@scure/bip39": { "node_modules/viem/node_modules/@scure/bip39": {
"version": "1.5.0", "version": "1.5.4",
"resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz",
"integrity": "sha512-Dop+ASYhnrwm9+HA/HwXg7j2ZqM6yk2fyLWb5znexjctFY3+E+eU8cIWI0Pql0Qx4hPZCijlGq4OL71g+Uz30A==", "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==",
"license": "MIT",
"dependencies": { "dependencies": {
"@noble/hashes": "~1.6.0", "@noble/hashes": "~1.7.1",
"@scure/base": "~1.2.1" "@scure/base": "~1.2.4"
}, },
"funding": { "funding": {
"url": "https://paulmillr.com/funding/" "url": "https://paulmillr.com/funding/"
@ -12456,21 +12432,6 @@
"node": ">=8.0.0" "node": ">=8.0.0"
} }
}, },
"node_modules/webauthn-p256": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/webauthn-p256/-/webauthn-p256-0.0.10.tgz",
"integrity": "sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/wevm"
}
],
"dependencies": {
"@noble/curves": "^1.4.0",
"@noble/hashes": "^1.4.0"
}
},
"node_modules/webidl-conversions": { "node_modules/webidl-conversions": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",

View File

@ -35,7 +35,8 @@
"tailwind-merge": "^2.6.0", "tailwind-merge": "^2.6.0",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"three": "^0.172.0", "three": "^0.172.0",
"uuid": "^11.0.5" "uuid": "^11.0.5",
"viem": "^2.23.2"
}, },
"devDependencies": { "devDependencies": {
"@types/js-cookie": "^3.0.6", "@types/js-cookie": "^3.0.6",