solana_rpc_ruby 1.0.0.pre → 1.0.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: 8bea15d348b3cc9652473f49747cff8a89992b43543bcf3d569c1aef933c03cf
4
- data.tar.gz: d9741e5591c96851ba5d71c70ac09687e7888748e5a82dcbde3e2eab3cebff7f
3
+ metadata.gz: d7e06c7b9170275c6f9c2db723a176c2299c9bfbfb17f162f3ae4932b96a2bec
4
+ data.tar.gz: 81a53fd34e8f748201a118dcc8d19572aee2da3faf96376f2271370a5ac6364f
5
5
  SHA512:
6
- metadata.gz: f28f02c36ed297a1fb527244e2e4e859a636920bd99c9a8cdc4fd20b2f345738d8c2fd011786ccbe4f2b69677d4d089cee77b85572dbb55b18cd6a94ad89e931
7
- data.tar.gz: c6ac7e9ee342c856553bcb3053c50f8dee9db48c667946a5d0ecb775b3b026c39eacfed59b254697d0aebe1b89c2a933cff7b4f65b72823855f9dc7d1a48b69a
6
+ metadata.gz: e51c2162d5f3f8e49d33847f9f37e38ec3088d0a7deaf7900d0c3eb7239370be2836e1d93407e529f9833def7dc76cf9e7eb74aa4a23ca2cda415f4244a0ea1b
7
+ data.tar.gz: 719c862c3d0a4e8a6dbe44a9300b05df6aa6be22dd689ffcfd0e1b8fb778f0d5f44aa90d5bfc80cb6a7dfeed61c0e5bd4a3cec3b9ee2155ac26f971e4428353e
data/README.md CHANGED
@@ -21,7 +21,7 @@ Next, you need to run the generator:
21
21
  rails g solana_rpc_ruby:install
22
22
  ```
23
23
 
24
- The latter command will generate a new config file `config/solana_rpc_ruby_config.rb` looking like this:
24
+ The latter command will generate a new config file `config/initializers/solana_rpc_ruby_config.rb` looking like this:
25
25
 
26
26
  ```ruby
27
27
  require 'solana_rpc_ruby'
@@ -29,7 +29,6 @@ require 'solana_rpc_ruby'
29
29
  SolanaRpcRuby.config do |c|
30
30
  c.cluster = 'https://api.testnet.solana.com'
31
31
  c.json_rpc_version = '2.0'
32
- c.encoding = 'base58'
33
32
  # ...other options
34
33
  end
35
34
  ```
@@ -43,7 +42,8 @@ response = method_wrapper.get_account_info(account_pubkey)
43
42
  puts response
44
43
  ```
45
44
 
46
- All info about methods you can find in the docs on: FILL THE ADDRESS!!!
45
+ All info about methods you can find in the docs on: https://www.rubydoc.info/github/Block-Logic/solana-rpc-ruby/main/SolanaRpcRuby
46
+
47
47
  Also, as a reference you can use docs from solana: https://docs.solana.com/developing/clients/jsonrpc-api
48
48
  ## License
49
49
 
@@ -6,7 +6,7 @@ module SolanaRpcRuby
6
6
 
7
7
  desc 'Creates a SolanaRpcRuby config file.'
8
8
  def copy_config
9
- template 'solana_rpc_ruby_config.rb', "#{Rails.root}/config/solana_rpc_ruby.rb"
9
+ template 'solana_rpc_ruby_config.rb', "#{Rails.root}/config/initializers/solana_rpc_ruby.rb"
10
10
  end
11
11
  end
12
12
  end
@@ -1,14 +1,11 @@
1
1
  require_relative 'solana_rpc_ruby'
2
2
 
3
- # DEVNET_CLUSTER = 'https://api.devnet.solana.com'
4
- # MAINNET_CLUSTER = 'https://api.mainnet-beta.solana.com'
5
- # TESTNET_CLUSTER = 'https://api.testnet.solana.com'
6
-
7
3
  SolanaRpcRuby.config do |c|
8
- # These are mandatory options that you must set before using gem:
4
+ # These are options that you can set before using gem:
9
5
  #
6
+ # You can use this setting or pass cluster directly, check the docs.
10
7
  # c.cluster = 'https://api.testnet.solana.com'
11
- # c.json_rpc = '2.0
12
- # c.encoding = 'base58'
13
- # c.id = 1
8
+
9
+ # This one is mandatory.
10
+ c.json_rpc_version = '2.0'
14
11
  end
@@ -14,10 +14,6 @@ module SolanaRpcRuby
14
14
  # @return [String] json rpc version.
15
15
  attr_accessor :json_rpc_version
16
16
 
17
- # Default encoding that will be used.
18
- # @return [String] encoding.
19
- attr_accessor :encoding
20
-
21
17
  # Config set from initializer.
22
18
  # @return [String] encoding.
23
19
  def config
@@ -1,5 +1,4 @@
1
1
  require 'net/http'
2
-
3
2
  module SolanaRpcRuby
4
3
  ##
5
4
  # ApiClient class serves as a client for solana JSON RPC API.
@@ -14,29 +13,29 @@ module SolanaRpcRuby
14
13
  attr_accessor :default_headers
15
14
 
16
15
  # Initialize object with cluster address where requests will be sent.
17
- #
18
- # @param cluster [String]
16
+ #
17
+ # @param cluster [String]
19
18
  def initialize(cluster = nil)
20
19
  @cluster = cluster || SolanaRpcRuby.cluster
21
20
 
22
21
  message = 'Cluster is missing. Please provide default cluster in config or pass it to the client directly.'
23
22
  raise ArgumentError, message unless @cluster
24
23
  end
25
-
24
+
26
25
  # Sends request to the api.
27
26
  #
28
- # @param body [Hash]
27
+ # @param body [Hash]
29
28
  # @param http_method [Symbol]
30
29
  # @param params [Hash]
31
- #
30
+ #
32
31
  # @return [Object] Net::HTTPOK
33
32
  def call_api(body:, http_method:, params: {})
34
33
  uri = URI(@cluster)
35
34
  rpc_response = Net::HTTP.public_send(
36
- http_method,
37
- uri,
38
- body,
39
- default_headers,
35
+ http_method,
36
+ uri,
37
+ body,
38
+ default_headers,
40
39
  )
