Миграция на Kit

Если вы переходите с @solana/web3.js (legacy), @solana/wallet-adapter-* или более ранних пакетов framework-kit (@solana/client, @solana/react-hooks, @solana/web3-compat), рекомендуем перейти на плагины @solana/kit или на @solana/web3.js v3 (или выше).

На этой странице концепции, которые вы уже знаете, сопоставлены с их аналогами в Kit.

Сопоставление концепций

web3.js (legacy) / wallet-adapterKit
new Connection(url)createSolanaRpc(url) или .use(solanaRpc({ rpcUrl })) на клиенте
PublicKeyAddress — приведение строки с помощью address("...")
KeypairgenerateKeyPairSigner() или плагины @solana/kit-plugin-signer
SystemProgram.transfer(...)getTransferSolInstruction(...) из @solana-program/system
LAMPORTS_PER_SOL mathlamports(...) из @solana/kit
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 (legacy), а полная перезапись на Kit нецелесообразна, мостом станет web3.js v3. Установите его командой @solana/web3.js@3. Он заново реализует классический классовый API — Connection, Keypair, Transaction, PublicKey — поверх внутренних компонентов @solana/kit. Благодаря тому, что он построен на Kit, взаимодействие получается тесным: PublicKey — основной тип адреса, а его метод .toBase58() возвращает брендированную строку Address из Kit, а Keypair в v3 реализует KeyPairSigner из Kit, поэтому его можно напрямую передавать в API Kit, плагины и клиенты, сгенерированные с помощью Codama.

Транзакции v1 и web3.js (legacy)

Если вы отправляете транзакции v1 с помощью web3.js, необходимо использовать v3+.

Саму миграцию описывает официальное руководство по миграции web3.js с v1 на v3.

Кошельки

Kit не использует wallet-adapter. @solana/kit-plugin-wallet обнаруживает кошельки, соответствующие стандарту Wallet Standard, и предоставляет к ним доступ через client.wallet и React-хуки. Современные кошельки (Phantom, Solflare, Backpack и другие) заявляют о себе через Wallet Standard, поэтому отдельные адаптеры для каждого кошелька не требуются.

Вы также можете использовать готовые инструменты, например @solana/connector, который напрямую использует примитивы Kit для подключения к кошелькам.

Всё ещё используете wallet-adapter?

Если вы поддерживаете приложение, построенное на @solana/wallet-adapter-*, и пока не готовы к миграции, репозиторий wallet-adapter остаётся справочным источником для этого стека. Для любых новых проектов предпочтительно использовать плагин Kit для работы с кошельками.

Что дальше

  • Kit-клиент — соберите клиент из плагинов.
  • React — привязки @solana/react и хуки для работы с кошельками.
  • Руководство по Next.js — полноценное приложение от начала до конца.

Is this page helpful?

Содержание

Редактировать страницу