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

Запрашивает фрагмент данных аккаунта&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": [
      "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"
      }
    ]
  }
}