bitpay-sdk 2.1.1 → 2.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: 9f62c21b534bf518ba18041a4ef0035c1b0813da
4
- data.tar.gz: 1464d4971a9dc7d3d83bf52db905f3fe88a389bb
3
+ metadata.gz: 05ceac9c5a451d327ccaca3d7d5df7b4b791612e
4
+ data.tar.gz: 8bd0c8fd5d09f22b9a90dfcb8dd80ea841b70b4f
5
5
  SHA512:
6
- metadata.gz: 8f6fcbd6e1b24b51d11eef2c951de9d06106aa39d14136ede7e6829de8b8afa2c6865968de62de0f37b60e151a2e5dd9712a0be628c50fe4073a505179339629
7
- data.tar.gz: 9d7d03a789872bea2474f12eb96472e64fd7ed69f25c1a05390fd645363e9c62041860fe7c835ffcc506989f5238714076a166abcab977ae2257f9ed21a891ef
6
+ metadata.gz: 35f0005e156651cf165e3ae64bd42feecca410d7a9ac01dc0dcf3fd4c1e9596cbfe3d45de8c7a98214f95d0fe9ac8fca1a5e96707dbfd2064db9f5abd477353d
7
+ data.tar.gz: 431badf6d99383c1670af5f60599186a6c830e62953de356c93e913dedcc6d5738d588de75aadb1cdcc10e45a4edb31ea215845fc6d584d037012842a28f86bd
data/README.md CHANGED
@@ -3,15 +3,15 @@ Powerful, flexible, lightweight interface to the BitPay Bitcoin Payment Gateway
3
3
 
4
4
  ## Installation
5
5
 
6
- gem install bitpay
6
+ gem install bitpay-sdk
7
7
 
8
8
  In your Gemfile:
9
9
 
10
- gem 'bitpay', :require => 'bitpay'
10
+ gem 'bitpay-sdk', :require => 'bitpay_sdk'
11
11
 
12
12
  Or directly:
13
13
 
14
- require 'bitpay'
14
+ require 'bitpay_sdk'
15
15
 
16
16
  ## Configuration
17
17
 
@@ -20,7 +20,7 @@ Given(/^that a user knows an invoice id$/) do
20
20
  end
21
21
 
22
22
  Then(/^they can retrieve that invoice$/) do
23
- invoice = BitPay::Client.new(api_uri: ROOT_ADDRESS, insecure: true).get_public_invoice(id: @id)
23
+ invoice = BitPay::SDK::Client.new(api_uri: ROOT_ADDRESS, insecure: true).get_public_invoice(id: @id)
24
24
  raise "That's the wrong invoice" unless invoice['id'] == @id
25
25
  end
26
26
 
@@ -4,14 +4,14 @@
4
4
  When(/^the user pairs with BitPay(?: with a valid pairing code|)$/) do
5
5
  claim_code = get_claim_code_from_server
6
6
  pem = BitPay::KeyUtils.generate_pem
7
- @client = BitPay::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true)
7
+ @client = BitPay::SDK::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true)
8
8
  @token = @client.pair_pos_client(claim_code)
9
9
  end
10
10
 
11
11
  When(/^the fails to pair with BitPay because of an incorrect port$/) do
12
12
  pem = BitPay::KeyUtils.generate_pem
13
13
  address = ROOT_ADDRESS.split(':').slice(0,2).join(':') + ":999"
14
- client = BitPay::Client.new(api_uri: address, pem: pem, insecure: true)
14
+ client = BitPay::SDK::Client.new(api_uri: address, pem: pem, insecure: true)
15
15
  begin
16
16
  client.pair_pos_client("1ab2c34")
17
17
  raise "pairing unexpectedly worked"
@@ -35,7 +35,7 @@ end
35
35
 
36
36
  Then(/^the user fails to pair with a semantically (?:in|)valid code "(.*?)"$/) do |code|
37
37
  pem = BitPay::KeyUtils.generate_pem
38
- client = BitPay::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true)
38
+ client = BitPay::SDK::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true)
39
39
  begin
40
40
  client.pair_pos_client(code)
41
41
  raise "pairing unexpectedly worked"
@@ -1,9 +1,7 @@
1
1
  require 'capybara/poltergeist'
2
2
  require 'pry'
3
3
 
