public override void UpdateOrder(Order order) { if (m_marketMakerMgr.MockTrade()) { m_mockExchange.UpdateOrder(order); } else { string url = string.Format("{0}/v1/order/list/deals?address={1}&product={2}&side={3}&start={4}", m_urlPrefix, m_marketMakerMgr.GetSetting().ExchangeSettingMap["Address"], order.Symbol.Replace("-", "_"), TradeDirectionUtil.IsBuy(order.Direction) ? "BUY" : "SELL", TimeUtil.GetLocalUnixTimestamp(DateTime.Parse(order.OrderTime))); string json = HttpGet(url); if (!string.IsNullOrEmpty(json)) { var obj = JsonHelper.DeserializeAnonymousType(json, new { }); } } }
public override bool PlaceOrder(Order order) { if (m_marketMakerMgr.MockTrade()) { return(m_mockExchange.PlaceOrder(order)); } else { //Refer API https://documenter.getpostman.com/view/1112175/SzS5u6bE?version=latest#03709c4f-d620-4fef-a36a-f9cb97e909b8 var msgObj = new [] { new { type = "okchain/order/MsgNew", value = new { order_items = new [] { new { price = ((decimal)order.Price).ToString(), product = order.Symbol.Replace("-", "_"), quantity = ((decimal)order.Volume).ToString(), side = TradeDirectionUtil.IsBuy(order.Direction) ? "BUY" : "SELL" } } }, sender = m_marketMakerMgr.GetSetting().ExchangeSettingMap["Address"] } }; string privateKey = m_marketMakerMgr.GetSetting().ExchangeSettingMap["PrivateKey"]; string publicKey = GetPublicKey(privateKey); var signatureObj = new[] { new { pub_key = new { type = "tendermint/PubKeySecp256k1", value = publicKey }, signature = GetSignature(JsonHelper.SerializeObject(msgObj), privateKey) } }; var feeObj = new { amount = new[] { new { amount = "0.02000000", denom = "tokt" } }, gas = "200000" }; var bodyObj = new { tx = new { msg = msgObj, signature = signatureObj, fee = feeObj, memo = "" }, mode = "block" }; string url = string.Format("{0}/v1/txs?sync=true", m_urlPrefix); string json = HttpPost(url, JsonHelper.SerializeObject(bodyObj)); if (!string.IsNullOrEmpty(json)) { var obj = JsonHelper.DeserializeAnonymousType(json, new { logs = new List <SortedDictionary <string, string> >(), events = new { attributes = new List <SortedDictionary <string, string> >() } }); } } return(false); }