@polkadot-api/substrate-bindings 0.12.0 → 0.14.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.
Files changed (35) hide show
  1. package/dist/esm/codecs/metadata/deprecation.mjs +28 -0
  2. package/dist/esm/codecs/metadata/deprecation.mjs.map +1 -0
  3. package/dist/esm/codecs/metadata/metadata.mjs +3 -1
  4. package/dist/esm/codecs/metadata/metadata.mjs.map +1 -1
  5. package/dist/esm/codecs/metadata/pallets.mjs +56 -14
  6. package/dist/esm/codecs/metadata/pallets.mjs.map +1 -1
  7. package/dist/esm/codecs/metadata/runtime-api.mjs +27 -13
  8. package/dist/esm/codecs/metadata/runtime-api.mjs.map +1 -1
  9. package/dist/esm/codecs/metadata/unified.mjs +48 -0
  10. package/dist/esm/codecs/metadata/unified.mjs.map +1 -0
  11. package/dist/esm/codecs/metadata/v14.mjs.map +1 -1
  12. package/dist/esm/codecs/metadata/v15.mjs +2 -2
  13. package/dist/esm/codecs/metadata/v15.mjs.map +1 -1
  14. package/dist/esm/codecs/metadata/v16.mjs +44 -0
  15. package/dist/esm/codecs/metadata/v16.mjs.map +1 -0
  16. package/dist/esm/codecs/scale/Binary.mjs +4 -4
  17. package/dist/esm/codecs/scale/Binary.mjs.map +1 -1
  18. package/dist/esm/extrinsics/extrinsic-format.mjs +26 -0
  19. package/dist/esm/extrinsics/extrinsic-format.mjs.map +1 -0
  20. package/dist/esm/hashes/blake2.mjs +1 -1
  21. package/dist/esm/hashes/blake2.mjs.map +1 -1
  22. package/dist/esm/hashes/blake3.mjs +1 -1
  23. package/dist/esm/hashes/blake3.mjs.map +1 -1
  24. package/dist/esm/hashes/twoX.mjs +1 -1
  25. package/dist/esm/hashes/twoX.mjs.map +1 -1
  26. package/dist/esm/index.mjs +3 -0
  27. package/dist/esm/index.mjs.map +1 -1
  28. package/dist/esm/storage.mjs +6 -3
  29. package/dist/esm/storage.mjs.map +1 -1
  30. package/dist/esm/utils/multisig.mjs +3 -2
  31. package/dist/esm/utils/multisig.mjs.map +1 -1
  32. package/dist/index.d.ts +1030 -156
  33. package/dist/index.js +225 -46
  34. package/dist/index.js.map +1 -1
  35. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -98,10 +98,10 @@ class Binary {
98
98
  __publicField(this, "asHex", () => __privateGet(this, _hex) || __privateSet(this, _hex, utils.toHex(__privateGet(this, _bytes))));
99
99
  __publicField(this, "asOpaqueHex", () => __privateGet(this, _opaqueHex) || __privateSet(this, _opaqueHex, utils.toHex(this.asBytes())));
100
100
  __publicField(this, "asBytes", () => __privateGet(this, _bytes));
101
- __publicField(this, "asOpaqueBytes", () => __privateGet(this, _opaqueBytes) || __privateSet(this, _opaqueBytes, utils.mergeUint8(
102
- scaleTs.compact[0](__privateGet(this, _bytes).length),
103
- __privateGet(this, _bytes)
104
- )));
101
+ __publicField(this, "asOpaqueBytes", () => __privateGet(this, _opaqueBytes) || __privateSet(this, _opaqueBytes, utils.mergeUint8([
102
+ __privateGet(this, _bytes),
103
+ scaleTs.compact[0](__privateGet(this, _bytes).length)
104
+ ])));
105
105
  if (opaque) {
106
106
  try {
107
107
  const [len, bytes] = opaqueBytesDec(data);
@@ -433,6 +433,61 @@ const entry = scaleTs.Struct({
433
433
  });
434
434
  const lookup = scaleTs.Vector(entry);
435
435
 
436
+ const itemDeprecation = scaleTs.Enum({
437
+ NotDeprecated: scaleTs._void,
438
+ DeprecatedWithoutNote: scaleTs._void,
439
+ Deprecated: scaleTs.Struct({
440
+ note: scaleTs.str,
441
+ since: scaleTs.Option(scaleTs.str)
442
+ })
443
+ });
444
+ const variantDeprecation = scaleTs.Vector(
445
+ scaleTs.Struct({
446
+ index: scaleTs.u8,
447
+ deprecation: scaleTs.Enum(
448
+ {
449
+ DeprecatedWithoutNote: scaleTs._void,
450
+ Deprecated: scaleTs.Struct({
451
+ note: scaleTs.str,
452
+ since: scaleTs.Option(scaleTs.str)
453
+ })
454
+ },
455
+ [1, 2]
456
+ )
457
+ })
458
+ );
459
+
460
+ const runtimeApiMethod = {
461
+ name: scaleTs.str,
462
+ inputs: scaleTs.Vector(
463
+ scaleTs.Struct({
464
+ name: scaleTs.str,
465
+ type: compactNumber
466
+ })
467
+ ),
468
+ output: compactNumber,
469
+ docs
470
+ };
471
+ const runtimeApiV15 = scaleTs.Struct({
472
+ name: scaleTs.str,
473
+ methods: scaleTs.Vector(scaleTs.Struct(runtimeApiMethod)),
474
+ docs
475
+ });
476
+ const runtimeApi = scaleTs.Struct({
477
+ name: scaleTs.str,
478
+ methods: scaleTs.Vector(
479
+ scaleTs.Struct({ ...runtimeApiMethod, deprecationInfo: itemDeprecation })
480
+ ),
481
+ docs,
482
+ version: compactNumber,
483
+ deprecationInfo: itemDeprecation
484
+ });
485
+ const viewFunction = scaleTs.Struct({
486
+ id: Hex(32),
487
+ ...runtimeApiMethod,
488
+ deprecationInfo: itemDeprecation
489
+ });
490
+
436
491
  const hashType = scaleTs.Enum({
437
492
  Blake2128: scaleTs._void,
438
493
  Blake2256: scaleTs._void,
@@ -448,7 +503,7 @@ const storageMap = scaleTs.Struct({
448
503
  key: compactNumber,
449
504
  value: compactNumber
450
505
  });
451
- const storageItem = scaleTs.Struct({
506
+ const storageItem = {
452
507
  name: scaleTs.str,
453
508
  modifier: scaleTs.u8,
454
509
  type: scaleTs.Enum({
@@ -457,18 +512,18 @@ const storageItem = scaleTs.Struct({
457
512
  }),
458
513
  fallback: Hex(),
459
514
  docs
460
- });
461
- const storage = scaleTs.Option(
462
- scaleTs.Struct({
463
- prefix: scaleTs.str,
464
- items: scaleTs.Vector(storageItem)
465
- })
466
- );
515
+ };
516
+ const enumRefV14 = scaleTs.Option(compactNumber);
467
517
  const v14Pallet = {
468
518
  name: scaleTs.str,
469
- storage,
470
- calls: scaleTs.Option(compactNumber),
471
- events: scaleTs.Option(compactNumber),
519
+ storage: scaleTs.Option(
520
+ scaleTs.Struct({
521
+ prefix: scaleTs.str,
522
+ items: scaleTs.Vector(scaleTs.Struct(storageItem))
523
+ })
524
+ ),
525
+ calls: enumRefV14,
526
+ events: enumRefV14,
472
527
  constants: scaleTs.Vector(
473
528
  scaleTs.Struct({
474
529
  name: scaleTs.str,
@@ -477,20 +532,60 @@ const v14Pallet = {
477
532
  docs
478
533
  })
479
534
  ),
480
- errors: scaleTs.Option(compactNumber),
535
+ errors: enumRefV14,
481
536
  index: scaleTs.u8
482
537
  };
483
538
  const v15Pallet = {
484
539
  ...v14Pallet,
485
540
  docs
486
541
  };
542
+ const enumRef = scaleTs.Option(
543
+ scaleTs.Struct({ type: compactNumber, deprecationInfo: variantDeprecation })
544
+ );
545
+ const v16Pallet = {
546
+ name: scaleTs.str,
547
+ storage: scaleTs.Option(
548
+ scaleTs.Struct({
549
+ prefix: scaleTs.str,
550
+ items: scaleTs.Vector(
551
+ scaleTs.Struct({
552
+ ...storageItem,
553
+ deprecationInfo: itemDeprecation
554
+ })
555
+ )
556
+ })
557
+ ),
558
+ calls: enumRef,
559
+ events: enumRef,
560
+ constants: scaleTs.Vector(
561
+ scaleTs.Struct({
562
+ name: scaleTs.str,
563
+ type: compactNumber,
564
+ value: Hex(),
565
+ docs,
566
+ deprecationInfo: itemDeprecation
567
+ })
568
+ ),
569
+ errors: enumRef,
570
+ associatedTypes: scaleTs.Vector(
571
+ scaleTs.Struct({
572
+ name: scaleTs.str,
573
+ type: compactNumber,
574
+ docs
575
+ })
576
+ ),
577
+ viewFns: scaleTs.Vector(viewFunction),
578
+ index: scaleTs.u8,
579
+ docs,
580
+ deprecationInfo: itemDeprecation
581
+ };
487
582
 
488
583
  const empty = new Uint8Array();
489
584
  const Always = (value) => scaleTs.createCodec(
490
585
  () => empty,
491
586
  () => value
492
587
  );
493
- const extrinsic$1 = scaleTs.Struct({
588
+ const extrinsic$2 = scaleTs.Struct({
494
589
  type: compactNumber,
495
590
  version: scaleTs.u8,
496
591
  signedExtensions: scaleTs.Vector(
@@ -504,35 +599,45 @@ const extrinsic$1 = scaleTs.Struct({
504
599
  const v14 = scaleTs.Struct({
505
600
  lookup,
506
601
  pallets: scaleTs.Vector(scaleTs.Struct({ ...v14Pallet, docs: Always([]) })),
507
- extrinsic: extrinsic$1,
602
+ extrinsic: extrinsic$2,
508
603
  type: compactNumber,
509
604
  apis: Always([])
510
605
  });
511
606
 
512
- const runtimeApi = scaleTs.Struct({
513
- name: scaleTs.str,
514
- methods: scaleTs.Vector(
607
+ const extrinsic$1 = scaleTs.Struct({
608
+ version: scaleTs.u8,
609
+ address: compactNumber,
610
+ call: compactNumber,
611
+ signature: compactNumber,
612
+ extra: compactNumber,
613
+ signedExtensions: scaleTs.Vector(
515
614
  scaleTs.Struct({
516
- name: scaleTs.str,
517
- inputs: scaleTs.Vector(
518
- scaleTs.Struct({
519
- name: scaleTs.str,
520
- type: compactNumber
521
- })
522
- ),
523
- output: compactNumber,
524
- docs
615
+ identifier: scaleTs.str,
616
+ type: compactNumber,
617
+ additionalSigned: compactNumber
525
618
  })
526
- ),
527
- docs
619
+ )
620
+ });
621
+ const v15 = scaleTs.Struct({
622
+ lookup,
623
+ pallets: scaleTs.Vector(scaleTs.Struct(v15Pallet)),
624
+ extrinsic: extrinsic$1,
625
+ type: compactNumber,
626
+ apis: scaleTs.Vector(runtimeApiV15),
627
+ outerEnums: scaleTs.Struct({
628
+ call: compactNumber,
629
+ event: compactNumber,
630
+ error: compactNumber
631
+ }),
632
+ custom: scaleTs.Vector(scaleTs.Tuple(scaleTs.str, scaleTs.Struct({ type: compactNumber, value: Hex() })))
528
633
  });
529
634
 
530
635
  const extrinsic = scaleTs.Struct({
531
- version: scaleTs.u8,
636
+ version: scaleTs.Vector(scaleTs.u8),
532
637
  address: compactNumber,
533
638
  call: compactNumber,
534
639
  signature: compactNumber,
535
- extra: compactNumber,
640
+ signedExtensionsByVersion: scaleTs.Vector(scaleTs.Tuple(scaleTs.u8, scaleTs.Vector(compactNumber))),
536
641
  signedExtensions: scaleTs.Vector(
537
642
  scaleTs.Struct({
538
643
  identifier: scaleTs.str,
@@ -541,11 +646,10 @@ const extrinsic = scaleTs.Struct({
541
646
  })
542
647
  )
543
648
  });
544
- const v15 = scaleTs.Struct({
649
+ const v16 = scaleTs.Struct({
545
650
  lookup,
546
- pallets: scaleTs.Vector(scaleTs.Struct(v15Pallet)),
651
+ pallets: scaleTs.Vector(scaleTs.Struct(v16Pallet)),
547
652
  extrinsic,
548
- type: compactNumber,
549
653
  apis: scaleTs.Vector(runtimeApi),
550
654
  outerEnums: scaleTs.Struct({
551
655
  call: compactNumber,
@@ -580,7 +684,8 @@ const metadata = scaleTs.Struct({
580
684
  v12: unsupported,
581
685
  v13: unsupported,
582
686
  v14,
583
- v15
687
+ v15,
688
+ v16
584
689
  })
585
690
  });
586
691
  const opaqueBytes = scaleTs.Bytes();
@@ -606,15 +711,83 @@ const decAnyMetadata = (input) => {
606
711
  throw null;
607
712
  };
608
713
 
714
+ const unifyMetadata = (metadata) => {
715
+ if ("magicNumber" in metadata) metadata = metadata.metadata;
716
+ if ("tag" in metadata) {
717
+ if (metadata.tag !== "v14" && metadata.tag !== "v15" && metadata.tag !== "v16")
718
+ throw new Error("Only metadata 14, 15, and 16 are supported");
719
+ metadata = metadata.value;
720
+ }
721
+ if ("signedExtensionsByVersion" in metadata.extrinsic) {
722
+ return { version: 16, ...metadata };
723
+ }
724
+ if ("custom" in metadata) {
725
+ const { lookup: lookup2, extrinsic: extrinsic2, custom, apis, pallets: pallets2, outerEnums } = metadata;
726
+ return {
727
+ version: 15,
728
+ lookup: lookup2,
729
+ pallets: pallets2.map((p) => ({
730
+ ...p,
731
+ calls: p.calls != null ? { type: p.calls } : void 0,
732
+ events: p.events != null ? { type: p.events } : void 0,
733
+ errors: p.errors != null ? { type: p.errors } : void 0,
734
+ viewFns: [],
735
+ associatedTypes: []
736
+ })),
737
+ extrinsic: { ...extrinsic2, version: [extrinsic2.version] },
738
+ apis,
739
+ outerEnums,
740
+ custom
741
+ };
742
+ }
743
+ const { lookup, extrinsic, pallets } = metadata;
744
+ return {
745
+ version: 14,
746
+ lookup,
747
+ pallets: pallets.map((p) => ({
748
+ ...p,
749
+ calls: p.calls != null ? { type: p.calls } : void 0,
750
+ events: p.events != null ? { type: p.events } : void 0,
751
+ errors: p.errors != null ? { type: p.errors } : void 0,
752
+ viewFns: [],
753
+ associatedTypes: []
754
+ })),
755
+ extrinsic: { ...extrinsic, version: [extrinsic.version] },
756
+ apis: []
757
+ };
758
+ };
759
+
760
+ const TYPES = {
761
+ bare: 0,
762
+ 0: "bare",
763
+ general: 1,
764
+ 1: "general",
765
+ signed: 2,
766
+ 2: "signed"
767
+ };
768
+ const extrinsicFormat = scaleTs.enhanceCodec(
769
+ scaleTs.u8,
770
+ ({ version, type }) => version + (TYPES[type] << 6),
771
+ (v) => {
772
+ const version = v & 63;
773
+ const type = v >> 6;
774
+ if (version === 4 && (type === TYPES.bare || type === TYPES.signed))
775
+ return { version, type: TYPES[type] };
776
+ if (version === 5 && (type === TYPES.bare || type === TYPES.general))
777
+ return { version, type: TYPES[type] };
778
+ throw new Error(`ExtrinsicFormat ${v} not valid`);
779
+ }
780
+ );
781
+
609
782
  const len32$1 = { dkLen: 32 };
610
783
  const Blake2256 = (encoded) => blake2b.blake2b(encoded, len32$1);
611
784
  const len16 = { dkLen: 16 };
612
785
  const Blake2128 = (encoded) => blake2b.blake2b(encoded, len16);
613
- const Blake2128Concat = (encoded) => utils.mergeUint8(Blake2128(encoded), encoded);
786
+ const Blake2128Concat = (encoded) => utils.mergeUint8([Blake2128(encoded), encoded]);
614
787
 
615
788
  const len32 = { dkLen: 32 };
616
789
  const Blake3256 = (encoded) => blake3.blake3(encoded, len32);
617
- const Blake3256Concat = (encoded) => utils.mergeUint8(Blake3256(encoded), encoded);
790
+ const Blake3256Concat = (encoded) => utils.mergeUint8([Blake3256(encoded), encoded]);
618
791
 
619
792
  const Identity = (encoded) => encoded;
620
793
 
@@ -766,7 +939,7 @@ const Twox256 = (input) => {
766
939
  dv.setBigUint64(24, h64(input, 3n), true);
767
940
  return result;
768
941
  };
769
- const Twox64Concat = (encoded) => utils.mergeUint8(scaleTs.u64.enc(h64(encoded)), encoded);
942
+ const Twox64Concat = (encoded) => utils.mergeUint8([scaleTs.u64.enc(h64(encoded)), encoded]);
770
943
 
771
944
  const textEncoder = new TextEncoder();
772
945
  const hashers = /* @__PURE__ */ new Map([
@@ -781,10 +954,10 @@ const hashers = /* @__PURE__ */ new Map([
781
954
  const Storage = (pallet) => {
782
955
  const palledEncoded = Twox128(textEncoder.encode(pallet));
783
956
  return (name, ...encoders) => {
784
- const palletItemEncoded = utils.mergeUint8(
957
+ const palletItemEncoded = utils.mergeUint8([
785
958
  palledEncoded,
786
959
  Twox128(textEncoder.encode(name))
787
- );
960
+ ]);
788
961
  const palletItemEncodedHex = utils.toHex(palletItemEncoded);
789
962
  const dec = (key) => {
790
963
  if (!key.startsWith(palletItemEncodedHex))
@@ -812,7 +985,10 @@ const Storage = (pallet) => {
812
985
  ([{ enc: enc2 }, hash]) => (val) => hash(enc2(val))
813
986
  );
814
987
  const enc = (...args) => utils.toHex(
815
- utils.mergeUint8(palletItemEncoded, ...args.map((val, idx) => fns[idx](val)))
988
+ utils.mergeUint8([
989
+ palletItemEncoded,
990
+ ...args.map((val, idx) => fns[idx](val))
991
+ ])
816
992
  );
817
993
  return {
818
994
  enc,
@@ -827,12 +1003,12 @@ const getMultisigAccountId = ({
827
1003
  signatories
828
1004
  }) => {
829
1005
  const sortedSignatories = sortMultisigSignatories(signatories);
830
- const payload = utils.mergeUint8(
1006
+ const payload = utils.mergeUint8([
831
1007
  PREFIX,
832
1008
  scaleTs.compact.enc(sortedSignatories.length),
833
1009
  ...sortedSignatories,
834
1010
  scaleTs.u16.enc(threshold)
835
- );
1011
+ ]);
836
1012
  return Blake2256(payload);
837
1013
  };
838
1014
  const sortMultisigSignatories = (signatories) => signatories.slice().sort((a, b) => {
@@ -966,6 +1142,7 @@ exports.compactBn = compactBn;
966
1142
  exports.compactNumber = compactNumber;
967
1143
  exports.decAnyMetadata = decAnyMetadata;
968
1144
  exports.ethAccount = ethAccount;
1145
+ exports.extrinsicFormat = extrinsicFormat;
969
1146
  exports.fixedStr = fixedStr;
970
1147
  exports.fromBufferToBase58 = fromBufferToBase58;
971
1148
  exports.getMultisigAccountId = getMultisigAccountId;
@@ -975,7 +1152,9 @@ exports.metadata = metadata;
975
1152
  exports.selfDecoder = selfDecoder;
976
1153
  exports.selfEncoder = selfEncoder;
977
1154
  exports.sortMultisigSignatories = sortMultisigSignatories;
1155
+ exports.unifyMetadata = unifyMetadata;
978
1156
  exports.v14 = v14;
979
1157
  exports.v14Lookup = lookup;
980
1158
  exports.v15 = v15;
1159
+ exports.v16 = v16;
981
1160
  //# sourceMappingURL=index.js.map