blockbee 1.0.1 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 971520704d7a73596c7c0fcecff00c295a1b5c1e8fe445e05d15c9c89f58c86a
4
- data.tar.gz: ecbd1c47aa90667afa5b0cc6f5401e87bf75022a528b2cf402f9324707d8e617
3
+ metadata.gz: becf07a555e1c0b7698363dff5c0457f3d410c2a683fb10f17aa4c2534ec1e39
4
+ data.tar.gz: 5f0b5a6540ecfd72aa0b465452a2acdb6970556e7967e6354c8825872d6043be
5
5
  SHA512:
6
- metadata.gz: bca5ea223cd24d4b3a47bfaef5f59900c76b63d502f4bf298e8899a8936512801c1f53e0b2bd339b98d1ac1fe7c70d8ed2f46cc36f70fd68225658ef113d2ac2
7
- data.tar.gz: 6b67a974bbcecb05c1902b81116edbbe0444667eea1c6e77f8d7ec51be6a45235a2ba036afadd443fb408f3f87719da022d0907e4bdc980145b641d18b511f52
6
+ metadata.gz: cf2c2c22bfcfbaf8a05ef47f25dadfe0651d9867cc6d95debed0d6d0480976ccdcb55ba354055cc001db011a152dbb3149d42791f35cad644064e73742414732
7
+ data.tar.gz: 4595ea4e231ab5918e3ac0cc437cbc6f739e843076abf2949ad6f02f3e00d9db6abd5e750afae5d505943d86b408fa0839a5245d2e934584f9effa87c1adeaeb
data/CHANGELOG.md CHANGED
@@ -5,5 +5,8 @@
5
5
  ## 1.0.1
6
6
  * Minor bugfix
7
7
 
8
+ ## 1.1.0
9
+ * Various improvements
10
+
8
11
  ### Features
9
12
  - Support for BlockBee API, Payouts and Checkout page
data/README.md CHANGED
@@ -59,7 +59,7 @@ info = BlockBee::API.get_info(nil, prices)
59
59
  ```ruby
60
60
  require 'blockbee'
61
61
 
62
- blockbee_helper = BlockBee::API.new(coin, own_address, callback_url, parameters, bb_params, api_key)
62
+ blockbee_helper = BlockBee::API.new(coin, callback_url, api_key, own_address: own_address, parameters: parameters, bb_params: bb_params)
63
63
 
64
64
  address = blockbee_helper.get_address
65
65
 
@@ -69,11 +69,11 @@ address = blockbee_helper.get_address
69
69
  #### Where:
70
70
 
71
71
  * ``coin`` is the coin you wish to use, from BlockBee's supported currencies (e.g 'btc', 'eth', 'erc20_usdt', ...).
72
- * ``own_address`` is your own crypto address, where your funds will be sent to.
73
72
  * ``callback_url`` is the URL that will be called upon payment.
74
- * ``parameters`` is any parameter you wish to send to identify the payment, such as `{orderId: 1234}`.
75
- * ``bb_params`` parameters that will be passed to BlockBee _(check which extra parameters are available here: https://docs.blockbee.io/#operation/create).
76
73
  * ``api_key`` is the API Key provided by BlockBee's [dashboard](https://dash.blockbee.io/).
74
+ * ``own_address`` (optional) is your own crypto address, where your funds will be sent to.
75
+ * ``parameters`` (optional) is any parameter you wish to send to identify the payment, such as `{orderId: 1234}`.
76
+ * ``bb_params`` (optional) parameters that will be passed to BlockBee _(check which extra parameters are available here: https://docs.blockbee.io/#operation/create).
77
77
 
78
78
  #### Response sample:
79
79
 
@@ -98,7 +98,7 @@ address = blockbee_helper.get_address
98
98
  ```ruby
99
99
  require 'blockbee'
100
100
 
101
- blockbee_helper = BlockBee::API.new(coin, own_address, callback_url, parameters, bb_params, api_key)
101
+ blockbee_helper = BlockBee::API.new(coin, callback_url, api_key, own_address: own_address, parameters: parameters, bb_params: bb_params)
102
102
 
103
103
  logs = blockbee_helper.get_logs
