Если вы переходите с @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-adapter | Kit |
|---|---|
new Connection(url) | createSolanaRpc(url) или .use(solanaRpc({ rpcUrl })) на клиенте |
PublicKey | Address — приведение строки с помощью address("...") |
Keypair | generateKeyPairSigner() или плагины @solana/kit-plugin-signer |
SystemProgram.transfer(...) | getTransferSolInstruction(...) из @solana-program/system |
LAMPORTS_PER_SOL math | lamports(...) из @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?