Возвращает всю информацию, связанную с аккаунтом предоставленного публичного ключа.
Параметры
Публичный ключ аккаунта для запроса (строка, закодированная в base-58)
Объект конфигурации, содержащий следующие необязательные поля:
Уровень commitment для запроса к сети:
processed: Последний блок (неподтверждённый)
confirmed: Подтверждён супербольшинством
finalized: Финализирован супербольшинством
encoding
string
по умолчанию:"base64"
Формат кодирования данных аккаунта:
base58
base64
base64+zstd
jsonParsed (ограничено определёнными типами аккаунтов)
Запросить срез данных аккаунта:
offset: number - Начальная позиция (в байтах)
length: number - Количество байт для возврата
Минимальный слот, при котором может быть выполнен запрос
Ответ
Если запрашиваемый аккаунт не существует, возвращает null. В противном случае возвращает объект, содержащий:
Слот, при котором был обработан запрос
Количество lamports, назначенных аккаунту
Публичный ключ программы-владельца этого аккаунта, закодированный в base-58
Содержит ли этот аккаунт программу
Epoch, при котором этот аккаунт должен будет в следующий раз заплатить аренду
data
[string, string] | object
Данные аккаунта. Формат зависит от параметра encoding:
- Кортеж
[string, encoding] при кодировании в base58/base64
- Разобранный JSON-объект при encoding “jsonParsed”
Пространство, используемое данными аккаунта
Примеры кода
Базовый запрос
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getAccountInfo",
"params": [
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
{
"encoding": "base58"
}
]
}'
Ответ
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 430
},
"value": {
"data": ["", "base58"],
"executable": false,
"lamports": 5000000000,
"owner": "11111111111111111111111111111111",
"rentEpoch": 18446744073709551615,
"space": 0
}
},
"id": 1
}
Запрос со срезом данных
curl https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY -X POST -H "Content-Type: application/json" -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getAccountInfo",
"params": [
"vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg",
{
"encoding": "base64",
"dataSlice": {
"offset": 0,
"length": 64
}
}
]
}'
Использование web3.js
import { Connection, PublicKey } from '@solana/web3.js';
const connection = new Connection('https://fra.rpc.orbitflare.com?api_key=YOUR-API-KEY');
const publicKey = new PublicKey('vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg');
const accountInfo = await connection.getAccountInfo(
publicKey,
'confirmed'
);
Примечания
-
Кодирование
jsonParsed доступно только для определённых типов аккаунтов:
- Стейк-аккаунт
- Токен-аккаунт
- Минт токена
- Метаданные токена
-
При использовании
dataSlice поле данных будет ограничено только запрошенным срезом.
-
Данные аккаунта могут быть закодированы по-разному в зависимости от программы, которой принадлежит аккаунт.
Распространённые ошибки
| Код | Сообщение | Решение |
|---|
| -32602 | Invalid param: WrongSize | Убедитесь, что публичный ключ действителен |
| -32602 | Invalid param: not base58 encoded string | Убедитесь, что публичный ключ закодирован в base58 |
| -32007 | Account not found | Запрашиваемый аккаунт не существует |