Пример #1
0
        /// <summary>
        /// The account_channels method returns information about an account's Payment Channels.
        /// This includes only channels where the specified account is the channel's source, not the destination.
        /// (A channel's "source" and "owner" are the same.)
        /// All information retrieved is relative to a particular version of the ledger.
        /// </summary>
        public async Task <AccountChannelsResponse> AccountChannels(AccountChannelsRequest request, CancellationToken cancellationToken = default)
        {
            jsonBuffer.Clear();
            jsonWriter.Reset();
            jsonWriter.WriteStartObject();
            var requestId = WriteHeader(jsonWriter, "account_channels");

            LedgerSpecification.Write(jsonWriter, request.Ledger);
            jsonWriter.WriteString("account", request.Account.ToString());
            if (request.DestinationAccount.HasValue)
            {
                jsonWriter.WriteString("destination_account", request.DestinationAccount.Value.ToString());
            }
            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 AccountChannelsResponse(response, request, this));
        }
Пример #2
0
        public Task <AccountChannels> AccountChannels(string account)
        {
            AccountChannelsRequest request = new AccountChannelsRequest(account);

            return(AccountChannels(request));
        }