コード例 #1
0
 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
             {
             });
         }
     }
 }
コード例 #2
0
        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);
        }