getTokenAccountsByOwner RPC Method
Возвращает все учетные записи SPL Token владельцем токена.
Параметры #
string
required
Pubkey для запроса в виде строки-58 в кодировке
object
optional
Объект JSON с одним из следующих полей:
mint: <string>
- Pubkey конкретного мятежа для ограничения аккаунтов, как строка с базой 58; илиprogramId: <string>
- Pubkey программы Token владельца аккаунтов, как строка в кодировке base-58
object
optional
Объект конфигурации, содержащий следующие поля:
commitment string
optional
minContextSlot number
optional
Минимальный слот, который запрос может быть рассмотрен на
dataSlice object
optional
Запрашивает фрагмент данных аккаунта'.
length: <usize>
- количество байт для возвратаoffset: <usize>
- смещение байт, от которого начнёт читать
Нарезка данных доступна только для кодировок base58, base64 или base64+zstd.
encoding string
optional
Формат кодировки для данных клиента
Values: base58
base64
base64+zstd
jsonParsed
base58
медленный и ограничен 129 байтами данных учетной записи.base64
вернёт данные из base64 для данных аккаунта любого размера.base64+zstd
сжимает данные учетной записи, используя Zstandard и base64-encode результат.- Кодировка jsonParsed пытается использовать парсеры инструкций, специфичных для программы, чтобы вернуть более человекочитаемые и явные данные в списке .
- If
jsonParsed
is requested but a parser cannot be found, the field falls back tobase64
encoding, detectable when thedata
field is typestring
.
Результат #
Результатом будет объект RpcResponse JSON с параметром value
равен массиву
JSON, который будет содержать:
pubkey: <string>
- строка в кодировке аккаунта Pubkey как base-58account: <object>
- объект JSON, со следующими подполями:- lamports: <u64> - количество lamports, приписанных к этому аккаунту, в формате u64
владелец: <string>
- базовый кодированный Pubkey программы этой учетной записи был назначенdata: <object>
- Token state data associated with the account, either as encoded binary data or in JSON format{<program>: <state>}
- Исполняемый: <bool> - булево число, указывающее, содержит ли аккаунт программу (и предназначено только для чтения)
rentEpoch: <u64>
- эпоха, в которой эта учетная запись будет сдавать в аренду, как u64size: <u64>
- размер данных учетной записи
Когда данные запрашиваются в кодировке jsonParsed, внутри структуры можно ожидать формат, аналогичный структуре Token Balances Structure, как для tokenAmount, так и для delegatedAmount - причем последний является необязательным объектом.
Пример кода #
curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenAccountsByOwner",
"params": [
"4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F",
{
"mint": "3wyAj7Rt1TWVPZVteFJPLa26JmLvdb1CAKEFZm3NY75E"
},
{
"encoding": "jsonParsed"
}
]
}
'
Замечание #
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 1114
},
"value": [
{
"account": {
"data": {
"program": "spl-token",
"parsed": {
"accountType": "account",
"info": {
"tokenAmount": {
"amount": "1",
"decimals": 1,
"uiAmount": 0.1,
"uiAmountString": "0.1"
},
"delegate": "4Nd1mBQtrMJVYVfKf2PJy9NZUZdTAsp7D4xWLs4gDB4T",
"delegatedAmount": {
"amount": "1",
"decimals": 1,
"uiAmount": 0.1,
"uiAmountString": "0.1"
},
"state": "initialized",
"isNative": false,
"mint": "3wyAj7Rt1TWVPZVteFJPLa26JmLvdb1CAKEFZm3NY75E",
"owner": "4Qkev8aNZcqFNSRhQzwyLMFSsi94jHqE8WNVTJzTP99F"
},
"type": "account"
},
"space": 165
},
"executable": false,
"lamports": 1726080,
"owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"rentEpoch": 4,
"space": 165
},
"pubkey": "C2gJg6tKpQs41PRS1nC8aw3ZKNZK3HQQZGVrDFDup5nx"
}
]
},
"id": 1
}