use of com.github.jnidzwetzki.bitfinex.v2.entity.RawOrderbookConfiguration in project bitfinex-v2-wss-api-java by jnidzwetzki.
the class RawOrderbookHandler method handleChannelData.
@Override
public void handleChannelData(final BitfinexApiBroker bitfinexApiBroker, final BitfinexStreamSymbol channelSymbol, final JSONArray jsonArray) throws APIException {
final RawOrderbookConfiguration configuration = (RawOrderbookConfiguration) channelSymbol;
// Example: [13182,1,-0.1]
try {
// Snapshots contain multiple Orderbook entries, updates only one
if (jsonArray.get(0) instanceof JSONArray) {
for (int pos = 0; pos < jsonArray.length(); pos++) {
final JSONArray parts = jsonArray.getJSONArray(pos);
handleEntry(bitfinexApiBroker, configuration, parts);
}
} else {
handleEntry(bitfinexApiBroker, configuration, jsonArray);
}
} catch (JSONException e) {
throw new APIException(e);
}
}
use of com.github.jnidzwetzki.bitfinex.v2.entity.RawOrderbookConfiguration in project bitfinex-v2-wss-api-java by jnidzwetzki.
the class SubscribedCallback method handleBookCallback.
/**
* Handle the book callback
*
* @param bitfinexApiBroker
* @param jsonObject
* @param channelId
*/
private void handleBookCallback(final BitfinexApiBroker bitfinexApiBroker, final JSONObject jsonObject, final int channelId) {
if ("R0".equals(jsonObject.getString("prec"))) {
final RawOrderbookConfiguration configuration = RawOrderbookConfiguration.fromJSON(jsonObject);
logger.info("Registering raw book {} on channel {}", jsonObject, channelId);
bitfinexApiBroker.addToChannelSymbolMap(channelId, configuration);
} else {
final OrderbookConfiguration configuration = OrderbookConfiguration.fromJSON(jsonObject);
logger.info("Registering book {} on channel {}", jsonObject, channelId);
bitfinexApiBroker.addToChannelSymbolMap(channelId, configuration);
}
}
use of com.github.jnidzwetzki.bitfinex.v2.entity.RawOrderbookConfiguration in project bitfinex-v2-wss-api-java by jnidzwetzki.
the class CommandsTest method testCommandsJSON.
/**
* Call all commands and check for excepion
* @throws CommandException
*/
@Test
public void testCommandsJSON() throws CommandException {
final BitfinexOrder order = BitfinexOrderBuilder.create(BitfinexCurrencyPair.BCH_USD, BitfinexOrderType.EXCHANGE_STOP, 2).build();
final BitfinexCandlestickSymbol candleSymbol = new BitfinexCandlestickSymbol(BitfinexCurrencyPair.BCH_USD, Timeframe.HOUR_1);
final OrderbookConfiguration orderbookConfiguration = new OrderbookConfiguration(BitfinexCurrencyPair.BCH_USD, OrderBookPrecision.P0, OrderBookFrequency.F0, 50);
final RawOrderbookConfiguration rawOrderbookConfiguration = new RawOrderbookConfiguration(BitfinexCurrencyPair.BAT_BTC);
final List<AbstractAPICommand> commands = Arrays.asList(new AuthCommand(), new CancelOrderCommand(123), new CancelOrderGroupCommand(1), new OrderCommand(order), new PingCommand(), new SubscribeCandlesCommand(candleSymbol), new SubscribeTickerCommand(new BitfinexTickerSymbol(BitfinexCurrencyPair.BCH_USD)), new SubscribeTradesCommand(new BitfinexExecutedTradeSymbol(BitfinexCurrencyPair.BAT_BTC)), new SubscribeOrderbookCommand(orderbookConfiguration), new SubscribeRawOrderbookCommand(rawOrderbookConfiguration), new UnsubscribeChannelCommand(12));
final BitfinexApiBroker bitfinexApiBroker = buildMockedBitfinexConnection();
for (final AbstractAPICommand command : commands) {
final String commandValue = command.getCommand(bitfinexApiBroker);
Assert.assertNotNull(commandValue);
Assert.assertTrue(commandValue.length() > 10);
}
}
use of com.github.jnidzwetzki.bitfinex.v2.entity.RawOrderbookConfiguration in project bitfinex-v2-wss-api-java by jnidzwetzki.
the class RawOrderbookTest method createRawOrderbookConfigurationFromJSON.
/**
* Test the build from JSON array
*/
@Test
public void createRawOrderbookConfigurationFromJSON() {
final String message = "{\"event\":\"subscribed\",\"channel\":\"book\",\"chanId\":3829,\"symbol\":\"tBTCUSD\",\"prec\":\"R0\",\"pair\":\"BTCUSD\"}";
final JSONTokener tokener = new JSONTokener(message);
final JSONObject jsonObject = new JSONObject(tokener);
final RawOrderbookConfiguration configuration = RawOrderbookConfiguration.fromJSON(jsonObject);
Assert.assertEquals(BitfinexCurrencyPair.BTC_USD, configuration.getCurrencyPair());
}
use of com.github.jnidzwetzki.bitfinex.v2.entity.RawOrderbookConfiguration in project bitfinex-v2-wss-api-java by jnidzwetzki.
the class RawOrderbookManager method unsubscribeOrderbook.
/**
* Unsubscribe a orderbook
* @param currencyPair
* @param orderBookPrecision
* @param orderBookFrequency
* @param pricePoints
*/
public void unsubscribeOrderbook(final RawOrderbookConfiguration orderbookConfiguration) {
final int channel = bitfinexApiBroker.getChannelForSymbol(orderbookConfiguration);
if (channel == -1) {
throw new IllegalArgumentException("Unknown symbol: " + orderbookConfiguration);
}
final UnsubscribeChannelCommand command = new UnsubscribeChannelCommand(channel);
bitfinexApiBroker.sendCommand(command);
bitfinexApiBroker.removeChannelForSymbol(orderbookConfiguration);
}
Aggregations