4
- require File.join File.dirname(__FILE__), '..', '..', 'lib', 'bitpay', 'client.rb'
5
- require File.join File.dirname(__FILE__), '..', '..', 'lib', 'bitpay', 'key_utils.rb'
6
- require File.join File.dirname(__FILE__), '..', '..', 'lib', 'bitpay.rb'
4
+ require File.join File.dirname(__FILE__), '..', '..', 'lib', 'bitpay_sdk.rb'
7
5
  require_relative '../../config/constants.rb'
8
6
  require_relative '../../config/capybara.rb'
9
7
 
@@ -48,7 +46,7 @@ end
48
46
  def new_paired_client
49
47
  claim_code = get_claim_code_from_server
50
48
  pem = BitPay::KeyUtils.generate_pem
51
- client = BitPay::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true)
49
+ client = BitPay::SDK::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true)
52
50
  client.pair_pos_client(claim_code)
53
51
  client
54
52
  end
@@ -57,11 +55,11 @@ def new_client_from_stored_values
57
55
  if File.file?(BitPay::PRIVATE_KEY_PATH) && File.file?(BitPay::TOKEN_FILE_PATH)
58
56
  token = get_token_from_file
59
57
  pem = File.read(BitPay::PRIVATE_KEY_PATH)
60
- BitPay::Client.new(pem: pem, tokens: token, insecure: true, api_uri: ROOT_ADDRESS )
58
+ BitPay::SDK::Client.new(pem: pem, tokens: token, insecure: true, api_uri: ROOT_ADDRESS )
61
59
  else
62
60
  claim_code = get_claim_code_from_server
63
61
  pem = BitPay::KeyUtils.generate_pem
64
- client = BitPay::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true)
62
+ client = BitPay::SDK::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true)
65
63
  token = client.pair_pos_client(claim_code)
66
64
  File.write(BitPay::PRIVATE_KEY_PATH, pem)
67
65
  File.write(BitPay::TOKEN_FILE_PATH, JSON.generate(token))
data/lib/bitpay/client.rb CHANGED
@@ -11,171 +11,173 @@ require_relative 'key_utils'
11
11
  module BitPay
12
12
  # This class is used to instantiate a BitPay Client object. It is expected to be thread safe.
13
13
  #
14
- class Client
15
-
16
-
17
- # @return [Client]
18
- # @example
19
- # # Create a client with a pem file created by the bitpay client:
20
- # client = BitPay::Client.new
21
- def initialize(opts={})
22
- @pem = opts[:pem] || ENV['BITPAY_PEM'] || KeyUtils.generate_pem
23
- @key = KeyUtils.create_key @pem
24
- @priv_key = KeyUtils.get_private_key @key
25
- @pub_key = KeyUtils.get_public_key @key
26
- @client_id = KeyUtils.generate_sin_from_pem @pem
27
- @uri = URI.parse opts[:api_uri] || API_URI
28
- @user_agent = opts[:user_agent] || USER_AGENT
29
- @https = Net::HTTP.new @uri.host, @uri.port
30
- @https.use_ssl = true
31
- @https.ca_file = CA_FILE
32
- @tokens = opts[:tokens] || {}
33
-
34
- # Option to disable certificate validation in extraordinary circumstance. NOT recommended for production use
35
- @https.verify_mode = opts[:insecure] == true ? OpenSSL::SSL::VERIFY_NONE : OpenSSL::SSL::VERIFY_PEER
14
+ module SDK
15
+ class Client
36
16
 
37
- # Option to enable http request debugging
38
- @https.set_debug_output($stdout) if opts[:debug] == true
39
17
 
