@bsv/sdk 1.0.13 → 1.0.14

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 (117) hide show
  1. package/dist/cjs/package.json +1 -1
  2. package/dist/cjs/src/compat/BSM.js.map +1 -1
  3. package/dist/cjs/src/compat/ECIES.js +105 -76
  4. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  5. package/dist/cjs/src/compat/HD.js +65 -65
  6. package/dist/cjs/src/compat/HD.js.map +1 -1
  7. package/dist/cjs/src/compat/Mnemonic.js +79 -79
  8. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  9. package/dist/cjs/src/compat/bip-39-wordlist-en.js +2 -2
  10. package/dist/cjs/src/compat/bip-39-wordlist-en.js.map +1 -1
  11. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  12. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  13. package/dist/cjs/src/primitives/DRBG.js.map +1 -1
  14. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  15. package/dist/cjs/src/primitives/Hash.js +26 -13
  16. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  17. package/dist/cjs/src/primitives/PrivateKey.js +3 -2
  18. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  19. package/dist/cjs/src/primitives/PublicKey.js +1 -2
  20. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  21. package/dist/cjs/src/primitives/Random.js +2 -2
  22. package/dist/cjs/src/primitives/Random.js.map +1 -1
  23. package/dist/cjs/src/primitives/Signature.js +141 -4
  24. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  25. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  26. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  27. package/dist/cjs/src/primitives/utils.js +14 -9
  28. package/dist/cjs/src/primitives/utils.js.map +1 -1
  29. package/dist/cjs/src/script/Spend.js.map +1 -1
  30. package/dist/cjs/src/script/templates/P2PKH.js +1 -1
  31. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  32. package/dist/cjs/src/transaction/MerklePath.js +3 -3
  33. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  34. package/dist/cjs/src/transaction/Transaction.js +2 -2
  35. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  36. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  37. package/dist/esm/src/compat/BSM.js.map +1 -1
  38. package/dist/esm/src/compat/ECIES.js +105 -76
  39. package/dist/esm/src/compat/ECIES.js.map +1 -1
  40. package/dist/esm/src/compat/HD.js +65 -65
  41. package/dist/esm/src/compat/HD.js.map +1 -1
  42. package/dist/esm/src/compat/Mnemonic.js +79 -79
  43. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  44. package/dist/esm/src/compat/bip-39-wordlist-en.js +2 -2
  45. package/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -1
  46. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  47. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  48. package/dist/esm/src/primitives/DRBG.js.map +1 -1
  49. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  50. package/dist/esm/src/primitives/Hash.js +26 -13
  51. package/dist/esm/src/primitives/Hash.js.map +1 -1
  52. package/dist/esm/src/primitives/PrivateKey.js +3 -2
  53. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  54. package/dist/esm/src/primitives/PublicKey.js +1 -2
  55. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  56. package/dist/esm/src/primitives/Random.js +2 -2
  57. package/dist/esm/src/primitives/Random.js.map +1 -1
  58. package/dist/esm/src/primitives/Signature.js +141 -4
  59. package/dist/esm/src/primitives/Signature.js.map +1 -1
  60. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  61. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  62. package/dist/esm/src/primitives/utils.js +14 -9
  63. package/dist/esm/src/primitives/utils.js.map +1 -1
  64. package/dist/esm/src/script/Spend.js.map +1 -1
  65. package/dist/esm/src/script/templates/P2PKH.js +1 -1
  66. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  67. package/dist/esm/src/transaction/MerklePath.js +3 -3
  68. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  69. package/dist/esm/src/transaction/Transaction.js +2 -2
  70. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  71. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  72. package/dist/types/src/compat/ECIES.d.ts +36 -36
  73. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  74. package/dist/types/src/compat/HD.d.ts +65 -65
  75. package/dist/types/src/compat/HD.d.ts.map +1 -1
  76. package/dist/types/src/compat/Mnemonic.d.ts +79 -79
  77. package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
  78. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  79. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  80. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  81. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  82. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  83. package/dist/types/src/primitives/Signature.d.ts +62 -0
  84. package/dist/types/src/primitives/Signature.d.ts.map +1 -1
  85. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  86. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  87. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  88. package/dist/types/src/script/Spend.d.ts.map +1 -1
  89. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  90. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  91. package/docs/compat.md +4 -4
  92. package/docs/primitives.md +288 -79
  93. package/package.json +1 -1
  94. package/src/compat/BSM.ts +12 -12
  95. package/src/compat/ECIES.ts +417 -418
  96. package/src/compat/HD.ts +228 -228
  97. package/src/compat/Mnemonic.ts +173 -173
  98. package/src/compat/__tests/BSM.test.ts +13 -2
  99. package/src/compat/bip-39-wordlist-en.ts +2052 -2052
  100. package/src/primitives/AESGCM.ts +30 -30
  101. package/src/primitives/BigNumber.ts +0 -1
  102. package/src/primitives/DRBG.ts +5 -5
  103. package/src/primitives/ECDSA.ts +1 -1
  104. package/src/primitives/Hash.ts +278 -293
  105. package/src/primitives/PrivateKey.ts +18 -19
  106. package/src/primitives/PublicKey.ts +9 -10
  107. package/src/primitives/Random.ts +4 -4
  108. package/src/primitives/Signature.ts +158 -14
  109. package/src/primitives/SymmetricKey.ts +3 -3
  110. package/src/primitives/TransactionSignature.ts +9 -9
  111. package/src/primitives/index.ts +1 -1
  112. package/src/primitives/utils.ts +60 -64
  113. package/src/script/Spend.ts +12 -12
  114. package/src/script/index.ts +1 -1
  115. package/src/script/templates/P2PKH.ts +1 -1
  116. package/src/transaction/MerklePath.ts +3 -3
  117. package/src/transaction/Transaction.ts +23 -23
