@talismn/scale 0.1.2 → 0.2.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.
@@ -1,6 +1,8 @@
1
- export { getDynamicBuilder, getLookupFn } from "@polkadot-api/metadata-builders";
1
+ import { getDynamicBuilder } from "@polkadot-api/metadata-builders";
2
+ export { getDynamicBuilder, getLookupFn, type MetadataLookup, } from "@polkadot-api/metadata-builders";
2
3
  export type { Codec, UnifiedMetadata } from "@polkadot-api/substrate-bindings";
3
4
  export { decAnyMetadata, unifyMetadata, metadata } from "@polkadot-api/substrate-bindings";
4
5
  export { toHex, fromHex } from "@polkadot-api/utils";
5
6
  /** Constant: https://docs.substrate.io/build/application-development/#metadata-format */
6
7
  export declare const magicNumber = 1635018093;
8
+ export type MetadataBuilder = ReturnType<typeof getDynamicBuilder>;
@@ -1,4 +1,4 @@
1
- import { getDynamicBuilder } from "@polkadot-api/metadata-builders";
2
- type ScaleStorageCoder = ReturnType<ReturnType<typeof getDynamicBuilder>["buildStorage"]>;
1
+ import { MetadataBuilder } from "../papito";
2
+ type ScaleStorageCoder = ReturnType<MetadataBuilder["buildStorage"]>;
3
3
  export declare const decodeScale: <T>(scaleCoder: ScaleStorageCoder | undefined, change: string | null, error?: string) => T | null;
4
4
  export {};
@@ -1,2 +1,2 @@
1
1
  import { Metadata } from "@polkadot-api/substrate-bindings";
2
- export declare const encodeMetadata: (metadata: Metadata) => string;
2
+ export declare const encodeMetadata: (metadata: Metadata) => `0x${string}`;
@@ -1,4 +1,3 @@
1
- import { getDynamicBuilder } from "@polkadot-api/metadata-builders";
2
- type ScaleStorageCoder = ReturnType<ReturnType<typeof getDynamicBuilder>["buildStorage"]>;
3
- export declare const encodeStateKey: (scaleCoder: ScaleStorageCoder | undefined, error?: string, ...args: any[]) => string | undefined;
4
- export {};
1
+ import { MetadataBuilder } from "../papito";
2
+ export type ScaleStorageCoder = ReturnType<MetadataBuilder["buildStorage"]>;
3
+ export declare const encodeStateKey: (scaleCoder: ScaleStorageCoder | undefined, error?: string, ...args: any[]) => `0x${string}` | undefined;
@@ -0,0 +1 @@
1
+ export declare const getStorageKeyPrefix: (palletName: string, storageName: string) => string;
@@ -0,0 +1 @@
1
+ export { Twox128, Blake2128, Blake2128Concat, Blake2256, Blake3256, Blake3256Concat, Twox256, Twox64Concat, } from "@polkadot-api/substrate-bindings";
@@ -4,3 +4,6 @@ export * from "./encodeMetadata";
4
4
  export * from "./encodeStateKey";
5
5
  export * from "./getMetadataVersion";
6
6
  export * from "./serdePapi";
