Перед створенням платіжних потоків вам потрібно підключитися до Solana та зрозуміти, як запитувати дані мережі. Цей посібник охоплює основи: встановлення з'єднання та використання RPC-методів, які вам знадобляться для платежів за допомогою TypeScript SDK @solana/kit та Solana CLI. Крім того, ми розглянемо основні принципи використання Solana Explorer для ручної перевірки платежів, інспектування облікових записів та налагодження проблем.
Підключення до Solana
RPC API Solana — це основний спосіб програмної взаємодії з мережею. Ваш RPC URL фактично є API-ключем до мережі.
Не використовуйте публічний RPC для продакшену
Публічні ендпоінти (api.mainnet-beta.solana.com, api.devnet.solana.com)
мають обмеження швидкості, не мають SLA та непридатні для продакшн-платіжних
потоків. Використовуйте RPC-провайдера, щоб отримати
приватний RPC- ендпоінт для продакшн-розгортань.
Для розробки та тестування ви можете використовувати публічні ендпоінти з обмеженням швидкості.
Створіть RPC-клієнт для взаємодії з мережею:
import { createSolanaRpc, createSolanaRpcSubscriptions } from "@solana/kit";const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");const rpcSubscriptions = createSolanaRpcSubscriptions("wss://api.mainnet-beta.solana.com");
Для розробки використовуйте devnet (https://api.devnet.solana.com) або
локальний validator, як-от
Surfpool.
Поширені RPC-методи
JSON-RPC API Solana надає методи для запитів до мережі. Ось ті, які ви найчастіше використовуватимете для платіжних потоків.
Отримання інформації про обліковий запис
Усі облікові записи в Solana адресуються за їхнім публічним ключем.
Використовуйте RPC-метод getAccountInfo для
отримання інформації про будь-який обліковий запис. Метод getAccountInfo
повертає об'єкт AccountInfo, який містить публічний ключ облікового запису,
баланс SOL, дані та деякі інші метадані.
Поле data є base64-закодованим рядком даних облікового запису. Ви можете
перетворити його на байти за допомогою методу getBase64Codec з пакета
@solana/kit, а потім декодувати його в читабельний об'єкт, використовуючи
очікуваний кодек (якщо відомий) для даних облікового запису (наприклад,
getTokenCodec для токен-акаунтів).
const accountInfo = await rpc.getAccountInfo(address("7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV"), {encoding: "base64"}).send();const dataBytes = getBase64Codec().encode(accountInfo.value.data);const parsedTokenData = getTokenCodec().decode(dataBytes);console.log(parsedTokenData);
Отримання балансів токенів
Перевірте баланс токен-акаунта за допомогою RPC-методу
getTokenAccountBalance:
const balance = await rpc.getTokenAccountBalance(tokenAccountAddress).send();console.log(balance.value.uiAmount); // Human-readable (e.g., 100.50)console.log(balance.value.amount); // Base units (e.g., "100500000")
Створення транзакцій
Кожна транзакція потребує свіжого хешу блоку, щоб бути дійсною (а не
застарілою). Отримайте його перед створенням платіжної транзакції за допомогою
RPC-методу getLatestBlockhash:
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
Хеші блоків втрачають чинність приблизно через 60 секунд. Отримайте свіжий безпосередньо перед підписанням і відправленням.
Перевірка статусу транзакції
Перевірте, чи завершилася транзакція, за допомогою RPC-методу
getSignatureStatuses:
const status = await rpc.getSignatureStatuses([signature]).send();const result = status.value[0];// result.confirmationStatus: "processed" | "confirmed" | "finalized"
Отримання деталей транзакції
Отримайте повну інформацію про підтверджену транзакцію за допомогою RPC-методу
getTransaction:
const transaction = await rpc.getTransaction(signature, { maxSupportedTransactionVersion: 0 }).send();
Історія транзакцій
Отримайте останні транзакції для адреси за допомогою RPC-методу
getSignaturesForAddress:
const signatures = await rpc.getSignaturesForAddress(walletAddress, { limit: 10 }).send();
Для комплексного моніторингу платежів дивіться розділ Прийом платежів, який охоплює вебхуки та виявлення транзакцій у реальному часі.
Дослідження публічних даних
Публічний реєстр Solana означає, що кожна транзакція, токен-акаунт і mint є повністю доступними для аудиту. Блок-експлорери дозволяють вручну перевіряти платежі, переглядати акаунти та виправляти помилки без написання коду.
Що ви можете знайти:
- Перевірити, чи платіж виконано
- Переглянути баланси токен-акаунтів
- Виправити невдалі транзакції
- Знайти деталі mint (емісія, десяткові знаки, повноваження)
Популярні експлорери: Solana Explorer, SolanaFM, Solscan, Orb
Приклади посилань:
- USDC Token Mint — Емісія, ринки, власники та транзакції для USDC
- USDC Token Transfer — Деталі транзакції платежу USDC
- USDG Token Account — Баланс USDG користувача та історія транзакцій
Is this page helpful?