diff --git a/libs/burn-waitlist/src/lib/components/index.ts b/libs/burn-waitlist/src/lib/components/index.ts
index d183f1c17..3ec9c441d 100644
--- a/libs/burn-waitlist/src/lib/components/index.ts
+++ b/libs/burn-waitlist/src/lib/components/index.ts
@@ -7,3 +7,4 @@ export * from './status-messages';
export * from './wallet-connection-warning';
export * from './network-warning';
export * from './waitlist-balances';
+export * from './price-chart';
diff --git a/libs/burn-waitlist/src/lib/components/participation-form.tsx b/libs/burn-waitlist/src/lib/components/participation-form.tsx
index efee392de..438d74048 100644
--- a/libs/burn-waitlist/src/lib/components/participation-form.tsx
+++ b/libs/burn-waitlist/src/lib/components/participation-form.tsx
@@ -3,16 +3,21 @@
import { useMemo } from 'react';
import { Button } from '@haqq/shell-ui-kit';
import { ModalInput } from '@haqq/shell-ui-kit';
+import { formatUnits } from 'viem';
import { FundsSource } from '../constants/waitlist-config';
import { WaitlistBalances } from './waitlist-balances';
import type { WaitlistBalancesResponse } from '../hooks/use-waitlist-balances';
-import { formatEthDecimal } from '@haqq/shell-shared';
+import { formatEthDecimal, formatNumberWithSuffix } from '@haqq/shell-shared';
export interface ParticipationFormProps {
amount: string;
source: FundsSource;
availableBalance?: bigint;
balances?: WaitlistBalancesResponse;
+ /** Current price per token (atto) from API - used to show price at submission and estimated receive */
+ currentPriceAtto?: string;
+ /** User amount in wei - used with currentPriceAtto to compute estimated receive */
+ formattedAmount?: bigint;
onAmountChange: (amount: string) => void;
onSourceChange: (source: FundsSource) => void;
onMaxClick: () => void;
@@ -29,6 +34,8 @@ export function ParticipationForm({
source,
availableBalance,
balances,
+ currentPriceAtto,
+ formattedAmount,
onAmountChange,
onSourceChange,
onMaxClick,
@@ -50,9 +57,42 @@ export function ParticipationForm({
return formatEthDecimal(availableBalance, 4);
}, [availableBalance]);
+ const priceDisplay = useMemo(() => {
+ if (!currentPriceAtto) return null;
+ try {
+ const priceWei = BigInt(currentPriceAtto);
+ if (priceWei === 0n) return null;
+ return formatEthDecimal(priceWei, 4, 0);
+ } catch {
+ return null;
+ }
+ }, [currentPriceAtto]);
+
+ const estimatedReceiveDisplay = useMemo(() => {
+ if (!formattedAmount || !currentPriceAtto) return null;
+ try {
+ const priceWei = BigInt(currentPriceAtto);
+ if (priceWei === 0n) return null;
+ // Use BigInt division to avoid Number precision loss for large values
+ const tokensWei = formattedAmount / priceWei;
+
+ return formatEthDecimal(tokensWei, 4, 18);
+ } catch {
+ return null;
+ }
+ }, [formattedAmount, currentPriceAtto]);
+
return (
+ {priceDisplay !== null && (
+
+
Price at submission
+
+ {priceDisplay} ISLM per token
+
+
+ )}
{/* Only show Funds Source selection if ucDAO balance is greater than 0 */}
diff --git a/libs/burn-waitlist/src/lib/components/price-chart.tsx b/libs/burn-waitlist/src/lib/components/price-chart.tsx
new file mode 100644
index 000000000..ea292b425
--- /dev/null
+++ b/libs/burn-waitlist/src/lib/components/price-chart.tsx
@@ -0,0 +1,251 @@
+'use client';
+
+import { useId, useMemo } from 'react';
+import {
+ Area,
+ AreaChart,
+ CartesianGrid,
+ ResponsiveContainer,
+ Tooltip,
+ XAxis,
+ YAxis,
+} from 'recharts';
+import type { PriceChartPoint } from '../hooks/use-waitlist-price-chart';
+import { formatEthDecimal } from '@haqq/shell-shared';
+
+export interface PriceChartProps {
+ data: PriceChartPoint[];
+ /** Chart height in pixels */
+ height?: number;
+ /** Whether price values are in atto (wei) - will format for display */
+ priceInAtto?: boolean;
+ isLoading?: boolean;
+ error?: Error | null;
+}
+
+const DEFAULT_HEIGHT = 240;
+const ONE_HOUR = 3600;
+
+/**
+ * Expands chart data by adding a point every hour from the last point up to now.
+ * So a single API point becomes a line from that time to current time (same price).
+ */
+function expandDataWithHourlyPoints(
+ data: Array<{ timestamp: number; price: number }>,
+): Array<{ timestamp: number; price: number }> {
+ if (!data.length) return [];
+ const now = Math.floor(Date.now() / 1000);
+ const last = data[data.length - 1]!;
+ if (last.timestamp >= now) return data;
+ const result: PriceChartPoint[] = [...data];
+ for (let t = last.timestamp + ONE_HOUR; t <= now; t += ONE_HOUR) {
+ result.push({ timestamp: t, price: last.price });
+ }
+ if (result[result.length - 1]!.timestamp < now) {
+ result.push({ timestamp: now, price: last.price });
+ }
+ return result;
+}
+
+function formatChartTime(ts: number): string {
+ const d = new Date(ts * 1000);
+ const now = new Date();
+ const isToday =
+ d.getDate() === now.getDate() &&
+ d.getMonth() === now.getMonth() &&
+ d.getFullYear() === now.getFullYear();
+ if (isToday) {
+ return d.toLocaleTimeString(undefined, {
+ hour: '2-digit',
+ minute: '2-digit',
+ });
+ }
+ return d.toLocaleDateString(undefined, {
+ month: 'short',
+ day: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit',
+ });
+}
+
+/**
+ * Price chart built with Recharts (SVG-based). Web3-style dark card.
+ * @see https://recharts.org/
+ */
+export function PriceChart({
+ data,
+ height = DEFAULT_HEIGHT,
+ priceInAtto = true,
+ isLoading = false,
+ error = null,
+}: PriceChartProps) {
+ const uid = useId();
+ const expandedData = useMemo(() => expandDataWithHourlyPoints(data), [data]);
+
+ const chartData = useMemo(
+ () =>
+ expandedData.map((d) => ({
+ ...d,
+ timeLabel: formatChartTime(d.timestamp),
+ })),
+ [expandedData],
+ );
+
+ const formatPrice = useMemo(
+ () => (p: number) =>
+ priceInAtto && p > 0 ? formatEthDecimal(BigInt(p), 2, 0) : p.toFixed(2),
+ [priceInAtto],
+ );
+
+ const currentPriceFormatted = useMemo(() => {
+ if (!chartData.length) return '0';
+ return formatPrice(chartData[chartData.length - 1]!.price);
+ }, [chartData, formatPrice]);
+
+ const isSinglePoint = chartData.length === 1;
+
+ const gradientId = `price-chart-gradient-${uid.replace(/:/g, '')}`;
+
+ if (error) {
+ return (
+
+
+ Failed to load price chart
+
+
+ );
+ }
+
+ if (isLoading) {
+ return (
+
+ );
+ }
+
+ if (!data.length) {
+ return (
+
+ );
+ }
+
+ return (
+
+
+
+ Price history
+
+
+ {isSinglePoint && (
+
+ Holding
+
+ )}
+
+ {currentPriceFormatted}
+
+ ISLM/HAQQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ formatChartTime(ts)}
+ stroke="#C5C5C5"
+ tick={{ fill: '#C5C5C5', fontSize: 9 }}
+ axisLine={false}
+ tickLine={false}
+ />
+ formatPrice(p)}
+ stroke="#C5C5C5"
+ tick={{ fill: '#C5C5C5', fontSize: 10 }}
+ axisLine={false}
+ tickLine={false}
+ width={56}
+ tickMargin={12}
+ />
+ ;
+ }) => {
+ if (!active || !payload?.length) return null;
+ const point = payload[0]?.payload as {
+ timestamp: number;
+ price: number;
+ timeLabel: string;
+ };
+ if (!point) return null;
+ return (
+
+
+ {point.timeLabel}
+
+
+ {formatPrice(point.price)} ISLM
+
+
+ );
+ }}
+ cursor={{ stroke: '#C5C5C5', strokeWidth: 1 }}
+ />
+
+
+
+
+
+ );
+}
diff --git a/libs/burn-waitlist/src/lib/components/requests-list.tsx b/libs/burn-waitlist/src/lib/components/requests-list.tsx
index f49e4c830..bf38257f1 100644
--- a/libs/burn-waitlist/src/lib/components/requests-list.tsx
+++ b/libs/burn-waitlist/src/lib/components/requests-list.tsx
@@ -6,6 +6,7 @@ import { Button } from '@haqq/shell-ui-kit';
import { FundsSource } from '../constants/waitlist-config';
import type { Application } from '../hooks/use-waitlist-applications';
import type { WaitlistBalancesResponse } from '../hooks/use-waitlist-balances';
+import { formatEthDecimal } from '@haqq/shell-shared';
export interface RequestsListProps {
applications: Array<
@@ -100,6 +101,24 @@ export function RequestsList({
{amount} ISLM
+ {app.price !== undefined && app.price !== '' && (
+
+ Minting price:{' '}
+
+ {formatEthDecimal(BigInt(app.price), 0, 0)} ISLM/HAQQ
+
+
+ )}
+ {app.receiveAmount !== undefined &&
+ app.receiveAmount !== '' && (
+
+ Expected receive:{' '}
+
+ {formatEthDecimal(BigInt(app.receiveAmount), 4, 18)}{' '}
+ HAQQ
+
+
+ )}
Source:{' '}
diff --git a/libs/burn-waitlist/src/lib/constants/waitlist-config.ts b/libs/burn-waitlist/src/lib/constants/waitlist-config.ts
index 8c051ae53..eed8f7c57 100644
--- a/libs/burn-waitlist/src/lib/constants/waitlist-config.ts
+++ b/libs/burn-waitlist/src/lib/constants/waitlist-config.ts
@@ -8,7 +8,7 @@ export const WAITLIST_CONTRACT_ADDRESSES: Record = {
[haqqMainnet.id]:
'0xe974fc272bA869E638f402e2818161EB88b2A392' as `0x${string}`,
[haqqTestedge2.id]:
- '0xCAFec7F6C482507fB5E6B5ed02250487Fd883C9f' as `0x${string}`,
+ '0xeCad76E45BcD709B6c1662397FBbb890C684a9aB' as `0x${string}`,
// Add more chain deployments here as they become available
};
@@ -48,8 +48,9 @@ export function isWaitlistChainSupported(chainId?: number): boolean {
/**
* Default chain ID for waitlist (first supported chain)
*/
-export const WAITLIST_DEFAULT_CHAIN_ID =
- WAITLIST_SUPPORTED_CHAIN_IDS[0] || haqqMainnet.id;
+
+// TODO: Change to mainnet when ready
+export const WAITLIST_DEFAULT_CHAIN_ID = haqqTestedge2.id;
/**
* Backend API base URL
@@ -58,12 +59,12 @@ export const WAITLIST_DEFAULT_CHAIN_ID =
*/
export const getBackendApiUrl = (chainId?: number): string => {
// Return chain-specific URL based on chain ID
- if (chainId === haqqTestedge2.id) {
- return 'https://waitlist.vorobevsa.com';
+ if (chainId === haqqMainnet.id) {
+ return 'https://waitlist.haqq.network';
}
- // Default to production URL for mainnet or unknown chains
- return 'https://waitlist.haqq.network';
+ // Default to production URL for testnet or unknown chains
+ return 'https://waitlist.vorobevsa.com';
};
/**
diff --git a/libs/burn-waitlist/src/lib/hooks/index.ts b/libs/burn-waitlist/src/lib/hooks/index.ts
index 374434625..45c48fada 100644
--- a/libs/burn-waitlist/src/lib/hooks/index.ts
+++ b/libs/burn-waitlist/src/lib/hooks/index.ts
@@ -4,3 +4,6 @@ export * from './use-waitlist-requests';
export * from './use-waitlist-form';
export * from './use-waitlist-balances';
export * from './use-waitlist-applications';
+export * from './use-waitlist-price';
+export * from './use-waitlist-price-chart';
+export * from './use-waitlist-global-stats';
diff --git a/libs/burn-waitlist/src/lib/hooks/use-waitlist-applications.ts b/libs/burn-waitlist/src/lib/hooks/use-waitlist-applications.ts
index 4447b4e32..5592c4c48 100644
--- a/libs/burn-waitlist/src/lib/hooks/use-waitlist-applications.ts
+++ b/libs/burn-waitlist/src/lib/hooks/use-waitlist-applications.ts
@@ -9,8 +9,14 @@ export interface Application {
author: string;
source: number; // 0 for OwnBalance, 1 for ucDAO
cancelled: boolean;
+ cancelledAt?: string;
+ createdAt?: string;
valid: boolean;
ready: boolean;
+ /** Minting price (cost, in atto) */
+ price?: string;
+ /** Expected tokens to receive (in atto) */
+ receiveAmount?: string;
}
export interface ApplicationsListResponse {
@@ -61,6 +67,7 @@ export function useWaitlistApplications({
params.append('pageSize', pageSize.toString());
const queryString = params.toString();
+ console.log('chainId', chainId);
const apiUrl = getBackendApiUrl(chainId);
const url = queryString
? `${apiUrl}/api/v1/applications?${queryString}`
@@ -82,7 +89,6 @@ export function useWaitlistApplications({
return response.json();
},
- enabled: !!address, // Only fetch if address is provided
staleTime: 0, // Always refetch to get latest data
});
}
diff --git a/libs/burn-waitlist/src/lib/hooks/use-waitlist-global-stats.ts b/libs/burn-waitlist/src/lib/hooks/use-waitlist-global-stats.ts
new file mode 100644
index 000000000..9a69125bf
--- /dev/null
+++ b/libs/burn-waitlist/src/lib/hooks/use-waitlist-global-stats.ts
@@ -0,0 +1,58 @@
+'use client';
+
+import { useQuery } from '@tanstack/react-query';
+import { getBackendApiUrl } from '../constants/waitlist-config';
+
+export interface WaitlistGlobalStats {
+ totalCount: number;
+ totalAmount: string;
+}
+
+interface UseWaitlistGlobalStatsParams {
+ chainId?: number;
+ /** When false, the query does not run (e.g. when user is connected and contract state is used) */
+ enabled?: boolean;
+}
+
+/**
+ * Fetches global waitlist stats (total applications count and total amount) from backend API.
+ * Used for anonymous users who don't have a connected wallet (no RPC/contract read).
+ */
+export function useWaitlistGlobalStats({
+ chainId,
+ enabled = true,
+}: UseWaitlistGlobalStatsParams = {}) {
+ return useQuery({
+ queryKey: ['waitlist-global-stats', chainId],
+ queryFn: async () => {
+ const apiUrl = getBackendApiUrl(chainId);
+
+ const [applicationsRes, priceRes] = await Promise.all([
+ fetch(`${apiUrl}/api/v1/applications?page=1&pageSize=1`, {
+ method: 'GET',
+ headers: { Accept: 'application/json' },
+ }),
+ fetch(`${apiUrl}/api/v1/price/current`, {
+ method: 'GET',
+ headers: { Accept: 'application/json' },
+ }),
+ ]);
+
+ let totalCount = 0;
+ if (applicationsRes.ok) {
+ const applicationsData = await applicationsRes.json();
+ totalCount = applicationsData.total ?? 0;
+ }
+
+ let totalAmount = '0';
+ if (priceRes.ok && priceRes.status !== 503) {
+ const priceData = await priceRes.json();
+ totalAmount = priceData.totalActiveAmount ?? '0';
+ }
+
+ return { totalCount, totalAmount };
+ },
+ enabled: enabled,
+ staleTime: 30_000,
+ });
+}
diff --git a/libs/burn-waitlist/src/lib/hooks/use-waitlist-price-chart.ts b/libs/burn-waitlist/src/lib/hooks/use-waitlist-price-chart.ts
new file mode 100644
index 000000000..a001286c8
--- /dev/null
+++ b/libs/burn-waitlist/src/lib/hooks/use-waitlist-price-chart.ts
@@ -0,0 +1,73 @@
+'use client';
+
+import { useQuery } from '@tanstack/react-query';
+import { getBackendApiUrl } from '../constants/waitlist-config';
+
+export interface PriceChartPoint {
+ timestamp: number;
+ price: number;
+}
+
+export interface PriceChartMeta {
+ from: number;
+ to: number;
+ dataPoints: number;
+ chartStart: number;
+ chartEnd: number;
+ granularity: string;
+}
+
+export interface PriceChartResponse {
+ data: PriceChartPoint[];
+ meta: PriceChartMeta;
+}
+
+export type PriceChartGranularity = 'event' | 'hour' | 'day';
+
+interface UseWaitlistPriceChartParams {
+ chainId?: number;
+ from?: number;
+ to?: number;
+ limit?: number;
+ granularity?: PriceChartGranularity;
+}
+
+/**
+ * Hook to fetch price chart from backend API (GET /api/v1/price/chart).
+ */
+export function useWaitlistPriceChart({
+ chainId,
+ from,
+ to,
+ limit = 2000,
+ granularity = 'event',
+}: UseWaitlistPriceChartParams = {}) {
+ return useQuery({
+ queryKey: ['waitlist-price-chart', chainId, from, to, limit, granularity],
+ queryFn: async () => {
+ const apiUrl = getBackendApiUrl(chainId);
+ const params = new URLSearchParams();
+ if (from !== undefined) params.append('from', String(from));
+ if (to !== undefined) params.append('to', String(to));
+ params.append('limit', String(limit));
+ params.append('granularity', granularity);
+ const url = `${apiUrl}/api/v1/price/chart?${params.toString()}`;
+
+ const response = await fetch(url, {
+ method: 'GET',
+ headers: { Accept: 'application/json' },
+ });
+
+ if (!response.ok) {
+ const text = await response.text();
+ throw new Error(
+ `Failed to fetch price chart: ${response.status} ${text}`,
+ );
+ }
+
+ return response.json();
+ },
+ enabled: chainId !== undefined,
+ staleTime: 60_000, // 1 minute
+ });
+}
diff --git a/libs/burn-waitlist/src/lib/hooks/use-waitlist-price.ts b/libs/burn-waitlist/src/lib/hooks/use-waitlist-price.ts
new file mode 100644
index 000000000..5fce1d0a8
--- /dev/null
+++ b/libs/burn-waitlist/src/lib/hooks/use-waitlist-price.ts
@@ -0,0 +1,44 @@
+'use client';
+
+import { useQuery } from '@tanstack/react-query';
+import { getBackendApiUrl } from '../constants/waitlist-config';
+
+export interface PriceCurrentResponse {
+ /** Price tier value (cost per token) - may be number or string for large atto values */
+ currentPrice: number | string;
+ totalActiveAmount: string;
+}
+
+interface UseWaitlistPriceParams {
+ chainId?: number;
+}
+
+/**
+ * Hook to fetch current price from backend API (GET /api/v1/price/current).
+ * Price is the cost per token for the next application (price tier value).
+ * totalActiveAmount is sum of all active applications in atto.
+ */
+export function useWaitlistPrice({ chainId }: UseWaitlistPriceParams = {}) {
+ return useQuery({
+ queryKey: ['waitlist-price', chainId],
+ queryFn: async () => {
+ const apiUrl = getBackendApiUrl(chainId);
+ const response = await fetch(`${apiUrl}/api/v1/price/current`, {
+ method: 'GET',
+ headers: { Accept: 'application/json' },
+ });
+
+ if (response.status === 503) {
+ throw new Error('Price cache not available');
+ }
+ if (!response.ok) {
+ const text = await response.text();
+ throw new Error(`Failed to fetch price: ${response.status} ${text}`);
+ }
+
+ return response.json();
+ },
+ enabled: chainId !== undefined,
+ staleTime: 30_000, // 30 seconds
+ });
+}
diff --git a/libs/burn-waitlist/src/lib/waitlist-page.tsx b/libs/burn-waitlist/src/lib/waitlist-page.tsx
index 578763c70..5cb072a95 100644
--- a/libs/burn-waitlist/src/lib/waitlist-page.tsx
+++ b/libs/burn-waitlist/src/lib/waitlist-page.tsx
@@ -10,6 +10,9 @@ import {
useCancelWaitlistRequest,
useWaitlistBalances,
useWaitlistApplications,
+ useWaitlistPrice,
+ useWaitlistPriceChart,
+ useWaitlistGlobalStats,
} from './hooks';
import type { Application } from './hooks/use-waitlist-applications';
import { useBackendSignature } from './hooks/use-backend-signature';
@@ -17,6 +20,7 @@ import { useWaitlistForm } from './hooks/use-waitlist-form';
import {
ParticipationForm,
ParticipationFormSkeleton,
+ PriceChart,
RequestsList,
RequestsListSkeleton,
StatusMessages,
@@ -115,6 +119,8 @@ export function WaitlistPage({ locale = 'en' }: WaitlistPageProps = {}) {
refetchAll: refetchContractState,
} = useWaitlistContractState();
+ console.log('chain', chain);
+
// Get balances from backend API
const {
data: waitlistBalances,
@@ -133,6 +139,27 @@ export function WaitlistPage({ locale = 'en' }: WaitlistPageProps = {}) {
chainId: chain?.id,
});
+ // Current price (cost per token at submission)
+ const { data: priceData } = useWaitlistPrice({ chainId: chain?.id });
+
+ // Price chart data (use default chain when not connected so guests see chart)
+ const {
+ data: chartData,
+ isLoading: isLoadingChart,
+ error: chartError,
+ } = useWaitlistPriceChart({
+ chainId: chain?.id ?? WAITLIST_DEFAULT_CHAIN_ID,
+ granularity: 'hour',
+ limit: 500,
+ });
+
+ // Global stats from backend for anonymous users (contract read may not run without wallet)
+ const { data: globalStats, isLoading: isLoadingGlobalStats } =
+ useWaitlistGlobalStats({
+ chainId: WAITLIST_DEFAULT_CHAIN_ID,
+ enabled: !isConnected,
+ });
+
// User wallet balance (EVM) - for display purposes
const { data: walletBalance, refetch: refetchBalance } = useBalance({
address: address as `0x${string}` | undefined,
@@ -657,7 +684,7 @@ export function WaitlistPage({ locale = 'en' }: WaitlistPageProps = {}) {
Burn Waitlist
- {/* Display total stats before wallet connection */}
+ {/* Display total stats before wallet connection (from backend API) */}
{!isConnected && (
@@ -665,16 +692,22 @@ export function WaitlistPage({ locale = 'en' }: WaitlistPageProps = {}) {
Total Applications
-
- {totalCount !== undefined ? totalCount.toString() : '—'}
+
+ {isLoadingGlobalStats
+ ? '—'
+ : globalStats?.totalCount !== undefined
+ ? globalStats.totalCount.toString()
+ : '—'}
Total Amount
-
- {totalAmount !== undefined
- ? `${formatEthDecimal(totalAmount, 4)} ISLM`
- : '—'}
+
+ {isLoadingGlobalStats
+ ? '—'
+ : globalStats?.totalAmount !== undefined
+ ? `${formatEthDecimal(BigInt(globalStats.totalAmount), 4)} ISLM`
+ : '—'}
@@ -683,6 +716,16 @@ export function WaitlistPage({ locale = 'en' }: WaitlistPageProps = {}) {
{!isConnected &&
}
+ {/* Price chart - visible to all (uses default chain when not connected) */}
+
+
{isConnected ? (
<>
{
setAmount(amount);
}}
diff --git a/package.json b/package.json
index b82ab9305..abcab377a 100644
--- a/package.json
+++ b/package.json
@@ -81,6 +81,7 @@
"react-success-indicator": "1.1.0",
"react-text-mask": "5.5.0",
"reaptcha": "1.12.1",
+ "recharts": "3.7.0",
"seedrandom": "3.0.5",
"sharp": "0.33.5",
"store2": "2.14.4",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c18cc2233..8120c8031 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -100,7 +100,7 @@ importers:
version: 1.3.1(next@16.1.6(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.97.3))(react@18.3.1)
'@wagmi/core':
specifier: 2.21.2
- version: 2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
+ version: 2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
bech32:
specifier: 2.0.0
version: 2.0.0
@@ -182,6 +182,9 @@ importers:
reaptcha:
specifier: 1.12.1
version: 1.12.1(react@18.3.1)
+ recharts:
+ specifier: 3.7.0
+ version: 3.7.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(redux@5.0.1)
seedrandom:
specifier: 3.0.5
version: 3.0.5
@@ -214,7 +217,7 @@ importers:
version: 2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
wagmi:
specifier: 2.17.5
- version: 2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)
+ version: 2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)
zod:
specifier: 3.24.2
version: 3.24.2
@@ -3899,6 +3902,17 @@ packages:
peerDependencies:
react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
+ '@reduxjs/toolkit@2.11.2':
+ resolution: {integrity: sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18 || ^19
+ react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ react-redux:
+ optional: true
+
'@remix-run/router@1.23.2':
resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==}
engines: {node: '>=14.0.0'}
@@ -4513,6 +4527,12 @@ packages:
'@solidity-parser/parser@0.20.2':
resolution: {integrity: sha512-rbu0bzwNvMcwAjH86hiEAcOeRI2EeK8zCkHDrFykh/Al8mvJeFmjy3UrE7GYQjNwOgbGUUtCn5/k8CB8zIu7QA==}
+ '@standard-schema/spec@1.1.0':
+ resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
+
+ '@standard-schema/utils@0.3.0':
+ resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==}
+
'@starknet-io/types-js@0.7.10':
resolution: {integrity: sha512-1VtCqX4AHWJlRRSYGSn+4X1mqolI1Tdq62IwzoU2vUuEE72S1OlEeGhpvd6XsdqXcfHmVzYfj8k1XtKBQqwo9w==}
@@ -5082,6 +5102,33 @@ packages:
'@types/conventional-commits-parser@5.0.2':
resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==}
+ '@types/d3-array@3.2.2':
+ resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==}
+
+ '@types/d3-color@3.1.3':
+ resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
+
+ '@types/d3-ease@3.0.2':
+ resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
+
+ '@types/d3-interpolate@3.0.4':
+ resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
+
+ '@types/d3-path@3.1.1':
+ resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==}
+
+ '@types/d3-scale@4.0.9':
+ resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==}
+
+ '@types/d3-shape@3.1.8':
+ resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==}
+
+ '@types/d3-time@3.0.4':
+ resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==}
+
+ '@types/d3-timer@3.0.2':
+ resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==}
+
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
@@ -5270,6 +5317,9 @@ packages:
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+ '@types/use-sync-external-store@0.0.6':
+ resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
+
'@types/ws@8.18.1':
resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
@@ -7228,6 +7278,50 @@ packages:
engines: {node: ^20.1.0 || ^22.0.0 || >=24.0.0}
hasBin: true
+ d3-array@3.2.4:
+ resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==}
+ engines: {node: '>=12'}
+
+ d3-color@3.1.0:
+ resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
+ engines: {node: '>=12'}
+
+ d3-ease@3.0.1:
+ resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
+ engines: {node: '>=12'}
+
+ d3-format@3.1.2:
+ resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==}
+ engines: {node: '>=12'}
+
+ d3-interpolate@3.0.1:
+ resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
+ engines: {node: '>=12'}
+
+ d3-path@3.1.0:
+ resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
+ engines: {node: '>=12'}
+
+ d3-scale@4.0.2:
+ resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
+ engines: {node: '>=12'}
+
+ d3-shape@3.2.0:
+ resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
+ engines: {node: '>=12'}
+
+ d3-time-format@4.1.0:
+ resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
+ engines: {node: '>=12'}
+
+ d3-time@3.1.0:
+ resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==}
+ engines: {node: '>=12'}
+
+ d3-timer@3.0.1:
+ resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
+ engines: {node: '>=12'}
+
damerau-levenshtein@1.0.8:
resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
@@ -7314,6 +7408,9 @@ packages:
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
engines: {node: '>=0.10.0'}
+ decimal.js-light@2.5.1:
+ resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==}
+
decimal.js@10.6.0:
resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
@@ -7721,6 +7818,9 @@ packages:
es-toolkit@1.33.0:
resolution: {integrity: sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==}
+ es-toolkit@1.44.0:
+ resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==}
+
esbuild-register@3.6.0:
resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==}
peerDependencies:
@@ -8778,6 +8878,12 @@ packages:
engines: {node: '>=16.x'}
hasBin: true
+ immer@10.2.0:
+ resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==}
+
+ immer@11.1.4:
+ resolution: {integrity: sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==}
+
immutable@5.1.4:
resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==}
@@ -8832,6 +8938,10 @@ packages:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'}
+ internmap@2.0.3:
+ resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
+ engines: {node: '>=12'}
+
interpret@1.4.0:
resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
engines: {node: '>= 0.10'}
@@ -11517,6 +11627,18 @@ packages:
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+ react-redux@9.2.0:
+ resolution: {integrity: sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==}
+ peerDependencies:
+ '@types/react': ^18.2.25 || ^19
+ react: ^18.0 || ^19
+ redux: ^5.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ redux:
+ optional: true
+
react-refresh@0.14.2:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
@@ -11609,6 +11731,14 @@ packages:
resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
engines: {node: '>= 4'}
+ recharts@3.7.0:
+ resolution: {integrity: sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-is: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
rechoir@0.6.2:
resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
engines: {node: '>= 0.10'}
@@ -11620,6 +11750,14 @@ packages:
redeyed@2.1.1:
resolution: {integrity: sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==}
+ redux-thunk@3.1.0:
+ resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==}
+ peerDependencies:
+ redux: ^5.0.0
+
+ redux@5.0.1:
+ resolution: {integrity: sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==}
+
reflect-metadata@0.2.2:
resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
@@ -11687,6 +11825,9 @@ packages:
requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+ reselect@5.1.1:
+ resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==}
+
resolve-alpn@1.2.1:
resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
@@ -13269,6 +13410,9 @@ packages:
resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==}
engines: {'0': node >=0.6.0}
+ victory-vendor@37.3.6:
+ resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==}
+
viem@2.23.2:
resolution: {integrity: sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==}
peerDependencies:
@@ -14669,7 +14813,7 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.28.5
- '@base-org/account@1.1.1(@types/react@18.3.12)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.2)':
+ '@base-org/account@1.1.1(@types/react@18.3.12)(bufferutil@4.1.0)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.2)':
dependencies:
'@noble/hashes': 1.4.0
clsx: 1.2.1
@@ -14678,7 +14822,7 @@ snapshots:
ox: 0.6.9(typescript@5.8.2)(zod@3.24.2)
preact: 10.24.2
viem: 2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
- zustand: 5.0.3(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
+ zustand: 5.0.3(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
transitivePeerDependencies:
- '@types/react'
- bufferutil
@@ -14713,7 +14857,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.12)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.2)':
+ '@coinbase/wallet-sdk@4.3.6(@types/react@18.3.12)(bufferutil@4.1.0)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.2)':
dependencies:
'@noble/hashes': 1.4.0
clsx: 1.2.1
@@ -14722,7 +14866,7 @@ snapshots:
ox: 0.6.9(typescript@5.8.2)(zod@3.24.2)
preact: 10.24.2
viem: 2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
- zustand: 5.0.3(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
+ zustand: 5.0.3(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
transitivePeerDependencies:
- '@types/react'
- bufferutil
@@ -18185,6 +18329,18 @@ snapshots:
dependencies:
react: 18.3.1
+ '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@18.3.12)(react@18.3.1)(redux@5.0.1))(react@18.3.1)':
+ dependencies:
+ '@standard-schema/spec': 1.1.0
+ '@standard-schema/utils': 0.3.0
+ immer: 11.1.4
+ redux: 5.0.1
+ redux-thunk: 3.1.0(redux@5.0.1)
+ reselect: 5.1.1
+ optionalDependencies:
+ react: 18.3.1
+ react-redux: 9.2.0(@types/react@18.3.12)(react@18.3.1)(redux@5.0.1)
+
'@remix-run/router@1.23.2': {}
'@reown/appkit-common@1.7.8(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.22.4)':
@@ -19014,6 +19170,10 @@ snapshots:
'@solidity-parser/parser@0.20.2': {}
+ '@standard-schema/spec@1.1.0': {}
+
+ '@standard-schema/utils@0.3.0': {}
+
'@starknet-io/types-js@0.7.10': {}
'@storybook/builder-vite@10.2.8(esbuild@0.27.2)(rollup@3.29.5)(storybook@10.2.8(@testing-library/dom@10.4.0)(bufferutil@4.1.0)(prettier@3.5.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10))(vite@5.4.21(@types/node@22.13.9)(less@4.5.1)(lightningcss@1.30.2)(sass-embedded@1.97.3)(sass@1.97.3)(terser@5.46.0))(webpack@5.105.1(@swc/core@1.15.8(@swc/helpers@0.5.18))(esbuild@0.27.2))':
@@ -19627,6 +19787,30 @@ snapshots:
dependencies:
'@types/node': 22.13.9
+ '@types/d3-array@3.2.2': {}
+
+ '@types/d3-color@3.1.3': {}
+
+ '@types/d3-ease@3.0.2': {}
+
+ '@types/d3-interpolate@3.0.4':
+ dependencies:
+ '@types/d3-color': 3.1.3
+
+ '@types/d3-path@3.1.1': {}
+
+ '@types/d3-scale@4.0.9':
+ dependencies:
+ '@types/d3-time': 3.0.4
+
+ '@types/d3-shape@3.1.8':
+ dependencies:
+ '@types/d3-path': 3.1.1
+
+ '@types/d3-time@3.0.4': {}
+
+ '@types/d3-timer@3.0.2': {}
+
'@types/debug@4.1.12':
dependencies:
'@types/ms': 2.1.0
@@ -19834,6 +20018,8 @@ snapshots:
'@types/trusted-types@2.0.7': {}
+ '@types/use-sync-external-store@0.0.6': {}
+
'@types/ws@8.18.1':
dependencies:
'@types/node': 22.13.9
@@ -20487,18 +20673,18 @@ snapshots:
loupe: 3.2.1
tinyrainbow: 2.0.0
- '@wagmi/connectors@5.11.2(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2))(zod@3.24.2)':
+ '@wagmi/connectors@5.11.2(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2))(zod@3.24.2)':
dependencies:
- '@base-org/account': 1.1.1(@types/react@18.3.12)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.2)
- '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.12)(bufferutil@4.1.0)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.2)
+ '@base-org/account': 1.1.1(@types/react@18.3.12)(bufferutil@4.1.0)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.2)
+ '@coinbase/wallet-sdk': 4.3.6(@types/react@18.3.12)(bufferutil@4.1.0)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.2)
'@gemini-wallet/core': 0.2.0(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
'@metamask/sdk': 0.33.1(bufferutil@4.1.0)(encoding@0.1.13)(utf-8-validate@5.0.10)
'@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
'@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
- '@wagmi/core': 2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
+ '@wagmi/core': 2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
'@walletconnect/ethereum-provider': 2.21.1(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
cbw-sdk: '@coinbase/wallet-sdk@3.9.3'
- porto: 0.2.19(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)))(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2))
+ porto: 0.2.19(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)))(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2))
viem: 2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
optionalDependencies:
typescript: 5.8.2
@@ -20534,12 +20720,12 @@ snapshots:
- wagmi
- zod
- '@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))':
+ '@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))':
dependencies:
eventemitter3: 5.0.1
mipd: 0.0.7(typescript@5.8.2)
viem: 2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
- zustand: 5.0.0(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
+ zustand: 5.0.0(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
optionalDependencies:
'@tanstack/query-core': 5.67.1
typescript: 5.8.2
@@ -22777,6 +22963,44 @@ snapshots:
untildify: 4.0.0
yauzl: 2.10.0
+ d3-array@3.2.4:
+ dependencies:
+ internmap: 2.0.3
+
+ d3-color@3.1.0: {}
+
+ d3-ease@3.0.1: {}
+
+ d3-format@3.1.2: {}
+
+ d3-interpolate@3.0.1:
+ dependencies:
+ d3-color: 3.1.0
+
+ d3-path@3.1.0: {}
+
+ d3-scale@4.0.2:
+ dependencies:
+ d3-array: 3.2.4
+ d3-format: 3.1.2
+ d3-interpolate: 3.0.1
+ d3-time: 3.1.0
+ d3-time-format: 4.1.0
+
+ d3-shape@3.2.0:
+ dependencies:
+ d3-path: 3.1.0
+
+ d3-time-format@4.1.0:
+ dependencies:
+ d3-time: 3.1.0
+
+ d3-time@3.1.0:
+ dependencies:
+ d3-array: 3.2.4
+
+ d3-timer@3.0.1: {}
+
damerau-levenshtein@1.0.8: {}
dargs@8.1.0: {}
@@ -22849,6 +23073,8 @@ snapshots:
decamelize@1.2.0: {}
+ decimal.js-light@2.5.1: {}
+
decimal.js@10.6.0: {}
decode-uri-component@0.2.2: {}
@@ -23309,6 +23535,8 @@ snapshots:
es-toolkit@1.33.0: {}
+ es-toolkit@1.44.0: {}
+
esbuild-register@3.6.0(esbuild@0.27.2):
dependencies:
debug: 4.4.3(supports-color@8.1.1)
@@ -24743,6 +24971,10 @@ snapshots:
image-size@2.0.2: {}
+ immer@10.2.0: {}
+
+ immer@11.1.4: {}
+
immutable@5.1.4: {}
import-fresh@3.3.1:
@@ -24793,6 +25025,8 @@ snapshots:
hasown: 2.0.2
side-channel: 1.1.0
+ internmap@2.0.3: {}
+
interpret@1.4.0: {}
intl-messageformat@10.7.18:
@@ -27206,21 +27440,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
- porto@0.2.19(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)))(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)):
+ porto@0.2.19(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)))(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)):
dependencies:
- '@wagmi/core': 2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
+ '@wagmi/core': 2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
hono: 4.11.9
idb-keyval: 6.2.2
mipd: 0.0.7(typescript@5.8.2)
ox: 0.9.17(typescript@5.8.2)(zod@4.3.6)
viem: 2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
zod: 4.3.6
- zustand: 5.0.11(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
+ zustand: 5.0.11(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1))
optionalDependencies:
'@tanstack/react-query': 5.67.1(react@18.3.1)
react: 18.3.1
typescript: 5.8.2
- wagmi: 2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)
+ wagmi: 2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2)
transitivePeerDependencies:
- '@types/react'
- immer
@@ -27938,6 +28172,15 @@ snapshots:
react-is@18.3.1: {}
+ react-redux@9.2.0(@types/react@18.3.12)(react@18.3.1)(redux@5.0.1):
+ dependencies:
+ '@types/use-sync-external-store': 0.0.6
+ react: 18.3.1
+ use-sync-external-store: 1.6.0(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 18.3.12
+ redux: 5.0.1
+
react-refresh@0.14.2: {}
react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
@@ -28052,6 +28295,26 @@ snapshots:
tiny-invariant: 1.3.3
tslib: 2.8.1
+ recharts@3.7.0(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react-is@18.3.1)(react@18.3.1)(redux@5.0.1):
+ dependencies:
+ '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@18.3.12)(react@18.3.1)(redux@5.0.1))(react@18.3.1)
+ clsx: 2.1.1
+ decimal.js-light: 2.5.1
+ es-toolkit: 1.44.0
+ eventemitter3: 5.0.4
+ immer: 10.2.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-is: 18.3.1
+ react-redux: 9.2.0(@types/react@18.3.12)(react@18.3.1)(redux@5.0.1)
+ reselect: 5.1.1
+ tiny-invariant: 1.3.3
+ use-sync-external-store: 1.6.0(react@18.3.1)
+ victory-vendor: 37.3.6
+ transitivePeerDependencies:
+ - '@types/react'
+ - redux
+
rechoir@0.6.2:
dependencies:
resolve: 1.22.11
@@ -28065,6 +28328,12 @@ snapshots:
dependencies:
esprima: 4.0.1
+ redux-thunk@3.1.0(redux@5.0.1):
+ dependencies:
+ redux: 5.0.1
+
+ redux@5.0.1: {}
+
reflect-metadata@0.2.2: {}
reflect.getprototypeof@1.0.10:
@@ -28146,6 +28415,8 @@ snapshots:
requires-port@1.0.0: {}
+ reselect@5.1.1: {}
+
resolve-alpn@1.2.1: {}
resolve-cwd@3.0.0:
@@ -29891,6 +30162,23 @@ snapshots:
core-util-is: 1.0.2
extsprintf: 1.3.0
+ victory-vendor@37.3.6:
+ dependencies:
+ '@types/d3-array': 3.2.2
+ '@types/d3-ease': 3.0.2
+ '@types/d3-interpolate': 3.0.4
+ '@types/d3-scale': 4.0.9
+ '@types/d3-shape': 3.1.8
+ '@types/d3-time': 3.0.4
+ '@types/d3-timer': 3.0.2
+ d3-array: 3.2.4
+ d3-ease: 3.0.1
+ d3-interpolate: 3.0.1
+ d3-scale: 4.0.2
+ d3-shape: 3.2.0
+ d3-time: 3.1.0
+ d3-timer: 3.0.1
+
viem@2.23.2(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2):
dependencies:
'@noble/curves': 1.8.1
@@ -30056,11 +30344,11 @@ snapshots:
dependencies:
xml-name-validator: 4.0.0
- wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2):
+ wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2):
dependencies:
'@tanstack/react-query': 5.67.1(react@18.3.1)
- '@wagmi/connectors': 5.11.2(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2))(zod@3.24.2)
- '@wagmi/core': 2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
+ '@wagmi/connectors': 5.11.2(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(@wagmi/core@2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)))(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(wagmi@2.17.5(@tanstack/query-core@5.67.1)(@tanstack/react-query@5.67.1(react@18.3.1))(@types/react@18.3.12)(@vercel/blob@1.0.2)(bufferutil@4.1.0)(encoding@0.1.13)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))(zod@3.24.2))(zod@3.24.2)
+ '@wagmi/core': 2.21.2(@tanstack/query-core@5.67.1)(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(typescript@5.8.2)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2))
react: 18.3.1
use-sync-external-store: 1.4.0(react@18.3.1)
viem: 2.43.1(bufferutil@4.1.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)
@@ -30470,20 +30758,23 @@ snapshots:
zod@4.3.6: {}
- zustand@5.0.0(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)):
+ zustand@5.0.0(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)):
optionalDependencies:
'@types/react': 18.3.12
+ immer: 11.1.4
react: 18.3.1
use-sync-external-store: 1.4.0(react@18.3.1)
- zustand@5.0.11(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)):
+ zustand@5.0.11(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)):
optionalDependencies:
'@types/react': 18.3.12
+ immer: 11.1.4
react: 18.3.1
use-sync-external-store: 1.4.0(react@18.3.1)
- zustand@5.0.3(@types/react@18.3.12)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)):
+ zustand@5.0.3(@types/react@18.3.12)(immer@11.1.4)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)):
optionalDependencies:
'@types/react': 18.3.12
+ immer: 11.1.4
react: 18.3.1
use-sync-external-store: 1.4.0(react@18.3.1)