Пример #1
0
        /// <summary>
        /// The ledger_data method retrieves contents of the specified ledger.
        /// You can iterate through several calls to retrieve the entire contents of a single ledger version.
        /// </summary>
        public async Task <LedgerDataResponse> LedgerData(LedgerDataRequest request, CancellationToken cancellationToken = default)
        {
            jsonBuffer.Clear();
            jsonWriter.Reset();
            jsonWriter.WriteStartObject();
            var requestId = WriteHeader(jsonWriter, "ledger_data");

            LedgerSpecification.Write(jsonWriter, request.Ledger);
            jsonWriter.WriteBoolean("binary", true);
            if (request.Limit.HasValue)
            {
                jsonWriter.WriteNumber("limit", request.Limit.Value);
            }
            if (request.Marker.HasValue)
            {
                jsonWriter.WritePropertyName("marker");
                request.Marker.Value.WriteTo(jsonWriter);
            }
            WriteFooter(jsonWriter);
            jsonWriter.WriteEndObject();
            jsonWriter.Flush();
            var response = await SendReceiveAsync(requestId, jsonBuffer.WrittenMemory, cancellationToken);

            return(new LedgerDataResponse(response));
        }
        public async Task CanGetLedgerData()
        {
            var closedLedger = await client.ClosedLedger();

            LedgerDataRequest request = new LedgerDataRequest();

            request.LedgerHash = closedLedger.LedgerHash;
            var ledgerData = await client.LedgerData(request);

            Assert.IsNotNull(ledgerData);
        }
Пример #3
0
        public Task <LedgerData> LedgerData(LedgerDataRequest request)
        {
            var command = JsonConvert.SerializeObject(request, serializerSettings);
            TaskCompletionSource <LedgerData> task = new TaskCompletionSource <LedgerData>();

            TaskInfo taskInfo = new TaskInfo();

            taskInfo.TaskId = request.Id;
            taskInfo.TaskCompletionResult = task;
            taskInfo.Type = typeof(LedgerData);

            tasks.TryAdd(request.Id, taskInfo);

            client.SendMessage(command);
            return(task.Task);
        }
Пример #4
0
        public void LedgerData()
        {
            // Arrange
            var request = new LedgerDataRequest();

            request.Params.Add(new LedgerDataRequestParams
            {
                Binary = false,
                Limit  = 5
            });

            // Act
            var response =
                _client.Ledger.LedgerDataAsync(request).Result;

            // Assert
            Assert.AreEqual(Status.Success, response.Result.Status);
        }
Пример #5
0
 public async Task <RpcJsonResponse <LedgerDataResult> > LedgerDataAsync(LedgerDataRequest request)
 {
     return(await PostAsync <RpcJsonResponse <LedgerDataResult>, LedgerDataResult>(request));
 }