Skip to main content
Метод RPC getSignaturesForAddress позволяет получить список подтвержденных подписей транзакций, связанных с определенным адресом аккаунта. Это полезно для получения истории транзакций аккаунта. Подписи возвращаются в обратном хронологическом порядке, начиная с самых новых.
Для расширенной фильтрации, сортировки и получения истории токен-аккаунтов используйте вместо этого getTransactionsForAddress. Учтите, что getSignaturesForAddress не включает транзакции, связанные с ассоциированными токен-аккаунтами.

Распространенные сценарии использования

  • История транзакций аккаунта: Отображение предыдущих транзакций кошелька пользователя. Для более продвинутого разбора истории транзакций используйте Enhanced Transactions API от Helius.
  • Аудит активности: Просмотр всех транзакций, связанных с определенным смарт-контрактом или аккаунтом.
  • Поиск конкретной транзакции: Поиск определенной транзакции путем последовательного просмотра истории аккаунта, если известен только связанный с ней адрес.
  • Индексирование данных: Создание локального индекса транзакций для ускорения запросов и анализа.

Параметры запроса

  1. address (string): (Обязательный) Публичный ключ аккаунта в кодировке base-58, для которого необходимо получить подписи транзакций.
  2. options (object, необязательный): Необязательный объект конфигурации со следующими полями:
    • limit (number, необязательный): Максимальное количество возвращаемых подписей. Значение по умолчанию — 1000, максимально допустимое значение — 1000.
    • before (string, необязательный): Подпись транзакции в кодировке base-58. Если она указана, запрос начнет поиск транзакций, предшествующих этой подписи.
    • until (string, необязательный): Подпись транзакции в кодировке base-58. Если она указана, запрос будет искать транзакции до достижения этой подписи, не включая ее.
    • commitment (string, необязательный): Указывает уровень подтверждения, используемый для запроса. Поддерживаются значения finalized и confirmed. Уровень подтверждения processed не поддерживается. Если параметр не указан, используется уровень подтверждения RPC-узла по умолчанию — обычно finalized.
    • minContextSlot (number, необязательный): Минимальный слот, в контексте которого можно обработать запрос. Этот параметр не фильтрует исторические транзакции, а задает минимальный слот для контекста узла.
Пакетная обработка не поддерживаетсяЭтот архивный метод не поддерживает пакетную обработку. Отправляйте только отдельные запросы.

Структура ответа

Поле result ответа JSON-RPC представляет собой массив объектов с информацией о подписях. Каждый объект имеет следующую структуру:
  • signature (string): Подпись транзакции в кодировке base-58.
  • slot (u64): Слот, в котором была обработана транзакция.
  • err (object | null): Объект ошибки, если транзакция завершилась неудачно, или null, если она выполнена успешно.
  • memo (string | null): Заметка, связанная с транзакцией, если она есть.
  • blockTime (i64 | null): Расчетное время создания блока, содержащего транзакцию, в виде временной метки Unix (количество секунд с начала эпохи). null, если значение недоступно.
  • confirmationStatus (string | null): Статус подтверждения транзакции (например, processed, confirmed, finalized). null, если значение недоступно (например, в более старых ответах Helius).

Примеры

1. Получение последних подписей для адреса

В этом примере для заданного адреса запрашиваются подписи последних транзакций — до 1000 подписей.

2. Получение подписей с ограничением количества

В этом примере для адреса запрашивается указанное количество подписей последних транзакций.

3. Постраничное получение истории транзакций

В этом примере показано, как получать историю транзакций пакетами с помощью параметра before.

Рекомендации для разработчиков

  • Пагинация: Чтобы получить полную историю транзакций активного аккаунта, вероятно, потребуется выполнить несколько запросов. Передавайте в параметре before последнюю подпись, полученную в предыдущем пакете, и укажите limit.
  • Ограничения частоты запросов: При получении обширной истории транзакций учитывайте ограничения частоты запросов RPC-узла.
  • Порядок: Подписи всегда возвращаются от самых новых к самым старым.
  • Параметр limit: Значение параметра limit может находиться в диапазоне от 1 до 1000. Если параметр не указан, по умолчанию используется значение 1000.
  • Параметр until: Этот параметр позволяет прекратить получение подписей при достижении известной более старой подписи. Это может быть полезно, если вам нужны только транзакции до определенного момента.
  • minContextSlot: Этот параметр не фильтрует исторические транзакции. Он задает минимальный слот, который RPC-узел должен использовать для своего контекста при обработке запроса. Если состояние узла старше этого слота, узел может вернуть ошибку.
  • Сведения о транзакции: Этот метод возвращает только подписи и основную информацию. Чтобы получить полные сведения о транзакции, используйте метод getTransaction для каждой подписи.
  • Ограничение для токен-аккаунтов: Этот метод возвращает только транзакции, которые напрямую ссылаются на указанный адрес. Он не включает транзакции с токен-аккаунтами, принадлежащими этому адресу. Чтобы получить полную историю токенов, включая ассоциированные токен-аккаунты, используйте getTransactionsForAddress с фильтром tokenAccounts.
Используя getSignaturesForAddress с параметрами пагинации, вы можете эффективно получать историю транзакций для любого адреса Solana и управлять ею.

Связанные методы

getTransactionsForAddress

Расширенная фильтрация, сортировка и история токен-аккаунтов

getTransaction

Получение полных сведений о транзакции по подписи