in java/connectors/uniswap/src/main/java/com/epam/deltix/data/connectors/uniswap/UniswapFeed.java [43:159]
public void start() {
super.start();
// 1. resolve uniswap token ids
IdentifiedUniswapSymbol[] identifiedUniswapSymbols;
if (symbols == null || symbols.length == 0) {
identifiedUniswapSymbols = new IdentifiedUniswapSymbol[]{};
} else {
try {
identifiedUniswapSymbols = getIdentifiedUniswapSymbols();
} catch (final Throwable t) {
onError(t);
return; // cannot continue without ids.
// The error event sent to be resolved (process to be re-scheduled)
}
}
// 2. prepare and run pollers
final MdModel.Options selected = selected();
final List<Subscription> subscriptions = new ArrayList<>();
if (selected.custom(FactoryAction.class)) {
subscriptions.add(new FactorySubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.custom(BundleAction.class)) {
subscriptions.add(new BundleSubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.custom(PoolAction.class)) {
subscriptions.add(new PoolSubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.custom(TokenAction.class)) {
subscriptions.add(new TokenSubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.custom(PositionAction.class)) {
subscriptions.add(new PositionSubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.custom(TickAction.class)) {
subscriptions.add(new TickSubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.custom(SwapAction.class)) {
subscriptions.add(new SwapSubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.custom(MintAction.class)) {
subscriptions.add(new MintSubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.custom(BurnAction.class)) {
subscriptions.add(new BurnSubscription(
uri,
this,
logger(),
identifiedUniswapSymbols
));
}
if (selected.level2()) {
subscriptions.add(new PriceSubscription(
uniswapApiUrl,
this,
logger(),
selected,
amount,
depth,
identifiedUniswapSymbols
));
}
for (final Subscription subscription : subscriptions) {
for (final HttpPoller poller : subscription.get()) {
schedule(poller, pollTimeoutMillis);
}
}
}