예제 #1
0
        public async Task CanGetBookOffers()
        {
            IRippleClient rippleClient = new RippleClient("wss://s1.ripple.com:443");

            rippleClient.Connect();
            BookOffersRequest request = new BookOffersRequest();

            request.TakerGets = new Currency {
                CurrencyCode = "EUR", Issuer = "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq"
            };
            request.TakerPays = new Currency();

            //request.TakerGets = new Currency();
            //request.TakerPays = new Currency { CurrencyCode = "EUR", Issuer = "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" };

            request.Limit = 10;

            var offers = await rippleClient.BookOffers(request);

            foreach (var bookOffer in offers.Offers)
            {
                Debug.WriteLine(bookOffer.Account);
            }

            Assert.IsNotNull(offers);
        }
예제 #2
0
        /// <summary>
        /// The book_offers method retrieves a list of offers, also known as the order book, between two currencies.
        /// </summary>
        public async Task <BookOffersResponse> BookOffers(BookOffersRequest request, CancellationToken cancellationToken = default)
        {
            jsonBuffer.Clear();
            jsonWriter.Reset();
            jsonWriter.WriteStartObject();
            var requestId = WriteHeader(jsonWriter, "book_offers");

            LedgerSpecification.Write(jsonWriter, request.Ledger);
            if (request.Limit.HasValue)
            {
                jsonWriter.WriteNumber("limit", request.Limit.Value);
            }
            if (request.Taker.HasValue)
            {
                jsonWriter.WriteString("taker", request.Taker.Value.ToString());
            }
            jsonWriter.WritePropertyName("taker_gets");
            request.TakerGets.WriteJson(jsonWriter);
            jsonWriter.WritePropertyName("taker_pays");
            request.TakerPays.WriteJson(jsonWriter);
            WriteFooter(jsonWriter);
            jsonWriter.WriteEndObject();
            jsonWriter.Flush();
            var response = await SendReceiveAsync(requestId, jsonBuffer.WrittenMemory, cancellationToken);

            return(new BookOffersResponse(response));
        }
예제 #3
0
        public async Task CanGetTestNetBookOffers()
        {
            BookOffersRequest request = new BookOffersRequest();

            request.TakerGets = new Currency();
            request.TakerPays = new Currency {
                CurrencyCode = "XYZ", Issuer = "rEqtEHKbinqm18wQSQGstmqg9SFpUELasT"
            };

            request.Limit = 10;

            var offers = await client.BookOffers(request);

            Assert.IsNotNull(offers);
        }
예제 #4
0
        public Task <BookOffers> BookOffers(BookOffersRequest request)
        {
            var command = JsonConvert.SerializeObject(request, serializerSettings);
            TaskCompletionSource <BookOffers> task = new TaskCompletionSource <BookOffers>();

            TaskInfo taskInfo = new TaskInfo();

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

            tasks.TryAdd(request.Id, taskInfo);

            client.SendMessage(command);
            return(task.Task);
        }
예제 #5
0
 public async Task <RpcJsonResponse <BookOffersResult> > BookOffersAsync(BookOffersRequest request)
 {
     return(await PostAsync <RpcJsonResponse <BookOffersResult>, BookOffersResult>(request));
 }