40
- end
41
-
42
- def pair_pos_client(claimCode)
43
- raise BitPay::ArgumentError, "pairing code is not legal" unless verify_claim_code(claimCode)
44
- response = set_pos_token(claimCode)
45
- get_token 'pos'
46
- response
47
- end
48
-
49
- def create_invoice(price:, currency:, facade: 'pos', params:{})
50
- raise BitPay::ArgumentError, "Illegal Argument: Price must be formatted as a float" unless ( price.is_a?(Numeric) || /^[[:digit:]]+(\.[[:digit:]]{2})?$/.match(price) )
51
- raise BitPay::ArgumentError, "Illegal Argument: Currency is invalid." unless /^[[:upper:]]{3}$/.match(currency)
52
- params.merge!({price: price, currency: currency})
53
- response = send_request("POST", "invoices", facade: facade, params: params)
54
- response["data"]
55
- end
56
-
57
- def get_public_invoice(id:)
58
- request = Net::HTTP::Get.new("/invoices/#{id}")
59
- response = process_request(request)
60
- response["data"]
61
- end
62
-
63
- def set_token
64
- end
18
+ # @return [Client]
19
+ # @example
20
+ # # Create a client with a pem file created by the bitpay client:
21
+ # client = BitPay::Client.new
22
+ def initialize(opts={})
23
+ @pem = opts[:pem] || ENV['BITPAY_PEM'] || KeyUtils.generate_pem
24
+ @key = KeyUtils.create_key @pem
25
+ @priv_key = KeyUtils.get_private_key @key
26
+ @pub_key = KeyUtils.get_public_key @key
27
+ @client_id = KeyUtils.generate_sin_from_pem @pem
28
+ @uri = URI.parse opts[:api_uri] || API_URI
29
+ @user_agent = opts[:user_agent] || USER_AGENT
30
+ @https = Net::HTTP.new @uri.host, @uri.port
31
+ @https.use_ssl = true
32
+ @https.ca_file = CA_FILE
33
+ @tokens = opts[:tokens] || {}
34
+
35
+ # Option to disable certificate validation in extraordinary circumstance. NOT recommended for production use
36
+ @https.verify_mode = opts[:insecure] == true ? OpenSSL::SSL::VERIFY_NONE : OpenSSL::SSL::VERIFY_PEER
37
+
38
+ # Option to enable http request debugging
39
+ @https.set_debug_output($stdout) if opts[:debug] == true
65
40
 
66
- def verify_token
67
- server_tokens = load_tokens
68
- @tokens.each{|key, value| return false if server_tokens[key] != value}
69
- return true
70
- end
71
- ## Generates REST request to api endpoint
72
-
73
- def send_request(verb, path, facade: 'merchant', params: {}, token: nil)
74
- token ||= get_token(facade)
75
-
76
- # Verb-specific logic
77
- case verb.upcase
78
- when "GET"
79
- urlpath = '/' + path + '?nonce=' + KeyUtils.nonce + '&token=' + token
80
- request = Net::HTTP::Get.new urlpath
81
- request['X-Signature'] = KeyUtils.sign(@uri.to_s + urlpath, @priv_key)
82
-
83
- when "PUT"
84
-
85
- when "POST" # Requires a GUID
86
-
87
- urlpath = '/' + path
88
- request = Net::HTTP::Post.new urlpath
89
- params[:token] = token
90
- params[:nonce] = KeyUtils.nonce
91
- params[:guid] = SecureRandom.uuid
92
- params[:id] = @client_id
93
- request.body = params.to_json
94
- request['X-Signature'] = KeyUtils.sign(@uri.to_s + urlpath + request.body, @priv_key)
95
-
96
- when "DELETE"
97
-
98
- raise(BitPayError, "Invalid HTTP verb: #{verb.upcase}")
99
41
  end
100
42
 
101
- # Build request headers and submit
102
- request['X-Identity'] = @pub_key
103
-
104
- response = process_request(request)
105
- end
106
-
107
- ##### PRIVATE METHODS #####
108
- private
43
+ def pair_pos_client(claimCode)
44
+ raise BitPay::ArgumentError, "pairing code is not legal" unless verify_claim_code(claimCode)
45
+ response = set_pos_token(claimCode)
46
+ get_token 'pos'
47
+ response
48
+ end
109
49
 
110
- ## Processes HTTP Request and returns parsed response
111
- # Otherwise throws error
112
- #
113
- def process_request(request)
50
+ def create_invoice(price:, currency:, facade: 'pos', params:{})
51
+ raise BitPay::ArgumentError, "Illegal Argument: Price must be formatted as a float" unless ( price.is_a?(Numeric) || /^[[:digit:]]+(\.[[:digit:]]{2})?$/.match(price) )
52
+ raise BitPay::ArgumentError, "Illegal Argument: Currency is invalid." unless /^[[:upper:]]{3}$/.match(currency)
53
+ params.merge!({price: price, currency: currency})
54
+ response = send_request("POST", "invoices", facade: facade, params: params)
55
+ response["data"]
56
+ end
114
57
 
115
- request['User-Agent'] = @user_agent
116
- request['Content-Type'] = 'application/json'
117
- request['X-BitPay-Plugin-Info'] = 'Rubylib' + VERSION
58
+ def get_public_invoice(id:)
59
+ request = Net::HTTP::Get.new("/invoices/#{id}")
60
+ response = process_request(request)
61
+ response["data"]
62
+ end
63
+
64
+ def set_token
65
+ end
118
66
 
