diff --git a/apps/aptos/file-upload/.env.example b/apps/aptos/file-upload/.env.example new file mode 100644 index 0000000..9756a76 --- /dev/null +++ b/apps/aptos/file-upload/.env.example @@ -0,0 +1,2 @@ +# Shelby API key - get one from https://docs.shelby.xyz/sdks/typescript/acquire-api-keys +NEXT_PUBLIC_SHELBY_API_KEY=AG-xxx diff --git a/apps/aptos/file-upload/README.md b/apps/aptos/file-upload/README.md new file mode 100644 index 0000000..ac8251a --- /dev/null +++ b/apps/aptos/file-upload/README.md @@ -0,0 +1,92 @@ +# Aptos File Upload Example + +A Next.js example application demonstrating how Aptos developers can build a file upload dApp on [Shelby Protocol](https://shelby.xyz). This app allows users to connect their Aptos wallet and upload files to decentralized storage. + +## Features + +- Connect Aptos wallets via [@aptos-labs/wallet-adapter-react](https://www.npmjs.com/package/@aptos-labs/wallet-adapter-react) +- Upload files to Shelby's decentralized storage +- Native Aptos address as storage account (no derivation needed) +- Clean UI with file selection and upload status + +## Prerequisites + +- [Node.js](https://nodejs.org/) v22 or higher +- [pnpm](https://pnpm.io/) package manager +- An Aptos wallet (e.g., Petra, Nightly) +- A Shelby API key + +## Getting Started + +### 1. Clone the Repository + +```bash +git clone https://github.com/shelby-protocol/shelby-examples.git +cd shelby-examples/apps/aptos/file-upload +``` + +### 2. Install Dependencies + +From the monorepo root: + +```bash +pnpm install +``` + +### 3. Set Up Environment Variables + +Copy the example environment file: + +```bash +cp .env.example .env +``` + +### 4. Get Your Shelby API Key + +1. Visit the [Shelby API Keys documentation](https://docs.shelby.xyz/sdks/typescript/acquire-api-keys) +2. Follow the instructions to acquire your API key +3. Add your API key to the `.env` file: + +```env +NEXT_PUBLIC_SHELBY_API_KEY=your-api-key-here +``` + +### 5. Fund Your Account + +Testnet tokens (APT and ShelbyUSD) are available through the [Shelby Discord](https://discord.gg/shelbyserves). + +### 6. Run the Development Server + +```bash +pnpm dev +``` + +Open [http://localhost:3000](http://localhost:3000) in your browser. + +## How It Works + +This example uses the following packages: + +- [`@shelby-protocol/sdk`](https://docs.shelby.xyz/sdks/typescript) - Core TypeScript SDK for interacting with Shelby Protocol +- [`@shelby-protocol/react`](https://docs.shelby.xyz/sdks/typescript) - React hooks for blob uploads +- [`@aptos-labs/wallet-adapter-react`](https://www.npmjs.com/package/@aptos-labs/wallet-adapter-react) - Aptos wallet connection + +### Key Components + +- **FileUpload** - Main component handling file selection and upload +- **Header** - Navigation with wallet connection button +- **WalletButton** - Wallet connection with AIP-62 wallet detection +- **providers.tsx** - AptosWalletAdapterProvider and QueryClientProvider configuration + +### Storage Account + +With Aptos, your wallet address is directly used as your Shelby storage account. No derivation is needed unlike Ethereum or Solana cross-chain flows. + +## Learn More + +- [Shelby Documentation](https://docs.shelby.xyz) +- [Shelby Explorer](https://explorer.shelby.xyz) - View your uploaded files + +## License + +MIT diff --git a/apps/aptos/file-upload/app/components/file-upload.tsx b/apps/aptos/file-upload/app/components/file-upload.tsx new file mode 100644 index 0000000..d51440e --- /dev/null +++ b/apps/aptos/file-upload/app/components/file-upload.tsx @@ -0,0 +1,192 @@ +"use client"; + +import { useWallet } from "@aptos-labs/wallet-adapter-react"; +import { useUploadBlobs } from "@shelby-protocol/react"; +import type { ReactNode } from "react"; +import { useCallback, useRef, useState } from "react"; +import { shelbyClient } from "../lib/shelby-client"; + +type UploadStep = "idle" | "uploading" | "done" | "error"; + +export function FileUpload() { + const { connected, account, signAndSubmitTransaction } = useWallet(); + const fileInputRef = useRef(null); + + const storageAddress = account?.address?.toString(); + + const { mutateAsync: uploadBlobs, isPending } = useUploadBlobs({ + client: shelbyClient, + }); + + const [selectedFile, setSelectedFile] = useState(null); + const [step, setStep] = useState("idle"); + const [statusMessage, setStatusMessage] = useState(null); + + const clearFile = useCallback(() => { + setSelectedFile(null); + if (fileInputRef.current) { + fileInputRef.current.value = ""; + } + }, []); + + const handleFileChange = useCallback( + (e: React.ChangeEvent) => { + const file = e.target.files?.[0] ?? null; + setSelectedFile(file); + setStep("idle"); + setStatusMessage(null); + }, + [], + ); + + const handleUpload = useCallback(async () => { + if (!selectedFile || !storageAddress) return; + + try { + setStep("uploading"); + setStatusMessage("Uploading file to Shelby..."); + + const fileBytes = new Uint8Array(await selectedFile.arrayBuffer()); + + await uploadBlobs({ + signer: { account: storageAddress, signAndSubmitTransaction }, + blobs: [ + { + blobName: selectedFile.name, + blobData: fileBytes, + }, + ], + // 30 days from now in microseconds + expirationMicros: (1000 * 60 * 60 * 24 * 30 + Date.now()) * 1000, + }); + + setStep("done"); + const explorerUrl = `https://explorer.shelby.xyz/testnet/account/${storageAddress}/blobs`; + setStatusMessage( + <> + Successfully uploaded: {selectedFile.name}.{" "} + + View in Explorer + + , + ); + clearFile(); + } catch (err) { + setStep("error"); + const message = err instanceof Error ? err.message : "Unknown error"; + const cause = + err instanceof Error && err.cause instanceof Error + ? err.cause.message + : undefined; + setStatusMessage( + cause ? `Error: ${message} — ${cause}` : `Error: ${message}`, + ); + } + }, [ + selectedFile, + storageAddress, + signAndSubmitTransaction, + uploadBlobs, + clearFile, + ]); + + const handleSelectFile = useCallback(() => { + fileInputRef.current?.click(); + }, []); + + const isProcessing = step === "uploading" || isPending; + + if (!connected) { + return ( +
+
+

