РуководстваОбновлено: 8 июл. 2026 г.

Как читать SupraScan для ElyxS

Где на странице транзакции SupraScan искать статус, функцию, Payload, Output, события и поля для проверки покупки, победителя, отмены, возврата и получения приза.

Проверка

Как самостоятельно проверить результат и след в блокчейне.

Начните с правильной транзакции

Если ElyxS показывает хеш транзакции или ссылку на SupraScan, начните с неё. История розыгрыша, проверка результата и записи в истории профиля открывают связанную транзакцию.

Для получения приза или возврата после подтверждения кошелька также можно взять хеш из истории кошелька.

Если у вас уже есть хеш транзакции, вставьте его в поиск SupraScan. Если ищете вручную, используйте раздел Blockchain -> Transactions, затем откройте нужную транзакцию.

Перед проверкой сравните сеть в SupraScan с сетью ElyxS и кошелька. Если в SupraScan выбрана сеть Testnet, страница показывает предупреждение: сеть хранит только недавние данные за ограниченный период. Хеши важных транзакций лучше сохранять сразу.

Основные блоки на странице

В Basic Information находятся быстрые проверки:

  • Status: успешная транзакция отображается как Success.
  • Sender: кошелёк, который подписал транзакцию.
  • Recipient: адрес контракта или получателя транзакции.
  • Transaction Hash: хеш, который нужно сравнить со ссылкой из ElyxS или передать в поддержку.
  • Function: вызванная Move-функция, например cancellation::cancel_draw, cancellation::claim_refund или payout_processor::claim_payout.
  • Time (Local): локальное время транзакции.

В Advanced Information открываются технические детали:

  • VM Status: для успешного исполнения должен показывать Executed successfully.
  • Payload {...}: данные вызова, если SupraScan их декодирует.
  • Output {...}: основной блок для проверки событий. Внутри него откройте Move -> events[].

Во вкладке Events проверяйте список событий, если эта вкладка есть для транзакции.

Где искать поля

  1. Откройте транзакцию в SupraScan.
  2. Перейдите в Advanced Information.
  3. Раскройте Output {...}.
  4. Раскройте Move -> events[].
  5. В каждом событии смотрите строку type и объект data.
  6. Ищите точное имя события через поиск страницы, например WinnerRecordedEvent или RefundClaimPaidEvent.

type показывает имя события. data содержит поля события: draw_id, winner, amount, request_id, reason_code и другие значения, которые нужно сверять с ElyxS.

Что проверять по сценарию

Что проверяетеЧто искатьПоля в data
Покупка билетовFunction = sales::buy_tickets_paid; TicketPurchaseBatchEventdraw_id, buyer, start_ticket_id, ticket_count, ticket_price_amount
Одиночная запись билетаTicketPurchasedEventdraw_id, ticket_id, buyer, ticket_price_amount
VRF-запросRandomnessRequestedEventrequest_id, draw_id, round_id, total_tickets_at_request, round_snapshot_hash, request_payload_bcs, request_payload_hash, vrf_client_seed
Ответ VRFRandomnessFulfilledEventrequest_id, draw_id, randomness
Итог обычного розыгрышаDrawFulfilledEventdraw_id, request_id, winners, ticket_indices, random_bytes, prize_amount, payload
Запись победителяWinnerRecordedEventpayout_id, draw_id, winner, ticket_index, amount, randomness_hash, payload_hash
Итог джекпотаJackpotFulfilledEventdraw_id, request_id, winner, ticket_index, prize_amount, random_bytes, payload
Отмена розыгрышаFunction = cancellation::cancel_draw; DrawCanceledEventdraw_id, reason_code, canceled_ts, previous_status, tickets_sold, proceeds_accum, jackpot_locked, pending_tickets_cleared
Возврат по игрокуDrawRefundEventdraw_id, player, ticket_count, refund_amount, refund_ts
Подготовленная заявка на возвратRefundClaimPreparedEventdraw_id, recipient, ticket_count, amount, prepared_ts
Выплаченный возвратFunction = cancellation::claim_refund; RefundClaimPaidEventdraw_id, recipient, amount, paid_ts
Получение призаFunction = payout_processor::claim_payout; PayoutStatusUpdatedEventpayout_id, draw_id, previous_status, next_status

Для связи VRF-запроса и результата сравните request_id и draw_id в RandomnessRequestedEvent и RandomnessFulfilledEvent. Они должны относиться к одному розыгрышу.

Коды и значения

Для отмены розыгрыша reason_code имеет два пользовательских значения:

  • 1: недостаточное участие к крайнему сроку продаж.
  • 2: достигнут лимит билетов, но не выполнено минимальное требование участия.

Для выплат PayoutStatusUpdatedEvent использует статусы:

  • 1: ожидает выплаты (pending).
  • 2: выплачено (paid).
  • 3: возвращено (refunded).
  • 4: истекло (expired).
  • 5: без денежной выплаты (non-monetary).
  • 6: аннулировано (voided).

Поля amount, prize_amount, refund_amount и ticket_price_amount в событиях записаны как числа без пользовательского форматирования. ElyxS показывает пользователю уже отформатированное значение.

В проверках джекпота ticket_index - это индекс взвешенной позиции билета, начиная с нуля, а не порядковый номер участника в интерфейсе.

Если событие не находится

Сначала проверьте сеть, хеш транзакции и draw_id. Затем убедитесь, что раскрыт именно Output -> Move -> events[] или открыта вкладка Events.

Если нужного события нет, не заменяйте его другой транзакцией с похожим draw_id. Вернитесь в ElyxS и откройте ссылку проверки заново.

Для обращения в поддержку приложите адрес кошелька, идентификатор розыгрыша, хеш транзакции, скриншот SupraScan и название поля или события, которое не совпадает.

Что открыть дальше

Нужна помощь с этим сценарием?

Если шаги не сработали как ожидалось, соберите базовый контекст перед обращением в поддержку.

  1. Проверьте, что используется нужный кошелёк и правильная сеть.
  2. Сохраните хеш транзакции, код ошибки или скриншот проблемного шага.
  3. Если сценарий всё ещё не проходит, отправьте обращение в поддержку с основными деталями.
Связаться с поддержкой

Полезные материалы

Рядом есть FAQ, глоссарий и справочник ошибок, если нужно быстро расшифровать термин, ошибку или соседний сценарий.

Открыть FAQ