コード例 #1
0
        /// <summary>
        /// This is the second endpoint required to execute an order.
        /// After using the Create Order endpoint, you will receive a response which needs to be signed.
        /// </summary>
        /// <param name="order"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <ExecuteOrderResponse> ExecuteOrder(ExecuteOrder order, string id) //todo ExecuteOrderResponse
        {
            var json           = JsonConvert.SerializeObject(order);
            var signaturesJson = $"{{\"signatures\":{json}}}";
            var httpContent    = new StringContent(signaturesJson, Encoding.UTF8, "application/json");
            var result         = await ExecuteCall(executeOrder.Replace(":id", id), httpContent);

            return(ExecuteOrderResponse.FromJson(result));
        }
コード例 #2
0
        public static async Task OrderDemo(SwitcheoRestService switcheoService, AccountSignerTransactionManager accountSigner)
        {
            var orderRequest = await switcheoService.PrepareCreateOrder("SWTH_NEO", "buy", "0.00315200", "2050000000", true, "limit");

            // turn into json
            var signableParams = JsonConvert.SerializeObject(orderRequest);
            // serialize request params
            var serializedParams = SwitcheoHelper.PrepareParametersRequest(signableParams);
            // signs the serialized params
            var signature = accountSigner.SignMessage(serializedParams);

            // adds the 'address' and 'signature' fields to the json
            var apiParams = SwitcheoHelper.AddTransactFields(signableParams, signature,
                                                             accountSigner.AddressScriptHash.ToString().Remove(0, 2));

            // sends the 'create withdrawal' request
            OrderResponse response = await switcheoService.CreateOrder(apiParams);

            // check response to make sure is what you want
            Debug.WriteLine(JsonConvert.SerializeObject(response));

            var executeOrderDto = new ExecuteOrder();

            foreach (var responseFill in response.Fills)
            {
                var tx          = Transaction.FromJson(JsonConvert.SerializeObject(responseFill.Txn));
                var signatureTx = accountSigner.SignTransaction(tx, false).ToHexString();
                executeOrderDto.Fills.Add(responseFill.Id.ToString(), signatureTx);
            }

            foreach (var responseMakes in response.Makes)
            {
                var tx          = Transaction.FromJson(JsonConvert.SerializeObject(responseMakes.Txn));
                var signatureTx = accountSigner.SignTransaction(tx, false).ToHexString();
                executeOrderDto.Makes.Add(responseMakes.Id.ToString(), signatureTx);
            }

            ExecuteOrderResponse execute = await switcheoService.ExecuteOrder(executeOrderDto, response.Id.ToString());

            Debug.WriteLine(JsonConvert.SerializeObject(execute));
        }