41
40
 
42
41
  rpc_response
@@ -44,12 +43,12 @@ module SolanaRpcRuby
44
43
  rescue Timeout::Error,
45
44
  Net::HTTPError,
46
45
  Net::HTTPNotFound,
47
- Net::HTTPServerException,
46
+ Net::HTTPClientException,
48
47
  Net::HTTPFatalError,
49
48
  Net::ReadTimeout => e
50
-
51
49
  fail ApiError.new(message: e.message)
52
50
  rescue StandardError => e
51
+
53
52
  message = "#{e.class} #{e.message}\n Backtrace: \n #{e.backtrace}"
54
53
  fail ApiError.new(message: message)
55
54
  end
@@ -6,20 +6,20 @@ module SolanaRpcRuby
6
6
  # Error code.
7
7
  # @return [Integer]
8
8
  attr_reader :code
9
-
9
+
10
10
  # Error message.
11
11
  # @return [String]
12
12
  attr_reader :message
13
-
13
+
14
14
  # Initialize object with json response from the API with error.
15
- #
15
+ #
16
16
  # @param code [Integer]
17
17
  # @param message [String]
18
- #
18
+ #
19
19
  # @return [SolanaRpcRuby::ApiError]
20
20
  def initialize(code: nil, message:)
21
21
  @code = code
22
- @message = message
22
+ @message = message.to_s
23
23
 
24
24
  super message
25
25
  end
@@ -1,5 +1,4 @@
1
1
  require 'json'
2
- require 'pry'
3
2
  require_relative 'request_body'
4
3
  require_relative 'helper_methods'
5
4
 
@@ -21,22 +20,22 @@ module SolanaRpcRuby
21
20
  attr_accessor :cluster
22
21
 
23
22
  # Initialize object with cluster address where requests will be sent.
24
- #
23
+ #
25
24
  # @param api_client [ApiClient]
26
- # @param cluster [String] cluster where requests will be sent.
25
+ # @param cluster [String] cluster where requests will be sent.
27
26
  def initialize(api_client: ApiClient, cluster: SolanaRpcRuby.cluster)
28
27
  @api_client = api_client.new(cluster)
29
28
  end
30
29
 
31
30
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getaccountinfo
32
31
  # Returns all information associated with the account of provided Pubkey
33
- #
32
+ #
34
33
  # @param account_pubkey [String]
35
34
  # @param encoding [String]
36
35
  # @param data_slice [Hash]
37
36
  # @option data_slice [Integer] :offset
38
37
  # @option data_slice [Integer] :length
39
- #
38
+ #
40
39
  # @return [Response, ApiError] Response when success, ApiError on failure.
41
40
  def get_account_info(account_pubkey, encoding: '', data_slice: {})
42
41
  http_method = :post
@@ -58,10 +57,10 @@ module SolanaRpcRuby
58
57
 
59
58
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getbalance
60
59
  # Returns the balance of the account of provided Pubkey
61
- #
60
+ #
62
61
  # @param account_pubkey [String]
63
62
  # @param commitment [String]
64
- #
63
+ #
65
64
  # @return [Response, ApiError] Response when success, ApiError on failure.
66
65
  def get_balance(account_pubkey, commitment: nil)
67
66
  http_method = :post
@@ -84,13 +83,13 @@ module SolanaRpcRuby
84
83
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getblock
85
84
  # NEW: This method is only available in solana-core v1.7 or newer. Please use getConfirmedBlock for solana-core v1.6
86
85
  # Returns identity and transaction information about a confirmed block in the ledger
87
- #
86
+ #
88
87
  # @param slot [Integer]
89
88
  # @param encoding [String]
90
89
  # @param transaction_details [String]
91
90
  # @param rewards [Boolean]
92
91
  # @param commitment [String]
93
- #
92
+ #
94
93
  # @return [Response, ApiError] Response when success, ApiError on failure.
95
94
  def get_block(slot, encoding: '', transaction_details: '', rewards: true, commitment: nil)
96
95
  http_method = :post
@@ -114,9 +113,9 @@ module SolanaRpcRuby
114
113
 
115
114
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getblockheight
116
115
  # Returns the current block height of the node
117
- #
116
+ #
118
117
  # @param commitment [String]
119
- #
118
+ #
120
119
  # @return [Response, ApiError] Response when success, ApiError on failure.
121
120
  def get_block_height(commitment: nil)
122
121
  http_method = :post
@@ -135,13 +134,13 @@ module SolanaRpcRuby
135
134
 
136
135
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getblockproduction
137
136
  # Returns recent block production information from the current or previous epoch.
138
- #
137
+ #
139
138
  # @param identity [String]
140
139
  # @param range [Hash]
141
140
  # @option range [Integer] first_slot (required for range)
142
141
  # @option range [Integer] last_slot (optional for range)
143
142
  # @param commitment [String]
144
- #
143
+ #
145
144
  # @return [Response, ApiError] Response when success, ApiError on failure.
146
145
  def get_block_production(identity: nil, range: {}, commitment: nil)
147
146
  http_method = :post
@@ -153,7 +152,7 @@ module SolanaRpcRuby
153
152
 
154
153
  range_hash['firstSlot'] = range[:first_slot] unless !range.key?(:first_slot)
155
154
  range_hash['lastSlot'] = range[:last_slot] unless !range.key?(:last_slot)
156
-
155
+
157
156
  params_hash['identity'] = identity unless blank?(identity)
158
157
  params_hash['range'] = range_hash unless range_hash.empty?
159
158
 
@@ -166,9 +165,9 @@ module SolanaRpcRuby
166
165
 
167
166
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getblockcommitment
168
167
  # Returns commitment for particular block
169
- #
168
+ #
170
169
  # @param block [Integer]
171
- #
170
+ #
172
171
  # @return [Response, ApiError] Response when success, ApiError on failure.
173
172
  def get_block_commitment(block)
174
173
  http_method = :post
@@ -186,10 +185,10 @@ module SolanaRpcRuby
186
185
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getblocks
187
186
  # NEW: This method is only available in solana-core v1.7 or newer. Please use getConfirmedBlocks for solana-core v1.6
188
187
  # Returns a list of confirmed blocks between two slots
