Разрабатываем мультивалютные легкие кошельки, кошельки для Dapps, а также сервисы обмена и инструменты анализа рынка. Веб, настольные, мобильные приложения.
Swapzone – агрегатор криптовалютных обменников, а также площадка для обмена криптовалюты по наиболее выгодному курсу. Сервис собирает актуальную информацию по выбранной паре валют и на основе полученных данных от подключенных обменников показывает возможные варианты обмена.
Для того, чтобы сервис полноценно функционировал, нами были выделены следующие глобальные задачи:
Заказчик нам передал проект, который, на первый взгляд, имел вполне работающий функционал. Но после проведения ряда тестирований мы выяснили, что первое суждение было неверным.
По итогу проверок функционала мы заметили, что результат подсчета курса пары валют на первой странице сервиса у некоторых обменников отличается от курса, показываемого самими обменниками на их сайтах.
Первоначально, считали, что это баг в самом коде. Но после более глубокого анализа мы выяснили, что проблема была в логике подсчета курсов.
Сложность состояла в том, что после выбора валют пользователь видит курс одной валюты относительно другой в виде 1 ХХХ= … ХХХ. Однако только лишь у части валют 1 является количеством, которое бы попадало в промежуток между минимальным и максимальным количеством, доступным для обмена. У некоторых криптовалют минимальное количество для обмена отсчитывается от 100, а то и от 1000.
Вдобавок, сами обменники выставляют допустимые границы минимального и максимального количества, проводимого с использованием их API. Есть те, у которых минимальное/максимальное количество для обмена выставлено больше 1. Поэтому мы не можем запросить курс одной валюты к 1 другой валюты напрямую у обменника.
Для того, чтобы решить обе проблемы, мы продумали новую логику подсчета курсов, которая позволила посчитать курс выбранной пары независимо от количества и лимитов.
Первоначально, через панель возможно было управлять параметрами монет и токенов, просматривать созданные через сервис транзакции и добавлять новых пользователей.
На этапе аналитики наша команда и заказчик пришли к выводу, что необходимо добавить новый раздел «Обменники», в котором бы возможно было включать/отключать отображение обменников в интерфейсе клиента. Впоследствие, эта функциональность была расширена для нового дизайна сервиса.
Также слегка изменили верстку интерфейса панели администрирования, заменив на более современный дизайн, и добавили отображение нотификаций.
Интеграция обменников происходит через подключение их адаптеров.
Адаптер – это объект JavaScript, в котором описаны набор методов и их свойств. У всех адаптеров есть методы, которые одинаково называются, принимают одни и те же параметры на вход и отдают одинаковые по структуре данные. Но внутри этих методов у каждого адаптера возможна различная реализация, которая нужна для работы с соответствующим обменником.
Из-за таких особенностей в работе API обменников, усложняется, как процесс интеграции каждого нового обменника, так и увеличивается время на саму интеграцию.
Для решения этой проблемы мы постарались максимально унифицировать уже существующие адаптеры и предусмотрели подключение новых. Благодаря унификации мы смогли минимизировать количество времени, требуемое для интегрирования обменника.
Также написали инструкцию, в которой указали как сделать объект JavaScript, обозначили методы и их названия, а также уточнили, что они принимают и возвращают.
Таким образом, если обменник захочет стать партнером сервиса, ему необходимо будет отправить команде Swapzone файл с заполненным адаптером, который и будет подключен на backend сервиса в короткие сроки.
После 2,5 месяцев работы мы выполнили следующие задачи:
Ваше сообщение было успешно отправлено.
Спасибо!
Mы свяжемся с Вами в ближайшее время!