scale.rb 0.2.4 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/.dockerignore +11 -0
- data/Dockerfile +9 -6
- data/Gemfile.lock +10 -10
- data/README.md +9 -6
- data/lib/metadata/metadata.rb +33 -28
- data/lib/metadata/metadata_v0.rb +3 -3
- data/lib/metadata/metadata_v1.rb +7 -7
- data/lib/metadata/metadata_v12.rb +87 -0
- data/lib/metadata/metadata_v4.rb +6 -6
- data/lib/metadata/metadata_v5.rb +6 -6
- data/lib/metadata/metadata_v6.rb +1 -1
- data/lib/metadata/metadata_v7.rb +8 -8
- data/lib/metadata/metadata_v8.rb +1 -1
- data/lib/scale.rb +78 -77
- data/lib/scale/base.rb +55 -20
- data/lib/scale/block.rb +88 -18
- data/lib/scale/types.rb +25 -1
- data/lib/scale/version.rb +1 -1
- data/lib/type_registry/darwinia.json +251 -63
- data/lib/type_registry/default.json +3713 -290
- data/lib/type_registry/kulupu.json +11 -2
- data/lib/type_registry/kusama.json +160 -18
- data/lib/type_registry/polkadot.json +85 -0
- data/lib/type_registry/westend.json +48 -3
- data/scale.gemspec +1 -1
- data/scripts/block_events.rb +34 -0
- data/scripts/example.rb +4 -0
- metadata +9 -5
- data/lib/type_registry/certifybook-chain.json +0 -10
data/lib/scale/block.rb
CHANGED
@@ -9,7 +9,8 @@ module Scale
|
|
9
9
|
Blake2b.hex data, Blake2b::Key.none, 32
|
10
10
|
end
|
11
11
|
|
12
|
-
def self.decode(scale_bytes
|
12
|
+
def self.decode(scale_bytes)
|
13
|
+
metadata = Scale::TypeRegistry.instance.metadata
|
13
14
|
result = {}
|
14
15
|
|
15
16
|
extrinsic_length = Compact.decode(scale_bytes).value
|
@@ -83,11 +84,11 @@ module Scale
|
|
83
84
|
result[:call_index] = scale_bytes.get_next_bytes(2).bytes_to_hex[2..]
|
84
85
|
|
85
86
|
else
|
86
|
-
raise "
|
87
|
+
raise "Extrinsic version #{version_info} is not implemented"
|
87
88
|
end
|
88
89
|
|
89
90
|
if result[:call_index]
|
90
|
-
call_module, call = metadata.
|
91
|
+
call_module, call = metadata.call_index[result[:call_index]]
|
91
92
|
|
92
93
|
result[:call_function] = call[:name].downcase
|
93
94
|
result[:call_module] = call_module[:name].downcase
|
@@ -95,9 +96,10 @@ module Scale
|
|
95
96
|
# decode params
|
96
97
|
result[:params_raw] = scale_bytes.get_remaining_bytes.bytes_to_hex
|
97
98
|
result[:params] = call[:args].map do |arg|
|
98
|
-
type =
|
99
|
-
|
100
|
-
|
99
|
+
type = arg[:type]
|
100
|
+
scale_type = Scale::Types.get(type)
|
101
|
+
obj = scale_type.decode(scale_bytes)
|
102
|
+
{name: arg[:name], type: type, scale_type: scale_type, value: obj.value }
|
101
103
|
end
|
102
104
|
end
|
103
105
|
|
@@ -107,24 +109,42 @@ module Scale
|
|
107
109
|
Extrinsic.new result
|
108
110
|
end
|
109
111
|
|
110
|
-
def encode
|
111
|
-
puts metadata.value.value["modules"]
|
112
|
+
def encode
|
112
113
|
result = "04" + self.value[:call_index]
|
113
114
|
|
114
|
-
result
|
115
|
-
|
116
|
-
|
117
|
-
|
115
|
+
result += self.value[:params].map do |param|
|
116
|
+
Scale::Types.get(param[:type]).new(param[:value]).encode
|
117
|
+
end.join
|
118
|
+
|
119
|
+
"0x" + Compact.new(result.length / 2).encode + result
|
120
|
+
end
|
118
121
|
|
119
|
-
|
120
|
-
|
122
|
+
def to_human
|
123
|
+
@value
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
class Phase
|
128
|
+
include Enum
|
129
|
+
items isApplyExtrinsic: "Bool", asApplyExtrinsic: "U32", isFinalization: "Bool", isInitialization: "Bool"
|
130
|
+
end
|
131
|
+
|
132
|
+
class EventRecords
|
133
|
+
include SingleValue
|
134
|
+
|
135
|
+
def self.decode(scale_bytes)
|
136
|
+
|
137
|
+
length = Compact.decode(scale_bytes).value
|
138
|
+
|
139
|
+
length.times do |i|
|
140
|
+
ev = EventRecord.decode(scale_bytes)
|
141
|
+
end
|
121
142
|
end
|
122
143
|
end
|
123
144
|
|
124
145
|
class EventRecord
|
125
146
|
include SingleValue
|
126
147
|
|
127
|
-
# 0x0c000000000000001027000001010000010000000400be07e2c28688db5368445c33d32b3c7bcad15dab1ec802ba8cccc1c22b86574f6992da89ff412eaf9bafac4024
|
128
148
|
def self.decode(scale_bytes)
|
129
149
|
metadata = Scale::TypeRegistry.instance.metadata
|
130
150
|
|
@@ -137,22 +157,72 @@ module Scale
|
|
137
157
|
|
138
158
|
type = scale_bytes.get_next_bytes(2).bytes_to_hex[2..]
|
139
159
|
event = metadata.event_index[type][1]
|
140
|
-
mod = metadata.event_index[type][0]
|
160
|
+
# mod = metadata.event_index[type][0]
|
141
161
|
|
142
162
|
result[:params] = []
|
143
163
|
event[:args].each do |arg_type|
|
144
|
-
value = Scale::Types.get(arg_type).decode(scale_bytes).
|
164
|
+
value = Scale::Types.get(arg_type).decode(scale_bytes).to_human
|
145
165
|
result[:params] << {
|
166
|
+
name: event[:name],
|
146
167
|
type: arg_type,
|
147
168
|
value: value
|
148
169
|
}
|
149
170
|
end
|
150
171
|
|
151
|
-
result[:topics] = Scale::Types.get(
|
172
|
+
result[:topics] = Scale::Types.get("Vec<Hash>").decode(scale_bytes).value.map(&:value)
|
152
173
|
|
153
174
|
EventRecord.new(result)
|
154
175
|
end
|
155
176
|
end
|
156
177
|
|
178
|
+
# log
|
179
|
+
class Other < Bytes; end
|
180
|
+
|
181
|
+
class AuthoritiesChange
|
182
|
+
include Vec
|
183
|
+
inner_type "AccountId"
|
184
|
+
end
|
185
|
+
|
186
|
+
class ConsensusEngineId < VecU8Length4; end
|
187
|
+
|
188
|
+
class ChangesTrieRoot < Bytes; end
|
189
|
+
|
190
|
+
class SealV0
|
191
|
+
include Struct
|
192
|
+
items(
|
193
|
+
slot: "U64",
|
194
|
+
signature: "Signature"
|
195
|
+
)
|
196
|
+
end
|
197
|
+
|
198
|
+
class Consensus
|
199
|
+
include Struct
|
200
|
+
items(
|
201
|
+
engine: "ConsensusEngineId",
|
202
|
+
data: "Hex"
|
203
|
+
)
|
204
|
+
end
|
205
|
+
|
206
|
+
class Seal
|
207
|
+
include Struct
|
208
|
+
items(
|
209
|
+
engine: "ConsensusEngineId",
|
210
|
+
data: "Hex"
|
211
|
+
)
|
212
|
+
end
|
213
|
+
|
214
|
+
class PreRuntime
|
215
|
+
include Struct
|
216
|
+
items(
|
217
|
+
engine: "ConsensusEngineId",
|
218
|
+
data: "Hex"
|
219
|
+
)
|
220
|
+
end
|
221
|
+
|
222
|
+
class LogDigest
|
223
|
+
include Enum
|
224
|
+
items %w[Other AuthoritiesChange ChangesTrieRoot SealV0 Consensus Seal PreRuntime]
|
225
|
+
end
|
226
|
+
|
157
227
|
end
|
158
228
|
end
|
data/lib/scale/types.rb
CHANGED
@@ -46,24 +46,34 @@ module Scale
|
|
46
46
|
BYTE_LENGTH = 16
|
47
47
|
end
|
48
48
|
|
49
|
+
class U256
|
50
|
+
include FixedWidthUInt
|
51
|
+
BYTE_LENGTH = 32
|
52
|
+
end
|
53
|
+
|
49
54
|
class I8
|
50
55
|
include FixedWidthInt
|
56
|
+
BYTE_LENGTH = 1
|
51
57
|
end
|
52
58
|
|
53
59
|
class I16
|
54
60
|
include FixedWidthInt
|
61
|
+
BYTE_LENGTH = 2
|
55
62
|
end
|
56
63
|
|
57
64
|
class I32
|
58
65
|
include FixedWidthInt
|
66
|
+
BYTE_LENGTH = 4
|
59
67
|
end
|
60
68
|
|
61
69
|
class I64
|
62
70
|
include FixedWidthInt
|
71
|
+
BYTE_LENGTH = 8
|
63
72
|
end
|
64
73
|
|
65
74
|
class I128
|
66
75
|
include FixedWidthInt
|
76
|
+
BYTE_LENGTH = 16
|
67
77
|
end
|
68
78
|
|
69
79
|
class Compact
|
@@ -303,7 +313,7 @@ module Scale
|
|
303
313
|
value /= 1000
|
304
314
|
end
|
305
315
|
|
306
|
-
CompactMoment.new Time.at(
|
316
|
+
CompactMoment.new Time.at(value).to_datetime.strftime("%F %T")
|
307
317
|
end
|
308
318
|
end
|
309
319
|
|
@@ -791,5 +801,19 @@ module Scale
|
|
791
801
|
)
|
792
802
|
end
|
793
803
|
|
804
|
+
class VecH512Length2
|
805
|
+
include SingleValue
|
806
|
+
|
807
|
+
def self.decode(scale_bytes)
|
808
|
+
end
|
809
|
+
|
810
|
+
def encode
|
811
|
+
"0x" + self.value.map do |item|
|
812
|
+
item[2..]
|
813
|
+
end.join
|
814
|
+
end
|
815
|
+
end
|
816
|
+
|
817
|
+
|
794
818
|
end
|
795
819
|
end
|
data/lib/scale/version.rb
CHANGED
@@ -1,111 +1,299 @@
|
|
1
1
|
{
|
2
2
|
"types": {
|
3
|
-
"
|
4
|
-
"
|
5
|
-
"
|
6
|
-
"RingBalanceOf": "u128",
|
7
|
-
"KtonBalanceOf": "u128",
|
8
|
-
"ExtendedBalance": "u128",
|
9
|
-
"Keys": {
|
3
|
+
"Address": "AccountId",
|
4
|
+
"LookupSource": "AccountId",
|
5
|
+
"BalanceLock": {
|
10
6
|
"type": "struct",
|
11
7
|
"type_mapping": [
|
12
|
-
|
13
|
-
|
8
|
+
["id", "LockIdentifier"],
|
9
|
+
["lock_for", "LockFor"],
|
10
|
+
["lock_reasons", "LockReasons"]
|
14
11
|
]
|
15
12
|
},
|
16
|
-
"
|
17
|
-
"StakingBalance": {
|
13
|
+
"LockFor": {
|
18
14
|
"type": "enum",
|
19
15
|
"type_mapping": [
|
20
|
-
|
21
|
-
|
16
|
+
["Common", "Common"],
|
17
|
+
["Staking", "StakingLock"]
|
18
|
+
]
|
19
|
+
},
|
20
|
+
"Common": {
|
21
|
+
"type": "struct",
|
22
|
+
"type_mapping": [
|
23
|
+
["amount", "Balance"]
|
24
|
+
]
|
25
|
+
},
|
26
|
+
"StakingLock": {
|
27
|
+
"type": "struct",
|
28
|
+
"type_mapping": [
|
29
|
+
["staking_amount", "Balance"],
|
30
|
+
["unbondings", "Vec<Unbonding>"]
|
31
|
+
]
|
32
|
+
},
|
33
|
+
"LockReasons": {
|
34
|
+
"type": "enum",
|
35
|
+
"type_mapping": [
|
36
|
+
["Fee", "Null"],
|
37
|
+
["Misc", "Null"],
|
38
|
+
["All", "Null"]
|
39
|
+
]
|
40
|
+
},
|
41
|
+
"Unbonding": {
|
42
|
+
"type": "struct",
|
43
|
+
"type_mapping": [
|
44
|
+
["amount", "Balance"],
|
45
|
+
["until", "BlockNumber"]
|
46
|
+
]
|
47
|
+
},
|
48
|
+
"AccountData": {
|
49
|
+
"type": "struct",
|
50
|
+
"type_mapping": [
|
51
|
+
["free", "Balance"],
|
52
|
+
["reserved", "Balance"],
|
53
|
+
["free_kton", "Balance"],
|
54
|
+
["reserved_kton", "Balance"]
|
55
|
+
]
|
56
|
+
},
|
57
|
+
"RingBalance": "Balance",
|
58
|
+
"KtonBalance": "Balance",
|
59
|
+
"TsInMs": "u64",
|
60
|
+
"Power": "u32",
|
61
|
+
"DepositId": "U256",
|
62
|
+
"StakingBalanceT": {
|
63
|
+
"type": "enum",
|
64
|
+
"type_mapping": [
|
65
|
+
["RingBalance", "Balance"],
|
66
|
+
["KtonBalance", "Balance"]
|
67
|
+
]
|
68
|
+
},
|
69
|
+
"StakingLedgerT": {
|
70
|
+
"type": "struct",
|
71
|
+
"type_mapping": [
|
72
|
+
["stash", "AccountId"],
|
73
|
+
["active_ring", "Compact<Balance>"],
|
74
|
+
["active_deposit_ring", "Compact<Balance>"],
|
75
|
+
["active_kton", "Compact<Balance>"],
|
76
|
+
["deposit_items", "Vec<TimeDepositItem>"],
|
77
|
+
["ring_staking_lock", "StakingLock"],
|
78
|
+
["kton_staking_lock", "StakingLock"],
|
79
|
+
["claimed_rewards", "Vec<EraIndex>"]
|
22
80
|
]
|
23
81
|
},
|
24
82
|
"TimeDepositItem": {
|
25
83
|
"type": "struct",
|
26
84
|
"type_mapping": [
|
27
|
-
|
28
|
-
|
29
|
-
|
85
|
+
["value", "Compact<Balance>"],
|
86
|
+
["start_time", "Compact<TsInMs>"],
|
87
|
+
["expire_time", "Compact<TsInMs>"]
|
88
|
+
]
|
89
|
+
},
|
90
|
+
"ExposureT": {
|
91
|
+
"type": "struct",
|
92
|
+
"type_mapping": [
|
93
|
+
["own_ring_balance", "Compact<Balance>"],
|
94
|
+
["own_kton_balance", "Compact<Balance>"],
|
95
|
+
["own_power", "Power"],
|
96
|
+
["total_power", "Power"],
|
97
|
+
["others", "Vec<IndividualExposure>"]
|
98
|
+
]
|
99
|
+
},
|
100
|
+
"IndividualExposure": {
|
101
|
+
"type": "struct",
|
102
|
+
"type_mapping": [
|
103
|
+
["who", "AccountId"],
|
104
|
+
["ring_balance", "Compact<Balance>"],
|
105
|
+
["kton_balance", "Compact<Balance>"],
|
106
|
+
["power", "Power"]
|
107
|
+
]
|
108
|
+
},
|
109
|
+
"ElectionResultT": {
|
110
|
+
"type": "struct",
|
111
|
+
"type_mapping": [
|
112
|
+
["elected_stashes", "Vec<AccountId>"],
|
113
|
+
["exposures", "Vec<(AccountId, ExposureT)>"],
|
114
|
+
["compute", "ElectionCompute"]
|
115
|
+
]
|
116
|
+
},
|
117
|
+
"RKT": {
|
118
|
+
"type": "struct",
|
119
|
+
"type_mapping": [
|
120
|
+
["r", "Balance"],
|
121
|
+
["k", "Balance"]
|
30
122
|
]
|
31
123
|
},
|
32
|
-
"
|
124
|
+
"SpanRecord": {
|
33
125
|
"type": "struct",
|
34
126
|
"type_mapping": [
|
35
|
-
|
36
|
-
|
37
|
-
["is_time_deposit", "bool"]
|
127
|
+
["slashed", "RKT"],
|
128
|
+
["paid_out", "RKT"]
|
38
129
|
]
|
39
130
|
},
|
40
|
-
"
|
131
|
+
"UnappliedSlash": {
|
41
132
|
"type": "struct",
|
42
133
|
"type_mapping": [
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
["total_kton", "Compact<KtonBalanceOf>"],
|
49
|
-
["active_kton", "Compact<KtonBalanceOf>"],
|
50
|
-
["deposit_items", "Vec<TimeDepositItem>"],
|
51
|
-
["unlocking", "Vec<UnlockChunk>"]
|
134
|
+
["validator", "AccountId"],
|
135
|
+
["own", "RKT"],
|
136
|
+
["others", "Vec<(AccountId, RKT)>"],
|
137
|
+
["reporters", "Vec<AccountId>"],
|
138
|
+
["payout", "RKT"]
|
52
139
|
]
|
53
140
|
},
|
54
|
-
"
|
141
|
+
"TreasuryProposal": {
|
55
142
|
"type": "struct",
|
56
143
|
"type_mapping": [
|
57
|
-
|
58
|
-
|
144
|
+
["proposer", "AccountId"],
|
145
|
+
["beneficiary", "AccountId"],
|
146
|
+
["ring_value", "Balance"],
|
147
|
+
["kton_value", "Balance"],
|
148
|
+
["ring_bond", "Balance"],
|
149
|
+
["kton_bond", "Balance"]
|
59
150
|
]
|
60
151
|
},
|
61
|
-
"
|
152
|
+
"MappedRing": "u128",
|
153
|
+
"EthereumTransactionIndex": "(H256, u64)",
|
154
|
+
"EthereumHeaderBrief": {
|
62
155
|
"type": "struct",
|
63
156
|
"type_mapping": [
|
64
|
-
|
65
|
-
|
66
|
-
|
157
|
+
["total_difficulty", "U256"],
|
158
|
+
["parent_hash", "H256"],
|
159
|
+
["number", "EthereumBlockNumber"],
|
160
|
+
["relayer", "AccountId"]
|
161
|
+
]
|
162
|
+
},
|
163
|
+
"EthereumBlockNumber": "u64",
|
164
|
+
"EthereumHeaderThingWithProof": {
|
165
|
+
"type": "struct",
|
166
|
+
"type_mapping": [
|
167
|
+
["header", "EthereumHeader"],
|
168
|
+
["ethash_proof", "Vec<EthashProof>"],
|
169
|
+
["mmr_root", "H256"],
|
170
|
+
["mmr_proof", "Vec<H256>"]
|
171
|
+
]
|
172
|
+
},
|
173
|
+
"EthereumHeaderThing": {
|
174
|
+
"type": "struct",
|
175
|
+
"type_mapping": [
|
176
|
+
["header", "EthereumHeader"],
|
177
|
+
["mmr_root", "H256"]
|
178
|
+
]
|
179
|
+
},
|
180
|
+
"EthereumHeader": {
|
181
|
+
"type": "struct",
|
182
|
+
"type_mapping": [
|
183
|
+
["parent_hash", "H256"],
|
184
|
+
["timestamp", "u64"],
|
185
|
+
["number", "EthereumBlockNumber"],
|
186
|
+
["author", "EthereumAddress"],
|
187
|
+
["transactions_root", "H256"],
|
188
|
+
["uncles_hash", "H256"],
|
189
|
+
["extra_data", "Bytes"],
|
190
|
+
["state_root", "H256"],
|
191
|
+
["receipts_root", "H256"],
|
192
|
+
["log_bloom", "Bloom"],
|
193
|
+
["gas_used", "U256"],
|
194
|
+
["gas_limit", "U256"],
|
195
|
+
["difficulty", "U256"],
|
196
|
+
["seal", "Vec<Bytes>"],
|
197
|
+
["hash", "Option<H256>"]
|
198
|
+
]
|
199
|
+
},
|
200
|
+
"EthereumAddress": "H160",
|
201
|
+
"Bloom": "[u8; 256]",
|
202
|
+
"H128": "[u8; 16]",
|
203
|
+
"EthashProof": {
|
204
|
+
"type": "struct",
|
205
|
+
"type_mapping": [
|
206
|
+
["dag_nodes", "(H512, H512)"],
|
207
|
+
["proof", "Vec<H128>"]
|
208
|
+
]
|
209
|
+
},
|
210
|
+
"EthereumReceipt": {
|
211
|
+
"type": "struct",
|
212
|
+
"type_mapping": [
|
213
|
+
["gas_used", "U256"],
|
214
|
+
["log_bloom", "Bloom"],
|
215
|
+
["logs", "Vec<LogEntry>"],
|
216
|
+
["outcome", "TransactionOutcome"]
|
217
|
+
]
|
218
|
+
},
|
219
|
+
"EthereumNetworkType": {
|
220
|
+
"type": "enum",
|
221
|
+
"type_mapping": [
|
222
|
+
["Mainnet", "Null"],
|
223
|
+
["Ropsten", "Null"]
|
224
|
+
]
|
225
|
+
},
|
226
|
+
"RedeemFor": {
|
227
|
+
"type": "enum",
|
228
|
+
"type_mapping": [
|
229
|
+
["Token", "Null"],
|
230
|
+
["Deposit", "Null"]
|
231
|
+
]
|
232
|
+
},
|
233
|
+
"EthereumReceiptProof": {
|
234
|
+
"type": "struct",
|
235
|
+
"type_mapping": [
|
236
|
+
["index", "u64"],
|
237
|
+
["proof", "Bytes"],
|
238
|
+
["header_hash", "H256"]
|
239
|
+
]
|
240
|
+
},
|
241
|
+
"EthereumReceiptProofThing": "(EthereumHeader, EthereumReceiptProof, MMRProof)",
|
242
|
+
"MMRProof": {
|
243
|
+
"type": "struct",
|
244
|
+
"type_mapping": [
|
245
|
+
["member_leaf_index", "u64"],
|
246
|
+
["last_leaf_index", "u64"],
|
247
|
+
["proof", "Vec<H256>"]
|
248
|
+
]
|
249
|
+
},
|
250
|
+
"OtherSignature": {
|
251
|
+
"type": "enum",
|
252
|
+
"type_mapping": [
|
253
|
+
["Eth", "EcdsaSignature"],
|
254
|
+
["Tron", "EcdsaSignature"]
|
255
|
+
]
|
256
|
+
},
|
257
|
+
"EcdsaSignature": "[u8; 65]",
|
258
|
+
"OtherAddress": {
|
259
|
+
"type": "enum",
|
260
|
+
"type_mapping": [
|
261
|
+
["Eth", "[u8; 20]"],
|
262
|
+
["Tron", "[u8; 20]"]
|
67
263
|
]
|
68
264
|
},
|
69
|
-
"
|
70
|
-
"
|
71
|
-
"CurrencyOf": "u128",
|
72
|
-
"Auction": {
|
265
|
+
"AddressT": "[u8; 20]",
|
266
|
+
"MerkleMountainRangeRootLog": {
|
73
267
|
"type": "struct",
|
74
268
|
"type_mapping": [
|
75
|
-
|
76
|
-
|
77
|
-
["duration", "u64"],
|
78
|
-
["startingPrice", "TokenBalance"],
|
79
|
-
["endingPrice", "TokenBalance"],
|
80
|
-
["lastRecord", "TokenBalance"],
|
81
|
-
["lastBidder", "AccountId"],
|
82
|
-
["lastBidStartAt", "Moment"]
|
269
|
+
["prefix", "[u8; 4]"],
|
270
|
+
["mmr_root", "Hash"]
|
83
271
|
]
|
84
272
|
},
|
85
|
-
"
|
273
|
+
"Round": "u64",
|
274
|
+
"TcHeaderThingWithProof": "EthereumHeaderThingWithProof",
|
275
|
+
"TcHeaderThing": "EthereumHeaderThing",
|
276
|
+
"TcBlockNumber": "u64",
|
277
|
+
"TcHeaderHash": "H256",
|
278
|
+
"GameId": "TcBlockNumber",
|
279
|
+
"RelayProposalT": {
|
86
280
|
"type": "struct",
|
87
281
|
"type_mapping": [
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
["unit_interest", "u64"],
|
92
|
-
["claimed", "bool"]
|
282
|
+
["relayer", "AccountId"],
|
283
|
+
["bonded_proposal", "Vec<(Balance, TcHeaderThing)>"],
|
284
|
+
["extend_from_header_hash", "Option<TcHeaderHash>"]
|
93
285
|
]
|
94
286
|
},
|
95
|
-
"
|
287
|
+
"BalancesRuntimeDispatchInfo": {
|
96
288
|
"type": "struct",
|
97
289
|
"type_mapping": [
|
98
|
-
|
99
|
-
["deposit_list", "Vec<DepositInfo>"]
|
290
|
+
["usable_balance", "Balance"]
|
100
291
|
]
|
101
292
|
},
|
102
|
-
"
|
293
|
+
"StakingRuntimeDispatchInfo": {
|
103
294
|
"type": "struct",
|
104
295
|
"type_mapping": [
|
105
|
-
|
106
|
-
["contribution", "TokenBalance"],
|
107
|
-
["ktoner", "TokenBalance"],
|
108
|
-
["lottery", "TokenBalance"]
|
296
|
+
["power", "Power"]
|
109
297
|
]
|
110
298
|
}
|
111
299
|
}
|