189
- #
188
+ #
190
189
  # @param start_slot [Integer]
191
190
  # @param end_slot [Integer]
192
- #
191
+ #
193
192
  # @return [Response, ApiError] Response when success, ApiError on failure.
194
193
  def get_blocks(start_slot, end_slot: nil)
195
194
  http_method = :post
@@ -208,11 +207,11 @@ module SolanaRpcRuby
208
207
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getblockswithlimit
209
208
  # NEW: This method is only available in solana-core v1.7 or newer. Please use getConfirmedBlocks for solana-core v1.6
210
209
  # Returns a list of confirmed blocks starting at the given slot
211
- #
210
+ #
212
211
  # @param start_slot [Integer]
213
212
  # @param limit [Integer]
214
213
  # @param commitment [String]
215
- #
214
+ #
216
215
  # @return [Response, ApiError] Response when success, ApiError on failure.
217
216
  def get_blocks_with_limit(start_slot, limit, commitment: nil)
218
217
  http_method = :post
@@ -234,9 +233,9 @@ module SolanaRpcRuby
234
233
 
235
234
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getblocktime
236
235
  # Returns the estimated production time of a block.
237
- #
236
+ #
238
237
  # @param block [Integer]
239
- #
238
+ #
240
239
  # @return [Response, ApiError] Response when success, ApiError on failure.
241
240
  def get_block_time(block)
242
241
  http_method = :post
@@ -253,7 +252,7 @@ module SolanaRpcRuby
253
252
 
254
253
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getclusternodes
255
254
  # Returns information about all the nodes participating in the cluster
256
- #
255
+ #
257
256
  # @return [Response, ApiError] Response when success, ApiError on failure.
258
257
  def get_cluster_nodes
259
258
  http_method = :post
@@ -267,10 +266,10 @@ module SolanaRpcRuby
267
266
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getepochinfo
268
267
  # DEPRECATED: Please use getBlocks instead This method is expected to be removed in solana-core v1.8
269
268
  # Returns a list of confirmed blocks between two slots
270
- #
269
+ #
271
270
  # @param start_slot [Integer]
272
271
  # @param end_slot [Integer]
273
- #
272
+ #
274
273
  # @return [Response, ApiError] Response when success, ApiError on failure.
275
274
  def get_confirmed_blocks(start_slot, end_slot: nil)
276
275
  http_method = :post
@@ -288,9 +287,9 @@ module SolanaRpcRuby
288
287
 
289
288
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getepochinfo
290
289
  # Returns information about the current epoch
291
- #
290
+ #
292
291
  # @param commitment [String]
293
- #
292
+ #
294
293
  # @return [Response, ApiError] Response when success, ApiError on failure.
295
294
  def get_epoch_info(commitment: nil)
296
295
  http_method = :post
@@ -300,7 +299,7 @@ module SolanaRpcRuby
300
299
  params_hash = {}
301
300
 
302
301
  params_hash['commitment'] = commitment unless blank?(commitment)
303
-
302
+
304
303
  params << params_hash unless params_hash.empty?
305
304
 
306
305
  body = create_json_body(method, method_params: params)
@@ -310,7 +309,7 @@ module SolanaRpcRuby
310
309
 
311
310
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getepochschedule
312
311
  # Returns epoch schedule information from this cluster's genesis config
313
- #
312
+ #
314
313
  # @return [Response, ApiError] Response when success, ApiError on failure.
315
314
  def get_epoch_schedule
316
315
  http_method = :post
@@ -323,10 +322,10 @@ module SolanaRpcRuby
323
322
 
324
323
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getfeecalculatorforblockhash
325
324
  # Returns the fee calculator associated with the query blockhash, or null if the blockhash has expired
326
- #
325
+ #
327
326
  # @param query_blockhash [String]
328
327
  # @param commitment [String]
329
- #
328
+ #
330
329
  # @return [Response, ApiError] Response when success, ApiError on failure.
331
330
  def get_fee_calculator_for_blockhash(query_blockhash, commitment: nil)
332
331
  http_method = :post
@@ -347,7 +346,7 @@ module SolanaRpcRuby
347
346
 
348
347
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getfeerategovernor
349
348
  # Returns the fee rate governor information from the root bank
350
- #
349
+ #
351
350
  # @return [Response, ApiError] Response when success, ApiError on failure.
352
351
  def get_fee_rate_governor
353
352
  http_method = :post
@@ -359,11 +358,11 @@ module SolanaRpcRuby
359
358
  end
360
359
 
361
360
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getfees
362
- # Returns a recent block hash from the ledger, a fee schedule that can be used to compute
361
+ # Returns a recent block hash from the ledger, a fee schedule that can be used to compute
363
362
  # the cost of submitting a transaction using it, and the last slot in which the blockhash will be valid.
364
- #
363
+ #
365
364
  # @param commitment [String]
366
- #
365
+ #
367
366
  # @return [Response, ApiError] Response when success, ApiError on failure.
368
367
  def get_fees(commitment: nil)
369
368
  http_method = :post
@@ -382,7 +381,7 @@ module SolanaRpcRuby
382
381
 
383
382
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getfirstavailableblock
384
383
  # Returns the slot of the lowest confirmed block that has not been purged from the ledger
385
- #
384
+ #
386
385
  # @return [Response, ApiError] Response when success, ApiError on failure.
387
386
  def get_first_available_block
388
387
  http_method = :post
@@ -395,12 +394,12 @@ module SolanaRpcRuby
395
394
 
396
395
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getgenesishash
397
396
  # Returns the genesis hash.
398
- #
397
+ #
399
398
  # @return [Response, ApiError] Response when success, ApiError on failure.
400
399
  def get_genesis_hash
401
400
  http_method = :post
402
401
  method = create_method_name(__method__)
403
-
402
+
404
403
  body = create_json_body(method)
405
404
 
406
405
  send_request(body, http_method)
@@ -408,12 +407,12 @@ module SolanaRpcRuby
408
407
 
409
408
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#gethealth
410
409
  # Returns the current health of the node.
411
- #
410
+ #
412
411
  # @return [Response, ApiError] Response when success, ApiError on failure.
413
412
  def get_health
414
413
  http_method = :post
415
414
  method = create_method_name(__method__)
