-
Notifications
You must be signed in to change notification settings - Fork 0
Exchange work flow
-
Вход на экран(можно зайти ТОЛЬКО из кошелька, выбранная цепочка - цепочка кошелька)
Отправляем запросgetExchangePairs
-
Экран выбора блокчейна для обмена(на что менять)
На экране отображаются доступные для обмена цепочки, полученные из ответаgetExchangePairs
. -
После выбора цепочки, НА которую хотим поменять Проверяем есть ли у пользователя кошелек с цепочкой, НА которую хотим менять
Если есть: открываем экран со всеми подходящими кошельками переходим назад, после выбора переходим на первый экран Exchange.
На экране должна быть кнопка 'Create new', по клику автоматически создаём кошелёк с предустановленным именем '%имя цепочки на которую хотим менять% from Exchange'.
Если кошелька нет: показываем алерт о том что кошелек будет создан автоматически (создаем кошелек с именем '%имя цепочки на которую хотим менять% from Exchange'), переходим назад, на первый экран Exhcange.
-
По действию Slide to exchange, отправляем api запрос sendTransaction с пометкой, что это exchange.
-
Показываем Complete экран
Запрос getExchangePairs
: в него передаем выбранный кошелек. В ответе ожидается список доступных для обмена цепочек.
Запрос sendTransaction
- будет дополнено
Для каждой введенной суммы мы должны проверять, есть ли на бирже запрос на точно такую же сумму. Поэтому после ввода символа отправляем api запрос на введенную сумму с задержкой в 1 секунду. Каждый введенный символ должен отменять предыдущий запрос.
При изменении суммы в одной из секций (You are sending либо You will receive), меняем альтернативную сумму (фиат либо крипто согласно currencies rate, обратная зависимость). Далее идёт запрос на новую сумму и подставляется во вторую секцию.
Нужно предусмотреть два случая:
-
Выбрали количество валюты с нашего кошелька (сколько хотим продать-поменять):
- автоматически поменяли fiat секции You are sending (нужна обратная зависимость, если вводим fiat)
- отправили запрос, что хотим отправить N валюты и подставили значение в секцию You will receive
-
Выбрали количество валюты которые получим (сколько хотим получить-поменять):
- автоматически поменяли fiat секции You will receive (нужна обратная зависимость если вводим fiat)
- отправили запрос, что хотим получить K валюты и подставили значение, сколько N валюты мы должны отправить в секции You are sending.
Ограничение на ввод символов:
- общее количество значимых символов(не учитывать" $,.") не может превышать 12. Если ок, проверяем количество символов после запятой, для фитаных TF - 2, для крипты - 8.
- после ввода только точки, подставляем 0. (в случае если не было ничего введено)
- ограничить ввод дублированных точек и запятых
- не терять знак фиатных денег в соотв. TF
При редактировании любого из textField(TF), значения должны менять во всех.
Для реализации этой фичи лучше будет сделать свитч по вводимым символам.
-
При вводе backspace/удалить:
Необходимо проверить что осталось в tf - если осталось "0," или "0." я удаляю из tf все.
Так же tf которые отвечают за фиатные значения всегда содержат "$ ", соответсвенно для фиатных tf
я проверяю на "$ 0," или "$ 0." и удаляю все кроме "$ ". -
При вводе точки/запятой ",."
Сначала проверяем на содержание в tf "," или "."(если уже есть - не подставлять), а затем проверяю на пустоту(для фиатных "$ "), если пусто ставлю "0."(для фиатных "$ 0."). -
При вводе любой цифры:
Проверяем общее количество значимых символов(не учитывать" $,.") не может превышать 12. Если ок, проверяем количество символов после запятой, для фитаных TF - 2, для крипты - 8.
Это все основные проверки.
При изменении значения в send crypto tf изменяется значение send fiat tf(по курсу), и соответсвенно нужно реализовать обратную зависимость.
Для того чтобы пересчитывать крос зависимость(eth->btc, btc->eth например) нужны реальные данные, т.к курс обмена будет присылать changelly.