Upload File to Shelby

+

+ Connect your wallet to upload files to decentralized storage. +

+
+
+ Wallet not connected +
+
+ ); + } + + return ( +
+
+

Upload File to Shelby

+

+ Upload any file to Shelby's decentralized storage using your + Aptos wallet. +

+
+ + {/* File Input */} +
+ + +
+ {selectedFile ? ( +
+

{selectedFile.name}

+

+ {(selectedFile.size / 1024).toFixed(1)} KB +

+
+ ) : ( +
+

Click to select a file

+
+ )} +
+ + {/* Upload Button */} + +
+ + {/* Status Message */} + {statusMessage && ( +
+ {statusMessage} +
+ )} + + {/* Storage Account Info */} +
+

+ Storage Account:{" "} + {storageAddress} +

+
+
+ ); +} diff --git a/apps/aptos/file-upload/app/components/header.tsx b/apps/aptos/file-upload/app/components/header.tsx new file mode 100644 index 0000000..4641ae8 --- /dev/null +++ b/apps/aptos/file-upload/app/components/header.tsx @@ -0,0 +1,20 @@ +"use client"; + +import Link from "next/link"; +import { WalletButton } from "./wallet-button"; + +export function Header() { + return ( +
+
+ + + FU + + File Upload + + +
+
+ ); +} diff --git a/apps/aptos/file-upload/app/components/providers.tsx b/apps/aptos/file-upload/app/components/providers.tsx new file mode 100644 index 0000000..f770ab0 --- /dev/null +++ b/apps/aptos/file-upload/app/components/providers.tsx @@ -0,0 +1,26 @@ +"use client"; + +import { Network } from "@aptos-labs/ts-sdk"; +import { AptosWalletAdapterProvider } from "@aptos-labs/wallet-adapter-react"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; + +const queryClient = new QueryClient(); + +export function Providers({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/apps/aptos/file-upload/app/components/wallet-button.tsx b/apps/aptos/file-upload/app/components/wallet-button.tsx new file mode 100644 index 0000000..60a5dbc --- /dev/null +++ b/apps/aptos/file-upload/app/components/wallet-button.tsx @@ -0,0 +1,185 @@ +"use client"; + +import { useWallet } from "@aptos-labs/wallet-adapter-react"; +import { useEffect, useRef, useState } from "react"; +import { createPortal } from "react-dom"; + +function formatAddress(address?: string) { + if (!address) return "Not connected"; + return `${address.slice(0, 6)}...${address.slice(-4)}`; +} + +export function WalletButton() { + const { connected, account, wallets, connect, disconnect } = useWallet(); + const [isModalOpen, setIsModalOpen] = useState(false); + const [isMenuOpen, setIsMenuOpen] = useState(false); + const menuRef = useRef(null); + + const walletAddress = account?.address?.toString(); + + // Close modal when connection succeeds + useEffect(() => { + if (connected) { + // eslint-disable-next-line react-hooks/set-state-in-effect + setIsModalOpen(false); + } + }, [connected]); + + // Close dropdown when clicking outside + useEffect(() => { + if (!isMenuOpen) return; + + function handleClickOutside(e: MouseEvent) { + if (menuRef.current && !menuRef.current.contains(e.target as Node)) { + setIsMenuOpen(false); + } + } + + document.addEventListener("mousedown", handleClickOutside); + return () => document.removeEventListener("mousedown", handleClickOutside); + }, [isMenuOpen]); + + return ( +
+ + + {isMenuOpen && connected && ( +
+ {/* Wallet Address */} +
+
Wallet address
+
+ + {formatAddress(walletAddress)} + + +
+
+ + {/* Disconnect */} +
+ +
+
+ )} + + {isModalOpen && + !connected && + createPortal( +
setIsModalOpen(false)} + onKeyDown={(e) => e.key === "Escape" && setIsModalOpen(false)} + role="dialog" + > +
e.stopPropagation()} + > +
+
+

Select a wallet

+

+ Choose an Aptos wallet to continue. +

+
+ +
+ +
+ {wallets.length > 0 ? ( + wallets.map((w) => ( + + )) + ) : ( +
+ No Aptos wallets detected. Install{" "} + + Petra + {" "} + to get started. +
+ )} +
+
+
, + document.body, + )} +
+ ); +} diff --git a/apps/aptos/file-upload/app/globals.css b/apps/aptos/file-upload/app/globals.css new file mode 100644 index 0000000..6a2c2ad --- /dev/null +++ b/apps/aptos/file-upload/app/globals.css @@ -0,0 +1,61 @@ +@import "tailwindcss"; + +:root { + --background: #ffffff; + --foreground: oklch(0.145 0 0); + --border-strong: oklch(0.839 0.0187 78.23); + --border-low: oklch(0.927 0.0122 96.43); + --accent: oklch(0 0 0); + --muted: #3a3a3a; + --cream: oklch(0.9553 0.0029 84.56); + --card: #ffffff; + --card-foreground: oklch(0.145 0 0); + --radius: 0.625rem; + --font-sans: var(--font-inter), system-ui, sans-serif; + --font-mono: var(--font-geist-mono), ui-monospace, monospace; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --border-strong: oklch(1 0 0 / 0.12); + --border-low: oklch(1 0 0 / 0.08); + --accent: oklch(0.922 0 0); + --muted: oklch(0.75 0.01 260); + --cream: oklch(0.22 0.009 70.82); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + } +} + +@theme inline { + --color-background: var(--background); + --color-bg1: var(--background); + --color-foreground: var(--foreground); + --color-cream: var(--cream); + --color-border: var(--border-strong); + --color-border-strong: var(--border-strong); + --color-border-low: var(--border-low); + --color-primary: var(--accent); + --color-muted: var(--muted); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --font-sans: var(--font-sans); + --font-mono: var(--font-mono); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); +} + +@layer base { + * { + @apply border-border outline-transparent; + } + + body { + @apply bg-bg1 text-foreground antialiased; + font-family: var(--font-sans); + color-scheme: light dark; + } +} diff --git a/apps/aptos/file-upload/app/layout.tsx b/apps/aptos/file-upload/app/layout.tsx new file mode 100644 index 0000000..b42698d --- /dev/null +++ b/apps/aptos/file-upload/app/layout.tsx @@ -0,0 +1,37 @@ +import type { Metadata } from "next"; +import { Geist_Mono, Inter } from "next/font/google"; +import "./globals.css"; +import { Providers } from "./components/providers"; + +const inter = Inter({ + variable: "--font-inter", + subsets: ["latin"], + display: "swap", +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Aptos File Upload", + description: "Upload files to Shelby using your Aptos wallet", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/apps/aptos/file-upload/app/lib/shelby-client.ts b/apps/aptos/file-upload/app/lib/shelby-client.ts new file mode 100644 index 0000000..aa79f31 --- /dev/null +++ b/apps/aptos/file-upload/app/lib/shelby-client.ts @@ -0,0 +1,12 @@ +"use client"; + +import { Network } from "@aptos-labs/ts-sdk"; +import { ShelbyClient } from "@shelby-protocol/sdk/browser"; + +/** + * Shared Shelby client for all storage interactions. + */ +export const shelbyClient = new ShelbyClient({ + network: Network.TESTNET, + apiKey: process.env.NEXT_PUBLIC_SHELBY_API_KEY || "", +}); diff --git a/apps/aptos/file-upload/app/page.tsx b/apps/aptos/file-upload/app/page.tsx new file mode 100644 index 0000000..f583f93 --- /dev/null +++ b/apps/aptos/file-upload/app/page.tsx @@ -0,0 +1,30 @@ +"use client"; + +import { FileUpload } from "./components/file-upload"; +import { Header } from "./components/header"; + +export default function Home() { + return ( +
+
+ +
+
+

+ Aptos File Upload +

+

+ Upload files to Shelby +

+

+ Connect your Aptos wallet and upload files to decentralized storage. + Files are stored on Shelby Protocol with 30-day expiration on + testnet. +

+
+ + +
+
+ ); +} diff --git a/apps/aptos/file-upload/eslint.config.mjs b/apps/aptos/file-upload/eslint.config.mjs new file mode 100644 index 0000000..c03c2a9 --- /dev/null +++ b/apps/aptos/file-upload/eslint.config.mjs @@ -0,0 +1,11 @@ +import { defineConfig, globalIgnores } from "eslint/config"; +import nextVitals from "eslint-config-next/core-web-vitals"; +import nextTs from "eslint-config-next/typescript"; + +const eslintConfig = defineConfig([ + ...nextVitals, + ...nextTs, + globalIgnores([".next/**", "out/**", "build/**", "next-env.d.ts"]), +]); + +export default eslintConfig; diff --git a/apps/aptos/file-upload/next-env.d.ts b/apps/aptos/file-upload/next-env.d.ts new file mode 100644 index 0000000..c4b7818 --- /dev/null +++ b/apps/aptos/file-upload/next-env.d.ts @@ -0,0 +1,6 @@ +/// +/// +import "./.next/dev/types/routes.d.ts"; + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/apps/aptos/file-upload/next.config.ts b/apps/aptos/file-upload/next.config.ts new file mode 100644 index 0000000..cb651cd --- /dev/null +++ b/apps/aptos/file-upload/next.config.ts @@ -0,0 +1,5 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = {}; + +export default nextConfig; diff --git a/apps/aptos/file-upload/package.json b/apps/aptos/file-upload/package.json new file mode 100644 index 0000000..49ffb21 --- /dev/null +++ b/apps/aptos/file-upload/package.json @@ -0,0 +1,42 @@ +{ + "name": "aptos-file-upload", + "description": "Simple Aptos file upload to Shelby using @aptos-labs/wallet-adapter-react", + "keywords": [ + "nextjs", + "react", + "aptos", + "shelby", + "tailwind", + "typescript" + ], + "version": "0.0.0", + "private": true, + "scripts": { + "build": "next build", + "dev": "next dev", + "lint": "eslint", + "fmt": "prettier --write .", + "start": "next start" + }, + "dependencies": { + "@aptos-labs/ts-sdk": "^5.1.1", + "@aptos-labs/wallet-adapter-react": "^7.2.8", + "@shelby-protocol/react": "latest", + "@shelby-protocol/sdk": "latest", + "@tanstack/react-query": "^5.90.16", + "next": "16.0.10", + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "eslint": "^9", + "eslint-config-next": "16.0.10", + "prettier": "^3.6.2", + "tailwindcss": "^4", + "typescript": "^5" + } +} diff --git a/apps/aptos/file-upload/postcss.config.mjs b/apps/aptos/file-upload/postcss.config.mjs new file mode 100644 index 0000000..61e3684 --- /dev/null +++ b/apps/aptos/file-upload/postcss.config.mjs @@ -0,0 +1,7 @@ +const config = { + plugins: { + "@tailwindcss/postcss": {}, + }, +}; + +export default config; diff --git a/apps/aptos/file-upload/tsconfig.json b/apps/aptos/file-upload/tsconfig.json new file mode 100644 index 0000000..15c7b97 --- /dev/null +++ b/apps/aptos/file-upload/tsconfig.json @@ -0,0 +1,34 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "react-jsx", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts", + "**/*.mts" + ], + "exclude": ["node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0989b1..23b9b2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,7 +40,7 @@ importers: version: 8.2.0(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@18.3.27)(@wallet-standard/core@1.1.1)(react@19.2.4) '@shelby-protocol/sdk': specifier: latest - version: 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + version: 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) '@shelby-protocol/ui': specifier: workspace:* version: link:../../packages/ui @@ -76,6 +76,61 @@ importers: specifier: ^18.3.1 version: 18.3.7(@types/react@18.3.27) + apps/aptos/file-upload: + dependencies: + '@aptos-labs/ts-sdk': + specifier: ^5.1.1 + version: 5.2.1(got@11.8.6) + '@aptos-labs/wallet-adapter-react': + specifier: ^7.2.8 + version: 7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4) + '@shelby-protocol/react': + specifier: latest + version: 1.0.3(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@aptos-labs/wallet-adapter-react@7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4))(@shelby-protocol/sdk@0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + '@shelby-protocol/sdk': + specifier: latest + version: 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + '@tanstack/react-query': + specifier: ^5.90.16 + version: 5.90.20(react@19.2.4) + next: + specifier: 16.0.10 + version: 16.0.10(@babel/core@7.28.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: + specifier: ^19.1.0 + version: 19.2.4 + react-dom: + specifier: ^19.1.0 + version: 19.2.4(react@19.2.4) + devDependencies: + '@tailwindcss/postcss': + specifier: ^4 + version: 4.1.18 + '@types/node': + specifier: ^20 + version: 20.19.30 + '@types/react': + specifier: ^19 + version: 19.2.10 + '@types/react-dom': + specifier: ^19 + version: 19.2.3(@types/react@19.2.10) + eslint: + specifier: ^9 + version: 9.39.2(jiti@2.6.1) + eslint-config-next: + specifier: 16.0.10 + version: 16.0.10(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + prettier: + specifier: ^3.6.2 + version: 3.8.1 + tailwindcss: + specifier: ^4 + version: 4.1.18 + typescript: + specifier: ^5 + version: 5.9.3 + apps/cross-chain-accounts: dependencies: '@aptos-labs/derived-wallet-ethereum': @@ -92,7 +147,7 @@ importers: version: 8.2.0(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@18.3.27)(@wallet-standard/core@1.1.1)(react@19.2.4) '@shelby-protocol/sdk': specifier: latest - version: 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + version: 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) '@shelby-protocol/ui': specifier: workspace:* version: link:../../packages/ui @@ -123,7 +178,7 @@ importers: version: 5.2.1(got@11.8.6) '@shelby-protocol/sdk': specifier: latest - version: 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + version: 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) devDependencies: '@biomejs/biome': specifier: 2.2.4 @@ -157,7 +212,7 @@ importers: version: 0.1.1(@wallet-standard/core@1.1.1)(bufferutil@4.1.0)(got@11.8.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(utf-8-validate@5.0.10)(viem@2.45.0(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10)(zod@4.3.5))(zod@4.3.5) '@shelby-protocol/react': specifier: ^0.0.4 - version: 0.0.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@shelby-protocol/sdk@0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + version: 0.0.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@aptos-labs/wallet-adapter-react@7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4))(@shelby-protocol/sdk@0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@shelby-protocol/sdk': specifier: ^0.0.9 version: 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) @@ -230,7 +285,7 @@ importers: version: 5.2.1(got@11.8.6) '@shelby-protocol/sdk': specifier: latest - version: 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + version: 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) devDependencies: '@biomejs/biome': specifier: 2.2.4 @@ -249,13 +304,13 @@ importers: dependencies: '@shelby-protocol/react': specifier: latest - version: 0.0.5(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@shelby-protocol/sdk@0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + version: 1.0.3(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@aptos-labs/wallet-adapter-react@7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4))(@shelby-protocol/sdk@0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@shelby-protocol/sdk': specifier: latest - version: 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + version: 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) '@shelby-protocol/solana-kit': specifier: latest - version: 0.2.0(@wallet-standard/core@1.1.1)(bs58@6.0.0)(bufferutil@4.1.0)(got@11.8.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(utf-8-validate@5.0.10) + version: 0.2.6(@wallet-standard/core@1.1.1)(bs58@6.0.0)(bufferutil@4.1.0)(got@11.8.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(utf-8-validate@5.0.10) '@solana/client': specifier: ^1.2.0 version: 1.7.0(@solana/sysvars@5.5.1(typescript@5.9.3))(@types/react@19.2.10)(bufferutil@4.1.0)(react@19.2.4)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.4))(utf-8-validate@5.0.10) @@ -298,7 +353,7 @@ importers: version: 9.39.2(jiti@2.6.1) eslint-config-next: specifier: 16.0.10 - version: 16.0.10(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + version: 16.0.10(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) prettier: specifier: ^3.6.2 version: 3.8.1 @@ -319,13 +374,13 @@ importers: version: 0.31.1(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) '@shelby-protocol/react': specifier: latest - version: 0.0.5(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@shelby-protocol/sdk@0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) + version: 1.0.3(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@aptos-labs/wallet-adapter-react@7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4))(@shelby-protocol/sdk@0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) '@shelby-protocol/sdk': specifier: latest - version: 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + version: 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) '@shelby-protocol/solana-kit': specifier: latest - version: 0.2.0(@wallet-standard/core@1.1.1)(bs58@6.0.0)(bufferutil@4.1.0)(got@11.8.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(utf-8-validate@5.0.10) + version: 0.2.6(@wallet-standard/core@1.1.1)(bs58@6.0.0)(bufferutil@4.1.0)(got@11.8.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(utf-8-validate@5.0.10) '@solana/client': specifier: ^1.2.0 version: 1.7.0(@solana/sysvars@5.5.1(typescript@5.9.3))(@types/react@19.2.10)(bufferutil@4.1.0)(react@19.2.4)(typescript@5.9.3)(use-sync-external-store@1.6.0(react@19.2.4))(utf-8-validate@5.0.10) @@ -398,7 +453,7 @@ importers: version: 5.2.1(got@11.8.6) '@shelby-protocol/sdk': specifier: latest - version: 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + version: 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) devDependencies: '@biomejs/biome': specifier: 2.2.4 @@ -587,11 +642,21 @@ packages: resolution: {integrity: sha512-kazYjqfsPCBx2UJI+nYUOb6Ov7q7brSgYEfxp2sP27IeJWdDNa50lfs0WIpDJ92kQxdtlm9q3ZWw7Toh9f1gxQ==} engines: {node: '>=20.0.0'} + '@aptos-labs/wallet-adapter-core@7.10.2': + resolution: {integrity: sha512-8my6jCfjLT0HqShGbnKXnqoERA1dTYuiH4of5WHEGHsB5OxYI5o+NHnDyCf/LQGtsZ8tEGaU5pOE+kGgFnlV8g==} + peerDependencies: + '@aptos-labs/ts-sdk': ^5.1.1 + '@aptos-labs/wallet-adapter-core@8.2.0': resolution: {integrity: sha512-vN9CMMVSMT1b4pMKdwgvdc/CwYX8x91mxvhzmMfyhrPt6w4ydv/0Q/pj1fKcHPSlWtpWY48aphebBWSH3XGOow==} peerDependencies: '@aptos-labs/ts-sdk': ^5.1.1 + '@aptos-labs/wallet-adapter-react@7.2.8': + resolution: {integrity: sha512-WHPLvfvpXRBdjlnKY13fufy+oAov4J7PWIGlVD0XwgpMDWgi1WuMb8iYtGePcRqfDan5nvhALV04qRAsWwMGqQ==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + '@aptos-labs/wallet-adapter-react@8.2.0': resolution: {integrity: sha512-IWpdeOEZ88wHNW3vmZI9L60MQbaP0bifrUsdDKNQwR0ZbivBhyowEzayQCvlloftgYWyIq6qvr/SFIX/+wzbtw==} peerDependencies: @@ -2028,12 +2093,12 @@ packages: '@aptos-labs/wallet-adapter-react': optional: true - '@shelby-protocol/react@0.0.5': - resolution: {integrity: sha512-Y4oU/eOUlClWZmthXPiPKB9Umw66SJXKvyscbfGEprUBSoyvPsrEHsjOhuGlYmkXwWQe68OIZFO6p91xJPsVTA==} + '@shelby-protocol/react@1.0.3': + resolution: {integrity: sha512-QT7g9ytKrjQ/6LNtlCYjSvMVYbMYfhTUTqp6zYqv2Y0N7im8Htco91/qEoProRwrRz+24oYbMNgAJLmSXWq1Uw==} peerDependencies: '@aptos-labs/ts-sdk': '>=5.0.0' '@aptos-labs/wallet-adapter-react': ^6.0.0 || ^7.0.0 - '@shelby-protocol/sdk': 0.0.9 + '@shelby-protocol/sdk': 0.2.3 '@tanstack/react-query': '>=5.0.0' react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 @@ -2050,8 +2115,13 @@ packages: peerDependencies: '@aptos-labs/ts-sdk': ^2.0.1 || ^3.0.0 || ^4.0.0 || ^5.0.0 - '@shelby-protocol/solana-kit@0.2.0': - resolution: {integrity: sha512-lKIBrVNZxeIod1RlG4VM+YcBbZIkIWLp9sBlae7H+EV7dzE/t5ECUuKb9MrH1a/S213rAnrV8OpxDazoYp39vw==} + '@shelby-protocol/sdk@0.2.4': + resolution: {integrity: sha512-9IAiHCnUFWl1Y32BKi97sdPYb+5iPkTZbsf3iiEbpvnuWw9LOPcL7FRZ9DSTm63BK+4hBzbvPvNRGtukbpmR6g==} + peerDependencies: + '@aptos-labs/ts-sdk': ^2.0.1 || ^3.0.0 || ^4.0.0 || ^5.0.0 + + '@shelby-protocol/solana-kit@0.2.6': + resolution: {integrity: sha512-iY9nGkA8o/cNV8NykIBMDCgHFdodiUjwQ7m153DCES83do7EWrB6vQ4z1NX6kJu5HaBKyad4RPfN2QWgpGNomQ==} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 @@ -5357,9 +5427,6 @@ packages: undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici-types@7.19.2: resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} @@ -5838,6 +5905,19 @@ snapshots: transitivePeerDependencies: - got + '@aptos-labs/wallet-adapter-core@7.10.2(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.1)': + dependencies: + '@aptos-connect/wallet-adapter-plugin': 3.0.2(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.1) + '@aptos-labs/ts-sdk': 5.2.1(got@11.8.6) + '@aptos-labs/wallet-standard': 0.5.2(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@wallet-standard/core@1.1.1) + buffer: 6.0.3 + eventemitter3: 4.0.7 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - '@telegram-apps/bridge' + - '@wallet-standard/core' + - debug + '@aptos-labs/wallet-adapter-core@8.2.0(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.1)': dependencies: '@aptos-connect/wallet-adapter-plugin': 3.0.2(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.1) @@ -5851,6 +5931,18 @@ snapshots: - '@wallet-standard/core' - debug + '@aptos-labs/wallet-adapter-react@7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4)': + dependencies: + '@aptos-labs/wallet-adapter-core': 7.10.2(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.1) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.10)(react@19.2.4) + react: 19.2.4 + transitivePeerDependencies: + - '@aptos-labs/ts-sdk' + - '@telegram-apps/bridge' + - '@types/react' + - '@wallet-standard/core' + - debug + '@aptos-labs/wallet-adapter-react@8.2.0(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@18.3.27)(@wallet-standard/core@1.1.1)(react@19.2.4)': dependencies: '@aptos-labs/wallet-adapter-core': 8.2.0(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@wallet-standard/core@1.1.1) @@ -7217,7 +7309,7 @@ snapshots: - utf-8-validate - zod - '@shelby-protocol/react@0.0.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@shelby-protocol/sdk@0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@shelby-protocol/react@0.0.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@aptos-labs/wallet-adapter-react@7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4))(@shelby-protocol/sdk@0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: '@aptos-labs/ts-sdk': 5.2.1(got@11.8.6) '@shelby-protocol/sdk': 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) @@ -7226,16 +7318,20 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) typescript: 5.9.3 + optionalDependencies: + '@aptos-labs/wallet-adapter-react': 7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4) - '@shelby-protocol/react@0.0.5(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@shelby-protocol/sdk@0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': + '@shelby-protocol/react@1.0.3(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@aptos-labs/wallet-adapter-react@7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4))(@shelby-protocol/sdk@0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)))(@tanstack/react-query@5.90.20(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)': dependencies: '@aptos-labs/ts-sdk': 5.2.1(got@11.8.6) - '@shelby-protocol/sdk': 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + '@shelby-protocol/sdk': 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) '@tanstack/react-query': 5.90.20(react@19.2.4) p-limit: 7.2.0 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) typescript: 5.9.3 + optionalDependencies: + '@aptos-labs/wallet-adapter-react': 7.2.8(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@telegram-apps/bridge@1.9.2)(@types/react@19.2.10)(@wallet-standard/core@1.1.1)(react@19.2.4) '@shelby-protocol/reed-solomon@0.0.1': {} @@ -7250,13 +7346,24 @@ snapshots: p-limit: 7.1.1 zod: 3.25.76 - '@shelby-protocol/solana-kit@0.2.0(@wallet-standard/core@1.1.1)(bs58@6.0.0)(bufferutil@4.1.0)(got@11.8.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(utf-8-validate@5.0.10)': + '@shelby-protocol/sdk@0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))': + dependencies: + '@aptos-labs/ts-sdk': 5.2.1(got@11.8.6) + '@shelby-protocol/clay-codes': 0.0.2 + '@shelby-protocol/reed-solomon': 0.0.1 + graphql: 16.12.0 + graphql-request: 7.4.0(graphql@16.12.0) + graphql-tag: 2.12.6(graphql@16.12.0) + p-limit: 7.1.1 + zod: 3.25.76 + + '@shelby-protocol/solana-kit@0.2.6(@wallet-standard/core@1.1.1)(bs58@6.0.0)(bufferutil@4.1.0)(got@11.8.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3)(utf-8-validate@5.0.10)': dependencies: '@aptos-labs/derived-wallet-solana': 0.12.0(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@wallet-standard/core@1.1.1)(bs58@6.0.0)(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) '@aptos-labs/gas-station-client': 2.0.3(got@11.8.6) '@aptos-labs/ts-sdk': 5.2.1(got@11.8.6) '@aptos-labs/wallet-standard': 0.5.2(@aptos-labs/ts-sdk@5.2.1(got@11.8.6))(@wallet-standard/core@1.1.1) - '@shelby-protocol/sdk': 0.0.9(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) + '@shelby-protocol/sdk': 0.2.4(@aptos-labs/ts-sdk@5.2.1(got@11.8.6)) '@solana/wallet-standard-features': 1.3.0 '@solana/web3.js': 1.98.4(bufferutil@4.1.0)(typescript@5.9.3)(utf-8-validate@5.0.10) optionalDependencies: @@ -7910,7 +8017,7 @@ snapshots: '@solana/errors': 5.4.0(typescript@5.9.3) '@solana/rpc-spec': 5.4.0(typescript@5.9.3) '@solana/rpc-spec-types': 5.4.0(typescript@5.9.3) - undici-types: 7.18.2 + undici-types: 7.19.2 optionalDependencies: typescript: 5.9.3 @@ -9281,8 +9388,8 @@ snapshots: '@next/eslint-plugin-next': 16.0.10 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@2.6.1)) @@ -9324,21 +9431,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) - get-tsconfig: 4.13.0 - is-bun-module: 2.0.0 - stable-hash: 0.0.5 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 - optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 @@ -9350,32 +9442,22 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) - transitivePeerDependencies: - - supports-color - - eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): - dependencies: - debug: 3.2.7 - optionalDependencies: eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -9386,7 +9468,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -9415,7 +9497,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.2(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.53.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -11035,8 +11117,6 @@ snapshots: undici-types@7.16.0: {} - undici-types@7.18.2: {} - undici-types@7.19.2: {} unrs-resolver@1.11.1: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 0e78c4c..0ca8fba 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,5 +1,6 @@ packages: - apps/* + - apps/aptos/* - apps/solana/* - apps/ethereum/* - packages/*