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

Запрашивает фрагмент данных аккаунта&apos;.

  • length: <usize> - количество байт для возврата
  • offset: <usize> - смещение байт, от которого начнёт читать
Info

Нарезка данных доступна только для кодировок base58, base64 или base64+zstd.

encoding string optional

Формат кодировки для данных клиента

Values: base58base64base64+zstdjsonParsed

  • base58 медленный и ограничен 129 байтами данных учетной записи.
  • base64 вернёт данные из base64 для данных аккаунта любого размера.
  • base64+zstd сжимает данные учетной записи, используя Zstandard и base64-encode результат.
  • Кодировка jsonParsed пытается использовать парсеры инструкций, специфичных для программы, чтобы вернуть более человекочитаемые и явные данные в списке .
  • If jsonParsed is requested but a parser cannot be found, the field falls back to base64 encoding, detectable when the data field is type string.

Результат #

Результатом будет объект RpcResponse JSON с параметром value равен массиву JSON, который будет содержать:

  • pubkey: <string> - строка в кодировке аккаунта Pubkey как base-58
  • account: <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> - эпоха, в которой эта учетная запись будет сдавать в аренду, как u64
    • size: <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
}