ruby_coincheck_client 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 548d3483ecb885d58c71859b88043fa818053dc3
4
- data.tar.gz: 342ad417776fb1e9a1a2643bcda6b1862646ee93
3
+ metadata.gz: af78bebd9f64fd5a85f1ac166ed7ad291c2e1b13
4
+ data.tar.gz: dffac86a20bd0927ec96a106a443a4946effcc10
5
5
  SHA512:
6
- metadata.gz: 43becc24c2e680d2e76a0ac619acb426bf11b200fa48b2965a612ea8c74b8c5500d1c65fefc4847a13302d55217e884cded318631db10da11e54098beb09a650
7
- data.tar.gz: 02a6a74ba11828ddf2569ea7b7667c7ebe8f3a9c5a7e5229bc9b7f37e156ae596c0431c2fce696037a2e07d6ef2ca9f1d6e26c2d6a264a42c7efe1a531f44399
6
+ metadata.gz: ef43cb51970db8e0cfbbbec76ba429ce46ebf0b6e81cdec8144f543b4d31021fd06482f35ef769846bbf561f17afe85afa9843435dd2ac8e5992024cb9602c21
7
+ data.tar.gz: 0ee09d20ef28340565143179e7ec85b28d468fc0c69b3128e4094ccb3322982e69f5218c0ceea98a622f049ecb0b14acef610051166e15ecb0d13b3f740cbb4d
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /tmp/
10
10
  test_example.rb
11
+ .env
data/CHANGELOG.md ADDED
@@ -0,0 +1,4 @@
1
+ # 0.2.0
2
+ * Backwards compatible changes:
3
+ * Added `read_orders_rate`
4
+ * Updated `read_positions`
data/Gemfile CHANGED
@@ -2,3 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in ruby_coincheck_client.gemspec
4
4
  gemspec
5
+
6
+ group :development, :test do
7
+ gem 'dotenv'
8
+ end
data/README.md CHANGED
@@ -31,6 +31,7 @@ response = cc.read_accounts
31
31
  response = cc.read_transactions
32
32
  response = cc.read_positions
33
33
  response = cc.read_orders
34
+ response = cc.read_orders_rate(order_type: 'buy', amount: "0.01")
34
35
  response = cc.create_orders(rate: "40001", amount: "0.01", order_type: "buy")
35
36
  response = cc.create_orders(rate: "50001", amount: "0.001", order_type: "sell")
36
37
  response = cc.create_orders(market_buy_amount: 100, order_type: "market_buy")
@@ -46,6 +47,7 @@ response = cc.read_deposit_money
46
47
  response = cc.create_deposit_money_fast(id: "2222")
47
48
  response = cc.read_ticker
48
49
  response = cc.read_trades
50
+ response = cc.read_rate
49
51
  response = cc.read_order_books
50
52
  response = cc.read_bank_accounts
51
53
  response = cc.delete_bank_accounts(id: "2222")
@@ -67,7 +69,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
67
69
 
68
70
  ## Contributing
69
71
 
