• Руководство пользователя
    • Заметки о безопасности
      Заметки о безопасности
    • Online/Desktop приложения
      • Управление аккаунтом
        • Создать аккаунт
          Создать аккаунт
        • Войти в аккаунт
          Войти в аккаунт
        • Создать Резервную Копию Seed-фразы
          Создать Резервную Копию Seed-фразы
        • Восстановить аккаунт
          Восстановить аккаунт
        • Узнать свой адрес
          Узнать свой адрес
        • Создать персональный алиас
          Создать персональный алиас
        • Импорт из Keeper Wallet
          Импорт из Keeper Wallet
        • Использовать устройства Legder Nano
          Использовать устройства Legder Nano
        Управление аккаунтом
      • Управление токенами
        • Ввод и вывод токенов
          • Транзакции
            Транзакции
          Ввод и вывод токенов
        • Купить токены с помощью банковской карты
          • Как работать с платежной системой Advanced Cash
            Как работать с платежной системой Advanced Cash
          Купить токены с помощью банковской карты
        • Создать токен
          Создать токен
        • Массовая отправка
          Массовая отправка
        • Перевыпустить токен
          Перевыпустить токен
        • Поменять перевыпускаемый на не перевыпускаемый
          Поменять перевыпускаемый на не перевыпускаемый
        • Сжечь токен
          Сжечь токен
        • Спонсорская транзакция
          Спонсорская транзакция
        • Спонсорская комиссия
          Спонсорская комиссия
        • Услуга OTC
          Услуга OTC
        • Своп DeFo
          Своп DeFo
        • Своп WAVES/XTN
          Своп WAVES/XTN
        • Своп токенов
          Своп токенов
        Управление токенами
      • Инвестиционные инструменты
        • Передать в стейкинг
          • Как получить XTN (Quick Guide)
            Как получить XTN (Quick Guide)
          • Как получить USDT/USDC/BTC/ETH (Quick Guide)
            Как получить USDT/USDC/BTC/ETH (Quick Guide)
          Передать в стейкинг
        • Lambo инвестиции
          Lambo инвестиции
        • Алгоритмическая торговля
          Алгоритмическая торговля
        • Управление Neutrino
          Управление Neutrino
        • Neutrino пулы
          Neutrino пулы
        Инвестиционные инструменты
      • Пулы ликвидности
        • Как максимально увеличить пассивный доход от пулов ликвидности?
          Как максимально увеличить пассивный доход от пулов ликвидности?
        • Как внести/вывести токены в/из пул(а) ликвидности?
          Как внести/вывести токены в/из пул(а) ликвидности?
        • Как сдать в стейкинг/забрать из стейкинга LP-токены?
          Как сдать в стейкинг/забрать из стейкинга LP-токены?
        • Как забрать вознаграждение в WX-токене за стейкинг LP-токена?
          Как забрать вознаграждение в WX-токене за стейкинг LP-токена?
        • Как сдать WX-токен в стейкинг, чтобы увеличить доход за стейкинг LP-токена?
          Как сдать WX-токен в стейкинг, чтобы увеличить доход за стейкинг LP-токена?
        • Как забрать вознаграждения за WX стейкинг?
          Как забрать вознаграждения за WX стейкинг?
        • Протокол WX-токена
          Протокол WX-токена
        Пулы ликвидности
      • Голосование
        Голосование
      • Расширенные возможности
        • Script транзакции
          Script транзакции
        • JSON подтверждение
          JSON подтверждение
        Расширенные возможности
      • Торговля на бирже
        Торговля на бирже
      Online/Desktop приложения
    • Мобильные приложения
      • Приложение WX Network
        Приложение WX Network
      • Приложение Waves.Exchange
        • Управление аккаунтом
          • Создать аккаунт
            Создать аккаунт
          • Войти в аккаунт
            Войти в аккаунт
          • Восстановить аккаунт
            Восстановить аккаунт
          • Узнать свой адрес
            Узнать свой адрес
          • Создать персональный алиас
            Создать персональный алиас
          Управление аккаунтом
        • Управление токенами
          • Ввод и вывод токенов
            Ввод и вывод токенов
          • Купить токены с помощью банковской карты
            Купить токены с помощью банковской карты
          • Сжечь токен
            Сжечь токен
          Управление токенами
        • Торговля на бирже
          Торговля на бирже
        Приложение Waves.Exchange
      • Приложение WX Invest
        Приложение WX Invest
      Мобильные приложения
    • Работа с MetaMask в сети Waves
      Работа с MetaMask в сети Waves
    • Реферальная программа WX
      Реферальная программа WX
    Руководство пользователя
  • API и библиотека
    • CCXT
      CCXT
    • Комиссии
      Комиссии
    • API платежей
      API платежей
    • API авторизации
      API авторизации
    • API шлюза
      • Внесение средств
        • [Deprecated] GET /v1/deposit/addresses/{currency}
          [Deprecated] GET /v1/deposit/addresses/{currency}
        • GET /v1/deposit/addresses/{currency}/{platform}
          GET /v1/deposit/addresses/{currency}/{platform}
        • GET /v1/deposit/currencies
          GET /v1/deposit/currencies
        • [Deprecated] GET /v1/deposit/currencies/{currency}
          [Deprecated] GET /v1/deposit/currencies/{currency}
        • GET /v1/deposit/currencies/{currency}/{platform}
          GET /v1/deposit/currencies/{currency}/{platform}
        • Terms of Deposit
          Terms of Deposit
        Внесение средств
      • Вывод средств
        • [Deprecated] GET /v1/withdraw/addresses/{currency}/{address}
          [Deprecated] GET /v1/withdraw/addresses/{currency}/{address}
        • GET /v1/withdraw/addresses/{currency}/{address}/{platform}
          GET /v1/withdraw/addresses/{currency}/{address}/{platform}
        • GET /v1/withdraw/currencies
          GET /v1/withdraw/currencies
        • [Deprecated] GET /v1/withdraw/currencies/{currency}
          [Deprecated] GET /v1/withdraw/currencies/{currency}
        • GET /v1/withdraw/currencies/{currency}/{platform}
          GET /v1/withdraw/currencies/{currency}/{platform}
        • Условия вывода
          Условия вывода
        Вывод средств
      • История операций
        История операций
      • Список платформ
        Список платформ
      • Коды ошибок
        Коды ошибок
      API шлюза
    • Токен доступа
      • Получить токен в интерфейсе
        Получить токен в интерфейсе
      • POST /v1/oauth2/token
        POST /v1/oauth2/token
      Токен доступа
    • Получить список сделок (Get Trades)
      Получить список сделок (Get Trades)
    • Годовая процентная ставка стейкинга (API)
      Годовая процентная ставка стейкинга (API)
    • Матчер
      • Протокол WX Network
        Протокол WX Network
      • Комиссия матчера
        Комиссия матчера
      • Установка матчера на Ubuntu из Deb-пакета
        Установка матчера на Ubuntu из Deb-пакета
      • Настройки матчера
        Настройки матчера
      • API Матчера
        • Правила валидации ордера
          Правила валидации ордера
        • Правила валидации ExchangeTransaction
          Правила валидации ExchangeTransaction
        API Матчера
      • WebSocket API Матчера
        • Ошибки и отладка
          Ошибки и отладка
        • Common Streams
          Common Streams
        WebSocket API Матчера
      Матчер
    API и библиотека
  • Глоссарий
    Глоссарий
      • English
      • Русский
      On this page
        • Валидация настроек матчера
        • Валидация блокчейна
        • Валидация баланса

          # Правила валидации ордера

          Когда матчер получает новый ордер происходит валидация следующих условий.

          # Валидация настроек матчера

          • Ордер отправлен матчеру с правильным публичным ключом - параметр matcherPublicKey.

          • Адрес отправителя ордера не находится в черном списке матчера - параметр blacklistedAddresses.

          • Токен не находится в черном списке матчера.

          • Токен комиссии поддерживается матчером.

          • Заданная комиссия ордера не менее минимальной комиссии матчера. В данный момент комиссия должна быть не менее 0.003 WAVES или другого токена учитывая текущее значение asset rates.

          Проверка суммы и цены:

          • 0 < amount < MaxAmount = 10^18

          • 0 < price

          • 0 < corrected spent amount < Long.MaxValue

            где corrected spent amount:

            Если это buy ордер: = truncate (amount * price / PriceConstant)

            в другом случае: = amount

          • 0 < corrected received amount < Long.MaxValue

            где corrected received amount:

            Если это buy ордер: = amount

            в другом случае: truncate(amount * price / PriceConstant)

          • 0 < fee < Long.MaxValue

          PriceConstant = 10^8

          Проверка времени:

          • 0 < timestamp

          • Срок ордера может истечь через (1 минуту; 30 дней] в зависимости от времени матчера. Значение matcher time синхронизируется через NTP.

            matcher time + 60 * 1000 (60000 ms or 1 minute) < expiration

            30 * 24 * 60 * 60 * 1000 (2592000000 ms or 30 days) <= (expiration - matcher time)

          Проверка tick size:

          • Ордер имеет тип SELL или его цена не должна быть меньше tick size(минимальное ценовое движение пары активов) после коррекции. При наличии тик сайза BUY ордер помещается в уровень c ценой, которая равна ближайшему меньшему кратному tick size числу.

          Проверка по рынку: (по умолчанию выключена):

          • Цена BUY ордера не превышает кратно лучшую цену покупки, цена SELL ордера не кратно ниже лучшей цены продажи.

          • Комиссия ордера должна соответствовать рынку, только для процентного режима работы матчера

          • Комиссия должна быть в пределах отклонений, например, комиссия ордера выше чем заданный процент комиссии, которую заплатит клиент за матчинг с лучшим контр-ордером. Применимо только для процентного режима работы матчера

            Для BUY ордеров: fee >= fs * (1 - fd) * best ask * amount

            Для SELL ордеров: fee >= fs * (1 - fd) * best bid * amount

            где:

            fs = комиссия в процентах, заданных в настройках (order-fee.percent.min-fee)/100

            fd = максимальное отклонение комиссии / 100

            best bid = максимальная цена покупки

            best ask = минимальная цена покупки

          # Валидация блокчейна

          • Версия ордера поддерживается блокчейном (версия 2 требует активации фичи 10 (SmartAccountTrading), версия 3 требует активации фичи 12 (OrderV3)). Матчер WX Network в Mainnet и Testnet поддерживает ордеры версии 1, 2 и 3.

          • Примечание: Матчер WX Network работает в режиме динамической комиссии.

            В динамическом режиме, заданная комиссия должна быть не менее минимальной. Для продавцов и покупателей комиссия может быть разной. В случае оплаты комиссии не в токене WAVES, который поддерживается матчером, комиссия должна быть не меньше минимальной в этом токене. Сумма комиссии рассчитывается динамически на основе значения asset rate (GET /matcher​/settings​/rates API метод) по следующей формуле:

            baseFee + 0.004 * (количество задействованных скриптов, кроме скриптов аккаунтов) * asset rate округленное до минимального количества знаков после запятой у токена. Например, если токен комиссии имеет значение decimals = 2 и комиссия составляет 0.01399, значит матчер возьмет комиссию 0.02 в заданном токене.

          • Для каждого ордера на матчере вычисляется число insignificantDecimals = (price asset decimals - amount asset decimals).max(0). Цена ордера должна быть кратна 10^insignificantDecimals. Т.е. последние insignificantDecimals цифр цены должны быть нулями.

          • Amount и price ордера должны соответствовать требованиям матчера на максимальное/минимальное значение и быть кратны stepAmount/stepPrice соответственно (при наличии таких ограничений на паре). Ограничения могут быть получены по эндпоинту GET /matcher/orderbook/{amountAsset}/{priceAsset}/info, поле restrictions.

          • Скрипт аккаунта владельца ордера (при наличии) должен позволять ставить ордер.

          • Скрипты amount, price и matcher fee токенов (при наличии) должны разрешать их использование в ордере.

          # Валидация баланса

          • amount ордера (включая комиссию ордера) должен быть не больше чем Tradable Balance, где Tradable Balance = (ваш баланс продаваемого токена и токена комиссии в блокчейне) - (all the spendings+the reserved amount)

            где:

            all the spendings подразумевает все исходящие лизинги и все траты в UTX, включая комиссии. Например, если вы переводите 10 WAVES с вашего адреса на другой и платите комиссию 1 XTN, тогда ваши траты составляют 10 WAVES + 1 XTN.

            the reserved amount подразумевает сумму токенов зарезервированных в незавершенных ордерах, включая комиссию. Например, если вы продаете 5 WAVES за 4 XTN в паре WAVES/XTN с комиссией 0.001 BTC fee, тогда ваш зарезервированный баланс составляет 20 WAVES + 0.001 BTC.

            В данном случае, общая сумма all the spendings+the reserved amount составляет 30 WAVES, 1 XTN и 0.001 BTC.

          API Матчера
          Правила валидации ExchangeTransaction
          API Матчера
          Правила валидации ExchangeTransaction