solana_rpc_ruby 1.0.0.pre → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/README.md +155 -5
- data/lib/generators/solana_rpc_ruby/install_generator.rb +1 -1
- data/lib/generators/templates/solana_rpc_ruby_config.rb +7 -8
- data/lib/solana_rpc_ruby/api_client.rb +11 -12
- data/lib/solana_rpc_ruby/api_error.rb +5 -5
- data/lib/solana_rpc_ruby/helper_methods.rb +13 -0
- data/lib/solana_rpc_ruby/methods_wrapper.rb +191 -182
- data/lib/solana_rpc_ruby/request_body.rb +9 -4
- data/lib/solana_rpc_ruby/version.rb +1 -1
- data/lib/solana_rpc_ruby/websocket_client.rb +129 -0
- data/lib/solana_rpc_ruby/websocket_methods_wrapper.rb +300 -0
- data/lib/solana_rpc_ruby.rb +6 -4
- data/solana_rpc_ruby.gemspec +9 -3
- metadata +31 -13
@@ -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
|
|
@@ -20,23 +19,35 @@ module SolanaRpcRuby
|
|
20
19
|
# @return [String]
|
21
20
|
attr_accessor :cluster
|
22
21
|
|
22
|
+
# Unique client-generated identifying integer.
|
23
|
+
# @return [Integer]
|
24
|
+
attr_accessor :id
|
25
|
+
|
23
26
|
# Initialize object with cluster address where requests will be sent.
|
24
|
-
#
|
27
|
+
#
|
25
28
|
# @param api_client [ApiClient]
|
26
|
-
# @param cluster [String] cluster where requests will be sent.
|
27
|
-
|
29
|
+
# @param cluster [String] cluster where requests will be sent.
|
30
|
+
# @param id [Integer] unique client-generated identifying integer.
|
31
|
+
def initialize(
|
32
|
+
api_client: ApiClient,
|
33
|
+
cluster: SolanaRpcRuby.cluster,
|
34
|
+
id: rand(1...99_999)
|
35
|
+
)
|
36
|
+
|
28
37
|
@api_client = api_client.new(cluster)
|
38
|
+
@cluster = cluster
|
39
|
+
@id = id
|
29
40
|
end
|
30
41
|
|
31
42
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getaccountinfo
|
32
43
|
# Returns all information associated with the account of provided Pubkey
|
33
|
-
#
|
44
|
+
#
|
34
45
|
# @param account_pubkey [String]
|
35
46
|
# @param encoding [String]
|
36
47
|
# @param data_slice [Hash]
|
37
48
|
# @option data_slice [Integer] :offset
|
38
49
|
# @option data_slice [Integer] :length
|
39
|
-
#
|
50
|
+
#
|
40
51
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
41
52
|
def get_account_info(account_pubkey, encoding: '', data_slice: {})
|
42
53
|
http_method = :post
|
@@ -58,10 +69,10 @@ module SolanaRpcRuby
|
|
58
69
|
|
59
70
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getbalance
|
60
71
|
# Returns the balance of the account of provided Pubkey
|
61
|
-
#
|
72
|
+
#
|
62
73
|
# @param account_pubkey [String]
|
63
74
|
# @param commitment [String]
|
64
|
-
#
|
75
|
+
#
|
65
76
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
66
77
|
def get_balance(account_pubkey, commitment: nil)
|
67
78
|
http_method = :post
|
@@ -84,13 +95,13 @@ module SolanaRpcRuby
|
|
84
95
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getblock
|
85
96
|
# NEW: This method is only available in solana-core v1.7 or newer. Please use getConfirmedBlock for solana-core v1.6
|
86
97
|
# Returns identity and transaction information about a confirmed block in the ledger
|
87
|
-
#
|
98
|
+
#
|
88
99
|
# @param slot [Integer]
|
89
100
|
# @param encoding [String]
|
90
101
|
# @param transaction_details [String]
|
91
102
|
# @param rewards [Boolean]
|
92
103
|
# @param commitment [String]
|
93
|
-
#
|
104
|
+
#
|
94
105
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
95
106
|
def get_block(slot, encoding: '', transaction_details: '', rewards: true, commitment: nil)
|
96
107
|
http_method = :post
|
@@ -114,9 +125,9 @@ module SolanaRpcRuby
|
|
114
125
|
|
115
126
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getblockheight
|
116
127
|
# Returns the current block height of the node
|
117
|
-
#
|
128
|
+
#
|
118
129
|
# @param commitment [String]
|
119
|
-
#
|
130
|
+
#
|
120
131
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
121
132
|
def get_block_height(commitment: nil)
|
122
133
|
http_method = :post
|
@@ -135,13 +146,13 @@ module SolanaRpcRuby
|
|
135
146
|
|
136
147
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getblockproduction
|
137
148
|
# Returns recent block production information from the current or previous epoch.
|
138
|
-
#
|
149
|
+
#
|
139
150
|
# @param identity [String]
|
140
151
|
# @param range [Hash]
|
141
152
|
# @option range [Integer] first_slot (required for range)
|
142
153
|
# @option range [Integer] last_slot (optional for range)
|
143
154
|
# @param commitment [String]
|
144
|
-
#
|
155
|
+
#
|
145
156
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
146
157
|
def get_block_production(identity: nil, range: {}, commitment: nil)
|
147
158
|
http_method = :post
|
@@ -153,7 +164,7 @@ module SolanaRpcRuby
|
|
153
164
|
|
154
165
|
range_hash['firstSlot'] = range[:first_slot] unless !range.key?(:first_slot)
|
155
166
|
range_hash['lastSlot'] = range[:last_slot] unless !range.key?(:last_slot)
|
156
|
-
|
167
|
+
|
157
168
|
params_hash['identity'] = identity unless blank?(identity)
|
158
169
|
params_hash['range'] = range_hash unless range_hash.empty?
|
159
170
|
|
@@ -166,9 +177,9 @@ module SolanaRpcRuby
|
|
166
177
|
|
167
178
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getblockcommitment
|
168
179
|
# Returns commitment for particular block
|
169
|
-
#
|
180
|
+
#
|
170
181
|
# @param block [Integer]
|
171
|
-
#
|
182
|
+
#
|
172
183
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
173
184
|
def get_block_commitment(block)
|
174
185
|
http_method = :post
|
@@ -186,10 +197,10 @@ module SolanaRpcRuby
|
|
186
197
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getblocks
|
187
198
|
# NEW: This method is only available in solana-core v1.7 or newer. Please use getConfirmedBlocks for solana-core v1.6
|
188
199
|
# Returns a list of confirmed blocks between two slots
|
189
|
-
#
|
200
|
+
#
|
190
201
|
# @param start_slot [Integer]
|
191
202
|
# @param end_slot [Integer]
|
192
|
-
#
|
203
|
+
#
|
193
204
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
194
205
|
def get_blocks(start_slot, end_slot: nil)
|
195
206
|
http_method = :post
|
@@ -208,11 +219,11 @@ module SolanaRpcRuby
|
|
208
219
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getblockswithlimit
|
209
220
|
# NEW: This method is only available in solana-core v1.7 or newer. Please use getConfirmedBlocks for solana-core v1.6
|
210
221
|
# Returns a list of confirmed blocks starting at the given slot
|
211
|
-
#
|
222
|
+
#
|
212
223
|
# @param start_slot [Integer]
|
213
224
|
# @param limit [Integer]
|
214
225
|
# @param commitment [String]
|
215
|
-
#
|
226
|
+
#
|
216
227
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
217
228
|
def get_blocks_with_limit(start_slot, limit, commitment: nil)
|
218
229
|
http_method = :post
|
@@ -234,9 +245,9 @@ module SolanaRpcRuby
|
|
234
245
|
|
235
246
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getblocktime
|
236
247
|
# Returns the estimated production time of a block.
|
237
|
-
#
|
248
|
+
#
|
238
249
|
# @param block [Integer]
|
239
|
-
#
|
250
|
+
#
|
240
251
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
241
252
|
def get_block_time(block)
|
242
253
|
http_method = :post
|
@@ -253,7 +264,7 @@ module SolanaRpcRuby
|
|
253
264
|
|
254
265
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getclusternodes
|
255
266
|
# Returns information about all the nodes participating in the cluster
|
256
|
-
#
|
267
|
+
#
|
257
268
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
258
269
|
def get_cluster_nodes
|
259
270
|
http_method = :post
|
@@ -267,10 +278,10 @@ module SolanaRpcRuby
|
|
267
278
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getepochinfo
|
268
279
|
# DEPRECATED: Please use getBlocks instead This method is expected to be removed in solana-core v1.8
|
269
280
|
# Returns a list of confirmed blocks between two slots
|
270
|
-
#
|
281
|
+
#
|
271
282
|
# @param start_slot [Integer]
|
272
283
|
# @param end_slot [Integer]
|
273
|
-
#
|
284
|
+
#
|
274
285
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
275
286
|
def get_confirmed_blocks(start_slot, end_slot: nil)
|
276
287
|
http_method = :post
|
@@ -288,9 +299,9 @@ module SolanaRpcRuby
|
|
288
299
|
|
289
300
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getepochinfo
|
290
301
|
# Returns information about the current epoch
|
291
|
-
#
|
302
|
+
#
|
292
303
|
# @param commitment [String]
|
293
|
-
#
|
304
|
+
#
|
294
305
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
295
306
|
def get_epoch_info(commitment: nil)
|
296
307
|
http_method = :post
|
@@ -300,7 +311,7 @@ module SolanaRpcRuby
|
|
300
311
|
params_hash = {}
|
301
312
|
|
302
313
|
params_hash['commitment'] = commitment unless blank?(commitment)
|
303
|
-
|
314
|
+
|
304
315
|
params << params_hash unless params_hash.empty?
|
305
316
|
|
306
317
|
body = create_json_body(method, method_params: params)
|
@@ -310,7 +321,7 @@ module SolanaRpcRuby
|
|
310
321
|
|
311
322
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getepochschedule
|
312
323
|
# Returns epoch schedule information from this cluster's genesis config
|
313
|
-
#
|
324
|
+
#
|
314
325
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
315
326
|
def get_epoch_schedule
|
316
327
|
http_method = :post
|
@@ -323,10 +334,10 @@ module SolanaRpcRuby
|
|
323
334
|
|
324
335
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getfeecalculatorforblockhash
|
325
336
|
# Returns the fee calculator associated with the query blockhash, or null if the blockhash has expired
|
326
|
-
#
|
337
|
+
#
|
327
338
|
# @param query_blockhash [String]
|
328
339
|
# @param commitment [String]
|
329
|
-
#
|
340
|
+
#
|
330
341
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
331
342
|
def get_fee_calculator_for_blockhash(query_blockhash, commitment: nil)
|
332
343
|
http_method = :post
|
@@ -347,7 +358,7 @@ module SolanaRpcRuby
|
|
347
358
|
|
348
359
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getfeerategovernor
|
349
360
|
# Returns the fee rate governor information from the root bank
|
350
|
-
#
|
361
|
+
#
|
351
362
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
352
363
|
def get_fee_rate_governor
|
353
364
|
http_method = :post
|
@@ -359,11 +370,11 @@ module SolanaRpcRuby
|
|
359
370
|
end
|
360
371
|
|
361
372
|
# @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
|
373
|
+
# Returns a recent block hash from the ledger, a fee schedule that can be used to compute
|
363
374
|
# the cost of submitting a transaction using it, and the last slot in which the blockhash will be valid.
|
364
|
-
#
|
375
|
+
#
|
365
376
|
# @param commitment [String]
|
366
|
-
#
|
377
|
+
#
|
367
378
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
368
379
|
def get_fees(commitment: nil)
|
369
380
|
http_method = :post
|
@@ -382,7 +393,7 @@ module SolanaRpcRuby
|
|
382
393
|
|
383
394
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getfirstavailableblock
|
384
395
|
# Returns the slot of the lowest confirmed block that has not been purged from the ledger
|
385
|
-
#
|
396
|
+
#
|
386
397
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
387
398
|
def get_first_available_block
|
388
399
|
http_method = :post
|
@@ -395,12 +406,12 @@ module SolanaRpcRuby
|
|
395
406
|
|
396
407
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getgenesishash
|
397
408
|
# Returns the genesis hash.
|
398
|
-
#
|
409
|
+
#
|
399
410
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
400
411
|
def get_genesis_hash
|
401
412
|
http_method = :post
|
402
413
|
method = create_method_name(__method__)
|
403
|
-
|
414
|
+
|
404
415
|
body = create_json_body(method)
|
405
416
|
|
406
417
|
send_request(body, http_method)
|
@@ -408,12 +419,12 @@ module SolanaRpcRuby
|
|
408
419
|
|
409
420
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gethealth
|
410
421
|
# Returns the current health of the node.
|
411
|
-
#
|
422
|
+
#
|
412
423
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
413
424
|
def get_health
|
414
425
|
http_method = :post
|
415
426
|
method = create_method_name(__method__)
|
416
|
-
|
427
|
+
|
417
428
|
body = create_json_body(method)
|
418
429
|
|
419
430
|
send_request(body, http_method)
|
@@ -421,12 +432,12 @@ module SolanaRpcRuby
|
|
421
432
|
|
422
433
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getidentity
|
423
434
|
# Returns the identity pubkey for the current node.
|
424
|
-
#
|
435
|
+
#
|
425
436
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
426
437
|
def get_identity
|
427
438
|
http_method = :post
|
428
439
|
method = create_method_name(__method__)
|
429
|
-
|
440
|
+
|
430
441
|
body = create_json_body(method)
|
431
442
|
|
432
443
|
send_request(body, http_method)
|
@@ -434,9 +445,9 @@ module SolanaRpcRuby
|
|
434
445
|
|
435
446
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getinflationgovernor
|
436
447
|
# Returns the current inflation governor.
|
437
|
-
#
|
448
|
+
#
|
438
449
|
# @param commitment [String]
|
439
|
-
#
|
450
|
+
#
|
440
451
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
441
452
|
def get_inflation_governor(commitment: nil)
|
442
453
|
http_method = :post
|
@@ -448,7 +459,7 @@ module SolanaRpcRuby
|
|
448
459
|
params_hash['commitment'] = commitment unless blank?(commitment)
|
449
460
|
|
450
461
|
params << params_hash unless params_hash.empty?
|
451
|
-
|
462
|
+
|
452
463
|
body = create_json_body(method, method_params: params)
|
453
464
|
|
454
465
|
send_request(body, http_method)
|
@@ -456,12 +467,12 @@ module SolanaRpcRuby
|
|
456
467
|
|
457
468
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getinflationrate
|
458
469
|
# Returns the specific inflation values for the current epoch.
|
459
|
-
#
|
470
|
+
#
|
460
471
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
461
472
|
def get_inflation_rate
|
462
473
|
http_method = :post
|
463
474
|
method = create_method_name(__method__)
|
464
|
-
|
475
|
+
|
465
476
|
body = create_json_body(method)
|
466
477
|
|
467
478
|
send_request(body, http_method)
|
@@ -469,16 +480,16 @@ module SolanaRpcRuby
|
|
469
480
|
|
470
481
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getinflationreward
|
471
482
|
# Returns the inflation reward for a list of addresses for an epoch.
|
472
|
-
#
|
483
|
+
#
|
473
484
|
# @param addresses [Array]
|
474
485
|
# @param commitment [String]
|
475
486
|
# @param epoch [Integer]
|
476
|
-
#
|
487
|
+
#
|
477
488
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
478
489
|
def get_inflation_reward(addresses, commitment: nil, epoch: nil)
|
479
490
|
http_method = :post
|
480
491
|
method = create_method_name(__method__)
|
481
|
-
|
492
|
+
|
482
493
|
params = []
|
483
494
|
params_hash = {}
|
484
495
|
|
@@ -496,15 +507,15 @@ module SolanaRpcRuby
|
|
496
507
|
|
497
508
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getlargestaccounts
|
498
509
|
# Returns the 20 largest accounts, by lamport balance (results may be cached up to two hours)
|
499
|
-
#
|
510
|
+
#
|
500
511
|
# @param commitment [String]
|
501
512
|
# @param filter [String]
|
502
|
-
#
|
513
|
+
#
|
503
514
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
504
515
|
def get_largest_accounts(commitment: nil, filter: '')
|
505
516
|
http_method = :post
|
506
517
|
method = create_method_name(__method__)
|
507
|
-
|
518
|
+
|
508
519
|
params = []
|
509
520
|
params_hash = {}
|
510
521
|
|
@@ -520,16 +531,16 @@ module SolanaRpcRuby
|
|
520
531
|
|
521
532
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getleaderschedule
|
522
533
|
# Returns the leader schedule for an epoch.
|
523
|
-
#
|
534
|
+
#
|
524
535
|
# @param epoch [Integer]
|
525
536
|
# @param commitment [String]
|
526
537
|
# @param identity [String]
|
527
|
-
#
|
538
|
+
#
|
528
539
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
529
540
|
def get_leader_schedule(epoch: nil, commitment: nil, identity: '')
|
530
541
|
http_method = :post
|
531
542
|
method = create_method_name(__method__)
|
532
|
-
|
543
|
+
|
533
544
|
params = []
|
534
545
|
params_hash = {}
|
535
546
|
|
@@ -546,12 +557,12 @@ module SolanaRpcRuby
|
|
546
557
|
|
547
558
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getmaxretransmitslot
|
548
559
|
# Get the max slot seen from retransmit stage.
|
549
|
-
#
|
560
|
+
#
|
550
561
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
551
562
|
def get_max_retransmit_slot
|
552
563
|
http_method = :post
|
553
564
|
method = create_method_name(__method__)
|
554
|
-
|
565
|
+
|
555
566
|
body = create_json_body(method)
|
556
567
|
|
557
568
|
send_request(body, http_method)
|
@@ -559,12 +570,12 @@ module SolanaRpcRuby
|
|
559
570
|
|
560
571
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getmaxshredinsertslot
|
561
572
|
# Get the max slot seen from after shred insert.
|
562
|
-
#
|
573
|
+
#
|
563
574
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
564
575
|
def get_max_shred_insert_slot
|
565
576
|
http_method = :post
|
566
577
|
method = create_method_name(__method__)
|
567
|
-
|
578
|
+
|
568
579
|
body = create_json_body(method)
|
569
580
|
|
570
581
|
send_request(body, http_method)
|
@@ -572,23 +583,23 @@ module SolanaRpcRuby
|
|
572
583
|
|
573
584
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getminimumbalanceforrentexemption
|
574
585
|
# Returns minimum balance required to make account rent exempt.
|
575
|
-
#
|
586
|
+
#
|
576
587
|
# @param account_data_length [String]
|
577
588
|
# @param commitment [String]
|
578
|
-
#
|
589
|
+
#
|
579
590
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
580
591
|
def get_minimum_balance_for_rent_exemption(
|
581
|
-
account_data_length,
|
592
|
+
account_data_length,
|
582
593
|
commitment: nil
|
583
594
|
)
|
584
595
|
http_method = :post
|
585
596
|
method = create_method_name(__method__)
|
586
|
-
|
597
|
+
|
587
598
|
params = []
|
588
599
|
params_hash = {}
|
589
600
|
|
590
601
|
params_hash['commitment'] = commitment unless blank?(commitment)
|
591
|
-
|
602
|
+
|
592
603
|
params << account_data_length
|
593
604
|
params << params_hash unless params_hash.empty?
|
594
605
|
|
@@ -597,31 +608,31 @@ module SolanaRpcRuby
|
|
597
608
|
send_request(body, http_method)
|
598
609
|
end
|
599
610
|
|
600
|
-
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getmultipleaccounts
|
611
|
+
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getmultipleaccounts
|
601
612
|
# Returns the account information for a list of Pubkeys.
|
602
613
|
# @param account_data_length [String]
|
603
614
|
# @param commitment [String]
|
604
|
-
#
|
615
|
+
#
|
605
616
|
# @return [Response, ApiError] Response when success, ApiError on failure. # @param account_data_length [String]
|
606
617
|
# @param commitment [String]
|
607
|
-
#
|
618
|
+
#
|
608
619
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
609
620
|
def get_multiple_accounts(
|
610
|
-
pubkeys,
|
621
|
+
pubkeys,
|
611
622
|
commitment: nil,
|
612
623
|
encoding: '',
|
613
624
|
data_slice: {}
|
614
625
|
)
|
615
626
|
http_method = :post
|
616
627
|
method = create_method_name(__method__)
|
617
|
-
|
628
|
+
|
618
629
|
params = []
|
619
630
|
params_hash = {}
|
620
|
-
|
631
|
+
|
621
632
|
params_hash['commitment'] = commitment unless blank?(commitment)
|
622
633
|
params_hash['encoding'] = encoding unless blank?(encoding)
|
623
634
|
params_hash['dataSlice'] = data_slice unless data_slice.empty?
|
624
|
-
|
635
|
+
|
625
636
|
params << pubkeys
|
626
637
|
params << params_hash unless params_hash.empty?
|
627
638
|
|
@@ -632,7 +643,7 @@ module SolanaRpcRuby
|
|
632
643
|
|
633
644
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getprogramaccounts
|
634
645
|
# Returns all accounts owned by the provided program Pubkey
|
635
|
-
#
|
646
|
+
#
|
636
647
|
# @param pubkey [String]
|
637
648
|
# @param commitment [String]
|
638
649
|
# @param encoding [String]
|
@@ -640,11 +651,17 @@ module SolanaRpcRuby
|
|
640
651
|
# @option data_slice [Integer] :offset
|
641
652
|
# @option data_slice [Integer] :length
|
642
653
|
# @param filters [Array<Hash, Hash>]
|
654
|
+
# @option filters [Hash<String, Integer>]
|
655
|
+
# * dataSize, Integer, 1
|
656
|
+
# @option filters [Hash<String, Hash>]
|
657
|
+
# * memcmp, Hash<String, Object>
|
658
|
+
# * offset, Integer, 1
|
659
|
+
# * bytes, String, '3Mc6vR'
|
643
660
|
# @param with_context [Boolean]
|
644
|
-
#
|
661
|
+
#
|
645
662
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
646
663
|
def get_program_accounts(
|
647
|
-
pubkey,
|
664
|
+
pubkey,
|
648
665
|
commitment: nil,
|
649
666
|
encoding: '',
|
650
667
|
data_slice: {},
|
@@ -653,10 +670,10 @@ module SolanaRpcRuby
|
|
653
670
|
)
|
654
671
|
http_method = :post
|
655
672
|
method = create_method_name(__method__)
|
656
|
-
|
673
|
+
|
657
674
|
params = []
|
658
675
|
params_hash = {}
|
659
|
-
|
676
|
+
|
660
677
|
params_hash['commitment'] = commitment unless blank?(commitment)
|
661
678
|
params_hash['encoding'] = encoding unless blank?(encoding)
|
662
679
|
params_hash['dataSlice'] = data_slice unless data_slice.empty?
|
@@ -672,19 +689,19 @@ module SolanaRpcRuby
|
|
672
689
|
end
|
673
690
|
|
674
691
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getrecentblockhash
|
675
|
-
# Returns a recent block hash from the ledger, and a fee schedule
|
692
|
+
# Returns a recent block hash from the ledger, and a fee schedule
|
676
693
|
# that can be used to compute the cost of submitting a transaction using it.
|
677
|
-
#
|
694
|
+
#
|
678
695
|
# @param commitment [String]
|
679
|
-
#
|
696
|
+
#
|
680
697
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
681
698
|
def get_recent_blockhash(commitment: nil)
|
682
699
|
http_method = :post
|
683
700
|
method = create_method_name(__method__)
|
684
|
-
|
701
|
+
|
685
702
|
params = []
|
686
703
|
params_hash = {}
|
687
|
-
|
704
|
+
|
688
705
|
params_hash['commitment'] = commitment unless blank?(commitment)
|
689
706
|
|
690
707
|
params << params_hash unless params_hash.empty?
|
@@ -695,16 +712,16 @@ module SolanaRpcRuby
|
|
695
712
|
end
|
696
713
|
|
697
714
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getrecentperformancesamples
|
698
|
-
# Returns a list of recent performance samples, in reverse slot order.
|
715
|
+
# Returns a list of recent performance samples, in reverse slot order.
|
699
716
|
# Performance samples are taken every 60 seconds and include the number of transactions and slots that occur in a given time window.
|
700
|
-
#
|
717
|
+
#
|
701
718
|
# @param limit [Integer]
|
702
|
-
#
|
719
|
+
#
|
703
720
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
704
721
|
def get_recent_performance_samples(limit: nil)
|
705
722
|
http_method = :post
|
706
723
|
method = create_method_name(__method__)
|
707
|
-
|
724
|
+
|
708
725
|
params = []
|
709
726
|
|
710
727
|
params << limit unless limit.nil?
|
@@ -716,7 +733,7 @@ module SolanaRpcRuby
|
|
716
733
|
|
717
734
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getsnapshotslot
|
718
735
|
# Returns the highest slot that the node has a snapshot for.
|
719
|
-
#
|
736
|
+
#
|
720
737
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
721
738
|
def get_snapshot_slot
|
722
739
|
http_method = :post
|
@@ -728,18 +745,18 @@ module SolanaRpcRuby
|
|
728
745
|
end
|
729
746
|
|
730
747
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getsignaturesforaddress
|
731
|
-
# NEW: This method is only available in solana-core v1.7 or newer.
|
748
|
+
# NEW: This method is only available in solana-core v1.7 or newer.
|
732
749
|
# Please use getConfirmedSignaturesForAddress2 for solana-core v1.6
|
733
|
-
#
|
734
|
-
# Returns confirmed signatures for transactions involving an address backwards
|
750
|
+
#
|
751
|
+
# Returns confirmed signatures for transactions involving an address backwards
|
735
752
|
# in time from the provided signature or most recent confirmed block
|
736
|
-
#
|
753
|
+
#
|
737
754
|
# @param account_address [String]
|
738
755
|
# @param limit [Integer]
|
739
756
|
# @param before [String]
|
740
757
|
# @param until_ [String]
|
741
758
|
# @param commitment [String]
|
742
|
-
#
|
759
|
+
#
|
743
760
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
744
761
|
def get_signatures_for_address(
|
745
762
|
account_address,
|
@@ -750,7 +767,7 @@ module SolanaRpcRuby
|
|
750
767
|
)
|
751
768
|
http_method = :post
|
752
769
|
method = create_method_name(__method__)
|
753
|
-
|
770
|
+
|
754
771
|
params = []
|
755
772
|
params_hash = {}
|
756
773
|
|
@@ -767,16 +784,16 @@ module SolanaRpcRuby
|
|
767
784
|
send_request(body, http_method)
|
768
785
|
end
|
769
786
|
|
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,
|
787
|
+
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getsignaturestatuses # NEW: This method is only available in solana-core v1.7 or newer.
|
788
|
+
#
|
789
|
+
# Returns the statuses of a list of signatures.
|
790
|
+
# Unless the searchTransactionHistory configuration parameter is included,
|
791
|
+
# this method only searches the recent status cache of signatures,
|
775
792
|
# which retains statuses for all active slots plus MAX_RECENT_BLOCKHASHES rooted slots.
|
776
|
-
#
|
793
|
+
#
|
777
794
|
# @param transaction_signatures [Array]
|
778
795
|
# @param search_transaction_history [Boolean]
|
779
|
-
#
|
796
|
+
#
|
780
797
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
781
798
|
def get_signature_statuses(
|
782
799
|
transaction_signatures,
|
@@ -784,7 +801,7 @@ module SolanaRpcRuby
|
|
784
801
|
)
|
785
802
|
http_method = :post
|
786
803
|
method = create_method_name(__method__)
|
787
|
-
|
804
|
+
|
788
805
|
params = []
|
789
806
|
params_hash = {}
|
790
807
|
|
@@ -800,17 +817,17 @@ module SolanaRpcRuby
|
|
800
817
|
|
801
818
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getslot
|
802
819
|
# Returns the current slot the node is processing.
|
803
|
-
#
|
820
|
+
#
|
804
821
|
# @param commitment [String]
|
805
|
-
#
|
822
|
+
#
|
806
823
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
807
824
|
def get_slot(commitment: nil)
|
808
825
|
http_method = :post
|
809
826
|
method = create_method_name(__method__)
|
810
|
-
|
827
|
+
|
811
828
|
params = []
|
812
829
|
params_hash = {}
|
813
|
-
|
830
|
+
|
814
831
|
params_hash['commitment'] = commitment unless blank?(commitment)
|
815
832
|
|
816
833
|
params << params_hash unless params_hash.empty?
|
@@ -822,19 +839,19 @@ module SolanaRpcRuby
|
|
822
839
|
|
823
840
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getslotleader
|
824
841
|
# Returns the current slot leader
|
825
|
-
#
|
842
|
+
#
|
826
843
|
# @param commitment [String]
|
827
|
-
#
|
844
|
+
#
|
828
845
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
829
846
|
def get_slot_leader(commitment: nil)
|
830
847
|
http_method = :post
|
831
848
|
method = create_method_name(__method__)
|
832
|
-
|
849
|
+
|
833
850
|
params = []
|
834
851
|
params_hash = {}
|
835
852
|
|
836
853
|
params_hash['commitment'] = commitment unless blank?(commitment)
|
837
|
-
|
854
|
+
|
838
855
|
params << params_hash unless params_hash.empty?
|
839
856
|
|
840
857
|
body = create_json_body(method, method_params: params)
|
@@ -844,15 +861,15 @@ module SolanaRpcRuby
|
|
844
861
|
|
845
862
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getslotleaders
|
846
863
|
# Returns the slot leaders for a given slot range.
|
847
|
-
#
|
864
|
+
#
|
848
865
|
# @param start_slot [Integer]
|
849
866
|
# @param limit [Integer]
|
850
|
-
#
|
867
|
+
#
|
851
868
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
852
869
|
def get_slot_leaders(start_slot, limit)
|
853
870
|
http_method = :post
|
854
871
|
method = create_method_name(__method__)
|
855
|
-
|
872
|
+
|
856
873
|
params = [start_slot, limit]
|
857
874
|
|
858
875
|
body = create_json_body(method, method_params: params)
|
@@ -862,16 +879,16 @@ module SolanaRpcRuby
|
|
862
879
|
|
863
880
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getstakeactivation
|
864
881
|
# Returns epoch activation information for a stake account.
|
865
|
-
#
|
882
|
+
#
|
866
883
|
# @param pubkey [String]
|
867
884
|
# @param commitment [String]
|
868
885
|
# @param epoch [Integer]
|
869
|
-
#
|
886
|
+
#
|
870
887
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
871
888
|
def get_stake_activation(pubkey, commitment: nil, epoch: nil)
|
872
889
|
http_method = :post
|
873
890
|
method = create_method_name(__method__)
|
874
|
-
|
891
|
+
|
875
892
|
params = []
|
876
893
|
params_hash = {}
|
877
894
|
|
@@ -888,14 +905,14 @@ module SolanaRpcRuby
|
|
888
905
|
|
889
906
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getsupply
|
890
907
|
# Returns information about the current supply.
|
891
|
-
#
|
908
|
+
#
|
892
909
|
# @param commitment [String]
|
893
|
-
#
|
910
|
+
#
|
894
911
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
895
912
|
def get_supply(commitment: nil)
|
896
913
|
http_method = :post
|
897
914
|
method = create_method_name(__method__)
|
898
|
-
|
915
|
+
|
899
916
|
params = []
|
900
917
|
params_hash = {}
|
901
918
|
|
@@ -909,17 +926,17 @@ module SolanaRpcRuby
|
|
909
926
|
end
|
910
927
|
|
911
928
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountbalance
|
912
|
-
#
|
929
|
+
#
|
913
930
|
# Returns the token balance of an SPL Token account.
|
914
|
-
#
|
931
|
+
#
|
915
932
|
# @param token_account_pubkey [String]
|
916
933
|
# @param commitment [String]
|
917
|
-
#
|
934
|
+
#
|
918
935
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
919
936
|
def get_token_account_balance(token_account_pubkey, commitment: nil)
|
920
937
|
http_method = :post
|
921
938
|
method = create_method_name(__method__)
|
922
|
-
|
939
|
+
|
923
940
|
params = []
|
924
941
|
params_hash = {}
|
925
942
|
|
@@ -934,11 +951,11 @@ module SolanaRpcRuby
|
|
934
951
|
end
|
935
952
|
|
936
953
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbydelegate # Returns the token balance of an SPL Token account.
|
937
|
-
#
|
954
|
+
#
|
938
955
|
# Returns all SPL Token accounts by approved Delegate.
|
939
|
-
#
|
956
|
+
#
|
940
957
|
# IMPORTANT: According to docs there should be mint or program_id passed in, not both.
|
941
|
-
#
|
958
|
+
#
|
942
959
|
# @param token_account_pubkey [String]
|
943
960
|
# @param mint [String]
|
944
961
|
# @param program_id [String]
|
@@ -947,7 +964,7 @@ module SolanaRpcRuby
|
|
947
964
|
# @param data_slice [Hash]
|
948
965
|
# @option data_slice [Integer] :offset
|
949
966
|
# @option data_slice [Integer] :length
|
950
|
-
#
|
967
|
+
#
|
951
968
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
952
969
|
def get_token_accounts_by_delegate(
|
953
970
|
token_account_pubkey,
|
@@ -957,22 +974,22 @@ module SolanaRpcRuby
|
|
957
974
|
encoding: '',
|
958
975
|
data_slice: {}
|
959
976
|
)
|
960
|
-
|
961
|
-
raise ArgumentError, 'You should pass mint or program_id, not both.' if !mint
|
977
|
+
|
978
|
+
raise ArgumentError, 'You should pass mint or program_id, not both.' if !blank?(mint) && !blank?(program_id)
|
962
979
|
|
963
980
|
http_method = :post
|
964
981
|
method = create_method_name(__method__)
|
965
|
-
|
982
|
+
|
966
983
|
params = []
|
967
984
|
params_hash = {}
|
968
985
|
params_hash_2 = {}
|
969
986
|
|
970
|
-
params_hash['mint'] = mint unless mint
|
971
|
-
params_hash['programId'] = program_id unless program_id
|
987
|
+
params_hash['mint'] = mint unless blank?(mint)
|
988
|
+
params_hash['programId'] = program_id unless blank?(program_id)
|
972
989
|
|
973
990
|
params_hash_2['commitment'] = commitment unless blank?(commitment)
|
974
991
|
params_hash_2['encoding'] = encoding unless blank?(encoding)
|
975
|
-
params_hash_2['dataSlice'] = data_slice unless data_slice
|
992
|
+
params_hash_2['dataSlice'] = data_slice unless blank?(data_slice)
|
976
993
|
|
977
994
|
params << token_account_pubkey
|
978
995
|
params << params_hash unless params_hash.empty?
|
@@ -983,12 +1000,12 @@ module SolanaRpcRuby
|
|
983
1000
|
send_request(body, http_method)
|
984
1001
|
end
|
985
1002
|
|
986
|
-
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner #
|
987
|
-
#
|
1003
|
+
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenaccountsbyowner #
|
1004
|
+
#
|
988
1005
|
# Returns all SPL Token accounts by token owner.
|
989
|
-
#
|
1006
|
+
#
|
990
1007
|
# IMPORTANT: According to docs there should be mint or program_id passed in, not both.
|
991
|
-
#
|
1008
|
+
#
|
992
1009
|
# @param token_account_pubkey [String]
|
993
1010
|
# @param mint [String]
|
994
1011
|
# @param program_id [String]
|
@@ -997,7 +1014,7 @@ module SolanaRpcRuby
|
|
997
1014
|
# @param data_slice [Hash]
|
998
1015
|
# @option data_slice [Integer] :offset
|
999
1016
|
# @option data_slice [Integer] :length
|
1000
|
-
#
|
1017
|
+
#
|
1001
1018
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1002
1019
|
def get_token_accounts_by_owner(
|
1003
1020
|
token_account_pubkey,
|
@@ -1012,7 +1029,7 @@ module SolanaRpcRuby
|
|
1012
1029
|
|
1013
1030
|
http_method = :post
|
1014
1031
|
method = create_method_name(__method__)
|
1015
|
-
|
1032
|
+
|
1016
1033
|
params = []
|
1017
1034
|
params_hash = {}
|
1018
1035
|
params_hash_2 = {}
|
@@ -1034,13 +1051,13 @@ module SolanaRpcRuby
|
|
1034
1051
|
send_request(body, http_method)
|
1035
1052
|
end
|
1036
1053
|
|
1037
|
-
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenlargestaccounts #
|
1038
|
-
#
|
1054
|
+
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettokenlargestaccounts #
|
1055
|
+
#
|
1039
1056
|
# Returns the 20 largest accounts of a particular SPL Token type.
|
1040
|
-
#
|
1057
|
+
#
|
1041
1058
|
# @param token_mint_pubkey [String]
|
1042
1059
|
# @param commitment [String]
|
1043
|
-
#
|
1060
|
+
#
|
1044
1061
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1045
1062
|
def get_token_largest_accounts(
|
1046
1063
|
token_mint_pubkey,
|
@@ -1049,7 +1066,7 @@ module SolanaRpcRuby
|
|
1049
1066
|
|
1050
1067
|
http_method = :post
|
1051
1068
|
method = create_method_name(__method__)
|
1052
|
-
|
1069
|
+
|
1053
1070
|
params = []
|
1054
1071
|
params_hash = {}
|
1055
1072
|
|
@@ -1063,19 +1080,19 @@ module SolanaRpcRuby
|
|
1063
1080
|
send_request(body, http_method)
|
1064
1081
|
end
|
1065
1082
|
|
1066
|
-
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettransaction
|
1067
|
-
#
|
1083
|
+
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettransaction
|
1084
|
+
#
|
1068
1085
|
# Returns transaction details for a confirmed transaction
|
1069
|
-
#
|
1086
|
+
#
|
1070
1087
|
# @param transaction_signature [String]
|
1071
1088
|
# @param encoding [String]
|
1072
1089
|
# @param commitment [String]
|
1073
|
-
#
|
1090
|
+
#
|
1074
1091
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1075
1092
|
def get_transaction(transaction_signature, encoding: '', commitment: nil)
|
1076
1093
|
http_method = :post
|
1077
1094
|
method = create_method_name(__method__)
|
1078
|
-
|
1095
|
+
|
1079
1096
|
params = []
|
1080
1097
|
params_hash = {}
|
1081
1098
|
|
@@ -1090,17 +1107,17 @@ module SolanaRpcRuby
|
|
1090
1107
|
send_request(body, http_method)
|
1091
1108
|
end
|
1092
1109
|
|
1093
|
-
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettransactioncount
|
1094
|
-
#
|
1110
|
+
# @see https://docs.solana.com/developing/clients/jsonrpc-api#gettransactioncount
|
1111
|
+
#
|
1095
1112
|
# Returns the current Transaction count from the ledger
|
1096
|
-
#
|
1113
|
+
#
|
1097
1114
|
# @param commitment [String]
|
1098
|
-
#
|
1115
|
+
#
|
1099
1116
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1100
1117
|
def get_transaction_count(commitment: nil)
|
1101
1118
|
http_method = :post
|
1102
1119
|
method = create_method_name(__method__)
|
1103
|
-
|
1120
|
+
|
1104
1121
|
params = []
|
1105
1122
|
params_hash = {}
|
1106
1123
|
|
@@ -1114,9 +1131,9 @@ module SolanaRpcRuby
|
|
1114
1131
|
end
|
1115
1132
|
|
1116
1133
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getversion
|
1117
|
-
#
|
1134
|
+
#
|
1118
1135
|
# Returns the current solana versions running on the node.
|
1119
|
-
#
|
1136
|
+
#
|
1120
1137
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1121
1138
|
def get_version
|
1122
1139
|
http_method = :post
|
@@ -1129,10 +1146,10 @@ module SolanaRpcRuby
|
|
1129
1146
|
|
1130
1147
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#getvoteaccounts
|
1131
1148
|
# Returns the account info and associated stake for all the voting accounts in the current bank.
|
1132
|
-
#
|
1149
|
+
#
|
1133
1150
|
# @param commitment [String]
|
1134
1151
|
# @param vote_pubkey [String]
|
1135
|
-
#
|
1152
|
+
#
|
1136
1153
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1137
1154
|
def get_vote_accounts(commitment: nil, vote_pubkey: nil)
|
1138
1155
|
http_method = :post
|
@@ -1152,9 +1169,9 @@ module SolanaRpcRuby
|
|
1152
1169
|
end
|
1153
1170
|
|
1154
1171
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#minimumledgerslot
|
1155
|
-
#
|
1172
|
+
#
|
1156
1173
|
# Returns the current solana versions running on the node.
|
1157
|
-
#
|
1174
|
+
#
|
1158
1175
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1159
1176
|
def get_version
|
1160
1177
|
http_method = :post
|
@@ -1166,10 +1183,10 @@ module SolanaRpcRuby
|
|
1166
1183
|
end
|
1167
1184
|
|
1168
1185
|
# @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.
|
1186
|
+
#
|
1187
|
+
# Returns the lowest slot that the node has information about in its ledger.
|
1171
1188
|
# This value may increase over time if the node is configured to purge older ledger data
|
1172
|
-
#
|
1189
|
+
#
|
1173
1190
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1174
1191
|
def minimum_ledger_slot
|
1175
1192
|
http_method = :post
|
@@ -1181,13 +1198,13 @@ module SolanaRpcRuby
|
|
1181
1198
|
end
|
1182
1199
|
|
1183
1200
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#requestairdrop
|
1184
|
-
#
|
1201
|
+
#
|
1185
1202
|
# Requests an airdrop of lamports to a Pubkey
|
1186
|
-
#
|
1203
|
+
#
|
1187
1204
|
# @param pubkey [String]
|
1188
1205
|
# @param lamports [Integer]
|
1189
1206
|
# @param commitment [String]
|
1190
|
-
#
|
1207
|
+
#
|
1191
1208
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1192
1209
|
def request_airdrop(pubkey, lamports, commitment: nil)
|
1193
1210
|
http_method = :post
|
@@ -1206,17 +1223,17 @@ module SolanaRpcRuby
|
|
1206
1223
|
end
|
1207
1224
|
|
1208
1225
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#sendtransaction
|
1209
|
-
#
|
1226
|
+
#
|
1210
1227
|
# Submits a signed transaction to the cluster for processing.
|
1211
|
-
#
|
1228
|
+
#
|
1212
1229
|
# @param transaction_signature [String]
|
1213
1230
|
# @param skip_pre_flight [Boolean]
|
1214
1231
|
# @param pre_flight_commitment [String]
|
1215
1232
|
# @param encoding [String]
|
1216
|
-
#
|
1233
|
+
#
|
1217
1234
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1218
1235
|
def send_transaction(
|
1219
|
-
transaction_signature,
|
1236
|
+
transaction_signature,
|
1220
1237
|
skip_pre_flight: false,
|
1221
1238
|
pre_flight_commitment: nil,
|
1222
1239
|
encoding: ''
|
@@ -1241,10 +1258,10 @@ module SolanaRpcRuby
|
|
1241
1258
|
|
1242
1259
|
|
1243
1260
|
# @see https://docs.solana.com/developing/clients/jsonrpc-api#simulatetransaction
|
1244
|
-
#
|
1261
|
+
#
|
1245
1262
|
# Simulate sending a transaction
|
1246
1263
|
# accounts_addresses should be an empty array (?)
|
1247
|
-
#
|
1264
|
+
#
|
1248
1265
|
# @param transaction_signature [String]
|
1249
1266
|
# @param accounts_addresses [Array]
|
1250
1267
|
# @param sig_verify [Boolean]
|
@@ -1252,7 +1269,7 @@ module SolanaRpcRuby
|
|
1252
1269
|
# @param encoding [String]
|
1253
1270
|
# @param replace_recent_blockhash [Boolean]
|
1254
1271
|
# @param accounts_encoding [String]
|
1255
|
-
#
|
1272
|
+
#
|
1256
1273
|
# @return [Response, ApiError] Response when success, ApiError on failure.
|
1257
1274
|
def simulate_transaction(
|
1258
1275
|
transaction_signature,
|
@@ -1299,18 +1316,10 @@ module SolanaRpcRuby
|
|
1299
1316
|
if api_response.body
|
1300
1317
|
response = Response.new(api_response)
|
1301
1318
|
|
1302
|
-
fail ApiError.new(response.parsed_response) if response.parsed_response.key?('error')
|
1319
|
+
fail ApiError.new(message: response.parsed_response) if response.parsed_response.key?('error')
|
1303
1320
|
|
1304
1321
|
return response
|
1305
1322
|
end
|
1306
1323
|
end
|
1307
|
-
|
1308
|
-
def create_method_name(method)
|
1309
|
-
return '' unless method
|
1310
|
-
|
1311
|
-
method.to_s.split('_').map.with_index do |string, i|
|
1312
|
-
i == 0 ? string : string.capitalize
|
1313
|
-
end.join
|
1314
|
-
end
|
1315
1324
|
end
|
1316
1325
|
end
|