119
- begin
120
- response = @https.request request
121
- rescue => error
122
- raise BitPay::ConnectionError, "#{error.message}"
67
+ def verify_token
68
+ server_tokens = load_tokens
69
+ @tokens.each{|key, value| return false if server_tokens[key] != value}
70
+ return true
71
+ end
72
+ ## Generates REST request to api endpoint
73
+
74
+ def send_request(verb, path, facade: 'merchant', params: {}, token: nil)
75
+ token ||= get_token(facade)
76
+
77
+ # Verb-specific logic
78
+ case verb.upcase
79
+ when "GET"
80
+ urlpath = '/' + path + '?nonce=' + KeyUtils.nonce + '&token=' + token
81
+ request = Net::HTTP::Get.new urlpath
82
+ request['X-Signature'] = KeyUtils.sign(@uri.to_s + urlpath, @priv_key)
83
+
84
+ when "PUT"
85
+
86
+ when "POST" # Requires a GUID
87
+
88
+ urlpath = '/' + path
89
+ request = Net::HTTP::Post.new urlpath
90
+ params[:token] = token
91
+ params[:nonce] = KeyUtils.nonce
92
+ params[:guid] = SecureRandom.uuid
93
+ params[:id] = @client_id
94
+ request.body = params.to_json
95
+ request['X-Signature'] = KeyUtils.sign(@uri.to_s + urlpath + request.body, @priv_key)
96
+
97
+ when "DELETE"
98
+
99
+ raise(BitPayError, "Invalid HTTP verb: #{verb.upcase}")
100
+ end
101
+
102
+ # Build request headers and submit
103
+ request['X-Identity'] = @pub_key
104
+
105
+ response = process_request(request)
123
106
  end
124
107
 
125
- if response.kind_of? Net::HTTPSuccess
126
- return JSON.parse(response.body)
127
- elsif JSON.parse(response.body)["error"]
128
- raise(BitPayError, "#{response.code}: #{JSON.parse(response.body)['error']}")
129
- else
130
- raise BitPayError, "#{response.code}: #{JSON.parse(response.body)}"
108
+ ##### PRIVATE METHODS #####
109
+ private
110
+
111
+ ## Processes HTTP Request and returns parsed response
112
+ # Otherwise throws error
113
+ #
114
+ def process_request(request)
115
+
116
+ request['User-Agent'] = @user_agent
117
+ request['Content-Type'] = 'application/json'
118
+ request['X-BitPay-Plugin-Info'] = 'Rubylib' + VERSION
119
+
120
+ begin
121
+ response = @https.request request
122
+ rescue => error
123
+ raise BitPay::ConnectionError, "#{error.message}"
124
+ end
125
+
126
+ if response.kind_of? Net::HTTPSuccess
127
+ return JSON.parse(response.body)
128
+ elsif JSON.parse(response.body)["error"]
129
+ raise(BitPayError, "#{response.code}: #{JSON.parse(response.body)['error']}")
130
+ else
131
+ raise BitPayError, "#{response.code}: #{JSON.parse(response.body)}"
132
+ end
133
+
131
134
  end
132
-
133
- end
134
135
 
135
- ## Requests token by appending nonce and signing URL
136
- # Returns a hash of available tokens
137
- #
138
- def load_tokens
136
+ ## Requests token by appending nonce and signing URL
137
+ # Returns a hash of available tokens
138
+ #
139
+ def load_tokens
139
140
 
140
- urlpath = '/tokens?nonce=' + KeyUtils.nonce
141
+ urlpath = '/tokens?nonce=' + KeyUtils.nonce
141
142
 
142
- request = Net::HTTP::Get.new(urlpath)
143
- request['x-identity'] = @pub_key
144
- request['x-signature'] = KeyUtils.sign(@uri.to_s + urlpath, @priv_key)
143
+ request = Net::HTTP::Get.new(urlpath)
144
+ request['x-identity'] = @pub_key
145
+ request['x-signature'] = KeyUtils.sign(@uri.to_s + urlpath, @priv_key)
145
146
 
146
- response = process_request(request)
147
+ response = process_request(request)
147
148
 
148
- token_array = response["data"] || {}
149
+ token_array = response["data"] || {}
149
150
 
150
- tokens = {}
151
- token_array.each do |t|
152
- tokens[t.keys.first] = t.values.first
153
- end
151
+ tokens = {}
152
+ token_array.each do |t|
153
+ tokens[t.keys.first] = t.values.first
154
+ end
154
155
 