416
-
415
+
417
416
  body = create_json_body(method)
418
417
 
419
418
  send_request(body, http_method)
@@ -421,12 +420,12 @@ module SolanaRpcRuby
421
420
 
422
421
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getidentity
423
422
  # Returns the identity pubkey for the current node.
424
- #
423
+ #
425
424
  # @return [Response, ApiError] Response when success, ApiError on failure.
426
425
  def get_identity
427
426
  http_method = :post
428
427
  method = create_method_name(__method__)
429
-
428
+
430
429
  body = create_json_body(method)
431
430
 
432
431
  send_request(body, http_method)
@@ -434,9 +433,9 @@ module SolanaRpcRuby
434
433
 
435
434
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getinflationgovernor
436
435
  # Returns the current inflation governor.
437
- #
436
+ #
438
437
  # @param commitment [String]
439
- #
438
+ #
440
439
  # @return [Response, ApiError] Response when success, ApiError on failure.
441
440
  def get_inflation_governor(commitment: nil)
442
441
  http_method = :post
@@ -448,7 +447,7 @@ module SolanaRpcRuby
448
447
  params_hash['commitment'] = commitment unless blank?(commitment)
449
448
 
450
449
  params << params_hash unless params_hash.empty?
451
-
450
+
452
451
  body = create_json_body(method, method_params: params)
453
452
 
454
453
  send_request(body, http_method)
@@ -456,12 +455,12 @@ module SolanaRpcRuby
456
455
 
457
456
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getinflationrate
458
457
  # Returns the specific inflation values for the current epoch.
459
- #
458
+ #
460
459
  # @return [Response, ApiError] Response when success, ApiError on failure.
461
460
  def get_inflation_rate
462
461
  http_method = :post
463
462
  method = create_method_name(__method__)
464
-
463
+
465
464
  body = create_json_body(method)
466
465
 
467
466
  send_request(body, http_method)
@@ -469,16 +468,16 @@ module SolanaRpcRuby
469
468
 
470
469
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getinflationreward
471
470
  # Returns the inflation reward for a list of addresses for an epoch.
472
- #
471
+ #
473
472
  # @param addresses [Array]
474
473
  # @param commitment [String]
475
474
  # @param epoch [Integer]
476
- #
475
+ #
477
476
  # @return [Response, ApiError] Response when success, ApiError on failure.
478
477
  def get_inflation_reward(addresses, commitment: nil, epoch: nil)
479
478
  http_method = :post
480
479
  method = create_method_name(__method__)
481
-
480
+
482
481
  params = []
483
482
  params_hash = {}
484
483
 
@@ -496,15 +495,15 @@ module SolanaRpcRuby
496
495
 
497
496
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getlargestaccounts
498
497
  # Returns the 20 largest accounts, by lamport balance (results may be cached up to two hours)
499
- #
498
+ #
500
499
  # @param commitment [String]
501
500
  # @param filter [String]
502
- #
501
+ #
503
502
  # @return [Response, ApiError] Response when success, ApiError on failure.
504
503
  def get_largest_accounts(commitment: nil, filter: '')
505
504
  http_method = :post
506
505
  method = create_method_name(__method__)
507
-
506
+
508
507
  params = []
509
508
  params_hash = {}
510
509
 
@@ -520,16 +519,16 @@ module SolanaRpcRuby
520
519
 
521
520
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getleaderschedule
522
521
  # Returns the leader schedule for an epoch.
523
- #
522
+ #
524
523
  # @param epoch [Integer]
525
524
  # @param commitment [String]
526
525
  # @param identity [String]
527
- #
526
+ #
528
527
  # @return [Response, ApiError] Response when success, ApiError on failure.
529
528
  def get_leader_schedule(epoch: nil, commitment: nil, identity: '')
530
529
  http_method = :post
531
530
  method = create_method_name(__method__)
532
-
531
+
533
532
  params = []
534
533
  params_hash = {}
535
534
 
@@ -546,12 +545,12 @@ module SolanaRpcRuby
546
545
 
547
546
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getmaxretransmitslot
548
547
  # Get the max slot seen from retransmit stage.
549
- #
548
+ #
550
549
  # @return [Response, ApiError] Response when success, ApiError on failure.
551
550
  def get_max_retransmit_slot
552
551
  http_method = :post
553
552
  method = create_method_name(__method__)
554
-
553
+
555
554
  body = create_json_body(method)
556
555
 
557
556
  send_request(body, http_method)
@@ -559,12 +558,12 @@ module SolanaRpcRuby
559
558
 
560
559
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getmaxshredinsertslot
561
560
  # Get the max slot seen from after shred insert.
562
- #
561
+ #
563
562
  # @return [Response, ApiError] Response when success, ApiError on failure.
564
563
  def get_max_shred_insert_slot
565
564
  http_method = :post
566
565
  method = create_method_name(__method__)
567
-
566
+
568
567
  body = create_json_body(method)
569
568
 
570
569
  send_request(body, http_method)
@@ -572,23 +571,23 @@ module SolanaRpcRuby
572
571
 
573
572
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getminimumbalanceforrentexemption
574
573
  # Returns minimum balance required to make account rent exempt.
575
- #
574
+ #
576
575
  # @param account_data_length [String]
577
576
  # @param commitment [String]
578
- #
577
+ #
579
578
  # @return [Response, ApiError] Response when success, ApiError on failure.
580
579
  def get_minimum_balance_for_rent_exemption(
581
- account_data_length,
580
+ account_data_length,
582
581
  commitment: nil
583
582
  )
584
583
  http_method = :post
585
584
  method = create_method_name(__method__)
586
-
585
+
587
586
  params = []
588
587
  params_hash = {}
589
588
 
590
589
  params_hash['commitment'] = commitment unless blank?(commitment)
591
-
590
+
592
591
  params << account_data_length
593
592
  params << params_hash unless params_hash.empty?
594
593
 
@@ -597,31 +596,31 @@ module SolanaRpcRuby
597
596
  send_request(body, http_method)
598
597
  end
599
598
 
600
- # @see https://docs.solana.com/developing/clients/jsonrpc-api#getmultipleaccounts
599
+ # @see https://docs.solana.com/developing/clients/jsonrpc-api#getmultipleaccounts
601
600
  # Returns the account information for a list of Pubkeys.
