Development of multi-currency light wallets, wallets for Dapps, as well as exchange services, market analytics tools. Web, desktop, mobile applications.
Swapzone is an aggregator of cryptocurrency exchanges, as well as a platform for exchanging cryptocurrencies at the most favorable rate. The service collects up-to-date information on the selected currency pair and, based on the received data from connected exchanges, shows possible exchange options.
In order for the service to function fully, we identified the following global tasks:
The customer handed us a project that, at first glance, had quite a working functionality. But after conducting a series of tests, we found out that the first judgment was incorrect.
Based on the results of functional checks, we noticed that the result of calculating the exchange rate of a currencies pair on the first page for some exchangers differs from the rate shown by the exchanges on their sites.
Initially, we thought it was a bug in the code. But after a deeper analysis, we found out that the problem was in the logic of rate calculating.
The difficulty was that after choosing the currencies the user sees the exchange rate of one currency relative to another in the form 1 ХХХ = ... ХХХ. However, only part of the currencies has 1 as the amount that would fall between the minimum and maximum amount available for exchange. For some cryptocurrencies, the minimum amount for the exchange is measured from 100, or even from 1000.
In addition, the exchanges set the available limits of the minimum and maximum amount carried out using their API. And there are those exchanges with a minimum / maximum quantity for exchange set to more than 1. Therefore, we cannot request the exchange rate of one currency to 1 of another currency directly from the exchanger.
In order to solve both problems, we thought out a new logic for calculating the rates, which allowed us to calculate the rate of the selected pair regardless of the number and limits.
Initially, by using the panel it was possible to manage the parameters of coins and tokens, view transactions created through the service and add new users.
At the analytics stage, our team and the customer came to the conclusion that it was necessary to add a new section “Exchanges”, in which it would be possible to enable/disable the display of exchanges at the client interface. As a result, this functionality has been expanded for the new service design.
Also, we slightly changed the layout of the admin panel interface, replacing it with a more modern design, and added a display of notifications.
Integration of exchangers occurs through the connection of their adapters.
Due to such features, the process of integration of each new exchange becomes more complicated, and the time for integration itself increases.
To solve this problem, we tried to unify existing adapters as much as possible and took into consideration the future exchange integrations. Thanks to unification, we were able to minimize the amount of time required to integrate the exchange.
Thus, if the exchange wants to become a partner of the service, he will need to send the Swapzone team a file with a filled adapter, which will be connected to the service backend in a short time.
After 2.5 months of work, we completed the following tasks: