solana-v1 是一个专注于 Solana dApp 前端 UI 开发的技能,适用于 React/Next.js 项目。它的核心用途是帮助开发者在界面层实现 Solana 钱包连接、签名流程、交易构建与发送确认,以及地址校验等常见交互。
主要能力与范围:
- 使用 Solana Foundation 的 framework-kit(@solana/client 与 @solana/react-hooks)进行 React/Next.js UI 开发。
- 处理钱包连接与签名流程。
- 处理交易的构建、发送与确认体验。
- 处理地址校验与交易模式。
该技能明确不覆盖以下内容:
- EVM 前端开发(应参考 wagmi-v3)。
- 不涉及 dApp UI 的纯后端地址校验(可仅使用 @solana/web3.js 的 PublicKey)。
- 通用区块链概念。
使用方式与依赖假设:
- UI 开发使用 @solana/client 与 @solana/react-hooks。
- 客户端、RPC 与交易代码使用 @solana/kit。
- 地址校验使用 @solana/web3.js v1.x。
- UI 需要 React 18+ 或 Next.js 14+。
- 使用 TypeScript v5+ 并开启 strict 模式。
- 需要 Node.js 18+。
核心原则:
- React/Next.js UI 使用 Solana Foundation framework-kit(@solana/client + @solana/react-hooks)。
- 客户端、RPC 与交易代码使用 @solana/kit。
- 使用 @solana/web3.js 的 PublicKey 校验地址(包括不提供钱包 UI 的纯后端路由)。
- 使用 Wallet Standard 进行钱包发现与连接。
- 当存在遗留依赖时,将 @solana/web3.js 隔离在适配器边界内。
约束要求: 必须(MUST):
- 在使用地址前用 PublicKey.isOnCurve() 进行校验。
- 在遗留适配器边界使用 @solana/web3-compat。
应当(SHOULD):
- 优先使用 @solana/kit 类型(Address、Signer)而非 web3.js 类型。
- 优先使用 @solana-program/* 指令构建器,而非手写指令数据。
- 使用 Wallet Standard 进行钱包发现与连接。
- 将 @solana/web3.js 类型限制在适配器模块内,避免在整个应用中扩散。
避免(AVOID):
- 让 @solana/web3.js 类型泄漏到整个应用。
- 在使用地址前跳过地址校验。
地址校验模式示例: 始终在使用 Solana 地址前进行校验:
import { PublicKey } from '@solana/web3.js'
function validateSolanaAddress(address: string): boolean { try { const publicKey = new PublicKey(address) return PublicKey.isOnCurve(publicKey) } catch { return false } }
与其他技能的关系:
- 与 wagmi 技能互补,后者用于 EVM 前端开发。
- 本技能聚焦 Solana 特有的 dApp 开发模式。
适用场景:
- 需要在 React/Next.js 中实现 Solana 钱包连接、交易签名、交易发送与确认、地址校验的 dApp 前端项目。
限制:
- 不适用于 EVM 前端开发。
- 不适用于不涉及 dApp UI 的纯后端地址校验场景。
- 不涵盖通用区块链概念。
- 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。