No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

TestCommand.php 1.7 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Command;
  4. use App\Arbitration\Inner\Stuff\ArbitrationMarketChainsFinder;
  5. use App\Exchanges\ExchangeProvider;
  6. use App\Exchanges\Kuna\KunaExchange;
  7. use App\Exchanges\MarketInterface;
  8. use App\Infrastructure\Arbitration\Inner\ChainProvider;
  9. use Symfony\Component\Console\Command\Command;
  10. use Symfony\Component\Console\Input\InputInterface;
  11. use Symfony\Component\Console\Output\OutputInterface;
  12. class TestCommand extends Command
  13. {
  14. protected static $defaultName = 'test:test';
  15. private ExchangeProvider $exchangeProvider;
  16. private ChainProvider $chainProvider;
  17. public function __construct(
  18. ExchangeProvider $exchangeProvider,
  19. ChainProvider $chainProvider
  20. )
  21. {
  22. parent::__construct(self::$defaultName);
  23. $this->exchangeProvider = $exchangeProvider;
  24. $this->chainProvider = $chainProvider;
  25. }
  26. public function execute(InputInterface $input, OutputInterface $output)
  27. {
  28. $finder = new ArbitrationMarketChainsFinder();
  29. $exchange = $this->exchangeProvider->getExchanges()[0];
  30. // $chains = $finder->findChainsInExchange($exchange, 3);
  31. //
  32. // foreach ($chains as $chain) {
  33. // $this->chainProvider->addChain($exchange, $chain);
  34. // }
  35. $fetchedChains = $this->chainProvider->getChainsForExchange($exchange);
  36. foreach ($fetchedChains as $chain) {
  37. echo implode(' -> ', array_map(
  38. function (MarketInterface $market) {
  39. return $market->getPair()->getBase() . '/' . $market->getPair()->getQuote();
  40. },
  41. $chain->getMarkets()
  42. )) . PHP_EOL;
  43. }
  44. return 0;
  45. }
  46. }