@btc-vision/bitcoin 6.4.10 → 6.4.11

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 (207) hide show
  1. package/.babelrc +4 -4
  2. package/.mocharc.json +13 -13
  3. package/.prettierrc.json +12 -12
  4. package/CHANGELOG.md +403 -403
  5. package/CONTRIBUTING.md +83 -83
  6. package/LICENSE +21 -21
  7. package/README.md +201 -201
  8. package/cjs/package.json +3 -3
  9. package/gulpfile.js +42 -42
  10. package/package.json +150 -150
  11. package/src/bip66.ts +107 -107
  12. package/src/block.ts +233 -233
  13. package/src/bufferutils.ts +188 -188
  14. package/src/crypto.ts +108 -108
  15. package/src/ecc_lib.ts +94 -94
  16. package/src/hooks/AdvancedSignatureManager.ts +104 -104
  17. package/src/hooks/SignatureManager.ts +84 -84
  18. package/src/index.ts +105 -105
  19. package/src/merkle.ts +31 -31
  20. package/src/opcodes.ts +280 -280
  21. package/src/payments/bip341.ts +140 -140
  22. package/src/payments/embed.ts +61 -61
  23. package/src/payments/index.ts +172 -172
  24. package/src/payments/lazy.ts +28 -28
  25. package/src/payments/p2ms.ts +156 -156
  26. package/src/payments/p2op.ts +195 -195
  27. package/src/payments/p2pk.ts +93 -93
  28. package/src/payments/p2pkh.ts +214 -214
  29. package/src/payments/p2tr.ts +309 -309
  30. package/src/psbt/bip371.ts +441 -441
  31. package/src/push_data.ts +97 -97
  32. package/src/script.ts +247 -247
  33. package/src/script_number.ts +72 -72
  34. package/src/script_signature.ts +91 -91
  35. package/src/transaction.ts +656 -656
  36. package/test/address.spec.ts +155 -155
  37. package/test/bitcoin.core.spec.ts +212 -212
  38. package/test/block.spec.ts +171 -171
  39. package/test/bufferutils.spec.ts +450 -450
  40. package/test/crypto.spec.ts +49 -49
  41. package/test/fixtures/address.json +329 -329
  42. package/test/fixtures/block.json +148 -148
  43. package/test/fixtures/bufferutils.json +102 -102
  44. package/test/fixtures/core/README.md +26 -26
  45. package/test/fixtures/core/base58_encode_decode.json +50 -50
  46. package/test/fixtures/core/base58_keys_invalid.json +152 -152
  47. package/test/fixtures/core/base58_keys_valid.json +452 -452
  48. package/test/fixtures/core/blocks.json +27 -27
  49. package/test/fixtures/core/sig_canonical.json +7 -7
  50. package/test/fixtures/core/sig_noncanonical.json +33 -33
  51. package/test/fixtures/core/sighash.json +3505 -3505
  52. package/test/fixtures/core/tx_valid.json +2023 -2023
  53. package/test/fixtures/crypto.json +43 -43
  54. package/test/fixtures/ecdsa.json +217 -217
  55. package/test/fixtures/ecpair.json +141 -141
  56. package/test/fixtures/embed.json +108 -108
  57. package/test/fixtures/p2ms.json +434 -434
  58. package/test/fixtures/p2pk.json +179 -179
  59. package/test/fixtures/p2pkh.json +276 -276
  60. package/test/fixtures/p2sh.json +508 -508
  61. package/test/fixtures/p2tr.json +1198 -1198
  62. package/test/fixtures/p2wpkh.json +290 -290
  63. package/test/fixtures/p2wsh.json +489 -489
  64. package/test/fixtures/psbt.json +924 -924
  65. package/test/fixtures/script.json +465 -465
  66. package/test/fixtures/script_number.json +225 -225
  67. package/test/fixtures/signature.json +140 -140
  68. package/test/fixtures/transaction.json +916 -916
  69. package/test/integration/_regtest.ts +6 -6
  70. package/test/integration/addresses.spec.ts +142 -142
  71. package/test/integration/bip32.spec.ts +130 -130
  72. package/test/integration/blocks.spec.ts +28 -28
  73. package/test/integration/cltv.spec.ts +241 -241
  74. package/test/integration/csv.spec.ts +452 -452
  75. package/test/integration/payments.spec.ts +110 -110
  76. package/test/integration/taproot.spec.ts +663 -663
  77. package/test/integration/transactions.spec.ts +668 -668
  78. package/test/payments.spec.ts +114 -114
  79. package/test/payments.utils.ts +165 -165
  80. package/test/psbt.spec.ts +1285 -1285
  81. package/test/script.spec.ts +186 -186
  82. package/test/script_number.spec.ts +26 -26
  83. package/test/script_signature.spec.ts +66 -66
  84. package/test/transaction.spec.ts +337 -337
  85. package/test/ts-node-register.js +7 -7
  86. package/test/tsconfig.json +48 -48
  87. package/test/types.spec.ts +53 -53
  88. package/tsconfig.base.json +27 -27
  89. package/tsconfig.json +19 -19
  90. package/tsconfig.webpack.json +18 -18
  91. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/.ready +0 -0
  92. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/.release-please-manifest.json +0 -3
  93. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/CHANGELOG.md +0 -962
  94. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/CONTRIBUTING.md +0 -34
  95. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/LICENSE +0 -24
  96. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/README.md +0 -273
  97. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/SECURITY.md +0 -2
  98. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/addon.gypi +0 -204
  99. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/bin/node-gyp.js +0 -138
  100. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/.release-please-manifest.json +0 -3
  101. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/LICENSE +0 -28
  102. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/data/ninja/build.ninja +0 -4
  103. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc +0 -12
  104. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/GypVsCMake.md +0 -116
  105. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/Hacking.md +0 -46
  106. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/InputFormatReference.md +0 -1080
  107. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/LanguageSpecification.md +0 -430
  108. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/README.md +0 -27
  109. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/Testing.md +0 -450
  110. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/docs/UserDocumentation.md +0 -965
  111. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp +0 -8
  112. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp.bat +0 -5
  113. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/gyp_main.py +0 -45
  114. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -365
  115. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
  116. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1272
  117. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1547
  118. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
  119. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -153
  120. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -271
  121. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -574
  122. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -692
  123. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -711
  124. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -171
  125. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -169
  126. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -113
  127. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
  128. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  129. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -804
  130. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1173
  131. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1318
  132. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -127
  133. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -103
  134. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -461
  135. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -89
  136. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -57
  137. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2745
  138. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3976
  139. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
  140. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2964
  141. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -67
  142. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1391
  143. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -25
  144. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3115
  145. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -98
  146. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -771
  147. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1260
  148. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
  149. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
  150. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -373
  151. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1938
  152. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation_test.py +0 -53
  153. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -302
  154. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3198
  155. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -65
  156. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE +0 -3
  157. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.APACHE +0 -177
  158. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/LICENSE.BSD +0 -23
  159. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/__init__.py +0 -15
  160. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_elffile.py +0 -108
  161. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_manylinux.py +0 -252
  162. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_musllinux.py +0 -83
  163. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_parser.py +0 -359
  164. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_structures.py +0 -61
  165. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/_tokenizer.py +0 -192
  166. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/markers.py +0 -252
  167. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/metadata.py +0 -825
  168. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/py.typed +0 -0
  169. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/requirements.py +0 -90
  170. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/specifiers.py +0 -1030
  171. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/tags.py +0 -553
  172. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/utils.py +0 -172
  173. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pylib/packaging/version.py +0 -563
  174. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/pyproject.toml +0 -120
  175. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/release-please-config.json +0 -11
  176. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/gyp/test_gyp.py +0 -261
  177. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/Find-VisualStudio.cs +0 -250
  178. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/build.js +0 -227
  179. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/clean.js +0 -15
  180. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/configure.js +0 -328
  181. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/create-config-gypi.js +0 -150
  182. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/download.js +0 -39
  183. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-node-directory.js +0 -63
  184. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-python.js +0 -310
  185. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/find-visualstudio.js +0 -590
  186. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/install.js +0 -415
  187. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/list.js +0 -26
  188. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/log.js +0 -168
  189. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/node-gyp.js +0 -188
  190. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/process-release.js +0 -146
  191. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/rebuild.js +0 -12
  192. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/remove.js +0 -43
  193. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/lib/util.js +0 -81
  194. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/macOS_Catalina_acid_test.sh +0 -21
  195. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/package.json +0 -51
  196. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/release-please-config.json +0 -40
  197. package/.yarn/unplugged/node-gyp-npm-10.2.0-cad1109948/node_modules/node-gyp/src/win_delay_load_hook.cc +0 -39
  198. package/browser/ops.d.ts +0 -126
  199. package/build/ops.d.ts +0 -126
  200. package/build/ops.js +0 -127
  201. package/coverage/tmp/coverage-31752-1735543485354-0.json +0 -1
  202. package/coverage/tmp/coverage-59920-1735543484555-0.json +0 -1
  203. package/coverage/tmp/coverage-66252-1735543483919-0.json +0 -1
  204. package/coverage/tmp/coverage-68440-1735543485236-0.json +0 -1
  205. package/coverage/tmp/coverage-70588-1735543484426-0.json +0 -1
  206. package/coverage/tmp/coverage-79292-1735543485296-0.json +0 -1
  207. package/coverage/tmp/coverage-80212-1735543483980-0.json +0 -1
package/src/opcodes.ts CHANGED
@@ -1,280 +1,280 @@
1
- export interface Opcodes {
2
- OP_FALSE: number;
3
- OP_0: number;
4
- OP_PUSHDATA1: number;
5
- OP_PUSHDATA2: number;
6
- OP_PUSHDATA4: number;
7
- OP_1NEGATE: number;
8
- OP_RESERVED: number;
9
- OP_TRUE: number;
10
- OP_1: number;
11
- OP_2: number;
12
- OP_3: number;
13
- OP_4: number;
14
- OP_5: number;
15
- OP_6: number;
16
- OP_7: number;
17
- OP_8: number;
18
- OP_9: number;
19
- OP_10: number;
20
- OP_11: number;
21
- OP_12: number;
22
- OP_13: number;
23
- OP_14: number;
24
- OP_15: number;
25
- OP_16: number;
26
-
27
- // control
28
- OP_NOP: number;
29
- OP_VER: number;
30
- OP_IF: number;
31
- OP_NOTIF: number;
32
- OP_VERIF: number;
33
- OP_VERNOTIF: number;
34
- OP_ELSE: number;
35
- OP_ENDIF: number;
36
- OP_VERIFY: number;
37
- OP_RETURN: number;
38
-
39
- // stack ops
40
- OP_TOALTSTACK: number;
41
- OP_FROMALTSTACK: number;
42
- OP_2DROP: number;
43
- OP_2DUP: number;
44
- OP_3DUP: number;
45
- OP_2OVER: number;
46
- OP_2ROT: number;
47
- OP_2SWAP: number;
48
- OP_IFDUP: number;
49
- OP_DEPTH: number;
50
- OP_DROP: number;
51
- OP_DUP: number;
52
- OP_NIP: number;
53
- OP_OVER: number;
54
- OP_PICK: number;
55
- OP_ROLL: number;
56
- OP_ROT: number;
57
- OP_SWAP: number;
58
- OP_TUCK: number;
59
-
60
- // splice ops
61
- OP_CAT: number;
62
- OP_SUBSTR: number;
63
- OP_LEFT: number;
64
- OP_RIGHT: number;
65
- OP_SIZE: number;
66
-
67
- // bit logic
68
- OP_INVERT: number;
69
- OP_AND: number;
70
- OP_OR: number;
71
- OP_XOR: number;
72
- OP_EQUAL: number;
73
- OP_EQUALVERIFY: number;
74
- OP_RESERVED1: number;
75
- OP_RESERVED2: number;
76
-
77
- // numeric
78
- OP_1ADD: number;
79
- OP_1SUB: number;
80
- OP_2MUL: number;
81
- OP_2DIV: number;
82
- OP_NEGATE: number;
83
- OP_ABS: number;
84
- OP_NOT: number;
85
- OP_0NOTEQUAL: number;
86
- OP_ADD: number;
87
- OP_SUB: number;
88
- OP_MUL: number;
89
- OP_DIV: number;
90
- OP_MOD: number;
91
- OP_LSHIFT: number;
92
- OP_RSHIFT: number;
93
- OP_BOOLAND: number;
94
- OP_BOOLOR: number;
95
- OP_NUMEQUAL: number;
96
- OP_NUMEQUALVERIFY: number;
97
- OP_NUMNOTEQUAL: number;
98
- OP_LESSTHAN: number;
99
- OP_GREATERTHAN: number;
100
- OP_LESSTHANOREQUAL: number;
101
- OP_GREATERTHANOREQUAL: number;
102
- OP_MIN: number;
103
- OP_MAX: number;
104
- OP_WITHIN: number;
105
-
106
- // crypto
107
- OP_RIPEMD160: number;
108
- OP_SHA1: number;
109
- OP_SHA256: number;
110
- OP_HASH160: number;
111
- OP_HASH256: number;
112
- OP_CODESEPARATOR: number;
113
- OP_CHECKSIG: number;
114
- OP_CHECKSIGVERIFY: number;
115
- OP_CHECKMULTISIG: number;
116
- OP_CHECKMULTISIGVERIFY: number;
117
- OP_CHECKLOCKTIMEVERIFY: number;
118
- OP_CHECKSEQUENCEVERIFY: number;
119
-
120
- OP_CHECKSIGADD: number;
121
-
122
- // expansion
123
- OP_NOP1: number;
124
- OP_NOP2: number;
125
- OP_NOP3: number;
126
- OP_NOP4: number;
127
- OP_NOP5: number;
128
- OP_NOP6: number;
129
- OP_NOP7: number;
130
- OP_NOP8: number;
131
- OP_NOP9: number;
132
- OP_NOP10: number;
133
-
134
- // template matching params
135
- OP_PUBKEYHASH: number;
136
- OP_PUBKEY: number;
137
- OP_INVALIDOPCODE: number;
138
- }
139
-
140
- export const opcodes: Opcodes = {
141
- OP_FALSE: 0,
142
- OP_0: 0,
143
- OP_PUSHDATA1: 76,
144
- OP_PUSHDATA2: 77,
145
- OP_PUSHDATA4: 78,
146
- OP_1NEGATE: 79,
147
- OP_RESERVED: 80,
148
- OP_TRUE: 81,
149
- OP_1: 81,
150
- OP_2: 82,
151
- OP_3: 83,
152
- OP_4: 84,
153
- OP_5: 85,
154
- OP_6: 86,
155
- OP_7: 87,
156
- OP_8: 88,
157
- OP_9: 89,
158
- OP_10: 90,
159
- OP_11: 91,
160
- OP_12: 92,
161
- OP_13: 93,
162
- OP_14: 94,
163
- OP_15: 95,
164
- OP_16: 96,
165
-
166
- OP_NOP: 97,
167
- OP_VER: 98,
168
- OP_IF: 99,
169
- OP_NOTIF: 100,
170
- OP_VERIF: 101,
171
- OP_VERNOTIF: 102,
172
- OP_ELSE: 103,
173
- OP_ENDIF: 104,
174
- OP_VERIFY: 105,
175
- OP_RETURN: 106,
176
-
177
- OP_TOALTSTACK: 107,
178
- OP_FROMALTSTACK: 108,
179
- OP_2DROP: 109,
180
- OP_2DUP: 110,
181
- OP_3DUP: 111,
182
- OP_2OVER: 112,
183
- OP_2ROT: 113,
184
- OP_2SWAP: 114,
185
- OP_IFDUP: 115,
186
- OP_DEPTH: 116,
187
- OP_DROP: 117,
188
- OP_DUP: 118,
189
- OP_NIP: 119,
190
- OP_OVER: 120,
191
- OP_PICK: 121,
192
- OP_ROLL: 122,
193
- OP_ROT: 123,
194
- OP_SWAP: 124,
195
- OP_TUCK: 125,
196
-
197
- OP_CAT: 126,
198
- OP_SUBSTR: 127,
199
- OP_LEFT: 128,
200
- OP_RIGHT: 129,
201
- OP_SIZE: 130,
202
-
203
- OP_INVERT: 131,
204
- OP_AND: 132,
205
- OP_OR: 133,
206
- OP_XOR: 134,
207
- OP_EQUAL: 135,
208
- OP_EQUALVERIFY: 136,
209
- OP_RESERVED1: 137,
210
- OP_RESERVED2: 138,
211
-
212
- OP_1ADD: 139,
213
- OP_1SUB: 140,
214
- OP_2MUL: 141,
215
- OP_2DIV: 142,
216
- OP_NEGATE: 143,
217
- OP_ABS: 144,
218
- OP_NOT: 145,
219
- OP_0NOTEQUAL: 146,
220
- OP_ADD: 147,
221
- OP_SUB: 148,
222
- OP_MUL: 149,
223
- OP_DIV: 150,
224
- OP_MOD: 151,
225
- OP_LSHIFT: 152,
226
- OP_RSHIFT: 153,
227
-
228
- OP_BOOLAND: 154,
229
- OP_BOOLOR: 155,
230
- OP_NUMEQUAL: 156,
231
- OP_NUMEQUALVERIFY: 157,
232
- OP_NUMNOTEQUAL: 158,
233
- OP_LESSTHAN: 159,
234
- OP_GREATERTHAN: 160,
235
- OP_LESSTHANOREQUAL: 161,
236
- OP_GREATERTHANOREQUAL: 162,
237
- OP_MIN: 163,
238
- OP_MAX: 164,
239
-
240
- OP_WITHIN: 165,
241
-
242
- OP_RIPEMD160: 166,
243
- OP_SHA1: 167,
244
- OP_SHA256: 168,
245
- OP_HASH160: 169,
246
- OP_HASH256: 170,
247
- OP_CODESEPARATOR: 171,
248
- OP_CHECKSIG: 172,
249
- OP_CHECKSIGVERIFY: 173,
250
- OP_CHECKMULTISIG: 174,
251
- OP_CHECKMULTISIGVERIFY: 175,
252
-
253
- OP_NOP1: 176,
254
-
255
- OP_NOP2: 177,
256
- OP_CHECKLOCKTIMEVERIFY: 177,
257
-
258
- OP_NOP3: 178,
259
- OP_CHECKSEQUENCEVERIFY: 178,
260
-
261
- OP_NOP4: 179,
262
- OP_NOP5: 180,
263
- OP_NOP6: 181,
264
- OP_NOP7: 182,
265
- OP_NOP8: 183,
266
- OP_NOP9: 184,
267
- OP_NOP10: 185,
268
-
269
- OP_CHECKSIGADD: 186,
270
-
271
- OP_PUBKEYHASH: 253,
272
- OP_PUBKEY: 254,
273
- OP_INVALIDOPCODE: 255,
274
- };
275
-
276
- export const REVERSE_OPS: { [key: number]: string } = {};
277
- for (const op of Object.keys(opcodes)) {
278
- const code = opcodes[op as keyof Opcodes];
279
- REVERSE_OPS[code] = op;
280
- }
1
+ export interface Opcodes {
2
+ OP_FALSE: number;
3
+ OP_0: number;
4
+ OP_PUSHDATA1: number;
5
+ OP_PUSHDATA2: number;
6
+ OP_PUSHDATA4: number;
7
+ OP_1NEGATE: number;
8
+ OP_RESERVED: number;
9
+ OP_TRUE: number;
10
+ OP_1: number;
11
+ OP_2: number;
12
+ OP_3: number;
13
+ OP_4: number;
14
+ OP_5: number;
15
+ OP_6: number;
16
+ OP_7: number;
17
+ OP_8: number;
18
+ OP_9: number;
19
+ OP_10: number;
20
+ OP_11: number;
21
+ OP_12: number;
22
+ OP_13: number;
23
+ OP_14: number;
24
+ OP_15: number;
25
+ OP_16: number;
26
+
27
+ // control
28
+ OP_NOP: number;
29
+ OP_VER: number;
30
+ OP_IF: number;
31
+ OP_NOTIF: number;
32
+ OP_VERIF: number;
33
+ OP_VERNOTIF: number;
34
+ OP_ELSE: number;
35
+ OP_ENDIF: number;
36
+ OP_VERIFY: number;
37
+ OP_RETURN: number;
38
+
39
+ // stack ops
40
+ OP_TOALTSTACK: number;
41
+ OP_FROMALTSTACK: number;
42
+ OP_2DROP: number;
43
+ OP_2DUP: number;
44
+ OP_3DUP: number;
45
+ OP_2OVER: number;
46
+ OP_2ROT: number;
47
+ OP_2SWAP: number;
48
+ OP_IFDUP: number;
49
+ OP_DEPTH: number;
50
+ OP_DROP: number;
51
+ OP_DUP: number;
52
+ OP_NIP: number;
53
+ OP_OVER: number;
54
+ OP_PICK: number;
55
+ OP_ROLL: number;
56
+ OP_ROT: number;
57
+ OP_SWAP: number;
58
+ OP_TUCK: number;
59
+
60
+ // splice ops
61
+ OP_CAT: number;
62
+ OP_SUBSTR: number;
63
+ OP_LEFT: number;
64
+ OP_RIGHT: number;
65
+ OP_SIZE: number;
66
+
67
+ // bit logic
68
+ OP_INVERT: number;
69
+ OP_AND: number;
70
+ OP_OR: number;
71
+ OP_XOR: number;
72
+ OP_EQUAL: number;
73
+ OP_EQUALVERIFY: number;
74
+ OP_RESERVED1: number;
75
+ OP_RESERVED2: number;
76
+
77
+ // numeric
78
+ OP_1ADD: number;
79
+ OP_1SUB: number;
80
+ OP_2MUL: number;
81
+ OP_2DIV: number;
82
+ OP_NEGATE: number;
83
+ OP_ABS: number;
84
+ OP_NOT: number;
85
+ OP_0NOTEQUAL: number;
86
+ OP_ADD: number;
87
+ OP_SUB: number;
88
+ OP_MUL: number;
89
+ OP_DIV: number;
90
+ OP_MOD: number;
91
+ OP_LSHIFT: number;
92
+ OP_RSHIFT: number;
93
+ OP_BOOLAND: number;
94
+ OP_BOOLOR: number;
95
+ OP_NUMEQUAL: number;
96
+ OP_NUMEQUALVERIFY: number;
97
+ OP_NUMNOTEQUAL: number;
98
+ OP_LESSTHAN: number;
99
+ OP_GREATERTHAN: number;
100
+ OP_LESSTHANOREQUAL: number;
101
+ OP_GREATERTHANOREQUAL: number;
102
+ OP_MIN: number;
103
+ OP_MAX: number;
104
+ OP_WITHIN: number;
105
+
106
+ // crypto
107
+ OP_RIPEMD160: number;
108
+ OP_SHA1: number;
109
+ OP_SHA256: number;
110
+ OP_HASH160: number;
111
+ OP_HASH256: number;
112
+ OP_CODESEPARATOR: number;
113
+ OP_CHECKSIG: number;
114
+ OP_CHECKSIGVERIFY: number;
115
+ OP_CHECKMULTISIG: number;
116
+ OP_CHECKMULTISIGVERIFY: number;
117
+ OP_CHECKLOCKTIMEVERIFY: number;
118
+ OP_CHECKSEQUENCEVERIFY: number;
119
+
120
+ OP_CHECKSIGADD: number;
121
+
122
+ // expansion
123
+ OP_NOP1: number;
124
+ OP_NOP2: number;
125
+ OP_NOP3: number;
126
+ OP_NOP4: number;
127
+ OP_NOP5: number;
128
+ OP_NOP6: number;
129
+ OP_NOP7: number;
130
+ OP_NOP8: number;
131
+ OP_NOP9: number;
132
+ OP_NOP10: number;
133
+
134
+ // template matching params
135
+ OP_PUBKEYHASH: number;
136
+ OP_PUBKEY: number;
137
+ OP_INVALIDOPCODE: number;
138
+ }
139
+
140
+ export const opcodes: Opcodes = {
141
+ OP_FALSE: 0,
142
+ OP_0: 0,
143
+ OP_PUSHDATA1: 76,
144
+ OP_PUSHDATA2: 77,
145
+ OP_PUSHDATA4: 78,
146
+ OP_1NEGATE: 79,
147
+ OP_RESERVED: 80,
148
+ OP_TRUE: 81,
149
+ OP_1: 81,
150
+ OP_2: 82,
151
+ OP_3: 83,
152
+ OP_4: 84,
153
+ OP_5: 85,
154
+ OP_6: 86,
155
+ OP_7: 87,
156
+ OP_8: 88,
157
+ OP_9: 89,
158
+ OP_10: 90,
159
+ OP_11: 91,
160
+ OP_12: 92,
161
+ OP_13: 93,
162
+ OP_14: 94,
163
+ OP_15: 95,
164
+ OP_16: 96,
165
+
166
+ OP_NOP: 97,
167
+ OP_VER: 98,
168
+ OP_IF: 99,
169
+ OP_NOTIF: 100,
170
+ OP_VERIF: 101,
171
+ OP_VERNOTIF: 102,
172
+ OP_ELSE: 103,
173
+ OP_ENDIF: 104,
174
+ OP_VERIFY: 105,
175
+ OP_RETURN: 106,
176
+
177
+ OP_TOALTSTACK: 107,
178
+ OP_FROMALTSTACK: 108,
179
+ OP_2DROP: 109,
180
+ OP_2DUP: 110,
181
+ OP_3DUP: 111,
182
+ OP_2OVER: 112,
183
+ OP_2ROT: 113,
184
+ OP_2SWAP: 114,
185
+ OP_IFDUP: 115,
186
+ OP_DEPTH: 116,
187
+ OP_DROP: 117,
188
+ OP_DUP: 118,
189
+ OP_NIP: 119,
190
+ OP_OVER: 120,
191
+ OP_PICK: 121,
192
+ OP_ROLL: 122,
193
+ OP_ROT: 123,
194
+ OP_SWAP: 124,
195
+ OP_TUCK: 125,
196
+
197
+ OP_CAT: 126,
198
+ OP_SUBSTR: 127,
199
+ OP_LEFT: 128,
200
+ OP_RIGHT: 129,
201
+ OP_SIZE: 130,
202
+
203
+ OP_INVERT: 131,
204
+ OP_AND: 132,
205
+ OP_OR: 133,
206
+ OP_XOR: 134,
207
+ OP_EQUAL: 135,
208
+ OP_EQUALVERIFY: 136,
209
+ OP_RESERVED1: 137,
210
+ OP_RESERVED2: 138,
211
+
212
+ OP_1ADD: 139,
213
+ OP_1SUB: 140,
214
+ OP_2MUL: 141,
215
+ OP_2DIV: 142,
216
+ OP_NEGATE: 143,
217
+ OP_ABS: 144,
218
+ OP_NOT: 145,
219
+ OP_0NOTEQUAL: 146,
220
+ OP_ADD: 147,
221
+ OP_SUB: 148,
222
+ OP_MUL: 149,
223
+ OP_DIV: 150,
224
+ OP_MOD: 151,
225
+ OP_LSHIFT: 152,
226
+ OP_RSHIFT: 153,
227
+
228
+ OP_BOOLAND: 154,
229
+ OP_BOOLOR: 155,
230
+ OP_NUMEQUAL: 156,
231
+ OP_NUMEQUALVERIFY: 157,
232
+ OP_NUMNOTEQUAL: 158,
233
+ OP_LESSTHAN: 159,
234
+ OP_GREATERTHAN: 160,
235
+ OP_LESSTHANOREQUAL: 161,
236
+ OP_GREATERTHANOREQUAL: 162,
237
+ OP_MIN: 163,
238
+ OP_MAX: 164,
239
+
240
+ OP_WITHIN: 165,
241
+
242
+ OP_RIPEMD160: 166,
243
+ OP_SHA1: 167,
244
+ OP_SHA256: 168,
245
+ OP_HASH160: 169,
246
+ OP_HASH256: 170,
247
+ OP_CODESEPARATOR: 171,
248
+ OP_CHECKSIG: 172,
249
+ OP_CHECKSIGVERIFY: 173,
250
+ OP_CHECKMULTISIG: 174,
251
+ OP_CHECKMULTISIGVERIFY: 175,
252
+
253
+ OP_NOP1: 176,
254
+
255
+ OP_NOP2: 177,
256
+ OP_CHECKLOCKTIMEVERIFY: 177,
257
+
258
+ OP_NOP3: 178,
259
+ OP_CHECKSEQUENCEVERIFY: 178,
260
+
261
+ OP_NOP4: 179,
262
+ OP_NOP5: 180,
263
+ OP_NOP6: 181,
264
+ OP_NOP7: 182,
265
+ OP_NOP8: 183,
266
+ OP_NOP9: 184,
267
+ OP_NOP10: 185,
268
+
269
+ OP_CHECKSIGADD: 186,
270
+
271
+ OP_PUBKEYHASH: 253,
272
+ OP_PUBKEY: 254,
273
+ OP_INVALIDOPCODE: 255,
274
+ };
275
+
276
+ export const REVERSE_OPS: { [key: number]: string } = {};
277
+ for (const op of Object.keys(opcodes)) {
278
+ const code = opcodes[op as keyof Opcodes];
279
+ REVERSE_OPS[code] = op;
280
+ }