155
- @tokens = tokens
156
- return tokens
156
+ @tokens = tokens
157
+ return tokens
157
158
 
158
- end
159
+ end
159
160
 
160
- ## Retrieves specified token from hash, otherwise tries to refresh @tokens and retry
161
- def set_pos_token(claim_code)
162
- params = {pairingCode: claim_code}
163
- urlpath = '/tokens'
164
- request = Net::HTTP::Post.new urlpath
165
- params[:guid] = SecureRandom.uuid
166
- params[:id] = @client_id
167
- request.body = params.to_json
168
- process_request(request)
169
- end
161
+ ## Retrieves specified token from hash, otherwise tries to refresh @tokens and retry
162
+ def set_pos_token(claim_code)
163
+ params = {pairingCode: claim_code}
164
+ urlpath = '/tokens'
165
+ request = Net::HTTP::Post.new urlpath
166
+ params[:guid] = SecureRandom.uuid
167
+ params[:id] = @client_id
168
+ request.body = params.to_json
169
+ process_request(request)
170
+ end
170
171
 
171
- def get_token(facade)
172
- token = @tokens[facade] || load_tokens[facade] || raise(BitPayError, "Not authorized for facade: #{facade}")
173
- end
172
+ def get_token(facade)
173
+ token = @tokens[facade] || load_tokens[facade] || raise(BitPayError, "Not authorized for facade: #{facade}")
174
+ end
174
175
 
175
- def verify_claim_code(claim_code)
176
- regex = /^[[:alnum:]]{7}$/
177
- matches = regex.match(claim_code)
178
- !(matches.nil?)
176
+ def verify_claim_code(claim_code)
177
+ regex = /^[[:alnum:]]{7}$/
178
+ matches = regex.match(claim_code)
179
+ !(matches.nil?)
180
+ end
179
181
  end
180
182
  end
181
183
  end
@@ -47,7 +47,7 @@ module BitPay
47
47
  end
48
48
 
49
49
  def get_private_key_from_pem pem
50
- raise BitPayError, MISSING_PEM
50
+ raise BitPayError, MISSING_PEM unless pem
51
51
  key = OpenSSL::PKey::EC.new(pem)
52
52
  get_private_key key
53
53
  end
@@ -3,5 +3,5 @@
3
3
  # or https://github.com/bitpay/php-bitpay-client/blob/master/LICENSE
4
4
 
5
5
  module BitPay
6
- VERSION = '2.1.1'
6
+ VERSION = '2.2.0'
7
7
  end
@@ -20,7 +20,7 @@ module BitPay
20
20
 
21
21
 
22
22
  # User agent reported to API
23
- USER_AGENT = 'ruby-bitpay-client '+VERSION
23
+ USER_AGENT = 'ruby-bitpay-sdk '+VERSION
24
24
 
25
25
  MISSING_PEM = 'No pem file specified. Pass pem string'
26
26
 
data/spec/client_spec.rb CHANGED
@@ -9,8 +9,8 @@ def tokens
9
9
  }
10
10
  end
11
11
 
12
- describe BitPay::Client do
13
- let(:bitpay_client) { BitPay::Client.new({api_uri: BitPay::TEST_API_URI}) }
12
+ describe BitPay::SDK::Client do
13
+ let(:bitpay_client) { BitPay::SDK::Client.new({api_uri: BitPay::TEST_API_URI}) }
14
14
  let(:claim_code) { "a12bc3d" }
15
15
 
16
16
  before do
@@ -14,7 +14,7 @@ describe "pairing a token", javascript: true, type: :feature do
14
14
  find(".token-claimcode", match: :first).text
15
15
  end
16
16
  let(:pem) { BitPay::KeyUtils.generate_pem }
17
- let(:client) { BitPay::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true) }
17
+ let(:client) { BitPay::SDK::Client.new(api_uri: ROOT_ADDRESS, pem: pem, insecure: true) }
18
18
 
19
19
  context "pairing an unpaired client" do
20
20
  it "should have no tokens before pairing" do
@@ -16,7 +16,7 @@ describe "create an invoice", javascript: true, type: :feature do
16
16
  find(".token-claimcode", match: :first).text
17
17
  }
18
18
  set_client = -> {
19
- client = BitPay::Client.new(api_uri: ROOT_ADDRESS, pem: PEM, insecure: true)
19
+ client = BitPay::SDK::Client.new(api_uri: ROOT_ADDRESS, pem: PEM, insecure: true)
20
20
  client.pair_pos_client(get_claim_code.call)
21
21
  client
22
22
  }