602
601
  # @param account_data_length [String]
603
602
  # @param commitment [String]
604
- #
603
+ #
605
604
  # @return [Response, ApiError] Response when success, ApiError on failure. # @param account_data_length [String]
606
605
  # @param commitment [String]
607
- #
606
+ #
608
607
  # @return [Response, ApiError] Response when success, ApiError on failure.
609
608
  def get_multiple_accounts(
610
- pubkeys,
609
+ pubkeys,
611
610
  commitment: nil,
612
611
  encoding: '',
613
612
  data_slice: {}
614
613
  )
615
614
  http_method = :post
616
615
  method = create_method_name(__method__)
617
-
616
+
618
617
  params = []
619
618
  params_hash = {}
620
-
619
+
621
620
  params_hash['commitment'] = commitment unless blank?(commitment)
622
621
  params_hash['encoding'] = encoding unless blank?(encoding)
623
622
  params_hash['dataSlice'] = data_slice unless data_slice.empty?
624
-
623
+
625
624
  params << pubkeys
626
625
  params << params_hash unless params_hash.empty?
627
626
 
@@ -632,7 +631,7 @@ module SolanaRpcRuby
632
631
 
633
632
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getprogramaccounts
634
633
  # Returns all accounts owned by the provided program Pubkey
635
- #
634
+ #
636
635
  # @param pubkey [String]
637
636
  # @param commitment [String]
638
637
  # @param encoding [String]
@@ -640,11 +639,17 @@ module SolanaRpcRuby
640
639
  # @option data_slice [Integer] :offset
641
640
  # @option data_slice [Integer] :length
642
641
  # @param filters [Array<Hash, Hash>]
642
+ # @option filters [Hash<String, Integer>]
643
+ # * dataSize, Integer, 1
644
+ # @option filters [Hash<String, Hash>]
645
+ # * memcmp, Hash<String, Object>
646
+ # * offset, Integer, 1
647
+ # * bytes, String, '3Mc6vR'
643
648
  # @param with_context [Boolean]
644
- #
649
+ #
645
650
  # @return [Response, ApiError] Response when success, ApiError on failure.
646
651
  def get_program_accounts(
647
- pubkey,
652
+ pubkey,
648
653
  commitment: nil,
649
654
  encoding: '',
650
655
  data_slice: {},
@@ -653,10 +658,10 @@ module SolanaRpcRuby
653
658
  )
654
659
  http_method = :post
655
660
  method = create_method_name(__method__)
656
-
661
+
657
662
  params = []
658
663
  params_hash = {}
659
-
664
+
660
665
  params_hash['commitment'] = commitment unless blank?(commitment)
661
666
  params_hash['encoding'] = encoding unless blank?(encoding)
662
667
  params_hash['dataSlice'] = data_slice unless data_slice.empty?
@@ -672,19 +677,19 @@ module SolanaRpcRuby
672
677
  end
673
678
 
674
679
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getrecentblockhash
675
- # Returns a recent block hash from the ledger, and a fee schedule
680
+ # Returns a recent block hash from the ledger, and a fee schedule
676
681
  # that can be used to compute the cost of submitting a transaction using it.
677
- #
682
+ #
678
683
  # @param commitment [String]
679
- #
684
+ #
680
685
  # @return [Response, ApiError] Response when success, ApiError on failure.
681
686
  def get_recent_blockhash(commitment: nil)
682
687
  http_method = :post
683
688
  method = create_method_name(__method__)
684
-
689
+
685
690
  params = []
686
691
  params_hash = {}
687
-
692
+
688
693
  params_hash['commitment'] = commitment unless blank?(commitment)
689
694
 
690
695
  params << params_hash unless params_hash.empty?
@@ -695,16 +700,16 @@ module SolanaRpcRuby
695
700
  end
696
701
 
697
702
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getrecentperformancesamples
698
- # Returns a list of recent performance samples, in reverse slot order.
703
+ # Returns a list of recent performance samples, in reverse slot order.
699
704
  # Performance samples are taken every 60 seconds and include the number of transactions and slots that occur in a given time window.
700
- #
705
+ #
701
706
  # @param limit [Integer]
702
- #
707
+ #
703
708
  # @return [Response, ApiError] Response when success, ApiError on failure.
704
709
  def get_recent_performance_samples(limit: nil)
705
710
  http_method = :post
706
711
  method = create_method_name(__method__)
707
-
712
+
708
713
  params = []
709
714
 
710
715
  params << limit unless limit.nil?
@@ -716,7 +721,7 @@ module SolanaRpcRuby
716
721
 
717
722
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getsnapshotslot
718
723
  # Returns the highest slot that the node has a snapshot for.
719
- #
724
+ #
720
725
  # @return [Response, ApiError] Response when success, ApiError on failure.
721
726
  def get_snapshot_slot
722
727
  http_method = :post
@@ -728,18 +733,18 @@ module SolanaRpcRuby
728
733
  end
729
734
 
730
735
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getsignaturesforaddress
731
- # NEW: This method is only available in solana-core v1.7 or newer.
736
+ # NEW: This method is only available in solana-core v1.7 or newer.
732
737
  # Please use getConfirmedSignaturesForAddress2 for solana-core v1.6
733
- #
734
- # Returns confirmed signatures for transactions involving an address backwards
738
+ #
739
+ # Returns confirmed signatures for transactions involving an address backwards
735
740
  # in time from the provided signature or most recent confirmed block
736
- #
741
+ #
737
742
  # @param account_address [String]
738
743
  # @param limit [Integer]
739
744
  # @param before [String]
740
745
  # @param until_ [String]
741
746
  # @param commitment [String]
742
- #
747
+ #
743
748
  # @return [Response, ApiError] Response when success, ApiError on failure.
744
749
  def get_signatures_for_address(
745
750
  account_address,
@@ -750,7 +755,7 @@ module SolanaRpcRuby
750
755
  )
751
756
  http_method = :post
752
757
  method = create_method_name(__method__)
753
-
758
+
754
759
  params = []
755
760
  params_hash = {}
756
761
 
@@ -767,16 +772,16 @@ module SolanaRpcRuby
767
772
  send_request(body, http_method)
768
773
  end
769
774
 