104
104
  ```
@@ -124,9 +124,9 @@ logs = blockbee_helper.get_logs
124
124
  ```ruby
125
125
  require 'blockbee'
126
126
 
127
- blockbee_helper = BlockBee::API.new(coin, own_address, callback_url, parameters, bb_params, api_key)
127
+ blockbee_helper = BlockBee::API.new(coin, callback_url, api_key, own_address: own_address, parameters: parameters, bb_params: bb_params)
128
128
 
129
- qrcode = blockbee_helper.get_qrcode(value, size)
129
+ qrcode = blockbee_helper.get_qrcode(value: value, size: size)
130
130
  ```
131
131
 
132
132
  #### Where:
@@ -185,7 +185,7 @@ estimation = BlockBee::API.get_estimate(coin, addresses, priority)
185
185
  ```ruby
186
186
  require 'blockbee'
187
187
 
188
- blockbee_helper = BlockBee::API.new(coin, own_address, callback_url, parameters, bb_params, api_key)
188
+ blockbee_helper = BlockBee::API.new(coin, callback_url, api_key, own_address: own_address, parameters: parameters, bb_params: bb_params)
189
189
 
190
190
  conversion = blockbee_helper.get_conversion(from_coin, value)
191
191
  ```
@@ -408,8 +408,8 @@ If `process` is `false`.
408
408
  {
409
409
  "status": "success",
410
410
  "request_ids": [
411
- 103227,
412
- 103228
411
+ "3825d29b-7a8f-47da-8623-e99850674247",
412
+ "d9925105-ea5f-4661-8d01-505096212ac5"
413
413
  ]
414
414
  }
415
415
  ```
@@ -418,6 +418,22 @@ If `process` is `true`.
418
418
  ```json
419
419
  {
420
420
  "status": "success",
421
+ "payout_info": {
422
+ "id": "d9219d07-a8e5-4d89-a869-3c5717a25b27",
423
+ "status": "Created",
424
+ "from": "",
425
+ "requests": {
426
+ "0xA8EbeD50f2e05fB4a25b2DdCdc651A7CA769B5CF": "0.300000000000000000",
427
+ "0xA6B78B56ee062185E405a1DDDD18cE8fcBC4395d": "0.200000000000000000"
428
+ },
429
+ "total_requested": "0.5",
430
+ "total_with_fee": "0.505",
431
+ "total_fiat": "",
432
+ "fee": "0.005",
433
+ "coin": "bep20_usdt",
434
+ "txid": "",
435
+ "timestamp": "05/03/2024 15:00:00"
436
+ },
421
437
  "queued": true
422
438
  }
423
439
  ```
