waves_ruby_client 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c55f9b34b037fbd72ab4046612f66eba23b6fb30
4
- data.tar.gz: fb54057820388f47a52c89ce32142c9f5f3d004f
3
+ metadata.gz: '0609f848a6ff3450ed867e659805f853a22217d5'
4
+ data.tar.gz: b8090c0b342154555b30fbf859749a16096420a2
5
5
  SHA512:
6
- metadata.gz: e432d2540a21416d76888c0d2a1c74edc5db95899e5ae3899d811494b514d870fa15c5d764e3d9ff60bbf351586940f9f1c847ec22da91ea9ba00d7ac4079939
7
- data.tar.gz: 9440c0c82e694942ff39f00cc3d370e2a03bd85a3fca3184c992d5ad067211f26caab92dfed160cea189eaf4c3d7ffc6896f986af9e253ab5d8244f1aab6c5be
6
+ metadata.gz: 02b4404e59aef17963ce24f319938aebb99d3d5b8dfe2443b4869b6913da316f7841ef29e84a376bb70f61156fb9ced598d443b844ebacae8ed9c4c73abcd4a7
7
+ data.tar.gz: fc1fb405768692c14274d332c33bb9a5932f6e95c0cfd56ca0838170209b760d86e45947412883a0754abd5383bee8da7f1aeb656796d6ff18945f13ecced949
data/README.md CHANGED
@@ -30,15 +30,17 @@ The gem requires the following environment variables
30
30
  * WAVES_PRIVATE_KEY: your waves private key, necessary for signing requests
31
31
  * WAVES_ADDRESS: your waves address
32
32
 
33
+
33
34
  Optionally you can override the waves API URL (https://nodes.wavesnodes.com) and
34
35
  the matcher public key (7kPFrHDiGw1rCm7LPszuECwWYL3dMf6iMifLRDJQZMzy) by setting the following environement variables:
35
36
 
36
37
  * WAVES_API_URL
37
38
  * WAVES_MATCHER_PUBLIC_KEY
38
39
 
40
+
39
41
  ### Order book
40
42
 
41
- Shows current the current order book
43
+ Shows the current order book
42
44
 
43
45
  ```ruby
44
46
  book = WavesRubyClient::OrderBook.btc_waves
@@ -97,7 +99,7 @@ order.pending?
97
99
  ### Transaction
98
100
 
99
101
  WavesRubyClient can list unconfirmed transactions. This can be used to wait for
100
- the transaction of a filled order after placing the next order.
102
+ the transaction of a filled order before placing the next order.
101
103
 
102
104
  ```ruby
103
105
  # order was filled
@@ -114,6 +116,26 @@ WavesRubyClient::Wallet.balance
114
116
  => { waves: 5002.3, btc: 1200.3 }
115
117
  ```
116
118
 
119
+ ### DataFeed
120
+
121
+ #### Current price
122
+
123
+ Returns the last traded price as a float number
124
+
125
+ ```ruby
126
+ WavesRubyClient::DataFeed.current_price
127
+ => 0.000726
128
+ ```
129
+
130
+ #### Trade history
131
+
132
+ Returns a list of filled Orders representing the last n trades
133
+
134
+ ```ruby
135
+ WavesRubyClient::DataFeed.trade_history(10)
136
+ => [<WavesRubyClient::Order:0x0055d4746715d0, ...]
137
+ ```
138
+
117
139
  ## Development
118
140
 
119
141
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -17,6 +17,7 @@ require 'waves_ruby_client/version'
17
17
  require 'waves_ruby_client/asset'
18
18
  require 'waves_ruby_client/conversion'
19
19
  require 'waves_ruby_client/api'
20
+ require 'waves_ruby_client/data_feed'
20
21
  require 'waves_ruby_client/order_book'
21
22
  require 'waves_ruby_client/order_data/place'
22
23
  require 'waves_ruby_client/order_data/cancel'
@@ -32,6 +33,7 @@ module WavesRubyClient
32
33
  API_URL = ENV['WAVES_API_URL'] || 'https://nodes.wavesnodes.com'
33
34
  MATCHER_PUBLIC_KEY = ENV['WAVES_MATCHER_PUBLIC_KEY'] ||
34
35
  '7kPFrHDiGw1rCm7LPszuECwWYL3dMf6iMifLRDJQZMzy'
36
+ DATA_FEED_URL = 'http://marketdata.wavesplatform.com/api'
35
37
 
36
38
  BTC_ASSET_ID = '8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
37
39
  WAVES_ASSET_ID = 'WAVES'
@@ -11,6 +11,11 @@ module WavesRubyClient
11
11
  end
12
12
  end
13
13
 
14
+ def call_data_feed(path)
15
+ response = HTTParty.get(WavesRubyClient::DATA_FEED_URL + path)
16
+ JSON.parse(response.body)
17
+ end
18
+
14
19
  def call(path, method = :get, args = {})
15
20
  response = HTTParty.send(method, WavesRubyClient::API_URL + path, args)
16
21
  JSON.parse(response.body)
@@ -0,0 +1,18 @@
1
+ module WavesRubyClient
2
+ # query data feed
3
+ class DataFeed
4
+ def self.current_price
5
+ trade_history(1).first.price
6
+ end
7
+
8
+ # get history from data feed
9
+ def self.trade_history(count = 10)
10
+ WavesRubyClient::Api.instance.call_data_feed("/trades/WAVES/BTC/#{count}").map do |order|
11
+ order['price'] = order['price'].to_f
12
+ order['timestamp'] = order['timestamp'] / 1000
13
+ order['amount'] = order['amount'].to_f
14
+ WavesRubyClient::Order.new(order)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -8,6 +8,7 @@ module WavesRubyClient
8
8
  JSON_HEADERS = { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }.freeze
9
9
 
10
10
  attr_accessor :type, :amount, :id, :timestamp, :status, :price
11
+ attr_accessor :confirmed, :buyer, :seller, :matcher
11
12
  attr_writer :filled
12
13
 
13
14
  # get all orders for WAVES_PUBLIC_KEY
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module WavesRubyClient
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waves_ruby_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philipp Großelfinger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-08 00:00:00.000000000 Z
11
+ date: 2018-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -135,6 +135,7 @@ files:
135
135
  - lib/waves_ruby_client/api.rb
136
136
  - lib/waves_ruby_client/asset.rb
137
137
  - lib/waves_ruby_client/conversion.rb
138
+ - lib/waves_ruby_client/data_feed.rb
138
139
  - lib/waves_ruby_client/order.rb
139
140
  - lib/waves_ruby_client/order_book.rb
140
141
  - lib/waves_ruby_client/order_data/cancel.rb
@@ -164,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
165
  version: '0'
165
166
  requirements: []
166
167
  rubyforge_project:
167
- rubygems_version: 2.6.14
168
+ rubygems_version: 2.6.11
168
169
  signing_key:
169
170
  specification_version: 4
170
171
  summary: Ruby Client for Waves Platform API