Skip to content

Купон: несколько ставок одной транзакцией

Купон — это способ поставить сразу на несколько исходов, не подписывая каждую ставку по отдельности. Вы набираете линии тапами по исходам, задаёте суммы и отправляете всё одной транзакцией.

Главное в двух абзацах

Технически купон — это N операций pm_place_bet в одной подписанной транзакции VIZ. Транзакция в цепи атомарна на записи: она либо применяется целиком, либо отклоняется целиком. Значит, если хотя бы одна нога негодная — рынок успел закрыться, не хватило баланса на сумму всех ног, сработала защита от проскальзывания — не пройдёт весь купон. Состояния «половина ставок поставилась» не существует, и разбирать частичный результат не придётся.

При этом купон не экспресс (не парлей). Каждая нога — обычная самостоятельная ставка в пул своего рынка, со своей выплатой. Коэффициенты не перемножаются: выигрыш по одной ноге не зависит от того, зашли остальные или нет. Купон экономит подписи и делает набор ставок одномоментным — но не создаёт связку «все исходы должны сойтись». Настоящая связка с перемножением — отдельный протокольный примитив, и на уровне ставок его сейчас нет.

Как это работает

Сбор. В ленте событий и на странице события (вид «Линии») тап по исходу кладёт ногу в купон: рынок, исход, сумма (по умолчанию 1 Ƶ) и ваша защита от проскальзывания. Повторный тап по тому же исходу обновляет ногу, а не плодит дубли. Купон живёт локально в браузере — до отправки он никак не касается цепи.

Проверка перед отправкой. Купон, собранный вчера, может тащить рынок, ставки на котором уже закрыты. Такую ногу цепь отвергнет — а вместе с ней и всю транзакцию, поэтому клиент проверяет каждую ногу при открытии купона тем же правилом, что и нода (рынок активен и либо бессрочный, либо дедлайн ещё не наступил), помечает мёртвые и не даёт отправить, пока их не уберут. Отдельно проверяется ликвидный баланс на сумму всех ног: пул принимает ставки только свободными VIZ, застейканные доли не считаются.

Отправка. Все ноги подписываются одним ключом (active) и уходят одной транзакцией. Комиссии сети нет — ограничение задаёт энергия аккаунта, и по ней транзакция из N ставок дешевле, чем N отдельных.

Что дальше. После записи каждая нога живёт своей жизнью: своя доля в пуле своего рынка, свой резолв, своя автоматическая выплата. В «Моей активности» они видны как обычные ставки.

Что нужно понимать

  • Всё или ничего — на записи, а не на исходе. Атомарность купона про попадание в блок, а не про угадывание. Одна нога проиграла — остальные всё равно считаются и платят.
  • Выплаты не перемножаются. Это не экспресс. Хотите большего риска — увеличивайте сумму ноги, а не количество ног.
  • Одна мёртвая нога рушит отправку. Закрывшийся рынок, недостаток свободных VIZ на сумму всех ног, сработавшая защита минимума долей — и цепь отклонит купон целиком. Клиент подсвечивает такие ноги заранее.
  • Скрытые ставки в купон не идут. Commit-reveal и батч-режим — отдельные пути со своим окном раскрытия; в купон собираются только обычные («мгновенные») ставки.
  • Купон хранится в браузере. Пока вы его не отправили, это черновик на вашем устройстве: цепь о нём не знает, и на другом устройстве его не будет.

Связки