@@ -845,8 +845,9 @@ export class SHA512 extends BaseHash {
845
845
  const W = this.W;
846
846
  // 32 x 32bit words
847
847
  let i;
848
- for (i = 0; i < 32; i++)
848
+ for (i = 0; i < 32; i++) {
849
849
  W[i] = msg[start + i];
850
+ }
850
851
  for (; i < W.length; i += 2) {
851
852
  const c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2
852
853
  const c0_lo = g1_512_lo(W[i - 4], W[i - 3]);
@@ -934,26 +935,30 @@ export class SHA512 extends BaseHash {
934
935
  }
935
936
  function ch64_hi(xh, xl, yh, yl, zh, zl) {
936
937
  let r = (xh & yh) ^ ((~xh) & zh);
937
- if (r < 0)
938
+ if (r < 0) {
938
939
  r += 0x100000000;
940
+ }
939
941
  return r;
940
942
  }
941
943
  function ch64_lo(xh, xl, yh, yl, zh, zl) {
942
944
  let r = (xl & yl) ^ ((~xl) & zl);
943
- if (r < 0)
945
+ if (r < 0) {
944
946
  r += 0x100000000;
947
+ }
945
948
  return r;
946
949
  }
947
950
  function maj64_hi(xh, xl, yh, yl, zh, zl) {
948
951
  let r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
949
- if (r < 0)
952
+ if (r < 0) {
950
953
  r += 0x100000000;
954
+ }
951
955
  return r;
952
956
  }
953
957
  function maj64_lo(xh, xl, yh, yl, zh, zl) {
954
958
  let r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
955
- if (r < 0)
959
+ if (r < 0) {
956
960
  r += 0x100000000;
961
+ }
957
962
  return r;
958
963
  }
959
964
  function s0_512_hi(xh, xl) {
@@ -961,8 +966,9 @@ function s0_512_hi(xh, xl) {
961
966
  const c1_hi = rotr64_hi(xl, xh, 2); // 34
962
967
  const c2_hi = rotr64_hi(xl, xh, 7); // 39
963
968
  let r = c0_hi ^ c1_hi ^ c2_hi;
964
- if (r < 0)
969
+ if (r < 0) {
965
970
  r += 0x100000000;
971
+ }
966
972
  return r;
967
973
  }
968
974
  function s0_512_lo(xh, xl) {
@@ -970,8 +976,9 @@ function s0_512_lo(xh, xl) {
970
976
  const c1_lo = rotr64_lo(xl, xh, 2); // 34
971
977
  const c2_lo = rotr64_lo(xl, xh, 7); // 39
972
978
  let r = c0_lo ^ c1_lo ^ c2_lo;
973
- if (r < 0)
979
+ if (r < 0) {
974
980
  r += 0x100000000;
981
+ }
975
982
  return r;
976
983
  }
977
984
  function s1_512_hi(xh, xl) {
@@ -979,8 +986,9 @@ function s1_512_hi(xh, xl) {
979
986
  const c1_hi = rotr64_hi(xh, xl, 18);
980
987
  const c2_hi = rotr64_hi(xl, xh, 9); // 41
981
988
  let r = c0_hi ^ c1_hi ^ c2_hi;
982
- if (r < 0)
989
+ if (r < 0) {
983
990
  r += 0x100000000;
991
+ }
984
992
  return r;
985
993
  }
986
994
  function s1_512_lo(xh, xl) {
@@ -988,8 +996,9 @@ function s1_512_lo(xh, xl) {
988
996
  const c1_lo = rotr64_lo(xh, xl, 18);
989
997
  const c2_lo = rotr64_lo(xl, xh, 9); // 41
990
998
  let r = c0_lo ^ c1_lo ^ c2_lo;
991
- if (r < 0)
999
+ if (r < 0) {
992
1000
  r += 0x100000000;
1001
+ }
993
1002
  return r;
994
1003
  }
995
1004
  function g0_512_hi(xh, xl) {
@@ -997,8 +1006,9 @@ function g0_512_hi(xh, xl) {
997
1006
  const c1_hi = rotr64_hi(xh, xl, 8);
998
1007
  const c2_hi = shr64_hi(xh, xl, 7);
999
1008
  let r = c0_hi ^ c1_hi ^ c2_hi;
1000
- if (r < 0)
1009
+ if (r < 0) {
1001
1010
  r += 0x100000000;
1011
+ }
1002
1012
  return r;
1003
1013
  }
1004
1014
  function g0_512_lo(xh, xl) {
@@ -1006,8 +1016,9 @@ function g0_512_lo(xh, xl) {
1006
1016
  const c1_lo = rotr64_lo(xh, xl, 8);
1007
1017
  const c2_lo = shr64_lo(xh, xl, 7);
1008
1018
  let r = c0_lo ^ c1_lo ^ c2_lo;
1009
- if (r < 0)
1019
+ if (r < 0) {
1010
1020
  r += 0x100000000;
1021
+ }
1011
1022
  return r;
1012
1023
  }
1013
1024
  function g1_512_hi(xh, xl) {
@@ -1015,8 +1026,9 @@ function g1_512_hi(xh, xl) {
1015
1026
  const c1_hi = rotr64_hi(xl, xh, 29); // 61
1016
1027
  const c2_hi = shr64_hi(xh, xl, 6);
1017
1028
  let r = c0_hi ^ c1_hi ^ c2_hi;
1018
- if (r < 0)
1029
+ if (r < 0) {
1019
1030
  r += 0x100000000;
1031
+ }
1020
1032
  return r;
1021
1033
  }
1022
1034
  function g1_512_lo(xh, xl) {
@@ -1024,8 +1036,9 @@ function g1_512_lo(xh, xl) {
1024
1036
  const c1_lo = rotr64_lo(xl, xh, 29); // 61
1025
1037
  const c2_lo = shr64_lo(xh, xl, 6);
1026
1038
  let r = c0_lo ^ c1_lo ^ c2_lo;
1027
- if (r < 0)
1039
+ if (r < 0) {
1028
1040
  r += 0x100000000;
1041
+ }
1029
1042
  return r;
1030
1043
  }
1031
1044
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../../../src/primitives/Hash.ts"],"names":[],"mappings":"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EAAE,EAAE,EAAE;IACpD,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACpD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;IACpD,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;CACrD,CAAA;AAED,MAAM,EAAE,GAAG;IACT,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;IACpD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACpD,CAAC,EAAE,CAAC,EAAE,CA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AAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UA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"}
1
+ {"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../../../src/primitives/Hash.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,CACb,UAAmB,EACnB,UAAkB,uBAAuB,EACnC,EAAE;IACR,IAAI,CAAE,UAAsB,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;KACzB;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAe,QAAQ;IACrB,OAAO,CAAiB;IACxB,YAAY,CAAQ;IACpB,SAAS,CAAQ;IACjB,OAAO,CAAQ;IACf,MAAM,CAAkB;IACxB,OAAO,CAAQ;IACf,QAAQ,CAAQ;IAChB,SAAS,CAAQ;IACjB,YAAY,CAAQ;IAEpB,YACE,SAAiB,EAAE,OAAe,EAAE,YAAoB,EAAE,SAAiB;QAE3E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QAEnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;IACrC,CAAC;IAED,OAAO,CAAE,GAAa,EAAE,KAAa;QACnC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED,OAAO;QACL,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAE,GAAsB,EAAE,GAAoB;QAClD,+DAA+D;QAC/D,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACvB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAA;SACnB;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SACxC;QACD,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,CAAA;QAE/B,4BAA4B;QAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACvC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;YAElB,iCAAiC;YACjC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;YACnC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YACpD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;aAAE;YAEtD,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;aACrB;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM;QACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACxB,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;QAE7B,OAAO,IAAI,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;IAAA,CAAC;IAEF;;;;;;;;;OASG;IACH,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACxB,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;QAE7B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;IAC1B,CAAC;IAAA,CAAC;IAEF;;;;;;;OAOG;IACK,IAAI;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAA;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAA;QAC1B,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,CAAA;QAClD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;QACzC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;QACb,IAAI,CAAC,CAAA;QACL,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;SAAE;QAEtC,gBAAgB;QAChB,GAAG,KAAK,CAAC,CAAA;QACT,IAAI,CAAC,CAAA;QACL,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;YACzB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;aAAE;YAErD,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;YAC9B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;YAC9B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;YAC7B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;SACtB;aAAM;YACL,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAA;YACrB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;YAC7B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;YAC9B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;YAC9B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YACZ,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;YAEZ,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;gBAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;aAAE;SACtD;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAED,SAAS,eAAe,CAAE,GAAW,EAAE,CAAS;IAC9C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE;QAC3C,OAAO,KAAK,CAAA;KACb;IACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;QAChC,OAAO,KAAK,CAAA;KACb;IACD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,CAAA;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAE,GAAsB,EAAE,GAAoB;IACnE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC,KAAK,EAAE,CAAA;KAAE;IAC9C,IAAI,CAAE,GAA0B,EAAE;QAAE,OAAO,EAAE,CAAA;KAAE;IAC/C,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,mEAAmE;YACnE,gIAAgI;YAChI,qBAAqB;YACrB,gEAAgE;YAChE,IAAI,CAAC,GAAG,CAAC,CAAA;YACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;gBACzB,IAAI,CAAC,GAAG,GAAG,EAAE;oBACX,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;iBACb;qBAAM,IAAI,CAAC,GAAG,IAAI,EAAE;oBACnB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;oBACzB,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;iBAC1B;qBAAM,IAAI,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;oBAClC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;oBACnE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAA;oBAC1B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;oBACjC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;oBAChC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;iBAC1B;qBAAM;oBACL,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAA;oBAC1B,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;oBAChC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAA;iBAC1B;aACF;SACF;aAAM;YACL,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;YACrC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;gBACxB,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;aAChB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACtC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;aAC5C;SACF;KACF;SAAM;QACL,GAAG,GAAG,GAAe,CAAA;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;SAAE;KAC7D;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,KAAK,CAAE,CAAS;IACvB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC;QACpB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC;QACrB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACpB,OAAO,GAAG,KAAK,CAAC,CAAA;AAClB,CAAC;AAED,SAAS,OAAO,CAAE,GAAa,EAAE,MAAyB;IACxD,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACd,IAAI,MAAM,KAAK,QAAQ,EAAE;YAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;SAAE;QACzC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;KAC7B;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,KAAK,CAAE,IAAY;IAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,GAAG,GAAG,IAAI,CAAA;KAClB;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,IAAI,GAAG,IAAI,CAAA;KACnB;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,KAAK,GAAG,IAAI,CAAA;KACpB;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,MAAM,GAAG,IAAI,CAAA;KACrB;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,OAAO,GAAG,IAAI,CAAA;KACtB;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,QAAQ,GAAG,IAAI,CAAA;KACvB;SAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,SAAS,GAAG,IAAI,CAAA;KACxB;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAED,SAAS,MAAM,CAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM;IACtC,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK,CAAA;IACvB,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACrB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAW,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;QAC9D,IAAI,CAAC,CAAA;QACL,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;SACzE;aAAM;YACL,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;SACzE;QACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KACjB;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,OAAO,CAAE,GAAa,EAAE,MAAwB;IACvD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;QAClD,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,MAAM,KAAK,KAAK,EAAE;YACpB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;YACjB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;YAC7B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;SACtB;aAAM;YACL,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;YACrB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;YAC9B,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAA;YAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;SAClB;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,MAAM,CAAE,CAAS,EAAE,CAAS;IACnC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,MAAM,CAAE,CAAS,EAAE,CAAS;IACnC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,KAAK,CAAE,CAAS,EAAE,CAAS;IAClC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC;AAED,SAAS,OAAO,CAAE,CAAS,EAAE,CAAS,EAAE,CAAS;IAC/C,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,OAAO,CAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;IAC1D,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,SAAS,OAAO,CACd,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;IAErD,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,IAAI,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KAAE;IACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KAAE;IAC/C,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;KAAE;AACxC,CAAC;AAED,SAAS,IAAI,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,KAAK,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACrB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,GAAG,CAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC;AAED,SAAS,MAAM,CAAE,CAAC;IAChB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,MAAM,CAAE,CAAC;IAChB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACrD,CAAC;AAED,SAAS,MAAM,CAAE,CAAC;IAChB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,SAAS,MAAM,CAAE,CAAC;IAChB,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,CAAC,GAAG;IACR,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACpD,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACpD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;IACpD,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpD,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;CACrD,CAAA;AAED,MAAM,EAAE,GAAG;IACT,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;IACpD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACpD,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACpD,CAAC,EAAE,CAAC,EAA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9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;YAC9C,UAAU,EAA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"}
@@ -184,9 +184,10 @@ export default class PrivateKey extends BigNumber {
184
184
  * const testnetWif = privateKey.toWif([0xef]);
185
185
  */
186
186
  toWif(prefix = [0x80]) {
187
- if (!this.isValid())
187
+ if (!this.isValid()) {
188
188
  throw new Error('Value is out of field');
189
- return toBase58Check([...this.toArray("be", 32), 1], prefix);
189
+ }
190
+ return toBase58Check([...this.toArray('be', 32), 1], prefix);
190
191
  }
191
192
  /**
192
193
  * Base58Check encodes the hash of the public key associated with this private key with a prefix to indicate locking script type.
@@ -1 +1 @@
1
- {"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PrivateKey.js","sourceRoot":"","sources":["../../../../src/primitives/PrivateKey.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,8 @@ import Point from './Point.js';
2
2
  import Curve from './Curve.js';
3
3
  import { verify } from './ECDSA.js';
4
4
  import BigNumber from './BigNumber.js';
5
- import { sha256, sha256hmac } from './Hash.js';
5
+ import { sha256, sha256hmac, hash160 } from './Hash.js';
6
6
  import { toArray, toBase58Check, toHex } from './utils.js';
7
- import { hash160 } from './Hash.js';
8
7
  /**
9
8
  * The PublicKey class extends the Point class. It is used in public-key cryptography to derive shared secret, verify message signatures, and encode the public key in the DER format.
10
9
  * The class comes with static methods to generate PublicKey instances from private keys or from strings.
@@ -1 +1 @@
1
- {"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../../src/primitives/PublicKey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublicKey.js","sourceRoot":"","sources":["../../../../src/primitives/PublicKey.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  class Rand {
2
2
  _rand;
3
3
  constructor() {
4
- let noRand = () => {
4
+ const noRand = () => {
5
5
  throw new Error('No secure random number generator is available in this environment.');
6
6
  };
7
7
  if (typeof self === 'object') {
@@ -14,7 +14,7 @@ class Rand {
14
14
  return [...arr];
15
15
  };
16
16
  }
17
- else /*if (typeof window === 'object')*/ {
17
+ else /* if (typeof window === 'object') */ {
18
18
  this._rand = noRand;
19
19
  }
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Random.js","sourceRoot":"","sources":["../../../../src/primitives/Random.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI;IACR,KAAK,CAAU;IACf;QACE,IAAI,MAAM,GAAG,GAAG,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;QACxF,CAAC,CAAA;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,8BAA8B;YAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;gBAC9C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;oBACf,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC7B,8BAA8B;oBAC9B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;oBAChC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAA;gBACjB,CAAC,CAAA;aACF;iBAAM,mCAAmC,CAAC;gBACzC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;aACpB;SACF;aAAM;YACL,IAAI;gBACF,8BAA8B;gBAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;gBAChC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE;oBAC5C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;iBAC7C;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;aACpB;SACF;IACH,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;CACF;AAED,IAAI,GAAG,GAAgB,IAAI,CAAA;AAE3B;;;;;;;;;;GAUG;AACH,eAAe,CAAC,GAAW,EAAY,EAAE;IACvC,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;KACjB;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA"}
1
+ {"version":3,"file":"Random.js","sourceRoot":"","sources":["../../../../src/primitives/Random.ts"],"names":[],"mappings":"AAAA,MAAM,IAAI;IACR,KAAK,CAAU;IACf;QACE,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAA;QACxF,CAAC,CAAA;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,8BAA8B;YAC9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;gBAC9C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;oBACf,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAA;oBAC7B,8BAA8B;oBAC9B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;oBAChC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAA;gBACjB,CAAC,CAAA;aACF;iBAAM,qCAAqC,CAAC;gBAC3C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;aACpB;SACF;aAAM;YACL,IAAI;gBACF,8BAA8B;gBAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;gBAChC,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,UAAU,EAAE;oBAC5C,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;iBAC7C;aACF;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;aACpB;SACF;IACH,CAAC;IAED,QAAQ,CAAE,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;CACF;AAED,IAAI,GAAG,GAAgB,IAAI,CAAA;AAE3B;;;;;;;;;;GAUG;AACH,eAAe,CAAC,GAAW,EAAY,EAAE;IACvC,IAAI,GAAG,IAAI,IAAI,EAAE;QACf,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;KACjB;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA"}
@@ -1,7 +1,10 @@
1
1
  import BigNumber from './BigNumber.js';
2
+ import PublicKey from './PublicKey.js';
2
3
  import { verify } from './ECDSA.js';
3
4
  import { sha256 } from './Hash.js';
4
5
  import { toArray, toHex, toBase64 } from './utils.js';
6
+ import Point from './Point.js';
7
+ import Curve from './Curve.js';
5
8
  /**
6
9
  * Represents a digital signature.
7
10
  *
@@ -52,10 +55,6 @@ export default class Signature {
52
55
  }
53
56
  }
54
57
  data = toArray(data, enc);
55
- // Support compact signatures
56
- if (data.length === 65) {
57
- return new Signature(new BigNumber(data.slice(1, 33)), new BigNumber(data.slice(33, 65)));
58
- }
59
58
  const p = new Position();
60
59
  if (data[p.place++] !== 0x30) {
61
60
  throw new Error('Signature DER must start with 0x30');
@@ -96,6 +95,35 @@ export default class Signature {
96
95
  }
97
96
  return new Signature(new BigNumber(r), new BigNumber(s));
98
97
  }
98
+ /**
99
+ * Takes an array of numbers or a string and returns a new Signature instance.
100
+ * This method will throw an error if the Compact encoding is invalid.
101
+ * If a string is provided, it is assumed to represent a hexadecimal sequence.
102
+ * compactByte value 27-31 means compressed public key.
103
+ * 32-35 means uncompressed public key.
104
+ * The range represents the recovery param which can be 0,1,2,3,4.
105
+ * We could support recovery functions in future if there's demand.
106
+ *
107
+ * @static
108
+ * @method fromCompact
109
+ * @param data - The sequence to decode from Compact encoding.
110
+ * @param enc - The encoding of the data string.
111
+ * @returns The decoded data in the form of Signature instance.
112
+ *
113
+ * @example
114
+ * const signature = Signature.fromCompact('1b18c1f5502f8...', 'hex');
115
+ */
116
+ static fromCompact(data, enc) {
117
+ data = toArray(data, enc);
118
+ if (data.length !== 65) {
119
+ throw new Error('Invalid Compact Signature');
120
+ }
121
+ const compactByte = data[0];
122
+ if (compactByte < 27 || compactByte >= 35) {
123
+ throw new Error('Invalid Compact Byte');
124
+ }
125
+ return new Signature(new BigNumber(data.slice(1, 33)), new BigNumber(data.slice(33, 65)));
126
+ }
99
127
  /**
100
128
  * Creates an instance of the Signature class.
101
129
  *
@@ -219,5 +247,114 @@ export default class Signature {
219
247
  return res;
220
248
  }
221
249
  }
250
+ /**
251
+ * Converts an instance of Signature into Compact encoding.
252
+ *
253
+ * If the encoding parameter is set to 'hex', the function will return a hex string.
254
+ * If 'base64', it will return a base64 string.
255
+ * Otherwise, it will return an array of numbers.
256
+ *
257
+ * @method toCompact
258
+ * @param enc - The encoding to use for the output.
259
+ * @returns The current instance in DER encoding.
260
+ *
261
+ * @example
262
+ * const compact = signature.toCompact(3, true, 'base64');
263
+ */
264
+ toCompact(recovery, compressed, enc) {
265
+ if (recovery < 0 || recovery > 3)
266
+ throw new Error('Invalid recovery param');
267
+ if (typeof compressed !== 'boolean')
268
+ throw new Error('Invalid compressed param');
269
+ let compactByte = 27 + recovery;
270
+ if (compressed) {
271
+ compactByte += 4;
272
+ }
273
+ let arr = [compactByte];
274
+ arr = arr.concat(this.r.toArray());
275
+ arr = arr.concat(this.s.toArray());
276
+ if (enc === 'hex') {
277
+ return toHex(arr);
278
+ }
279
+ else if (enc === 'base64') {
280
+ return toBase64(arr);
281
+ }
282
+ else {
283
+ return arr;
284
+ }
285
+ }
286
+ /**
287
+ * Recovers the public key from a signature.
288
+ * This method will return the public key if it finds a valid public key.
289
+ * If it does not find a valid public key, it will throw an error.
290
+ * The recovery factor is a number between 0 and 3.
291
+ * @method RecoverPublicKey
292
+ * @param recovery - The recovery factor.
293
+ * @param e - The message hash.
294
+ * @returns The public key associated with the signature.
295
+ *
296
+ * @example
297
+ * const publicKey = signature.RecoverPublicKey(0, msgHash);
298
+ */
299
+ RecoverPublicKey(recovery, e) {
300
+ const r = this.r;
301
+ const s = this.s;
302
+ // A set LSB signifies that the y-coordinate is odd
303
+ const isYOdd = !!(recovery & 1);
304
+ // The more significant bit specifies whether we should use the
305
+ // first or second candidate key.
306
+ const isSecondKey = recovery >> 1;
307
+ const curve = new Curve();
308
+ const n = curve.n;
309
+ const G = curve.g;
310
+ // 1.1 LEt x = r + jn
311
+ const x = isSecondKey ? r.add(n) : r;
312
+ const R = Point.fromX(x, isYOdd);
313
+ // 1.4 Check that nR is at infinity
314
+ const nR = R.mul(n);
315
+ if (!nR.isInfinity()) {
316
+ throw new Error('nR is not at infinity');
317
+ }
318
+ // Compute -e from e
319
+ const eNeg = e.neg().umod(n);
320
+ // 1.6.1 Compute Q = r^-1 (sR - eG)
321
+ // Q = r^-1 (sR + -eG)
322
+ const rInv = r.invm(n);
323
+ // const Q = R.multiplyTwo(s, G, eNeg).mul(rInv)
324
+ const Q = R.mul(s)
325
+ .add(G.mul(eNeg))
326
+ .mul(rInv);
327
+ const pubKey = new PublicKey(Q);
328
+ pubKey.validate();
329
+ return pubKey;
330
+ }
331
+ /**
332
+ * Calculates the recovery factor which will work for a particular public key and message hash.
333
+ * This method will return the recovery factor if it finds a valid recovery factor.
334
+ * If it does not find a valid recovery factor, it will throw an error.
335
+ * The recovery factor is a number between 0 and 3.
336
+ *
337
+ * @method CalculateRecoveryFactor
338
+ * @param msgHash - The message hash.
339
+ * @returns the recovery factor: number
340
+ * /
341
+ * @example
342
+ * const recovery = signature.CalculateRecoveryFactor(publicKey, msgHash);
343
+ */
344
+ CalculateRecoveryFactor(pubkey, msgHash) {
345
+ for (let recovery = 0; recovery < 4; recovery++) {
346
+ let Qprime;
347
+ try {
348
+ Qprime = this.RecoverPublicKey(recovery, msgHash);
349
+ }
350
+ catch (e) {
351
+ continue;
352
+ }
353
+ if (pubkey.eq(Qprime)) {
354
+ return recovery;
355
+ }
356
+ }
357
+ throw new Error('Unable to find valid recovery factor');
358
+ }
222
359
  }
223
360
  //# sourceMappingURL=Signature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Signature.js","sourceRoot":"","sources":["../../../../src/primitives/Signature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Signature.js","sourceRoot":"","sources":["../../../../src/primitives/Signature.ts"],"names":[],"mappings":"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"}