@opcat-labs/opcat 1.0.1 → 1.0.3

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 (293) hide show
  1. package/.cjs2esm.json +18 -0
  2. package/.mocharc.yaml +1 -1
  3. package/CHANGELOG.md +12 -0
  4. package/README.md +6 -0
  5. package/{lib/address.js → cjs/address.cjs} +77 -72
  6. package/cjs/block/block.cjs +332 -0
  7. package/{lib/block/blockheader.js → cjs/block/blockheader.cjs} +8 -7
  8. package/cjs/block/index.cjs +2 -0
  9. package/{lib/block/merkleblock.js → cjs/block/merkleblock.cjs} +23 -15
  10. package/cjs/bn.cjs +3411 -0
  11. package/{lib/crypto/bn.js → cjs/crypto/bn.cjs} +3 -3
  12. package/{lib/crypto/ecdsa.js → cjs/crypto/ecdsa.cjs} +150 -14
  13. package/{lib/crypto/hash.node.js → cjs/crypto/hash.cjs} +13 -2
  14. package/cjs/crypto/index.cjs +16 -0
  15. package/{lib/crypto/point.js → cjs/crypto/point.cjs} +11 -4
  16. package/cjs/crypto/random.cjs +18 -0
  17. package/{lib/crypto/signature.js → cjs/crypto/signature.cjs} +158 -8
  18. package/{lib/encoding/base58.js → cjs/encoding/base58.cjs} +58 -2
  19. package/cjs/encoding/base58check.cjs +192 -0
  20. package/cjs/encoding/bufferreader.cjs +333 -0
  21. package/cjs/encoding/bufferwriter.cjs +244 -0
  22. package/{lib/encoding/decode-asm.js → cjs/encoding/decode-asm.cjs} +4 -4
  23. package/{lib/encoding/decode-hex.js → cjs/encoding/decode-hex.cjs} +1 -1
  24. package/cjs/encoding/index.cjs +14 -0
  25. package/cjs/encoding/varint.cjs +116 -0
  26. package/{lib/errors/index.js → cjs/errors/index.cjs} +9 -9
  27. package/{lib/errors/spec.js → cjs/errors/spec.cjs} +2 -2
  28. package/cjs/hash-cache.cjs +98 -0
  29. package/{lib/hdprivatekey.js → cjs/hdprivatekey.cjs} +232 -140
  30. package/{lib/hdpublickey.js → cjs/hdpublickey.cjs} +120 -93
  31. package/cjs/index.cjs +94 -0
  32. package/cjs/interpreter/index.cjs +2 -0
  33. package/cjs/interpreter/interpreter.cjs +1988 -0
  34. package/{lib/script/stack.js → cjs/interpreter/stack.cjs} +9 -2
  35. package/{lib/message/message.js → cjs/message/message.cjs} +62 -25
  36. package/cjs/mnemonic/index.cjs +3 -0
  37. package/{lib/mnemonic/mnemonic.js → cjs/mnemonic/mnemonic.cjs} +44 -13
  38. package/{lib/mnemonic/pbkdf2.node.js → cjs/mnemonic/pbkdf2.cjs} +9 -2
  39. package/cjs/mnemonic/words/index.cjs +66 -0
  40. package/cjs/network.cjs +13 -0
  41. package/cjs/networks.cjs +321 -0
  42. package/{lib/opcode.js → cjs/opcode.cjs} +69 -5
  43. package/cjs/privatekey.cjs +422 -0
  44. package/{lib/publickey.js → cjs/publickey.cjs} +14 -16
  45. package/cjs/script/index.cjs +2 -0
  46. package/{lib/script/script.js → cjs/script/script.cjs} +322 -67
  47. package/cjs/transaction/index.cjs +5 -0
  48. package/cjs/transaction/input/index.cjs +34 -0
  49. package/cjs/transaction/input/input.cjs +396 -0
  50. package/{lib/transaction/input/multisig.js → cjs/transaction/input/multisig.cjs} +112 -18
  51. package/{lib/transaction/input/publickey.js → cjs/transaction/input/publickey.cjs} +29 -19
  52. package/{lib/transaction/input/publickeyhash.js → cjs/transaction/input/publickeyhash.cjs} +25 -17
  53. package/{lib/transaction/output.js → cjs/transaction/output.cjs} +100 -15
  54. package/cjs/transaction/sighash.cjs +187 -0
  55. package/{lib/transaction/signature.js → cjs/transaction/signature.cjs} +30 -6
  56. package/cjs/transaction/transaction.cjs +2000 -0
  57. package/{lib/transaction/unspentoutput.js → cjs/transaction/unspentoutput.cjs} +5 -5
  58. package/cjs/util/derivation.cjs +53 -0
  59. package/cjs/util/index.cjs +11 -0
  60. package/cjs/util/js.cjs +95 -0
  61. package/{lib/util/preconditions.js → cjs/util/preconditions.cjs} +2 -2
  62. package/esm/address.js +483 -0
  63. package/{lib → esm}/block/block.js +82 -27
  64. package/esm/block/blockheader.js +296 -0
  65. package/esm/block/index.js +2 -0
  66. package/esm/block/merkleblock.js +331 -0
  67. package/esm/bn.js +3411 -0
  68. package/esm/crypto/bn.js +278 -0
  69. package/esm/crypto/ecdsa.js +475 -0
  70. package/{lib/crypto/hash.browser.js → esm/crypto/hash.js} +18 -7
  71. package/esm/crypto/index.js +16 -0
  72. package/esm/crypto/point.js +228 -0
  73. package/esm/crypto/random.js +18 -0
  74. package/esm/crypto/signature.js +475 -0
  75. package/esm/encoding/base58.js +167 -0
  76. package/esm/encoding/base58check.js +192 -0
  77. package/esm/encoding/bufferreader.js +333 -0
  78. package/esm/encoding/bufferwriter.js +243 -0
  79. package/esm/encoding/decode-asm.js +24 -0
  80. package/esm/encoding/decode-hex.js +32 -0
  81. package/esm/encoding/decode-script-chunks.js +43 -0
  82. package/esm/encoding/encode-hex.js +284 -0
  83. package/esm/encoding/index.js +14 -0
  84. package/esm/encoding/is-hex.js +7 -0
  85. package/esm/encoding/varint.js +116 -0
  86. package/esm/errors/index.js +54 -0
  87. package/esm/errors/spec.js +314 -0
  88. package/esm/hash-cache.js +98 -0
  89. package/esm/hdprivatekey.js +768 -0
  90. package/esm/hdpublickey.js +549 -0
  91. package/esm/index.js +66 -0
  92. package/esm/interpreter/index.js +2 -0
  93. package/{lib/script → esm/interpreter}/interpreter.js +219 -66
  94. package/esm/interpreter/stack.js +116 -0
  95. package/esm/message/message.js +228 -0
  96. package/esm/mnemonic/index.js +3 -0
  97. package/esm/mnemonic/mnemonic.js +332 -0
  98. package/{lib/mnemonic/pbkdf2.browser.js → esm/mnemonic/pbkdf2.js} +13 -6
  99. package/esm/mnemonic/words/chinese.js +2054 -0
  100. package/esm/mnemonic/words/english.js +2054 -0
  101. package/esm/mnemonic/words/french.js +2054 -0
  102. package/esm/mnemonic/words/index.js +66 -0
  103. package/esm/mnemonic/words/italian.js +2054 -0
  104. package/esm/mnemonic/words/japanese.js +2054 -0
  105. package/esm/mnemonic/words/spanish.js +2054 -0
  106. package/esm/network.js +13 -0
  107. package/{lib → esm}/networks.js +61 -120
  108. package/esm/opcode.js +319 -0
  109. package/{lib → esm}/privatekey.js +76 -28
  110. package/esm/publickey.js +384 -0
  111. package/esm/script/index.js +2 -0
  112. package/esm/script/script.js +1329 -0
  113. package/esm/script/write-i32-le.js +17 -0
  114. package/esm/script/write-push-data.js +35 -0
  115. package/esm/script/write-u16-le.js +12 -0
  116. package/esm/script/write-u32-le.js +16 -0
  117. package/esm/script/write-u64-le.js +24 -0
  118. package/esm/script/write-u8-le.js +8 -0
  119. package/esm/script/write-varint.js +46 -0
  120. package/esm/transaction/index.js +5 -0
  121. package/esm/transaction/input/index.js +33 -0
  122. package/{lib → esm}/transaction/input/input.js +132 -90
  123. package/esm/transaction/input/multisig.js +335 -0
  124. package/esm/transaction/input/publickey.js +108 -0
  125. package/esm/transaction/input/publickeyhash.js +124 -0
  126. package/esm/transaction/output.js +316 -0
  127. package/{lib → esm}/transaction/sighash.js +42 -22
  128. package/esm/transaction/signature.js +120 -0
  129. package/{lib → esm}/transaction/transaction.js +522 -163
  130. package/esm/transaction/unspentoutput.js +112 -0
  131. package/esm/util/_.js +47 -0
  132. package/esm/util/derivation.js +53 -0
  133. package/esm/util/index.js +12 -0
  134. package/esm/util/js.js +95 -0
  135. package/esm/util/preconditions.js +33 -0
  136. package/fixup.cjs +17 -0
  137. package/package.json +18 -4
  138. package/test/{address.js → address.cjs} +14 -43
  139. package/test/block/{block.js → block.cjs} +3 -5
  140. package/test/block/{blockheader.js → blockheader.cjs} +2 -2
  141. package/test/block/{merklebloack.js → merklebloack.cjs} +2 -2
  142. package/test/crypto/{ecdsa.js → ecdsa.cjs} +9 -9
  143. package/test/crypto/{hash.browser.js → hash.browser.cjs} +2 -1
  144. package/test/crypto/{signature.js → signature.cjs} +2 -2
  145. package/test/data/bitcoind/script_tests.json +5 -5
  146. package/test/{hashCache.js → hashCache.cjs} +2 -1
  147. package/test/{hdkeys.js → hdkeys.cjs} +4 -2
  148. package/test/{hdprivatekey.js → hdprivatekey.cjs} +7 -6
  149. package/test/{hdpublickey.js → hdpublickey.cjs} +2 -7
  150. package/test/mnemonic/{pbkdf2.test.js → pbkdf2.test.cjs} +2 -2
  151. package/test/{networks.js → networks.cjs} +12 -31
  152. package/test/{publickey.js → publickey.cjs} +2 -2
  153. package/test/script/{interpreter.js → interpreter.cjs} +5 -5
  154. package/test/script/{script.js → script.cjs} +8 -2
  155. package/test/transaction/{deserialize.js → deserialize.cjs} +2 -2
  156. package/test/transaction/input/{input.js → input.cjs} +1 -1
  157. package/test/transaction/input/{multisig.js → multisig.cjs} +2 -1
  158. package/test/transaction/input/{publickeyhash.js → publickeyhash.cjs} +1 -1
  159. package/test/transaction/{sighash.js → sighash.cjs} +1 -1
  160. package/test/transaction/{transaction.js → transaction.cjs} +2 -2
  161. package/tsconfig.json +13 -0
  162. package/types/address.d.cts +252 -0
  163. package/types/block/block.d.cts +139 -0
  164. package/types/block/blockheader.d.cts +125 -0
  165. package/types/block/index.d.cts +2 -0
  166. package/types/block/merkleblock.d.cts +95 -0
  167. package/types/bn.d.cts +202 -0
  168. package/types/crypto/bn.d.cts +2 -0
  169. package/types/crypto/ecdsa.d.cts +187 -0
  170. package/types/crypto/hash.d.cts +118 -0
  171. package/types/crypto/index.d.cts +7 -0
  172. package/types/crypto/point.d.cts +134 -0
  173. package/types/crypto/random.d.cts +13 -0
  174. package/types/crypto/signature.d.cts +160 -0
  175. package/types/encoding/base58.d.cts +106 -0
  176. package/types/encoding/base58check.d.cts +107 -0
  177. package/types/encoding/bufferreader.d.cts +164 -0
  178. package/types/encoding/bufferwriter.d.cts +126 -0
  179. package/types/encoding/decode-asm.d.cts +2 -0
  180. package/types/encoding/decode-hex.d.cts +2 -0
  181. package/types/encoding/decode-script-chunks.d.cts +14 -0
  182. package/types/encoding/encode-hex.d.cts +2 -0
  183. package/types/encoding/index.d.cts +6 -0
  184. package/types/encoding/is-hex.d.cts +2 -0
  185. package/types/encoding/varint.d.cts +66 -0
  186. package/types/errors/index.d.cts +4 -0
  187. package/types/errors/spec.d.cts +22 -0
  188. package/types/hash-cache.d.cts +65 -0
  189. package/types/hdprivatekey.d.cts +281 -0
  190. package/types/hdpublickey.d.cts +240 -0
  191. package/types/index.d.cts +26 -0
  192. package/types/interpreter/index.d.cts +2 -0
  193. package/types/interpreter/interpreter.d.cts +228 -0
  194. package/types/interpreter/stack.d.cts +35 -0
  195. package/types/message/message.d.cts +110 -0
  196. package/types/mnemonic/index.d.cts +2 -0
  197. package/types/mnemonic/mnemonic.d.cts +171 -0
  198. package/types/mnemonic/pbkdf2.d.cts +14 -0
  199. package/types/mnemonic/words/chinese.d.cts +2 -0
  200. package/types/mnemonic/words/english.d.cts +2 -0
  201. package/types/mnemonic/words/french.d.cts +2 -0
  202. package/types/mnemonic/words/index.d.cts +22 -0
  203. package/types/mnemonic/words/italian.d.cts +2 -0
  204. package/types/mnemonic/words/japanese.d.cts +2 -0
  205. package/types/mnemonic/words/spanish.d.cts +2 -0
  206. package/types/network.d.cts +11 -0
  207. package/types/networks.d.cts +76 -0
  208. package/types/opcode.d.cts +93 -0
  209. package/types/privatekey.d.cts +169 -0
  210. package/types/publickey.d.cts +202 -0
  211. package/types/script/index.d.cts +2 -0
  212. package/types/script/script.d.cts +449 -0
  213. package/types/script/write-i32-le.d.cts +2 -0
  214. package/types/script/write-push-data.d.cts +2 -0
  215. package/types/script/write-u16-le.d.cts +2 -0
  216. package/types/script/write-u32-le.d.cts +2 -0
  217. package/types/script/write-u64-le.d.cts +2 -0
  218. package/types/script/write-u8-le.d.cts +2 -0
  219. package/types/script/write-varint.d.cts +2 -0
  220. package/types/transaction/index.d.cts +2 -0
  221. package/types/transaction/input/index.d.cts +2 -0
  222. package/types/transaction/input/input.d.cts +178 -0
  223. package/types/transaction/input/multisig.d.cts +127 -0
  224. package/types/transaction/input/publickey.d.cts +44 -0
  225. package/types/transaction/input/publickeyhash.d.cts +45 -0
  226. package/types/transaction/output.d.cts +118 -0
  227. package/types/transaction/sighash.d.cts +61 -0
  228. package/types/transaction/signature.d.cts +43 -0
  229. package/types/transaction/transaction.d.cts +716 -0
  230. package/types/transaction/unspentoutput.d.cts +83 -0
  231. package/types/util/_.d.cts +26 -0
  232. package/types/util/derivation.d.cts +21 -0
  233. package/types/util/index.d.cts +5 -0
  234. package/types/util/js.d.cts +50 -0
  235. package/types/util/preconditions.d.cts +3 -0
  236. package/index.d.ts +0 -1541
  237. package/index.js +0 -74
  238. package/lib/block/index.js +0 -4
  239. package/lib/bn.js +0 -3423
  240. package/lib/crypto/hash.js +0 -2
  241. package/lib/crypto/random.browser.js +0 -28
  242. package/lib/crypto/random.js +0 -2
  243. package/lib/crypto/random.node.js +0 -11
  244. package/lib/encoding/base58check.js +0 -121
  245. package/lib/encoding/bufferreader.js +0 -212
  246. package/lib/encoding/bufferwriter.js +0 -140
  247. package/lib/encoding/varint.js +0 -75
  248. package/lib/hash-cache.js +0 -50
  249. package/lib/mnemonic/pbkdf2.js +0 -2
  250. package/lib/mnemonic/words/index.js +0 -8
  251. package/lib/script/index.js +0 -5
  252. package/lib/transaction/index.js +0 -7
  253. package/lib/transaction/input/index.js +0 -5
  254. package/lib/util/js.js +0 -90
  255. /package/{lib/encoding/decode-script-chunks.js → cjs/encoding/decode-script-chunks.cjs} +0 -0
  256. /package/{lib/encoding/encode-hex.js → cjs/encoding/encode-hex.cjs} +0 -0
  257. /package/{lib/encoding/is-hex.js → cjs/encoding/is-hex.cjs} +0 -0
  258. /package/{lib/mnemonic/words/chinese.js → cjs/mnemonic/words/chinese.cjs} +0 -0
  259. /package/{lib/mnemonic/words/english.js → cjs/mnemonic/words/english.cjs} +0 -0
  260. /package/{lib/mnemonic/words/french.js → cjs/mnemonic/words/french.cjs} +0 -0
  261. /package/{lib/mnemonic/words/italian.js → cjs/mnemonic/words/italian.cjs} +0 -0
  262. /package/{lib/mnemonic/words/japanese.js → cjs/mnemonic/words/japanese.cjs} +0 -0
  263. /package/{lib/mnemonic/words/spanish.js → cjs/mnemonic/words/spanish.cjs} +0 -0
  264. /package/{lib/script/write-i32-le.js → cjs/script/write-i32-le.cjs} +0 -0
  265. /package/{lib/script/write-push-data.js → cjs/script/write-push-data.cjs} +0 -0
  266. /package/{lib/script/write-u16-le.js → cjs/script/write-u16-le.cjs} +0 -0
  267. /package/{lib/script/write-u32-le.js → cjs/script/write-u32-le.cjs} +0 -0
  268. /package/{lib/script/write-u64-le.js → cjs/script/write-u64-le.cjs} +0 -0
  269. /package/{lib/script/write-u8-le.js → cjs/script/write-u8-le.cjs} +0 -0
  270. /package/{lib/script/write-varint.js → cjs/script/write-varint.cjs} +0 -0
  271. /package/{lib/util/_.js → cjs/util/_.cjs} +0 -0
  272. /package/test/crypto/{bn.js → bn.cjs} +0 -0
  273. /package/test/crypto/{hash.js → hash.cjs} +0 -0
  274. /package/test/crypto/{point.js → point.cjs} +0 -0
  275. /package/test/crypto/{random.js → random.cjs} +0 -0
  276. /package/test/data/{blk86756-testnet.js → blk86756-testnet.cjs} +0 -0
  277. /package/test/data/{merkleblocks.js → merkleblocks.cjs} +0 -0
  278. /package/test/encoding/{base58.js → base58.cjs} +0 -0
  279. /package/test/encoding/{base58check.js → base58check.cjs} +0 -0
  280. /package/test/encoding/{bufferreader.js → bufferreader.cjs} +0 -0
  281. /package/test/encoding/{bufferwriter.js → bufferwriter.cjs} +0 -0
  282. /package/test/encoding/{varint.js → varint.cjs} +0 -0
  283. /package/test/{index.js → index.cjs} +0 -0
  284. /package/test/message/{message.js → message.cjs} +0 -0
  285. /package/test/mnemonic/{mnemonic.js → mnemonic.cjs} +0 -0
  286. /package/test/{opcode.js → opcode.cjs} +0 -0
  287. /package/test/{privatekey.js → privatekey.cjs} +0 -0
  288. /package/test/transaction/input/{publickey.js → publickey.cjs} +0 -0
  289. /package/test/transaction/{output.js → output.cjs} +0 -0
  290. /package/test/transaction/{signature.js → signature.cjs} +0 -0
  291. /package/test/transaction/{unspentoutput.js → unspentoutput.cjs} +0 -0
  292. /package/test/util/{js.js → js.cjs} +0 -0
  293. /package/test/util/{preconditions.js → preconditions.cjs} +0 -0
