tradeComparator function

int tradeComparator(
  1. Trade a,
  2. Trade b
)

Implementation

int tradeComparator(Trade a, Trade b) {
  var ioComp = inputOutputComparator(InputOutput(a.inputAmount, a.outputAmount),
      InputOutput(b.inputAmount, b.outputAmount));

  if (ioComp != 0) {
    return ioComp;
  }

  // consider lowest slippage next, since these are less likely to fail
  if (a.priceImpact.lessThan(b.priceImpact)) {
    return -1;
  } else if (a.priceImpact.greaterThan(b.priceImpact)) {
    return 1;
  }

  // finally consider the number of hops since each hop costs gas
  return a.route.path.length - b.route.pairs.length;
}