Blockchain

Development of multi-currency light wallets, wallets for Dapps, as well as exchange services, market analytics tools. Web, desktop, mobile applications.

show more
show more
case 20

Development of cryptocurrency exchanges aggregator Swapzone

Time
release
2.5 months
LAUNCH
2020
Technologies
DESKTOP
React.js, Redux.js,
SSR, Node.js, Koa.js

About the project

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.

Evercode Lab
Evercode Lab
Evercode Lab

Tasks

In order for the service to function fully, we identified the following global tasks:

  • Configuring the client interface logic
  • Adding new functionality to the admin panel and configuring management service
  • Integrating new exchanges

Solution

Configuring the client interface logic

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.

Improving the admin panel

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

Integration of exchangers occurs through the connection of their adapters.

An adapter is a JavaScript object that describes a set of methods and their properties. All adapters have methods that are called the same way, take the same input parameters and give the same data in the structure. But inside these methods, each adapter has a different implementation, which is needed to work with the corresponding exchanger.

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.

In addition, we wrote an instruction in which we indicated how to make a JavaScript object, indicated methods and their names, and also specified what they accept and return.

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.

Results

After 2.5 months of work, we completed the following tasks:

  • set up the logic for calculating the exchange rate taking into account the features of both cryptocurrencies and exchanges
  • added a new section “Exchanges” to the admin panel, which increased the level of control over the service without the need to write additional code
  • unified the process of integrating new exchanges
  • wrote a generally accessible instruction for exchanges who want to become service partners
  • integrated 7 new exchanges and updated the settings of already integrated
Tell us about your ideas and we will offer the best solution!
Contact us
Other Cases