@@ -21,7 +21,7 @@ describe "create an invoice", javascript: true, type: :feature do
21
21
  find(".token-claimcode", match: :first).text
22
22
  }
23
23
  set_client = -> {
24
- client = BitPay::Client.new(api_uri: ROOT_ADDRESS, pem: PEM, insecure: true)
24
+ client = BitPay::SDK::Client.new(api_uri: ROOT_ADDRESS, pem: PEM, insecure: true)
25
25
  client.pair_pos_client(get_claim_code.call)
26
26
  client
27
27
  }
data/spec/spec_helper.rb CHANGED
@@ -3,9 +3,7 @@ require 'pry'
3
3
  require 'capybara/rspec'
4
4
  require 'capybara/poltergeist'
5
5
 
6
- require File.join File.dirname(__FILE__), '..', 'lib', 'bitpay', 'client.rb'
7
- require File.join File.dirname(__FILE__), '..', 'lib', 'bitpay', 'key_utils.rb'
8
- require File.join File.dirname(__FILE__), '..', 'lib', 'bitpay.rb'
6
+ require File.join File.dirname(__FILE__), '..', 'lib', 'bitpay_sdk.rb'
9
7
  require_relative '../config/constants.rb'
10
8
  require_relative '../config/capybara.rb'
11
9
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitpay-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bitpay, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-06 00:00:00.000000000 Z
11
+ date: 2015-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -228,12 +228,11 @@ files:
228
228
  - features/step_definitions/invoice_steps.rb
229
229
  - features/step_definitions/keygen_steps.rb
230
230
  - features/step_definitions/step_helpers.rb
231
- - lib/bitpay.rb
232
231
  - lib/bitpay/cacert.pem
233
232
  - lib/bitpay/client.rb
234
233
  - lib/bitpay/key_utils.rb
235
234
  - lib/bitpay/version.rb
236
- - lib/harness.rb
235
+ - lib/bitpay_sdk.rb
237
236
  - spec/client_spec.rb
238
237
  - spec/features/pair_spec.rb
239
238
  - spec/features/pos_spec.rb
data/lib/harness.rb DELETED
@@ -1,40 +0,0 @@
1
- # license Copyright 2011-2014 BitPay, Inc., MIT License
2
- # see http://opensource.org/licenses/MIT
3
- # or https://github.com/bitpay/php-bitpay-client/blob/master/LICENSE
4
-
5
- require_relative 'bitpay.rb'
6
- require_relative 'bitpay/key_utils.rb'
7
-
8
- # Test SIN Generation class methods
9
-
10
- # Generate SIN
11
- ENV["PRIV_KEY"] = "16d7c3508ec59773e71ae728d29f41fcf5d1f380c379b99d68fa9f552ce3ebc3"
12
- puts "privkey: #{ENV['PRIV_KEY']}"
13
- puts "target SIN: TfFVQhy2hQvchv4VVG4c7j4XPa2viJ9HrR8"
14
- puts "Derived SIN: #{BitPay::KeyUtils.get_client_id}"
15
-
16
- puts "\n\n------------------\n\n"
17
-
18
- uri = "https://localhost:8088"
19
- #name = "Ridonculous.label That shouldn't work really"
20
- name = "somethinginnocuous"
21
- facade = "pos"
22
- client_id = BitPay::KeyUtils.get_client_id
23
-
24
- BitPay::KeyUtils.generate_registration_url(uri,name,facade,client_id)
25
-
26
- puts "\n\n------------------\n\n"
27
-
28
- #### Test Invoice Creation using directly assigned keys
29
- ## (Ultimately pubkey and SIN should be derived)
30
-
31
- ENV["PRIV_KEY"] = "16d7c3508ec59773e71ae728d29f41fcf5d1f380c379b99d68fa9f552ce3ebc3"
32
- #ENV["pub_key"] = "0353a036fb495c5846f26a3727a28198da8336ae4f5aaa09e24c14a4126b5d969d"
33
- #ENV['SIN'] = "TfFVQhy2hQvchv4VVG4c7j4XPa2viJ9HrR8"
34
-
35
- client = BitPay::Client.new({insecure: true, debug: false})
36
-
37
- invoice = client.post 'invoices', {:price => 10.00, :currency => 'USD'}
38
-
39
- puts "Here's the invoice: \n" + JSON.pretty_generate(invoice)
40
-