@@ -450,7 +466,7 @@ list_payouts = BlockBee::API.list_payouts(coin, status, page, api_key, payout_re
450
466
  "status": "success",
451
467
  "payouts": [
452
468
  {
453
- "id": 2460,
469
+ "id": "3825d29b-7a8f-47da-8623-e99850674247",
454
470
  "status": "Done",
455
471
  "total_requested": "0.6",
456
472
  "total_with_fee": "0.606",
@@ -508,7 +524,7 @@ payout = BlockBee::API.create_payout_by_ids(api_key, payout_ids)
508
524
  {
509
525
  "status": "success",
510
526
  "payout_info": {
511
- "id": 2461,
527
+ "id": "d9219d07-a8e5-4d89-a869-3c5717a25b27",
512
528
  "status": "Created",
513
529
  "from": "",
514
530
  "requests": {
@@ -544,7 +560,23 @@ payout = BlockBee::API.process_payout(api_key, payout_ids)
544
560
 
545
561
  ```json
546
562
  {
547
- "status": "success",
563
+ "status": "success",
564
+ "payout_info": {
565
+ "id": "d9219d07-a8e5-4d89-a869-3c5717a25b27",
566
+ "status": "Created",
567
+ "from": "",
568
+ "requests": {
569
+ "0xA8EbeD50f2e05fB4a25b2DdCdc651A7CA769B5CF": "0.300000000000000000",
570
+ "0xA6B78B56ee062185E405a1DDDD18cE8fcBC4395d": "0.200000000000000000"
571
+ },
572
+ "total_requested": "0.5",
573
+ "total_with_fee": "0.505",
574
+ "total_fiat": "",
575
+ "fee": "0.005",
576
+ "coin": "bep20_usdt",
577
+ "txid": "",
578
+ "timestamp": "05/03/2024 15:00:00"
579
+ },
548
580
  "queued": true
549
581
  }
550
582
  ```
@@ -571,7 +603,7 @@ status = BlockBee::API.check_payout_status(api_key, payout_id)
571
603
  {
572
604
  "status": "success",
573
605
  "payout_info": {
574
- "id": 2463,
606
+ "id": "d9219d07-a8e5-4d89-a869-3c5717a25b27",
575
607
  "status": "Done",
576
608
  "from": "0x18B211A1Ba5880C7d62C250B6441C2400d588589",
577
609
  "requests": {
@@ -589,6 +621,42 @@ status = BlockBee::API.check_payout_status(api_key, payout_id)
589
621
  }
590
622
  ```
591
623
 
624
+ ## Testing
625
+
626
+ ### Option 1: Using .env file (Recommended)
627
+
628
+ 1. Copy the example environment file:
629
+ ```bash
630
+ cp .env.example .env
631
+ ```
632
+
633
+ 2. Edit `.env` with your actual API credentials:
634
+ ```bash
635
+ # Required: Your BlockBee API Key from https://dash.blockbee.io/
636
+ BLOCKBEE_API_KEY=your-actual-api-key-here
637
+
638
+ # Required: Callback URL for payment notifications
639
+ BLOCKBEE_CALLBACK_URL=https://your-domain.com/webhook
640
+ ```
641
+
642
+ 3. Install dependencies and run tests:
643
+ ```bash
644
+ bundle install
645
+ bundle exec rake test
646
+ ```
647
+
648
+ ### Option 2: Using environment variables
649
+
650
+ Alternatively, you can set environment variables directly:
651
+
652
+ ```bash
653
+ export BLOCKBEE_API_KEY="your-api-key-here"
654
+ export BLOCKBEE_CALLBACK_URL="https://your-domain.com/webhook"
655
+ bundle exec rake test
656
+ ```
657
+
658
+ **Note:** If no API key is provided, only basic tests (like version check) will run. The `.env` file is automatically ignored by git to keep your credentials secure.
659
+
592
660
  ## Help
593
661
 
594
662
  Need help?
data/lib/blockbee.rb CHANGED
@@ -35,23 +35,42 @@ module BlockBee
35
35
 
36
36
  class CallbackURLMissing < StandardError; end
37
37
 
38
- VERSION = "1.0.1"
38
+ class Error < StandardError; end
39
+
40
+ VERSION = "1.1.0"
39
41
 
40
42
  BLOCKBEE_URL = 'https://api.blockbee.io/'
41
43
  BLOCKBEE_HOST = 'api.blockbee.io'
42
44
 
43
45
  class API
44
46
  def initialize(coin, callback_url, api_key, own_address: '', parameters: {}, bb_params: {})
45
- raise BlockBee::MissingAPIKeyError, 'Provide your API Key' if api_key.nil?
46
- raise BlockBee::CallbackURLMissing, 'Provide your callback URL' if callback_url.nil?
47
-
48
- _cb = URI::parse(callback_url)
47
+ raise BlockBee::MissingAPIKeyError, 'Provide your API Key' if api_key.nil? || api_key.empty?
48
+ raise BlockBee::CallbackURLMissing, 'Provide your callback URL' if callback_url.nil? || callback_url.empty?
49
+ raise ArgumentError, 'Coin must be a string' unless coin.nil? || coin.is_a?(String)
50
+ raise ArgumentError, 'Parameters must be a hash' unless parameters.is_a?(Hash)
51
+ raise ArgumentError, 'BB params must be a hash' unless bb_params.is_a?(Hash)
52
+
53
+ begin
54
+ _cb = URI.parse(callback_url)
55
+ raise ArgumentError, 'Invalid callback URL' unless _cb.scheme && _cb.host
56
+ rescue URI::InvalidURIError
57
+ raise ArgumentError, 'Invalid callback URL format'
58
+ end
49
59
 
50
- @callback_url = URI::HTTPS.build(
51
- host: _cb.host,
52
- path: _cb.path,
53
- query: URI.encode_www_form(parameters)
54
- )
60
+ # Preserve original scheme (HTTP/HTTPS) for development flexibility
61
+ if _cb.scheme.downcase == 'https'
62
+ @callback_url = URI::HTTPS.build(
63
+ host: _cb.host,
64
+ path: _cb.path,
65
+ query: URI.encode_www_form(parameters)
66
+ )
67
+ else
68
+ @callback_url = URI::HTTP.build(
69
+ host: _cb.host,
70
+ path: _cb.path,
71
+ query: URI.encode_www_form(parameters)
72
+ )
73
+ end
55
74
 
56
75
  @coin = coin
57
76
  @own_address = own_address
@@ -93,6 +112,10 @@ module BlockBee
93
112
 
94
113
  def get_qrcode(value: nil, size: 300)
95
114
  return nil if @coin.nil?
115
+
116
+ raise ArgumentError, 'Size must be a positive integer' unless size.is_a?(Integer) && size > 0
117
+ raise ArgumentError, 'Value must be numeric if provided' unless value.nil? || value.is_a?(Numeric)
118
+ raise ArgumentError, 'Value must be positive if provided' if value.is_a?(Numeric) && value <= 0
96
119
 
97
120
  address = @payment_address
98
121
 
@@ -237,7 +260,10 @@ module BlockBee
237
260
 
238
261
  class Checkout
239
262
  def initialize(parameters: {}, bb_params: {}, notify_url:, api_key:)
240
- raise BlockBee::MissingAPIKeyError, 'Provide your API Key' if api_key.nil?
263
+ raise BlockBee::MissingAPIKeyError, 'Provide your API Key' if api_key.nil? || api_key.empty?
264
+ raise BlockBee::CallbackURLMissing, 'Provide your notify URL' if notify_url.nil? || notify_url.empty?
265
+ raise ArgumentError, 'Parameters must be a hash' unless parameters.is_a?(Hash)
266
+ raise ArgumentError, 'BB params must be a hash' unless bb_params.is_a?(Hash)
241
267
 
242
268
  @parameters = parameters
243
269
  @bb_params = bb_params
@@ -245,18 +271,42 @@ module BlockBee
245
271
  @notify_url = notify_url
246
272
 
247
273
  if @parameters
248
- _nu = URI::parse(notify_url)
274
+ begin
275
+ _nu = URI.parse(notify_url)
276
+ raise ArgumentError, 'Invalid notify URL' unless _nu.scheme && _nu.host
277
+ rescue URI::InvalidURIError
278
+ raise ArgumentError, 'Invalid notify URL format'
279
+ end
249
280
 
250
- @notify_url = URI::HTTPS.build(
251
- host: _nu.host,
252
- path: _nu.path,
253
- query: URI.encode_www_form(parameters)
254
- )
281
+ # Preserve original scheme (HTTP/HTTPS) for development flexibility
282
+ if _nu.scheme.downcase == 'https'
283
+ @notify_url = URI::HTTPS.build(
284
+ host: _nu.host,
285
+ path: _nu.path,
286
+ query: URI.encode_www_form(parameters)
287
+ )
288
+ else
289
+ @notify_url = URI::HTTP.build(
290
+ host: _nu.host,
291
+ path: _nu.path,
292
+ query: URI.encode_www_form(parameters)
293
+ )
294
+ end
255
295
  end
256
296
  end
257
297
 
258
298
  def payment_request(redirect_url, value)
259
299
  raise ArgumentError, 'Provide a valid number' unless value.is_a?(Numeric)
300
+ raise ArgumentError, 'Value must be positive' unless value > 0
301
+ raise ArgumentError, 'Redirect URL cannot be empty' if redirect_url.nil? || redirect_url.empty?
302
+
303
+ # Validate redirect URL format
304
+ begin
305
+ _redirect = URI.parse(redirect_url)
306
+ raise ArgumentError, 'Invalid redirect URL' unless _redirect.scheme && _redirect.host
307
+ rescue URI::InvalidURIError
308
+ raise ArgumentError, 'Invalid redirect URL format'
309
+ end
260
310
 
261
311
  _params = {
262
312
  'redirect_url' => redirect_url,
data/sig/blockbee.rbs CHANGED
@@ -1,111 +1,83 @@
1
1
  module BlockBee
2
- BLOCKBEE_HOST: string
3
- BLOCKBEE_URL: string
2
+ BLOCKBEE_HOST: String
3
+ BLOCKBEE_URL: String
4
4
  VERSION: String
5
5
 
6
- class APIError
6
+ class APIError < StandardError
7
7
  @status_code: Integer
8
8
 
9
- def self.from_status_code: -> untyped
9
+ def initialize: (String message, Integer status_code) -> void
10
+ def self.from_status_code: (Integer status_code, String message) -> APIError
10
11
 
11
12
  attr_reader status_code: Integer
12
13
  end
13
14
 
15
+ class MissingAPIKeyError < StandardError
16
+ end
17
+
18
+ class CallbackURLMissing < StandardError
19
+ end
20
+
21
+ class Error < StandardError
22
+ end
23
+
14
24
  class API
15
- @callback_url: string
16
- @coin: string
17
- @own_address: string
18
- @coin: string
25
+ @callback_url: String
26
+ @coin: String?
27
+ @own_address: String
19
28
  @parameters: Hash[untyped, untyped]
20
29
  @bb_params: Hash[untyped, untyped]
21
- @api_key: string
22
- @payment_address: string
30
+ @api_key: String
31
+ @payment_address: String
23
32
 
24
- def get_address: -> string
33
+ def initialize: (String? coin, String callback_url, String api_key, ?own_address: String, ?parameters: Hash[untyped, untyped], ?bb_params: Hash[untyped, untyped]) -> void
25
34
 
26
- def get_conversion: -> untyped
35
+ def get_address: () -> Hash[String, untyped]?
27
36
 
28
- def get_logs: -> untyped
37
+ def get_logs: () -> Hash[String, untyped]
29
38
 
30
- def get_qrcode: -> untyped
39
+ def get_qrcode: (?value: Numeric?, ?size: Integer) -> Hash[String, untyped]
31
40
 
32
- def self.get_info: -> untyped
41
+ def get_conversion: (String from_coin, Numeric value) -> Hash[String, untyped]
33
42
 
34
- def self.get_supported_coins: -> untyped
43
+ def self.get_info: (String? coin, ?prices: Integer) -> Hash[String, untyped]
35
44
 
36
- def self.get_estimate: -> untyped
45
+ def self.get_supported_coins: () -> Hash[String, String]
37
46
 
38
- def self.create_payout: -> untyped
47
+ def self.get_estimate: (String coin, String api_key, ?addresses: Integer, ?priority: String) -> Hash[String, untyped]
39
48
 
40
- def self.list_payouts: -> untyped
49
+ def self.create_payout: (String coin, Hash[String, Numeric] payout_requests, String api_key, ?process: bool) -> Hash[String, untyped]
41
50
 
42
- def self.get_payout_wallet: -> untyped
51
+ def self.list_payouts: (String coin, String api_key, ?status: String, ?page: Integer, ?payout_request: bool) -> Hash[String, untyped]
43
52
 
44
- def self.create_payout_by_ids: -> untyped
53
+ def self.get_payout_wallet: (String coin, String api_key, ?bool balance) -> Hash[String, untyped]
45
54
 
46
- def self.process_payout: -> untyped
55
+ def self.create_payout_by_ids: (String api_key, Array[Integer] payout_ids) -> Hash[String, untyped]
47
56
 
48
- def self.check_payout_status: -> untyped
57
+ def self.process_payout: (String api_key, Integer payout_id) -> Hash[String, untyped]
49
58
 
59
+ def self.check_payout_status: (String api_key, Integer payout_id) -> Hash[String, untyped]
50
60
  end
51
61
 
52
62
  class Checkout
63
+ @api_key: String
64
+ @bb_params: Hash[untyped, untyped]
65
+ @parameters: Hash[untyped, untyped]
66
+ @notify_url: String
53
67
 
54
- @api_key: string
55
- @bb_params: hash[untyped, untyped]
56
- @parameters: hash[untyped, untyped]
57
- @notify_url: string
58
-
59
- def self.deposit_logs: -> untyped
68
+ def initialize: (?parameters: Hash[untyped, untyped], ?bb_params: Hash[untyped, untyped], notify_url: String, api_key: String) -> void
60
69
 
61
- def self.payment_logs: -> untyped
70
+ def self.deposit_logs: (String token, String api_key) -> Hash[String, untyped]
62
71
 
63
- def deposit_request: -> untyped
72
+ def self.payment_logs: (String token, String api_key) -> Hash[String, untyped]
64
73
 
65
- def payment_request: -> untyped
74
+ def deposit_request: () -> Hash[String, untyped]
66
75
 
76
+ def payment_request: (String redirect_url, Numeric value) -> Hash[String, untyped]?
67
77
  end
68
78
 
69
79
  private
70
80
 
71
- def self.process_request_get: -> untyped
72
- def self.process_request_post: -> untyped
73
- end
74
-
75
- class TestBlockBee
76
- def test_can_check_payout_status: -> TrueClass
77
-
78
- def test_can_create_checkout_payment: -> TrueClass
79
-
80
- def test_can_create_deposit: -> TrueClass
81
-
82
- def test_can_create_payout_by_is: -> TrueClass
83
-
84
- def test_can_create_payouts: -> TrueClass
85
-
86
- def test_can_fetch_deposit_logs: -> TrueClass
87
-
88
- def test_can_fetch_logs: -> TrueClass
89
-
90
- def test_can_fetch_payment_logs: -> TrueClass
91
-
92
- def test_can_generate_address: -> TrueClass
93
-
94
- def test_can_get_conversion: -> TrueClass
95
-
96
- def test_can_get_estimate: -> TrueClass
97
-
98
- def test_can_get_info: -> TrueClass
99
-
100
- def test_can_get_payout_wallet: -> TrueClass
101
-
102
- def test_can_get_qrcode: -> TrueClass
103
-
104
- def test_can_get_supported_coins: -> TrueClass
105
-
106
- def test_can_list_payouts: -> TrueClass
107
-
108
- def test_can_process_payout_by_id: -> TrueClass
109
-
110
- def test_that_it_has_a_version_number: -> TrueClass
81
+ def self.process_request_get: (String? coin, String endpoint, ?params: Hash[String, untyped]) -> Hash[String, untyped]
82
+ def self.process_request_post: (String? coin, String endpoint, String api_key, ?body: Hash[String, untyped]?, ?is_json: bool) -> Hash[String, untyped]
111
83
  end
metadata CHANGED
@@ -1,23 +1,34 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blockbee
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BlockBee
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-04-22 00:00:00.000000000 Z
12
- dependencies: []
13
- description:
10
+ date: 2025-09-25 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: dotenv
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.8'
19
+ type: :development
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.8'
14
26
  email:
15
27
  - info@blockbee.io
16
28
  executables: []
17
29
  extensions: []
18
30
  extra_rdoc_files: []
19
31
  files:
20
- - ".DS_Store"
21
32
  - CHANGELOG.md
22
33
  - LICENSE.txt
23
34
  - README.md
@@ -32,7 +43,6 @@ metadata:
32
43
  homepage_uri: https://blockbee.io
33
44
  source_code_uri: https://github.com/blockbee-io/ruby-blockbee
34
45
  changelog_uri: https://github.com/blockbee-io/ruby-blockbee/blob/master/CHANGELOG.md
35
- post_install_message:
36
46
  rdoc_options: []
37
47
  require_paths:
38
48
  - lib
@@ -47,8 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
57
  - !ruby/object:Gem::Version
48
58
  version: '0'
49
59
  requirements: []
50
- rubygems_version: 3.5.9
51
- signing_key:
60
+ rubygems_version: 3.6.6
52
61
  specification_version: 4
53
62
  summary: Ruby implementation of BlockBee's payment gateway
54
63
  test_files: []
data/.DS_Store DELETED
Binary file