770
- # @see https://docs.solana.com/developing/clients/jsonrpc-api#getsignaturestatuses # NEW: This method is only available in solana-core v1.7 or newer.
771
- #
772
- # Returns the statuses of a list of signatures.
773
- # Unless the searchTransactionHistory configuration parameter is included,
774
- # this method only searches the recent status cache of signatures,
775
+ # @see https://docs.solana.com/developing/clients/jsonrpc-api#getsignaturestatuses # NEW: This method is only available in solana-core v1.7 or newer.
776
+ #
777
+ # Returns the statuses of a list of signatures.
778
+ # Unless the searchTransactionHistory configuration parameter is included,
779
+ # this method only searches the recent status cache of signatures,
775
780
  # which retains statuses for all active slots plus MAX_RECENT_BLOCKHASHES rooted slots.
776
- #
781
+ #
777
782
  # @param transaction_signatures [Array]
778
783
  # @param search_transaction_history [Boolean]
779
- #
784
+ #
780
785
  # @return [Response, ApiError] Response when success, ApiError on failure.
781
786
  def get_signature_statuses(
782
787
  transaction_signatures,
@@ -784,7 +789,7 @@ module SolanaRpcRuby
784
789
  )
785
790
  http_method = :post
786
791
  method = create_method_name(__method__)
787
-
792
+
788
793
  params = []
789
794
  params_hash = {}
790
795
 
@@ -800,17 +805,17 @@ module SolanaRpcRuby
800
805
 
801
806
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getslot
802
807
  # Returns the current slot the node is processing.
803
- #
808
+ #
804
809
  # @param commitment [String]
805
- #
810
+ #
806
811
  # @return [Response, ApiError] Response when success, ApiError on failure.
807
812
  def get_slot(commitment: nil)
808
813
  http_method = :post
809
814
  method = create_method_name(__method__)
810
-
815
+
811
816
  params = []
812
817
  params_hash = {}
813
-
818
+
814
819
  params_hash['commitment'] = commitment unless blank?(commitment)
815
820
 
816
821
  params << params_hash unless params_hash.empty?
@@ -822,19 +827,19 @@ module SolanaRpcRuby
822
827
 
823
828
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getslotleader
824
829
  # Returns the current slot leader
825
- #
830
+ #
826
831
  # @param commitment [String]
827
- #
832
+ #
828
833
  # @return [Response, ApiError] Response when success, ApiError on failure.
829
834
  def get_slot_leader(commitment: nil)
830
835
  http_method = :post
831
836
  method = create_method_name(__method__)
832
-
837
+
833
838
  params = []
834
839
  params_hash = {}
835
840
 
836
841
  params_hash['commitment'] = commitment unless blank?(commitment)
837
-
842
+
838
843
  params << params_hash unless params_hash.empty?
839
844
 
840
845
  body = create_json_body(method, method_params: params)
@@ -844,15 +849,15 @@ module SolanaRpcRuby
844
849
 
845
850
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getslotleaders
846
851
  # Returns the slot leaders for a given slot range.
847
- #
852
+ #
848
853
  # @param start_slot [Integer]
849
854
  # @param limit [Integer]
850
- #
855
+ #
851
856
  # @return [Response, ApiError] Response when success, ApiError on failure.
852
857
  def get_slot_leaders(start_slot, limit)
853
858
  http_method = :post
854
859
  method = create_method_name(__method__)
855
-
860
+
856
861
  params = [start_slot, limit]
857
862
 
858
863
  body = create_json_body(method, method_params: params)
@@ -862,16 +867,16 @@ module SolanaRpcRuby
862
867
 
863
868
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getstakeactivation
864
869
  # Returns epoch activation information for a stake account.
865
- #
870
+ #
866
871
  # @param pubkey [String]
867
872
  # @param commitment [String]
868
873
  # @param epoch [Integer]
869
- #
874
+ #
870
875
  # @return [Response, ApiError] Response when success, ApiError on failure.
871
876
  def get_stake_activation(pubkey, commitment: nil, epoch: nil)
872
877
  http_method = :post
873
878
  method = create_method_name(__method__)
874
-
879
+
875
880
  params = []
876
881
  params_hash = {}
877
882
 
@@ -888,14 +893,14 @@ module SolanaRpcRuby
888
893
 
889
894
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getsupply
890
895
  # Returns information about the current supply.
891
- #
896
+ #
892
897
  # @param commitment [String]
893
- #
898
+ #
894
899
  # @return [Response, ApiError] Response when success, ApiError on failure.
895
900
  def get_supply(commitment: nil)
896
901
  http_method = :post
897
902
  method = create_method_name(__method__)
898
-
903
+
899
904
  params = []
900
905
  params_hash = {}
901
906
 
@@ -909,17 +914,17 @@ module SolanaRpcRuby
909
914
  end
910
915
 
911
916
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountbalance
912
- #
917
+ #
913
918
  # Returns the token balance of an SPL Token account.
914
- #
919
+ #
915
920
  # @param token_account_pubkey [String]
916
921
  # @param commitment [String]
917
- #
922
+ #
918
923
  # @return [Response, ApiError] Response when success, ApiError on failure.
919
924
  def get_token_account_balance(token_account_pubkey, commitment: nil)
920
925
  http_method = :post
921
926
  method = create_method_name(__method__)
922
-
927
+
923
928
  params = []
924
929
  params_hash = {}
925
930
 
@@ -934,11 +939,11 @@ module SolanaRpcRuby
934
939
  end
935
940
 
936
941
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbydelegate # Returns the token balance of an SPL Token account.
937
- #
942
+ #
938
943
  # Returns all SPL Token accounts by approved Delegate.
939
- #
944
+ #
940
945
  # IMPORTANT: According to docs there should be mint or program_id passed in, not both.
941
- #
946
+ #
942
947
  # @param token_account_pubkey [String]
943
948
  # @param mint [String]
944
949
  # @param program_id [String]
@@ -947,7 +952,7 @@ module SolanaRpcRuby
947
952
  # @param data_slice [Hash]
948
953
  # @option data_slice [Integer] :offset
949
954
  # @option data_slice [Integer] :length
950
- #
955
+ #
951
956
  # @return [Response, ApiError] Response when success, ApiError on failure.
