scale_rb 0.1.10 → 0.1.13
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/Gemfile.lock +1 -1
- data/lib/client/http_client.rb +38 -0
- data/lib/portable_codec.rb +21 -2
- data/lib/scale_rb/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: e442bed63503c0e8c7210753df2fa8a293a094c4df6e095f649997923a4d65c6
|
4
|
+
data.tar.gz: 97c1bc3b28346baf2f28a93a5a302240d327b663fc7acad7f0bdbd5c558a8e2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b233f131d753ca6bb5f632523da0d09be97d2f721a9933c63c6def842ea55de30fd6a7f46081c0113b114b48ce15ed1193b5b834e382379e2406a8eb3416c012
|
7
|
+
data.tar.gz: 7f97fd3d9927fd3873717226e1294209af285062314850af0d9000e46cdb657b033c3536d19da6cd1bbc6baaeed6f39d729ea7ec3bfcd0c381e75bcfcf1afd5b
|
data/Gemfile.lock
CHANGED
data/lib/client/http_client.rb
CHANGED
@@ -178,6 +178,44 @@ module ScaleRb
|
|
178
178
|
end
|
179
179
|
get_storage(url, pallet_name, item_name, key, value, registry, at)
|
180
180
|
end
|
181
|
+
|
182
|
+
# get_storage3 is a more ruby style function
|
183
|
+
#
|
184
|
+
# pallet_name and storage_name is pascal style like 'darwinia_staking'
|
185
|
+
def get_storage3(url, metadata, pallet_name, storage_name, key_part1: nil, key_part2: nil, at: nil)
|
186
|
+
pallet_name = to_pascal pallet_name
|
187
|
+
storage_name = to_pascal storage_name
|
188
|
+
ScaleRb.logger.debug "#{pallet_name}.#{storage_name}(#{[key_part1, key_part2].compact.join(', ')})"
|
189
|
+
|
190
|
+
key = [key_part1, key_part2].compact.map { |part_of_key| c(part_of_key) }
|
191
|
+
ScaleRb.logger.debug "converted key: #{key}"
|
192
|
+
|
193
|
+
get_storage2(
|
194
|
+
url,
|
195
|
+
pallet_name,
|
196
|
+
storage_name,
|
197
|
+
key,
|
198
|
+
metadata,
|
199
|
+
at
|
200
|
+
)
|
201
|
+
end
|
202
|
+
|
203
|
+
private
|
204
|
+
|
205
|
+
def to_pascal(str)
|
206
|
+
str.split('_').collect(&:capitalize).join
|
207
|
+
end
|
208
|
+
|
209
|
+
# convert key to byte array
|
210
|
+
def c(key)
|
211
|
+
if key.start_with?('0x')
|
212
|
+
key.to_bytes
|
213
|
+
elsif key.to_i.to_s == key # check if key is a number
|
214
|
+
key.to_i
|
215
|
+
else
|
216
|
+
key
|
217
|
+
end
|
218
|
+
end
|
181
219
|
end
|
182
220
|
end
|
183
221
|
end
|
data/lib/portable_codec.rb
CHANGED
@@ -70,7 +70,23 @@ module PortableCodec
|
|
70
70
|
def decode_array(array_type, bytes, registry)
|
71
71
|
len = array_type._get(:len)
|
72
72
|
inner_type_id = array_type._get(:type)
|
73
|
-
|
73
|
+
|
74
|
+
# check if the type of inner_type_id is a u8
|
75
|
+
if _u8?(inner_type_id, registry)
|
76
|
+
[
|
77
|
+
bytes[0...len].to_hex,
|
78
|
+
bytes[len..]
|
79
|
+
]
|
80
|
+
else
|
81
|
+
_decode_types([inner_type_id] * len, bytes, registry)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def _u8?(type_id, registry)
|
86
|
+
type = registry[type_id]
|
87
|
+
raise TypeNotFound, "id: #{type_id}" if type.nil?
|
88
|
+
|
89
|
+
type._get(:def)._get(:primitive)&.downcase == 'u8'
|
74
90
|
end
|
75
91
|
|
76
92
|
def decode_sequence(sequence_type, bytes, registry)
|
@@ -242,7 +258,10 @@ module PortableCodec
|
|
242
258
|
|
243
259
|
# if the variant item has more than one field, the value must be a hash with the same length.
|
244
260
|
# if the variant item has only one field, that means the field is a type id point to a composite. TODO: check the type's fields length
|
245
|
-
|
261
|
+
if item._get(:fields).length > 1 && item._get(:fields).length != v.length
|
262
|
+
raise VariantFieldsLengthNotMatch,
|
263
|
+
"type: #{variant_type}, \nvalue: #{v}"
|
264
|
+
end
|
246
265
|
|
247
266
|
ScaleRb.encode_uint('u8', item._get(:index)) + encode_composite(item, v, registry)
|
248
267
|
end
|
data/lib/scale_rb/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scale_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aki Wu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: blake2b_rs
|