@@ -0,0 +1,106 @@
1
+ export = Base58;
2
+ /**
3
+ * A Base58 object can encode/decoded Base 58, which is used primarily for
4
+ * string-formatted Bitcoin addresses and private keys. Addresses and private
5
+ * keys actually use an additional checksum, and so they actually use the
6
+ * Base58Check class.
7
+ *
8
+ * @param {object} obj Can be a string or buffer.
9
+ */
10
+ declare function Base58(obj: object): Base58;
11
+ declare class Base58 {
12
+ /**
13
+ * A Base58 object can encode/decoded Base 58, which is used primarily for
14
+ * string-formatted Bitcoin addresses and private keys. Addresses and private
15
+ * keys actually use an additional checksum, and so they actually use the
16
+ * Base58Check class.
17
+ *
18
+ * @param {object} obj Can be a string or buffer.
19
+ */
20
+ constructor(obj: object);
21
+ /**
22
+ * Sets the buffer property from the given object.
23
+ * @param {Object} obj - The object containing the buffer to set.
24
+ * @param {Buffer} [obj.buf] - The buffer to assign. If not provided, retains current buffer or sets to undefined.
25
+ * @returns {Base58} Returns the instance for chaining.
26
+ */
27
+ set(obj: {
28
+ buf?: Buffer;
29
+ }): Base58;
30
+ buf: any;
31
+ /**
32
+ * Sets the internal buffer to the provided buffer and returns the instance for chaining.
33
+ * @param {Buffer} buf - The buffer to set as the internal buffer.
34
+ * @returns {Base58} The instance for method chaining.
35
+ */
36
+ fromBuffer(buf: Buffer): Base58;
37
+ /**
38
+ * Converts a Base58 encoded string to a buffer and stores it in the instance.
39
+ * @param {string} str - The Base58 encoded string to decode.
40
+ * @returns {Base58} The current instance for chaining.
41
+ */
42
+ fromString(str: string): Base58;
43
+ /**
44
+ * Returns the internal buffer containing the Base58 encoded data.
45
+ * @returns {Buffer} The raw buffer representation of the Base58 data.
46
+ */
47
+ toBuffer(): Buffer;
48
+ /**
49
+ * Converts the Base58 encoded data to a hexadecimal string.
50
+ * @returns {string} Hexadecimal representation of the Base58 data.
51
+ */
52
+ toHex(): string;
53
+ /**
54
+ * Converts the Base58 instance to its string representation.
55
+ * @returns {string} The Base58 encoded string.
56
+ */
57
+ toString(): string;
58
+ }
59
+ declare namespace Base58 {
60
+ /**
61
+ * Checks if all characters in the input are valid Base58 characters.
62
+ * @param {string|Buffer} chars - The input characters to validate (can be a string or Buffer).
63
+ * @returns {boolean} True if all characters are valid Base58, false otherwise.
64
+ * @static
65
+ */
66
+ function validCharacters(chars: string | Buffer): boolean;
67
+ /**
68
+ * Encode a buffer to Bsae 58.
69
+ *
70
+ * @param {Buffer} buf Any buffer to be encoded.
71
+ * @returns {string} A Base 58 encoded string.
72
+ * @throws {Error} If the input is not a buffer.
73
+ * @static
74
+ */
75
+ function encode(buf: Buffer): string;
76
+ /**
77
+ * Decode a Base 58 string to a buffer.
78
+ *
79
+ * @param {string} str A Base 58 encoded string.
80
+ * @returns {Buffer} The decoded buffer.
81
+ * @throws {Error} If the input is not a string.
82
+ * @static
83
+ */
84
+ function decode(str: string): Buffer;
85
+ /**
86
+ * Creates a Base58 encoded string from a buffer.
87
+ * @param {Buffer} buf - The input buffer to encode.
88
+ * @returns {Base58} A new Base58 instance containing the encoded string.
89
+ * @static
90
+ */
91
+ function fromBuffer(buf: Buffer): Base58;
92
+ /**
93
+ * Converts a hex string to Base58 encoded string.
94
+ * @param {string} hex - The hex string to convert.
95
+ * @returns {string} The Base58 encoded string.
96
+ * @static
97
+ */
98
+ function fromHex(hex: string): string;
99
+ /**
100
+ * Creates a Base58 instance from a string input.
101
+ * @param {string} str - The string to convert to Base58.
102
+ * @returns {Base58} A new Base58 instance containing the encoded string.
103
+ * @static
104
+ */
105
+ function fromString(str: string): Base58;
106
+ }
@@ -0,0 +1,107 @@
1
+ export = Base58Check;
2
+ /**
3
+ * A Base58check object can encode/decodd Base 58, which is used primarily for
4
+ * string-formatted Bitcoin addresses and private keys. This is the same as
5
+ * Base58, except that it includes a checksum to prevent accidental mistypings.
6
+ * @constructor
7
+ * @param {Buffer|string} obj Can be a string or buffer.
8
+ */
9
+ declare function Base58Check(obj: Buffer | string): Base58Check;
10
+ declare class Base58Check {
11
+ /**
12
+ * A Base58check object can encode/decodd Base 58, which is used primarily for
13
+ * string-formatted Bitcoin addresses and private keys. This is the same as
14
+ * Base58, except that it includes a checksum to prevent accidental mistypings.
15
+ * @constructor
16
+ * @param {Buffer|string} obj Can be a string or buffer.
17
+ */
18
+ constructor(obj: Buffer | string);
19
+ /**
20
+ * Sets the buffer property from the given object.
21
+ * @param {Object} obj - The object containing the buffer to set.
22
+ * @returns {Base58Check} Returns the instance for chaining.
23
+ */
24
+ set(obj: any): Base58Check;
25
+ buf: any;
26
+ /**
27
+ * Sets the internal buffer to the provided Buffer object.
28
+ * @param {Buffer} buf - The buffer to set as the internal state.
29
+ * @returns {Base58Check} Returns the instance for chaining.
30
+ */
31
+ fromBuffer(buf: Buffer): Base58Check;
32
+ /**
33
+ * Converts a Base58Check encoded string to a buffer and stores it in the instance.
34
+ * @param {string} str - The Base58Check encoded string to decode.
35
+ * @returns {Base58Check} Returns the instance for chaining.
36
+ */
37
+ fromString(str: string): Base58Check;
38
+ /**
39
+ * Returns the internal buffer containing the Base58Check encoded data.
40
+ * @returns {Buffer} The raw buffer representation of the Base58Check data.
41
+ */
42
+ toBuffer(): Buffer;
43
+ /**
44
+ * Converts the Base58Check encoded data to a hexadecimal string.
45
+ * @returns {string} Hexadecimal representation of the data.
46
+ */
47
+ toHex(): string;
48
+ /**
49
+ * Converts the Base58Check instance to its string representation.
50
+ * @returns {string} The Base58Check encoded string.
51
+ */
52
+ toString(): string;
53
+ }
54
+ declare namespace Base58Check {
55
+ /**
56
+ * Validates the checksum of Base58Check encoded data.
57
+ * @param {Buffer|string} data - The data to validate, either as a Buffer or Base58 encoded string.
58
+ * @param {Buffer|string} [checksum] - Optional checksum to validate against, either as a Buffer or Base58 encoded string.
59
+ * If not provided, the last 4 bytes of the data will be used as checksum.
60
+ * @returns {boolean} True if the computed checksum matches the provided/embedded checksum.
61
+ * @static
62
+ */
63
+ function validChecksum(data: string | Buffer, checksum?: string | Buffer): boolean;
64
+ /**
65
+ * Decodes a Base58Check encoded string and verifies its checksum.
66
+ * @param {string} s - The Base58Check encoded string to decode.
67
+ * @returns {Buffer} The decoded data (excluding checksum).
68
+ * @throws {Error} If input is not a string, too short, or checksum mismatch.
69
+ * @static
70
+ */
71
+ function decode(s: string): Buffer;
72
+ /**
73
+ * Calculates the checksum for a given buffer using double SHA-256 hash.
74
+ * The checksum is the first 4 bytes of the double-hashed result.
75
+ * @param {Buffer} buffer - The input buffer to calculate checksum for
76
+ * @returns {Buffer} The 4-byte checksum
77
+ * @static
78
+ */
79
+ function checksum(buffer: Buffer): Buffer;
80
+ /**
81
+ * Encodes a buffer into Base58Check format.
82
+ * @param {Buffer} buf - The input buffer to encode
83
+ * @returns {string} The Base58Check encoded string
84
+ * @throws {Error} If input is not a Buffer
85
+ * @static
86
+ */
87
+ function encode(buf: Buffer): string;
88
+ /**
89
+ * Creates a Base58Check encoded string from a buffer.
90
+ * @param {Buffer} buf - The input buffer to encode.
91
+ * @returns {Base58Check} A new Base58Check instance containing the encoded data.
92
+ */
93
+ function fromBuffer(buf: Buffer): Base58Check;
94
+ /**
95
+ * Converts a hex string to a Base58Check encoded string.
96
+ * @param {string} hex - The hex string to convert.
97
+ * @returns {string} The Base58Check encoded string.
98
+ */
99
+ function fromHex(hex: string): string;
100
+ /**
101
+ * Converts a Base58Check-encoded string into a Base58 object.
102
+ * @param {string} str - The Base58Check-encoded string to decode.
103
+ * @returns {Base58} A new Base58 instance containing the decoded data.
104
+ */
105
+ function fromString(str: string): Base58;
106
+ }
107
+ import Base58 = require("./base58.cjs");
@@ -0,0 +1,164 @@
1
+ export = BufferReader;
2
+ /**
3
+ * Creates a BufferReader instance to read from various input types.
4
+ * @constructor
5
+ * @param {Buffer|string|Object} buf - Input source (Buffer, hex string, or object with buffer properties)
6
+ * @throws {TypeError} If input is invalid hex string or unrecognized type
7
+ * @example
8
+ * new BufferReader(Buffer.from('abc')) // from Buffer
9
+ * new BufferReader('616263') // from hex string
10
+ * new BufferReader({buf: buffer}) // from object
11
+ */
12
+ declare function BufferReader(buf: Buffer | string | any): BufferReader;
13
+ declare class BufferReader {
14
+ /**
15
+ * Creates a BufferReader instance to read from various input types.
16
+ * @constructor
17
+ * @param {Buffer|string|Object} buf - Input source (Buffer, hex string, or object with buffer properties)
18
+ * @throws {TypeError} If input is invalid hex string or unrecognized type
19
+ * @example
20
+ * new BufferReader(Buffer.from('abc')) // from Buffer
21
+ * new BufferReader('616263') // from hex string
22
+ * new BufferReader({buf: buffer}) // from object
23
+ */
24
+ constructor(buf: Buffer | string | any);
25
+ /**
26
+ * Updates the buffer and position from the given object.
27
+ * @param {Object} obj - The object containing buffer and position to set.
28
+ * @param {Buffer} [obj.buf] - The buffer to set (optional, keeps current if not provided).
29
+ * @param {number} [obj.pos] - The position to set (optional, keeps current if not provided).
30
+ * @returns {BufferReader} Returns the instance for chaining.
31
+ */
32
+ set(obj: {
33
+ buf?: Buffer;
34
+ pos?: number;
35
+ }): BufferReader;
36
+ buf: any;
37
+ pos: any;
38
+ /**
39
+ * Checks if the reader has reached the end of the buffer.
40
+ * @returns {boolean} True if the current position is at or beyond the buffer length, false otherwise.
41
+ */
42
+ eof(): boolean;
43
+ /**
44
+ * Alias for `eof` method - checks if the buffer reader has reached the end of data.
45
+ * @name BufferReader.prototype.finished
46
+ * @memberof BufferReader
47
+ * @instance
48
+ */
49
+ finished: any;
50
+ /**
51
+ * Reads a specified number of bytes from the buffer and advances the position.
52
+ * @param {number} len - The number of bytes to read.
53
+ * @returns {Buffer} The read bytes as a Buffer.
54
+ * @throws {Error} If the length is undefined.
55
+ */
56
+ read(len: number): Buffer;
57
+ /**
58
+ * Reads and returns all remaining bytes from the buffer, advancing the position to the end.
59
+ * @returns {Buffer} The remaining bytes in the buffer.
60
+ */
61
+ readAll(): Buffer;
62
+ /**
63
+ * Reads an unsigned 8-bit integer from the buffer at the current position.
64
+ * @returns {number} The unsigned 8-bit integer value read.
65
+ * @this {BufferReader}
66
+ */
67
+ readUInt8(this: BufferReader): number;
68
+ /**
69
+ * Reads an unsigned 16-bit integer from the buffer in big-endian format.
70
+ * Advances the position by 2 bytes.
71
+ * @returns {number} The read unsigned 16-bit integer value.
72
+ */
73
+ readUInt16BE(): number;
74
+ /**
75
+ * Reads a 16-bit unsigned integer from the buffer in little-endian format
76
+ * and advances the position by 2 bytes.
77
+ * @returns {number} The read unsigned 16-bit integer value
78
+ */
79
+ readUInt16LE(): number;
80
+ /**
81
+ * Reads an unsigned 32-bit integer from the buffer in big-endian format.
82
+ * Advances the position by 4 bytes.
83
+ * @returns {number} The read unsigned 32-bit integer value.
84
+ */
85
+ readUInt32BE(): number;
86
+ /**
87
+ * Reads an unsigned 32-bit integer from the buffer in little-endian format.
88
+ * Advances the position by 4 bytes.
89
+ * @returns {number} The read unsigned 32-bit integer value.
90
+ */
91
+ readUInt32LE(): number;
92
+ /**
93
+ * Reads a 32-bit signed integer from the buffer in little-endian format.
94
+ * Advances the position by 4 bytes.
95
+ * @returns {number} The read 32-bit signed integer.
96
+ */
97
+ readInt32LE(): number;
98
+ /**
99
+ * Reads an unsigned 64-bit integer in big-endian byte order from the buffer
100
+ * and returns it as a BN (BigNumber) object.
101
+ * Advances the position by 8 bytes.
102
+ * @returns {BN} The parsed 64-bit unsigned integer as a BigNumber
103
+ */
104
+ readUInt64BEBN(): BN;
105
+ /**
106
+ * Reads an unsigned 64-bit integer in little-endian byte order from the buffer and returns it as a BN (BigNumber).
107
+ * Optimizes for numbers <= 52 bits by using numeric constructor, falls back to buffer slice for larger numbers.
108
+ * Advances the buffer position by 8 bytes.
109
+ * @returns {BN} The parsed 64-bit unsigned integer as a BN instance.
110
+ */
111
+ readUInt64LEBN(): BN;
112
+ /**
113
+ * Reads a variable-length integer (varint) from the buffer and returns it as a number.
114
+ * Supports varints up to 53 bits (JavaScript's safe integer limit).
115
+ * For larger numbers, throws an error suggesting to use `readVarintBN` instead.
116
+ * @returns {number} The decoded integer value
117
+ * @throws {Error} If the number exceeds 53-bit precision
118
+ */
119
+ readVarintNum(): number;
120
+ /**
121
+ * Reads a variable-length buffer from the current position.
122
+ * First reads a varint to determine the length, then reads the buffer of that size.
123
+ * @returns {Buffer} The read buffer.
124
+ * @throws {Error} If the actual read length doesn't match the expected length.
125
+ */
126
+ readVarLengthBuffer(): Buffer;
127
+ /**
128
+ * Reads a variable-length integer (varint) from the buffer.
129
+ * The first byte determines the length of the varint:
130
+ * - 0xfd: 2-byte varint (plus 1 byte for the prefix)
131
+ * - 0xfe: 4-byte varint (plus 1 byte for the prefix)
132
+ * - 0xff: 8-byte varint (plus 1 byte for the prefix)
133
+ * - Otherwise: 1-byte varint (no prefix)
134
+ * @returns {Buffer} The varint bytes including the prefix (if any)
135
+ */
136
+ readVarintBuf(): Buffer;
137
+ /**
138
+ * Reads a variable-length integer (varint) from the buffer and returns it as a BN (BigNumber).
139
+ * Handles different varint sizes (1, 2, 4, or 8 bytes) based on the first byte's value:
140
+ * - 0xfd: reads next 2 bytes as uint16
141
+ * - 0xfe: reads next 4 bytes as uint32
142
+ * - 0xff: reads next 8 bytes as uint64
143
+ * - default: treats first byte as uint8
144
+ * @returns {BN} The parsed varint as a BigNumber
145
+ */
146
+ readVarintBN(): BN;
147
+ /**
148
+ * Reverses the order of bytes in the internal buffer and returns the instance.
149
+ * @returns {BufferReader} The modified BufferReader instance for chaining.
150
+ */
151
+ reverse(): BufferReader;
152
+ /**
153
+ * Reads a specified number of bytes from the buffer in reverse order.
154
+ * @param {number} [len] - The number of bytes to read. If omitted, reads the entire buffer.
155
+ * @returns {Buffer} The reversed buffer segment.
156
+ */
157
+ readReverse(len?: number): Buffer;
158
+ /**
159
+ * Gets the number of bytes remaining to be read in the buffer.
160
+ * @returns {number} The remaining bytes count.
161
+ */
162
+ remaining(): number;
163
+ }
164
+ import BN = require("../bn.cjs");
@@ -0,0 +1,126 @@
1
+ export = BufferWriter;
2
+ /**
3
+ * BufferWriter is a utility class for efficiently writing and concatenating buffers.
4
+ * It provides methods for writing various numeric types in both little-endian and big-endian formats,
5
+ * as well as variable-length integers (varints). The class maintains an internal array of buffers
6
+ * and can efficiently concatenate them into a single buffer when needed.
7
+ *
8
+ * @class
9
+ * @example
10
+ * const writer = new BufferWriter();
11
+ * writer.writeUInt32LE(1234).writeUInt16BE(5678);
12
+ * const result = writer.toBuffer();
13
+ */
14
+ declare class BufferWriter {
15
+ /**
16
+ * Converts a number to a varint-encoded Buffer.
17
+ * @param {number} n - The number to encode.
18
+ * @returns {Buffer} The varint-encoded Buffer.
19
+ */
20
+ static varintBufNum(n: number): Buffer;
21
+ /**
22
+ * Initializes a new BufferWriter instance.
23
+ * @param {Object} [obj] - Optional object to set initial buffer content. If not provided,
24
+ * creates an empty buffer writer with empty buffers array and length 0.
25
+ */
26
+ constructor(obj?: any);
27
+ buffers: any[];
28
+ length: number;
29
+ /**
30
+ * Appends a buffer to the internal buffers array and updates the total length.
31
+ * @param {Buffer} buffer - The buffer to append.
32
+ * @returns {this} Returns the instance for chaining.
33
+ */
34
+ write(buffer: Buffer): this;
35
+ /**
36
+ * Sets the internal buffers and calculates total length.
37
+ * @param {Object} obj - Object containing buffers (either `buffers` or `bufs` property)
38
+ * @returns {Object} Returns the instance for chaining
39
+ */
40
+ set(obj: any): any;
41
+ /**
42
+ * Returns the buffer by concatenating all written data.
43
+ * @returns {Buffer} The concatenated buffer.
44
+ */
45
+ concat(): Buffer;
46
+ /**
47
+ * Converts the internal buffer chunks into a single Buffer.
48
+ * If there's only one chunk, returns it directly. Otherwise,
49
+ * concatenates all chunks into a new Buffer.
50
+ * @returns {Buffer} The combined buffer
51
+ */
52
+ toBuffer(): Buffer;
53
+ /**
54
+ * Writes a buffer in reverse order to the current buffer.
55
+ * @param {Buffer} buf - The buffer to be written in reverse.
56
+ * @returns {this} Returns the instance for chaining.
57
+ */
58
+ writeReverse(buf: Buffer): this;
59
+ /**
60
+ * Writes a 16-bit unsigned integer in little-endian format.
61
+ * @param {number} n - The number to write.
62
+ * @returns {this} Returns the instance for chaining.
63
+ */
64
+ writeUInt16LE(n: number): this;
65
+ /**
66
+ * Writes a 16-bit unsigned integer in big-endian byte order.
67
+ * Internally converts the value to little-endian and reverses the bytes.
68
+ * @param {number} n - The number to write (0-65535).
69
+ * @returns {BufferWriter} Returns the BufferWriter instance for chaining.
70
+ */
71
+ writeUInt16BE(n: number): BufferWriter;
72
+ /**
73
+ * Writes a 32-bit unsigned integer in little-endian format.
74
+ * @param {number} n - The number to write.
75
+ * @returns {this} Returns the instance for chaining.
76
+ */
77
+ writeUInt32LE(n: number): this;
78
+ /**
79
+ * Writes a 32-bit unsigned integer in big-endian format.
80
+ * @param {number} n - The number to write.
81
+ * @returns {BufferWriter} Returns the BufferWriter instance for chaining.
82
+ */
83
+ writeUInt32BE(n: number): BufferWriter;
84
+ /**
85
+ * Writes an unsigned 8-bit integer to the buffer in little-endian format.
86
+ * @param {number} n - The number to write (0-255)
87
+ * @returns {this} Returns the BufferWriter instance for chaining
88
+ */
89
+ writeUInt8(n: number): this;
90
+ /**
91
+ * Writes a 64-bit unsigned integer in little-endian byte order from a BigNumber.
92
+ * @param {Object} bn - The BigNumber to write.
93
+ * @returns {this} Returns the BufferWriter instance for chaining.
94
+ */
95
+ writeUInt64LEBN(bn: any): this;
96
+ /**
97
+ * Writes a 64-bit unsigned integer in big-endian byte order (as BN.js instance).
98
+ * Internally converts to little-endian and writes reversed for big-endian output.
99
+ * @param {BN} bn - The BigNumber to write as 64-bit big-endian
100
+ * @returns {BufferWriter} Returns this instance for chaining
101
+ */
102
+ writeUInt64BEBN(bn: BN): BufferWriter;
103
+ /**
104
+ * Writes a variable-length integer (varint) to the buffer.
105
+ * @param {number} n - The number to write as varint
106
+ * @returns {this} Returns the BufferWriter instance for chaining
107
+ */
108
+ writeVarintNum(n: number): this;
109
+ /**
110
+ * Writes a 32-bit signed integer in little-endian format to the buffer.
111
+ * @param {number} n - The integer to write.
112
+ * @returns {this} Returns the BufferWriter instance for chaining.
113
+ */
114
+ writeInt32LE(n: number): this;
115
+ /**
116
+ * Writes a variable-length integer (varint) to the buffer using BigNumber.
117
+ * Handles numbers of different sizes with appropriate encoding:
118
+ * - Numbers < 253: 1 byte
119
+ * - Numbers < 0x10000: 1 byte prefix (253) + 2 bytes
120
+ * - Numbers < 0x100000000: 1 byte prefix (254) + 4 bytes
121
+ * - Larger numbers: 1 byte prefix (255) + 8 bytes
122
+ * @param {BN} bn - BigNumber to write as varint
123
+ * @returns {BufferWriter} Returns this for chaining
124
+ */
125
+ writeVarintBN(bn: BN): BufferWriter;
126
+ }
@@ -0,0 +1,2 @@
1
+ export = decodeASM;
2
+ declare function decodeASM(script: any): Buffer;
@@ -0,0 +1,2 @@
1
+ export = decodeHex;
2
+ declare function decodeHex(hex: any): Uint8Array | Buffer;
@@ -0,0 +1,14 @@
1
+ export = decodeScriptChunks;
2
+ declare function decodeScriptChunks(script: any): ({
3
+ opcodenum: any;
4
+ len: number;
5
+ buf?: undefined;
6
+ } | {
7
+ opcodenum: any;
8
+ buf: any;
9
+ len: number;
10
+ } | {
11
+ opcodenum: any;
12
+ len?: undefined;
13
+ buf?: undefined;
14
+ })[];
@@ -0,0 +1,2 @@
1
+ export = encodeHex;
2
+ declare let encodeHex: any;
@@ -0,0 +1,6 @@
1
+ import Base58 = require("./base58.cjs");
2
+ import Base58Check = require("./base58check.cjs");
3
+ import BufferReader = require("./bufferreader.cjs");
4
+ import BufferWriter = require("./bufferwriter.cjs");
5
+ import Varint = require("./varint.cjs");
6
+ export { Base58, Base58Check, BufferReader, BufferWriter, Varint };
@@ -0,0 +1,2 @@
1
+ export = isHex;
2
+ declare function isHex(s: any): boolean;
@@ -0,0 +1,66 @@
1
+ export = Varint;
2
+ /**
3
+ * Creates a Varint instance from various input types.
4
+ * @constructor
5
+ * @param {Buffer|number|BN|Object} buf - Input can be a Buffer, number, BN instance, or object with buffer properties.
6
+ * @returns {Varint} New Varint instance when called without `new`.
7
+ */
8
+ declare function Varint(buf: Buffer | number | BN | any): Varint;
9
+ declare class Varint {
10
+ /**
11
+ * Creates a Varint instance from various input types.
12
+ * @constructor
13
+ * @param {Buffer|number|BN|Object} buf - Input can be a Buffer, number, BN instance, or object with buffer properties.
14
+ * @returns {Varint} New Varint instance when called without `new`.
15
+ */
16
+ constructor(buf: Buffer | number | BN | any);
17
+ buf: Buffer;
18
+ /**
19
+ * Sets the buffer for the Varint instance.
20
+ * @param {Object} obj - The object containing the buffer to set.
21
+ * @param {Buffer} [obj.buf] - The buffer to assign. If not provided, keeps the current buffer.
22
+ * @returns {Varint} The Varint instance for chaining.
23
+ */
24
+ set(obj: {
25
+ buf?: Buffer;
26
+ }): Varint;
27
+ /**
28
+ * Converts a hex string to a Varint buffer and updates the instance.
29
+ * @param {string} str - Hex string to convert.
30
+ * @returns {Varint} The updated Varint instance.
31
+ */
32
+ fromString(str: string): Varint;
33
+ /**
34
+ * Converts the Varint buffer to a hexadecimal string representation.
35
+ * @returns {string} Hexadecimal string of the buffer.
36
+ */
37
+ toString(): string;
38
+ /**
39
+ * Sets the internal buffer to the provided buffer and returns the instance.
40
+ * @param {Buffer} buf - The buffer to set as the internal buffer.
41
+ * @returns {Varint} The instance for chaining.
42
+ */
43
+ fromBuffer(buf: Buffer): Varint;
44
+ /**
45
+ * Reads a varint from a buffer reader and stores it in the instance.
46
+ * @param {Object} br - The buffer reader instance to read from.
47
+ * @returns {Varint} The current Varint instance for chaining.
48
+ */
49
+ fromBufferReader(br: any): Varint;
50
+ /**
51
+ * Converts a BigNumber (BN) to a varint and stores it in the buffer.
52
+ * @param {BN} bn - The BigNumber to convert to varint format.
53
+ * @returns {Varint} Returns the Varint instance for chaining.
54
+ */
55
+ fromBN(bn: BN): Varint;
56
+ /**
57
+ * Converts a number to a varint and stores it in the buffer.
58
+ * @param {number} num - The number to convert to varint format.
59
+ * @returns {Varint} Returns the instance for chaining.
60
+ */
61
+ fromNumber(num: number): Varint;
62
+ toBuffer(): Buffer;
63
+ toBN(): any;
64
+ toNumber(): any;
65
+ }
66
+ import BN = require("../bn.cjs");
@@ -0,0 +1,4 @@
1
+ export = OpcatError;
2
+ declare class OpcatError {
3
+ name: string;
4
+ }
@@ -0,0 +1,22 @@
1
+ declare const _exports: ({
2
+ name: string;
3
+ message: string;
4
+ } | {
5
+ name: string;
6
+ message: (...args: any[]) => string;
7
+ } | {
8
+ name: string;
9
+ message: string;
10
+ errors: ({
11
+ name: string;
12
+ message: string;
13
+ errors: {
14
+ name: string;
15
+ message: string;
16
+ }[];
17
+ } | {
18
+ name: string;
19
+ message: string;
20
+ })[];
21
+ })[];
22
+ export = _exports;