scale_rb 0.1.15 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,64 +1,66 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module StorageHelper
4
- class << self
5
- # key: {
6
- # value: ,
7
- # type: ,
8
- # hashers: []
9
- # }
10
- def encode_storage_key(pallet_name, item_name, key = nil, registry = nil)
11
- storage_key = Hasher.twox128(pallet_name) + Hasher.twox128(item_name)
3
+ module ScaleRb
4
+ module StorageHelper
5
+ class << self
6
+ # key: {
7
+ # value: ,
8
+ # type: ,
9
+ # hashers: []
10
+ # }
11
+ def encode_storage_key(pallet_name, item_name, key = nil, registry = nil)
12
+ storage_key = Hasher.twox128(pallet_name) + Hasher.twox128(item_name)
12
13
 
13
- if key && registry
14
+ if key && registry
14
15
 
15
- key_types, key_values, key_hashers =
16
- if key[:hashers].length == 1
17
- [
18
- [key[:type]],
19
- key[:value],
20
- key[:hashers]
21
- ]
22
- else
23
- [
24
- registry[key[:type]]._get(:def)._get(:tuple).first(key[:value].length),
25
- key[:value],
26
- key[:hashers].first(key[:value].length)
27
- ]
16
+ key_types, key_values, key_hashers =
17
+ if key[:hashers].length == 1
18
+ [
19
+ [key[:type]],
20
+ [key[:value]],
21
+ key[:hashers]
22
+ ]
23
+ else
24
+ [
25
+ registry[key[:type]]._get(:def)._get(:tuple).first(key[:value].length),
26
+ key[:value],
27
+ key[:hashers].first(key[:value].length)
28
+ ]
29
+ end
30
+
31
+ if key_types.class != key_values.class || key_types.length != key_values.length
32
+ raise "Key's value doesn't match key's type, key's value: #{key_values.inspect}, but key's type: #{key_types.inspect}. Please check your key's value."
28
33
  end
29
34
 
30
- if key_types.class != key_values.class || key_types.length != key_values.length
31
- raise "Key's value doesn't match key's type, key's value: #{key_values.inspect}, but key's type: #{key_types.inspect}. Please check your key's value."
35
+ storage_key + PortableCodec._encode_types_with_hashers(key_types, key_values, registry, key_hashers)
36
+ else
37
+ storage_key
32
38
  end
33
-
34
- storage_key + PortableCodec._encode_types_with_hashers(key_types, key_values, registry, key_hashers)
35
- else
36
- storage_key
37
39
  end
38
- end
39
40
 
40
- # data: hex string
41
- # type: portable type id
42
- # optional: boolean
43
- # fallback: hex string
44
- # returns nil or data
45
- def decode_storage(data, type, optional, fallback, registry)
46
- data ||= (optional ? nil : fallback)
47
- PortableCodec.decode(type, data.to_bytes, registry)[0] if data
48
- end
41
+ # data: hex string
42
+ # type: portable type id
43
+ # optional: boolean
44
+ # fallback: hex string
45
+ # returns nil or data
46
+ def decode_storage(data, type, optional, fallback, registry)
47
+ data ||= (optional ? nil : fallback)
48
+ PortableCodec.decode(type, data._to_bytes, registry)[0] if data
49
+ end
49
50
 
50
- # storage_item: the storage item from metadata
51
- def decode_storage2(data, storage_item, registry)
52
- modifier = storage_item._get(:modifier) # Default | Optional
53
- fallback = storage_item._get(:fallback)
54
- type = storage_item._get(:type)._get(:plain) || storage_item._get(:type)._get(:map)._get(:value)
55
- decode_storage(data, type, modifier == 'Optional', fallback, registry)
56
- end
51
+ # storage_item: the storage item from metadata
52
+ def decode_storage2(data, storage_item, registry)
53
+ modifier = storage_item._get(:modifier) # Default | Optional
54
+ fallback = storage_item._get(:fallback)
55
+ type = storage_item._get(:type)._get(:plain) || storage_item._get(:type)._get(:map)._get(:value)
56
+ decode_storage(data, type, modifier == 'Optional', fallback, registry)
57
+ end
57
58
 
58
- def decode_storage3(data, pallet_name, item_name, metadata)
59
- registry = Metadata.build_registry(metadata)
60
- storage_item = Metadata.get_storage_item(pallet_name, item_name, metadata)
61
- decode_storage2(data, storage_item, registry)
59
+ def decode_storage3(data, pallet_name, item_name, metadata)
60
+ registry = Metadata.build_registry(metadata)
61
+ storage_item = Metadata.get_storage_item(pallet_name, item_name, metadata)
62
+ decode_storage2(data, storage_item, registry)
63
+ end
62
64
  end
63
65
  end
64
66
  end
data/scale_rb.gemspec CHANGED
@@ -16,6 +16,11 @@ Gem::Specification.new do |spec|
16
16
 
17
17
  spec.metadata['homepage_uri'] = spec.homepage
18
18
 
19
+ spec.metadata = {
20
+ 'bug_tracker_uri' => 'https://github.com/wuminzhe/scale_rb/issues/',
21
+ 'source_code_uri' => 'https://github.com/wuminzhe/scale_rb.git'
22
+ }
23
+
19
24
  # Specify which files should be added to the gem when it is released.
20
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
26
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
@@ -26,7 +31,7 @@ Gem::Specification.new do |spec|
26
31
  spec.require_paths = ['lib']
27
32
 
28
33
  # for hashers
34
+ spec.add_dependency 'base58'
29
35
  spec.add_dependency 'blake2b_rs', '~> 0.1.4'
30
36
  spec.add_dependency 'xxhash'
31
- spec.add_dependency "base58"
32
37
  end
metadata CHANGED
@@ -1,45 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scale_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.15
4
+ version: 0.2.2
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-10-05 00:00:00.000000000 Z
11
+ date: 2024-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: blake2b_rs
14
+ name: base58
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.4
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.4
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: xxhash
28
+ name: blake2b_rs
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 0.1.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 0.1.4
41
41
  - !ruby/object:Gem::Dependency
42
- name: base58
42
+ name: xxhash
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -99,8 +99,8 @@ homepage: https://github.com/wuminzhe/scale_rb
99
99
  licenses:
100
100
  - MIT
101
101
  metadata:
102
- allowed_push_host: https://rubygems.org
103
- homepage_uri: https://github.com/wuminzhe/scale_rb
102
+ bug_tracker_uri: https://github.com/wuminzhe/scale_rb/issues/
103
+ source_code_uri: https://github.com/wuminzhe/scale_rb.git
104
104
  post_install_message:
105
105
  rdoc_options: []
106
106
  require_paths: