coins_ph_ruby 0.1.4 → 0.2.0
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 +4 -4
- data/coins_ph_ruby.gemspec +1 -3
- data/lib/coins_ph_ruby/hmac.rb +11 -3
- data/lib/coins_ph_ruby/version.rb +1 -1
- data/lib/coins_ph_ruby.rb +54 -74
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9be309c5c1e0fd598538f28d7ccac5ec2eb63f2
|
4
|
+
data.tar.gz: 0fc80bb08bca7a18360ccdc44853e5bde7ed9da7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c72e28dd5a63fe56e02c29f2c19ee62d4402ba711fc013ae8e8b111e3ef9f13e863f3c580083fe9f032ce989848b69216838560bd52c35db906b6784f1e1254b
|
7
|
+
data.tar.gz: fc644bf8d699373e29d4b8af4878e44a2a1b04062265e4bfb9226c987979e687d1662d7015545cdd740bb48adfde79f2f6bd9cb2fb8f586b27046fe07f16b6d5
|
data/coins_ph_ruby.gemspec
CHANGED
@@ -33,8 +33,6 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_development_dependency "rake", "~> 10.0"
|
34
34
|
spec.add_development_dependency "rspec", "~> 3.0"
|
35
35
|
|
36
|
-
spec.add_dependency "
|
36
|
+
spec.add_dependency "rest-client"
|
37
37
|
spec.add_dependency "json"
|
38
|
-
spec.add_dependency "faraday_middleware"
|
39
|
-
|
40
38
|
end
|
data/lib/coins_ph_ruby/hmac.rb
CHANGED
@@ -3,16 +3,24 @@ require 'openssl'
|
|
3
3
|
module Hmac
|
4
4
|
|
5
5
|
def self.get_nonce()
|
6
|
-
return Time.now.to_i * (
|
6
|
+
return Time.now.to_i * (10**8)
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.sign_request(api_secret, url, nonce, body=nil)
|
10
|
+
puts nonce
|
11
|
+
puts url
|
10
12
|
if body.nil?
|
11
13
|
message = "#{nonce}#{url}"
|
12
14
|
else
|
13
15
|
message = "#{nonce}#{url}#{body}"
|
16
|
+
|
14
17
|
end
|
15
18
|
|
16
|
-
|
19
|
+
puts message
|
20
|
+
digest = OpenSSL::Digest.new('sha256')
|
21
|
+
return OpenSSL::HMAC.hexdigest(digest, api_secret, message)
|
17
22
|
end
|
18
|
-
end
|
23
|
+
end
|
24
|
+
|
25
|
+
{"target_address":"ethan@groundworkai.com","account":"02d950370daf41c1a1de060b3cb48a9d","amount":3}
|
26
|
+
{"target_address":"ethan@groundworkai.com","amount":3,"account":"02d950370daf41c1a1de060b3cb48a9d"}
|
data/lib/coins_ph_ruby.rb
CHANGED
@@ -1,97 +1,77 @@
|
|
1
|
-
require 'faraday'
|
2
|
-
require 'faraday_middleware'
|
3
1
|
require 'coins_ph_ruby/version'
|
4
2
|
require 'coins_ph_ruby/hmac'
|
3
|
+
require 'json'
|
5
4
|
|
6
5
|
module CoinsPhRuby
|
7
|
-
class RequestBody < Faraday::Middleware
|
8
|
-
def call(env)
|
9
|
-
request_body = env.body
|
10
|
-
|
11
|
-
puts request_body
|
12
|
-
|
13
|
-
@app.call(env).on_complete do |response|
|
14
|
-
response[:request_body] = request_body
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
6
|
class CoinsPhService
|
20
|
-
|
21
7
|
def initialize(api_key, api_secret)
|
22
8
|
@api_key = api_key
|
23
9
|
@api_secret = api_secret
|
24
10
|
@base_url = 'https://coins.ph/api/v3'
|
25
|
-
@conn = Faraday.new @base_url do |connector|
|
26
|
-
connector.use FaradayMiddleware::FollowRedirects
|
27
|
-
connector.use RequestBody
|
28
|
-
connector.adapter Faraday.default_adapter
|
29
|
-
end
|
30
11
|
end
|
31
12
|
|
32
13
|
def get_crypto_accounts(currency=nil)
|
33
|
-
|
34
|
-
|
35
|
-
signature = Hmac.sign_request(@api_secret, url,
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
14
|
+
nonce = Hmac.get_nonce
|
15
|
+
url = @base_url + '/crypto-accounts/'
|
16
|
+
signature = Hmac.sign_request(@api_secret, url,
|
17
|
+
nonce)
|
18
|
+
begin
|
19
|
+
response = RestClient.get(url, content_type: :json,
|
20
|
+
accept: :json,
|
21
|
+
ACCESS_SIGNATURE: signature,
|
22
|
+
ACCESS_KEY: @api_key,
|
23
|
+
ACCESS_NONCE: nonce)
|
24
|
+
rescue StandardError => e
|
25
|
+
puts e.response
|
44
26
|
end
|
45
|
-
|
46
|
-
puts response.body
|
47
|
-
return response
|
27
|
+
response
|
48
28
|
end
|
49
29
|
|
50
|
-
def get_transfers(
|
51
|
-
nonce = Hmac.get_nonce
|
52
|
-
url = @base_url +
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
30
|
+
def get_transfers(_id = nil)
|
31
|
+
nonce = Hmac.get_nonce
|
32
|
+
url = @base_url + '/transfers/'
|
33
|
+
signature = Hmac.sign_request(@api_secret, url,
|
34
|
+
nonce)
|
35
|
+
begin
|
36
|
+
response = RestClient.get(url, content_type: :json,
|
37
|
+
accept: :json,
|
38
|
+
ACCESS_SIGNATURE: signature,
|
39
|
+
ACCESS_KEY: @api_key,
|
40
|
+
ACCESS_NONCE: nonce)
|
41
|
+
rescue StandardError => e
|
42
|
+
puts e.response
|
61
43
|
end
|
62
|
-
|
63
|
-
puts response.body
|
64
|
-
return response
|
44
|
+
response
|
65
45
|
end
|
66
46
|
|
67
|
-
def transfer
|
68
|
-
body =
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
req.headers['Accept'] = 'application/json'
|
82
|
-
|
83
|
-
req.headers['ACCESS_SIGNATURE'] = Hmac.sign_request(@api_secret, url,
|
84
|
-
nonce)
|
85
|
-
req.headers['ACCESS_KEY'] = @api_key
|
86
|
-
req.headers['ACCESS_NONCE'] = nonce
|
87
|
-
|
88
|
-
req.body = body
|
89
|
-
|
90
|
-
puts req.inspect
|
47
|
+
def transfer(amount, account, target_address, message = nil)
|
48
|
+
body = build_transfer_body(account, amount, message, target_address)
|
49
|
+
nonce = Hmac.get_nonce
|
50
|
+
url = @base_url + '/transfers/'
|
51
|
+
signature = Hmac.sign_request(@api_secret, url,
|
52
|
+
nonce, body)
|
53
|
+
begin
|
54
|
+
response = RestClient.post(url, body, content_type: :json,
|
55
|
+
accept: :json,
|
56
|
+
ACCESS_SIGNATURE: signature,
|
57
|
+
ACCESS_KEY: @api_key,
|
58
|
+
ACCESS_NONCE: nonce)
|
59
|
+
rescue StandardError => e
|
60
|
+
puts e.response
|
91
61
|
end
|
62
|
+
response
|
63
|
+
end
|
64
|
+
|
65
|
+
private
|
92
66
|
|
93
|
-
|
94
|
-
|
67
|
+
def build_transfer_body(account, amount, message, target_address)
|
68
|
+
body = {
|
69
|
+
target_address: target_address,
|
70
|
+
account: account,
|
71
|
+
amount: amount
|
72
|
+
}
|
73
|
+
body[:message] = message unless message.nil?
|
74
|
+
body.to_json.gsub(/\s+/, '')
|
95
75
|
end
|
96
76
|
end
|
97
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coins_ph_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jcdjulian
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '3.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rest-client
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: faraday_middleware
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
description: Gem to wrap Coins.ph API.
|
84
70
|
email:
|
85
71
|
- 'julian.deocampo@gmail.com
|