70
- 1. Fork it ( https://github.com/yuma300/ruby_coincheck_client/fork )
72
+ 1. Fork it ( https://github.com/coincheckjp/ruby_coincheck_client/fork )
71
73
  2. Create your feature branch (`git checkout -b my-new-feature`)
72
74
  3. Commit your changes (`git commit -am 'Add some feature'`)
73
75
  4. Push to the branch (`git push origin my-new-feature`)
@@ -0,0 +1,11 @@
1
+ require_relative '../lib/ruby_coincheck_client'
2
+ require 'dotenv'
3
+ Dotenv.load ".env"
4
+
5
+ cc = CoincheckClient.new(ENV['API_KEY'], ENV['SECRET_KEY'])
6
+ puts cc.read_balance.body
7
+ puts cc.read_leverage_balance.body
8
+ puts cc.read_accounts.body
9
+ puts cc.read_transactions.body
10
+ puts cc.read_positions.body
11
+ puts cc.read_orders.body
@@ -0,0 +1,8 @@
1
+ require_relative '../lib/ruby_coincheck_client'
2
+
3
+ cc = CoincheckClient.new
4
+ puts cc.read_ticker.body
5
+ puts cc.read_trades.body
6
+ puts cc.read_rate.body
7
+ puts cc.read_order_books.body
8
+ puts cc.read_orders_rate(order_type: 'sell', price: 100000).body
@@ -1,5 +1,5 @@
1
- require "ruby_coincheck_client/version"
2
- require "ruby_coincheck_client/coincheck_client"
1
+ require_relative "./ruby_coincheck_client/version"
2
+ require_relative "./ruby_coincheck_client/coincheck_client"
3
3
 
4
4
  module RubyCoincheckClient
5
5
  # Your code goes here...
@@ -2,12 +2,15 @@ require 'net/http'
2
2
  require 'uri'
3
3
  require 'openssl'
4
4
  require 'json'
5
+ require_relative './currency'
5
6
 
6
7
  class CoincheckClient
7
- @@base_url = "https://coincheck.jp/"
8
+ include Currency
9
+
10
+ @@base_url = "https://coincheck.com/"
8
11
  @@ssl = true
9
12
 
10
- def initialize(key, secret, params = {})
13
+ def initialize(key = nil, secret = nil, params = {})
11
14
  @key = key
12
15
  @secret = secret
13
16
  if !params[:base_url].nil?
@@ -42,10 +45,10 @@ class CoincheckClient
42
45
  request_for_get(uri, headers)
43
46
  end
44
47
 
45
- def read_positions(body = {})
48
+ def read_positions(params = {})
46
49
  uri = URI.parse @@base_url + "api/exchange/leverage/positions"
47
- headers = get_signature(uri, @key, @secret, body.to_json)
48
- request_for_get(uri, headers, body)
50
+ headers = get_signature(uri, @key, @secret)
51
+ request_for_get(uri, headers, params)
49
52
  end
50
53
 
51
54
  def read_orders
@@ -54,7 +57,7 @@ class CoincheckClient
54
57
  request_for_get(uri, headers)
55
58
  end
56
59
 
57
- def create_orders(order_type:, rate: nil, amount: nil, market_buy_amount: nil, position_id: nil, pair: "btc_jpy")
60
+ def create_orders(order_type:, rate: nil, amount: nil, market_buy_amount: nil, position_id: nil, pair: Pair::BTC_JPY)
58
61
  body = {
59
62
  rate: rate,
60
63
  amount: amount,
@@ -74,6 +77,12 @@ class CoincheckClient
74
77
  request_for_delete(uri, headers)
75
78
  end
76
79
 
80
+ def read_orders_rate(order_type:, pair: Pair::BTC_JPY, price: nil, amount: nil)
81
+ uri = URI.parse @@base_url + "api/exchange/orders/rate"
82
+ params = { order_type: order_type, pair: pair, price: price, amount: amount }
83
+ request_for_get(uri, {}, params)
84
+ end
85
+
77
86
  def create_send_money(address:, amount:)
78
87
  body = {
79
88
  address: address,
@@ -85,17 +94,17 @@ class CoincheckClient
85
94
  end
86
95
 
87
96
  def read_send_money(currency: "BTC")
88
- body = { currency: currency }
97
+ params = { currency: currency }
89
98
  uri = URI.parse @@base_url + "api/send_money"
90
- headers = get_signature(uri, @key, @secret, body.to_json)
91
- request_for_get(uri, headers, body)
99
+ headers = get_signature(uri, @key, @secret)
100
+ request_for_get(uri, headers, params)
92
101
  end
93
102
 
94
103
  def read_deposit_money(currency: "BTC")
95
- body = { currency: currency }
104
+ params = { currency: currency }
96
105
  uri = URI.parse @@base_url + "api/deposit_money"
97
- headers = get_signature(uri, @key, @secret, body.to_json)
98
- request_for_get(uri, headers, body)
106
+ headers = get_signature(uri, @key, @secret)
107
+ request_for_get(uri, headers, params)
99
108
  end
100
109
 
101
110
  def create_deposit_money_fast(id: )
@@ -114,6 +123,11 @@ class CoincheckClient
114
123
  request_for_get(uri)
115
124
  end
116
125
 
126
+ def read_rate(pair: Pair::BTC_JPY)
127
+ uri = URI.parse @@base_url + "/api/rate/#{pair}"
128
+ request_for_get(uri)
129
+ end
130
+
117
131
  def read_order_books
118
132
  uri = URI.parse @@base_url + "api/order_books"
119
133
  request_for_get(uri)
@@ -179,7 +193,7 @@ class CoincheckClient
179
193
  request_for_post(uri, headers, body)
180
194
  end
181
195
 
182
- def transfer_to_leverage(amount:, currency: "JPY")
196
+ def transfer_to_leverage(amount:, currency: JPY)
183
197
  body = {
184
198
  amount: amount,
185
199
  currency: currency
@@ -189,7 +203,7 @@ class CoincheckClient
189
203
  request_for_post(uri, headers, body)
190
204
  end
191
205
 
192
- def transfer_from_leverage(amount:, currency: "JPY")
206
+ def transfer_from_leverage(amount:, currency: JPY)
193
207
  body = {
194
208
  amount: amount,
195
209
  currency: currency
@@ -212,29 +226,35 @@ class CoincheckClient
212
226
  end
213
227
  end
214
228
 
215
- def request_for_get(uri, headers = {}, body = nil)
216
- request = Net::HTTP::Get.new(uri.request_uri, initheader = headers)
217
- request.body = body.to_json if body
229
+ def request_for_get(uri, headers = {}, params = nil)
230
+ uri.query = URI.encode_www_form(params) if params
231
+ request = Net::HTTP::Get.new(uri.request_uri, initheader = custom_header(headers))
218
232
  http_request(uri, request)
219
233
  end
220
234
 
221
235
  def request_for_delete(uri, headers)
222
- request = Net::HTTP::Delete.new(uri.request_uri, initheader = headers)
236
+ request = Net::HTTP::Delete.new(uri.request_uri, initheader = custom_header(headers))
223
237
  http_request(uri, request)
224
238
  end
225
239
 
226
240
  def request_for_post(uri, headers, body)
227
- request = Net::HTTP::Post.new(uri.request_uri, initheader = headers)
241
+ request = Net::HTTP::Post.new(uri.request_uri, initheader = custom_header(headers))
228
242
  request.body = body.to_json
229
243
  http_request(uri, request)
230
244
  end
231
245
 
246
+ def custom_header(headers = {})
247
+ headers.merge!({
248
+ "Content-Type" => "application/json",
249
+ "User-Agent" => "RubyCoincheckClient v#{RubyCoincheckClient::VERSION}"
250
+ })
251
+ end
252
+
232
253
  def get_signature(uri, key, secret, body = "")
233
- nonce = Time.now.to_i.to_s
254
+ nonce = (Time.now.to_f * 1000000).to_i.to_s
234
255
  message = nonce + uri.to_s + body
235
256
  signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), secret, message)
236
257
  headers = {
237
- "Content-Type" => "application/json",
238
258
  "ACCESS-KEY" => key,
239
259
  "ACCESS-NONCE" => nonce,
240
260
  "ACCESS-SIGNATURE" => signature
@@ -0,0 +1,46 @@
1
+ module Currency
2
+ JPY = "JPY"
3
+ BTC = "BTC"
4
+ ETH = "ETH"
5
+ ETC = "ETC"
6
+ DAO = "DAO"
7
+ LSK = "LSK"
8
+ FCT = "FCT"
9
+ XMR = "XMR"
10
+ REP = "REP"
11
+ XRP = "XRP"
12
+ ZEC = "ZEC"
13
+ XEM = "XEM"
14
+ LTC = "LTC"
15
+ DASH = "DASH"
16
+ BCH = "BCH"
17
+
18
+ module Pair
19
+ BTC_JPY = "btc_jpy"
20
+ ETH_JPY = "eth_jpy"
21
+ ETC_JPY = "etc_jpy"
22
+ DAO_JPY = "dao_jpy"
23
+ LSK_JPY = "lsk_jpy"
24
+ FCT_JPY = "fct_jpy"
25
+ XMR_JPY = "xmr_jpy"
26
+ REP_JPY = "rep_jpy"
27
+ XRP_JPY = "xrp_jpy"
28
+ ZEC_JPY = "zec_jpy"
29
+ XEM_JPY = "xem_jpy"
30
+ LTC_JPY = "ltc_jpy"
31
+ DASH_JPY = "dash_jpy"
32
+ BCH_JPY = "bch_jpy"
33
+ ETH_BTC = "eth_btc"
34
+ ETC_BTC = "etc_btc"
35
+ LSK_BTC = "lsk_btc"
36
+ FCT_BTC = "fct_btc"
37
+ XMR_BTC = "xmr_btc"
38
+ REP_BTC = "rep_btc"
39
+ XRP_BTC = "xrp_btc"
40
+ ZEC_BTC = "zec_btc"
41
+ XEM_BTC = "xem_btc"
42
+ LTC_BTC = "ltc_btc"
43
+ DASH_BTC = "dash_btc"
44
+ BCH_BTC = "bch_btc"
45
+ end
46
+ end
@@ -1,3 +1,3 @@
1
1
  module RubyCoincheckClient
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_coincheck_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - coincheck
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-29 00:00:00.000000000 Z
11
+ date: 2017-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -62,13 +62,17 @@ files:
62
62
  - ".gitignore"
63
63
  - ".rspec"
64
64
  - ".travis.yml"
65
+ - CHANGELOG.md
65
66
  - Gemfile
66
67
  - README.md
67
68
  - Rakefile
68
69
  - bin/console
69
70
  - bin/setup
71
+ - examples/private.rb
72
+ - examples/public.rb
70
73
  - lib/ruby_coincheck_client.rb
71
74
  - lib/ruby_coincheck_client/coincheck_client.rb
75
+ - lib/ruby_coincheck_client/currency.rb
72
76
  - lib/ruby_coincheck_client/version.rb
73
77
  - ruby_coincheck_client.gemspec
74
78
  homepage: https://github.com/coincheckjp/ruby_coincheck_client
@@ -96,4 +100,3 @@ signing_key:
96
100
  specification_version: 4
97
101
  summary: This is ruby client of coincheck api
98
102
  test_files: []
99
- has_rdoc: