如果您目前使用的是 @solana/web3.js(旧版)、@solana/wallet-adapter-*,
或早期的 framework-kit 软件包(@solana/client、@solana/react-hooks、
@solana/web3-compat),我们建议迁移到 @solana/kit 插件或
@solana/web3.js v3(或更高版本)。
本页将您已熟悉的概念对应到相应的 Kit 等价实现。
概念映射
| web3.js(旧版)/ wallet-adapter | Kit |
|---|---|
new Connection(url) | createSolanaRpc(url),或客户端上的 .use(solanaRpc({ rpcUrl })) |
PublicKey | Address — 使用 address("...") 强制转换字符串 |
Keypair | generateKeyPairSigner() 或 @solana/kit-plugin-signer 插件 |
SystemProgram.transfer(...) | 来自 @solana-program/system 的 getTransferSolInstruction(...) |
LAMPORTS_PER_SOL 数学运算 | 来自 @solana/kit 的 lamports(...) |
Transaction / VersionedTransaction | 由交易规划器构建和打包的交易消息 |
sendAndConfirmTransaction(...) | client.sendTransaction([...])(规划器负责签名、发送和确认) |
@solana/wallet-adapter-* | @solana/kit-plugin-wallet + Wallet Standard 发现机制 |
web3.js v3 保留了上述基于类的命名——Connection、Keypair、
Transaction、PublicKey——并将其作为 Kit 内部实现之上的轻量封装,因此 Kit
这一列同样描述了这些类在 v3 底层的实际行为。
来自 web3.js?
如果您维护着一个庞大的 @solana/web3.js(旧版)代码库,并且完全重写为 Kit
并不现实,那么 web3.js v3 就是一座桥梁。请使用
@solana/web3.js@3 安装它。它基于 @solana/kit 的内部实现,重新构建了经典的基于类的 API——Connection、
Keypair、Transaction、PublicKey。
由于它构建于 Kit 之上,互操作性非常紧密:PublicKey 是主要的地址
类型,其 .toBase58() 会返回 Kit 的带品牌标记的 Address 字符串,而 v3 的
Keypair 实现了 Kit 的 KeyPairSigner,因此您可以将其直接传递给 Kit
的 API、插件以及由 Codama 生成的客户端。
v1 交易与 web3.js(旧版)
如果您使用 web3.js 发送 v1 交易,则必须使用 v3 及以上版本。
关于迁移本身,请参阅官方的 web3.js v1 → v3 迁移指南。
钱包
Kit 不使用 wallet-adapter。@solana/kit-plugin-wallet 会自动发现符合 Wallet
Standard 的钱包,并通过 client.wallet 和
React hooks
将其暴露出来。现代钱包(Phantom、Solflare、Backpack 等)均通过 Wallet
Standard 进行自我声明,因此无需为每个钱包单独安装适配器包。
您也可以使用预构建工具,例如 @solana/connector,它直接使用 Kit 原语来连接钱包。
仍在使用 wallet-adapter?
如果您维护的应用基于 @solana/wallet-adapter-*
构建,且尚未准备好迁移,wallet-adapter
仓库
仍是该技术栈的参考资源。对于所有新项目,建议优先使用 Kit 钱包插件。
下一步
- Kit 客户端 — 通过插件组装客户端。
- React —
@solana/react绑定与钱包 hooks。 - Next.js 教程 — 完整的端到端应用示例。
Is this page helpful?