scale.rb 0.2.16 → 0.3.0
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/.gitignore +1 -0
- data/Cargo.lock +8 -4
- data/Cargo.toml +2 -3
- data/Dockerfile +4 -1
- data/Gemfile.lock +43 -35
- data/README.md +44 -1
- data/Rakefile +6 -0
- data/exe/scale +39 -79
- data/lib/address.rb +3 -0
- data/lib/common.rb +163 -0
- data/lib/helper.rb +25 -8
- data/lib/metadata/metadata.rb +28 -18
- data/lib/metadata/metadata_v0.rb +24 -20
- data/lib/metadata/metadata_v1.rb +13 -9
- data/lib/metadata/metadata_v10.rb +2 -2
- data/lib/metadata/metadata_v11.rb +2 -2
- data/lib/metadata/metadata_v12.rb +9 -8
- data/lib/metadata/metadata_v13.rb +161 -0
- data/lib/metadata/metadata_v2.rb +2 -2
- data/lib/metadata/metadata_v3.rb +2 -2
- data/lib/metadata/metadata_v4.rb +21 -11
- data/lib/metadata/metadata_v5.rb +21 -11
- data/lib/metadata/metadata_v6.rb +9 -9
- data/lib/metadata/metadata_v7.rb +26 -15
- data/lib/metadata/metadata_v8.rb +9 -9
- data/lib/metadata/metadata_v9.rb +2 -2
- data/lib/scale.rb +41 -341
- data/lib/scale/base.rb +177 -95
- data/lib/scale/block.rb +17 -13
- data/lib/scale/trie.rb +1 -1
- data/lib/scale/types.rb +139 -40
- data/lib/scale/version.rb +1 -1
- data/lib/scale_bytes.rb +63 -0
- data/lib/substrate_client.rb +31 -17
- data/lib/type_builder.rb +279 -0
- data/lib/type_registry.rb +91 -0
- data/lib/type_registry/crab.json +676 -595
- data/lib/type_registry/darwinia.json +730 -554
- data/lib/type_registry/default.json +3 -2
- data/lib/type_registry/pangolin.json +771 -0
- data/scale.gemspec +7 -5
- data/scripts/mmr_root_to_sign.rb +10 -0
- data/src/lib.rs +80 -25
- metadata +59 -30
- data/lib/type_registry/edgeware.json +0 -124
- data/lib/type_registry/joystream.json +0 -49
- data/lib/type_registry/kulupu.json +0 -15
- data/lib/type_registry/plasm.json +0 -89
- data/lib/type_registry/robonomics.json +0 -39
- data/lib/type_registry/westend.json +0 -63
- data/src/storage_key.rs +0 -41
data/scale.gemspec
CHANGED
@@ -33,14 +33,16 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
34
34
|
spec.require_paths = ["lib"]
|
35
35
|
|
36
|
-
spec.add_dependency "
|
36
|
+
spec.add_dependency "blake2b_rs", "~> 0.1.2"
|
37
|
+
spec.add_dependency "xxhash"
|
38
|
+
spec.add_dependency "base58"
|
37
39
|
spec.add_dependency "json", "~> 2.3.0"
|
38
|
-
spec.add_dependency "
|
39
|
-
spec.add_dependency "
|
40
|
+
spec.add_dependency "faye-websocket"
|
41
|
+
spec.add_dependency "thor", '~> 1.0'
|
40
42
|
|
41
|
-
spec.add_development_dependency "bundler"
|
43
|
+
spec.add_development_dependency "bundler"
|
42
44
|
spec.add_development_dependency "pry"
|
43
45
|
spec.add_development_dependency "rake", "~> 13.0"
|
44
46
|
spec.add_development_dependency "rspec", "~> 3.2"
|
45
|
-
spec.add_development_dependency "ffi", "~> 1.
|
47
|
+
spec.add_development_dependency "ffi", "~> 1.15.0"
|
46
48
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
client = SubstrateClient.new "wss://pangolin-rpc.darwinia.network"
|
2
|
+
|
3
|
+
begin
|
4
|
+
block_number = Scale::Types.get("BlockNumberFor").new(670820)
|
5
|
+
puts client.get_storage("EthereumRelayAuthorities", "MmrRootsToSign", [block_number]).to_human
|
6
|
+
rescue => ex
|
7
|
+
puts ex.message
|
8
|
+
puts ex.backtrace
|
9
|
+
end
|
10
|
+
|
data/src/lib.rs
CHANGED
@@ -1,10 +1,15 @@
|
|
1
1
|
extern crate parity_scale_codec;
|
2
2
|
use std::slice;
|
3
|
-
use parity_scale_codec::
|
3
|
+
use parity_scale_codec::Decode;
|
4
4
|
use frame_support::Twox128;
|
5
|
+
use frame_support::Twox64Concat;
|
6
|
+
use frame_support::Identity;
|
5
7
|
use frame_support::Blake2_128Concat;
|
6
8
|
use frame_support::StorageHasher;
|
7
9
|
|
10
|
+
use libc::c_char;
|
11
|
+
use std::ffi::{CStr, CString};
|
12
|
+
|
8
13
|
fn to_u8_vec(v_pointer: *const u8, len: usize) -> Vec<u8> {
|
9
14
|
let data_slice = unsafe {
|
10
15
|
assert!(!v_pointer.is_null());
|
@@ -13,6 +18,38 @@ fn to_u8_vec(v_pointer: *const u8, len: usize) -> Vec<u8> {
|
|
13
18
|
data_slice.to_vec()
|
14
19
|
}
|
15
20
|
|
21
|
+
fn to_string(str_p: *const c_char) -> String {
|
22
|
+
let s = unsafe {
|
23
|
+
assert!(!str_p.is_null());
|
24
|
+
CStr::from_ptr(str_p)
|
25
|
+
};
|
26
|
+
|
27
|
+
s.to_str().unwrap().to_string()
|
28
|
+
}
|
29
|
+
|
30
|
+
fn v8_vec_to_pointer(key: Vec<u8>) -> *const c_char {
|
31
|
+
let key = CString::new(hex::encode(key)).unwrap();
|
32
|
+
let result = key.as_ptr();
|
33
|
+
std::mem::forget(key);
|
34
|
+
result
|
35
|
+
}
|
36
|
+
|
37
|
+
fn gen_param_hash(param_pointer: *const u8, param_len: usize, param_hasher: *const c_char) -> Vec<u8> {
|
38
|
+
let param_hasher = to_string(param_hasher);
|
39
|
+
let param_hasher = param_hasher.as_str();
|
40
|
+
let param = to_u8_vec(param_pointer, param_len);
|
41
|
+
|
42
|
+
if param_hasher == "blake2_128_concat" {
|
43
|
+
Blake2_128Concat::hash(¶m).to_vec()
|
44
|
+
} else if param_hasher == "twox64_concat" {
|
45
|
+
Twox64Concat::hash(¶m).to_vec()
|
46
|
+
} else if param_hasher == "identity" {
|
47
|
+
Identity::hash(¶m).to_vec()
|
48
|
+
} else {
|
49
|
+
panic!("Not supported hasher type")
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
16
53
|
fn decode_from_raw_parts<T: Decode + PartialEq + std::fmt::Debug>(v_pointer: *const u8, len: usize) -> T {
|
17
54
|
let data_slice = unsafe {
|
18
55
|
assert!(!v_pointer.is_null());
|
@@ -61,33 +98,51 @@ pub extern fn parse_opt_bool(v_pointer: *const u8, len: usize, inner_value: bool
|
|
61
98
|
}
|
62
99
|
|
63
100
|
#[no_mangle]
|
64
|
-
pub extern fn
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
)
|
69
|
-
let
|
70
|
-
|
71
|
-
let
|
72
|
-
|
73
|
-
|
74
|
-
|
101
|
+
pub extern fn get_storage_key_for_value(
|
102
|
+
module_name: *const c_char,
|
103
|
+
storage_name: *const c_char,
|
104
|
+
) -> *const c_char {
|
105
|
+
let module_name = to_string(module_name);
|
106
|
+
let storage_name = to_string(storage_name);
|
107
|
+
|
108
|
+
let storage_key = [Twox128::hash(module_name.as_bytes()), Twox128::hash(storage_name.as_bytes())].concat();
|
109
|
+
v8_vec_to_pointer(storage_key)
|
110
|
+
}
|
111
|
+
|
112
|
+
#[no_mangle]
|
113
|
+
pub extern fn get_storage_key_for_map(
|
114
|
+
module_name: *const c_char,
|
115
|
+
storage_name: *const c_char,
|
116
|
+
param_pointer: *const u8, param_len: usize, param_hasher: *const c_char,
|
117
|
+
) -> *const c_char {
|
118
|
+
let module_name = to_string(module_name);
|
119
|
+
let storage_name = to_string(storage_name);
|
120
|
+
let mut storage_key = [Twox128::hash(module_name.as_bytes()), Twox128::hash(storage_name.as_bytes())].concat();
|
121
|
+
|
122
|
+
let param_hash = gen_param_hash(param_pointer, param_len, param_hasher);
|
123
|
+
storage_key.extend(param_hash);
|
124
|
+
|
125
|
+
v8_vec_to_pointer(storage_key)
|
75
126
|
}
|
76
127
|
|
77
128
|
#[no_mangle]
|
78
|
-
pub extern fn
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
) {
|
84
|
-
let
|
85
|
-
let
|
86
|
-
let
|
87
|
-
|
88
|
-
let
|
89
|
-
|
90
|
-
|
129
|
+
pub extern fn get_storage_key_for_double_map(
|
130
|
+
module_name: *const c_char,
|
131
|
+
storage_name: *const c_char,
|
132
|
+
param1_pointer: *const u8, param1_len: usize, param1_hasher: *const c_char,
|
133
|
+
param2_pointer: *const u8, param2_len: usize, param2_hasher: *const c_char,
|
134
|
+
) -> *const c_char {
|
135
|
+
let module_name = to_string(module_name);
|
136
|
+
let storage_name = to_string(storage_name);
|
137
|
+
let mut storage_key = [Twox128::hash(module_name.as_bytes()), Twox128::hash(storage_name.as_bytes())].concat();
|
138
|
+
|
139
|
+
let param1_hash = gen_param_hash(param1_pointer, param1_len, param1_hasher);
|
140
|
+
storage_key.extend(param1_hash);
|
141
|
+
|
142
|
+
let param2_hash = gen_param_hash(param2_pointer, param2_len, param2_hasher);
|
143
|
+
storage_key.extend(param2_hash);
|
144
|
+
|
145
|
+
v8_vec_to_pointer(storage_key)
|
91
146
|
}
|
92
147
|
|
93
148
|
#[test]
|
metadata
CHANGED
@@ -1,29 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scale.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wu Minzhe
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: blake2b_rs
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.1.
|
19
|
+
version: 0.1.2
|
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.
|
26
|
+
version: 0.1.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: xxhash
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: base58
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: json
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,47 +67,47 @@ dependencies:
|
|
39
67
|
- !ruby/object:Gem::Version
|
40
68
|
version: 2.3.0
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
70
|
+
name: faye-websocket
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
44
72
|
requirements:
|
45
|
-
- - "
|
73
|
+
- - ">="
|
46
74
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0
|
75
|
+
version: '0'
|
48
76
|
type: :runtime
|
49
77
|
prerelease: false
|
50
78
|
version_requirements: !ruby/object:Gem::Requirement
|
51
79
|
requirements:
|
52
|
-
- - "
|
80
|
+
- - ">="
|
53
81
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
84
|
+
name: thor
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
87
|
- - "~>"
|
60
88
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
89
|
+
version: '1.0'
|
62
90
|
type: :runtime
|
63
91
|
prerelease: false
|
64
92
|
version_requirements: !ruby/object:Gem::Requirement
|
65
93
|
requirements:
|
66
94
|
- - "~>"
|
67
95
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
96
|
+
version: '1.0'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: bundler
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
72
100
|
requirements:
|
73
|
-
- - "
|
101
|
+
- - ">="
|
74
102
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
103
|
+
version: '0'
|
76
104
|
type: :development
|
77
105
|
prerelease: false
|
78
106
|
version_requirements: !ruby/object:Gem::Requirement
|
79
107
|
requirements:
|
80
|
-
- - "
|
108
|
+
- - ">="
|
81
109
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
110
|
+
version: '0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: pry
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,14 +156,14 @@ dependencies:
|
|
128
156
|
requirements:
|
129
157
|
- - "~>"
|
130
158
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
159
|
+
version: 1.15.0
|
132
160
|
type: :development
|
133
161
|
prerelease: false
|
134
162
|
version_requirements: !ruby/object:Gem::Requirement
|
135
163
|
requirements:
|
136
164
|
- - "~>"
|
137
165
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
166
|
+
version: 1.15.0
|
139
167
|
description: Ruby implementation of the parity SCALE data format
|
140
168
|
email:
|
141
169
|
- wuminzhe@gmail.com
|
@@ -159,6 +187,8 @@ files:
|
|
159
187
|
- bin/setup
|
160
188
|
- exe/scale
|
161
189
|
- grants_badge.png
|
190
|
+
- lib/address.rb
|
191
|
+
- lib/common.rb
|
162
192
|
- lib/helper.rb
|
163
193
|
- lib/metadata/metadata.rb
|
164
194
|
- lib/metadata/metadata_v0.rb
|
@@ -166,6 +196,7 @@ files:
|
|
166
196
|
- lib/metadata/metadata_v10.rb
|
167
197
|
- lib/metadata/metadata_v11.rb
|
168
198
|
- lib/metadata/metadata_v12.rb
|
199
|
+
- lib/metadata/metadata_v13.rb
|
169
200
|
- lib/metadata/metadata_v2.rb
|
170
201
|
- lib/metadata/metadata_v3.rb
|
171
202
|
- lib/metadata/metadata_v4.rb
|
@@ -180,31 +211,29 @@ files:
|
|
180
211
|
- lib/scale/trie.rb
|
181
212
|
- lib/scale/types.rb
|
182
213
|
- lib/scale/version.rb
|
214
|
+
- lib/scale_bytes.rb
|
183
215
|
- lib/substrate_client.rb
|
216
|
+
- lib/type_builder.rb
|
217
|
+
- lib/type_registry.rb
|
184
218
|
- lib/type_registry/crab.json
|
185
219
|
- lib/type_registry/darwinia.json
|
186
220
|
- lib/type_registry/default.json
|
187
|
-
- lib/type_registry/edgeware.json
|
188
|
-
- lib/type_registry/joystream.json
|
189
|
-
- lib/type_registry/kulupu.json
|
190
221
|
- lib/type_registry/kusama.json
|
191
|
-
- lib/type_registry/
|
222
|
+
- lib/type_registry/pangolin.json
|
192
223
|
- lib/type_registry/polkadot.json
|
193
|
-
- lib/type_registry/robonomics.json
|
194
224
|
- lib/type_registry/test.json
|
195
|
-
- lib/type_registry/westend.json
|
196
225
|
- scale.gemspec
|
197
226
|
- scripts/block_events.rb
|
198
227
|
- scripts/example.rb
|
228
|
+
- scripts/mmr_root_to_sign.rb
|
199
229
|
- src/lib.rs
|
200
|
-
- src/storage_key.rs
|
201
230
|
homepage: https://github.com/itering/scale.rb
|
202
231
|
licenses:
|
203
232
|
- MIT
|
204
233
|
metadata:
|
205
234
|
allowed_push_host: https://rubygems.org
|
206
235
|
homepage_uri: https://github.com/itering/scale.rb
|
207
|
-
post_install_message:
|
236
|
+
post_install_message:
|
208
237
|
rdoc_options: []
|
209
238
|
require_paths:
|
210
239
|
- lib
|
@@ -219,8 +248,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
248
|
- !ruby/object:Gem::Version
|
220
249
|
version: '0'
|
221
250
|
requirements: []
|
222
|
-
rubygems_version: 3.
|
223
|
-
signing_key:
|
251
|
+
rubygems_version: 3.1.4
|
252
|
+
signing_key:
|
224
253
|
specification_version: 4
|
225
254
|
summary: Ruby SCALE Codec Library
|
226
255
|
test_files: []
|
@@ -1,124 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"runtime_id": 27,
|
3
|
-
"types": {
|
4
|
-
"Keys": {
|
5
|
-
"type": "struct",
|
6
|
-
"type_mapping": [
|
7
|
-
["grandpa", "AccountId"],
|
8
|
-
["babe", "AccountId"],
|
9
|
-
["im_online", "AccountId"],
|
10
|
-
["authority_discovery", "AccountId"]
|
11
|
-
]
|
12
|
-
},
|
13
|
-
"BlockNumber": "U32",
|
14
|
-
"SessionIndex": "U32",
|
15
|
-
"AuctionIndex": "U32",
|
16
|
-
"AuthIndex": "U32",
|
17
|
-
"BalanceUpload": "(AccountId, u64)",
|
18
|
-
"EgressQueueRoot": "(ParaId, Hash)",
|
19
|
-
"EventIndex": "u32",
|
20
|
-
"LeasePeriodOf": "LeasePeriod",
|
21
|
-
"LeasePeriod": "BlockNumber",
|
22
|
-
"MemberCount": "u32",
|
23
|
-
"MomentOf": "Moment",
|
24
|
-
"Offender": "(ValidatorId, Exposure)",
|
25
|
-
"ReportIdOf": "Hash",
|
26
|
-
"SubId": "u32",
|
27
|
-
"Weight": "u32",
|
28
|
-
"WeightMultiplier": "u64",
|
29
|
-
"WinningData": "Vec<WinningDataEntry>",
|
30
|
-
"Index": "U32",
|
31
|
-
"Kind": "[u8; 16]",
|
32
|
-
"OpaqueTimeSlot": "Bytes",
|
33
|
-
"Box<<T as Trait<I>>::Proposal>": "BoxProposal",
|
34
|
-
"Forcing": {
|
35
|
-
"type": "enum",
|
36
|
-
"value_list": [
|
37
|
-
"NotForcing",
|
38
|
-
"ForceNew",
|
39
|
-
"ForceNone"
|
40
|
-
]
|
41
|
-
},
|
42
|
-
"VoteData": {
|
43
|
-
"type": "struct",
|
44
|
-
"type_mapping": [
|
45
|
-
["initiator", "AccountId"],
|
46
|
-
["stage", "VoteStage"],
|
47
|
-
["vote_type", "VoteType"],
|
48
|
-
["tally_type", "TallyType"],
|
49
|
-
["is_commit_reveal", "Bool"]
|
50
|
-
]
|
51
|
-
},
|
52
|
-
"VoteRecord": {
|
53
|
-
"type": "struct",
|
54
|
-
"type_mapping": [
|
55
|
-
["id", "u64"],
|
56
|
-
["commitments", "Vec<(AccountId, VoteOutcome)>"],
|
57
|
-
["reveals", "Vec<(AccountId, VoteOutcome)>"],
|
58
|
-
["data", "VoteData"],
|
59
|
-
["outcomes", "Vec<(VoteOutcome)>"]
|
60
|
-
]
|
61
|
-
},
|
62
|
-
"VoteType": {
|
63
|
-
"type": "enum",
|
64
|
-
"value_list": ["Binary", "MultiOption"]
|
65
|
-
},
|
66
|
-
"IdentityStage": {
|
67
|
-
"type": "enum",
|
68
|
-
"value_list": ["Registered", "Attested", "Verified"]
|
69
|
-
},
|
70
|
-
"IdentityRecord": {
|
71
|
-
"type": "struct",
|
72
|
-
"type_mapping": [
|
73
|
-
["account", "AccountId"],
|
74
|
-
["identity_type", "String"],
|
75
|
-
["identity", "Bytes"],
|
76
|
-
["stage", "IdentityStage"],
|
77
|
-
["expiration_time", "BlockNumber"],
|
78
|
-
["proof", "Bytes"],
|
79
|
-
["metadata", "Bytes"]
|
80
|
-
]
|
81
|
-
},
|
82
|
-
"MetadataRecord": {
|
83
|
-
"type": "struct",
|
84
|
-
"type_mapping": [
|
85
|
-
["avatar", "String"],
|
86
|
-
["display_name", "String"],
|
87
|
-
["tagline", "String"]
|
88
|
-
]
|
89
|
-
},
|
90
|
-
"ProposalCategory": {
|
91
|
-
"type": "enum",
|
92
|
-
"value_list": ["Signaling"]
|
93
|
-
},
|
94
|
-
"ProposalStage": {
|
95
|
-
"type": "enum",
|
96
|
-
"value_list": ["PreVoting", "Voting", "Completed"]
|
97
|
-
},
|
98
|
-
"ProposalRecord": {
|
99
|
-
"type": "struct",
|
100
|
-
"type_mapping": [
|
101
|
-
["index", "u32"],
|
102
|
-
["author", "AccountId"],
|
103
|
-
["stage", "ProposalStage"],
|
104
|
-
["transition_time", "BlockNumber"],
|
105
|
-
["category", "ProposalCategory"],
|
106
|
-
["title", "Vec<u8>"],
|
107
|
-
["contents", "Vec<u8>"],
|
108
|
-
["vote_id", "u64"],
|
109
|
-
["ProposalTitle", "Vec<u8>"],
|
110
|
-
["ProposalContents", "Vec<u8>"]
|
111
|
-
]
|
112
|
-
},
|
113
|
-
"Balance2": "Balance",
|
114
|
-
"ReferendumInfo<BlockNumber, Proposal>": {
|
115
|
-
"type": "struct",
|
116
|
-
"type_mapping": [
|
117
|
-
["end", "BlockNumber"],
|
118
|
-
["proposal", "Proposal"],
|
119
|
-
["threshold", "VoteThreshold"],
|
120
|
-
["delay", "BlockNumber"]
|
121
|
-
]
|
122
|
-
}
|
123
|
-
}
|
124
|
-
}
|