/// <summary> /// The ripple_path_find method is a simplified version of the path_find method that provides a single response with a payment path you can use right away. /// It is available in both the WebSocket and JSON-RPC APIs. However, the results tend to become outdated as time passes. /// Instead of making multiple calls to stay updated, you should instead use the path_find method to subscribe to continued updates where possible. /// </summary> public async Task <RipplePathFindResponse> RipplePathFind(RipplePathFindRequest request, CancellationToken cancellationToken = default) { jsonBuffer.Clear(); jsonWriter.Reset(); jsonWriter.WriteStartObject(); var requestId = WriteHeader(jsonWriter, "ripple_path_find"); LedgerSpecification.Write(jsonWriter, request.Ledger); jsonWriter.WriteString("source_account", request.SourceAccount.ToString()); jsonWriter.WriteString("destination_account", request.DestinationAccount.ToString()); jsonWriter.WritePropertyName("destination_amount"); request.DestinationAmount.WriteJson(jsonWriter); if (request.SendMax.HasValue) { jsonWriter.WritePropertyName("send_max"); request.SendMax.Value.WriteJson(jsonWriter); } if (request.SourceCurrencies != null) { jsonWriter.WriteStartArray("source_currencies"); foreach (var entry in request.SourceCurrencies) { entry.WriteJson(jsonWriter); } jsonWriter.WriteEndArray(); } WriteFooter(jsonWriter); jsonWriter.WriteEndObject(); jsonWriter.Flush(); var response = await SendReceiveAsync(requestId, jsonBuffer.WrittenMemory, cancellationToken); return(new RipplePathFindResponse(response)); }
public void RipplePathFind() { // Arrange var request = new RipplePathFindRequest(); request.Params.Add(new RipplePathFindRequestParams { SourceAccount = "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59", SourceCurrencies = new List <CurrencyIssuer> { new CurrencyIssuer { Currency = "USD" } }, DestinationAccount = "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", DestinationAmount = new CurrencyIssuerValue { Currency = "USD", Value = 0.01f, Issuer = "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX" } }); // Act var response = _client.Transactions.RipplePathFindAsync(request).Result; // Assert Assert.AreEqual(Status.Success, response.Result.Status); }
public async Task <RpcJsonResponse <RipplePathFindResult> > RipplePathFindAsync(RipplePathFindRequest request) { return(await PostAsync <RpcJsonResponse <RipplePathFindResult>, RipplePathFindResult>(request)); }