@bsv/sdk 1.3.12 → 1.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/dist/cjs/package.json +15 -3
  2. package/dist/cjs/src/auth/Peer.js +83 -57
  3. package/dist/cjs/src/auth/Peer.js.map +1 -1
  4. package/dist/cjs/src/auth/SessionManager.js +14 -9
  5. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  6. package/dist/cjs/src/auth/certificates/Certificate.js +16 -10
  7. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  8. package/dist/cjs/src/auth/certificates/MasterCertificate.js +25 -23
  9. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  10. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +2 -2
  11. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  12. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +62 -46
  13. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  14. package/dist/cjs/src/auth/clients/AuthFetch.js +1 -0
  15. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  16. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +70 -43
  17. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  18. package/dist/cjs/src/auth/utils/createNonce.js +2 -1
  19. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
  20. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  21. package/dist/cjs/src/auth/utils/validateCertificates.js +5 -2
  22. package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
  23. package/dist/cjs/src/auth/utils/verifyNonce.js +2 -1
  24. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
  25. package/dist/cjs/src/compat/BSM.js +7 -17
  26. package/dist/cjs/src/compat/BSM.js.map +1 -1
  27. package/dist/cjs/src/compat/ECIES.js +172 -133
  28. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  29. package/dist/cjs/src/compat/HD.js +63 -73
  30. package/dist/cjs/src/compat/HD.js.map +1 -1
  31. package/dist/cjs/src/compat/Mnemonic.js +102 -106
  32. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  33. package/dist/cjs/src/compat/Utxo.js +2 -2
  34. package/dist/cjs/src/compat/Utxo.js.map +1 -1
  35. package/dist/cjs/src/compat/index.js +7 -17
  36. package/dist/cjs/src/compat/index.js.map +1 -1
  37. package/dist/cjs/src/messages/EncryptedMessage.js +3 -1
  38. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
  39. package/dist/cjs/src/messages/SignedMessage.js +1 -0
  40. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  41. package/dist/cjs/src/messages/index.js +7 -17
  42. package/dist/cjs/src/messages/index.js.map +1 -1
  43. package/dist/cjs/src/overlay-tools/LookupResolver.js +54 -35
  44. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  45. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
  46. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  47. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +40 -28
  48. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  49. package/dist/cjs/src/primitives/AESGCM.js +6 -5
  50. package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
  51. package/dist/cjs/src/primitives/BasePoint.js +1 -1
  52. package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
  53. package/dist/cjs/src/primitives/BigNumber.js +50 -62
  54. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  55. package/dist/cjs/src/primitives/Curve.js +46 -22
  56. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  57. package/dist/cjs/src/primitives/DRBG.js +2 -8
  58. package/dist/cjs/src/primitives/DRBG.js.map +1 -1
  59. package/dist/cjs/src/primitives/ECDSA.js +51 -35
  60. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  61. package/dist/cjs/src/primitives/Hash.js +191 -216
  62. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  63. package/dist/cjs/src/primitives/JacobianPoint.js +19 -5
  64. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  65. package/dist/cjs/src/primitives/K256.js.map +1 -1
  66. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  67. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  68. package/dist/cjs/src/primitives/Point.js +117 -88
  69. package/dist/cjs/src/primitives/Point.js.map +1 -1
  70. package/dist/cjs/src/primitives/Polynomial.js +4 -2
  71. package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
  72. package/dist/cjs/src/primitives/PrivateKey.js +32 -33
  73. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  74. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  75. package/dist/cjs/src/primitives/Random.js +6 -5
  76. package/dist/cjs/src/primitives/Random.js.map +1 -1
  77. package/dist/cjs/src/primitives/ReductionContext.js +1 -1
  78. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
  79. package/dist/cjs/src/primitives/Schnorr.js +21 -15
  80. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  81. package/dist/cjs/src/primitives/Signature.js +8 -7
  82. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  83. package/dist/cjs/src/primitives/SymmetricKey.js +13 -13
  84. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  85. package/dist/cjs/src/primitives/TransactionSignature.js +31 -29
  86. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  87. package/dist/cjs/src/primitives/index.js +7 -17
  88. package/dist/cjs/src/primitives/index.js.map +1 -1
  89. package/dist/cjs/src/primitives/utils.js +79 -68
  90. package/dist/cjs/src/primitives/utils.js.map +1 -1
  91. package/dist/cjs/src/script/OP.js +3 -3
  92. package/dist/cjs/src/script/OP.js.map +1 -1
  93. package/dist/cjs/src/script/Script.js +12 -10
  94. package/dist/cjs/src/script/Script.js.map +1 -1
  95. package/dist/cjs/src/script/Spend.js +47 -49
  96. package/dist/cjs/src/script/Spend.js.map +1 -1
  97. package/dist/cjs/src/script/templates/P2PKH.js +24 -12
  98. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  99. package/dist/cjs/src/script/templates/PushDrop.js +28 -23
  100. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  101. package/dist/cjs/src/script/templates/RPuzzle.js +10 -6
  102. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  103. package/dist/cjs/src/totp/totp.js +2 -1
  104. package/dist/cjs/src/totp/totp.js.map +1 -1
  105. package/dist/cjs/src/transaction/Beef.js +177 -154
  106. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  107. package/dist/cjs/src/transaction/BeefParty.js +24 -24
  108. package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
  109. package/dist/cjs/src/transaction/BeefTx.js +26 -18
  110. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  111. package/dist/cjs/src/transaction/Broadcaster.js +3 -2
  112. package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
  113. package/dist/cjs/src/transaction/MerklePath.js +64 -37
  114. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  115. package/dist/cjs/src/transaction/Transaction.js +111 -137
  116. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  117. package/dist/cjs/src/transaction/broadcasters/ARC.js +25 -16
  118. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  119. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -1
  120. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  121. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  122. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -1
  123. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  124. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  125. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  126. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  127. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +5 -3
  128. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  129. package/dist/cjs/src/transaction/http/FetchHttpClient.js +5 -2
  130. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  131. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +5 -3
  132. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  133. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  134. package/dist/cjs/src/transaction/index.js.map +1 -1
  135. package/dist/cjs/src/wallet/CachedKeyDeriver.js +91 -66
  136. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  137. package/dist/cjs/src/wallet/KeyDeriver.js +61 -52
  138. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
  139. package/dist/cjs/src/wallet/ProtoWallet.js +79 -29
  140. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  141. package/dist/cjs/src/wallet/WalletClient.js +7 -2
  142. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  143. package/dist/cjs/src/wallet/WalletError.js +2 -2
  144. package/dist/cjs/src/wallet/WalletError.js.map +1 -1
  145. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +4 -3
  146. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  147. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +2 -2
  148. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  149. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
  150. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  151. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +102 -43
  152. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  153. package/dist/cjs/src/wallet/substrates/XDM.js +8 -3
  154. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  155. package/dist/cjs/src/wallet/substrates/window.CWI.js +28 -28
  156. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  157. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  158. package/dist/esm/mod.js +15 -15
  159. package/dist/esm/src/auth/Peer.js +75 -54
  160. package/dist/esm/src/auth/Peer.js.map +1 -1
  161. package/dist/esm/src/auth/SessionManager.js +14 -9
  162. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  163. package/dist/esm/src/auth/certificates/Certificate.js +15 -11
  164. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
  165. package/dist/esm/src/auth/certificates/MasterCertificate.js +25 -23
  166. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  167. package/dist/esm/src/auth/certificates/VerifiableCertificate.js +2 -2
  168. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  169. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +64 -47
  170. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  171. package/dist/esm/src/auth/clients/AuthFetch.js +1 -0
  172. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  173. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +69 -43
  174. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  175. package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
  176. package/dist/esm/src/auth/utils/getVerifiableCertificates.js +1 -1
  177. package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  178. package/dist/esm/src/auth/utils/validateCertificates.js +6 -3
  179. package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
  180. package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
  181. package/dist/esm/src/compat/BSM.js.map +1 -1
  182. package/dist/esm/src/compat/ECIES.js +165 -116
  183. package/dist/esm/src/compat/ECIES.js.map +1 -1
  184. package/dist/esm/src/compat/HD.js +56 -56
  185. package/dist/esm/src/compat/HD.js.map +1 -1
  186. package/dist/esm/src/compat/Mnemonic.js +95 -89
  187. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  188. package/dist/esm/src/compat/Utxo.js +1 -1
  189. package/dist/esm/src/compat/Utxo.js.map +1 -1
  190. package/dist/esm/src/messages/EncryptedMessage.js +3 -1
  191. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
  192. package/dist/esm/src/messages/SignedMessage.js +1 -0
  193. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  194. package/dist/esm/src/overlay-tools/LookupResolver.js +53 -35
  195. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  196. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +32 -20
  197. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  198. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +40 -28
  199. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  200. package/dist/esm/src/primitives/AESGCM.js +1 -0
  201. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  202. package/dist/esm/src/primitives/BasePoint.js +1 -1
  203. package/dist/esm/src/primitives/BasePoint.js.map +1 -1
  204. package/dist/esm/src/primitives/BigNumber.js +50 -62
  205. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  206. package/dist/esm/src/primitives/Curve.js +45 -22
  207. package/dist/esm/src/primitives/Curve.js.map +1 -1
  208. package/dist/esm/src/primitives/DRBG.js +2 -8
  209. package/dist/esm/src/primitives/DRBG.js.map +1 -1
  210. package/dist/esm/src/primitives/ECDSA.js +50 -35
  211. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  212. package/dist/esm/src/primitives/Hash.js +188 -213
  213. package/dist/esm/src/primitives/Hash.js.map +1 -1
  214. package/dist/esm/src/primitives/JacobianPoint.js +18 -5
  215. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  216. package/dist/esm/src/primitives/K256.js.map +1 -1
  217. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  218. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  219. package/dist/esm/src/primitives/Point.js +107 -88
  220. package/dist/esm/src/primitives/Point.js.map +1 -1
  221. package/dist/esm/src/primitives/Polynomial.js +4 -2
  222. package/dist/esm/src/primitives/Polynomial.js.map +1 -1
  223. package/dist/esm/src/primitives/PrivateKey.js +25 -16
  224. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  225. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  226. package/dist/esm/src/primitives/Random.js +7 -6
  227. package/dist/esm/src/primitives/Random.js.map +1 -1
  228. package/dist/esm/src/primitives/ReductionContext.js +1 -1
  229. package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
  230. package/dist/esm/src/primitives/Schnorr.js +21 -15
  231. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  232. package/dist/esm/src/primitives/Signature.js +8 -7
  233. package/dist/esm/src/primitives/Signature.js.map +1 -1
  234. package/dist/esm/src/primitives/SymmetricKey.js +13 -13
  235. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  236. package/dist/esm/src/primitives/TransactionSignature.js +22 -12
  237. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  238. package/dist/esm/src/primitives/utils.js +76 -66
  239. package/dist/esm/src/primitives/utils.js.map +1 -1
  240. package/dist/esm/src/script/OP.js +3 -3
  241. package/dist/esm/src/script/OP.js.map +1 -1
  242. package/dist/esm/src/script/Script.js +12 -10
  243. package/dist/esm/src/script/Script.js.map +1 -1
  244. package/dist/esm/src/script/Spend.js +39 -32
  245. package/dist/esm/src/script/Spend.js.map +1 -1
  246. package/dist/esm/src/script/templates/P2PKH.js +26 -11
  247. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  248. package/dist/esm/src/script/templates/PushDrop.js +29 -22
  249. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  250. package/dist/esm/src/script/templates/RPuzzle.js +11 -6
  251. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  252. package/dist/esm/src/totp/totp.js +2 -1
  253. package/dist/esm/src/totp/totp.js.map +1 -1
  254. package/dist/esm/src/transaction/Beef.js +176 -154
  255. package/dist/esm/src/transaction/Beef.js.map +1 -1
  256. package/dist/esm/src/transaction/BeefParty.js +24 -24
  257. package/dist/esm/src/transaction/BeefParty.js.map +1 -1
  258. package/dist/esm/src/transaction/BeefTx.js +26 -18
  259. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  260. package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
  261. package/dist/esm/src/transaction/MerklePath.js +61 -36
  262. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  263. package/dist/esm/src/transaction/Transaction.js +105 -138
  264. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  265. package/dist/esm/src/transaction/broadcasters/ARC.js +25 -16
  266. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  267. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  268. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  269. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +3 -3
  270. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  271. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  272. package/dist/esm/src/transaction/http/DefaultHttpClient.js +3 -2
  273. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  274. package/dist/esm/src/transaction/http/FetchHttpClient.js +4 -2
  275. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  276. package/dist/esm/src/transaction/http/NodejsHttpClient.js +5 -3
  277. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  278. package/dist/esm/src/transaction/http/index.js.map +1 -1
  279. package/dist/esm/src/transaction/index.js.map +1 -1
  280. package/dist/esm/src/wallet/CachedKeyDeriver.js +91 -66
  281. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  282. package/dist/esm/src/wallet/KeyDeriver.js +60 -52
  283. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
  284. package/dist/esm/src/wallet/ProtoWallet.js +75 -29
  285. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  286. package/dist/esm/src/wallet/WalletClient.js +7 -2
  287. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  288. package/dist/esm/src/wallet/WalletError.js +2 -2
  289. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  290. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +4 -4
  291. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  292. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +2 -2
  293. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  294. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1239 -1261
  295. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  296. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +95 -43
  297. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  298. package/dist/esm/src/wallet/substrates/XDM.js +8 -3
  299. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  300. package/dist/esm/src/wallet/substrates/window.CWI.js +28 -28
  301. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  302. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  303. package/dist/types/mod.d.ts +15 -15
  304. package/dist/types/src/auth/Peer.d.ts +10 -10
  305. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  306. package/dist/types/src/auth/SessionManager.d.ts +4 -4
  307. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  308. package/dist/types/src/auth/certificates/Certificate.d.ts +6 -6
  309. package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
  310. package/dist/types/src/auth/certificates/MasterCertificate.d.ts +5 -5
  311. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
  312. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
  313. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +23 -22
  314. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
  315. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  316. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
  317. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
  318. package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
  319. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
  320. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
  321. package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
  322. package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
  323. package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
  324. package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
  325. package/dist/types/src/compat/BSM.d.ts +1 -1
  326. package/dist/types/src/compat/BSM.d.ts.map +1 -1
  327. package/dist/types/src/compat/ECIES.d.ts +36 -36
  328. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  329. package/dist/types/src/compat/HD.d.ts +51 -51
  330. package/dist/types/src/compat/HD.d.ts.map +1 -1
  331. package/dist/types/src/compat/Mnemonic.d.ts +79 -79
  332. package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
  333. package/dist/types/src/compat/Utxo.d.ts.map +1 -1
  334. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
  335. package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
  336. package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
  337. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  338. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +17 -17
  339. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
  340. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +14 -14
  341. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  342. package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
  343. package/dist/types/src/primitives/BasePoint.d.ts +8 -8
  344. package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
  345. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  346. package/dist/types/src/primitives/Curve.d.ts +14 -7
  347. package/dist/types/src/primitives/Curve.d.ts.map +1 -1
  348. package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
  349. package/dist/types/src/primitives/ECDSA.d.ts +1 -1
  350. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  351. package/dist/types/src/primitives/Hash.d.ts +11 -11
  352. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  353. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
  354. package/dist/types/src/primitives/Point.d.ts +14 -10
  355. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  356. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
  357. package/dist/types/src/primitives/PrivateKey.d.ts +2 -2
  358. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  359. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  360. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  361. package/dist/types/src/primitives/Schnorr.d.ts +14 -14
  362. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
  363. package/dist/types/src/primitives/Signature.d.ts +1 -1
  364. package/dist/types/src/primitives/Signature.d.ts.map +1 -1
  365. package/dist/types/src/primitives/SymmetricKey.d.ts +13 -13
  366. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  367. package/dist/types/src/primitives/TransactionSignature.d.ts +4 -4
  368. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  369. package/dist/types/src/primitives/utils.d.ts +3 -6
  370. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  371. package/dist/types/src/script/Script.d.ts +3 -3
  372. package/dist/types/src/script/Script.d.ts.map +1 -1
  373. package/dist/types/src/script/ScriptTemplate.d.ts +2 -2
  374. package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
  375. package/dist/types/src/script/Spend.d.ts.map +1 -1
  376. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  377. package/dist/types/src/script/templates/PushDrop.d.ts +1 -2
  378. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  379. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
  380. package/dist/types/src/totp/totp.d.ts.map +1 -1
  381. package/dist/types/src/transaction/Beef.d.ts +96 -96
  382. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  383. package/dist/types/src/transaction/BeefParty.d.ts +22 -22
  384. package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
  385. package/dist/types/src/transaction/BeefTx.d.ts +5 -5
  386. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  387. package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
  388. package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
  389. package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
  390. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  391. package/dist/types/src/transaction/Transaction.d.ts +4 -12
  392. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  393. package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
  394. package/dist/types/src/transaction/broadcasters/ARC.d.ts +1 -1
  395. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  396. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  397. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  398. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  399. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  400. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  401. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +1 -1
  402. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  403. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +5 -5
  404. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  405. package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
  406. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  407. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +3 -3
  408. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  409. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  410. package/dist/types/src/transaction/index.d.ts.map +1 -1
  411. package/dist/types/src/wallet/CachedKeyDeriver.d.ts +58 -58
  412. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  413. package/dist/types/src/wallet/KeyDeriver.d.ts +78 -78
  414. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  415. package/dist/types/src/wallet/ProtoWallet.d.ts +10 -10
  416. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
  417. package/dist/types/src/wallet/Wallet.interfaces.d.ts +151 -152
  418. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  419. package/dist/types/src/wallet/WalletClient.d.ts +5 -5
  420. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  421. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +6 -6
  422. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  423. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
  424. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
  425. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
  426. package/dist/types/src/wallet/substrates/XDM.d.ts +1 -1
  427. package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
  428. package/dist/types/src/wallet/substrates/window.CWI.d.ts +6 -6
  429. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  430. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  431. package/dist/umd/bundle.js +1 -1
  432. package/docs/auth.md +92 -82
  433. package/docs/compat.md +24 -24
  434. package/docs/messages.md +7 -5
  435. package/docs/overlay-tools.md +21 -21
  436. package/docs/primitives.md +336 -315
  437. package/docs/script.md +35 -35
  438. package/docs/swagger/dist/swagger-initializer.js +7 -7
  439. package/docs/swagger/dist/swagger-ui-bundle.js +1 -1
  440. package/docs/swagger/dist/swagger-ui-es-bundle-core.js +2 -2
  441. package/docs/swagger/dist/swagger-ui-es-bundle.js +1 -1
  442. package/docs/swagger/dist/swagger-ui-standalone-preset.js +1 -1
  443. package/docs/swagger/dist/swagger-ui.js +2 -2
  444. package/docs/totp.md +5 -5
  445. package/docs/transaction.md +103 -105
  446. package/docs/wallet-substrates.md +17 -17
  447. package/docs/wallet.md +202 -204
  448. package/mod.ts +15 -15
  449. package/package.json +15 -3
  450. package/src/auth/Peer.ts +271 -121
  451. package/src/auth/SessionManager.ts +17 -10
  452. package/src/auth/__tests/Peer.test.ts +361 -179
  453. package/src/auth/__tests/SessionManager.test.ts +67 -19
  454. package/src/auth/__tests/build.test.ts +11 -0
  455. package/src/auth/certificates/Certificate.ts +27 -14
  456. package/src/auth/certificates/MasterCertificate.ts +106 -62
  457. package/src/auth/certificates/VerifiableCertificate.ts +30 -8
  458. package/src/auth/certificates/__tests/Certificate.test.ts +32 -17
  459. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +171 -68
  460. package/src/auth/certificates/__tests/MasterCertificate.test.ts +63 -47
  461. package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +42 -31
  462. package/src/auth/certificates/index.ts +1 -1
  463. package/src/auth/clients/AuthFetch.ts +1 -0
  464. package/src/auth/clients/index.ts +1 -1
  465. package/src/auth/transports/SimplifiedFetchTransport.ts +145 -72
  466. package/src/auth/transports/index.ts +1 -1
  467. package/src/auth/utils/__tests/cryptononce.test.ts +52 -23
  468. package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +56 -30
  469. package/src/auth/utils/__tests/validateCertificates.test.ts +53 -31
  470. package/src/auth/utils/createNonce.ts +11 -3
  471. package/src/auth/utils/getVerifiableCertificates.ts +12 -7
  472. package/src/auth/utils/validateCertificates.ts +57 -39
  473. package/src/auth/utils/verifyNonce.ts +6 -2
  474. package/src/compat/BSM.ts +10 -2
  475. package/src/compat/ECIES.ts +265 -141
  476. package/src/compat/HD.ts +81 -63
  477. package/src/compat/Mnemonic.ts +104 -91
  478. package/src/compat/Utxo.ts +8 -5
  479. package/src/compat/__tests/BSM.test.ts +42 -16
  480. package/src/compat/__tests/ECIES.test.ts +117 -52
  481. package/src/compat/__tests/HD.test.ts +55 -42
  482. package/src/compat/__tests/Mnemonic.test.ts +11 -12
  483. package/src/compat/__tests/Mnemonic.vectors.ts +110 -55
  484. package/src/messages/EncryptedMessage.ts +6 -2
  485. package/src/messages/SignedMessage.ts +14 -8
  486. package/src/messages/__tests/EncryptedMessage.test.ts +23 -24
  487. package/src/messages/__tests/SignedMessage.test.ts +17 -11
  488. package/src/overlay-tools/LookupResolver.ts +108 -56
  489. package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -23
  490. package/src/overlay-tools/SHIPBroadcaster.ts +135 -59
  491. package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
  492. package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
  493. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
  494. package/src/primitives/AESGCM.ts +2 -0
  495. package/src/primitives/BasePoint.ts +4 -4
  496. package/src/primitives/BigNumber.ts +99 -90
  497. package/src/primitives/Curve.ts +117 -46
  498. package/src/primitives/DRBG.ts +9 -11
  499. package/src/primitives/ECDSA.ts +109 -63
  500. package/src/primitives/Hash.ts +492 -321
  501. package/src/primitives/JacobianPoint.ts +67 -19
  502. package/src/primitives/Point.ts +254 -152
  503. package/src/primitives/Polynomial.ts +8 -3
  504. package/src/primitives/PrivateKey.ts +41 -17
  505. package/src/primitives/PublicKey.ts +13 -3
  506. package/src/primitives/Random.ts +14 -8
  507. package/src/primitives/ReductionContext.ts +1 -1
  508. package/src/primitives/Schnorr.ts +40 -18
  509. package/src/primitives/Signature.ts +26 -16
  510. package/src/primitives/SymmetricKey.ts +14 -14
  511. package/src/primitives/TransactionSignature.ts +41 -17
  512. package/src/primitives/__tests/AESGCM.test.ts +457 -151
  513. package/src/primitives/__tests/BRC42.private.vectors.ts +30 -15
  514. package/src/primitives/__tests/BRC42.public.vectors.ts +30 -15
  515. package/src/primitives/__tests/BigNumber.arithmatic.test.ts +344 -125
  516. package/src/primitives/__tests/BigNumber.binary.test.ts +148 -67
  517. package/src/primitives/__tests/BigNumber.constructor.test.ts +65 -25
  518. package/src/primitives/__tests/BigNumber.dhGroup.test.ts +15 -11
  519. package/src/primitives/__tests/BigNumber.fixtures.ts +16 -8
  520. package/src/primitives/__tests/BigNumber.serializers.test.ts +41 -15
  521. package/src/primitives/__tests/BigNumber.utils.test.ts +132 -42
  522. package/src/primitives/__tests/Curve.unit.test.ts +75 -53
  523. package/src/primitives/__tests/DRBG.test.ts +1 -1
  524. package/src/primitives/__tests/DRBG.vectors.ts +45 -75
  525. package/src/primitives/__tests/ECDH.test.ts +15 -8
  526. package/src/primitives/__tests/ECDSA.test.ts +12 -6
  527. package/src/primitives/__tests/HMAC.test.ts +24 -18
  528. package/src/primitives/__tests/Hash.test.ts +57 -46
  529. package/src/primitives/__tests/PBKDF2.vectors.ts +130 -117
  530. package/src/primitives/__tests/PrivateKey.split.test.ts +33 -11
  531. package/src/primitives/__tests/PrivateKey.test.ts +11 -10
  532. package/src/primitives/__tests/PublicKey.test.ts +64 -53
  533. package/src/primitives/__tests/Random.test.ts +1 -1
  534. package/src/primitives/__tests/Reader.test.ts +240 -219
  535. package/src/primitives/__tests/ReductionContext.test.ts +98 -61
  536. package/src/primitives/__tests/Schnorr.test.ts +249 -237
  537. package/src/primitives/__tests/SymmetricKey.test.ts +18 -15
  538. package/src/primitives/__tests/SymmetricKey.vectors.ts +16 -8
  539. package/src/primitives/__tests/Writer.test.ts +23 -13
  540. package/src/primitives/__tests/bug-31.test.ts +6 -10
  541. package/src/primitives/__tests/utils.test.ts +70 -19
  542. package/src/primitives/utils.ts +103 -79
  543. package/src/script/Script.ts +18 -12
  544. package/src/script/ScriptTemplate.ts +3 -5
  545. package/src/script/Spend.ts +306 -108
  546. package/src/script/__tests/Script.test.ts +73 -55
  547. package/src/script/__tests/Spend.test.ts +208 -83
  548. package/src/script/__tests/SpendComplex.test.ts +19 -13
  549. package/src/script/__tests/script.invalid.vectors.ts +428 -1796
  550. package/src/script/__tests/script.valid.vectors.ts +728 -2764
  551. package/src/script/templates/P2PKH.ts +34 -12
  552. package/src/script/templates/PushDrop.ts +65 -31
  553. package/src/script/templates/RPuzzle.ts +29 -8
  554. package/src/script/templates/__tests/PushDrop.test.ts +146 -41
  555. package/src/totp/__tests/totp.test.ts +45 -44
  556. package/src/totp/totp.ts +3 -2
  557. package/src/transaction/Beef.ts +269 -174
  558. package/src/transaction/BeefParty.ts +41 -31
  559. package/src/transaction/BeefTx.ts +36 -26
  560. package/src/transaction/Broadcaster.ts +10 -6
  561. package/src/transaction/ChainTracker.ts +2 -2
  562. package/src/transaction/FeeModel.ts +0 -1
  563. package/src/transaction/MerklePath.ts +124 -59
  564. package/src/transaction/Transaction.ts +188 -187
  565. package/src/transaction/TransactionOutput.ts +0 -1
  566. package/src/transaction/__tests/Beef.test.ts +390 -287
  567. package/src/transaction/__tests/MerklePath.test.ts +59 -26
  568. package/src/transaction/__tests/Transaction.benchmarks.test.ts +231 -201
  569. package/src/transaction/__tests/Transaction.test.ts +758 -482
  570. package/src/transaction/__tests/bigtx.vectors.ts +2 -1
  571. package/src/transaction/__tests/bump.invalid.vectors.ts +24 -6
  572. package/src/transaction/__tests/bump.valid.vectors.ts +6 -2
  573. package/src/transaction/__tests/tx.invalid.vectors.ts +881 -185
  574. package/src/transaction/__tests/tx.valid.vectors.ts +1210 -257
  575. package/src/transaction/broadcasters/ARC.ts +69 -38
  576. package/src/transaction/broadcasters/DefaultBroadcaster.ts +9 -3
  577. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +20 -7
  578. package/src/transaction/broadcasters/__tests/ARC.test.ts +127 -59
  579. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +27 -18
  580. package/src/transaction/chaintrackers/DefaultChainTracker.ts +1 -1
  581. package/src/transaction/chaintrackers/WhatsOnChain.ts +27 -11
  582. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +59 -23
  583. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +9 -5
  584. package/src/transaction/http/DefaultHttpClient.ts +5 -4
  585. package/src/transaction/http/FetchHttpClient.ts +18 -9
  586. package/src/transaction/http/HttpClient.ts +27 -22
  587. package/src/transaction/http/NodejsHttpClient.ts +23 -9
  588. package/src/transaction/http/index.ts +5 -1
  589. package/src/transaction/index.ts +5 -1
  590. package/src/wallet/CachedKeyDeriver.ts +151 -82
  591. package/src/wallet/KeyDeriver.ts +186 -105
  592. package/src/wallet/ProtoWallet.ts +121 -52
  593. package/src/wallet/Wallet.interfaces.ts +167 -156
  594. package/src/wallet/WalletClient.ts +314 -59
  595. package/src/wallet/WalletError.ts +2 -2
  596. package/src/wallet/__tests/CachedKeyDeriver.test.ts +86 -27
  597. package/src/wallet/__tests/KeyDeriver.test.ts +136 -33
  598. package/src/wallet/__tests/ProtoWallet.test.ts +190 -102
  599. package/src/wallet/substrates/HTTPWalletJSON.ts +250 -67
  600. package/src/wallet/substrates/HTTPWalletWire.ts +7 -3
  601. package/src/wallet/substrates/WalletWireCalls.ts +2 -2
  602. package/src/wallet/substrates/WalletWireProcessor.ts +1412 -1277
  603. package/src/wallet/substrates/WalletWireTransceiver.ts +713 -138
  604. package/src/wallet/substrates/XDM.ts +425 -36
  605. package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +488 -225
  606. package/src/wallet/substrates/__tests/XDM.test.ts +232 -234
  607. package/src/wallet/substrates/window.CWI.ts +520 -61
@@ -1,1502 +1,454 @@
1
1
  export default [
2
- [
3
- 'Format is: [scriptSig, scriptPubKey, flags, ... comments]'
4
- ],
2
+ ['Format is: [scriptSig, scriptPubKey, flags, ... comments]'],
5
3
  [
6
4
  'It is evaluated as if there was a crediting coinbase transaction with two 0'
7
5
  ],
8
- [
9
- 'pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey,'
10
- ],
6
+ ['pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey,'],
11
7
  [
12
8
  'followed by a spending transaction which spends this output as only input (and'
13
9
  ],
14
10
  [
15
11
  'correct prevout hash), using the given scriptSig. All nLockTimes are 0, all'
16
12
  ],
17
- [
18
- 'nSequences are max.'
19
- ],
13
+ ['nSequences are max.'],
20
14
  [
21
15
  '',
22
16
  '74',
23
17
  'P2SH,STRICTENC',
24
18
  'Test the test: we should have an empty stack after scriptSig evaluation'
25
19
  ],
26
- [
27
- '',
28
- '74',
29
- 'P2SH,STRICTENC',
30
- 'and multiple spaces should not change that.'
31
- ],
32
- [
33
- '',
34
- '74',
35
- 'P2SH,STRICTENC'
36
- ],
37
- [
38
- '',
39
- '74',
40
- 'P2SH,STRICTENC'
41
- ],
42
- [
43
- '',
44
- '',
45
- 'P2SH,STRICTENC'
46
- ],
47
- [
48
- '',
49
- '61',
50
- 'P2SH,STRICTENC'
51
- ],
52
- [
53
- '',
54
- '6174',
55
- 'P2SH,STRICTENC'
56
- ],
57
- [
58
- '61',
59
- '',
60
- 'P2SH,STRICTENC'
61
- ],
62
- [
63
- '61',
64
- '74',
65
- 'P2SH,STRICTENC'
66
- ],
67
- [
68
- '61',
69
- '61',
70
- 'P2SH,STRICTENC'
71
- ],
72
- [
73
- '61',
74
- '6174',
75
- 'P2SH,STRICTENC'
76
- ],
77
- [
78
- '74',
79
- '',
80
- 'P2SH,STRICTENC'
81
- ],
82
- [
83
- '4c00',
84
- '0161',
85
- 'P2SH,STRICTENC',
86
- 'PUSHDATA1 with not enough bytes'
87
- ],
88
- [
89
- '4d0100ff',
90
- '0161',
91
- 'P2SH,STRICTENC',
92
- 'PUSHDATA2 with not enough bytes'
93
- ],
20
+ ['', '74', 'P2SH,STRICTENC', 'and multiple spaces should not change that.'],
21
+ ['', '74', 'P2SH,STRICTENC'],
22
+ ['', '74', 'P2SH,STRICTENC'],
23
+ ['', '', 'P2SH,STRICTENC'],
24
+ ['', '61', 'P2SH,STRICTENC'],
25
+ ['', '6174', 'P2SH,STRICTENC'],
26
+ ['61', '', 'P2SH,STRICTENC'],
27
+ ['61', '74', 'P2SH,STRICTENC'],
28
+ ['61', '61', 'P2SH,STRICTENC'],
29
+ ['61', '6174', 'P2SH,STRICTENC'],
30
+ ['74', '', 'P2SH,STRICTENC'],
31
+ ['4c00', '0161', 'P2SH,STRICTENC', 'PUSHDATA1 with not enough bytes'],
32
+ ['4d0100ff', '0161', 'P2SH,STRICTENC', 'PUSHDATA2 with not enough bytes'],
94
33
  [
95
34
  '4e02000000ffff',
96
35
  '0161',
97
36
  'P2SH,STRICTENC',
98
37
  'PUSHDATA4 with not enough bytes'
99
38
  ],
100
- [
101
- '51',
102
- '63506851',
103
- 'P2SH,STRICTENC',
104
- '0x50 is reserved'
105
- ],
39
+ ['51', '63506851', 'P2SH,STRICTENC', '0x50 is reserved'],
106
40
  [
107
41
  '52',
108
42
  '5f936087',
109
43
  'P2SH,STRICTENC',
110
44
  '0x51 through 0x60 push 1 through 16 onto stack'
111
45
  ],
46
+ ['00', '61', 'P2SH,STRICTENC'],
47
+ ['51', '6362675168', 'P2SH,STRICTENC', 'VER non-functional'],
48
+ ['00', '6365675168', 'P2SH,STRICTENC', 'VERIF illegal everywhere'],
49
+ ['00', '636751676568', 'P2SH,STRICTENC', 'VERIF illegal everywhere'],
50
+ ['00', '6366675168', 'P2SH,STRICTENC', 'VERNOTIF illegal everywhere'],
51
+ ['00', '636751676668', 'P2SH,STRICTENC', 'VERNOTIF illegal everywhere'],
112
52
  [
113
- '00',
114
- '61',
115
- 'P2SH,STRICTENC'
116
- ],
117
- [
118
- '51',
119
- '6362675168',
120
- 'P2SH,STRICTENC',
121
- 'VER non-functional'
122
- ],
123
- [
124
- '00',
125
- '6365675168',
53
+ '5163',
54
+ '5168',
126
55
  'P2SH,STRICTENC',
127
- 'VERIF illegal everywhere'
56
+ "IF/ENDIF can't span scriptSig/scriptPubKey"
128
57
  ],
58
+ ['51630068', '5168', 'P2SH,STRICTENC'],
59
+ ['51670068', '51', 'P2SH,STRICTENC'],
60
+ ['0064', '017b', 'P2SH,STRICTENC'],
61
+ ['00', '766368', 'P2SH,STRICTENC'],
62
+ ['00', '635168', 'P2SH,STRICTENC'],
63
+ ['00', '76636768', 'P2SH,STRICTENC'],
64
+ ['00', '63516768', 'P2SH,STRICTENC'],
65
+ ['00', '64675168', 'P2SH,STRICTENC'],
66
+ ['0051', '63635167006868', 'P2SH,STRICTENC'],
67
+ ['0000', '63635167006868', 'P2SH,STRICTENC'],
68
+ ['5100', '63635167006867630067516868', 'P2SH,STRICTENC'],
69
+ ['0051', '63635167006867630067516868', 'P2SH,STRICTENC'],
70
+ ['0000', '64635167006868', 'P2SH,STRICTENC'],
71
+ ['0051', '64635167006868', 'P2SH,STRICTENC'],
72
+ ['5151', '64635167006867630067516868', 'P2SH,STRICTENC'],
73
+ ['0000', '64635167006867630067516868', 'P2SH,STRICTENC'],
74
+ ['51', '636a67675168', 'P2SH,STRICTENC', 'Multiple ELSEs'],
75
+ ['51', '635167676a68', 'P2SH,STRICTENC'],
76
+ ['51', '68', 'P2SH,STRICTENC', 'Malformed IF/ELSE/ENDIF sequence'],
77
+ ['51', '6768', 'P2SH,STRICTENC'],
78
+ ['51', '6867', 'P2SH,STRICTENC'],
79
+ ['51', '686763', 'P2SH,STRICTENC'],
80
+ ['51', '63676867', 'P2SH,STRICTENC'],
81
+ ['51', '6367686768', 'P2SH,STRICTENC'],
82
+ ['51', '636868', 'P2SH,STRICTENC'],
83
+ ['51', '6367676868', 'P2SH,STRICTENC'],
84
+ ['51', '6a', 'P2SH,STRICTENC'],
85
+ ['51', '76636a68', 'P2SH,STRICTENC'],
86
+ ['51', '6a64617461', 'P2SH,STRICTENC', 'canonical prunable txout format'],
129
87
  [
130
- '00',
131
- '636751676568',
88
+ '0063',
89
+ '6a6851',
132
90
  'P2SH,STRICTENC',
133
- 'VERIF illegal everywhere'
91
+ "still prunable because IF/ENDIF can't span scriptSig/scriptPubKey"
134
92
  ],
93
+ ['00', '6951', 'P2SH,STRICTENC'],
94
+ ['51', '69', 'P2SH,STRICTENC'],
95
+ ['51', '6900', 'P2SH,STRICTENC'],
96
+ ['516b', '6c51', 'P2SH,STRICTENC', 'alt stack not shared between sig/pubkey'],
97
+ ['73', '740087', 'P2SH,STRICTENC'],
98
+ ['75', '740087', 'P2SH,STRICTENC'],
99
+ ['76', '740087', 'P2SH,STRICTENC'],
100
+ ['51', '76519352880087', 'P2SH,STRICTENC'],
101
+ ['61', '77', 'P2SH,STRICTENC'],
102
+ ['61', '5177', 'P2SH,STRICTENC'],
103
+ ['61', '510077', 'P2SH,STRICTENC'],
104
+ ['61', '7851', 'P2SH,STRICTENC'],
105
+ ['51', '78', 'P2SH,STRICTENC'],
106
+ ['0051', '78745388', 'P2SH,STRICTENC'],
107
+ ['011301140115', '79011388745287', 'P2SH,STRICTENC'],
108
+ ['61', '0079', 'P2SH,STRICTENC'],
109
+ ['51', '4f79', 'P2SH,STRICTENC'],
110
+ ['011301140115', '0079011488745387', 'P2SH,STRICTENC'],
111
+ ['011301140115', '5179011588745387', 'P2SH,STRICTENC'],
112
+ ['011301140115', '5279011688745387', 'P2SH,STRICTENC'],
113
+ ['61', '007a', 'P2SH,STRICTENC'],
114
+ ['51', '4f7a', 'P2SH,STRICTENC'],
115
+ ['011301140115', '007a011488745287', 'P2SH,STRICTENC'],
116
+ ['011301140115', '517a011588745287', 'P2SH,STRICTENC'],
117
+ ['011301140115', '527a011688745287', 'P2SH,STRICTENC'],
118
+ ['61', '7b51', 'P2SH,STRICTENC'],
119
+ ['61', '517b51', 'P2SH,STRICTENC'],
120
+ ['61', '51527b51', 'P2SH,STRICTENC'],
121
+ ['61', '0051527b', 'P2SH,STRICTENC'],
122
+ ['61', '7c51', 'P2SH,STRICTENC'],
123
+ ['51', '7c51', 'P2SH,STRICTENC'],
124
+ ['0051', '7c5188', 'P2SH,STRICTENC'],
125
+ ['61', '7d51', 'P2SH,STRICTENC'],
126
+ ['51', '7d51', 'P2SH,STRICTENC'],
127
+ ['5100', '7d7453887c6d', 'P2SH,STRICTENC'],
128
+ ['61', '6e51', 'P2SH,STRICTENC'],
129
+ ['51', '6e51', 'P2SH,STRICTENC'],
130
+ ['61', '6f51', 'P2SH,STRICTENC'],
131
+ ['51', '6f51', 'P2SH,STRICTENC'],
132
+ ['5152', '6f51', 'P2SH,STRICTENC'],
133
+ ['61', '7051', 'P2SH,STRICTENC'],
134
+ ['51', '52537051', 'P2SH,STRICTENC'],
135
+ ['61', '7251', 'P2SH,STRICTENC'],
136
+ ['51', '52537251', 'P2SH,STRICTENC'],
137
+ ['6162635200', '6380675168', 'P2SH,STRICTENC', 'LEFT disabled'],
138
+ ['6162635200', '6381675168', 'P2SH,STRICTENC', 'RIGHT disabled'],
139
+ ['61', '8251', 'P2SH,STRICTENC'],
140
+ ['616263', '6383675168', 'P2SH,STRICTENC', 'INVERT disabled'],
141
+ ['5200638d675168', '61', 'P2SH,STRICTENC', '2MUL disabled'],
142
+ ['5200638e675168', '61', 'P2SH,STRICTENC', '2DIV disabled'],
135
143
  [
136
- '00',
137
- '6366675168',
144
+ '',
145
+ '8791',
138
146
  'P2SH,STRICTENC',
139
- 'VERNOTIF illegal everywhere'
147
+ 'EQUAL must error when there are no stack items'
140
148
  ],
141
149
  [
142
150
  '00',
143
- '636751676668',
151
+ '8791',
144
152
  'P2SH,STRICTENC',
145
- 'VERNOTIF illegal everywhere'
153
+ 'EQUAL must error when there are not 2 stack items'
146
154
  ],
155
+ ['0051', '87', 'P2SH,STRICTENC'],
156
+ ['515193', '0087', 'P2SH,STRICTENC'],
157
+ ['5b51935c94', '5b87', 'P2SH,STRICTENC'],
147
158
  [
148
- '5163',
149
- '5168',
159
+ '0500000080000093',
160
+ '61',
150
161
  'P2SH,STRICTENC',
151
- "IF/ENDIF can't span scriptSig/scriptPubKey"
152
- ],
153
- [
154
- '51630068',
155
- '5168',
156
- 'P2SH,STRICTENC'
157
- ],
158
- [
159
- '51670068',
160
- '51',
161
- 'P2SH,STRICTENC'
162
- ],
163
- [
164
- '0064',
165
- '017b',
166
- 'P2SH,STRICTENC'
167
- ],
168
- [
169
- '00',
170
- '766368',
171
- 'P2SH,STRICTENC'
172
- ],
173
- [
174
- '00',
175
- '635168',
176
- 'P2SH,STRICTENC'
177
- ],
178
- [
179
- '00',
180
- '76636768',
181
- 'P2SH,STRICTENC'
182
- ],
183
- [
184
- '00',
185
- '63516768',
186
- 'P2SH,STRICTENC'
187
- ],
188
- [
189
- '00',
190
- '64675168',
191
- 'P2SH,STRICTENC'
192
- ],
193
- [
194
- '0051',
195
- '63635167006868',
196
- 'P2SH,STRICTENC'
197
- ],
198
- [
199
- '0000',
200
- '63635167006868',
201
- 'P2SH,STRICTENC'
202
- ],
203
- [
204
- '5100',
205
- '63635167006867630067516868',
206
- 'P2SH,STRICTENC'
207
- ],
208
- [
209
- '0051',
210
- '63635167006867630067516868',
211
- 'P2SH,STRICTENC'
212
- ],
213
- [
214
- '0000',
215
- '64635167006868',
216
- 'P2SH,STRICTENC'
217
- ],
218
- [
219
- '0051',
220
- '64635167006868',
221
- 'P2SH,STRICTENC'
222
- ],
223
- [
224
- '5151',
225
- '64635167006867630067516868',
226
- 'P2SH,STRICTENC'
227
- ],
228
- [
229
- '0000',
230
- '64635167006867630067516868',
231
- 'P2SH,STRICTENC'
162
+ 'arithmetic operands must be in range [-2^31...2^31] '
232
163
  ],
233
164
  [
234
- '51',
235
- '636a67675168',
165
+ '0500000080800093',
166
+ '61',
236
167
  'P2SH,STRICTENC',
237
- 'Multiple ELSEs'
238
- ],
239
- [
240
- '51',
241
- '635167676a68',
242
- 'P2SH,STRICTENC'
168
+ 'arithmetic operands must be in range [-2^31...2^31] '
243
169
  ],
244
170
  [
245
- '51',
246
- '68',
171
+ '04ffffff7f7693',
172
+ '05feffffff009c',
247
173
  'P2SH,STRICTENC',
248
- 'Malformed IF/ELSE/ENDIF sequence'
249
- ],
250
- [
251
- '51',
252
- '6768',
253
- 'P2SH,STRICTENC'
254
- ],
255
- [
256
- '51',
257
- '6867',
258
- 'P2SH,STRICTENC'
259
- ],
260
- [
261
- '51',
262
- '686763',
263
- 'P2SH,STRICTENC'
264
- ],
265
- [
266
- '51',
267
- '63676867',
268
- 'P2SH,STRICTENC'
269
- ],
270
- [
271
- '51',
272
- '6367686768',
273
- 'P2SH,STRICTENC'
174
+ 'NUMEQUAL must be in numeric range'
274
175
  ],
176
+ ['61626364656691', '0087', 'P2SH,STRICTENC', 'NOT is an arithmetic operand'],
177
+ ['528d', '5487', 'P2SH,STRICTENC', 'disabled'],
178
+ ['528e', '5187', 'P2SH,STRICTENC', 'disabled'],
179
+ ['51', 'b0b1b2b3b4b5b6b7b8b95287', 'P2SH,STRICTENC'],
275
180
  [
276
- '51',
277
- '636868',
181
+ '4e060000005f746f5f3130b0b1b2b3b4b5b6b7b8b9',
182
+ '4e060000005f746f5f313187',
278
183
  'P2SH,STRICTENC'
279
184
  ],
185
+ ['Ensure 100% coverage of discouraged NOPS'],
186
+ ['51', 'b0', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
187
+ ['51', 'b1', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
188
+ ['51', 'b2', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
189
+ ['51', 'b3', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
190
+ ['51', 'b4', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
191
+ ['51', 'b5', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
192
+ ['51', 'b6', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
193
+ ['51', 'b7', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
194
+ ['51', 'b8', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
195
+ ['51', 'b9', 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'],
280
196
  [
197
+ 'b9',
281
198
  '51',
282
- '6367676868',
283
- 'P2SH,STRICTENC'
199
+ 'P2SH,DISCOURAGE_UPGRADABLE_NOPS',
200
+ 'Discouraged NOP10 in scriptSig'
284
201
  ],
285
202
  [
286
- '51',
287
- '6a',
288
- 'P2SH,STRICTENC'
203
+ '5101b9',
204
+ 'a91415727299b05b45fdaf9ac9ecf7565cfe27c3e56787',
205
+ 'P2SH,DISCOURAGE_UPGRADABLE_NOPS',
206
+ 'Discouraged NOP10 in redeemScript'
289
207
  ],
208
+ ['50', '51', 'P2SH,STRICTENC', 'opcode 0x50 is reserved'],
290
209
  [
291
210
  '51',
292
- '76636a68',
293
- 'P2SH,STRICTENC'
211
+ '63ba675168',
212
+ 'P2SH,STRICTENC',
213
+ 'opcodes above NOP10 invalid if executed'
294
214
  ],
215
+ ['51', '63bb675168', 'P2SH,STRICTENC'],
216
+ ['51', '63bc675168', 'P2SH,STRICTENC'],
217
+ ['51', '63bd675168', 'P2SH,STRICTENC'],
218
+ ['51', '63be675168', 'P2SH,STRICTENC'],
219
+ ['51', '63bf675168', 'P2SH,STRICTENC'],
220
+ ['51', '63c0675168', 'P2SH,STRICTENC'],
221
+ ['51', '63c1675168', 'P2SH,STRICTENC'],
222
+ ['51', '63c2675168', 'P2SH,STRICTENC'],
223
+ ['51', '63c3675168', 'P2SH,STRICTENC'],
224
+ ['51', '63c4675168', 'P2SH,STRICTENC'],
225
+ ['51', '63c5675168', 'P2SH,STRICTENC'],
226
+ ['51', '63c6675168', 'P2SH,STRICTENC'],
227
+ ['51', '63c7675168', 'P2SH,STRICTENC'],
228
+ ['51', '63c8675168', 'P2SH,STRICTENC'],
229
+ ['51', '63c9675168', 'P2SH,STRICTENC'],
230
+ ['51', '63ca675168', 'P2SH,STRICTENC'],
231
+ ['51', '63cb675168', 'P2SH,STRICTENC'],
232
+ ['51', '63cc675168', 'P2SH,STRICTENC'],
233
+ ['51', '63cd675168', 'P2SH,STRICTENC'],
234
+ ['51', '63ce675168', 'P2SH,STRICTENC'],
235
+ ['51', '63cf675168', 'P2SH,STRICTENC'],
236
+ ['51', '63d0675168', 'P2SH,STRICTENC'],
237
+ ['51', '63d1675168', 'P2SH,STRICTENC'],
238
+ ['51', '63d2675168', 'P2SH,STRICTENC'],
239
+ ['51', '63d3675168', 'P2SH,STRICTENC'],
240
+ ['51', '63d4675168', 'P2SH,STRICTENC'],
241
+ ['51', '63d5675168', 'P2SH,STRICTENC'],
242
+ ['51', '63d6675168', 'P2SH,STRICTENC'],
243
+ ['51', '63d7675168', 'P2SH,STRICTENC'],
244
+ ['51', '63d8675168', 'P2SH,STRICTENC'],
245
+ ['51', '63d9675168', 'P2SH,STRICTENC'],
246
+ ['51', '63da675168', 'P2SH,STRICTENC'],
247
+ ['51', '63db675168', 'P2SH,STRICTENC'],
248
+ ['51', '63dc675168', 'P2SH,STRICTENC'],
249
+ ['51', '63dd675168', 'P2SH,STRICTENC'],
250
+ ['51', '63de675168', 'P2SH,STRICTENC'],
251
+ ['51', '63df675168', 'P2SH,STRICTENC'],
252
+ ['51', '63e0675168', 'P2SH,STRICTENC'],
253
+ ['51', '63e1675168', 'P2SH,STRICTENC'],
254
+ ['51', '63e2675168', 'P2SH,STRICTENC'],
255
+ ['51', '63e3675168', 'P2SH,STRICTENC'],
256
+ ['51', '63e4675168', 'P2SH,STRICTENC'],
257
+ ['51', '63e5675168', 'P2SH,STRICTENC'],
258
+ ['51', '63e6675168', 'P2SH,STRICTENC'],
259
+ ['51', '63e7675168', 'P2SH,STRICTENC'],
260
+ ['51', '63e8675168', 'P2SH,STRICTENC'],
261
+ ['51', '63e9675168', 'P2SH,STRICTENC'],
262
+ ['51', '63ea675168', 'P2SH,STRICTENC'],
263
+ ['51', '63eb675168', 'P2SH,STRICTENC'],
264
+ ['51', '63ec675168', 'P2SH,STRICTENC'],
265
+ ['51', '63ed675168', 'P2SH,STRICTENC'],
266
+ ['51', '63ee675168', 'P2SH,STRICTENC'],
267
+ ['51', '63ef675168', 'P2SH,STRICTENC'],
268
+ ['51', '63f0675168', 'P2SH,STRICTENC'],
269
+ ['51', '63f1675168', 'P2SH,STRICTENC'],
270
+ ['51', '63f2675168', 'P2SH,STRICTENC'],
271
+ ['51', '63f3675168', 'P2SH,STRICTENC'],
272
+ ['51', '63f4675168', 'P2SH,STRICTENC'],
273
+ ['51', '63f5675168', 'P2SH,STRICTENC'],
274
+ ['51', '63f6675168', 'P2SH,STRICTENC'],
275
+ ['51', '63f7675168', 'P2SH,STRICTENC'],
276
+ ['51', '63f8675168', 'P2SH,STRICTENC'],
277
+ ['51', '63f9675168', 'P2SH,STRICTENC'],
278
+ ['51', '63fa675168', 'P2SH,STRICTENC'],
279
+ ['51', '63fb675168', 'P2SH,STRICTENC'],
280
+ ['51', '63fc675168', 'P2SH,STRICTENC'],
281
+ ['51', '63fd675168', 'P2SH,STRICTENC'],
282
+ ['51', '63fe675168', 'P2SH,STRICTENC'],
283
+ ['51', '63ff675168', 'P2SH,STRICTENC'],
295
284
  [
296
- '51',
297
- '6a64617461',
285
+ '51635167',
286
+ 'ff68',
298
287
  'P2SH,STRICTENC',
299
- 'canonical prunable txout format'
288
+ 'invalid because scriptSig and scriptPubKey are processed separately'
300
289
  ],
290
+ ['61', 'a6', 'P2SH,STRICTENC'],
291
+ ['61', 'a7', 'P2SH,STRICTENC'],
292
+ ['61', 'a8', 'P2SH,STRICTENC'],
293
+ ['61', 'a9', 'P2SH,STRICTENC'],
294
+ ['61', 'aa', 'P2SH,STRICTENC'],
301
295
  [
302
- '0063',
303
- '6a6851',
296
+ '61',
297
+ '6262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262',
304
298
  'P2SH,STRICTENC',
305
- "still prunable because IF/ENDIF can't span scriptSig/scriptPubKey"
299
+ '>520 byte push'
306
300
  ],
307
301
  [
308
302
  '00',
309
- '6951',
310
- 'P2SH,STRICTENC'
311
- ],
312
- [
313
- '51',
314
- '69',
315
- 'P2SH,STRICTENC'
316
- ],
317
- [
318
- '51',
319
- '6900',
320
- 'P2SH,STRICTENC'
321
- ],
322
- [
323
- '516b',
324
- '6c51',
303
+ '6362626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626851',
325
304
  'P2SH,STRICTENC',
326
- 'alt stack not shared between sig/pubkey'
327
- ],
328
- [
329
- '73',
330
- '740087',
331
- 'P2SH,STRICTENC'
332
- ],
333
- [
334
- '75',
335
- '740087',
336
- 'P2SH,STRICTENC'
337
- ],
338
- [
339
- '76',
340
- '740087',
341
- 'P2SH,STRICTENC'
305
+ '>520 byte push in non-executed IF branch'
342
306
  ],
343
307
  [
344
308
  '51',
345
- '76519352880087',
346
- 'P2SH,STRICTENC'
347
- ],
348
- [
349
- '61',
350
- '77',
351
- 'P2SH,STRICTENC'
352
- ],
353
- [
354
- '61',
355
- '5177',
356
- 'P2SH,STRICTENC'
309
+ '61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161',
310
+ 'P2SH,STRICTENC',
311
+ '>201 opcodes executed. 0x61 is NOP'
357
312
  ],
358
313
  [
359
- '61',
360
- '510077',
361
- 'P2SH,STRICTENC'
314
+ '00',
315
+ '6361616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616851',
316
+ 'P2SH,STRICTENC',
317
+ '>201 opcodes including non-executed IF branch. 0x61 is NOP'
362
318
  ],
363
319
  [
364
- '61',
365
- '7851',
366
- 'P2SH,STRICTENC'
367
- ],
368
- [
369
- '51',
370
- '78',
371
- 'P2SH,STRICTENC'
372
- ],
373
- [
374
- '0051',
375
- '78745388',
376
- 'P2SH,STRICTENC'
377
- ],
378
- [
379
- '011301140115',
380
- '79011388745287',
381
- 'P2SH,STRICTENC'
382
- ],
383
- [
384
- '61',
385
- '0079',
386
- 'P2SH,STRICTENC'
387
- ],
388
- [
389
- '51',
390
- '4f79',
391
- 'P2SH,STRICTENC'
392
- ],
393
- [
394
- '011301140115',
395
- '0079011488745387',
396
- 'P2SH,STRICTENC'
397
- ],
398
- [
399
- '011301140115',
400
- '5179011588745387',
401
- 'P2SH,STRICTENC'
402
- ],
403
- [
404
- '011301140115',
405
- '5279011688745387',
406
- 'P2SH,STRICTENC'
407
- ],
408
- [
409
- '61',
410
- '007a',
411
- 'P2SH,STRICTENC'
412
- ],
413
- [
414
- '51',
415
- '4f7a',
416
- 'P2SH,STRICTENC'
417
- ],
418
- [
419
- '011301140115',
420
- '007a011488745287',
421
- 'P2SH,STRICTENC'
422
- ],
423
- [
424
- '011301140115',
425
- '517a011588745287',
426
- 'P2SH,STRICTENC'
427
- ],
428
- [
429
- '011301140115',
430
- '527a011688745287',
431
- 'P2SH,STRICTENC'
432
- ],
433
- [
434
- '61',
435
- '7b51',
436
- 'P2SH,STRICTENC'
437
- ],
438
- [
439
- '61',
440
- '517b51',
441
- 'P2SH,STRICTENC'
442
- ],
443
- [
444
- '61',
445
- '51527b51',
446
- 'P2SH,STRICTENC'
447
- ],
448
- [
449
- '61',
450
- '0051527b',
451
- 'P2SH,STRICTENC'
452
- ],
453
- [
454
- '61',
455
- '7c51',
456
- 'P2SH,STRICTENC'
457
- ],
458
- [
459
- '51',
460
- '7c51',
461
- 'P2SH,STRICTENC'
462
- ],
463
- [
464
- '0051',
465
- '7c5188',
466
- 'P2SH,STRICTENC'
467
- ],
468
- [
469
- '61',
470
- '7d51',
471
- 'P2SH,STRICTENC'
472
- ],
473
- [
474
- '51',
475
- '7d51',
476
- 'P2SH,STRICTENC'
477
- ],
478
- [
479
- '5100',
480
- '7d7453887c6d',
481
- 'P2SH,STRICTENC'
482
- ],
483
- [
484
- '61',
485
- '6e51',
486
- 'P2SH,STRICTENC'
487
- ],
488
- [
489
- '51',
490
- '6e51',
491
- 'P2SH,STRICTENC'
492
- ],
493
- [
494
- '61',
495
- '6f51',
496
- 'P2SH,STRICTENC'
497
- ],
498
- [
499
- '51',
500
- '6f51',
501
- 'P2SH,STRICTENC'
502
- ],
503
- [
504
- '5152',
505
- '6f51',
506
- 'P2SH,STRICTENC'
507
- ],
508
- [
509
- '61',
510
- '7051',
511
- 'P2SH,STRICTENC'
512
- ],
513
- [
514
- '51',
515
- '52537051',
516
- 'P2SH,STRICTENC'
517
- ],
518
- [
519
- '61',
520
- '7251',
521
- 'P2SH,STRICTENC'
522
- ],
523
- [
524
- '51',
525
- '52537251',
526
- 'P2SH,STRICTENC'
527
- ],
528
- [
529
- '6162635200',
530
- '6380675168',
531
- 'P2SH,STRICTENC',
532
- 'LEFT disabled'
533
- ],
534
- [
535
- '6162635200',
536
- '6381675168',
537
- 'P2SH,STRICTENC',
538
- 'RIGHT disabled'
539
- ],
540
- [
541
- '61',
542
- '8251',
543
- 'P2SH,STRICTENC'
544
- ],
545
- [
546
- '616263',
547
- '6383675168',
548
- 'P2SH,STRICTENC',
549
- 'INVERT disabled'
550
- ],
551
- [
552
- '5200638d675168',
553
- '61',
554
- 'P2SH,STRICTENC',
555
- '2MUL disabled'
556
- ],
557
- [
558
- '5200638e675168',
559
- '61',
560
- 'P2SH,STRICTENC',
561
- '2DIV disabled'
562
- ],
563
- [
564
- '',
565
- '8791',
566
- 'P2SH,STRICTENC',
567
- 'EQUAL must error when there are no stack items'
568
- ],
569
- [
570
- '00',
571
- '8791',
572
- 'P2SH,STRICTENC',
573
- 'EQUAL must error when there are not 2 stack items'
574
- ],
575
- [
576
- '0051',
577
- '87',
578
- 'P2SH,STRICTENC'
579
- ],
580
- [
581
- '515193',
582
- '0087',
583
- 'P2SH,STRICTENC'
584
- ],
585
- [
586
- '5b51935c94',
587
- '5b87',
588
- 'P2SH,STRICTENC'
589
- ],
590
- [
591
- '0500000080000093',
592
- '61',
593
- 'P2SH,STRICTENC',
594
- 'arithmetic operands must be in range [-2^31...2^31] '
595
- ],
596
- [
597
- '0500000080800093',
598
- '61',
599
- 'P2SH,STRICTENC',
600
- 'arithmetic operands must be in range [-2^31...2^31] '
601
- ],
602
- [
603
- '04ffffff7f7693',
604
- '05feffffff009c',
605
- 'P2SH,STRICTENC',
606
- 'NUMEQUAL must be in numeric range'
607
- ],
608
- [
609
- '61626364656691',
610
- '0087',
611
- 'P2SH,STRICTENC',
612
- 'NOT is an arithmetic operand'
613
- ],
614
- [
615
- '528d',
616
- '5487',
617
- 'P2SH,STRICTENC',
618
- 'disabled'
619
- ],
620
- [
621
- '528e',
622
- '5187',
623
- 'P2SH,STRICTENC',
624
- 'disabled'
625
- ],
626
- [
627
- '51',
628
- 'b0b1b2b3b4b5b6b7b8b95287',
629
- 'P2SH,STRICTENC'
630
- ],
631
- [
632
- '4e060000005f746f5f3130b0b1b2b3b4b5b6b7b8b9',
633
- '4e060000005f746f5f313187',
634
- 'P2SH,STRICTENC'
635
- ],
636
- [
637
- 'Ensure 100% coverage of discouraged NOPS'
638
- ],
639
- [
640
- '51',
641
- 'b0',
642
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
643
- ],
644
- [
645
- '51',
646
- 'b1',
647
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
648
- ],
649
- [
650
- '51',
651
- 'b2',
652
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
653
- ],
654
- [
655
- '51',
656
- 'b3',
657
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
658
- ],
659
- [
660
- '51',
661
- 'b4',
662
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
663
- ],
664
- [
665
- '51',
666
- 'b5',
667
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
668
- ],
669
- [
670
- '51',
671
- 'b6',
672
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
673
- ],
674
- [
675
- '51',
676
- 'b7',
677
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
678
- ],
679
- [
680
- '51',
681
- 'b8',
682
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
683
- ],
684
- [
685
- '51',
686
- 'b9',
687
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS'
688
- ],
689
- [
690
- 'b9',
691
- '51',
692
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS',
693
- 'Discouraged NOP10 in scriptSig'
694
- ],
695
- [
696
- '5101b9',
697
- 'a91415727299b05b45fdaf9ac9ecf7565cfe27c3e56787',
698
- 'P2SH,DISCOURAGE_UPGRADABLE_NOPS',
699
- 'Discouraged NOP10 in redeemScript'
700
- ],
701
- [
702
- '50',
703
- '51',
704
- 'P2SH,STRICTENC',
705
- 'opcode 0x50 is reserved'
706
- ],
707
- [
708
- '51',
709
- '63ba675168',
710
- 'P2SH,STRICTENC',
711
- 'opcodes above NOP10 invalid if executed'
712
- ],
713
- [
714
- '51',
715
- '63bb675168',
716
- 'P2SH,STRICTENC'
717
- ],
718
- [
719
- '51',
720
- '63bc675168',
721
- 'P2SH,STRICTENC'
722
- ],
723
- [
724
- '51',
725
- '63bd675168',
726
- 'P2SH,STRICTENC'
727
- ],
728
- [
729
- '51',
730
- '63be675168',
731
- 'P2SH,STRICTENC'
732
- ],
733
- [
734
- '51',
735
- '63bf675168',
736
- 'P2SH,STRICTENC'
737
- ],
738
- [
739
- '51',
740
- '63c0675168',
741
- 'P2SH,STRICTENC'
742
- ],
743
- [
744
- '51',
745
- '63c1675168',
746
- 'P2SH,STRICTENC'
747
- ],
748
- [
749
- '51',
750
- '63c2675168',
751
- 'P2SH,STRICTENC'
752
- ],
753
- [
754
- '51',
755
- '63c3675168',
756
- 'P2SH,STRICTENC'
757
- ],
758
- [
759
- '51',
760
- '63c4675168',
761
- 'P2SH,STRICTENC'
762
- ],
763
- [
764
- '51',
765
- '63c5675168',
766
- 'P2SH,STRICTENC'
767
- ],
768
- [
769
- '51',
770
- '63c6675168',
771
- 'P2SH,STRICTENC'
772
- ],
773
- [
774
- '51',
775
- '63c7675168',
776
- 'P2SH,STRICTENC'
777
- ],
778
- [
779
- '51',
780
- '63c8675168',
781
- 'P2SH,STRICTENC'
782
- ],
783
- [
784
- '51',
785
- '63c9675168',
786
- 'P2SH,STRICTENC'
787
- ],
788
- [
789
- '51',
790
- '63ca675168',
791
- 'P2SH,STRICTENC'
792
- ],
793
- [
794
- '51',
795
- '63cb675168',
796
- 'P2SH,STRICTENC'
797
- ],
798
- [
799
- '51',
800
- '63cc675168',
801
- 'P2SH,STRICTENC'
802
- ],
803
- [
804
- '51',
805
- '63cd675168',
806
- 'P2SH,STRICTENC'
807
- ],
808
- [
809
- '51',
810
- '63ce675168',
811
- 'P2SH,STRICTENC'
812
- ],
813
- [
814
- '51',
815
- '63cf675168',
816
- 'P2SH,STRICTENC'
817
- ],
818
- [
819
- '51',
820
- '63d0675168',
821
- 'P2SH,STRICTENC'
822
- ],
823
- [
824
- '51',
825
- '63d1675168',
826
- 'P2SH,STRICTENC'
827
- ],
828
- [
829
- '51',
830
- '63d2675168',
831
- 'P2SH,STRICTENC'
832
- ],
833
- [
834
- '51',
835
- '63d3675168',
836
- 'P2SH,STRICTENC'
837
- ],
838
- [
839
- '51',
840
- '63d4675168',
841
- 'P2SH,STRICTENC'
842
- ],
843
- [
844
- '51',
845
- '63d5675168',
846
- 'P2SH,STRICTENC'
847
- ],
848
- [
849
- '51',
850
- '63d6675168',
851
- 'P2SH,STRICTENC'
852
- ],
853
- [
854
- '51',
855
- '63d7675168',
856
- 'P2SH,STRICTENC'
857
- ],
858
- [
859
- '51',
860
- '63d8675168',
861
- 'P2SH,STRICTENC'
862
- ],
863
- [
864
- '51',
865
- '63d9675168',
866
- 'P2SH,STRICTENC'
867
- ],
868
- [
869
- '51',
870
- '63da675168',
871
- 'P2SH,STRICTENC'
872
- ],
873
- [
874
- '51',
875
- '63db675168',
876
- 'P2SH,STRICTENC'
877
- ],
878
- [
879
- '51',
880
- '63dc675168',
881
- 'P2SH,STRICTENC'
882
- ],
883
- [
884
- '51',
885
- '63dd675168',
886
- 'P2SH,STRICTENC'
887
- ],
888
- [
889
- '51',
890
- '63de675168',
891
- 'P2SH,STRICTENC'
892
- ],
893
- [
894
- '51',
895
- '63df675168',
896
- 'P2SH,STRICTENC'
897
- ],
898
- [
899
- '51',
900
- '63e0675168',
901
- 'P2SH,STRICTENC'
902
- ],
903
- [
904
- '51',
905
- '63e1675168',
906
- 'P2SH,STRICTENC'
907
- ],
908
- [
909
- '51',
910
- '63e2675168',
911
- 'P2SH,STRICTENC'
912
- ],
913
- [
914
- '51',
915
- '63e3675168',
916
- 'P2SH,STRICTENC'
917
- ],
918
- [
919
- '51',
920
- '63e4675168',
921
- 'P2SH,STRICTENC'
922
- ],
923
- [
924
- '51',
925
- '63e5675168',
926
- 'P2SH,STRICTENC'
927
- ],
928
- [
929
- '51',
930
- '63e6675168',
931
- 'P2SH,STRICTENC'
932
- ],
933
- [
934
- '51',
935
- '63e7675168',
936
- 'P2SH,STRICTENC'
937
- ],
938
- [
939
- '51',
940
- '63e8675168',
941
- 'P2SH,STRICTENC'
942
- ],
943
- [
944
- '51',
945
- '63e9675168',
946
- 'P2SH,STRICTENC'
947
- ],
948
- [
949
- '51',
950
- '63ea675168',
951
- 'P2SH,STRICTENC'
952
- ],
953
- [
954
- '51',
955
- '63eb675168',
956
- 'P2SH,STRICTENC'
957
- ],
958
- [
959
- '51',
960
- '63ec675168',
961
- 'P2SH,STRICTENC'
962
- ],
963
- [
964
- '51',
965
- '63ed675168',
966
- 'P2SH,STRICTENC'
967
- ],
968
- [
969
- '51',
970
- '63ee675168',
971
- 'P2SH,STRICTENC'
972
- ],
973
- [
974
- '51',
975
- '63ef675168',
976
- 'P2SH,STRICTENC'
977
- ],
978
- [
979
- '51',
980
- '63f0675168',
981
- 'P2SH,STRICTENC'
982
- ],
983
- [
984
- '51',
985
- '63f1675168',
986
- 'P2SH,STRICTENC'
987
- ],
988
- [
989
- '51',
990
- '63f2675168',
991
- 'P2SH,STRICTENC'
992
- ],
993
- [
994
- '51',
995
- '63f3675168',
996
- 'P2SH,STRICTENC'
997
- ],
998
- [
999
- '51',
1000
- '63f4675168',
1001
- 'P2SH,STRICTENC'
1002
- ],
1003
- [
1004
- '51',
1005
- '63f5675168',
1006
- 'P2SH,STRICTENC'
1007
- ],
1008
- [
1009
- '51',
1010
- '63f6675168',
1011
- 'P2SH,STRICTENC'
1012
- ],
1013
- [
1014
- '51',
1015
- '63f7675168',
1016
- 'P2SH,STRICTENC'
1017
- ],
1018
- [
1019
- '51',
1020
- '63f8675168',
1021
- 'P2SH,STRICTENC'
1022
- ],
1023
- [
1024
- '51',
1025
- '63f9675168',
1026
- 'P2SH,STRICTENC'
1027
- ],
1028
- [
1029
- '51',
1030
- '63fa675168',
1031
- 'P2SH,STRICTENC'
1032
- ],
1033
- [
1034
- '51',
1035
- '63fb675168',
1036
- 'P2SH,STRICTENC'
1037
- ],
1038
- [
1039
- '51',
1040
- '63fc675168',
1041
- 'P2SH,STRICTENC'
1042
- ],
1043
- [
1044
- '51',
1045
- '63fd675168',
1046
- 'P2SH,STRICTENC'
1047
- ],
1048
- [
1049
- '51',
1050
- '63fe675168',
1051
- 'P2SH,STRICTENC'
1052
- ],
1053
- [
1054
- '51',
1055
- '63ff675168',
1056
- 'P2SH,STRICTENC'
1057
- ],
1058
- [
1059
- '51635167',
1060
- 'ff68',
1061
- 'P2SH,STRICTENC',
1062
- 'invalid because scriptSig and scriptPubKey are processed separately'
1063
- ],
1064
- [
1065
- '61',
1066
- 'a6',
1067
- 'P2SH,STRICTENC'
1068
- ],
1069
- [
1070
- '61',
1071
- 'a7',
1072
- 'P2SH,STRICTENC'
1073
- ],
1074
- [
1075
- '61',
1076
- 'a8',
1077
- 'P2SH,STRICTENC'
1078
- ],
1079
- [
1080
- '61',
1081
- 'a9',
1082
- 'P2SH,STRICTENC'
1083
- ],
1084
- [
1085
- '61',
1086
- 'aa',
1087
- 'P2SH,STRICTENC'
1088
- ],
1089
- [
1090
- '61',
1091
- '6262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262',
1092
- 'P2SH,STRICTENC',
1093
- '>520 byte push'
1094
- ],
1095
- [
1096
- '00',
1097
- '6362626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626851',
1098
- 'P2SH,STRICTENC',
1099
- '>520 byte push in non-executed IF branch'
1100
- ],
1101
- [
1102
- '51',
1103
- '61616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161',
1104
- 'P2SH,STRICTENC',
1105
- '>201 opcodes executed. 0x61 is NOP'
1106
- ],
1107
- [
1108
- '00',
1109
- '6361616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616851',
1110
- 'P2SH,STRICTENC',
1111
- '>201 opcodes including non-executed IF branch. 0x61 is NOP'
1112
- ],
1113
- [
1114
- '51525354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1115
- '5152535455566f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1116
- 'P2SH,STRICTENC',
1117
- '>1,000 stack size (0x6f is 3DUP)'
1118
- ],
1119
- [
1120
- '51525354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1121
- '516b526b535455566f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1122
- 'P2SH,STRICTENC',
1123
- '>1,000 stack+altstack size'
1124
- ],
1125
- [
1126
- '61',
1127
- '00616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6e616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161',
1128
- 'P2SH,STRICTENC',
1129
- '10,001-byte scriptPubKey'
1130
- ],
1131
- [
1132
- 'b0',
1133
- 'b9',
1134
- 'P2SH,STRICTENC'
1135
- ],
1136
- [
1137
- '51',
1138
- '62',
1139
- 'P2SH,STRICTENC',
1140
- 'OP_VER is reserved'
1141
- ],
1142
- [
1143
- '51',
1144
- '65',
1145
- 'P2SH,STRICTENC',
1146
- 'OP_VERIF is reserved'
1147
- ],
1148
- [
1149
- '51',
1150
- '66',
1151
- 'P2SH,STRICTENC',
1152
- 'OP_VERNOTIF is reserved'
1153
- ],
1154
- [
1155
- '51',
1156
- '50',
1157
- 'P2SH,STRICTENC',
1158
- 'OP_RESERVED is reserved'
1159
- ],
1160
- [
1161
- '51',
1162
- '89',
1163
- 'P2SH,STRICTENC',
1164
- 'OP_RESERVED1 is reserved'
1165
- ],
1166
- [
1167
- '51',
1168
- '8a',
1169
- 'P2SH,STRICTENC',
1170
- 'OP_RESERVED2 is reserved'
1171
- ],
1172
- [
1173
- '51',
1174
- 'ba',
1175
- 'P2SH,STRICTENC',
1176
- '0xba == OP_NOP10 + 1'
1177
- ],
1178
- [
1179
- '050000008000',
1180
- '8b51',
1181
- 'P2SH,STRICTENC',
1182
- 'We cannot do math on 5-byte integers'
1183
- ],
1184
- [
1185
- '050000008000',
1186
- '8f51',
1187
- 'P2SH,STRICTENC',
1188
- 'We cannot do math on 5-byte integers'
1189
- ],
1190
- [
1191
- '050000008080',
1192
- '8b51',
1193
- 'P2SH,STRICTENC',
1194
- 'Because we use a sign bit, -2147483648 is also 5 bytes'
1195
- ],
1196
- [
1197
- '04ffffff7f',
1198
- '8b8c51',
1199
- 'P2SH,STRICTENC',
1200
- 'We cannot do math on 5-byte integers, even if the result is 4-bytes'
1201
- ],
1202
- [
1203
- '050000008000',
1204
- '8c51',
1205
- 'P2SH,STRICTENC',
1206
- 'We cannot do math on 5-byte integers, even if the result is 4-bytes'
1207
- ],
1208
- [
1209
- '05000000800051',
1210
- '9b51',
1211
- 'P2SH,STRICTENC',
1212
- 'We cannot do BOOLOR on 5-byte integers (but we can still do IF etc)'
1213
- ],
1214
- [
1215
- '05000000800051',
1216
- '9a51',
1217
- 'P2SH,STRICTENC',
1218
- 'We cannot do BOOLAND on 5-byte integers'
1219
- ],
1220
- [
1221
- '51',
1222
- '5168',
1223
- 'P2SH,STRICTENC',
1224
- 'ENDIF without IF'
1225
- ],
1226
- [
1227
- '51',
1228
- '6351',
1229
- 'P2SH,STRICTENC',
1230
- 'IF without ENDIF'
1231
- ],
1232
- [
1233
- '516351',
1234
- '68',
1235
- 'P2SH,STRICTENC',
1236
- "IFs don't carry over"
1237
- ],
1238
- [
1239
- '61',
1240
- '635168',
1241
- 'P2SH,STRICTENC',
1242
- 'The following tests check the if(stack.size() < N) tests in each opcode'
1243
- ],
1244
- [
1245
- '61',
1246
- '645168',
1247
- 'P2SH,STRICTENC',
1248
- 'They are here to catch copy-and-paste errors'
1249
- ],
1250
- [
1251
- '61',
1252
- '6951',
1253
- 'P2SH,STRICTENC',
1254
- 'Most of them are duplicated elsewhere,'
1255
- ],
1256
- [
1257
- '61',
1258
- '6b51',
1259
- 'P2SH,STRICTENC',
1260
- 'but, hey, more is always better, right?'
1261
- ],
1262
- [
1263
- '51',
1264
- '6c',
1265
- 'P2SH,STRICTENC'
1266
- ],
1267
- [
1268
- '51',
1269
- '6d51',
1270
- 'P2SH,STRICTENC'
1271
- ],
1272
- [
1273
- '51',
1274
- '6e',
1275
- 'P2SH,STRICTENC'
1276
- ],
1277
- [
1278
- '5151',
1279
- '6f',
1280
- 'P2SH,STRICTENC'
1281
- ],
1282
- [
1283
- '515151',
1284
- '70',
1285
- 'P2SH,STRICTENC'
1286
- ],
1287
- [
1288
- '5151515151',
1289
- '71',
1290
- 'P2SH,STRICTENC'
1291
- ],
1292
- [
1293
- '515151',
1294
- '72',
1295
- 'P2SH,STRICTENC'
1296
- ],
1297
- [
1298
- '61',
1299
- '7351',
1300
- 'P2SH,STRICTENC'
1301
- ],
1302
- [
1303
- '61',
1304
- '7551',
1305
- 'P2SH,STRICTENC'
1306
- ],
1307
- [
1308
- '61',
1309
- '7651',
1310
- 'P2SH,STRICTENC'
1311
- ],
1312
- [
1313
- '51',
1314
- '77',
1315
- 'P2SH,STRICTENC'
1316
- ],
1317
- [
1318
- '51',
1319
- '78',
1320
- 'P2SH,STRICTENC'
1321
- ],
1322
- [
1323
- '51515153',
1324
- '79',
1325
- 'P2SH,STRICTENC'
1326
- ],
1327
- [
1328
- '00',
1329
- '7951',
1330
- 'P2SH,STRICTENC'
1331
- ],
1332
- [
1333
- '51515153',
1334
- '7a',
1335
- 'P2SH,STRICTENC'
1336
- ],
1337
- [
1338
- '00',
1339
- '7a51',
1340
- 'P2SH,STRICTENC'
1341
- ],
1342
- [
1343
- '5151',
1344
- '7b',
1345
- 'P2SH,STRICTENC'
1346
- ],
1347
- [
1348
- '51',
1349
- '7c',
1350
- 'P2SH,STRICTENC'
1351
- ],
1352
- [
1353
- '51',
1354
- '7d',
1355
- 'P2SH,STRICTENC'
1356
- ],
1357
- [
1358
- '61',
1359
- '8251',
1360
- 'P2SH,STRICTENC'
1361
- ],
1362
- [
1363
- '51',
1364
- '8751',
1365
- 'P2SH,STRICTENC'
1366
- ],
1367
- [
1368
- '51',
1369
- '8851',
1370
- 'P2SH,STRICTENC'
1371
- ],
1372
- [
1373
- '61',
1374
- '8b51',
1375
- 'P2SH,STRICTENC'
1376
- ],
1377
- [
1378
- '61',
1379
- '8c51',
1380
- 'P2SH,STRICTENC'
1381
- ],
1382
- [
1383
- '61',
1384
- '8f51',
1385
- 'P2SH,STRICTENC'
1386
- ],
1387
- [
1388
- '61',
1389
- '9051',
1390
- 'P2SH,STRICTENC'
1391
- ],
1392
- [
1393
- '61',
1394
- '9151',
1395
- 'P2SH,STRICTENC'
1396
- ],
1397
- [
1398
- '61',
1399
- '9251',
1400
- 'P2SH,STRICTENC'
1401
- ],
1402
- [
1403
- '51',
1404
- '93',
1405
- 'P2SH,STRICTENC'
1406
- ],
1407
- [
1408
- '51',
1409
- '94',
1410
- 'P2SH,STRICTENC'
1411
- ],
1412
- [
1413
- '51',
1414
- '9a',
1415
- 'P2SH,STRICTENC'
1416
- ],
1417
- [
1418
- '51',
1419
- '9b',
1420
- 'P2SH,STRICTENC'
1421
- ],
1422
- [
1423
- '51',
1424
- '9c',
1425
- 'P2SH,STRICTENC'
1426
- ],
1427
- [
1428
- '51',
1429
- '9d51',
1430
- 'P2SH,STRICTENC'
1431
- ],
1432
- [
1433
- '51',
1434
- '9e',
1435
- 'P2SH,STRICTENC'
1436
- ],
1437
- [
1438
- '51',
1439
- '9f',
1440
- 'P2SH,STRICTENC'
320
+ '51525354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
321
+ '5152535455566f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
322
+ 'P2SH,STRICTENC',
323
+ '>1,000 stack size (0x6f is 3DUP)'
1441
324
  ],
1442
325
  [
1443
- '51',
1444
- 'a0',
1445
- 'P2SH,STRICTENC'
326
+ '51525354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
327
+ '516b526b535455566f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
328
+ 'P2SH,STRICTENC',
329
+ '>1,000 stack+altstack size'
1446
330
  ],
1447
331
  [
1448
- '51',
1449
- 'a1',
1450
- 'P2SH,STRICTENC'
332
+ '61',
333
+ '00616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6e616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161',
334
+ 'P2SH,STRICTENC',
335
+ '10,001-byte scriptPubKey'
1451
336
  ],
337
+ ['b0', 'b9', 'P2SH,STRICTENC'],
338
+ ['51', '62', 'P2SH,STRICTENC', 'OP_VER is reserved'],
339
+ ['51', '65', 'P2SH,STRICTENC', 'OP_VERIF is reserved'],
340
+ ['51', '66', 'P2SH,STRICTENC', 'OP_VERNOTIF is reserved'],
341
+ ['51', '50', 'P2SH,STRICTENC', 'OP_RESERVED is reserved'],
342
+ ['51', '89', 'P2SH,STRICTENC', 'OP_RESERVED1 is reserved'],
343
+ ['51', '8a', 'P2SH,STRICTENC', 'OP_RESERVED2 is reserved'],
344
+ ['51', 'ba', 'P2SH,STRICTENC', '0xba == OP_NOP10 + 1'],
1452
345
  [
1453
- '51',
1454
- 'a2',
1455
- 'P2SH,STRICTENC'
346
+ '050000008000',
347
+ '8b51',
348
+ 'P2SH,STRICTENC',
349
+ 'We cannot do math on 5-byte integers'
1456
350
  ],
1457
351
  [
1458
- '51',
1459
- 'a3',
1460
- 'P2SH,STRICTENC'
352
+ '050000008000',
353
+ '8f51',
354
+ 'P2SH,STRICTENC',
355
+ 'We cannot do math on 5-byte integers'
1461
356
  ],
1462
357
  [
1463
- '51',
1464
- 'a4',
1465
- 'P2SH,STRICTENC'
358
+ '050000008080',
359
+ '8b51',
360
+ 'P2SH,STRICTENC',
361
+ 'Because we use a sign bit, -2147483648 is also 5 bytes'
1466
362
  ],
1467
363
  [
1468
- '5151',
1469
- 'a5',
1470
- 'P2SH,STRICTENC'
364
+ '04ffffff7f',
365
+ '8b8c51',
366
+ 'P2SH,STRICTENC',
367
+ 'We cannot do math on 5-byte integers, even if the result is 4-bytes'
1471
368
  ],
1472
369
  [
1473
- '61',
1474
- 'a651',
1475
- 'P2SH,STRICTENC'
370
+ '050000008000',
371
+ '8c51',
372
+ 'P2SH,STRICTENC',
373
+ 'We cannot do math on 5-byte integers, even if the result is 4-bytes'
1476
374
  ],
1477
375
  [
1478
- '61',
1479
- 'a751',
1480
- 'P2SH,STRICTENC'
376
+ '05000000800051',
377
+ '9b51',
378
+ 'P2SH,STRICTENC',
379
+ 'We cannot do BOOLOR on 5-byte integers (but we can still do IF etc)'
1481
380
  ],
1482
381
  [
1483
- '61',
1484
- 'a851',
1485
- 'P2SH,STRICTENC'
382
+ '05000000800051',
383
+ '9a51',
384
+ 'P2SH,STRICTENC',
385
+ 'We cannot do BOOLAND on 5-byte integers'
1486
386
  ],
387
+ ['51', '5168', 'P2SH,STRICTENC', 'ENDIF without IF'],
388
+ ['51', '6351', 'P2SH,STRICTENC', 'IF without ENDIF'],
389
+ ['516351', '68', 'P2SH,STRICTENC', "IFs don't carry over"],
1487
390
  [
1488
391
  '61',
1489
- 'a951',
1490
- 'P2SH,STRICTENC'
392
+ '635168',
393
+ 'P2SH,STRICTENC',
394
+ 'The following tests check the if(stack.size() < N) tests in each opcode'
1491
395
  ],
1492
396
  [
1493
397
  '61',
1494
- 'aa51',
1495
- 'P2SH,STRICTENC'
1496
- ],
1497
- [
1498
- 'Increase CHECKSIG and CHECKMULTISIG negative test coverage'
398
+ '645168',
399
+ 'P2SH,STRICTENC',
400
+ 'They are here to catch copy-and-paste errors'
1499
401
  ],
402
+ ['61', '6951', 'P2SH,STRICTENC', 'Most of them are duplicated elsewhere,'],
403
+ ['61', '6b51', 'P2SH,STRICTENC', 'but, hey, more is always better, right?'],
404
+ ['51', '6c', 'P2SH,STRICTENC'],
405
+ ['51', '6d51', 'P2SH,STRICTENC'],
406
+ ['51', '6e', 'P2SH,STRICTENC'],
407
+ ['5151', '6f', 'P2SH,STRICTENC'],
408
+ ['515151', '70', 'P2SH,STRICTENC'],
409
+ ['5151515151', '71', 'P2SH,STRICTENC'],
410
+ ['515151', '72', 'P2SH,STRICTENC'],
411
+ ['61', '7351', 'P2SH,STRICTENC'],
412
+ ['61', '7551', 'P2SH,STRICTENC'],
413
+ ['61', '7651', 'P2SH,STRICTENC'],
414
+ ['51', '77', 'P2SH,STRICTENC'],
415
+ ['51', '78', 'P2SH,STRICTENC'],
416
+ ['51515153', '79', 'P2SH,STRICTENC'],
417
+ ['00', '7951', 'P2SH,STRICTENC'],
418
+ ['51515153', '7a', 'P2SH,STRICTENC'],
419
+ ['00', '7a51', 'P2SH,STRICTENC'],
420
+ ['5151', '7b', 'P2SH,STRICTENC'],
421
+ ['51', '7c', 'P2SH,STRICTENC'],
422
+ ['51', '7d', 'P2SH,STRICTENC'],
423
+ ['61', '8251', 'P2SH,STRICTENC'],
424
+ ['51', '8751', 'P2SH,STRICTENC'],
425
+ ['51', '8851', 'P2SH,STRICTENC'],
426
+ ['61', '8b51', 'P2SH,STRICTENC'],
427
+ ['61', '8c51', 'P2SH,STRICTENC'],
428
+ ['61', '8f51', 'P2SH,STRICTENC'],
429
+ ['61', '9051', 'P2SH,STRICTENC'],
430
+ ['61', '9151', 'P2SH,STRICTENC'],
431
+ ['61', '9251', 'P2SH,STRICTENC'],
432
+ ['51', '93', 'P2SH,STRICTENC'],
433
+ ['51', '94', 'P2SH,STRICTENC'],
434
+ ['51', '9a', 'P2SH,STRICTENC'],
435
+ ['51', '9b', 'P2SH,STRICTENC'],
436
+ ['51', '9c', 'P2SH,STRICTENC'],
437
+ ['51', '9d51', 'P2SH,STRICTENC'],
438
+ ['51', '9e', 'P2SH,STRICTENC'],
439
+ ['51', '9f', 'P2SH,STRICTENC'],
440
+ ['51', 'a0', 'P2SH,STRICTENC'],
441
+ ['51', 'a1', 'P2SH,STRICTENC'],
442
+ ['51', 'a2', 'P2SH,STRICTENC'],
443
+ ['51', 'a3', 'P2SH,STRICTENC'],
444
+ ['51', 'a4', 'P2SH,STRICTENC'],
445
+ ['5151', 'a5', 'P2SH,STRICTENC'],
446
+ ['61', 'a651', 'P2SH,STRICTENC'],
447
+ ['61', 'a751', 'P2SH,STRICTENC'],
448
+ ['61', 'a851', 'P2SH,STRICTENC'],
449
+ ['61', 'a951', 'P2SH,STRICTENC'],
450
+ ['61', 'aa51', 'P2SH,STRICTENC'],
451
+ ['Increase CHECKSIG and CHECKMULTISIG negative test coverage'],
1500
452
  [
1501
453
  '',
1502
454
  'ac91',
@@ -1573,12 +525,7 @@ export default [
1573
525
  'P2SH,STRICTENC',
1574
526
  'nPubKeys > 20'
1575
527
  ],
1576
- [
1577
- '007369675100',
1578
- 'ae51',
1579
- 'P2SH,STRICTENC',
1580
- 'nSigs > nPubKeys'
1581
- ],
528
+ ['007369675100', 'ae51', 'P2SH,STRICTENC', 'nSigs > nPubKeys'],
1582
529
  [
1583
530
  '610151',
1584
531
  'a914da1745e9b549bd0bfa1a569971c77eba30cd5a4b87',
@@ -1602,108 +549,31 @@ export default [
1602
549
  'P2SH,STRICTENC',
1603
550
  'OP_VER in P2SH should fail'
1604
551
  ],
1605
- [
1606
- '00',
1607
- '303087',
1608
- 'P2SH,STRICTENC',
1609
- 'Basic OP_0 execution'
1610
- ],
1611
- [
1612
- 'MINIMALDATA enforcement for PUSHDATAs'
1613
- ],
1614
- [
1615
- '4c00',
1616
- '7551',
1617
- 'MINIMALDATA',
1618
- 'Empty vector minimally represented by OP_0'
1619
- ],
1620
- [
1621
- '0181',
1622
- '7551',
1623
- 'MINIMALDATA',
1624
- '-1 minimally represented by OP_1NEGATE'
1625
- ],
552
+ ['00', '303087', 'P2SH,STRICTENC', 'Basic OP_0 execution'],
553
+ ['MINIMALDATA enforcement for PUSHDATAs'],
554
+ ['4c00', '7551', 'MINIMALDATA', 'Empty vector minimally represented by OP_0'],
555
+ ['0181', '7551', 'MINIMALDATA', '-1 minimally represented by OP_1NEGATE'],
1626
556
  [
1627
557
  '0101',
1628
558
  '7551',
1629
559
  'MINIMALDATA',
1630
560
  '1 to 16 minimally represented by OP_1 to OP_16'
1631
561
  ],
1632
- [
1633
- '0102',
1634
- '7551',
1635
- 'MINIMALDATA'
1636
- ],
1637
- [
1638
- '0103',
1639
- '7551',
1640
- 'MINIMALDATA'
1641
- ],
1642
- [
1643
- '0104',
1644
- '7551',
1645
- 'MINIMALDATA'
1646
- ],
1647
- [
1648
- '0105',
1649
- '7551',
1650
- 'MINIMALDATA'
1651
- ],
1652
- [
1653
- '0106',
1654
- '7551',
1655
- 'MINIMALDATA'
1656
- ],
1657
- [
1658
- '0107',
1659
- '7551',
1660
- 'MINIMALDATA'
1661
- ],
1662
- [
1663
- '0108',
1664
- '7551',
1665
- 'MINIMALDATA'
1666
- ],
1667
- [
1668
- '0109',
1669
- '7551',
1670
- 'MINIMALDATA'
1671
- ],
1672
- [
1673
- '010a',
1674
- '7551',
1675
- 'MINIMALDATA'
1676
- ],
1677
- [
1678
- '010b',
1679
- '7551',
1680
- 'MINIMALDATA'
1681
- ],
1682
- [
1683
- '010c',
1684
- '7551',
1685
- 'MINIMALDATA'
1686
- ],
1687
- [
1688
- '010d',
1689
- '7551',
1690
- 'MINIMALDATA'
1691
- ],
1692
- [
1693
- '010e',
1694
- '7551',
1695
- 'MINIMALDATA'
1696
- ],
1697
- [
1698
- '010f',
1699
- '7551',
1700
- 'MINIMALDATA'
1701
- ],
1702
- [
1703
- '0110',
1704
- '7551',
1705
- 'MINIMALDATA'
1706
- ],
562
+ ['0102', '7551', 'MINIMALDATA'],
563
+ ['0103', '7551', 'MINIMALDATA'],
564
+ ['0104', '7551', 'MINIMALDATA'],
565
+ ['0105', '7551', 'MINIMALDATA'],
566
+ ['0106', '7551', 'MINIMALDATA'],
567
+ ['0107', '7551', 'MINIMALDATA'],
568
+ ['0108', '7551', 'MINIMALDATA'],
569
+ ['0109', '7551', 'MINIMALDATA'],
570
+ ['010a', '7551', 'MINIMALDATA'],
571
+ ['010b', '7551', 'MINIMALDATA'],
572
+ ['010c', '7551', 'MINIMALDATA'],
573
+ ['010d', '7551', 'MINIMALDATA'],
574
+ ['010e', '7551', 'MINIMALDATA'],
575
+ ['010f', '7551', 'MINIMALDATA'],
576
+ ['0110', '7551', 'MINIMALDATA'],
1707
577
  [
1708
578
  '4c48111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111',
1709
579
  '7551',
@@ -1722,303 +592,71 @@ export default [
1722
592
  'MINIMALDATA',
1723
593
  'PUSHDATA4 of 256 bytes minimally represented by PUSHDATA2'
1724
594
  ],
1725
- [
1726
- 'MINIMALDATA enforcement for numeric arguments'
1727
- ],
1728
- [
1729
- '0100',
1730
- '917551',
1731
- 'MINIMALDATA',
1732
- 'numequals 0'
1733
- ],
1734
- [
1735
- '020000',
1736
- '917551',
1737
- 'MINIMALDATA',
1738
- 'numequals 0'
1739
- ],
1740
- [
1741
- '0180',
1742
- '917551',
1743
- 'MINIMALDATA',
1744
- '0x80 (negative zero) numequals 0'
1745
- ],
1746
- [
1747
- '020080',
1748
- '917551',
1749
- 'MINIMALDATA',
1750
- 'numequals 0'
1751
- ],
1752
- [
1753
- '020500',
1754
- '917551',
1755
- 'MINIMALDATA',
1756
- 'numequals 5'
1757
- ],
1758
- [
1759
- '03050000',
1760
- '917551',
1761
- 'MINIMALDATA',
1762
- 'numequals 5'
1763
- ],
1764
- [
1765
- '020580',
1766
- '917551',
1767
- 'MINIMALDATA',
1768
- 'numequals -5'
1769
- ],
1770
- [
1771
- '03050080',
1772
- '917551',
1773
- 'MINIMALDATA',
1774
- 'numequals -5'
1775
- ],
1776
- [
1777
- '03ff7f80',
1778
- '917551',
1779
- 'MINIMALDATA',
1780
- 'Minimal encoding is 0xffff'
1781
- ],
1782
- [
1783
- '03ff7f00',
1784
- '917551',
1785
- 'MINIMALDATA',
1786
- 'Minimal encoding is 0xff7f'
1787
- ],
1788
- [
1789
- '04ffff7f80',
1790
- '917551',
1791
- 'MINIMALDATA',
1792
- 'Minimal encoding is 0xffffff'
1793
- ],
1794
- [
1795
- '04ffff7f00',
1796
- '917551',
1797
- 'MINIMALDATA',
1798
- 'Minimal encoding is 0xffff7f'
1799
- ],
595
+ ['MINIMALDATA enforcement for numeric arguments'],
596
+ ['0100', '917551', 'MINIMALDATA', 'numequals 0'],
597
+ ['020000', '917551', 'MINIMALDATA', 'numequals 0'],
598
+ ['0180', '917551', 'MINIMALDATA', '0x80 (negative zero) numequals 0'],
599
+ ['020080', '917551', 'MINIMALDATA', 'numequals 0'],
600
+ ['020500', '917551', 'MINIMALDATA', 'numequals 5'],
601
+ ['03050000', '917551', 'MINIMALDATA', 'numequals 5'],
602
+ ['020580', '917551', 'MINIMALDATA', 'numequals -5'],
603
+ ['03050080', '917551', 'MINIMALDATA', 'numequals -5'],
604
+ ['03ff7f80', '917551', 'MINIMALDATA', 'Minimal encoding is 0xffff'],
605
+ ['03ff7f00', '917551', 'MINIMALDATA', 'Minimal encoding is 0xff7f'],
606
+ ['04ffff7f80', '917551', 'MINIMALDATA', 'Minimal encoding is 0xffffff'],
607
+ ['04ffff7f00', '917551', 'MINIMALDATA', 'Minimal encoding is 0xffff7f'],
1800
608
  [
1801
609
  'Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule'
1802
610
  ],
1803
- [
1804
- '51020000',
1805
- '7975',
1806
- 'MINIMALDATA'
1807
- ],
1808
- [
1809
- '51020000',
1810
- '7a7551',
1811
- 'MINIMALDATA'
1812
- ],
1813
- [
1814
- '020000',
1815
- '8b7551',
1816
- 'MINIMALDATA'
1817
- ],
1818
- [
1819
- '020000',
1820
- '8c7551',
1821
- 'MINIMALDATA'
1822
- ],
1823
- [
1824
- '020000',
1825
- '8f7551',
1826
- 'MINIMALDATA'
1827
- ],
1828
- [
1829
- '020000',
1830
- '907551',
1831
- 'MINIMALDATA'
1832
- ],
1833
- [
1834
- '020000',
1835
- '917551',
1836
- 'MINIMALDATA'
1837
- ],
1838
- [
1839
- '020000',
1840
- '927551',
1841
- 'MINIMALDATA'
1842
- ],
1843
- [
1844
- '00020000',
1845
- '937551',
1846
- 'MINIMALDATA'
1847
- ],
1848
- [
1849
- '02000000',
1850
- '937551',
1851
- 'MINIMALDATA'
1852
- ],
1853
- [
1854
- '00020000',
1855
- '947551',
1856
- 'MINIMALDATA'
1857
- ],
1858
- [
1859
- '02000000',
1860
- '947551',
1861
- 'MINIMALDATA'
1862
- ],
1863
- [
1864
- '00020000',
1865
- '9a7551',
1866
- 'MINIMALDATA'
1867
- ],
1868
- [
1869
- '02000000',
1870
- '9a7551',
1871
- 'MINIMALDATA'
1872
- ],
1873
- [
1874
- '00020000',
1875
- '9b7551',
1876
- 'MINIMALDATA'
1877
- ],
1878
- [
1879
- '02000000',
1880
- '9b7551',
1881
- 'MINIMALDATA'
1882
- ],
1883
- [
1884
- '00020000',
1885
- '9c7551',
1886
- 'MINIMALDATA'
1887
- ],
1888
- [
1889
- '02000051',
1890
- '9c7551',
1891
- 'MINIMALDATA'
1892
- ],
1893
- [
1894
- '00020000',
1895
- '9d51',
1896
- 'MINIMALDATA'
1897
- ],
1898
- [
1899
- '02000000',
1900
- '9d51',
1901
- 'MINIMALDATA'
1902
- ],
1903
- [
1904
- '00020000',
1905
- '9e7551',
1906
- 'MINIMALDATA'
1907
- ],
1908
- [
1909
- '02000000',
1910
- '9e7551',
1911
- 'MINIMALDATA'
1912
- ],
1913
- [
1914
- '00020000',
1915
- '9f7551',
1916
- 'MINIMALDATA'
1917
- ],
1918
- [
1919
- '02000000',
1920
- '9f7551',
1921
- 'MINIMALDATA'
1922
- ],
1923
- [
1924
- '00020000',
1925
- 'a07551',
1926
- 'MINIMALDATA'
1927
- ],
1928
- [
1929
- '02000000',
1930
- 'a07551',
1931
- 'MINIMALDATA'
1932
- ],
1933
- [
1934
- '00020000',
1935
- 'a17551',
1936
- 'MINIMALDATA'
1937
- ],
1938
- [
1939
- '02000000',
1940
- 'a17551',
1941
- 'MINIMALDATA'
1942
- ],
1943
- [
1944
- '00020000',
1945
- 'a27551',
1946
- 'MINIMALDATA'
1947
- ],
1948
- [
1949
- '02000000',
1950
- 'a27551',
1951
- 'MINIMALDATA'
1952
- ],
1953
- [
1954
- '00020000',
1955
- 'a37551',
1956
- 'MINIMALDATA'
1957
- ],
1958
- [
1959
- '02000000',
1960
- 'a37551',
1961
- 'MINIMALDATA'
1962
- ],
1963
- [
1964
- '00020000',
1965
- 'a47551',
1966
- 'MINIMALDATA'
1967
- ],
1968
- [
1969
- '02000000',
1970
- 'a47551',
1971
- 'MINIMALDATA'
1972
- ],
1973
- [
1974
- '0200000000',
1975
- 'a57551',
1976
- 'MINIMALDATA'
1977
- ],
1978
- [
1979
- '0002000000',
1980
- 'a57551',
1981
- 'MINIMALDATA'
1982
- ],
1983
- [
1984
- '0000020000',
1985
- 'a57551',
1986
- 'MINIMALDATA'
1987
- ],
1988
- [
1989
- '0000020000',
1990
- 'ae7551',
1991
- 'MINIMALDATA'
1992
- ],
1993
- [
1994
- '0002000000',
1995
- 'ae7551',
1996
- 'MINIMALDATA'
1997
- ],
1998
- [
1999
- '000200000051',
2000
- 'ae7551',
2001
- 'MINIMALDATA'
2002
- ],
2003
- [
2004
- '0000020000',
2005
- 'af51',
2006
- 'MINIMALDATA'
2007
- ],
2008
- [
2009
- '0002000000',
2010
- 'af51',
2011
- 'MINIMALDATA'
2012
- ],
611
+ ['51020000', '7975', 'MINIMALDATA'],
612
+ ['51020000', '7a7551', 'MINIMALDATA'],
613
+ ['020000', '8b7551', 'MINIMALDATA'],
614
+ ['020000', '8c7551', 'MINIMALDATA'],
615
+ ['020000', '8f7551', 'MINIMALDATA'],
616
+ ['020000', '907551', 'MINIMALDATA'],
617
+ ['020000', '917551', 'MINIMALDATA'],
618
+ ['020000', '927551', 'MINIMALDATA'],
619
+ ['00020000', '937551', 'MINIMALDATA'],
620
+ ['02000000', '937551', 'MINIMALDATA'],
621
+ ['00020000', '947551', 'MINIMALDATA'],
622
+ ['02000000', '947551', 'MINIMALDATA'],
623
+ ['00020000', '9a7551', 'MINIMALDATA'],
624
+ ['02000000', '9a7551', 'MINIMALDATA'],
625
+ ['00020000', '9b7551', 'MINIMALDATA'],
626
+ ['02000000', '9b7551', 'MINIMALDATA'],
627
+ ['00020000', '9c7551', 'MINIMALDATA'],
628
+ ['02000051', '9c7551', 'MINIMALDATA'],
629
+ ['00020000', '9d51', 'MINIMALDATA'],
630
+ ['02000000', '9d51', 'MINIMALDATA'],
631
+ ['00020000', '9e7551', 'MINIMALDATA'],
632
+ ['02000000', '9e7551', 'MINIMALDATA'],
633
+ ['00020000', '9f7551', 'MINIMALDATA'],
634
+ ['02000000', '9f7551', 'MINIMALDATA'],
635
+ ['00020000', 'a07551', 'MINIMALDATA'],
636
+ ['02000000', 'a07551', 'MINIMALDATA'],
637
+ ['00020000', 'a17551', 'MINIMALDATA'],
638
+ ['02000000', 'a17551', 'MINIMALDATA'],
639
+ ['00020000', 'a27551', 'MINIMALDATA'],
640
+ ['02000000', 'a27551', 'MINIMALDATA'],
641
+ ['00020000', 'a37551', 'MINIMALDATA'],
642
+ ['02000000', 'a37551', 'MINIMALDATA'],
643
+ ['00020000', 'a47551', 'MINIMALDATA'],
644
+ ['02000000', 'a47551', 'MINIMALDATA'],
645
+ ['0200000000', 'a57551', 'MINIMALDATA'],
646
+ ['0002000000', 'a57551', 'MINIMALDATA'],
647
+ ['0000020000', 'a57551', 'MINIMALDATA'],
648
+ ['0000020000', 'ae7551', 'MINIMALDATA'],
649
+ ['0002000000', 'ae7551', 'MINIMALDATA'],
650
+ ['000200000051', 'ae7551', 'MINIMALDATA'],
651
+ ['0000020000', 'af51', 'MINIMALDATA'],
652
+ ['0002000000', 'af51', 'MINIMALDATA'],
2013
653
  [
2014
654
  'Order of CHECKMULTISIG evaluation tests, inverted by swapping the order of'
2015
655
  ],
2016
656
  [
2017
657
  'pubkeys/signatures so they fail due to the STRICTENC rules on validly encoded'
2018
658
  ],
2019
- [
2020
- 'signatures and pubkeys.'
2021
- ],
659
+ ['signatures and pubkeys.'],
2022
660
  [
2023
661
  '00473044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501473044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501',
2024
662
  '522102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac00052ae91',
@@ -2031,9 +669,7 @@ export default [
2031
669
  'STRICTENC',
2032
670
  '2-of-2 CHECKMULTISIG NOT with both pubkeys valid, but first signature invalid.'
2033
671
  ],
2034
- [
2035
- 'Increase DERSIG test coverage'
2036
- ],
672
+ ['Increase DERSIG test coverage'],
2037
673
  [
2038
674
  '4a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
2039
675
  '00ac91',
@@ -2082,9 +718,7 @@ export default [
2082
718
  'DERSIG',
2083
719
  'Negative S is incorrectly encoded for DERSIG'
2084
720
  ],
2085
- [
2086
- 'Automatically generated test cases'
2087
- ],
721
+ ['Automatically generated test cases'],
2088
722
  [
2089
723
  '47304402200a5c6163f07b8c3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001',
2090
724
  '410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac',
@@ -2361,7 +995,5 @@ export default [
2361
995
  'CLEANSTACK,P2SH',
2362
996
  'P2SH with unnecessary input'
2363
997
  ],
2364
- [
2365
- 'The End'
2366
- ]
998
+ ['The End']
2367
999
  ]