public String placeVircurexLimitOrder(LimitOrder limitOrder) throws IOException {
String type = limitOrder.getType() == Order.OrderType.BID ? "buy" : "sell";
String timestamp = VircurexUtils.getUtcTimestamp();
String nonce = (System.currentTimeMillis() / 250L) + "";
VircurexSha2Digest digest =
new VircurexSha2Digest(exchangeSpecification.getApiKey(), exchangeSpecification.getUserName(), timestamp, nonce, "create_order", type.toString(), limitOrder.getTradableAmount().floatValue()
+ "", limitOrder.getCurrencyPair().counterSymbol.toLowerCase(), limitOrder.getLimitPrice().floatValue() + "", limitOrder.getCurrencyPair().baseSymbol.toLowerCase());
VircurexPlaceOrderReturn ret =
vircurex.trade(exchangeSpecification.getApiKey(), nonce, digest.toString(), timestamp, type.toString(), limitOrder.getTradableAmount().floatValue() + "",
limitOrder.getCurrencyPair().counterSymbol.toLowerCase(), limitOrder.getLimitPrice().floatValue() + "", limitOrder.getCurrencyPair().baseSymbol.toLowerCase());
timestamp = VircurexUtils.getUtcTimestamp();
nonce = (System.currentTimeMillis() / 200L) + "";
digest = new VircurexSha2Digest(exchangeSpecification.getApiKey(), exchangeSpecification.getUserName(), timestamp, nonce, "release_order", ret.getOrderId());
ret = vircurex.release(exchangeSpecification.getApiKey(), nonce, digest.toString(), timestamp, ret.getOrderId());
return ret.getOrderId();
}