xpi-ts 0.2.13 → 0.2.15

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 (277) hide show
  1. package/dist/cjs/lib/bitcore/address.js +75 -74
  2. package/dist/cjs/lib/bitcore/block/block.js +124 -126
  3. package/dist/cjs/lib/bitcore/block/blockheader.js +142 -208
  4. package/dist/cjs/lib/bitcore/block/index.js +3 -1
  5. package/dist/cjs/lib/bitcore/block/merkleblock.js +301 -0
  6. package/dist/cjs/lib/bitcore/crypto/bn.js +18 -22
  7. package/dist/cjs/lib/bitcore/crypto/ecdsa.js +50 -49
  8. package/dist/cjs/lib/bitcore/crypto/hash.js +25 -22
  9. package/dist/cjs/lib/bitcore/crypto/musig2.js +86 -92
  10. package/dist/cjs/lib/bitcore/crypto/point.js +42 -35
  11. package/dist/cjs/lib/bitcore/crypto/random.js +3 -2
  12. package/dist/cjs/lib/bitcore/crypto/schnorr.js +46 -55
  13. package/dist/cjs/lib/bitcore/crypto/signature.js +67 -55
  14. package/dist/cjs/lib/bitcore/crypto/sigtype.js +1 -1
  15. package/dist/cjs/lib/bitcore/encoding/base58.js +5 -4
  16. package/dist/cjs/lib/bitcore/encoding/base58check.js +14 -57
  17. package/dist/cjs/lib/bitcore/encoding/bufferreader.js +17 -17
  18. package/dist/cjs/lib/bitcore/encoding/bufferwriter.js +22 -26
  19. package/dist/cjs/lib/bitcore/encoding/varint.js +12 -11
  20. package/dist/cjs/lib/bitcore/errors.js +1 -0
  21. package/dist/cjs/lib/bitcore/hdprivatekey.js +74 -66
  22. package/dist/cjs/lib/bitcore/hdpublickey.js +96 -116
  23. package/dist/cjs/lib/bitcore/index.js +165 -172
  24. package/dist/cjs/lib/bitcore/message.js +36 -35
  25. package/dist/cjs/lib/bitcore/mnemonic/mnemonic.js +4 -3
  26. package/dist/cjs/lib/bitcore/mnemonic/pbkdf2.js +6 -5
  27. package/dist/cjs/lib/bitcore/mnemonic/words/french.js +2053 -0
  28. package/dist/cjs/lib/bitcore/mnemonic/words/index.js +2 -0
  29. package/dist/cjs/lib/bitcore/musig2/session.js +26 -25
  30. package/dist/cjs/lib/bitcore/musig2/signer.js +17 -16
  31. package/dist/cjs/lib/bitcore/networks.js +4 -3
  32. package/dist/cjs/lib/bitcore/opcode.js +11 -7
  33. package/dist/cjs/lib/bitcore/privatekey.js +42 -42
  34. package/dist/cjs/lib/bitcore/publickey.js +61 -57
  35. package/dist/cjs/lib/bitcore/script/interpreter/condition-stack.js +41 -0
  36. package/dist/cjs/lib/bitcore/script/interpreter/index.js +25 -0
  37. package/dist/cjs/lib/bitcore/script/interpreter/interpreter.js +1362 -0
  38. package/dist/cjs/lib/bitcore/script/interpreter/script-num.js +200 -0
  39. package/dist/cjs/lib/bitcore/script/interpreter/types.js +96 -0
  40. package/dist/cjs/lib/bitcore/{taproot.js → script/taproot.js} +107 -95
  41. package/dist/cjs/lib/bitcore/script.js +163 -104
  42. package/dist/cjs/lib/bitcore/taproot/musig2.js +51 -42
  43. package/dist/cjs/lib/bitcore/transaction/index.js +21 -21
  44. package/dist/cjs/lib/bitcore/transaction/input/multisig.js +10 -0
  45. package/dist/cjs/lib/bitcore/transaction/input/multisigscripthash.js +10 -0
  46. package/dist/cjs/lib/bitcore/transaction/input/publickey.js +10 -0
  47. package/dist/cjs/lib/bitcore/transaction/input/publickeyhash.js +10 -0
  48. package/dist/cjs/lib/bitcore/transaction/input/taproot.js +20 -0
  49. package/dist/cjs/lib/bitcore/transaction/input.js +145 -166
  50. package/dist/cjs/lib/bitcore/transaction/outpoint.js +89 -0
  51. package/dist/cjs/lib/bitcore/transaction/output.js +13 -8
  52. package/dist/cjs/lib/bitcore/transaction/sighash.js +96 -96
  53. package/dist/cjs/lib/bitcore/transaction/signature.js +39 -40
  54. package/dist/cjs/lib/bitcore/transaction/transaction.js +130 -118
  55. package/dist/cjs/lib/bitcore/transaction/unspentoutput.js +27 -23
  56. package/dist/cjs/lib/bitcore/util/bits.js +33 -0
  57. package/dist/cjs/lib/bitcore/util/buffer.js +29 -18
  58. package/dist/cjs/lib/bitcore/util/js.js +0 -3
  59. package/dist/cjs/lib/bitcore/util/merkle.js +53 -0
  60. package/dist/cjs/lib/bitcore/util/preconditions.js +8 -7
  61. package/dist/cjs/lib/bitcore/xaddress.js +27 -23
  62. package/dist/cjs/lib/{bitcore/taproot/nft.js → nft.js} +98 -29
  63. package/dist/cjs/lib/rank/index.js +28 -27
  64. package/dist/cjs/lib/rank/script.js +2 -1
  65. package/dist/cjs/lib/rank/transaction.js +2 -1
  66. package/dist/cjs/utils/string.js +6 -5
  67. package/dist/esm/lib/bitcore/address.js +42 -41
  68. package/dist/esm/lib/bitcore/block/block.js +126 -128
  69. package/dist/esm/lib/bitcore/block/blockheader.js +141 -207
  70. package/dist/esm/lib/bitcore/block/index.js +1 -0
  71. package/dist/esm/lib/bitcore/block/merkleblock.js +295 -0
  72. package/dist/esm/lib/bitcore/crypto/bn.js +18 -22
  73. package/dist/esm/lib/bitcore/crypto/ecdsa.js +25 -24
  74. package/dist/esm/lib/bitcore/crypto/hash.js +25 -22
  75. package/dist/esm/lib/bitcore/crypto/musig2.js +60 -66
  76. package/dist/esm/lib/bitcore/crypto/point.js +22 -15
  77. package/dist/esm/lib/bitcore/crypto/random.js +3 -2
  78. package/dist/esm/lib/bitcore/crypto/schnorr.js +35 -44
  79. package/dist/esm/lib/bitcore/crypto/signature.js +61 -49
  80. package/dist/esm/lib/bitcore/crypto/sigtype.js +1 -1
  81. package/dist/esm/lib/bitcore/encoding/base58.js +5 -4
  82. package/dist/esm/lib/bitcore/encoding/base58check.js +11 -57
  83. package/dist/esm/lib/bitcore/encoding/bufferreader.js +7 -7
  84. package/dist/esm/lib/bitcore/encoding/bufferwriter.js +18 -21
  85. package/dist/esm/lib/bitcore/encoding/varint.js +7 -6
  86. package/dist/esm/lib/bitcore/errors.js +1 -0
  87. package/dist/esm/lib/bitcore/hdprivatekey.js +47 -39
  88. package/dist/esm/lib/bitcore/hdpublickey.js +77 -97
  89. package/dist/esm/lib/bitcore/index.js +42 -45
  90. package/dist/esm/lib/bitcore/message.js +16 -15
  91. package/dist/esm/lib/bitcore/mnemonic/mnemonic.js +4 -3
  92. package/dist/esm/lib/bitcore/mnemonic/pbkdf2.js +5 -4
  93. package/dist/esm/lib/bitcore/mnemonic/words/french.js +2050 -0
  94. package/dist/esm/lib/bitcore/mnemonic/words/index.js +2 -0
  95. package/dist/esm/lib/bitcore/musig2/session.js +17 -16
  96. package/dist/esm/lib/bitcore/musig2/signer.js +19 -18
  97. package/dist/esm/lib/bitcore/networks.js +4 -3
  98. package/dist/esm/lib/bitcore/opcode.js +9 -5
  99. package/dist/esm/lib/bitcore/privatekey.js +25 -25
  100. package/dist/esm/lib/bitcore/publickey.js +46 -42
  101. package/dist/esm/lib/bitcore/script/interpreter/condition-stack.js +37 -0
  102. package/dist/esm/lib/bitcore/script/interpreter/index.js +4 -0
  103. package/dist/esm/lib/bitcore/script/interpreter/interpreter.js +1356 -0
  104. package/dist/esm/lib/bitcore/script/interpreter/script-num.js +195 -0
  105. package/dist/esm/lib/bitcore/script/interpreter/types.js +93 -0
  106. package/dist/esm/lib/bitcore/{taproot.js → script/taproot.js} +92 -81
  107. package/dist/esm/lib/bitcore/script.js +163 -102
  108. package/dist/esm/lib/bitcore/taproot/musig2.js +36 -27
  109. package/dist/esm/lib/bitcore/transaction/index.js +6 -6
  110. package/dist/esm/lib/bitcore/transaction/input/multisig.js +6 -0
  111. package/dist/esm/lib/bitcore/transaction/input/multisigscripthash.js +6 -0
  112. package/dist/esm/lib/bitcore/transaction/input/publickey.js +6 -0
  113. package/dist/esm/lib/bitcore/transaction/input/publickeyhash.js +6 -0
  114. package/dist/esm/lib/bitcore/transaction/input/taproot.js +16 -0
  115. package/dist/esm/lib/bitcore/transaction/input.js +55 -76
  116. package/dist/esm/lib/bitcore/transaction/outpoint.js +85 -0
  117. package/dist/esm/lib/bitcore/transaction/output.js +13 -8
  118. package/dist/esm/lib/bitcore/transaction/sighash.js +22 -22
  119. package/dist/esm/lib/bitcore/transaction/signature.js +16 -17
  120. package/dist/esm/lib/bitcore/transaction/transaction.js +58 -46
  121. package/dist/esm/lib/bitcore/transaction/unspentoutput.js +15 -11
  122. package/dist/esm/lib/bitcore/util/bits.js +27 -0
  123. package/dist/esm/lib/bitcore/util/buffer.js +20 -9
  124. package/dist/esm/lib/bitcore/util/js.js +0 -3
  125. package/dist/esm/lib/bitcore/util/merkle.js +47 -0
  126. package/dist/esm/lib/bitcore/util/preconditions.js +3 -2
  127. package/dist/esm/lib/bitcore/xaddress.js +16 -12
  128. package/dist/esm/lib/{bitcore/taproot/nft.js → nft.js} +97 -28
  129. package/dist/esm/lib/rank/index.js +15 -14
  130. package/dist/esm/lib/rank/script.js +1 -0
  131. package/dist/esm/lib/rank/transaction.js +1 -0
  132. package/dist/esm/utils/string.js +1 -0
  133. package/dist/types/lib/bitcore/address.d.ts +4 -3
  134. package/dist/types/lib/bitcore/address.d.ts.map +1 -1
  135. package/dist/types/lib/bitcore/block/block.d.ts +11 -19
  136. package/dist/types/lib/bitcore/block/block.d.ts.map +1 -1
  137. package/dist/types/lib/bitcore/block/blockheader.d.ts +30 -32
  138. package/dist/types/lib/bitcore/block/blockheader.d.ts.map +1 -1
  139. package/dist/types/lib/bitcore/block/index.d.ts +2 -0
  140. package/dist/types/lib/bitcore/block/index.d.ts.map +1 -1
  141. package/dist/types/lib/bitcore/block/merkleblock.d.ts +53 -0
  142. package/dist/types/lib/bitcore/block/merkleblock.d.ts.map +1 -0
  143. package/dist/types/lib/bitcore/crypto/bn.d.ts +2 -2
  144. package/dist/types/lib/bitcore/crypto/bn.d.ts.map +1 -1
  145. package/dist/types/lib/bitcore/crypto/ecdsa.d.ts +5 -4
  146. package/dist/types/lib/bitcore/crypto/ecdsa.d.ts.map +1 -1
  147. package/dist/types/lib/bitcore/crypto/hash.d.ts +3 -1
  148. package/dist/types/lib/bitcore/crypto/hash.d.ts.map +1 -1
  149. package/dist/types/lib/bitcore/crypto/musig2.d.ts +22 -30
  150. package/dist/types/lib/bitcore/crypto/musig2.d.ts.map +1 -1
  151. package/dist/types/lib/bitcore/crypto/point.d.ts +8 -3
  152. package/dist/types/lib/bitcore/crypto/point.d.ts.map +1 -1
  153. package/dist/types/lib/bitcore/crypto/random.d.ts +1 -0
  154. package/dist/types/lib/bitcore/crypto/random.d.ts.map +1 -1
  155. package/dist/types/lib/bitcore/crypto/schnorr.d.ts +5 -4
  156. package/dist/types/lib/bitcore/crypto/schnorr.d.ts.map +1 -1
  157. package/dist/types/lib/bitcore/crypto/signature.d.ts +4 -1
  158. package/dist/types/lib/bitcore/crypto/signature.d.ts.map +1 -1
  159. package/dist/types/lib/bitcore/crypto/sigtype.d.ts +1 -0
  160. package/dist/types/lib/bitcore/crypto/sigtype.d.ts.map +1 -1
  161. package/dist/types/lib/bitcore/encoding/base58.d.ts +1 -0
  162. package/dist/types/lib/bitcore/encoding/base58.d.ts.map +1 -1
  163. package/dist/types/lib/bitcore/encoding/base58check.d.ts +1 -2
  164. package/dist/types/lib/bitcore/encoding/base58check.d.ts.map +1 -1
  165. package/dist/types/lib/bitcore/encoding/bufferreader.d.ts +2 -1
  166. package/dist/types/lib/bitcore/encoding/bufferreader.d.ts.map +1 -1
  167. package/dist/types/lib/bitcore/encoding/bufferwriter.d.ts +2 -2
  168. package/dist/types/lib/bitcore/encoding/bufferwriter.d.ts.map +1 -1
  169. package/dist/types/lib/bitcore/encoding/varint.d.ts +3 -2
  170. package/dist/types/lib/bitcore/encoding/varint.d.ts.map +1 -1
  171. package/dist/types/lib/bitcore/errors.d.ts +3 -0
  172. package/dist/types/lib/bitcore/errors.d.ts.map +1 -1
  173. package/dist/types/lib/bitcore/hdprivatekey.d.ts +5 -4
  174. package/dist/types/lib/bitcore/hdprivatekey.d.ts.map +1 -1
  175. package/dist/types/lib/bitcore/hdpublickey.d.ts +4 -3
  176. package/dist/types/lib/bitcore/hdpublickey.d.ts.map +1 -1
  177. package/dist/types/lib/bitcore/index.d.ts +55 -60
  178. package/dist/types/lib/bitcore/index.d.ts.map +1 -1
  179. package/dist/types/lib/bitcore/message.d.ts +7 -4
  180. package/dist/types/lib/bitcore/message.d.ts.map +1 -1
  181. package/dist/types/lib/bitcore/mnemonic/mnemonic.d.ts +2 -0
  182. package/dist/types/lib/bitcore/mnemonic/mnemonic.d.ts.map +1 -1
  183. package/dist/types/lib/bitcore/mnemonic/pbkdf2.d.ts +1 -0
  184. package/dist/types/lib/bitcore/mnemonic/pbkdf2.d.ts.map +1 -1
  185. package/dist/types/lib/bitcore/mnemonic/words/french.d.ts +2 -0
  186. package/dist/types/lib/bitcore/mnemonic/words/french.d.ts.map +1 -0
  187. package/dist/types/lib/bitcore/mnemonic/words/index.d.ts +1 -0
  188. package/dist/types/lib/bitcore/mnemonic/words/index.d.ts.map +1 -1
  189. package/dist/types/lib/bitcore/musig2/session.d.ts +8 -7
  190. package/dist/types/lib/bitcore/musig2/session.d.ts.map +1 -1
  191. package/dist/types/lib/bitcore/musig2/signer.d.ts +10 -9
  192. package/dist/types/lib/bitcore/musig2/signer.d.ts.map +1 -1
  193. package/dist/types/lib/bitcore/networks.d.ts +1 -0
  194. package/dist/types/lib/bitcore/networks.d.ts.map +1 -1
  195. package/dist/types/lib/bitcore/opcode.d.ts +5 -0
  196. package/dist/types/lib/bitcore/opcode.d.ts.map +1 -1
  197. package/dist/types/lib/bitcore/privatekey.d.ts +5 -4
  198. package/dist/types/lib/bitcore/privatekey.d.ts.map +1 -1
  199. package/dist/types/lib/bitcore/publickey.d.ts +13 -6
  200. package/dist/types/lib/bitcore/publickey.d.ts.map +1 -1
  201. package/dist/types/lib/bitcore/{chunk.d.ts → script/chunk.d.ts} +1 -0
  202. package/dist/types/lib/bitcore/script/chunk.d.ts.map +1 -0
  203. package/dist/types/lib/bitcore/script/interpreter/condition-stack.d.ts +11 -0
  204. package/dist/types/lib/bitcore/script/interpreter/condition-stack.d.ts.map +1 -0
  205. package/dist/types/lib/bitcore/script/interpreter/index.d.ts +5 -0
  206. package/dist/types/lib/bitcore/script/interpreter/index.d.ts.map +1 -0
  207. package/dist/types/lib/bitcore/script/interpreter/interpreter.d.ts +21 -0
  208. package/dist/types/lib/bitcore/script/interpreter/interpreter.d.ts.map +1 -0
  209. package/dist/types/lib/bitcore/script/interpreter/script-num.d.ts +35 -0
  210. package/dist/types/lib/bitcore/script/interpreter/script-num.d.ts.map +1 -0
  211. package/dist/types/lib/bitcore/script/interpreter/types.d.ts +101 -0
  212. package/dist/types/lib/bitcore/script/interpreter/types.d.ts.map +1 -0
  213. package/dist/types/lib/bitcore/{taproot.d.ts → script/taproot.d.ts} +20 -7
  214. package/dist/types/lib/bitcore/script/taproot.d.ts.map +1 -0
  215. package/dist/types/lib/bitcore/script.d.ts +12 -11
  216. package/dist/types/lib/bitcore/script.d.ts.map +1 -1
  217. package/dist/types/lib/bitcore/taproot/musig2.d.ts +17 -16
  218. package/dist/types/lib/bitcore/taproot/musig2.d.ts.map +1 -1
  219. package/dist/types/lib/bitcore/transaction/index.d.ts +11 -11
  220. package/dist/types/lib/bitcore/transaction/index.d.ts.map +1 -1
  221. package/dist/types/lib/bitcore/transaction/input/multisig.d.ts +5 -0
  222. package/dist/types/lib/bitcore/transaction/input/multisig.d.ts.map +1 -0
  223. package/dist/types/lib/bitcore/transaction/input/multisigscripthash.d.ts +5 -0
  224. package/dist/types/lib/bitcore/transaction/input/multisigscripthash.d.ts.map +1 -0
  225. package/dist/types/lib/bitcore/transaction/input/publickey.d.ts +5 -0
  226. package/dist/types/lib/bitcore/transaction/input/publickey.d.ts.map +1 -0
  227. package/dist/types/lib/bitcore/transaction/input/publickeyhash.d.ts +6 -0
  228. package/dist/types/lib/bitcore/transaction/input/publickeyhash.d.ts.map +1 -0
  229. package/dist/types/lib/bitcore/transaction/input/taproot.d.ts +18 -0
  230. package/dist/types/lib/bitcore/transaction/input/taproot.d.ts.map +1 -0
  231. package/dist/types/lib/bitcore/transaction/input.d.ts +27 -35
  232. package/dist/types/lib/bitcore/transaction/input.d.ts.map +1 -1
  233. package/dist/types/lib/bitcore/transaction/outpoint.d.ts +32 -0
  234. package/dist/types/lib/bitcore/transaction/outpoint.d.ts.map +1 -0
  235. package/dist/types/lib/bitcore/transaction/output.d.ts +3 -1
  236. package/dist/types/lib/bitcore/transaction/output.d.ts.map +1 -1
  237. package/dist/types/lib/bitcore/transaction/sighash.d.ts +8 -7
  238. package/dist/types/lib/bitcore/transaction/sighash.d.ts.map +1 -1
  239. package/dist/types/lib/bitcore/transaction/signature.d.ts +3 -2
  240. package/dist/types/lib/bitcore/transaction/signature.d.ts.map +1 -1
  241. package/dist/types/lib/bitcore/transaction/transaction.d.ts +18 -15
  242. package/dist/types/lib/bitcore/transaction/transaction.d.ts.map +1 -1
  243. package/dist/types/lib/bitcore/transaction/unspentoutput.d.ts +9 -7
  244. package/dist/types/lib/bitcore/transaction/unspentoutput.d.ts.map +1 -1
  245. package/dist/types/lib/bitcore/unit.d.ts.map +1 -1
  246. package/dist/types/lib/bitcore/util/base32.d.ts.map +1 -1
  247. package/dist/types/lib/bitcore/util/bits.d.ts +5 -0
  248. package/dist/types/lib/bitcore/util/bits.d.ts.map +1 -0
  249. package/dist/types/lib/bitcore/util/buffer.d.ts +10 -2
  250. package/dist/types/lib/bitcore/util/buffer.d.ts.map +1 -1
  251. package/dist/types/lib/bitcore/util/js.d.ts +0 -1
  252. package/dist/types/lib/bitcore/util/js.d.ts.map +1 -1
  253. package/dist/types/lib/bitcore/util/merkle.d.ts +6 -0
  254. package/dist/types/lib/bitcore/util/merkle.d.ts.map +1 -0
  255. package/dist/types/lib/bitcore/util/preconditions.d.ts.map +1 -1
  256. package/dist/types/lib/bitcore/xaddress.d.ts +1 -0
  257. package/dist/types/lib/bitcore/xaddress.d.ts.map +1 -1
  258. package/dist/types/lib/{bitcore/taproot/nft.d.ts → nft.d.ts} +26 -12
  259. package/dist/types/lib/nft.d.ts.map +1 -0
  260. package/dist/types/lib/rank/index.d.ts +1 -0
  261. package/dist/types/lib/rank/index.d.ts.map +1 -1
  262. package/dist/types/lib/rank/script.d.ts +1 -0
  263. package/dist/types/lib/rank/script.d.ts.map +1 -1
  264. package/dist/types/lib/rank/transaction.d.ts +1 -0
  265. package/dist/types/lib/rank/transaction.d.ts.map +1 -1
  266. package/dist/types/utils/string.d.ts +1 -0
  267. package/dist/types/utils/string.d.ts.map +1 -1
  268. package/package.json +3 -2
  269. package/dist/cjs/lib/bitcore/script/interpreter.js +0 -1757
  270. package/dist/esm/lib/bitcore/script/interpreter.js +0 -1753
  271. package/dist/types/lib/bitcore/chunk.d.ts.map +0 -1
  272. package/dist/types/lib/bitcore/script/interpreter.d.ts +0 -101
  273. package/dist/types/lib/bitcore/script/interpreter.d.ts.map +0 -1
  274. package/dist/types/lib/bitcore/taproot/nft.d.ts.map +0 -1
  275. package/dist/types/lib/bitcore/taproot.d.ts.map +0 -1
  276. /package/dist/cjs/lib/bitcore/{chunk.js → script/chunk.js} +0 -0
  277. /package/dist/esm/lib/bitcore/{chunk.js → script/chunk.js} +0 -0
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HDPublicKey = void 0;
4
- const bn_js_1 = require("./crypto/bn.js");
5
- const publickey_js_1 = require("./publickey.js");
6
- const hdprivatekey_js_1 = require("./hdprivatekey.js");
7
- const networks_js_1 = require("./networks.js");
8
- const hash_js_1 = require("./crypto/hash.js");
9
- const base58check_js_1 = require("./encoding/base58check.js");
10
- const js_js_1 = require("./util/js.js");
11
- const preconditions_js_1 = require("./util/preconditions.js");
12
- const point_js_1 = require("./crypto/point.js");
4
+ const bn_1 = require("./crypto/bn");
5
+ const publickey_1 = require("./publickey");
6
+ const hdprivatekey_1 = require("./hdprivatekey");
7
+ const networks_1 = require("./networks");
8
+ const hash_1 = require("./crypto/hash");
9
+ const base58check_1 = require("./encoding/base58check");
10
+ const util_1 = require("./util");
11
+ const preconditions_1 = require("./util/preconditions");
12
+ const point_1 = require("./crypto/point");
13
13
  class HDPublicKey {
14
14
  xpubkey;
15
15
  network;
@@ -52,37 +52,15 @@ class HDPublicKey {
52
52
  if (!(this instanceof HDPublicKey)) {
53
53
  return new HDPublicKey(data);
54
54
  }
55
- if (data) {
56
- if (typeof data === 'string' || Buffer.isBuffer(data)) {
57
- const error = HDPublicKey.getSerializedError(data);
58
- if (!error) {
59
- return this._buildFromSerialized(data);
60
- }
61
- else if (Buffer.isBuffer(data) &&
62
- !HDPublicKey.getSerializedError(data.toString())) {
63
- return this._buildFromSerialized(data.toString());
64
- }
65
- else {
66
- throw error;
67
- }
68
- }
69
- else {
70
- if (typeof data === 'object' && data !== null) {
71
- if (data instanceof hdprivatekey_js_1.HDPrivateKey) {
72
- return this._buildFromPrivate(data);
73
- }
74
- else {
75
- return this._buildFromObject(data);
76
- }
77
- }
78
- else {
79
- throw new Error('Unrecognized argument');
80
- }
81
- }
55
+ preconditions_1.Preconditions.checkArgument(data !== undefined && data !== null, 'Must supply an argument to create a HDPublicKey');
56
+ if (data instanceof hdprivatekey_1.HDPrivateKey) {
57
+ return this._buildFromPrivate(data);
82
58
  }
83
- else {
84
- throw new Error('Must supply an argument to create a HDPublicKey');
59
+ if (typeof data === 'string' || util_1.BufferUtil.isBuffer(data)) {
60
+ return this._buildFromSerialized(data);
85
61
  }
62
+ const info = this._classifyArguments(data);
63
+ return this._buildFromObject(info);
86
64
  }
87
65
  static isValidPath(arg) {
88
66
  if (typeof arg === 'string') {
@@ -98,22 +76,22 @@ class HDPublicKey {
98
76
  return HDPublicKey.getSerializedError(data, network) === null;
99
77
  }
100
78
  static getSerializedError(data, network) {
101
- if (!(typeof data === 'string' || Buffer.isBuffer(data))) {
79
+ if (!(typeof data === 'string' || util_1.BufferUtil.isBuffer(data))) {
102
80
  return new Error('expected buffer or string');
103
81
  }
104
- if (typeof data === 'string' && !js_js_1.JSUtil.isHexa(data)) {
82
+ if (typeof data === 'string' && !util_1.JSUtil.isHexa(data)) {
105
83
  try {
106
- base58check_js_1.Base58Check.decode(data);
84
+ base58check_1.Base58Check.decode(data);
107
85
  }
108
86
  catch (e) {
109
87
  return new Error('Invalid base58 checksum');
110
88
  }
111
89
  }
112
- if (Buffer.isBuffer(data) && data.length !== HDPublicKey.DataSize) {
90
+ if (util_1.BufferUtil.isBuffer(data) && data.length !== HDPublicKey.DataSize) {
113
91
  return new Error('Invalid length');
114
92
  }
115
93
  if (typeof data === 'string') {
116
- const decoded = base58check_js_1.Base58Check.decode(data);
94
+ const decoded = base58check_1.Base58Check.decode(data);
117
95
  if (decoded.length !== HDPublicKey.DataSize) {
118
96
  return new Error('Invalid length');
119
97
  }
@@ -127,24 +105,24 @@ class HDPublicKey {
127
105
  return null;
128
106
  }
129
107
  static _validateNetwork(data, networkArg) {
130
- const network = (0, networks_js_1.get)(networkArg);
108
+ const network = (0, networks_1.get)(networkArg);
131
109
  if (!network) {
132
110
  return new Error('Invalid network argument');
133
111
  }
134
- const version = Buffer.isBuffer(data)
135
- ? data.subarray(HDPublicKey.VersionStart, HDPublicKey.VersionEnd)
136
- : Buffer.from(base58check_js_1.Base58Check.decode(data).subarray(HDPublicKey.VersionStart, HDPublicKey.VersionEnd));
112
+ const version = util_1.BufferUtil.isBuffer(data)
113
+ ? data.slice(HDPublicKey.VersionStart, HDPublicKey.VersionEnd)
114
+ : util_1.BufferUtil.from(base58check_1.Base58Check.decode(data).slice(HDPublicKey.VersionStart, HDPublicKey.VersionEnd));
137
115
  if (version.readUInt32BE(0) !== network.xpubkey) {
138
116
  return new Error('Invalid network');
139
117
  }
140
118
  return null;
141
119
  }
142
120
  static fromString(arg) {
143
- preconditions_js_1.Preconditions.checkArgument(typeof arg === 'string', 'No valid string was provided');
121
+ preconditions_1.Preconditions.checkArgument(typeof arg === 'string', 'No valid string was provided');
144
122
  return new HDPublicKey(arg);
145
123
  }
146
124
  static fromObject(arg) {
147
- preconditions_js_1.Preconditions.checkArgument(typeof arg === 'object', 'No valid argument was provided');
125
+ preconditions_1.Preconditions.checkArgument(typeof arg === 'object', 'No valid argument was provided');
148
126
  return new HDPublicKey(arg);
149
127
  }
150
128
  static fromBuffer(arg) {
@@ -154,7 +132,7 @@ class HDPublicKey {
154
132
  if (typeof arg === 'string') {
155
133
  return HDPublicKey._transformString(arg);
156
134
  }
157
- else if (Buffer.isBuffer(arg)) {
135
+ else if (util_1.BufferUtil.isBuffer(arg)) {
158
136
  return HDPublicKey._transformBuffer(arg);
159
137
  }
160
138
  else if (typeof arg === 'object' && arg !== null) {
@@ -170,13 +148,13 @@ class HDPublicKey {
170
148
  }
171
149
  }
172
150
  static _transformString(str) {
173
- if (!js_js_1.JSUtil.isHexa(str)) {
151
+ if (!util_1.JSUtil.isHexa(str)) {
174
152
  return HDPublicKey._transformSerialized(str);
175
153
  }
176
- return HDPublicKey._transformBuffer(Buffer.from(str, 'hex'));
154
+ return HDPublicKey._transformBuffer(util_1.BufferUtil.from(str, 'hex'));
177
155
  }
178
156
  static _transformSerialized(str) {
179
- const buf = base58check_js_1.Base58Check.decode(str);
157
+ const buf = base58check_1.Base58Check.decode(str);
180
158
  return HDPublicKey._transformBuffer(buf);
181
159
  }
182
160
  static _transformBuffer(buf) {
@@ -184,40 +162,40 @@ class HDPublicKey {
184
162
  throw new Error('Invalid HDPublicKey buffer length');
185
163
  }
186
164
  const version = buf.readUInt32BE(0);
187
- const network = (0, networks_js_1.get)(version, 'xpubkey');
165
+ const network = (0, networks_1.get)(version, 'xpubkey');
188
166
  if (!network) {
189
167
  throw new Error('Invalid HDPublicKey network');
190
168
  }
191
169
  const depth = buf.readUInt8(4);
192
- const parentFingerPrint = buf.subarray(5, 9);
170
+ const parentFingerPrint = buf.slice(5, 9);
193
171
  const childIndex = buf.readUInt32BE(9);
194
- const chainCode = buf.subarray(13, 45);
195
- const publicKeyBuffer = buf.subarray(45, 78);
172
+ const chainCode = buf.slice(13, 45);
173
+ const publicKeyBuffer = buf.slice(45, 78);
196
174
  return {
197
175
  network,
198
176
  depth,
199
177
  parentFingerPrint,
200
178
  childIndex,
201
179
  chainCode,
202
- publicKey: publickey_js_1.PublicKey.fromBuffer(publicKeyBuffer),
180
+ publicKey: publickey_1.PublicKey.fromBuffer(publicKeyBuffer),
203
181
  };
204
182
  }
205
183
  static _transformObject(obj) {
206
- const network = (0, networks_js_1.get)(obj.network);
184
+ const network = (0, networks_1.get)(obj.network);
207
185
  if (!network) {
208
186
  throw new Error('Invalid network');
209
187
  }
210
188
  return {
211
189
  network,
212
190
  depth: obj.depth,
213
- parentFingerPrint: Buffer.from(obj.parentFingerPrint, 'hex'),
191
+ parentFingerPrint: util_1.BufferUtil.from(obj.parentFingerPrint, 'hex'),
214
192
  childIndex: obj.childIndex,
215
- chainCode: Buffer.from(obj.chainCode, 'hex'),
216
- publicKey: publickey_js_1.PublicKey.fromBuffer(Buffer.from(obj.publicKey, 'hex')),
193
+ chainCode: util_1.BufferUtil.from(obj.chainCode, 'hex'),
194
+ publicKey: publickey_1.PublicKey.fromBuffer(util_1.BufferUtil.from(obj.publicKey, 'hex')),
217
195
  };
218
196
  }
219
197
  _buildFromPrivate(arg) {
220
- const xpubkeyVersion = Buffer.alloc(4);
198
+ const xpubkeyVersion = util_1.BufferUtil.alloc(4);
221
199
  xpubkeyVersion.writeUInt32BE(arg.network.xpubkey, 0);
222
200
  const args = {
223
201
  version: xpubkeyVersion,
@@ -225,28 +203,14 @@ class HDPublicKey {
225
203
  parentFingerPrint: arg._buffers.parentFingerPrint,
226
204
  childIndex: arg._buffers.childIndex,
227
205
  chainCode: arg._buffers.chainCode,
228
- publicKey: point_js_1.Point.pointToCompressed(point_js_1.Point.getG().mul(new bn_js_1.BN(arg._buffers.privateKey))),
206
+ publicKey: point_1.Point.pointToCompressed(point_1.Point.getG().mul(bn_1.BN.fromBuffer(arg._buffers.privateKey))),
229
207
  checksum: undefined,
230
208
  };
231
209
  return this._buildFromBuffers(args);
232
210
  }
233
- _buildFromSerialized(arg) {
234
- const decoded = typeof arg === 'string' ? base58check_js_1.Base58Check.decode(arg) : arg;
235
- const buffers = {
236
- version: decoded.subarray(HDPublicKey.VersionStart, HDPublicKey.VersionEnd),
237
- depth: decoded.subarray(HDPublicKey.DepthStart, HDPublicKey.DepthEnd),
238
- parentFingerPrint: decoded.subarray(HDPublicKey.ParentFingerPrintStart, HDPublicKey.ParentFingerPrintEnd),
239
- childIndex: decoded.subarray(HDPublicKey.ChildIndexStart, HDPublicKey.ChildIndexEnd),
240
- chainCode: decoded.subarray(HDPublicKey.ChainCodeStart, HDPublicKey.ChainCodeEnd),
241
- publicKey: decoded.subarray(HDPublicKey.PublicKeyStart, HDPublicKey.PublicKeyEnd),
242
- checksum: decoded.subarray(HDPublicKey.ChecksumStart, HDPublicKey.ChecksumEnd),
243
- xpubkey: typeof arg === 'string' ? Buffer.from(arg) : arg,
244
- };
245
- return this._buildFromBuffers(buffers);
246
- }
247
211
  _buildFromBuffers(arg) {
248
212
  HDPublicKey._validateBufferArguments(arg);
249
- js_js_1.JSUtil.defineImmutable(this, {
213
+ util_1.JSUtil.defineImmutable(this, {
250
214
  _buffers: arg,
251
215
  });
252
216
  const sequence = [
@@ -257,8 +221,8 @@ class HDPublicKey {
257
221
  arg.chainCode,
258
222
  arg.publicKey,
259
223
  ];
260
- const concat = Buffer.concat(sequence);
261
- const checksum = base58check_js_1.Base58Check.checksum(concat);
224
+ const concat = util_1.BufferUtil.concat(sequence);
225
+ const checksum = base58check_1.Base58Check.checksum(concat);
262
226
  if (!arg.checksum || !arg.checksum.length) {
263
227
  arg.checksum = checksum;
264
228
  }
@@ -267,16 +231,16 @@ class HDPublicKey {
267
231
  throw new Error('Invalid base58 checksum');
268
232
  }
269
233
  }
270
- const network = (0, networks_js_1.get)(arg.version.readUInt32BE(0), 'xpubkey');
234
+ const network = (0, networks_1.get)(arg.version.readUInt32BE(0), 'xpubkey');
271
235
  if (!network) {
272
236
  throw new Error(`Invalid HDPublicKey version: 0x${arg.version.toString('hex')}`);
273
237
  }
274
- const xpubkey = base58check_js_1.Base58Check.encode(Buffer.concat(sequence));
275
- arg.xpubkey = Buffer.from(xpubkey);
276
- const publicKey = new publickey_js_1.PublicKey(arg.publicKey, { network });
238
+ const xpubkey = base58check_1.Base58Check.encode(util_1.BufferUtil.concat(sequence));
239
+ arg.xpubkey = util_1.BufferUtil.from(xpubkey);
240
+ const publicKey = new publickey_1.PublicKey(arg.publicKey, { network });
277
241
  const size = HDPublicKey.ParentFingerPrintSize;
278
- const fingerPrint = hash_js_1.Hash.sha256ripemd160(publicKey.toBuffer()).subarray(0, size);
279
- js_js_1.JSUtil.defineImmutable(this, {
242
+ const fingerPrint = hash_1.Hash.sha256ripemd160(publicKey.toBuffer()).slice(0, size);
243
+ util_1.JSUtil.defineImmutable(this, {
280
244
  xpubkey: xpubkey,
281
245
  network: network,
282
246
  depth: arg.depth.readUInt8(0),
@@ -291,7 +255,7 @@ class HDPublicKey {
291
255
  static _validateBufferArguments(arg) {
292
256
  const checkBuffer = (name, size) => {
293
257
  const buff = arg[name];
294
- if (!Buffer.isBuffer(buff)) {
258
+ if (!util_1.BufferUtil.isBuffer(buff)) {
295
259
  throw new Error(`${name} argument is not a buffer, it's ${typeof buff}`);
296
260
  }
297
261
  if (buff.length !== size) {
@@ -309,31 +273,33 @@ class HDPublicKey {
309
273
  }
310
274
  }
311
275
  _buildFromObject(arg) {
312
- const network = arg.network ? (0, networks_js_1.get)(arg.network) : undefined;
276
+ const network = arg.network ? (0, networks_1.get)(arg.network) : undefined;
313
277
  if (!network) {
314
278
  throw new Error('Network is required when building HDPublicKey from object');
315
279
  }
316
280
  const buffers = {
317
- version: Buffer.alloc(4),
318
- depth: typeof arg.depth === 'number'
319
- ? Buffer.from([arg.depth])
320
- : Buffer.alloc(1),
321
- parentFingerPrint: typeof arg.parentFingerPrint === 'number'
322
- ? Buffer.from([arg.parentFingerPrint])
323
- : Buffer.isBuffer(arg.parentFingerPrint)
324
- ? arg.parentFingerPrint
325
- : Buffer.alloc(4),
326
- childIndex: Buffer.alloc(4),
327
- chainCode: typeof arg.chainCode === 'string'
328
- ? Buffer.from(arg.chainCode, 'hex')
329
- : Buffer.isBuffer(arg.chainCode)
330
- ? arg.chainCode
331
- : Buffer.alloc(32),
332
- publicKey: typeof arg.publicKey === 'string'
333
- ? Buffer.from(arg.publicKey, 'hex')
334
- : Buffer.isBuffer(arg.publicKey)
335
- ? arg.publicKey
336
- : arg.publicKey?.toBuffer() || Buffer.alloc(33),
281
+ version: util_1.BufferUtil.alloc(4),
282
+ depth: util_1.BufferUtil.isBuffer(arg.depth)
283
+ ? arg.depth
284
+ : util_1.BufferUtil.from([arg.depth ?? 0]),
285
+ parentFingerPrint: util_1.BufferUtil.isBuffer(arg.parentFingerPrint)
286
+ ? arg.parentFingerPrint
287
+ : arg.parentFingerPrint
288
+ ? util_1.BufferUtil.from(arg.parentFingerPrint, 'hex')
289
+ : util_1.BufferUtil.alloc(4),
290
+ childIndex: util_1.BufferUtil.alloc(4),
291
+ chainCode: util_1.BufferUtil.isBuffer(arg.chainCode)
292
+ ? arg.chainCode
293
+ : arg.chainCode
294
+ ? util_1.BufferUtil.from(arg.chainCode, 'hex')
295
+ : util_1.BufferUtil.alloc(32),
296
+ publicKey: util_1.BufferUtil.isBuffer(arg.publicKey)
297
+ ? arg.publicKey
298
+ : arg.publicKey instanceof publickey_1.PublicKey
299
+ ? arg.publicKey.toBuffer()
300
+ : arg.publicKey
301
+ ? util_1.BufferUtil.from(arg.publicKey, 'hex')
302
+ : util_1.BufferUtil.alloc(33),
337
303
  checksum: undefined,
338
304
  };
339
305
  buffers.version.writeUInt32BE(network.xpubkey, 0);
@@ -342,6 +308,20 @@ class HDPublicKey {
342
308
  }
343
309
  return this._buildFromBuffers(buffers);
344
310
  }
311
+ _buildFromSerialized(arg) {
312
+ const decoded = typeof arg === 'string' ? base58check_1.Base58Check.decode(arg) : arg;
313
+ const buffers = {
314
+ version: decoded.slice(HDPublicKey.VersionStart, HDPublicKey.VersionEnd),
315
+ depth: decoded.slice(HDPublicKey.DepthStart, HDPublicKey.DepthEnd),
316
+ parentFingerPrint: decoded.slice(HDPublicKey.ParentFingerPrintStart, HDPublicKey.ParentFingerPrintEnd),
317
+ childIndex: decoded.slice(HDPublicKey.ChildIndexStart, HDPublicKey.ChildIndexEnd),
318
+ chainCode: decoded.slice(HDPublicKey.ChainCodeStart, HDPublicKey.ChainCodeEnd),
319
+ publicKey: decoded.slice(HDPublicKey.PublicKeyStart, HDPublicKey.PublicKeyEnd),
320
+ checksum: decoded.slice(HDPublicKey.ChecksumStart, HDPublicKey.ChecksumEnd),
321
+ xpubkey: typeof arg === 'string' ? util_1.BufferUtil.from(arg) : arg,
322
+ };
323
+ return this._buildFromBuffers(buffers);
324
+ }
345
325
  derive(arg, hardened) {
346
326
  return this.deriveChild(arg, hardened);
347
327
  }
@@ -363,15 +343,15 @@ class HDPublicKey {
363
343
  if (index < 0) {
364
344
  throw new Error('Invalid path');
365
345
  }
366
- const indexBuffer = Buffer.alloc(4);
346
+ const indexBuffer = util_1.BufferUtil.alloc(4);
367
347
  indexBuffer.writeUInt32BE(index, 0);
368
- const data = Buffer.concat([this.publicKey.toBuffer(), indexBuffer]);
369
- const hash = hash_js_1.Hash.sha512hmac(data, this._buffers.chainCode);
370
- const leftPart = new bn_js_1.BN(hash.subarray(0, 32));
371
- const chainCode = hash.subarray(32, 64);
348
+ const data = util_1.BufferUtil.concat([this.publicKey.toBuffer(), indexBuffer]);
349
+ const hash = hash_1.Hash.sha512hmac(data, this._buffers.chainCode);
350
+ const leftPart = bn_1.BN.fromBuffer(hash.slice(0, 32));
351
+ const chainCode = hash.slice(32, 64);
372
352
  let publicKey;
373
353
  try {
374
- publicKey = publickey_js_1.PublicKey.fromPoint(point_js_1.Point.getG().mul(leftPart).add(this.publicKey.point));
354
+ publicKey = publickey_1.PublicKey.fromPoint(point_1.Point.getG().mul(leftPart).add(this.publicKey.point));
375
355
  }
376
356
  catch (e) {
377
357
  return this._deriveWithNumber(index + 1);
@@ -403,7 +383,7 @@ class HDPublicKey {
403
383
  return this.xpubkey.toString();
404
384
  }
405
385
  toBuffer() {
406
- return Buffer.from(this._buffers.xpubkey || Buffer.alloc(0));
386
+ return util_1.BufferUtil.from(this._buffers.xpubkey || util_1.BufferUtil.alloc(0));
407
387
  }
408
388
  toObject() {
409
389
  return {