ton-sdk-ruby 0.0.13 → 0.0.15
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/ton-sdk-ruby/boc/builder.rb +0 -1
- data/lib/ton-sdk-ruby/boc/hashmap.rb +4 -11
- data/lib/ton-sdk-ruby/boc/serializer.rb +5 -32
- data/lib/ton-sdk-ruby/boc/slice.rb +3 -2
- data/lib/ton-sdk-ruby/johnny_mnemonic/ton_mnemonic.rb +3 -1
- data/lib/ton-sdk-ruby/providers/toncenter.rb +11 -11
- data/lib/ton-sdk-ruby/types/address.rb +3 -3
- data/lib/ton-sdk-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: ad45bb2485cefeafb304d62ed43ce3b7693112ba358d7587fa3542884b23b9be
|
4
|
+
data.tar.gz: 2d94d49d5fbe0025880214539379264dc07404ed167b17a7607bab53ce02be2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77653de6ace3a62772c20958c977460bfc9a3dd32f970ed786c9fe88aba31e16499c9c0729108db530467c0a7619833da6621d805842707d37aaab831b9d7082
|
7
|
+
data.tar.gz: c4a280f6696dfc5876acb69fa474c30a7f35b662d04038dba6d3e13b395ea5113dca21e5187feab0557c22d3886dac0732d05a28bd17179a7b59b12203131a84
|
@@ -133,13 +133,11 @@ module TonSdkRuby
|
|
133
133
|
|
134
134
|
edge = Builder.new
|
135
135
|
label = serialize_label(nodes)
|
136
|
-
|
137
136
|
edge.store_bits(label)
|
138
137
|
|
139
138
|
# hmn_leaf#_
|
140
139
|
if nodes.length == 1
|
141
140
|
leaf = serialize_leaf(nodes[0])
|
142
|
-
|
143
141
|
edge.store_slice(leaf.parse)
|
144
142
|
end
|
145
143
|
|
@@ -195,7 +193,6 @@ module TonSdkRuby
|
|
195
193
|
break
|
196
194
|
end
|
197
195
|
end
|
198
|
-
|
199
196
|
same_bits_length = same_bits_index.nil? ? first.length : same_bits_index
|
200
197
|
|
201
198
|
if first[0] != last[0] || m == 0
|
@@ -217,13 +214,11 @@ module TonSdkRuby
|
|
217
214
|
|
218
215
|
# Sort labels by their length
|
219
216
|
labels.sort_by! { |el| el[:label].length }
|
220
|
-
|
221
217
|
# Get most compact label
|
222
218
|
choosen = labels[0]
|
223
219
|
|
224
220
|
# Remove label bits from nodes keys
|
225
221
|
nodes.each { |key, _| key.shift(choosen[:bits]) }
|
226
|
-
|
227
222
|
choosen[:label]
|
228
223
|
end
|
229
224
|
|
@@ -280,10 +275,8 @@ module TonSdkRuby
|
|
280
275
|
|
281
276
|
if key.length == key_size
|
282
277
|
value = Builder.new.store_slice(edge).cell
|
283
|
-
|
284
278
|
return nodes.concat([[key, value]])
|
285
279
|
end
|
286
|
-
|
287
280
|
edge.refs.each_with_index do |_r, i|
|
288
281
|
fork_edge = edge.load_ref.parse
|
289
282
|
fork_key = key + [i]
|
@@ -332,7 +325,7 @@ module TonSdkRuby
|
|
332
325
|
serialize
|
333
326
|
end
|
334
327
|
|
335
|
-
def self.parse(key_size, slice, options =
|
328
|
+
def self.parse(key_size, slice, options = {})
|
336
329
|
deserialize(key_size, slice, options)
|
337
330
|
end
|
338
331
|
|
@@ -356,7 +349,7 @@ module TonSdkRuby
|
|
356
349
|
end
|
357
350
|
|
358
351
|
class HashmapE < Hashmap
|
359
|
-
def initialize(key_size, options =
|
352
|
+
def initialize(key_size, options = {})
|
360
353
|
super(key_size, options)
|
361
354
|
end
|
362
355
|
|
@@ -373,7 +366,7 @@ module TonSdkRuby
|
|
373
366
|
end
|
374
367
|
end
|
375
368
|
|
376
|
-
def self.deserialize(key_size, slice, options =
|
369
|
+
def self.deserialize(key_size, slice, options = {})
|
377
370
|
if slice.bits.length != 1
|
378
371
|
raise 'HashmapE: bad hashmap size flag.'
|
379
372
|
end
|
@@ -393,7 +386,7 @@ module TonSdkRuby
|
|
393
386
|
end
|
394
387
|
end
|
395
388
|
|
396
|
-
def self.parse(key_size, slice, options =
|
389
|
+
def self.parse(key_size, slice, options = {})
|
397
390
|
deserialize(key_size, slice, options)
|
398
391
|
end
|
399
392
|
end
|
@@ -7,32 +7,6 @@ module TonSdkRuby
|
|
7
7
|
LEAN_BOC_MAGIC_PREFIX = hex_to_bytes('68FF65F3')
|
8
8
|
LEAN_BOC_MAGIC_PREFIX_CRC = hex_to_bytes('ACC3A728')
|
9
9
|
|
10
|
-
class BOCOptions
|
11
|
-
attr_accessor :has_index, :hash_crc32, :has_cache_bits, :topological_order, :flags
|
12
|
-
end
|
13
|
-
|
14
|
-
class BocHeader
|
15
|
-
attr_accessor :has_index, :hash_crc32, :has_cache_bits, :flags, :size_bytes,
|
16
|
-
:offset_bytes, :cells_num, :roots_num, :absent_num,
|
17
|
-
:tot_cells_size, :root_list, :cells_data
|
18
|
-
end
|
19
|
-
|
20
|
-
class CellNode
|
21
|
-
attr_accessor :cell, :children, :scanned
|
22
|
-
end
|
23
|
-
|
24
|
-
class BuilderNode
|
25
|
-
attr_accessor :builder, :indent
|
26
|
-
end
|
27
|
-
|
28
|
-
class CellPointer
|
29
|
-
attr_accessor :cell, :type, :builder, :refs
|
30
|
-
end
|
31
|
-
|
32
|
-
class CellData
|
33
|
-
attr_accessor :pointer, :remainder
|
34
|
-
end
|
35
|
-
|
36
10
|
def deserialize_fift(data)
|
37
11
|
raise 'Can\'t deserialize. Empty fift hex.' if data.nil? || data.empty?
|
38
12
|
|
@@ -226,12 +200,12 @@ module TonSdkRuby
|
|
226
200
|
pointers.push(deserialized[:pointer])
|
227
201
|
end
|
228
202
|
|
229
|
-
pointers.
|
230
|
-
pointer_index = pointers.length -
|
231
|
-
cell_builder =
|
232
|
-
cell_type =
|
203
|
+
pointers.each_with_index do |_, index|
|
204
|
+
pointer_index = pointers.length - index - 1
|
205
|
+
cell_builder = pointers[pointer_index][:builder]
|
206
|
+
cell_type = pointers[pointer_index][:type]
|
233
207
|
|
234
|
-
|
208
|
+
pointers[pointer_index][:refs].each do |ref_index|
|
235
209
|
ref_builder = pointers[ref_index][:builder]
|
236
210
|
ref_type = pointers[ref_index][:type]
|
237
211
|
|
@@ -247,7 +221,6 @@ module TonSdkRuby
|
|
247
221
|
if cell_type == CellType::MerkleProof || cell_type == CellType::MerkleUpdate
|
248
222
|
has_merkle_proofs = true
|
249
223
|
end
|
250
|
-
|
251
224
|
pointers[pointer_index][:cell] = cell_builder.cell(cell_type)
|
252
225
|
end
|
253
226
|
|
@@ -250,12 +250,13 @@ module TonSdkRuby
|
|
250
250
|
# 2 bits flag, 1 bit anycast, 8 bits workchain, 256 bits address hash
|
251
251
|
size = 2 + 1 + 8 + 256
|
252
252
|
# Slice 2 because we don't need flag bits
|
253
|
-
|
253
|
+
loaded_bits = load_bits(size)
|
254
|
+
bits = loaded_bits[2..-1]
|
254
255
|
|
255
256
|
# Anycast is currently unused
|
256
257
|
_anycast = bits.shift
|
257
|
-
|
258
258
|
workchain = bits_to_int_uint(bits.shift(8), type: 'int')
|
259
|
+
|
259
260
|
hash = bits_to_hex(bits.shift(256))
|
260
261
|
raw = "#{workchain}:#{hash}"
|
261
262
|
|
@@ -43,12 +43,14 @@ module TonSdkRuby
|
|
43
43
|
|
44
44
|
loop do
|
45
45
|
res = SecureRandom.random_bytes(bytes_needed)
|
46
|
-
power = (bytes_needed - 1) * 8
|
47
46
|
number_value = 0
|
47
|
+
|
48
|
+
power = (bytes_needed - 1) * 8
|
48
49
|
res.each_byte do |byte|
|
49
50
|
number_value += byte.ord * (2 ** power)
|
50
51
|
power -= 8
|
51
52
|
end
|
53
|
+
|
52
54
|
number_value = number_value & mask # Truncate
|
53
55
|
return min + number_value if number_value < range
|
54
56
|
end
|
@@ -20,10 +20,21 @@ module TonSdkRuby
|
|
20
20
|
read_post_json_from_link(url, body, headers)
|
21
21
|
end
|
22
22
|
|
23
|
+
def send_boc(boc)
|
24
|
+
send_request('sendBoc', {boc: boc})
|
25
|
+
end
|
26
|
+
|
23
27
|
def get_address_information(address)
|
24
28
|
send_request('getAddressInformation', {address: address})
|
25
29
|
end
|
26
30
|
|
31
|
+
def get_transactions(address, archival, limit, lt, hash, to_lt)
|
32
|
+
params = {
|
33
|
+
address: address, archival: archival, limit: limit, lt: lt, hash: hash, to_lt: to_lt
|
34
|
+
}
|
35
|
+
send_request('getTransactions', params)
|
36
|
+
end
|
37
|
+
|
27
38
|
def get_extended_address_information(address)
|
28
39
|
send_request('getExtendedAddressInformation', {address: address})
|
29
40
|
end
|
@@ -40,13 +51,6 @@ module TonSdkRuby
|
|
40
51
|
send_request('getTokenData', {address: address})
|
41
52
|
end
|
42
53
|
|
43
|
-
def get_transactions(address, archival, limit, lt, hash, to_lt)
|
44
|
-
params = {
|
45
|
-
address: address, archival: archival, limit: limit, lt: lt, hash: hash, to_lt: to_lt
|
46
|
-
}
|
47
|
-
send_request('getTransactions', params)
|
48
|
-
end
|
49
|
-
|
50
54
|
def run_get_method(address, method, stack = [])
|
51
55
|
params = {
|
52
56
|
address: address, method: method, stack: stack
|
@@ -54,10 +58,6 @@ module TonSdkRuby
|
|
54
58
|
send_request('runGetMethod', params)
|
55
59
|
end
|
56
60
|
|
57
|
-
def send_boc(boc)
|
58
|
-
send_request('sendBoc', {boc: boc})
|
59
|
-
end
|
60
|
-
|
61
61
|
def estimate_fee(address, body, init_code, init_data, ignore_chksig = false)
|
62
62
|
params = {
|
63
63
|
address: address, body: body, init_code: init_code, init_data: init_data, ignore_chksig: ignore_chksig
|
@@ -24,9 +24,9 @@ module TonSdkRuby
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def initialize(address, options = {})
|
27
|
-
is_address = Address.is_address?(address)
|
28
|
-
is_encoded = Address.is_encoded?(address)
|
29
|
-
is_raw = Address.is_raw?(address)
|
27
|
+
is_address = Address.is_address?(address.clone)
|
28
|
+
is_encoded = Address.is_encoded?(address.clone)
|
29
|
+
is_raw = Address.is_raw?(address.clone)
|
30
30
|
|
31
31
|
case true
|
32
32
|
when is_address
|
data/lib/ton-sdk-ruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ton-sdk-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- nerzh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ed25519
|