Миграция на 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?

Содержание

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