7
+ export * from "./parseMetadataRpc";
8
+ export * from "./getStorageKeyPrefix";
9
+ export * from "./hash";
@@ -0,0 +1,835 @@
1
+ export declare const parseMetadataRpc: (metadataRpc: `0x${string}`) => {
2
+ metadata: {
3
+ magicNumber: number;
4
+ metadata: {
5
+ tag: "v0";
6
+ value: unknown;
7
+ } | {
8
+ tag: "v1";
9
+ value: unknown;
10
+ } | {
11
+ tag: "v2";
12
+ value: unknown;
13
+ } | {
14
+ tag: "v3";
15
+ value: unknown;
16
+ } | {
17
+ tag: "v4";
18
+ value: unknown;
19
+ } | {
20
+ tag: "v5";
21
+ value: unknown;
22
+ } | {
23
+ tag: "v6";
24
+ value: unknown;
25
+ } | {
26
+ tag: "v7";
27
+ value: unknown;
28
+ } | {
29
+ tag: "v8";
30
+ value: unknown;
31
+ } | {
32
+ tag: "v9";
33
+ value: unknown;
34
+ } | {
35
+ tag: "v10";
36
+ value: unknown;
37
+ } | {
38
+ tag: "v11";
39
+ value: unknown;
40
+ } | {
41
+ tag: "v12";
42
+ value: unknown;
43
+ } | {
44
+ tag: "v13";
45
+ value: unknown;
46
+ } | {
47
+ tag: "v14";
48
+ value: {
49
+ lookup: {
50
+ id: number;
51
+ path: string[];
52
+ params: {
53
+ name: string;
54
+ type: number | undefined;
55
+ }[];
56
+ def: {
57
+ tag: "composite";
58
+ value: {
59
+ name: string | undefined;
60
+ type: number;
61
+ typeName: string | undefined;
62
+ docs: string[];
63
+ }[];
64
+ } | {
65
+ tag: "variant";
66
+ value: {
67
+ name: string;
68
+ fields: {
69
+ name: string | undefined;
70
+ type: number;
71
+ typeName: string | undefined;
72
+ docs: string[];
73
+ }[];
74
+ index: number;
75
+ docs: string[];
76
+ }[];
77
+ } | {
78
+ tag: "sequence";
79
+ value: number;
80
+ } | {
81
+ tag: "array";
82
+ value: {
83
+ len: number;
84
+ type: number;
85
+ };
86
+ } | {
87
+ tag: "tuple";
88
+ value: number[];
89
+ } | {
90
+ tag: "primitive";
91
+ value: {
92
+ tag: "bool";
93
+ value: undefined;
94
+ } | {
95
+ tag: "char";
96
+ value: undefined;
97
+ } | {
98
+ tag: "str";
99
+ value: undefined;
100
+ } | {
101
+ tag: "u8";
102
+ value: undefined;
103
+ } | {
104
+ tag: "u16";
105
+ value: undefined;
106
+ } | {
107
+ tag: "u32";
108
+ value: undefined;
109
+ } | {
110
+ tag: "u64";
111
+ value: undefined;
112
+ } | {
113
+ tag: "u128";
114
+ value: undefined;
115
+ } | {
116
+ tag: "u256";
117
+ value: undefined;
118
+ } | {
119
+ tag: "i8";
120
+ value: undefined;
121
+ } | {
122
+ tag: "i16";
123
+ value: undefined;
124
+ } | {
125
+ tag: "i32";
126
+ value: undefined;
127
+ } | {
128
+ tag: "i64";
129
+ value: undefined;
130
+ } | {
131
+ tag: "i128";
132
+ value: undefined;
133
+ } | {
134
+ tag: "i256";
135
+ value: undefined;
136
+ };
137
+ } | {
138
+ tag: "compact";
139
+ value: number;
140
+ } | {
141
+ tag: "bitSequence";
142
+ value: {
143
+ bitStoreType: number;
144
+ bitOrderType: number;
145
+ };
146
+ };
147
+ docs: string[];
148
+ }[];
149
+ pallets: {
150
+ docs: string[];
151
+ name: string;
152
+ storage: {
153
+ prefix: string;
154
+ items: {
155
+ name: string;
156
+ modifier: number;
157
+ type: {
158
+ tag: "map";
159
+ value: {
160
+ hashers: ({
161
+ tag: "Blake2128";
162
+ value: undefined;
163
+ } | {
164
+ tag: "Blake2256";
165
+ value: undefined;
166
+ } | {
167
+ tag: "Blake2128Concat";
168
+ value: undefined;
169
+ } | {
170
+ tag: "Twox128";
171
+ value: undefined;
172
+ } | {
173
+ tag: "Twox256";
174
+ value: undefined;
175
+ } | {
176
+ tag: "Twox64Concat";
177
+ value: undefined;
178
+ } | {
179
+ tag: "Identity";
180
+ value: undefined;
181
+ })[];
182
+ key: number;
183
+ value: number;
184
+ };
185
+ } | {
186
+ tag: "plain";
187
+ value: number;
188
+ };
189
+ fallback: import("@polkadot-api/substrate-bindings").HexString;
190
+ docs: string[];
191
+ }[];
192
+ } | undefined;
193
+ calls: number | undefined;
194
+ events: number | undefined;
195
+ constants: {
196
+ name: string;
197
+ type: number;
198
+ value: import("@polkadot-api/substrate-bindings").HexString;
199
+ docs: string[];
200
+ }[];
201
+ errors: number | undefined;
202
+ index: number;
203
+ }[];
204
+ extrinsic: {
205
+ type: number;
206
+ version: number;
207
+ signedExtensions: {
208
+ identifier: string;
209
+ type: number;
210
+ additionalSigned: number;
211
+ }[];
212
+ };
213
+ type: number;
214
+ apis: {
215
+ name: string;
216
+ methods: {
217
+ deprecationInfo: {
218
+ tag: "NotDeprecated";
219
+ value: undefined;
220
+ } | {
221
+ tag: "DeprecatedWithoutNote";
222
+ value: undefined;
223
+ } | {
224
+ tag: "Deprecated";
225
+ value: {
226
+ note: string;
227
+ since: string | undefined;
228
+ };
229
+ };
230
+ name: string;
231
+ inputs: {
232
+ name: string;
233
+ type: number;
234
+ }[];
235
+ output: number;
236
+ docs: string[];
237
+ }[];
238
+ docs: string[];
239
+ version: number;
240
+ deprecationInfo: {
241
+ tag: "NotDeprecated";
242
+ value: undefined;
243
+ } | {
244
+ tag: "DeprecatedWithoutNote";
245
+ value: undefined;
246
+ } | {
247
+ tag: "Deprecated";
248
+ value: {
249
+ note: string;
250
+ since: string | undefined;
251
+ };
252
+ };
253
+ }[];
254
+ };
255
+ } | {
256
+ tag: "v15";
257
+ value: {
258
+ lookup: {
259
+ id: number;
260
+ path: string[];
261
+ params: {
262
+ name: string;
263
+ type: number | undefined;
264
+ }[];
265
+ def: {
266
+ tag: "composite";
267
+ value: {
268
+ name: string | undefined;
269
+ type: number;
270
+ typeName: string | undefined;
271
+ docs: string[];
272
+ }[];
273
+ } | {
274
+ tag: "variant";
275
+ value: {
276
+ name: string;
277
+ fields: {
278
+ name: string | undefined;
279
+ type: number;
280
+ typeName: string | undefined;
281
+ docs: string[];
282
+ }[];
283
+ index: number;
284
+ docs: string[];
285
+ }[];
286
+ } | {
287
+ tag: "sequence";
288
+ value: number;
289
+ } | {
290
+ tag: "array";
291
+ value: {
292
+ len: number;
293
+ type: number;
294
+ };
295
+ } | {
296
+ tag: "tuple";
297
+ value: number[];
298
+ } | {
299
+ tag: "primitive";
300
+ value: {
301
+ tag: "bool";
302
+ value: undefined;
303
+ } | {
304
+ tag: "char";
305
+ value: undefined;
306
+ } | {
307
+ tag: "str";
308
+ value: undefined;
309
+ } | {
310
+ tag: "u8";
311
+ value: undefined;
312
+ } | {
313
+ tag: "u16";
314
+ value: undefined;
315
+ } | {
316
+ tag: "u32";
317
+ value: undefined;
318
+ } | {
319
+ tag: "u64";
320
+ value: undefined;
321
+ } | {
322
+ tag: "u128";
323
+ value: undefined;
324
+ } | {
325
+ tag: "u256";
326
+ value: undefined;
327
+ } | {
328
+ tag: "i8";
329
+ value: undefined;
330
+ } | {
331
+ tag: "i16";
332
+ value: undefined;
333
+ } | {
334
+ tag: "i32";
335
+ value: undefined;
336
+ } | {
337
+ tag: "i64";
338
+ value: undefined;
339
+ } | {
340
+ tag: "i128";
341
+ value: undefined;
342
+ } | {
343
+ tag: "i256";
344
+ value: undefined;
345
+ };
346
+ } | {
347
+ tag: "compact";
348
+ value: number;
349
+ } | {
350
+ tag: "bitSequence";
351
+ value: {
352
+ bitStoreType: number;
353
+ bitOrderType: number;
354
+ };
355
+ };
356
+ docs: string[];
357
+ }[];
358
+ pallets: {
359
+ docs: string[];
360
+ name: string;
361
+ storage: {
362
+ prefix: string;
363
+ items: {
364
+ name: string;
365
+ modifier: number;
366
+ type: {
367
+ tag: "map";
368
+ value: {
369
+ hashers: ({
370
+ tag: "Blake2128";
371
+ value: undefined;
372
+ } | {
373
+ tag: "Blake2256";
374
+ value: undefined;
375
+ } | {
376
+ tag: "Blake2128Concat";
377
+ value: undefined;
378
+ } | {
379
+ tag: "Twox128";
380
+ value: undefined;
381
+ } | {
382
+ tag: "Twox256";
383
+ value: undefined;
384
+ } | {
385
+ tag: "Twox64Concat";
386
+ value: undefined;
387
+ } | {
388
+ tag: "Identity";
389
+ value: undefined;
390
+ })[];
391
+ key: number;
392
+ value: number;
393
+ };
394
+ } | {
395
+ tag: "plain";
396
+ value: number;
397
+ };
398
+ fallback: import("@polkadot-api/substrate-bindings").HexString;
399
+ docs: string[];
400
+ }[];
401
+ } | undefined;
402
+ calls: number | undefined;
403
+ events: number | undefined;
404
+ constants: {
405
+ name: string;
406
+ type: number;
407
+ value: import("@polkadot-api/substrate-bindings").HexString;
408
+ docs: string[];
409
+ }[];
410
+ errors: number | undefined;
411
+ index: number;
412
+ }[];
413
+ extrinsic: {
414
+ version: number;
415
+ address: number;
416
+ call: number;
417
+ signature: number;
418
+ extra: number;
419
+ signedExtensions: {
420
+ identifier: string;
421
+ type: number;
422
+ additionalSigned: number;
423
+ }[];
424
+ };
425
+ type: number;
426
+ apis: {
427
+ name: string;
428
+ methods: {
429
+ name: string;
430
+ inputs: {
431
+ name: string;
432
+ type: number;
433
+ }[];
434
+ output: number;
435
+ docs: string[];
436
+ }[];
437
+ docs: string[];
438
+ }[];
439
+ outerEnums: {
440
+ call: number;
441
+ event: number;
442
+ error: number;
443
+ };
444
+ custom: [string, {
445
+ type: number;
446
+ value: import("@polkadot-api/substrate-bindings").HexString;
447
+ }][];
448
+ };
449
+ } | {
450
+ tag: "v16";
451
+ value: {
452
+ lookup: {
453
+ id: number;
454
+ path: string[];
455
+ params: {
456
+ name: string;
457
+ type: number | undefined;
458
+ }[];
459
+ def: {
460
+ tag: "composite";
461
+ value: {
462
+ name: string | undefined;
463
+ type: number;
464
+ typeName: string | undefined;
465
+ docs: string[];
466
+ }[];
467
+ } | {
468
+ tag: "variant";
469
+ value: {
470
+ name: string;
471
+ fields: {
472
+ name: string | undefined;
473
+ type: number;
474
+ typeName: string | undefined;
475
+ docs: string[];
476
+ }[];
477
+ index: number;
478
+ docs: string[];
479
+ }[];
480
+ } | {
481
+ tag: "sequence";
482
+ value: number;
483
+ } | {
484
+ tag: "array";
485
+ value: {
486
+ len: number;
487
+ type: number;
488
+ };
489
+ } | {
490
+ tag: "tuple";
491
+ value: number[];
492
+ } | {
493
+ tag: "primitive";
494
+ value: {
495
+ tag: "bool";
496
+ value: undefined;
497
+ } | {
498
+ tag: "char";
499
+ value: undefined;
500
+ } | {
501
+ tag: "str";
502
+ value: undefined;
503
+ } | {
504
+ tag: "u8";
505
+ value: undefined;
506
+ } | {
507
+ tag: "u16";
508
+ value: undefined;
509
+ } | {
510
+ tag: "u32";
511
+ value: undefined;
512
+ } | {
513
+ tag: "u64";
514
+ value: undefined;
515
+ } | {
516
+ tag: "u128";
517
+ value: undefined;
518
+ } | {
519
+ tag: "u256";
520
+ value: undefined;
521
+ } | {
522
+ tag: "i8";
523
+ value: undefined;
524
+ } | {
525
+ tag: "i16";
526
+ value: undefined;
527
+ } | {
528
+ tag: "i32";
529
+ value: undefined;
530
+ } | {
531
+ tag: "i64";
532
+ value: undefined;
533
+ } | {
534
+ tag: "i128";
535
+ value: undefined;
536
+ } | {
537
+ tag: "i256";
538
+ value: undefined;
539
+ };
540
+ } | {
541
+ tag: "compact";
542
+ value: number;
543
+ } | {
544
+ tag: "bitSequence";
545
+ value: {
546
+ bitStoreType: number;
547
+ bitOrderType: number;
548
+ };
549
+ };
550
+ docs: string[];
551
+ }[];
552
+ pallets: {
553
+ name: string;
554
+ storage: {
555
+ prefix: string;
556
+ items: {
557
+ deprecationInfo: {
558
+ tag: "NotDeprecated";
559
+ value: undefined;
560
+ } | {
561
+ tag: "DeprecatedWithoutNote";
562
+ value: undefined;
563
+ } | {
564
+ tag: "Deprecated";
565
+ value: {
566
+ note: string;
567
+ since: string | undefined;
568
+ };
569
+ };
570
+ name: string;
571
+ modifier: number;
572
+ type: {
573
+ tag: "map";
574
+ value: {
575
+ hashers: ({
576
+ tag: "Blake2128";
577
+ value: undefined;
578
+ } | {
579
+ tag: "Blake2256";
580
+ value: undefined;
581
+ } | {
582
+ tag: "Blake2128Concat";
583
+ value: undefined;
584
+ } | {
585
+ tag: "Twox128";
586
+ value: undefined;
587
+ } | {
588
+ tag: "Twox256";
589
+ value: undefined;
590
+ } | {
591
+ tag: "Twox64Concat";
592
+ value: undefined;
593
+ } | {
594
+ tag: "Identity";
595
+ value: undefined;
596
+ })[];
597
+ key: number;
598
+ value: number;
599
+ };
600
+ } | {
601
+ tag: "plain";
602
+ value: number;
603
+ };
604
+ fallback: import("@polkadot-api/substrate-bindings").HexString;
605
+ docs: string[];
606
+ }[];
607
+ } | undefined;
608
+ calls: {
609
+ type: number;
610
+ deprecationInfo: {
611
+ index: number;
612
+ deprecation: {
613
+ tag: "DeprecatedWithoutNote";
614
+ value: undefined;
615
+ } | {
616
+ tag: "Deprecated";
617
+ value: {
618
+ note: string;
619
+ since: string | undefined;
620
+ };
621
+ };
622
+ }[];
623
+ } | undefined;
624
+ events: {
625
+ type: number;
626
+ deprecationInfo: {
627
+ index: number;
628
+ deprecation: {
629
+ tag: "DeprecatedWithoutNote";
630
+ value: undefined;
631
+ } | {
632
+ tag: "Deprecated";
633
+ value: {
634
+ note: string;
635
+ since: string | undefined;
636
+ };
637
+ };
638
+ }[];
639
+ } | undefined;
640
+ constants: {
641
+ name: string;
642
+ type: number;
643
+ value: import("@polkadot-api/substrate-bindings").HexString;
644
+ docs: string[];
645
+ deprecationInfo: {
646
+ tag: "NotDeprecated";
647
+ value: undefined;
648
+ } | {
649
+ tag: "DeprecatedWithoutNote";
650
+ value: undefined;
651
+ } | {
652
+ tag: "Deprecated";
653
+ value: {
654
+ note: string;
655
+ since: string | undefined;
656
+ };
657
+ };
658
+ }[];
659
+ errors: {
660
+ type: number;
661
+ deprecationInfo: {
662
+ index: number;
663
+ deprecation: {
664
+ tag: "DeprecatedWithoutNote";
665
+ value: undefined;
666
+ } | {
667
+ tag: "Deprecated";
668
+ value: {
669
+ note: string;
670
+ since: string | undefined;
671
+ };
672
+ };
673
+ }[];
674
+ } | undefined;
675
+ associatedTypes: {
676
+ name: string;
677
+ type: number;
678
+ docs: string[];
679
+ }[];
680
+ viewFns: {
681
+ deprecationInfo: {
682
+ tag: "NotDeprecated";
683
+ value: undefined;
684
+ } | {
685
+ tag: "DeprecatedWithoutNote";
686
+ value: undefined;
687
+ } | {
688
+ tag: "Deprecated";
689
+ value: {
690
+ note: string;
691
+ since: string | undefined;
692
+ };
693
+ };
694
+ name: string;
695
+ inputs: {
696
+ name: string;
697
+ type: number;
698
+ }[];
699
+ output: number;
700
+ docs: string[];
701
+ id: import("@polkadot-api/substrate-bindings").HexString;
702
+ }[];
703
+ index: number;
704
+ docs: string[];
705
+ deprecationInfo: {
706
+ tag: "NotDeprecated";
707
+ value: undefined;
708
+ } | {
709
+ tag: "DeprecatedWithoutNote";
710
+ value: undefined;
711
+ } | {
712
+ tag: "Deprecated";
713
+ value: {
714
+ note: string;
715
+ since: string | undefined;
716
+ };
717
+ };
718
+ }[];
719
+ extrinsic: {
720
+ version: number[];
721
+ address: number;
722
+ call: number;
723
+ signature: number;
724
+ signedExtensionsByVersion: [number, number[]][];
725
+ signedExtensions: {
726
+ identifier: string;
727
+ type: number;
728
+ additionalSigned: number;
729
+ }[];
730
+ };
731
+ apis: {
732
+ name: string;
733
+ methods: {
734
+ deprecationInfo: {
735
+ tag: "NotDeprecated";
736
+ value: undefined;
737
+ } | {
738
+ tag: "DeprecatedWithoutNote";
739
+ value: undefined;
740
+ } | {
741
+ tag: "Deprecated";
742
+ value: {
743
+ note: string;
744
+ since: string | undefined;
745
+ };
746
+ };
747
+ name: string;
748
+ inputs: {
749
+ name: string;
750
+ type: number;
751
+ }[];
752
+ output: number;
753
+ docs: string[];
754
+ }[];
755
+ docs: string[];
756
+ version: number;
757
+ deprecationInfo: {
758
+ tag: "NotDeprecated";
759
+ value: undefined;
760
+ } | {
761
+ tag: "DeprecatedWithoutNote";
762
+ value: undefined;
763
+ } | {
764
+ tag: "Deprecated";
765
+ value: {
766
+ note: string;
767
+ since: string | undefined;
768
+ };
769
+ };
770
+ }[];
771
+ outerEnums: {
772
+ call: number;
773
+ event: number;
774
+ error: number;
775
+ };
776
+ custom: [string, {
777
+ type: number;
778
+ value: import("@polkadot-api/substrate-bindings").HexString;
779
+ }][];
780
+ };
781
+ };
782
+ };
783
+ unifiedMetadata: import("@polkadot-api/substrate-bindings").UnifiedMetadata<14 | 15 | 16>;
784
+ lookupFn: import("@polkadot-api/metadata-builders").MetadataLookup;
785
+ builder: {
786
+ buildDefinition: (id: number) => import("@polkadot-api/substrate-bindings").Codec<any>;
787
+ buildStorage: (pallet: string, entry: string) => {
788
+ args: [import("@polkadot-api/substrate-bindings").Encoder<any[]>, import("@polkadot-api/substrate-bindings").Decoder<any[]>] & {
789
+ enc: import("@polkadot-api/substrate-bindings").Encoder<any[]>;
790
+ dec: import("@polkadot-api/substrate-bindings").Decoder<any[]>;
791
+ } & {
792
+ inner: import("@polkadot-api/substrate-bindings").Codec<any>[];
793
+ };
794
+ keys: {
795
+ enc: (...args: any[]) => string;
796
+ dec: (value: string) => any[];
797
+ };
798
+ value: import("@polkadot-api/substrate-bindings").Codec<any>;
799
+ len: number;
800
+ fallback: any;
801
+ };
802
+ buildEvent: (pallet: string, name: string) => {
803
+ codec: import("@polkadot-api/substrate-bindings").Codec<any>;
804
+ location: [number, number];
805
+ };
806
+ buildError: (pallet: string, name: string) => {
807
+ codec: import("@polkadot-api/substrate-bindings").Codec<any>;
808
+ location: [number, number];
809
+ };
810
+ buildViewFn: (pallet: string, entry: string) => {
811
+ args: [import("@polkadot-api/substrate-bindings").Encoder<any[]>, import("@polkadot-api/substrate-bindings").Decoder<any[]>] & {
812
+ enc: import("@polkadot-api/substrate-bindings").Encoder<any[]>;
813
+ dec: import("@polkadot-api/substrate-bindings").Decoder<any[]>;
814
+ } & {
815
+ inner: import("@polkadot-api/substrate-bindings").Codec<any>[];
816
+ };
817
+ value: import("@polkadot-api/substrate-bindings").Codec<any>;
818
+ };
819
+ buildRuntimeCall: (api: string, method: string) => {
820
+ args: [import("@polkadot-api/substrate-bindings").Encoder<any[]>, import("@polkadot-api/substrate-bindings").Decoder<any[]>] & {
821
+ enc: import("@polkadot-api/substrate-bindings").Encoder<any[]>;
822
+ dec: import("@polkadot-api/substrate-bindings").Decoder<any[]>;
823
+ } & {
824
+ inner: import("@polkadot-api/substrate-bindings").Codec<any>[];
825
+ };
826
+ value: import("@polkadot-api/substrate-bindings").Codec<any>;
827
+ };
828
+ buildCall: (pallet: string, name: string) => {
829
+ codec: import("@polkadot-api/substrate-bindings").Codec<any>;
830
+ location: [number, number];
831
+ };
832
+ buildConstant: (pallet: string, constantName: string) => import("@polkadot-api/substrate-bindings").Codec<any>;
833
+ ss58Prefix: number | undefined;
834
+ };
835
+ };
@@ -45,10 +45,7 @@ const compactMetadata = (anyMetadata, palletsAndItems = [], runtimeApisAndMethod
45
45
  items: itemNames
46
46
  }) => {
47
47
  const pallet = metadata.pallets.find(pallet => pallet.name === palletName);
48
- if (!pallet) {
49
- log.debug("Failed to find pallet", palletName);
50
- return [];
51
- }
48
+ if (!pallet) return [];
52
49
 
53
50
  // remove pallet fields we don't care about
54
51
  pallet.calls = undefined;
@@ -84,10 +81,7 @@ const compactMetadata = (anyMetadata, palletsAndItems = [], runtimeApisAndMethod
84
81
  methods: methodNames
85
82
  }) => {
86
83
  const runtimeApi = metadata.apis.find(runtimeApi => runtimeApi.name === runtimeApiName);
87
- if (!runtimeApi) {
88
- log.debug("Failed to find runtimeApi", runtimeApiName);
89
- return [];
90
- }
84
+ if (!runtimeApi) return [];
91
85
 
92
86
  // remove runtime fields we don't care about
93
87
  runtimeApi.docs = [];
@@ -365,6 +359,30 @@ const papiStringify = (value, space) => {
365
359
  return JSON.stringify(value, replacer, space);
366
360
  };
367
361
 
362
+ const parseMetadataRpc = metadataRpc => {
363
+ const metadata = substrateBindings.decAnyMetadata(metadataRpc);
364
+ const unifiedMetadata = substrateBindings.unifyMetadata(metadata);
365
+ const lookupFn = metadataBuilders.getLookupFn(unifiedMetadata);
366
+ const builder = metadataBuilders.getDynamicBuilder(lookupFn);
367
+ return {
368
+ metadata,
369
+ unifiedMetadata,
370
+ lookupFn,
371
+ builder
372
+ };
373
+ };
374
+
375
+ const getStorageKeyPrefix = (palletName, storageName) => {
376
+ const palletHash = substrateBindings.Twox128(new TextEncoder().encode(palletName));
377
+ const storageHash = substrateBindings.Twox128(new TextEncoder().encode(storageName));
378
+
379
+ // Concatenate and convert to hex
380
+ const combined = new Uint8Array(palletHash.length + storageHash.length);
381
+ combined.set(palletHash, 0);
382
+ combined.set(storageHash, palletHash.length);
383
+ return utils.toHex(combined);
384
+ };
385
+
368
386
  Object.defineProperty(exports, "getDynamicBuilder", {
369
387
  enumerable: true,
370
388
  get: function () { return metadataBuilders.getDynamicBuilder; }
@@ -373,6 +391,38 @@ Object.defineProperty(exports, "getLookupFn", {
373
391
  enumerable: true,
374
392
  get: function () { return metadataBuilders.getLookupFn; }
375
393
  });
394
+ Object.defineProperty(exports, "Blake2128", {
395
+ enumerable: true,
396
+ get: function () { return substrateBindings.Blake2128; }
397
+ });
398
+ Object.defineProperty(exports, "Blake2128Concat", {
399
+ enumerable: true,
400
+ get: function () { return substrateBindings.Blake2128Concat; }
401
+ });
402
+ Object.defineProperty(exports, "Blake2256", {
403
+ enumerable: true,
404
+ get: function () { return substrateBindings.Blake2256; }
405
+ });
406
+ Object.defineProperty(exports, "Blake3256", {
407
+ enumerable: true,
408
+ get: function () { return substrateBindings.Blake3256; }
409
+ });
410
+ Object.defineProperty(exports, "Blake3256Concat", {
411
+ enumerable: true,
412
+ get: function () { return substrateBindings.Blake3256Concat; }
413
+ });
414
+ Object.defineProperty(exports, "Twox128", {
415
+ enumerable: true,
416
+ get: function () { return substrateBindings.Twox128; }
417
+ });
418
+ Object.defineProperty(exports, "Twox256", {
419
+ enumerable: true,
420
+ get: function () { return substrateBindings.Twox256; }
421
+ });
422
+ Object.defineProperty(exports, "Twox64Concat", {
423
+ enumerable: true,
424
+ get: function () { return substrateBindings.Twox64Concat; }
425
+ });
376
426
  Object.defineProperty(exports, "decAnyMetadata", {
377
427
  enumerable: true,
378
428
  get: function () { return substrateBindings.decAnyMetadata; }
@@ -398,6 +448,8 @@ exports.decodeScale = decodeScale;
398
448
  exports.encodeMetadata = encodeMetadata;
399
449
  exports.encodeStateKey = encodeStateKey;
400
450
  exports.getMetadataVersion = getMetadataVersion;
451
+ exports.getStorageKeyPrefix = getStorageKeyPrefix;
401
452
  exports.magicNumber = magicNumber;
402
453
  exports.papiParse = papiParse;
403
454
  exports.papiStringify = papiStringify;
455
+ exports.parseMetadataRpc = parseMetadataRpc;
@@ -45,10 +45,7 @@ const compactMetadata = (anyMetadata, palletsAndItems = [], runtimeApisAndMethod
45
45
  items: itemNames
46
46
  }) => {
47
47
  const pallet = metadata.pallets.find(pallet => pallet.name === palletName);
48
- if (!pallet) {
49
- log.debug("Failed to find pallet", palletName);
50
- return [];
51
- }
48
+ if (!pallet) return [];
52
49
 
53
50
  // remove pallet fields we don't care about
54
51
  pallet.calls = undefined;
@@ -84,10 +81,7 @@ const compactMetadata = (anyMetadata, palletsAndItems = [], runtimeApisAndMethod
84
81
  methods: methodNames
85
82
  }) => {
86
83
  const runtimeApi = metadata.apis.find(runtimeApi => runtimeApi.name === runtimeApiName);
87
- if (!runtimeApi) {
88
- log.debug("Failed to find runtimeApi", runtimeApiName);
89
- return [];
90
- }
84
+ if (!runtimeApi) return [];
91
85
 
92
86
  // remove runtime fields we don't care about
93
87
  runtimeApi.docs = [];
@@ -365,6 +359,30 @@ const papiStringify = (value, space) => {
365
359
  return JSON.stringify(value, replacer, space);
366
360
  };
367
361
 
362
+ const parseMetadataRpc = metadataRpc => {
363
+ const metadata = substrateBindings.decAnyMetadata(metadataRpc);
364
+ const unifiedMetadata = substrateBindings.unifyMetadata(metadata);
365
+ const lookupFn = metadataBuilders.getLookupFn(unifiedMetadata);
366
+ const builder = metadataBuilders.getDynamicBuilder(lookupFn);
367
+ return {
368
+ metadata,
369
+ unifiedMetadata,
370
+ lookupFn,
371
+ builder
372
+ };
373
+ };
374
+
375
+ const getStorageKeyPrefix = (palletName, storageName) => {
376
+ const palletHash = substrateBindings.Twox128(new TextEncoder().encode(palletName));
377
+ const storageHash = substrateBindings.Twox128(new TextEncoder().encode(storageName));
378
+
379
+ // Concatenate and convert to hex
380
+ const combined = new Uint8Array(palletHash.length + storageHash.length);
381
+ combined.set(palletHash, 0);
382
+ combined.set(storageHash, palletHash.length);
383
+ return utils.toHex(combined);
384
+ };
385
+
368
386
  Object.defineProperty(exports, "getDynamicBuilder", {
369
387
  enumerable: true,
370
388
  get: function () { return metadataBuilders.getDynamicBuilder; }
@@ -373,6 +391,38 @@ Object.defineProperty(exports, "getLookupFn", {
373
391
  enumerable: true,
374
392
  get: function () { return metadataBuilders.getLookupFn; }
375
393
  });
394
+ Object.defineProperty(exports, "Blake2128", {
395
+ enumerable: true,
396
+ get: function () { return substrateBindings.Blake2128; }
397
+ });
398
+ Object.defineProperty(exports, "Blake2128Concat", {
399
+ enumerable: true,
400
+ get: function () { return substrateBindings.Blake2128Concat; }
401
+ });
402
+ Object.defineProperty(exports, "Blake2256", {
403
+ enumerable: true,
404
+ get: function () { return substrateBindings.Blake2256; }
405
+ });
406
+ Object.defineProperty(exports, "Blake3256", {
407
+ enumerable: true,
408
+ get: function () { return substrateBindings.Blake3256; }
409
+ });
410
+ Object.defineProperty(exports, "Blake3256Concat", {
411
+ enumerable: true,
412
+ get: function () { return substrateBindings.Blake3256Concat; }
413
+ });
414
+ Object.defineProperty(exports, "Twox128", {
415
+ enumerable: true,
416
+ get: function () { return substrateBindings.Twox128; }
417
+ });
418
+ Object.defineProperty(exports, "Twox256", {
419
+ enumerable: true,
420
+ get: function () { return substrateBindings.Twox256; }
421
+ });
422
+ Object.defineProperty(exports, "Twox64Concat", {
423
+ enumerable: true,
424
+ get: function () { return substrateBindings.Twox64Concat; }
425
+ });
376
426
  Object.defineProperty(exports, "decAnyMetadata", {
377
427
  enumerable: true,
378
428
  get: function () { return substrateBindings.decAnyMetadata; }
@@ -398,6 +448,8 @@ exports.decodeScale = decodeScale;
398
448
  exports.encodeMetadata = encodeMetadata;
399
449
  exports.encodeStateKey = encodeStateKey;
400
450
  exports.getMetadataVersion = getMetadataVersion;
451
+ exports.getStorageKeyPrefix = getStorageKeyPrefix;
401
452
  exports.magicNumber = magicNumber;
402
453
  exports.papiParse = papiParse;
403
454
  exports.papiStringify = papiStringify;
455
+ exports.parseMetadataRpc = parseMetadataRpc;
@@ -1,6 +1,7 @@
1
+ import { getLookupFn, getDynamicBuilder } from '@polkadot-api/metadata-builders';
1
2
  export { getDynamicBuilder, getLookupFn } from '@polkadot-api/metadata-builders';
2
- import { metadata, Binary } from '@polkadot-api/substrate-bindings';
3
- export { decAnyMetadata, metadata, unifyMetadata } from '@polkadot-api/substrate-bindings';
3
+ import { metadata, Binary, decAnyMetadata, unifyMetadata, Twox128 } from '@polkadot-api/substrate-bindings';
4
+ export { Blake2128, Blake2128Concat, Blake2256, Blake3256, Blake3256Concat, Twox128, Twox256, Twox64Concat, decAnyMetadata, metadata, unifyMetadata } from '@polkadot-api/substrate-bindings';
4
5
  import { toHex } from '@polkadot-api/utils';
5
6
  export { fromHex, toHex } from '@polkadot-api/utils';
6
7
  import anylogger from 'anylogger';
@@ -41,10 +42,7 @@ const compactMetadata = (anyMetadata, palletsAndItems = [], runtimeApisAndMethod
41
42
  items: itemNames
42
43
  }) => {
43
44
  const pallet = metadata.pallets.find(pallet => pallet.name === palletName);
44
- if (!pallet) {
45
- log.debug("Failed to find pallet", palletName);
46
- return [];
47
- }
45
+ if (!pallet) return [];
48
46
 
49
47
  // remove pallet fields we don't care about
50
48
  pallet.calls = undefined;
@@ -80,10 +78,7 @@ const compactMetadata = (anyMetadata, palletsAndItems = [], runtimeApisAndMethod
80
78
  methods: methodNames
81
79
  }) => {
82
80
  const runtimeApi = metadata.apis.find(runtimeApi => runtimeApi.name === runtimeApiName);
83
- if (!runtimeApi) {
84
- log.debug("Failed to find runtimeApi", runtimeApiName);
85
- return [];
86
- }
81
+ if (!runtimeApi) return [];
87
82
 
88
83
  // remove runtime fields we don't care about
89
84
  runtimeApi.docs = [];
@@ -361,4 +356,28 @@ const papiStringify = (value, space) => {
361
356
  return JSON.stringify(value, replacer, space);
362
357
  };
363
358
 
364
- export { compactMetadata, decodeScale, encodeMetadata, encodeStateKey, getMetadataVersion, magicNumber, papiParse, papiStringify };
359
+ const parseMetadataRpc = metadataRpc => {
360
+ const metadata = decAnyMetadata(metadataRpc);
361
+ const unifiedMetadata = unifyMetadata(metadata);
362
+ const lookupFn = getLookupFn(unifiedMetadata);
363
+ const builder = getDynamicBuilder(lookupFn);
364
+ return {
365
+ metadata,
366
+ unifiedMetadata,
367
+ lookupFn,
368
+ builder
369
+ };
370
+ };
371
+
372
+ const getStorageKeyPrefix = (palletName, storageName) => {
373
+ const palletHash = Twox128(new TextEncoder().encode(palletName));
374
+ const storageHash = Twox128(new TextEncoder().encode(storageName));
375
+
376
+ // Concatenate and convert to hex
377
+ const combined = new Uint8Array(palletHash.length + storageHash.length);
378
+ combined.set(palletHash, 0);
379
+ combined.set(storageHash, palletHash.length);
380
+ return toHex(combined);
381
+ };
382
+
383
+ export { compactMetadata, decodeScale, encodeMetadata, encodeStateKey, getMetadataVersion, getStorageKeyPrefix, magicNumber, papiParse, papiStringify, parseMetadataRpc };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talismn/scale",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "author": "Talisman",
5
5
  "homepage": "https://talisman.xyz",
6
6
  "license": "GPL-3.0-or-later",
@@ -33,8 +33,8 @@
33
33
  "jest": "^29.7",
34
34
  "ts-jest": "^29.2.5",
35
35
  "typescript": "^5.6.3",
36
- "@talismn/eslint-config": "0.0.3",
37
- "@talismn/tsconfig": "0.0.2"
36
+ "@talismn/tsconfig": "0.0.2",
37
+ "@talismn/eslint-config": "0.0.3"
38
38
  },
39
39
  "eslintConfig": {
40
40
  "root": true,