getTokenAccountsByOwner RPC Method
Возвращает все учетные записи SPL Token владельцем токена.
Параметры #
string
required
Pubkey для запроса в виде строки-58 в кодировке
object
required
A JSON object with either one of the following fields:
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": [
"A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd",
{
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
},
{
"encoding": "jsonParsed"
}
]
}
'
Замечание #
{
"id": 1,
"jsonrpc": "2.0",
"result": {
"context": {
"apiVersion": "2.0.8",
"slot": 329669901
},
"value": [
{
"account": {
"data": {
"parsed": {
"info": {
"isNative": false,
"mint": "BejB75Gmq8btLboHx7yffWcurHVBv5xvKcnY1fBYxnvf",
"owner": "A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd",
"state": "initialized",
"tokenAmount": {
"amount": "10000000000000",
"decimals": 9,
"uiAmount": 10000,
"uiAmountString": "10000"
}
},
"type": "account"
},
"program": "spl-token",
"space": 165
},
"executable": false,
"lamports": 2039280,
"owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"rentEpoch": 18446744073709551615,
"space": 165
},
"pubkey": "5HvuXcy57o41qtGBBJM7dRN9DS6G3jd9KEhHt4eYqJmB"
},
{
"account": {
"data": {
"parsed": {
"info": {
"isNative": false,
"mint": "FSX34rYUJ4zfdD7z4p3L1Fd1pGiiErusaSNTfgKqhep6",
"owner": "A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd",
"state": "initialized",
"tokenAmount": {
"amount": "10000000000000",
"decimals": 9,
"uiAmount": 10000,
"uiAmountString": "10000"
}
},
"type": "account"
},
"program": "spl-token",
"space": 165
},
"executable": false,
"lamports": 2039280,
"owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"rentEpoch": 18446744073709551615,
"space": 165
},
"pubkey": "HvTGvCP4tg2wVdFtqZCTdMPHDXmkYwNAxaTBCHabqh2X"
}
]
}
}