Взаємодія з Solana

Перед створенням платіжних потоків вам потрібно підключитися до 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?

Керується

© 2026 Фонд Solana.
Всі права захищені.
Залишайтеся на зв'язку