Beispiel #1
0
        public Task <ChannelVerify> ChannelVerify(ChannelVerifyRequest request)
        {
            var command = JsonConvert.SerializeObject(request, serializerSettings);
            TaskCompletionSource <ChannelVerify> task = new TaskCompletionSource <ChannelVerify>();

            TaskInfo taskInfo = new TaskInfo();

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

            tasks.TryAdd(request.Id, taskInfo);

            client.SendMessage(command);
            return(task.Task);
        }
Beispiel #2
0
        /// <summary>
        /// The channel_verify method checks the validity of a signature that can be used to redeem a specific amount of XRP from a payment channel.
        /// </summary>
        public async Task <bool> ChannelVerify(ChannelVerifyRequest request, CancellationToken cancellationToken = default)
        {
            jsonBuffer.Clear();
            jsonWriter.Reset();
            jsonWriter.WriteStartObject();
            var requestId = WriteHeader(jsonWriter, "channel_verify");

            jsonWriter.WriteString("channel_id", request.ChannelId.ToString());
            jsonWriter.WriteString("amount", request.Amount.Drops.ToString());
            jsonWriter.WriteBase16String("public_key", request.PublicKey.GetCanoncialBytes());
            jsonWriter.WriteBase16String("signature", request.Signature.Span);
            WriteFooter(jsonWriter);
            jsonWriter.WriteEndObject();
            jsonWriter.Flush();
            var response = await SendReceiveAsync(requestId, jsonBuffer.WrittenMemory, cancellationToken);

            return(response.GetProperty("signature_verified").GetBoolean());
        }