getSignaturesForAddress позволяет получить список подтвержденных подписей транзакций, связанных с определенным адресом аккаунта. Это полезно для получения истории транзакций аккаунта. Подписи возвращаются в обратном хронологическом порядке, начиная с самых новых.
Распространенные сценарии использования
- История транзакций аккаунта: Отображение предыдущих транзакций кошелька пользователя. Для более продвинутого разбора истории транзакций используйте Enhanced Transactions API от Helius.
- Аудит активности: Просмотр всех транзакций, связанных с определенным смарт-контрактом или аккаунтом.
- Поиск конкретной транзакции: Поиск определенной транзакции путем последовательного просмотра истории аккаунта, если известен только связанный с ней адрес.
- Индексирование данных: Создание локального индекса транзакций для ускорения запросов и анализа.
Параметры запроса
address(string): (Обязательный) Публичный ключ аккаунта в кодировке base-58, для которого необходимо получить подписи транзакций.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
Получение полных сведений о транзакции по подписи