Якщо ви переходите з @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 | 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?