diff --git a/examples/browser-file-management/.env.simple b/examples/browser-file-management/.env.simple
new file mode 100644
index 00000000..511c3eea
--- /dev/null
+++ b/examples/browser-file-management/.env.simple
@@ -0,0 +1,8 @@
+NEXT_PUBLIC_GRPC_URL=https://gnfd-testnet-fullnode-tendermint-ap.bnbchain.org
+
+NEXT_PUBLIC_GREENFIELD_RPC_URL=https://gnfd-testnet-fullnode-tendermint-ap.bnbchain.org
+NEXT_PUBLIC_GREEN_CHAIN_ID=5600
+
+# BSC End POINT
+NEXT_PUBLIC_BSC_RPC_URL=https://data-seed-prebsc-1-s1.binance.org:8545
+NEXT_PUBLIC_BSC_CHAIN_ID=97
diff --git a/examples/browser-file-management/.gitignore b/examples/browser-file-management/.gitignore
new file mode 100644
index 00000000..8f322f0d
--- /dev/null
+++ b/examples/browser-file-management/.gitignore
@@ -0,0 +1,35 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/examples/browser-file-management/README.md b/examples/browser-file-management/README.md
new file mode 100644
index 00000000..e49c6586
--- /dev/null
+++ b/examples/browser-file-management/README.md
@@ -0,0 +1,7 @@
+# Browser File Management
+
+```bash
+> cp .env.simple .env
+```
+
+And then fill your account info in `.env`.
diff --git a/examples/browser-file-management/next.config.js b/examples/browser-file-management/next.config.js
new file mode 100644
index 00000000..06281ede
--- /dev/null
+++ b/examples/browser-file-management/next.config.js
@@ -0,0 +1,37 @@
+const _getPublicEnv = (prefix) => {
+ const envs = process.env;
+ const res = {};
+
+ Object.keys(envs).forEach((k) => {
+ if (k.startsWith(prefix)) {
+ res[k] = envs[k];
+ }
+ });
+
+ return res;
+};
+
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+ reactStrictMode: false,
+ trailingSlash: true,
+ publicRuntimeConfig: {
+ ..._getPublicEnv('NEXT_PUBLIC_'),
+ },
+ eslint: {
+ // Warning: This allows production builds to successfully complete even if
+ // your project has ESLint errors.
+ ignoreDuringBuilds: true,
+ },
+ webpack: (config) => {
+ config.resolve.fallback = {
+ fs: false,
+ net: false,
+ tls: false,
+ };
+
+ return config;
+ },
+};
+
+module.exports = nextConfig;
diff --git a/examples/browser-file-management/package.json b/examples/browser-file-management/package.json
new file mode 100644
index 00000000..fc80acc5
--- /dev/null
+++ b/examples/browser-file-management/package.json
@@ -0,0 +1,25 @@
+{
+ "name": "browser-file-management",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@bnb-chain/greenfield-js-sdk": "latest",
+ "@bnb-chain/reed-solomon": "latest",
+ "@rainbow-me/rainbowkit": "^1.3.0",
+ "@types/node": "20.6.0",
+ "@types/react": "18.2.21",
+ "@types/react-dom": "18.2.7",
+ "next": "13.4.19",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
+ "typescript": "5.2.2",
+ "viem": "^1.19.11",
+ "wagmi": "^1.4.8"
+ }
+}
diff --git a/examples/browser-file-management/src/client/index.ts b/examples/browser-file-management/src/client/index.ts
new file mode 100644
index 00000000..5fee6955
--- /dev/null
+++ b/examples/browser-file-management/src/client/index.ts
@@ -0,0 +1,45 @@
+import { GREEN_CHAIN_ID, GRPC_URL } from '@/config/env';
+import { Client } from '@bnb-chain/greenfield-js-sdk';
+
+export const client = Client.create(GRPC_URL, String(GREEN_CHAIN_ID), {
+ zkCryptoUrl: 'https://unpkg.com/@bnb-chain/greenfield-zk-crypto@0.0.3/dist/node/zk-crypto.wasm',
+});
+
+export const getSps = async () => {
+ const sps = await client.sp.getStorageProviders();
+ const finalSps = (sps ?? []).filter((v: any) => v.endpoint.includes('nodereal'));
+
+ return finalSps;
+};
+
+export const getAllSps = async () => {
+ const sps = await getSps();
+
+ return sps.map((sp) => {
+ return {
+ address: sp.operatorAddress,
+ endpoint: sp.endpoint,
+ name: sp.description?.moniker,
+ };
+ });
+};
+
+export const selectSp = async () => {
+ const finalSps = await getSps();
+
+ const selectIndex = Math.floor(Math.random() * finalSps.length);
+
+ const secondarySpAddresses = [
+ ...finalSps.slice(0, selectIndex),
+ ...finalSps.slice(selectIndex + 1),
+ ].map((item) => item.operatorAddress);
+ const selectSpInfo = {
+ id: finalSps[selectIndex].id,
+ endpoint: finalSps[selectIndex].endpoint,
+ primarySpAddress: finalSps[selectIndex]?.operatorAddress,
+ sealAddress: finalSps[selectIndex].sealAddress,
+ secondarySpAddresses,
+ };
+
+ return selectSpInfo;
+};
diff --git a/examples/browser-file-management/src/components/demo/index.tsx b/examples/browser-file-management/src/components/demo/index.tsx
new file mode 100644
index 00000000..9e261edc
--- /dev/null
+++ b/examples/browser-file-management/src/components/demo/index.tsx
@@ -0,0 +1,473 @@
+import { client, selectSp } from '@/client';
+import { getOffchainAuthKeys } from '@/utils/offchainAuth';
+import { useState } from 'react';
+import { useAccount } from 'wagmi';
+import { ReedSolomon } from '@bnb-chain/reed-solomon';
+
+export const Demo = () => {
+ const { address, connector } = useAccount();
+ const [info, setInfo] = useState<{
+ bucketName: string;
+ objectName: string;
+ file: File | null;
+ }>({
+ bucketName: '',
+ objectName: '',
+ file: null,
+ });
+ const [txnHash, setTxnHash] = useState('');
+
+ return (
+ <>
+
+
+
Greenfield Storage Demo
+
Create Bucket / Create Object / Upload File / Download File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ setInfo({ ...info, bucketName: e.target.value });
+ }}
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ setInfo({ ...info, objectName: e.target.value });
+ }}
+ />
+
+
+
+
+
+
+
+
+
+
+
+ {/* create object */}
+
+
+
+
+ {/* upload */}
+
+
+
+
+ {/* Download */}
+
+
+
+
+ {/* Update Object Info */}
+
+
+
+
+ {/* Delete object */}
+
+
+
+
+ >
+ );
+};
diff --git a/examples/browser-file-management/src/components/wallet/index.tsx b/examples/browser-file-management/src/components/wallet/index.tsx
new file mode 100644
index 00000000..bdd94f39
--- /dev/null
+++ b/examples/browser-file-management/src/components/wallet/index.tsx
@@ -0,0 +1,9 @@
+import { ConnectButton } from '@rainbow-me/rainbowkit';
+
+export const Wallet = () => {
+ return (
+
+
+
+ );
+};
diff --git a/examples/browser-file-management/src/config/env.ts b/examples/browser-file-management/src/config/env.ts
new file mode 100644
index 00000000..9f465e2c
--- /dev/null
+++ b/examples/browser-file-management/src/config/env.ts
@@ -0,0 +1,16 @@
+import getConfig from 'next/config';
+
+const { publicRuntimeConfig } = getConfig();
+const {
+ NEXT_PUBLIC_GRPC_URL,
+ NEXT_PUBLIC_GREENFIELD_RPC_URL,
+ NEXT_PUBLIC_GREEN_CHAIN_ID,
+ NEXT_PUBLIC_BSC_RPC_URL,
+ NEXT_PUBLIC_BSC_CHAIN_ID,
+} = publicRuntimeConfig || {};
+
+export const GRPC_URL = NEXT_PUBLIC_GRPC_URL;
+export const GREENFIELD_RPC_URL = NEXT_PUBLIC_GREENFIELD_RPC_URL;
+export const GREEN_CHAIN_ID = parseInt(NEXT_PUBLIC_GREEN_CHAIN_ID);
+export const BSC_RPC_URL = NEXT_PUBLIC_BSC_RPC_URL;
+export const BSC_CHAIN_ID = parseInt(NEXT_PUBLIC_BSC_CHAIN_ID);
diff --git a/examples/browser-file-management/src/config/wallet.ts b/examples/browser-file-management/src/config/wallet.ts
new file mode 100644
index 00000000..714ee508
--- /dev/null
+++ b/examples/browser-file-management/src/config/wallet.ts
@@ -0,0 +1,114 @@
+import { Wallet } from '@rainbow-me/rainbowkit';
+import { Chain, configureChains, mainnet } from 'wagmi';
+import { CoinbaseWalletConnector } from 'wagmi/connectors/coinbaseWallet';
+import { InjectedConnector } from 'wagmi/connectors/injected';
+import { MetaMaskConnector } from 'wagmi/connectors/metaMask';
+import { publicProvider } from 'wagmi/providers/public';
+import { BSC_CHAIN_ID, BSC_RPC_URL, GREEN_CHAIN_ID, GREENFIELD_RPC_URL } from './env';
+
+const greenFieldChain: Chain = {
+ id: GREEN_CHAIN_ID,
+ network: 'greenfield',
+ rpcUrls: {
+ default: {
+ http: [GREENFIELD_RPC_URL],
+ },
+ public: {
+ http: [GREENFIELD_RPC_URL],
+ },
+ },
+ name: 'greenfield',
+ nativeCurrency: {
+ name: 'BNB',
+ symbol: 'BNB',
+ decimals: 18,
+ },
+};
+
+const bscChain: Chain = {
+ id: BSC_CHAIN_ID,
+ name: 'BSC',
+ network: 'QA - bsc smart chain',
+ rpcUrls: {
+ default: {
+ http: [BSC_RPC_URL],
+ },
+ public: {
+ http: [BSC_RPC_URL],
+ },
+ },
+ nativeCurrency: {
+ name: 'BNB',
+ symbol: 'BNB',
+ decimals: 18,
+ },
+ // blockExplorers: {
+ // default: { name: '', url: 'https://testnet.bscscan.com/' },
+ // },
+ // testnet: true,
+};
+
+const { chains, publicClient, webSocketPublicClient } = configureChains(
+ [
+ mainnet,
+ {
+ ...greenFieldChain,
+ iconUrl:
+ 'https://github.com/wagmi-dev/wagmi/assets/5653652/44446c8c-5c72-4e89-b8eb-3042ef618eed',
+ },
+ bscChain,
+ ],
+ [publicProvider()],
+);
+
+const coinbaseWalletConnector = new CoinbaseWalletConnector({
+ chains,
+ options: {
+ appName: 'wagmi',
+ },
+});
+
+const trustWalletConnector = new InjectedConnector({
+ chains,
+ options: {
+ name: 'GN',
+ shimDisconnect: true,
+ // TODO: rainbowkit conflict
+ getProvider: () => (typeof window !== 'undefined' ? (window as any).trustwallet : undefined),
+ },
+});
+
+const metaMaskWalletConnector = new MetaMaskConnector({ chains });
+
+export interface MyWalletOptions {
+ projectId: string;
+ chains: Chain[];
+}
+
+const RainbowTrustWalletConnector = ({ chains, projectId }: MyWalletOptions): Wallet => ({
+ id: '_trust-wallet',
+ name: 'Trust Wallet',
+ iconUrl: 'https://my-image.xyz',
+ iconBackground: '#0c2f78',
+ downloadUrls: {
+ android: 'https://play.google.com/store/apps/details?id=my.wallet',
+ ios: 'https://apps.apple.com/us/app/my-wallet',
+ chrome: 'https://chrome.google.com/webstore/detail/my-wallet',
+ qrCode: 'https://my-wallet/qr',
+ },
+ createConnector: () => {
+ return {
+ connector: trustWalletConnector,
+ };
+ },
+});
+
+export {
+ chains,
+ coinbaseWalletConnector,
+ metaMaskWalletConnector,
+ publicClient,
+ RainbowTrustWalletConnector,
+ trustWalletConnector,
+ webSocketPublicClient,
+};
diff --git a/examples/browser-file-management/src/hooks/useIsMounted.ts b/examples/browser-file-management/src/hooks/useIsMounted.ts
new file mode 100644
index 00000000..83a674cf
--- /dev/null
+++ b/examples/browser-file-management/src/hooks/useIsMounted.ts
@@ -0,0 +1,9 @@
+import React from 'react';
+
+export const useIsMounted = () => {
+ const [mounted, setMounted] = React.useState(false);
+
+ React.useEffect(() => setMounted(true), []);
+
+ return mounted;
+};
diff --git a/examples/browser-file-management/src/pages/_app.tsx b/examples/browser-file-management/src/pages/_app.tsx
new file mode 100644
index 00000000..e16b1544
--- /dev/null
+++ b/examples/browser-file-management/src/pages/_app.tsx
@@ -0,0 +1,36 @@
+import { chains, publicClient, webSocketPublicClient } from '@/config/wallet';
+import '@/styles/globals.css';
+import {
+ RainbowKitProvider,
+ connectorsForWallets,
+ getDefaultWallets,
+} from '@rainbow-me/rainbowkit';
+import type { AppProps } from 'next/app';
+import { WagmiConfig, createConfig } from 'wagmi';
+import '@rainbow-me/rainbowkit/styles.css';
+
+const projectId = '9bf3510aab08be54d5181a126967ee71';
+const { wallets } = getDefaultWallets({
+ projectId,
+ appName: 'greenfield js sdk demo',
+ chains,
+});
+
+const connectors = connectorsForWallets([...wallets]);
+
+const wagmiConfig = createConfig({
+ autoConnect: true,
+ connectors,
+ webSocketPublicClient,
+ publicClient,
+});
+
+export default function App({ Component, pageProps }: AppProps) {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/examples/browser-file-management/src/pages/_document.tsx b/examples/browser-file-management/src/pages/_document.tsx
new file mode 100644
index 00000000..2905cafd
--- /dev/null
+++ b/examples/browser-file-management/src/pages/_document.tsx
@@ -0,0 +1,15 @@
+import { Html, Head, Main, NextScript } from 'next/document';
+
+export default function Document() {
+ return (
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/examples/browser-file-management/src/pages/api/hello.ts b/examples/browser-file-management/src/pages/api/hello.ts
new file mode 100644
index 00000000..eb4cc665
--- /dev/null
+++ b/examples/browser-file-management/src/pages/api/hello.ts
@@ -0,0 +1,10 @@
+// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
+import type { NextApiRequest, NextApiResponse } from 'next';
+
+type Data = {
+ name: string;
+};
+
+export default function handler(req: NextApiRequest, res: NextApiResponse) {
+ res.status(200).json({ name: 'John Doe' });
+}
diff --git a/examples/browser-file-management/src/pages/index.tsx b/examples/browser-file-management/src/pages/index.tsx
new file mode 100644
index 00000000..69701cbe
--- /dev/null
+++ b/examples/browser-file-management/src/pages/index.tsx
@@ -0,0 +1,34 @@
+import { Demo } from '@/components/demo';
+import { Wallet } from '@/components/wallet';
+import { useIsMounted } from '@/hooks/useIsMounted';
+import styles from '@/styles/Home.module.css';
+import { Inter } from 'next/font/google';
+import Head from 'next/head';
+import { useAccount } from 'wagmi';
+
+const inter = Inter({ subsets: ['latin'] });
+
+export default function Home() {
+ const isMounted = useIsMounted();
+ const { isConnected } = useAccount();
+
+ if (!isMounted) return null;
+
+ return (
+ <>
+
+ Create Greenfield App
+
+
+
+
+
+ {isConnected && (
+ <>
+
+ >
+ )}
+
+ >
+ );
+}
diff --git a/examples/browser-file-management/src/styles/Home.module.css b/examples/browser-file-management/src/styles/Home.module.css
new file mode 100644
index 00000000..c0b65447
--- /dev/null
+++ b/examples/browser-file-management/src/styles/Home.module.css
@@ -0,0 +1,228 @@
+.main {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ padding: 6rem;
+ min-height: 100vh;
+}
+
+.description {
+ display: inherit;
+ justify-content: inherit;
+ align-items: inherit;
+ font-size: 0.85rem;
+ max-width: var(--max-width);
+ width: 100%;
+ z-index: 2;
+ font-family: var(--font-mono);
+}
+
+.description a {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+.description p {
+ position: relative;
+ margin: 0;
+ padding: 1rem;
+ background-color: rgba(var(--callout-rgb), 0.5);
+ border: 1px solid rgba(var(--callout-border-rgb), 0.3);
+ border-radius: var(--border-radius);
+}
+
+.code {
+ font-weight: 700;
+ font-family: var(--font-mono);
+}
+
+.grid {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(25%, auto));
+ max-width: 100%;
+ width: var(--max-width);
+}
+
+.card {
+ padding: 1rem 1.2rem;
+ border-radius: var(--border-radius);
+ background: rgba(var(--card-rgb), 0);
+ border: 1px solid rgba(var(--card-border-rgb), 0);
+ transition: background 200ms, border 200ms;
+}
+
+.card span {
+ display: inline-block;
+ transition: transform 200ms;
+}
+
+.card h2 {
+ font-weight: 600;
+ margin-bottom: 0.7rem;
+}
+
+.card p {
+ margin: 0;
+ opacity: 0.6;
+ font-size: 0.9rem;
+ line-height: 1.5;
+ max-width: 30ch;
+}
+
+.center {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: relative;
+ padding: 4rem 0;
+}
+
+.center::before {
+ background: var(--secondary-glow);
+ border-radius: 50%;
+ width: 480px;
+ height: 360px;
+ margin-left: -400px;
+}
+
+.center::after {
+ background: var(--primary-glow);
+ width: 240px;
+ height: 180px;
+ z-index: -1;
+}
+
+.center::before,
+.center::after {
+ content: '';
+ left: 50%;
+ position: absolute;
+ filter: blur(45px);
+ transform: translateZ(0);
+}
+
+.logo {
+ position: relative;
+}
+/* Enable hover only on non-touch devices */
+@media (hover: hover) and (pointer: fine) {
+ .card:hover {
+ background: rgba(var(--card-rgb), 0.1);
+ border: 1px solid rgba(var(--card-border-rgb), 0.15);
+ }
+
+ .card:hover span {
+ transform: translateX(4px);
+ }
+}
+
+@media (prefers-reduced-motion) {
+ .card:hover span {
+ transform: none;
+ }
+}
+
+/* Mobile */
+@media (max-width: 700px) {
+ .content {
+ padding: 4rem;
+ }
+
+ .grid {
+ grid-template-columns: 1fr;
+ margin-bottom: 120px;
+ max-width: 320px;
+ text-align: center;
+ }
+
+ .card {
+ padding: 1rem 2.5rem;
+ }
+
+ .card h2 {
+ margin-bottom: 0.5rem;
+ }
+
+ .center {
+ padding: 8rem 0 6rem;
+ }
+
+ .center::before {
+ transform: none;
+ height: 300px;
+ }
+
+ .description {
+ font-size: 0.8rem;
+ }
+
+ .description a {
+ padding: 1rem;
+ }
+
+ .description p,
+ .description div {
+ display: flex;
+ justify-content: center;
+ position: fixed;
+ width: 100%;
+ }
+
+ .description p {
+ align-items: center;
+ inset: 0 0 auto;
+ padding: 2rem 1rem 1.4rem;
+ border-radius: 0;
+ border: none;
+ border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);
+ background: linear-gradient(
+ to bottom,
+ rgba(var(--background-start-rgb), 1),
+ rgba(var(--callout-rgb), 0.5)
+ );
+ background-clip: padding-box;
+ backdrop-filter: blur(24px);
+ }
+
+ .description div {
+ align-items: flex-end;
+ pointer-events: none;
+ inset: auto 0 0;
+ padding: 2rem;
+ height: 200px;
+ background: linear-gradient(
+ to bottom,
+ transparent 0%,
+ rgb(var(--background-end-rgb)) 40%
+ );
+ z-index: 1;
+ }
+}
+
+/* Tablet and Smaller Desktop */
+@media (min-width: 701px) and (max-width: 1120px) {
+ .grid {
+ grid-template-columns: repeat(2, 50%);
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ .vercelLogo {
+ filter: invert(1);
+ }
+
+ .logo {
+ filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70);
+ }
+}
+
+@keyframes rotate {
+ from {
+ transform: rotate(360deg);
+ }
+ to {
+ transform: rotate(0deg);
+ }
+}
diff --git a/examples/browser-file-management/src/styles/globals.css b/examples/browser-file-management/src/styles/globals.css
new file mode 100644
index 00000000..d4f491e1
--- /dev/null
+++ b/examples/browser-file-management/src/styles/globals.css
@@ -0,0 +1,107 @@
+:root {
+ --max-width: 1100px;
+ --border-radius: 12px;
+ --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono',
+ 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro',
+ 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace;
+
+ --foreground-rgb: 0, 0, 0;
+ --background-start-rgb: 214, 219, 220;
+ --background-end-rgb: 255, 255, 255;
+
+ --primary-glow: conic-gradient(
+ from 180deg at 50% 50%,
+ #16abff33 0deg,
+ #0885ff33 55deg,
+ #54d6ff33 120deg,
+ #0071ff33 160deg,
+ transparent 360deg
+ );
+ --secondary-glow: radial-gradient(
+ rgba(255, 255, 255, 1),
+ rgba(255, 255, 255, 0)
+ );
+
+ --tile-start-rgb: 239, 245, 249;
+ --tile-end-rgb: 228, 232, 233;
+ --tile-border: conic-gradient(
+ #00000080,
+ #00000040,
+ #00000030,
+ #00000020,
+ #00000010,
+ #00000010,
+ #00000080
+ );
+
+ --callout-rgb: 238, 240, 241;
+ --callout-border-rgb: 172, 175, 176;
+ --card-rgb: 180, 185, 188;
+ --card-border-rgb: 131, 134, 135;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --foreground-rgb: 255, 255, 255;
+ --background-start-rgb: 0, 0, 0;
+ --background-end-rgb: 0, 0, 0;
+
+ --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0));
+ --secondary-glow: linear-gradient(
+ to bottom right,
+ rgba(1, 65, 255, 0),
+ rgba(1, 65, 255, 0),
+ rgba(1, 65, 255, 0.3)
+ );
+
+ --tile-start-rgb: 2, 13, 46;
+ --tile-end-rgb: 2, 5, 19;
+ --tile-border: conic-gradient(
+ #ffffff80,
+ #ffffff40,
+ #ffffff30,
+ #ffffff20,
+ #ffffff10,
+ #ffffff10,
+ #ffffff80
+ );
+
+ --callout-rgb: 20, 20, 20;
+ --callout-border-rgb: 108, 108, 108;
+ --card-rgb: 100, 100, 100;
+ --card-border-rgb: 200, 200, 200;
+ }
+}
+
+* {
+ box-sizing: border-box;
+ padding: 0;
+ margin: 0;
+}
+
+html,
+body {
+ max-width: 100vw;
+ overflow-x: hidden;
+}
+
+body {
+ color: rgb(var(--foreground-rgb));
+ background: linear-gradient(
+ to bottom,
+ transparent,
+ rgb(var(--background-end-rgb))
+ )
+ rgb(var(--background-start-rgb));
+}
+
+a {
+ color: inherit;
+ text-decoration: none;
+}
+
+@media (prefers-color-scheme: dark) {
+ html {
+ color-scheme: dark;
+ }
+}
diff --git a/examples/browser-file-management/src/utils/offchainAuth.ts b/examples/browser-file-management/src/utils/offchainAuth.ts
new file mode 100644
index 00000000..2401bf74
--- /dev/null
+++ b/examples/browser-file-management/src/utils/offchainAuth.ts
@@ -0,0 +1,41 @@
+import { client, getAllSps } from '@/client';
+import { GREEN_CHAIN_ID } from '@/config/env';
+import { IReturnOffChainAuthKeyPairAndUpload } from '@bnb-chain/greenfield-js-sdk';
+
+/**
+ * generate off-chain auth key pair and upload public key to sp
+ */
+export const getOffchainAuthKeys = async (address: string, provider: any) => {
+ const storageResStr = localStorage.getItem(address);
+
+ if (storageResStr) {
+ const storageRes = JSON.parse(storageResStr) as IReturnOffChainAuthKeyPairAndUpload;
+ if (storageRes.expirationTime < Date.now()) {
+ alert('Your auth key has expired, please generate a new one');
+ localStorage.removeItem(address);
+ return;
+ }
+
+ return storageRes;
+ }
+
+ const allSps = await getAllSps();
+ const offchainAuthRes = await client.offchainauth.genOffChainAuthKeyPairAndUpload(
+ {
+ sps: allSps,
+ chainId: GREEN_CHAIN_ID,
+ expirationMs: 5 * 24 * 60 * 60 * 1000,
+ domain: window.location.origin,
+ address,
+ },
+ provider,
+ );
+
+ const { code, body: offChainData } = offchainAuthRes;
+ if (code !== 0 || !offChainData) {
+ throw offchainAuthRes;
+ }
+
+ localStorage.setItem(address, JSON.stringify(offChainData));
+ return offChainData;
+};
diff --git a/examples/browser-file-management/tsconfig.json b/examples/browser-file-management/tsconfig.json
new file mode 100644
index 00000000..3206756d
--- /dev/null
+++ b/examples/browser-file-management/tsconfig.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "Node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
+ "exclude": ["node_modules"]
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ad21358c..bc8ece0b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -115,10 +115,10 @@ importers:
version: 3.0.1(eslint@8.48.0)(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/preset-classic':
specifier: 3.0.1
- version: 3.0.1(@algolia/client-search@4.20.0)(@types/react@18.2.41)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)(typescript@4.9.5)
+ version: 3.0.1(@algolia/client-search@4.20.0)(@types/react@18.2.21)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)(typescript@4.9.5)
'@mdx-js/react':
specifier: ^3.0.0
- version: 3.0.0(@types/react@18.2.41)(react@18.2.0)
+ version: 3.0.0(@types/react@18.2.21)(react@18.2.0)
clsx:
specifier: ^1.2.1
version: 1.2.1
@@ -136,6 +136,45 @@ importers:
specifier: 3.0.0
version: 3.0.0(react-dom@18.2.0)(react@18.2.0)
+ examples/browser-file-management:
+ dependencies:
+ '@bnb-chain/greenfield-js-sdk':
+ specifier: latest
+ version: link:../../packages/js-sdk
+ '@bnb-chain/reed-solomon':
+ specifier: latest
+ version: link:../../packages/reed-solomon
+ '@rainbow-me/rainbowkit':
+ specifier: ^1.3.0
+ version: 1.3.0(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(viem@1.20.3)(wagmi@1.4.12)
+ '@types/node':
+ specifier: 20.6.0
+ version: 20.6.0
+ '@types/react':
+ specifier: 18.2.21
+ version: 18.2.21
+ '@types/react-dom':
+ specifier: 18.2.7
+ version: 18.2.7
+ next:
+ specifier: 13.4.19
+ version: 13.4.19(@babel/core@7.23.3)(react-dom@18.2.0)(react@18.2.0)
+ react:
+ specifier: 18.2.0
+ version: 18.2.0
+ react-dom:
+ specifier: 18.2.0
+ version: 18.2.0(react@18.2.0)
+ typescript:
+ specifier: 5.2.2
+ version: 5.2.2
+ viem:
+ specifier: ^1.19.11
+ version: 1.20.3(typescript@5.2.2)
+ wagmi:
+ specifier: ^1.4.8
+ version: 1.4.12(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@1.20.3)
+
examples/nextjs:
dependencies:
'@bnb-chain/greenfield-cosmos-types':
@@ -498,6 +537,10 @@ packages:
resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
engines: {node: '>=0.10.0'}
+ /@adraffy/ens-normalize@1.10.0:
+ resolution: {integrity: sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==}
+ dev: false
+
/@adraffy/ens-normalize@1.9.0:
resolution: {integrity: sha512-iowxq3U30sghZotgl4s/oJRci6WPBfNO5YYgk2cIOMCHr3LeGPcsZjCEr+33Q4N+oV3OABDAtA+pyvWjbvBifQ==}
dev: false
@@ -4027,7 +4070,7 @@ packages:
resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==}
dev: false
- /@docsearch/react@3.5.2(@algolia/client-search@4.20.0)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0):
+ /@docsearch/react@3.5.2(@algolia/client-search@4.20.0)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0):
resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==}
peerDependencies:
'@types/react': '>= 16.8.0 < 19.0.0'
@@ -4047,7 +4090,7 @@ packages:
'@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)(search-insights@2.11.0)
'@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.20.0)(algoliasearch@4.20.0)
'@docsearch/css': 3.5.2
- '@types/react': 18.2.41
+ '@types/react': 18.2.21
algoliasearch: 4.20.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -4261,7 +4304,7 @@ packages:
'@docusaurus/react-loadable': 5.5.2(react@18.2.0)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
'@types/history': 4.7.11
- '@types/react': 18.2.41
+ '@types/react': 18.2.21
'@types/react-router-config': 5.0.10
'@types/react-router-dom': 5.3.3
react: 18.2.0
@@ -4602,7 +4645,7 @@ packages:
- webpack-cli
dev: false
- /@docusaurus/preset-classic@3.0.1(@algolia/client-search@4.20.0)(@types/react@18.2.41)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)(typescript@4.9.5):
+ /@docusaurus/preset-classic@3.0.1(@algolia/client-search@4.20.0)(@types/react@18.2.21)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)(typescript@4.9.5):
resolution: {integrity: sha512-il9m9xZKKjoXn6h0cRcdnt6wce0Pv1y5t4xk2Wx7zBGhKG1idu4IFHtikHlD0QPuZ9fizpXspXcTzjL5FXc1Gw==}
engines: {node: '>=18.0'}
peerDependencies:
@@ -4618,9 +4661,9 @@ packages:
'@docusaurus/plugin-google-gtag': 3.0.1(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-google-tag-manager': 3.0.1(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/plugin-sitemap': 3.0.1(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
- '@docusaurus/theme-classic': 3.0.1(@types/react@18.2.41)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
+ '@docusaurus/theme-classic': 3.0.1(@types/react@18.2.21)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/theme-common': 3.0.1(@docusaurus/types@3.0.1)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
- '@docusaurus/theme-search-algolia': 3.0.1(@algolia/client-search@4.20.0)(@docusaurus/types@3.0.1)(@types/react@18.2.41)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)(typescript@4.9.5)
+ '@docusaurus/theme-search-algolia': 3.0.1(@algolia/client-search@4.20.0)(@docusaurus/types@3.0.1)(@types/react@18.2.21)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)(typescript@4.9.5)
'@docusaurus/types': 3.0.1(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -4650,7 +4693,7 @@ packages:
peerDependencies:
react: '*'
dependencies:
- '@types/react': 18.2.41
+ '@types/react': 18.2.21
prop-types: 15.8.1
react: 18.2.0
@@ -4670,7 +4713,7 @@ packages:
sharp: 0.32.6
dev: false
- /@docusaurus/theme-classic@3.0.1(@types/react@18.2.41)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
+ /@docusaurus/theme-classic@3.0.1(@types/react@18.2.21)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5):
resolution: {integrity: sha512-XD1FRXaJiDlmYaiHHdm27PNhhPboUah9rqIH0lMpBt5kYtsGjJzhqa27KuZvHLzOP2OEpqd2+GZ5b6YPq7Q05Q==}
engines: {node: '>=18.0'}
peerDependencies:
@@ -4689,7 +4732,7 @@ packages:
'@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
'@docusaurus/utils-common': 3.0.1(@docusaurus/types@3.0.1)
'@docusaurus/utils-validation': 3.0.1(@docusaurus/types@3.0.1)
- '@mdx-js/react': 3.0.0(@types/react@18.2.41)(react@18.2.0)
+ '@mdx-js/react': 3.0.0(@types/react@18.2.21)(react@18.2.0)
clsx: 2.0.0
copy-text-to-clipboard: 3.2.0
infima: 0.2.0-alpha.43
@@ -4738,7 +4781,7 @@ packages:
'@docusaurus/utils': 3.0.1(@docusaurus/types@3.0.1)
'@docusaurus/utils-common': 3.0.1(@docusaurus/types@3.0.1)
'@types/history': 4.7.11
- '@types/react': 18.2.41
+ '@types/react': 18.2.21
'@types/react-router-config': 5.0.10
clsx: 2.0.0
parse-numeric-range: 1.3.0
@@ -4766,14 +4809,14 @@ packages:
- webpack-cli
dev: false
- /@docusaurus/theme-search-algolia@3.0.1(@algolia/client-search@4.20.0)(@docusaurus/types@3.0.1)(@types/react@18.2.41)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)(typescript@4.9.5):
+ /@docusaurus/theme-search-algolia@3.0.1(@algolia/client-search@4.20.0)(@docusaurus/types@3.0.1)(@types/react@18.2.21)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)(typescript@4.9.5):
resolution: {integrity: sha512-DDiPc0/xmKSEdwFkXNf1/vH1SzJPzuJBar8kMcBbDAZk/SAmo/4lf6GU2drou4Ae60lN2waix+jYWTWcJRahSA==}
engines: {node: '>=18.0'}
peerDependencies:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
- '@docsearch/react': 3.5.2(@algolia/client-search@4.20.0)(@types/react@18.2.41)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)
+ '@docsearch/react': 3.5.2(@algolia/client-search@4.20.0)(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.11.0)
'@docusaurus/core': 3.0.1(@docusaurus/types@3.0.1)(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
'@docusaurus/logger': 3.0.1
'@docusaurus/plugin-content-docs': 3.0.1(eslint@8.48.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)
@@ -4828,7 +4871,7 @@ packages:
react-dom: ^18.0.0
dependencies:
'@types/history': 4.7.11
- '@types/react': 18.2.37
+ '@types/react': 18.2.21
commander: 5.1.0
joi: 17.11.0
react: 18.2.0
@@ -4851,7 +4894,7 @@ packages:
react-dom: ^18.0.0
dependencies:
'@types/history': 4.7.11
- '@types/react': 18.2.41
+ '@types/react': 18.2.21
commander: 5.1.0
joi: 17.11.0
react: 18.2.0
@@ -5789,14 +5832,14 @@ packages:
- supports-color
dev: false
- /@mdx-js/react@3.0.0(@types/react@18.2.41)(react@18.2.0):
+ /@mdx-js/react@3.0.0(@types/react@18.2.21)(react@18.2.0):
resolution: {integrity: sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==}
peerDependencies:
'@types/react': '>=16'
react: '>=16'
dependencies:
'@types/mdx': 2.0.10
- '@types/react': 18.2.41
+ '@types/react': 18.2.21
react: 18.2.0
dev: false
@@ -5900,6 +5943,10 @@ packages:
tslib: 2.6.2
dev: false
+ /@next/env@13.4.19:
+ resolution: {integrity: sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==}
+ dev: false
+
/@next/env@14.0.3:
resolution: {integrity: sha512-7xRqh9nMvP5xrW4/+L0jgRRX+HoNRGnfJpD+5Wq6/13j3dsdzxO3BCXn7D3hMqsDb+vjZnJq+vI7+EtgrYZTeA==}
dev: false
@@ -5914,6 +5961,15 @@ packages:
resolution: {integrity: sha512-AITjmeb1RgX1HKMCiA39ztx2mxeAyxl4ljv2UoSBUGAbFFMg8MO7YAvjHCgFhD39hL7YTbFjol04e/BPBH5RzQ==}
dev: false
+ /@next/swc-darwin-arm64@13.4.19:
+ resolution: {integrity: sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-darwin-arm64@14.0.3:
resolution: {integrity: sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw==}
engines: {node: '>= 10'}
@@ -5923,6 +5979,15 @@ packages:
dev: false
optional: true
+ /@next/swc-darwin-x64@13.4.19:
+ resolution: {integrity: sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-darwin-x64@14.0.3:
resolution: {integrity: sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ==}
engines: {node: '>= 10'}
@@ -5932,6 +5997,15 @@ packages:
dev: false
optional: true
+ /@next/swc-linux-arm64-gnu@13.4.19:
+ resolution: {integrity: sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-linux-arm64-gnu@14.0.3:
resolution: {integrity: sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg==}
engines: {node: '>= 10'}
@@ -5941,6 +6015,15 @@ packages:
dev: false
optional: true
+ /@next/swc-linux-arm64-musl@13.4.19:
+ resolution: {integrity: sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-linux-arm64-musl@14.0.3:
resolution: {integrity: sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA==}
engines: {node: '>= 10'}
@@ -5950,6 +6033,15 @@ packages:
dev: false
optional: true
+ /@next/swc-linux-x64-gnu@13.4.19:
+ resolution: {integrity: sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-linux-x64-gnu@14.0.3:
resolution: {integrity: sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg==}
engines: {node: '>= 10'}
@@ -5959,6 +6051,15 @@ packages:
dev: false
optional: true
+ /@next/swc-linux-x64-musl@13.4.19:
+ resolution: {integrity: sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-linux-x64-musl@14.0.3:
resolution: {integrity: sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg==}
engines: {node: '>= 10'}
@@ -5968,6 +6069,15 @@ packages:
dev: false
optional: true
+ /@next/swc-win32-arm64-msvc@13.4.19:
+ resolution: {integrity: sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-win32-arm64-msvc@14.0.3:
resolution: {integrity: sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog==}
engines: {node: '>= 10'}
@@ -5977,6 +6087,15 @@ packages:
dev: false
optional: true
+ /@next/swc-win32-ia32-msvc@13.4.19:
+ resolution: {integrity: sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-win32-ia32-msvc@14.0.3:
resolution: {integrity: sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg==}
engines: {node: '>= 10'}
@@ -5986,6 +6105,15 @@ packages:
dev: false
optional: true
+ /@next/swc-win32-x64-msvc@13.4.19:
+ resolution: {integrity: sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/@next/swc-win32-x64-msvc@14.0.3:
resolution: {integrity: sha512-ERhKPSJ1vQrPiwrs15Pjz/rvDHZmkmvbf/BjPN/UCOI++ODftT0GtasDPi0j+y6PPJi5HsXw+dpRaXUaw4vjuQ==}
engines: {node: '>= 10'}
@@ -6294,6 +6422,31 @@ packages:
- '@types/react'
dev: false
+ /@rainbow-me/rainbowkit@1.3.0(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(viem@1.20.3)(wagmi@1.4.12):
+ resolution: {integrity: sha512-y5/JZIdYjqc84QFqKc1AhOHctnFC7quaDE3K8bueGfa0TgyrXcA6XgN3Dko530b3sxJJiTgvu2LxWlNUg8Felg==}
+ engines: {node: '>=12.4'}
+ peerDependencies:
+ react: '>=17'
+ react-dom: '>=17'
+ viem: ~0.3.19 || ^1.0.0
+ wagmi: ~1.0.1 || ~1.1.0 || ~1.2.0 || ~1.3.0 || ~1.4.0
+ dependencies:
+ '@vanilla-extract/css': 1.9.1
+ '@vanilla-extract/dynamic': 2.0.2
+ '@vanilla-extract/sprinkles': 1.5.0(@vanilla-extract/css@1.9.1)
+ clsx: 1.1.1
+ i18n-js: 4.3.2
+ qrcode: 1.5.0
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-remove-scroll: 2.5.4(@types/react@18.2.21)(react@18.2.0)
+ ua-parser-js: 1.0.37
+ viem: 1.20.3(typescript@5.2.2)
+ wagmi: 1.4.12(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@1.20.3)
+ transitivePeerDependencies:
+ - '@types/react'
+ dev: false
+
/@rollup/plugin-alias@4.0.4(rollup@2.79.1):
resolution: {integrity: sha512-0CaAY238SMtYAWEXXptWSR8iz8NYZnH7zNBKuJ14xFJSGwLtPgjvXYsoApAHfzYXXH1ejxpVw7WlHss3zhh9SQ==}
engines: {node: '>=14.0.0'}
@@ -6467,11 +6620,23 @@ packages:
- zod
dev: false
+ /@safe-global/safe-apps-provider@0.18.1(typescript@5.2.2):
+ resolution: {integrity: sha512-V4a05A3EgJcriqtDoJklDz1BOinWhC6P0hjUSxshA4KOZM7rGPCTto/usXs09zr1vvL28evl/NldSTv97j2bmg==}
+ dependencies:
+ '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.2.2)
+ events: 3.3.0
+ transitivePeerDependencies:
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - zod
+ dev: false
+
/@safe-global/safe-apps-sdk@8.0.0(typescript@4.9.5):
resolution: {integrity: sha512-gYw0ki/EAuV1oSyMxpqandHjnthZjYYy+YWpTAzf8BqfXM3ItcZLpjxfg+3+mXW8HIO+3jw6T9iiqEXsqHaMMw==}
dependencies:
'@safe-global/safe-gateway-typescript-sdk': 3.13.2
- viem: 1.0.6(typescript@4.9.5)
+ viem: 1.20.3(typescript@4.9.5)
transitivePeerDependencies:
- bufferutil
- typescript
@@ -6483,7 +6648,19 @@ packages:
resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==}
dependencies:
'@safe-global/safe-gateway-typescript-sdk': 3.13.2
- viem: 1.0.6(typescript@4.9.5)
+ viem: 1.20.3(typescript@4.9.5)
+ transitivePeerDependencies:
+ - bufferutil
+ - typescript
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /@safe-global/safe-apps-sdk@8.1.0(typescript@5.2.2):
+ resolution: {integrity: sha512-XJbEPuaVc7b9n23MqlF6c+ToYIS3f7P2Sel8f3cSBQ9WORE4xrSuvhMpK9fDSFqJ7by/brc+rmJR/5HViRr0/w==}
+ dependencies:
+ '@safe-global/safe-gateway-typescript-sdk': 3.13.2
+ viem: 1.20.3(typescript@5.2.2)
transitivePeerDependencies:
- bufferutil
- typescript
@@ -6500,6 +6677,10 @@ packages:
resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==}
dev: false
+ /@scure/base@1.1.5:
+ resolution: {integrity: sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==}
+ dev: false
+
/@scure/bip32@1.1.5:
resolution: {integrity: sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==}
dependencies:
@@ -6516,6 +6697,14 @@ packages:
'@scure/base': 1.1.1
dev: false
+ /@scure/bip32@1.3.2:
+ resolution: {integrity: sha512-N1ZhksgwD3OBlwTv3R6KFEcPojl/W4ElJOeCZdi+vuI5QmTFwLq3OFf2zd2ROpKvxFdgZ6hUpb0dx9bVNEwYCA==}
+ dependencies:
+ '@noble/curves': 1.2.0
+ '@noble/hashes': 1.3.2
+ '@scure/base': 1.1.5
+ dev: false
+
/@scure/bip39@1.1.1:
resolution: {integrity: sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==}
dependencies:
@@ -6530,6 +6719,13 @@ packages:
'@scure/base': 1.1.1
dev: false
+ /@scure/bip39@1.2.1:
+ resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==}
+ dependencies:
+ '@noble/hashes': 1.3.2
+ '@scure/base': 1.1.5
+ dev: false
+
/@sideway/address@4.1.4:
resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==}
dependencies:
@@ -6906,6 +7102,12 @@ packages:
- supports-color
dev: false
+ /@swc/helpers@0.5.1:
+ resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
+ dependencies:
+ tslib: 2.6.2
+ dev: false
+
/@swc/helpers@0.5.2:
resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
dependencies:
@@ -7332,12 +7534,6 @@ packages:
/@types/node@18.16.18:
resolution: {integrity: sha512-/aNaQZD0+iSBAGnvvN2Cx92HqE5sZCPZtx2TsK+4nvV23fFe09jVDvpArXr2j9DnYlzuU9WuoykDDc6wqvpNcw==}
- /@types/node@20.10.3:
- resolution: {integrity: sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==}
- dependencies:
- undici-types: 5.26.5
- dev: false
-
/@types/node@20.6.0:
resolution: {integrity: sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==}
dev: false
@@ -7369,6 +7565,7 @@ packages:
/@types/prop-types@15.7.10:
resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==}
+ dev: true
/@types/prop-types@15.7.11:
resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==}
@@ -7387,27 +7584,33 @@ packages:
/@types/react-dom@18.2.5:
resolution: {integrity: sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ==}
dependencies:
- '@types/react': 18.2.12
+ '@types/react': 18.2.21
+
+ /@types/react-dom@18.2.7:
+ resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==}
+ dependencies:
+ '@types/react': 18.2.21
+ dev: false
/@types/react-router-config@5.0.10:
resolution: {integrity: sha512-Wn6c/tXdEgi9adCMtDwx8Q2vGty6TsPTc/wCQQ9kAlye8UqFxj0vGFWWuhywNfkwqth+SOgJxQTLTZukrqDQmQ==}
dependencies:
'@types/history': 4.7.11
- '@types/react': 18.2.37
+ '@types/react': 18.2.21
'@types/react-router': 5.1.20
/@types/react-router-dom@5.3.3:
resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==}
dependencies:
'@types/history': 4.7.11
- '@types/react': 18.2.37
+ '@types/react': 18.2.21
'@types/react-router': 5.1.20
/@types/react-router@5.1.20:
resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==}
dependencies:
'@types/history': 4.7.11
- '@types/react': 18.2.41
+ '@types/react': 18.2.21
/@types/react@18.2.12:
resolution: {integrity: sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw==}
@@ -7416,19 +7619,20 @@ packages:
'@types/scheduler': 0.16.3
csstype: 3.1.2
+ /@types/react@18.2.21:
+ resolution: {integrity: sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==}
+ dependencies:
+ '@types/prop-types': 15.7.11
+ '@types/scheduler': 0.16.8
+ csstype: 3.1.2
+
/@types/react@18.2.37:
resolution: {integrity: sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==}
dependencies:
'@types/prop-types': 15.7.10
'@types/scheduler': 0.16.6
csstype: 3.1.2
-
- /@types/react@18.2.41:
- resolution: {integrity: sha512-CwOGr/PiLiNBxEBqpJ7fO3kocP/2SSuC9fpH5K7tusrg4xPSRT/193rzolYwQnTN02We/ATXKnb6GqA5w4fRxw==}
- dependencies:
- '@types/prop-types': 15.7.11
- '@types/scheduler': 0.16.8
- csstype: 3.1.2
+ dev: true
/@types/resolve@1.17.1:
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
@@ -7457,6 +7661,7 @@ packages:
/@types/scheduler@0.16.6:
resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==}
+ dev: true
/@types/scheduler@0.16.8:
resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==}
@@ -7811,6 +8016,48 @@ packages:
typescript: 4.9.5
dev: false
+ /@wagmi/connectors@3.1.10(@types/react@18.2.21)(react@18.2.0)(typescript@5.2.2)(viem@1.20.3):
+ resolution: {integrity: sha512-ZLJC1QaeiZarkF07Cr9mOlVjPO1Lf5TBx+JKBms2y5fUIXlKrxCfQgO/gDCureboI+Us2X3IRI659+XacSGpbA==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ viem: '>=0.3.35'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@coinbase/wallet-sdk': 3.7.2
+ '@safe-global/safe-apps-provider': 0.18.1(typescript@5.2.2)
+ '@safe-global/safe-apps-sdk': 8.1.0(typescript@5.2.2)
+ '@walletconnect/ethereum-provider': 2.10.6(@types/react@18.2.21)(react@18.2.0)
+ '@walletconnect/legacy-provider': 2.0.0
+ '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.2.0)
+ '@walletconnect/utils': 2.10.2
+ abitype: 0.8.7(typescript@5.2.2)
+ eventemitter3: 4.0.7
+ typescript: 5.2.2
+ viem: 1.20.3(typescript@5.2.2)
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@types/react'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - bufferutil
+ - encoding
+ - react
+ - supports-color
+ - utf-8-validate
+ - zod
+ dev: false
+
/@wagmi/connectors@3.1.5(@types/react@18.2.12)(react@18.2.0)(typescript@4.9.5)(viem@1.0.6):
resolution: {integrity: sha512-aE4rWZbivqWa9HqjiLDPtwROH2b1Az+lBVMeZ3o/aFxGNGNEkdrSAMOUG15/UFy3VnN6HqGOtTobOBZ10JhfNQ==}
peerDependencies:
@@ -7854,6 +8101,44 @@ packages:
- zod
dev: false
+ /@wagmi/core@1.4.12(@types/react@18.2.21)(react@18.2.0)(typescript@5.2.2)(viem@1.20.3):
+ resolution: {integrity: sha512-bLcYmmGgjtl3jAGo8X3Sm6oUwsdjbVxFMu9SWnwHdE4S9JdYeWM57dEhQgq8SYul2yQ7yY2/gimBf1Or0Ky3dQ==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ viem: '>=0.3.35'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@wagmi/connectors': 3.1.10(@types/react@18.2.21)(react@18.2.0)(typescript@5.2.2)(viem@1.20.3)
+ abitype: 0.8.7(typescript@5.2.2)
+ eventemitter3: 4.0.7
+ typescript: 5.2.2
+ viem: 1.20.3(typescript@5.2.2)
+ zustand: 4.4.6(@types/react@18.2.21)(react@18.2.0)
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@types/react'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - bufferutil
+ - encoding
+ - immer
+ - react
+ - supports-color
+ - utf-8-validate
+ - zod
+ dev: false
+
/@wagmi/core@1.4.7(@types/react@18.2.12)(react@18.2.0)(typescript@4.9.5)(viem@1.0.6):
resolution: {integrity: sha512-PiOIGni8ArQoPmuDylHX38zMt2nPnTYRIluIqiduKyGCM61X/tf10a0rafUMOOphDPudZu1TacNDhCSeoh/LEA==}
peerDependencies:
@@ -7929,6 +8214,43 @@ packages:
- utf-8-validate
dev: false
+ /@walletconnect/core@2.10.6:
+ resolution: {integrity: sha512-Z4vh4ZdfcoQjgPEOxeuF9HUZCVLtV3MgRbS/awLIj/omDrFnOwlBhxi5Syr4Y8muVGC0ocRetQYHae0/gX5crQ==}
+ dependencies:
+ '@walletconnect/heartbeat': 1.2.1
+ '@walletconnect/jsonrpc-provider': 1.0.13
+ '@walletconnect/jsonrpc-types': 1.0.3
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/jsonrpc-ws-connection': 1.0.14
+ '@walletconnect/keyvaluestorage': 1.1.1
+ '@walletconnect/logger': 2.0.1
+ '@walletconnect/relay-api': 1.0.9
+ '@walletconnect/relay-auth': 1.0.4
+ '@walletconnect/safe-json': 1.0.2
+ '@walletconnect/time': 1.0.2
+ '@walletconnect/types': 2.10.6
+ '@walletconnect/utils': 2.10.6
+ events: 3.3.0
+ lodash.isequal: 4.5.0
+ uint8arrays: 3.1.1
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: false
+
/@walletconnect/crypto@1.0.3:
resolution: {integrity: sha512-+2jdORD7XQs76I2Odgr3wwrtyuLUXD/kprNVsjWRhhhdO9Mt6WqVzOPu0/t7OHSmgal8k7SoBQzUc5hu/8zL/g==}
dependencies:
@@ -7991,6 +8313,40 @@ packages:
- utf-8-validate
dev: false
+ /@walletconnect/ethereum-provider@2.10.6(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-bBQ+yUfxLv8VxNttgNKY7nED35gSVayO/BnLHbNKvyV1gpvSCla5mWB9MsXuQs70MK0g+/qtgRVSrOtdSubaNQ==}
+ dependencies:
+ '@walletconnect/jsonrpc-http-connection': 1.0.7
+ '@walletconnect/jsonrpc-provider': 1.0.13
+ '@walletconnect/jsonrpc-types': 1.0.3
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/modal': 2.6.2(@types/react@18.2.21)(react@18.2.0)
+ '@walletconnect/sign-client': 2.10.6
+ '@walletconnect/types': 2.10.6
+ '@walletconnect/universal-provider': 2.10.6
+ '@walletconnect/utils': 2.10.6
+ events: 3.3.0
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@types/react'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - bufferutil
+ - encoding
+ - react
+ - supports-color
+ - utf-8-validate
+ dev: false
+
/@walletconnect/events@1.0.1:
resolution: {integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==}
dependencies:
@@ -8053,6 +8409,18 @@ packages:
- utf-8-validate
dev: false
+ /@walletconnect/jsonrpc-ws-connection@1.0.14:
+ resolution: {integrity: sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==}
+ dependencies:
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/safe-json': 1.0.2
+ events: 3.3.0
+ ws: 7.5.9
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+ dev: false
+
/@walletconnect/keyvaluestorage@1.1.1:
resolution: {integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==}
peerDependencies:
@@ -8152,6 +8520,15 @@ packages:
- react
dev: false
+ /@walletconnect/modal-core@2.6.2(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA==}
+ dependencies:
+ valtio: 1.11.2(@types/react@18.2.21)(react@18.2.0)
+ transitivePeerDependencies:
+ - '@types/react'
+ - react
+ dev: false
+
/@walletconnect/modal-ui@2.6.2(@types/react@18.2.12)(react@18.2.0):
resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==}
dependencies:
@@ -8164,6 +8541,18 @@ packages:
- react
dev: false
+ /@walletconnect/modal-ui@2.6.2(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA==}
+ dependencies:
+ '@walletconnect/modal-core': 2.6.2(@types/react@18.2.21)(react@18.2.0)
+ lit: 2.8.0
+ motion: 10.16.2
+ qrcode: 1.5.3
+ transitivePeerDependencies:
+ - '@types/react'
+ - react
+ dev: false
+
/@walletconnect/modal@2.6.2(@types/react@18.2.12)(react@18.2.0):
resolution: {integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==}
dependencies:
@@ -8174,6 +8563,16 @@ packages:
- react
dev: false
+ /@walletconnect/modal@2.6.2(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==}
+ dependencies:
+ '@walletconnect/modal-core': 2.6.2(@types/react@18.2.21)(react@18.2.0)
+ '@walletconnect/modal-ui': 2.6.2(@types/react@18.2.21)(react@18.2.0)
+ transitivePeerDependencies:
+ - '@types/react'
+ - react
+ dev: false
+
/@walletconnect/randombytes@1.0.3:
resolution: {integrity: sha512-35lpzxcHFbTN3ABefC9W+uBpNZl1GC4Wpx0ed30gibfO/y9oLdy1NznbV96HARQKSBV9J9M/rrtIvf6a23jfYw==}
dependencies:
@@ -8237,6 +8636,36 @@ packages:
- utf-8-validate
dev: false
+ /@walletconnect/sign-client@2.10.6:
+ resolution: {integrity: sha512-EvUWjaZBQu2yKnH5/5F2qzbuiIuUN9ZgrNKgvXkw5z1Dq5RJCks0S9/MFlKH/ZSGqXnLl7uAzBXtoX4sMgbCMA==}
+ dependencies:
+ '@walletconnect/core': 2.10.6
+ '@walletconnect/events': 1.0.1
+ '@walletconnect/heartbeat': 1.2.1
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/logger': 2.0.1
+ '@walletconnect/time': 1.0.2
+ '@walletconnect/types': 2.10.6
+ '@walletconnect/utils': 2.10.6
+ events: 3.3.0
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: false
+
/@walletconnect/time@1.0.2:
resolution: {integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==}
dependencies:
@@ -8268,6 +8697,31 @@ packages:
- supports-color
dev: false
+ /@walletconnect/types@2.10.6:
+ resolution: {integrity: sha512-WgHfiTG1yakmxheaBRiXhUdEmgxwrvsAdOIWaMf/spvrzVKYh6sHI3oyEEky5qj5jjiMiyQBeB57QamzCotbcQ==}
+ dependencies:
+ '@walletconnect/events': 1.0.1
+ '@walletconnect/heartbeat': 1.2.1
+ '@walletconnect/jsonrpc-types': 1.0.3
+ '@walletconnect/keyvaluestorage': 1.1.1
+ '@walletconnect/logger': 2.0.1
+ events: 3.3.0
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - supports-color
+ dev: false
+
/@walletconnect/universal-provider@2.10.2:
resolution: {integrity: sha512-wFgI0LbQ3D56sgaUMsgOHCM5m8WLxiC71BGuCKQfApgsbNMVKugYVy2zWHyUyi8sqTQHI+uSaVpDev4UHq9LEw==}
dependencies:
@@ -8299,6 +8753,37 @@ packages:
- utf-8-validate
dev: false
+ /@walletconnect/universal-provider@2.10.6:
+ resolution: {integrity: sha512-CEivusqqoD31BhCTKp08DnrccfGjwD9MFjZs5BNRorDteRFE8zVm9LmP6DSiNJCw82ZajGlZThggLQ/BAATfwA==}
+ dependencies:
+ '@walletconnect/jsonrpc-http-connection': 1.0.7
+ '@walletconnect/jsonrpc-provider': 1.0.13
+ '@walletconnect/jsonrpc-types': 1.0.3
+ '@walletconnect/jsonrpc-utils': 1.0.8
+ '@walletconnect/logger': 2.0.1
+ '@walletconnect/sign-client': 2.10.6
+ '@walletconnect/types': 2.10.6
+ '@walletconnect/utils': 2.10.6
+ events: 3.3.0
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
/@walletconnect/utils@2.10.2:
resolution: {integrity: sha512-syxXRpc2yhSknMu3IfiBGobxOY7fLfLTJuw+ppKaeO6WUdZpIit3wfuGOcc0Ms3ZPFCrGfyGOoZsCvgdXtptRg==}
dependencies:
@@ -8310,7 +8795,40 @@ packages:
'@walletconnect/relay-api': 1.0.9
'@walletconnect/safe-json': 1.0.2
'@walletconnect/time': 1.0.2
- '@walletconnect/types': 2.10.2
+ '@walletconnect/types': 2.10.2
+ '@walletconnect/window-getters': 1.0.1
+ '@walletconnect/window-metadata': 1.0.1
+ detect-browser: 5.3.0
+ query-string: 7.1.3
+ uint8arrays: 3.1.1
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - supports-color
+ dev: false
+
+ /@walletconnect/utils@2.10.6:
+ resolution: {integrity: sha512-oRsWWhN2+hi3aiDXrQEOfysz6FHQJGXLsNQPVt+WIBJplO6Szmdau9dbleD88u1iiT4GKPqE0R9FOYvvPm1H/w==}
+ dependencies:
+ '@stablelib/chacha20poly1305': 1.0.1
+ '@stablelib/hkdf': 1.0.1
+ '@stablelib/random': 1.0.2
+ '@stablelib/sha256': 1.0.1
+ '@stablelib/x25519': 1.0.3
+ '@walletconnect/relay-api': 1.0.9
+ '@walletconnect/safe-json': 1.0.2
+ '@walletconnect/time': 1.0.2
+ '@walletconnect/types': 2.10.6
'@walletconnect/window-getters': 1.0.1
'@walletconnect/window-metadata': 1.0.1
detect-browser: 5.3.0
@@ -8498,6 +9016,46 @@ packages:
typescript: 4.9.5
dev: false
+ /abitype@0.8.7(typescript@5.2.2):
+ resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ zod: ^3 >=3.19.1
+ peerDependenciesMeta:
+ zod:
+ optional: true
+ dependencies:
+ typescript: 5.2.2
+ dev: false
+
+ /abitype@0.9.8(typescript@4.9.5):
+ resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ zod: ^3 >=3.19.1
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ zod:
+ optional: true
+ dependencies:
+ typescript: 4.9.5
+ dev: false
+
+ /abitype@0.9.8(typescript@5.2.2):
+ resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ zod: ^3 >=3.19.1
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ zod:
+ optional: true
+ dependencies:
+ typescript: 5.2.2
+ dev: false
+
/accepts@1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
@@ -13775,6 +14333,14 @@ packages:
ws: 8.12.0
dev: false
+ /isows@1.0.3(ws@8.13.0):
+ resolution: {integrity: sha512-2cKei4vlmg2cxEjm3wVSqn8pcoRF/LX/wpifuuNquFO4SQmPwarClT+SUCA2lt+l581tTeZIPIZuIDo2jWN1fg==}
+ peerDependencies:
+ ws: '*'
+ dependencies:
+ ws: 8.13.0
+ dev: false
+
/istanbul-lib-coverage@3.2.0:
resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
engines: {node: '>=8'}
@@ -15828,6 +16394,46 @@ packages:
/neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+ /next@13.4.19(@babel/core@7.23.3)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==}
+ engines: {node: '>=16.8.0'}
+ hasBin: true
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ sass:
+ optional: true
+ dependencies:
+ '@next/env': 13.4.19
+ '@swc/helpers': 0.5.1
+ busboy: 1.6.0
+ caniuse-lite: 1.0.30001563
+ postcss: 8.4.14
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ styled-jsx: 5.1.1(@babel/core@7.23.3)(react@18.2.0)
+ watchpack: 2.4.0
+ zod: 3.21.4
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 13.4.19
+ '@next/swc-darwin-x64': 13.4.19
+ '@next/swc-linux-arm64-gnu': 13.4.19
+ '@next/swc-linux-arm64-musl': 13.4.19
+ '@next/swc-linux-x64-gnu': 13.4.19
+ '@next/swc-linux-x64-musl': 13.4.19
+ '@next/swc-win32-arm64-msvc': 13.4.19
+ '@next/swc-win32-ia32-msvc': 13.4.19
+ '@next/swc-win32-x64-msvc': 13.4.19
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+ dev: false
+
/next@14.0.3(@babel/core@7.23.3)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw==}
engines: {node: '>=18.17.0'}
@@ -16973,6 +17579,15 @@ packages:
postcss: 8.4.31
dev: false
+ /postcss@8.4.14:
+ resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.7
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: false
+
/postcss@8.4.31:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14}
@@ -17129,7 +17744,7 @@ packages:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 20.10.3
+ '@types/node': 18.16.18
long: 4.0.0
dev: false
@@ -17430,6 +18045,22 @@ packages:
tslib: 2.6.2
dev: false
+ /react-remove-scroll-bar@2.3.4(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.21
+ react: 18.2.0
+ react-style-singleton: 2.2.1(@types/react@18.2.21)(react@18.2.0)
+ tslib: 2.6.2
+ dev: false
+
/react-remove-scroll@2.5.4(@types/react@18.2.12)(react@18.2.0):
resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==}
engines: {node: '>=10'}
@@ -17449,6 +18080,25 @@ packages:
use-sidecar: 1.1.2(@types/react@18.2.12)(react@18.2.0)
dev: false
+ /react-remove-scroll@2.5.4(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.21
+ react: 18.2.0
+ react-remove-scroll-bar: 2.3.4(@types/react@18.2.21)(react@18.2.0)
+ react-style-singleton: 2.2.1(@types/react@18.2.21)(react@18.2.0)
+ tslib: 2.6.2
+ use-callback-ref: 1.3.0(@types/react@18.2.21)(react@18.2.0)
+ use-sidecar: 1.1.2(@types/react@18.2.21)(react@18.2.0)
+ dev: false
+
/react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0):
resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==}
peerDependencies:
@@ -17509,6 +18159,23 @@ packages:
tslib: 2.6.2
dev: false
+ /react-style-singleton@2.2.1(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.21
+ get-nonce: 1.0.1
+ invariant: 2.2.4
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: false
+
/react-waypoint@10.3.0(react@18.2.0):
resolution: {integrity: sha512-iF1y2c1BsoXuEGz08NoahaLFIGI9gTUAAOKip96HUmylRT6DUtpgoBPjk/Y8dfcFVmfVDvUzWjNXpZyKTOV0SQ==}
peerDependencies:
@@ -19426,7 +20093,6 @@ packages:
resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
engines: {node: '>=14.17'}
hasBin: true
- dev: true
/ua-parser-js@1.0.37:
resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==}
@@ -19469,10 +20135,6 @@ packages:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
dev: false
- /undici-types@5.26.5:
- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
- dev: false
-
/unenv@1.8.0:
resolution: {integrity: sha512-uIGbdCWZfhRRmyKj1UioCepQ0jpq638j/Cf0xFTn4zD1nGJ2lSdzYHLzfdXN791oo/0juUiSWW1fBklXMTsuqg==}
dependencies:
@@ -19750,6 +20412,21 @@ packages:
tslib: 2.6.2
dev: false
+ /use-callback-ref@1.3.0(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.21
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: false
+
/use-sidecar@1.1.2(@types/react@18.2.12)(react@18.2.0):
resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
engines: {node: '>=10'}
@@ -19766,6 +20443,22 @@ packages:
tslib: 2.6.2
dev: false
+ /use-sidecar@1.1.2(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.21
+ detect-node-es: 1.1.0
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: false
+
/use-sync-external-store@1.2.0(react@18.2.0):
resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
peerDependencies:
@@ -19858,6 +20551,24 @@ packages:
use-sync-external-store: 1.2.0(react@18.2.0)
dev: false
+ /valtio@1.11.2(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==}
+ engines: {node: '>=12.20.0'}
+ peerDependencies:
+ '@types/react': '>=16.8'
+ react: '>=16.8'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ react:
+ optional: true
+ dependencies:
+ '@types/react': 18.2.21
+ proxy-compare: 2.5.1
+ react: 18.2.0
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ dev: false
+
/value-equal@1.0.1:
resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==}
dev: false
@@ -19908,6 +20619,95 @@ packages:
- zod
dev: false
+ /viem@1.20.3(typescript@4.9.5):
+ resolution: {integrity: sha512-7CrmeCb2KYkeCgUmUyb1hsf+IX/PLwi+Np+Vm4YUTPeG82y3HRSgGHSaCOp3d0YtR2kXD3nv9y5kE7LBFE+wWw==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@adraffy/ens-normalize': 1.10.0
+ '@noble/curves': 1.2.0
+ '@noble/hashes': 1.3.2
+ '@scure/bip32': 1.3.2
+ '@scure/bip39': 1.2.1
+ abitype: 0.9.8(typescript@4.9.5)
+ isows: 1.0.3(ws@8.13.0)
+ typescript: 4.9.5
+ ws: 8.13.0
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /viem@1.20.3(typescript@5.2.2):
+ resolution: {integrity: sha512-7CrmeCb2KYkeCgUmUyb1hsf+IX/PLwi+Np+Vm4YUTPeG82y3HRSgGHSaCOp3d0YtR2kXD3nv9y5kE7LBFE+wWw==}
+ peerDependencies:
+ typescript: '>=5.0.4'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@adraffy/ens-normalize': 1.10.0
+ '@noble/curves': 1.2.0
+ '@noble/hashes': 1.3.2
+ '@scure/bip32': 1.3.2
+ '@scure/bip39': 1.2.1
+ abitype: 0.9.8(typescript@5.2.2)
+ isows: 1.0.3(ws@8.13.0)
+ typescript: 5.2.2
+ ws: 8.13.0
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+ - zod
+ dev: false
+
+ /wagmi@1.4.12(@types/react@18.2.21)(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(viem@1.20.3):
+ resolution: {integrity: sha512-QRxpjhdMlZmbYTfn9VQkQMKq+l3kwA1O7tF10vaykPrjbGX+IIlyn72ib9oqW9BfQO7n/Sf/mnVz1zbxRhGPWA==}
+ peerDependencies:
+ react: '>=17.0.0'
+ typescript: '>=5.0.4'
+ viem: '>=0.3.35'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@tanstack/query-sync-storage-persister': 4.36.1
+ '@tanstack/react-query': 4.36.1(react-dom@18.2.0)(react@18.2.0)
+ '@tanstack/react-query-persist-client': 4.36.1(@tanstack/react-query@4.36.1)
+ '@wagmi/core': 1.4.12(@types/react@18.2.21)(react@18.2.0)(typescript@5.2.2)(viem@1.20.3)
+ abitype: 0.8.7(typescript@5.2.2)
+ react: 18.2.0
+ typescript: 5.2.2
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ viem: 1.20.3(typescript@5.2.2)
+ transitivePeerDependencies:
+ - '@azure/app-configuration'
+ - '@azure/cosmos'
+ - '@azure/data-tables'
+ - '@azure/identity'
+ - '@azure/keyvault-secrets'
+ - '@azure/storage-blob'
+ - '@capacitor/preferences'
+ - '@netlify/blobs'
+ - '@planetscale/database'
+ - '@react-native-async-storage/async-storage'
+ - '@types/react'
+ - '@upstash/redis'
+ - '@vercel/kv'
+ - bufferutil
+ - encoding
+ - immer
+ - react-dom
+ - react-native
+ - supports-color
+ - utf-8-validate
+ - zod
+ dev: false
+
/wagmi@1.4.7(@types/react@18.2.12)(react-dom@18.2.0)(react@18.2.0)(typescript@4.9.5)(viem@1.0.6):
resolution: {integrity: sha512-/k8gA9S6RnwU6Qroxs630jAFvRIx+DSKpCP1owgAEGWc7D2bAJHljwRSCRTGENz48HyJ4V3R7KYV1yImxPvM3A==}
peerDependencies:
@@ -20389,6 +21189,19 @@ packages:
optional: true
dev: false
+ /ws@8.13.0:
+ resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: false
+
/ws@8.14.2(bufferutil@4.0.8)(utf-8-validate@5.0.10):
resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==}
engines: {node: '>=10.0.0'}
@@ -20551,6 +21364,10 @@ packages:
engines: {node: '>=12.20'}
dev: false
+ /zod@3.21.4:
+ resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
+ dev: false
+
/zustand@4.4.6(@types/react@18.2.12)(react@18.2.0):
resolution: {integrity: sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg==}
engines: {node: '>=12.7.0'}
@@ -20571,6 +21388,26 @@ packages:
use-sync-external-store: 1.2.0(react@18.2.0)
dev: false
+ /zustand@4.4.6(@types/react@18.2.21)(react@18.2.0):
+ resolution: {integrity: sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg==}
+ engines: {node: '>=12.7.0'}
+ peerDependencies:
+ '@types/react': '>=16.8'
+ immer: '>=9.0'
+ react: '>=16.8'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ dependencies:
+ '@types/react': 18.2.21
+ react: 18.2.0
+ use-sync-external-store: 1.2.0(react@18.2.0)
+ dev: false
+
/zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
dev: false