952
957
  def get_token_accounts_by_delegate(
953
958
  token_account_pubkey,
@@ -957,22 +962,22 @@ module SolanaRpcRuby
957
962
  encoding: '',
958
963
  data_slice: {}
959
964
  )
960
-
961
- raise ArgumentError, 'You should pass mint or program_id, not both.' if !mint.empty? && !program_id.empty?
965
+
966
+ raise ArgumentError, 'You should pass mint or program_id, not both.' if !blank?(mint) && !blank?(program_id)
962
967
 
963
968
  http_method = :post
964
969
  method = create_method_name(__method__)
965
-
970
+
966
971
  params = []
967
972
  params_hash = {}
968
973
  params_hash_2 = {}
969
974
 
970
- params_hash['mint'] = mint unless mint.empty?
971
- params_hash['programId'] = program_id unless program_id.empty?
975
+ params_hash['mint'] = mint unless blank?(mint)
976
+ params_hash['programId'] = program_id unless blank?(program_id)
972
977
 
973
978
  params_hash_2['commitment'] = commitment unless blank?(commitment)
974
979
  params_hash_2['encoding'] = encoding unless blank?(encoding)
975
- params_hash_2['dataSlice'] = data_slice unless data_slice.empty?
980
+ params_hash_2['dataSlice'] = data_slice unless blank?(data_slice)
976
981
 
977
982
  params << token_account_pubkey
978
983
  params << params_hash unless params_hash.empty?
@@ -983,12 +988,12 @@ module SolanaRpcRuby
983
988
  send_request(body, http_method)
984
989
  end
985
990
 
986
- # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner #
987
- #
991
+ # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner #
992
+ #
988
993
  # Returns all SPL Token accounts by token owner.
989
- #
994
+ #
990
995
  # IMPORTANT: According to docs there should be mint or program_id passed in, not both.
991
- #
996
+ #
992
997
  # @param token_account_pubkey [String]
993
998
  # @param mint [String]
994
999
  # @param program_id [String]
@@ -997,7 +1002,7 @@ module SolanaRpcRuby
997
1002
  # @param data_slice [Hash]
998
1003
  # @option data_slice [Integer] :offset
999
1004
  # @option data_slice [Integer] :length
1000
- #
1005
+ #
1001
1006
  # @return [Response, ApiError] Response when success, ApiError on failure.
