The Exchange Rate Path Problem
In order to provide customers a product that lets them spend cryptocurrencies to buy goods from merchants who only accept fiat currency, we need to solve two problems:
- Determine a sequence of trades and transfers across exchanges to convert the cryptocurrency to fiat currency with a suitable exchange rate.
- Provide the best possible exchange rate to customers.
The idea is based on the challenge I received once as a part of an interview.
The implementation consist from three main parts and a gel connecting them together.
2.) Floyd-Warshall algorithm
A generic solution for Floyd-Warshall algorithm supporting customization is provided by my own crate
Floyd Warshall algorithm (floyd-warshall-alg). Available customization is described there.
3.) IO - reading Request, processing it and writing Response
Reading and parsing input from stdin to
Request instance holding instances of
Processing: Constructing a graph, running a customized version of Floyd-Warshall algorithm and forming a Response.
Writing the Response holding instances of
BestRatePath struct to stdout.