solana_rpc_ruby 1.1.2 → 1.1.3

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
  SHA256:
3
- metadata.gz: 8b7222921d3f0a3c871c1c526d98b92905a0b36d797d715e20be4b7fce6cf8bd
4
- data.tar.gz: ba730231dfddf48626c303f14bd090c917f3e57d3d96669cfa4554bc0a15b2ec
3
+ metadata.gz: 40da92a5e69a9f6702d3e8b7adce0f85c395f8a9940252f5db632e122d96b33b
4
+ data.tar.gz: 0fc87abef590b6ed032dbde09f396cc5a82236c669bcd38be5ebcbbf1ce7754e
5
5
  SHA512:
6
- metadata.gz: 670e87f8075a9327fc341c827573f381b22b9b1340c8513f2930e6921964f481fb2799232e0e6b431fe2384b17e28c7b8cc74dd1393c4e578ee31386158f1089
7
- data.tar.gz: 760a3cd65c4f10cb17b4a1f65569dc542c30489bd26027410f765e591f50c89a2d50953aa2619d73af1e4a2f92b9d754e41a86ef7ebfe4c042d19b47e65b879a
6
+ metadata.gz: b714f4b08f9fd0883dd345edad9c7399e78f24ebedae0159da050274996875e2e14cfc652e6036a86a2385f0b35197d8eaceaacada4ab188806d5eb98d0046ef
7
+ data.tar.gz: 544aabfad980bd7f1af800c2d80a9d363d16fbc5c7773146024834b34f96522d8d5a4d5596a34bc6ec688e5f0478e25d80269658640223a73a5cafba4cca46c6
data/CHANGELOG.md CHANGED
@@ -18,3 +18,7 @@
18
18
  * Add new badges.
19
19
  * Handle new errors (Errno::ECONNREFUSED, SocketError)
20
20
  * Code maintenance and cleanup.
21
+
22
+ ## 1.1.3
23
+ * Increase open_timeout and read_timeout.
24
+ * New specs.
@@ -4,6 +4,9 @@ module SolanaRpcRuby
4
4
  # ApiClient class serves as a client for solana JSON RPC API.
5
5
  # @see https://docs.solana.com/developing/clients/jsonrpc-api
6
6
  class ApiClient
7
+ OPEN_TIMEOUT = 120
8
+ READ_TIMEOUT = 120
9
+
7
10
  # Determines which cluster will be used to send requests.
8
11
  # @return [String]
9
12
  attr_accessor :cluster
@@ -30,27 +33,33 @@ module SolanaRpcRuby
30
33
  #
31
34
  # @return [Object] Net::HTTPOK
32
35
  def call_api(body:, http_method:, params: {})
33
- uri = URI(@cluster)
34
- rpc_response = Net::HTTP.public_send(
35
- http_method,
36
- uri,
37
- body,
38
- default_headers,
39
- )
36
+ uri = URI.parse(@cluster)
37
+
38
+ request = Net::HTTP::Post.new(uri, default_headers)
39
+ request.body = body
40
40
 
41
- rpc_response
41
+ Net::HTTP.start(
42
+ uri.host,
43
+ uri.port,
44
+ use_ssl: true,
45
+ open_timeout: OPEN_TIMEOUT,
46
+ read_timeout: READ_TIMEOUT
47
+ ) do |http|
48
+ http.request(request)
49
+ end
42
50
 
43
51
  rescue Timeout::Error,
44
52
  Net::HTTPError,
45
53
  Net::HTTPNotFound,
46
54
  Net::HTTPClientException,
55
+ Net::HTTPServerException,
47
56
  Net::HTTPFatalError,
48
57
  Net::ReadTimeout,
49
58
  Errno::ECONNREFUSED,
50
59
  SocketError => e
60
+
51
61
  fail ApiError.new(error_class: e.class, message: e.message)
52
62
  rescue StandardError => e
53
-
54
63
  message = "#{e.class} #{e.message}\n Backtrace: \n #{e.backtrace}"
55
64
  fail ApiError.new(error_class: e.class, message: e.message)
56
65
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolanaRpcRuby
4
- VERSION = '1.1.2'
4
+ VERSION = '1.1.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solana_rpc_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Block Logic Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-12 00:00:00.000000000 Z
11
+ date: 2021-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faye-websocket