1002
1007
  def get_token_accounts_by_owner(
1003
1008
  token_account_pubkey,
@@ -1012,7 +1017,7 @@ module SolanaRpcRuby
1012
1017
 
1013
1018
  http_method = :post
1014
1019
  method = create_method_name(__method__)
1015
-
1020
+
1016
1021
  params = []
1017
1022
  params_hash = {}
1018
1023
  params_hash_2 = {}
@@ -1034,13 +1039,13 @@ module SolanaRpcRuby
1034
1039
  send_request(body, http_method)
1035
1040
  end
1036
1041
 
1037
- # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenlargestaccounts #
1038
- #
1042
+ # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenlargestaccounts #
1043
+ #
1039
1044
  # Returns the 20 largest accounts of a particular SPL Token type.
1040
- #
1045
+ #
1041
1046
  # @param token_mint_pubkey [String]
1042
1047
  # @param commitment [String]
1043
- #
1048
+ #
1044
1049
  # @return [Response, ApiError] Response when success, ApiError on failure.
1045
1050
  def get_token_largest_accounts(
1046
1051
  token_mint_pubkey,
@@ -1049,7 +1054,7 @@ module SolanaRpcRuby
1049
1054
 
1050
1055
  http_method = :post
1051
1056
  method = create_method_name(__method__)
1052
-
1057
+
1053
1058
  params = []
1054
1059
  params_hash = {}
1055
1060
 
@@ -1063,19 +1068,19 @@ module SolanaRpcRuby
1063
1068
  send_request(body, http_method)
1064
1069
  end
1065
1070
 
1066
- # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettransaction
1067
- #
1071
+ # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettransaction
1072
+ #
1068
1073
  # Returns transaction details for a confirmed transaction
1069
- #
1074
+ #
1070
1075
  # @param transaction_signature [String]
1071
1076
  # @param encoding [String]
1072
1077
  # @param commitment [String]
1073
- #
1078
+ #
1074
1079
  # @return [Response, ApiError] Response when success, ApiError on failure.
1075
1080
  def get_transaction(transaction_signature, encoding: '', commitment: nil)
1076
1081
  http_method = :post
1077
1082
  method = create_method_name(__method__)
1078
-
1083
+
1079
1084
  params = []
1080
1085
  params_hash = {}
1081
1086
 
@@ -1090,17 +1095,17 @@ module SolanaRpcRuby
1090
1095
  send_request(body, http_method)
1091
1096
  end
1092
1097
 
1093
- # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettransactioncount
1094
- #
1098
+ # @see https://docs.solana.com/developing/clients/jsonrpc-api#gettransactioncount
1099
+ #
1095
1100
  # Returns the current Transaction count from the ledger
1096
- #
1101
+ #
1097
1102
  # @param commitment [String]
1098
- #
1103
+ #
1099
1104
  # @return [Response, ApiError] Response when success, ApiError on failure.
1100
1105
  def get_transaction_count(commitment: nil)
1101
1106
  http_method = :post
1102
1107
  method = create_method_name(__method__)
1103
-
1108
+
1104
1109
  params = []
1105
1110
  params_hash = {}
1106
1111
 
@@ -1114,9 +1119,9 @@ module SolanaRpcRuby
1114
1119
  end
1115
1120
 
1116
1121
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getversion
1117
- #
1122
+ #
1118
1123
  # Returns the current solana versions running on the node.
1119
- #
1124
+ #
1120
1125
  # @return [Response, ApiError] Response when success, ApiError on failure.
1121
1126
  def get_version
1122
1127
  http_method = :post
@@ -1129,10 +1134,10 @@ module SolanaRpcRuby
1129
1134
 
1130
1135
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#getvoteaccounts
1131
1136
  # Returns the account info and associated stake for all the voting accounts in the current bank.
1132
- #
1137
+ #
1133
1138
  # @param commitment [String]
1134
1139
  # @param vote_pubkey [String]
1135
- #
1140
+ #
1136
1141
  # @return [Response, ApiError] Response when success, ApiError on failure.
1137
1142
  def get_vote_accounts(commitment: nil, vote_pubkey: nil)
1138
1143
  http_method = :post
@@ -1152,9 +1157,9 @@ module SolanaRpcRuby
1152
1157
  end
1153
1158
 
1154
1159
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#minimumledgerslot
1155
- #
1160
+ #
1156
1161
  # Returns the current solana versions running on the node.
1157
- #
1162
+ #
1158
1163
  # @return [Response, ApiError] Response when success, ApiError on failure.
1159
1164
  def get_version
1160
1165
  http_method = :post
@@ -1166,10 +1171,10 @@ module SolanaRpcRuby
1166
1171
  end
1167
1172
 
1168
1173
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#minimumledgerslot
1169
- #
1170
- # Returns the lowest slot that the node has information about in its ledger.
1174
+ #
1175
+ # Returns the lowest slot that the node has information about in its ledger.
1171
1176
  # This value may increase over time if the node is configured to purge older ledger data
1172
- #
1177
+ #
1173
1178
  # @return [Response, ApiError] Response when success, ApiError on failure.
1174
1179
  def minimum_ledger_slot
1175
1180
  http_method = :post
@@ -1181,13 +1186,13 @@ module SolanaRpcRuby
1181
1186
  end
1182
1187
 
1183
1188
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#requestairdrop
1184
- #
1189
+ #
1185
1190
  # Requests an airdrop of lamports to a Pubkey
1186
- #
1191
+ #
1187
1192
  # @param pubkey [String]
1188
1193
  # @param lamports [Integer]
1189
1194
  # @param commitment [String]
1190
- #
1195
+ #
1191
1196
  # @return [Response, ApiError] Response when success, ApiError on failure.
1192
1197
  def request_airdrop(pubkey, lamports, commitment: nil)
1193
1198
  http_method = :post
@@ -1206,17 +1211,17 @@ module SolanaRpcRuby
1206
1211
  end
1207
1212
 
1208
1213
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#sendtransaction
1209
- #
1214
+ #
1210
1215
  # Submits a signed transaction to the cluster for processing.
1211
- #
1216
+ #
1212
1217
  # @param transaction_signature [String]
1213
1218
  # @param skip_pre_flight [Boolean]
1214
1219
  # @param pre_flight_commitment [String]
1215
1220
  # @param encoding [String]
1216
- #
1221
+ #
1217
1222
  # @return [Response, ApiError] Response when success, ApiError on failure.
1218
1223
  def send_transaction(
1219
- transaction_signature,
1224
+ transaction_signature,
1220
1225
  skip_pre_flight: false,
1221
1226
  pre_flight_commitment: nil,
1222
1227
  encoding: ''
@@ -1241,10 +1246,10 @@ module SolanaRpcRuby
1241
1246
 
1242
1247
 
1243
1248
  # @see https://docs.solana.com/developing/clients/jsonrpc-api#simulatetransaction
1244
- #
1249
+ #
1245
1250
  # Simulate sending a transaction
1246
1251
  # accounts_addresses should be an empty array (?)
1247
- #
1252
+ #
1248
1253
  # @param transaction_signature [String]
1249
1254
  # @param accounts_addresses [Array]
1250
1255
  # @param sig_verify [Boolean]
@@ -1252,7 +1257,7 @@ module SolanaRpcRuby
1252
1257
  # @param encoding [String]
1253
1258
  # @param replace_recent_blockhash [Boolean]
1254
1259
  # @param accounts_encoding [String]
1255
- #
1260
+ #
1256
1261
  # @return [Response, ApiError] Response when success, ApiError on failure.
1257
1262
  def simulate_transaction(
1258
1263
  transaction_signature,
@@ -1299,7 +1304,7 @@ module SolanaRpcRuby
1299
1304
  if api_response.body
1300
1305
  response = Response.new(api_response)
1301
1306
 
1302
- fail ApiError.new(response.parsed_response) if response.parsed_response.key?('error')
1307
+ fail ApiError.new(message: response.parsed_response) if response.parsed_response.key?('error')
1303
1308
 
1304
1309
  return response
1305
1310
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolanaRpcRuby
4
- VERSION = '1.0.0.pre'
4
+ VERSION = '1.0.0'
5
5
  end
@@ -23,7 +23,11 @@ Gem::Specification.new do |spec|
23
23
  'Rakefile'
24
24
  ]
25
25
  spec.extra_rdoc_files = ['README.md']
26
-
26
+ spec.metadata= {
27
+ 'documentation_uri' => 'https://www.rubydoc.info/github/Block-Logic/solana-rpc-ruby',
28
+ 'source_code_uri' => 'https://github.com/Block-Logic/solana-rpc-ruby'
29
+ }
30
+
27
31
  spec.add_development_dependency 'rubocop', '~> 1.15'
28
32
  spec.add_development_dependency 'rubocop-performance', '~> 1.11'
29
33
  spec.add_development_dependency 'rubocop-rspec', '~> 2.3'
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.0.0.pre
4
+ version: 1.0.0
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-07-13 00:00:00.000000000 Z
11
+ date: 2021-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -222,7 +222,9 @@ files:
222
222
  homepage: https://github.com/Block-Logic/solana-rpc-ruby
223
223
  licenses:
224
224
  - MIT
225
- metadata: {}
225
+ metadata:
226
+ documentation_uri: https://www.rubydoc.info/github/Block-Logic/solana-rpc-ruby
227
+ source_code_uri: https://github.com/Block-Logic/solana-rpc-ruby
226
228
  post_install_message:
227
229
  rdoc_options: []
228
230
  require_paths:
@@ -234,11 +236,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
234
236
  version: 2.6.5
235
237
  required_rubygems_version: !ruby/object:Gem::Requirement
236
238
  requirements:
237
- - - ">"
239
+ - - ">="
238
240
  - !ruby/object:Gem::Version
239
- version: 1.3.1
241
+ version: '0'
240
242
  requirements: []
241
- rubygems_version: 3.0.8
243
+ rubygems_version: 3.2.2
242
244
  signing_key:
243
245
  specification_version: 4
244
246
  summary: Ruby wrapper for solana JSON RPC API.