solana-ruby 0.1.3 → 0.1.5
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/lib/solana-ruby/client.rb +42 -52
- data/lib/solana-ruby/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2e0202ab58e2b0ccb77296d5ffa26a1408527e52dbc3e35231c6751b2b7d4a5c
|
|
4
|
+
data.tar.gz: f2fa02339b07a39149bad5a5466b976df22af33065ad870481313d2b23a450ef
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bea7c63739520e701323f6449b21d097eebbf31e79dc659d0ccc1417baa113ef64e786f6d2006c910f5773f12bd157e0606ee6e56409946bdabbe2116abf5466
|
|
7
|
+
data.tar.gz: 4b00e4f10ea497dec5a32515b323b1eb5b76f2a0e3a34c4b9a91b7b80c2913ff6a2c5441bc5e51278262b08d4060a27141dff0813a87b5fa3d599c9475e94ac0
|
data/lib/solana-ruby/client.rb
CHANGED
|
@@ -12,9 +12,8 @@ module Solana
|
|
|
12
12
|
##
|
|
13
13
|
# Initializes a new Client.
|
|
14
14
|
#
|
|
15
|
-
# @param [String, nil]
|
|
16
|
-
def initialize(api_endpoint = Solana::Utils::MAINNET
|
|
17
|
-
@api_key = api_key
|
|
15
|
+
# @param [String, nil] api_endpoint Optional API endpoint. Mainnet by default
|
|
16
|
+
def initialize(api_endpoint = Solana::Utils::MAINNET)
|
|
18
17
|
@api_endpoint = api_endpoint
|
|
19
18
|
end
|
|
20
19
|
|
|
@@ -80,21 +79,19 @@ module Solana
|
|
|
80
79
|
# Retrieves the estimated production time of a specific block.
|
|
81
80
|
#
|
|
82
81
|
# @param [Integer] slot_number The slot number of the block.
|
|
83
|
-
# @param [Hash] options Optional parameters for the request.
|
|
84
82
|
# @return [Integer] The estimated production time in seconds.
|
|
85
|
-
def get_block_time(slot_number,
|
|
86
|
-
request_http('getBlockTime', [slot_number
|
|
83
|
+
def get_block_time(slot_number, &block)
|
|
84
|
+
request_http('getBlockTime', [slot_number], &block)
|
|
87
85
|
end
|
|
88
86
|
|
|
89
87
|
##
|
|
90
88
|
# Retrieves a list of confirmed blocks between two slot numbers.
|
|
91
89
|
#
|
|
92
90
|
# @param [Integer] start_slot The start slot number.
|
|
93
|
-
# @param [Integer] end_slot The end slot number.
|
|
94
91
|
# @param [Hash] options Optional parameters for the request.
|
|
95
92
|
# @return [Array<Integer>] The list of confirmed blocks.
|
|
96
|
-
def get_blocks(start_slot,
|
|
97
|
-
request_http('getBlocks', [start_slot,
|
|
93
|
+
def get_blocks(start_slot, options = {}, &block)
|
|
94
|
+
request_http('getBlocks', [start_slot, options], &block)
|
|
98
95
|
end
|
|
99
96
|
|
|
100
97
|
##
|
|
@@ -111,10 +108,9 @@ module Solana
|
|
|
111
108
|
##
|
|
112
109
|
# Retrieves the list of cluster nodes.
|
|
113
110
|
#
|
|
114
|
-
# @param [Hash] options Optional parameters for the request.
|
|
115
111
|
# @return [Array<Hash>] The list of cluster nodes.
|
|
116
|
-
def get_cluster_nodes(
|
|
117
|
-
request_http('getClusterNodes',
|
|
112
|
+
def get_cluster_nodes(&block)
|
|
113
|
+
request_http('getClusterNodes', &block)
|
|
118
114
|
end
|
|
119
115
|
|
|
120
116
|
##
|
|
@@ -129,10 +125,9 @@ module Solana
|
|
|
129
125
|
##
|
|
130
126
|
# Retrieves the epoch schedule.
|
|
131
127
|
#
|
|
132
|
-
# @param [Hash] options Optional parameters for the request.
|
|
133
128
|
# @return [Hash] The epoch schedule.
|
|
134
|
-
def get_epoch_schedule(
|
|
135
|
-
request_http('getEpochSchedule',
|
|
129
|
+
def get_epoch_schedule(&block)
|
|
130
|
+
request_http('getEpochSchedule', &block)
|
|
136
131
|
end
|
|
137
132
|
|
|
138
133
|
##
|
|
@@ -148,46 +143,41 @@ module Solana
|
|
|
148
143
|
##
|
|
149
144
|
# Retrieves the slot of the first available block.
|
|
150
145
|
#
|
|
151
|
-
# @param [Hash] options Optional parameters for the request.
|
|
152
146
|
# @return [Integer] The slot of the first available block.
|
|
153
|
-
def get_first_available_block(
|
|
154
|
-
request_http('getFirstAvailableBlock',
|
|
147
|
+
def get_first_available_block(&block)
|
|
148
|
+
request_http('getFirstAvailableBlock', &block)
|
|
155
149
|
end
|
|
156
150
|
|
|
157
151
|
##
|
|
158
152
|
# Retrieves the genesis hash.
|
|
159
153
|
#
|
|
160
|
-
# @param [Hash] options Optional parameters for the request.
|
|
161
154
|
# @return [String] The genesis hash.
|
|
162
|
-
def get_genesis_hash(
|
|
163
|
-
request_http('getGenesisHash',
|
|
155
|
+
def get_genesis_hash(&block)
|
|
156
|
+
request_http('getGenesisHash', &block)
|
|
164
157
|
end
|
|
165
158
|
|
|
166
159
|
##
|
|
167
160
|
# Checks the health of the node.
|
|
168
161
|
#
|
|
169
|
-
# @param [Hash] options Optional parameters for the request.
|
|
170
162
|
# @return [String] The health status of the node.
|
|
171
|
-
def get_health(
|
|
172
|
-
request_http('getHealth',
|
|
163
|
+
def get_health(&block)
|
|
164
|
+
request_http('getHealth', &block)
|
|
173
165
|
end
|
|
174
166
|
|
|
175
167
|
##
|
|
176
168
|
# Retrieves the highest snapshot slot.
|
|
177
169
|
#
|
|
178
|
-
# @param [Hash] options Optional parameters for the request.
|
|
179
170
|
# @return [Integer] The highest snapshot slot.
|
|
180
|
-
def get_highest_snapshot_slot(
|
|
181
|
-
request_http('getHighestSnapshotSlot',
|
|
171
|
+
def get_highest_snapshot_slot(&block)
|
|
172
|
+
request_http('getHighestSnapshotSlot', &block)
|
|
182
173
|
end
|
|
183
174
|
|
|
184
175
|
##
|
|
185
176
|
# Retrieves the identity of the node.
|
|
186
177
|
#
|
|
187
|
-
# @param [Hash] options Optional parameters for the request.
|
|
188
178
|
# @return [Hash] The identity information of the node.
|
|
189
|
-
def get_identity(
|
|
190
|
-
request_http('getIdentity',
|
|
179
|
+
def get_identity(&block)
|
|
180
|
+
request_http('getIdentity', &block)
|
|
191
181
|
end
|
|
192
182
|
|
|
193
183
|
##
|
|
@@ -202,10 +192,9 @@ module Solana
|
|
|
202
192
|
##
|
|
203
193
|
# Retrieves the current inflation rate.
|
|
204
194
|
#
|
|
205
|
-
# @param [Hash] options Optional parameters for the request.
|
|
206
195
|
# @return [Hash] The inflation rate.
|
|
207
|
-
def get_inflation_rate(
|
|
208
|
-
request_http('getInflationRate',
|
|
196
|
+
def get_inflation_rate(&block)
|
|
197
|
+
request_http('getInflationRate', &block)
|
|
209
198
|
end
|
|
210
199
|
|
|
211
200
|
##
|
|
@@ -236,31 +225,30 @@ module Solana
|
|
|
236
225
|
request_http('getLatestBlockhash', [options], &block)
|
|
237
226
|
end
|
|
238
227
|
|
|
228
|
+
## TODO
|
|
239
229
|
##
|
|
240
230
|
# Retrieves the leader schedule.
|
|
241
231
|
#
|
|
242
232
|
# @param [Hash] options Optional parameters for the request.
|
|
243
233
|
# @return [Hash] The leader schedule.
|
|
244
|
-
def get_leader_schedule(options = {}, &block)
|
|
245
|
-
request_http('getLeaderSchedule', [options], &block)
|
|
234
|
+
def get_leader_schedule(slot_number = nil, options = {}, &block)
|
|
235
|
+
request_http('getLeaderSchedule', [slot_number, options], &block)
|
|
246
236
|
end
|
|
247
237
|
|
|
248
238
|
##
|
|
249
239
|
# Retrieves the maximum retransmit slot.
|
|
250
240
|
#
|
|
251
|
-
# @param [Hash] options Optional parameters for the request.
|
|
252
241
|
# @return [Integer] The maximum retransmit slot.
|
|
253
|
-
def get_max_retransmit_slot(
|
|
254
|
-
request_http('getMaxRetransmitSlot',
|
|
242
|
+
def get_max_retransmit_slot(&block)
|
|
243
|
+
request_http('getMaxRetransmitSlot', &block)
|
|
255
244
|
end
|
|
256
245
|
|
|
257
246
|
##
|
|
258
247
|
# Retrieves the maximum shred insert slot.
|
|
259
248
|
#
|
|
260
|
-
# @param [Hash] options Optional parameters for the request.
|
|
261
249
|
# @return [Integer] The maximum shred insert slot.
|
|
262
|
-
def get_max_shred_insert_slot(
|
|
263
|
-
request_http('getMaxShredInsertSlot',
|
|
250
|
+
def get_max_shred_insert_slot(&block)
|
|
251
|
+
request_http('getMaxShredInsertSlot', &block)
|
|
264
252
|
end
|
|
265
253
|
|
|
266
254
|
##
|
|
@@ -296,19 +284,20 @@ module Solana
|
|
|
296
284
|
##
|
|
297
285
|
# Retrieves recent performance samples.
|
|
298
286
|
#
|
|
287
|
+
# @param [Integer] limit The number of performance samples to retrieve.
|
|
299
288
|
# @param [Hash] options Optional parameters for the request.
|
|
300
289
|
# @return [Array<Hash>] The recent performance samples.
|
|
301
|
-
def get_recent_performance_samples(options = {}, &block)
|
|
302
|
-
request_http('getRecentPerformanceSamples', [options], &block)
|
|
290
|
+
def get_recent_performance_samples(limit = 720, options = {}, &block)
|
|
291
|
+
request_http('getRecentPerformanceSamples', [limit, options], &block)
|
|
303
292
|
end
|
|
304
293
|
|
|
305
294
|
##
|
|
306
295
|
# Retrieves recent prioritization fees.
|
|
307
296
|
#
|
|
308
|
-
# @param [
|
|
297
|
+
# @param [Array<String>] addresses Optional array of addresses to filter the fees by.
|
|
309
298
|
# @return [Hash] The recent prioritization fees.
|
|
310
|
-
def get_recent_prioritization_fees(
|
|
311
|
-
request_http('getRecentPrioritizationFees', [
|
|
299
|
+
def get_recent_prioritization_fees(addresses = [], &block)
|
|
300
|
+
request_http('getRecentPrioritizationFees', [addresses], &block)
|
|
312
301
|
end
|
|
313
302
|
|
|
314
303
|
##
|
|
@@ -491,8 +480,8 @@ module Solana
|
|
|
491
480
|
#
|
|
492
481
|
# @param [Hash] options Optional parameters for the request.
|
|
493
482
|
# @return [Integer] The minimum ledger slot.
|
|
494
|
-
def minimum_ledger_slot(
|
|
495
|
-
request_http('minimumLedgerSlot',
|
|
483
|
+
def minimum_ledger_slot(&block)
|
|
484
|
+
request_http('minimumLedgerSlot', &block)
|
|
496
485
|
end
|
|
497
486
|
|
|
498
487
|
##
|
|
@@ -510,9 +499,10 @@ module Solana
|
|
|
510
499
|
# Sends a transaction.
|
|
511
500
|
#
|
|
512
501
|
# @param [Hash] transaction The transaction to send.
|
|
502
|
+
# @param [Hash] options Optional parameters for the request.
|
|
513
503
|
# @return [Hash] The response from the send transaction request.
|
|
514
|
-
def send_transaction(transaction, &block)
|
|
515
|
-
request_http('sendTransaction', [transaction.to_json], &block)
|
|
504
|
+
def send_transaction(transaction, options = {}, &block)
|
|
505
|
+
request_http('sendTransaction', [transaction.to_json, options], &block)
|
|
516
506
|
end
|
|
517
507
|
|
|
518
508
|
##
|
|
@@ -549,8 +539,8 @@ module Solana
|
|
|
549
539
|
#
|
|
550
540
|
# @param [Hash] options Optional parameters for the subscription.
|
|
551
541
|
# @yield [Object] The response from the subscription.
|
|
552
|
-
def block_subscribe(options = {}, &block)
|
|
553
|
-
request_ws('blockSubscribe', [options], &block)
|
|
542
|
+
def block_subscribe(filter, options = {}, &block)
|
|
543
|
+
request_ws('blockSubscribe', [filter, options], &block)
|
|
554
544
|
end
|
|
555
545
|
|
|
556
546
|
##
|
data/lib/solana-ruby/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solana-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fabrice Renard
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-07-
|
|
11
|
+
date: 2024-07-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: httpx
|