Міграція до 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_SOLlamports(...) з @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?

Зміст

Редагувати сторінку