@bsv/sdk 1.3.11 → 1.3.13

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 (1234) hide show
  1. package/dist/cjs/mod.js +15 -15
  2. package/dist/cjs/mod.js.map +1 -1
  3. package/dist/cjs/package.json +10 -2
  4. package/dist/cjs/src/auth/Peer.js +62 -46
  5. package/dist/cjs/src/auth/Peer.js.map +1 -1
  6. package/dist/cjs/src/auth/SessionManager.js +4 -4
  7. package/dist/cjs/src/auth/SessionManager.js.map +1 -1
  8. package/dist/cjs/src/auth/__tests/Peer.test.js +446 -0
  9. package/dist/cjs/src/auth/__tests/Peer.test.js.map +1 -0
  10. package/dist/cjs/src/auth/__tests/SessionManager.test.js +69 -0
  11. package/dist/cjs/src/auth/__tests/SessionManager.test.js.map +1 -0
  12. package/dist/cjs/src/auth/certificates/Certificate.js +26 -23
  13. package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
  14. package/dist/cjs/src/auth/certificates/MasterCertificate.js +26 -24
  15. package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
  16. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +8 -8
  17. package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  18. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js +182 -0
  19. package/dist/cjs/src/auth/certificates/__tests/Certificate.test.js.map +1 -0
  20. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +22 -22
  21. package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  22. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js +184 -0
  23. package/dist/cjs/src/auth/certificates/__tests/MasterCertificate.test.js.map +1 -0
  24. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js +75 -0
  25. package/dist/cjs/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +1 -0
  26. package/dist/cjs/src/auth/certificates/index.js +5 -5
  27. package/dist/cjs/src/auth/certificates/index.js.map +1 -1
  28. package/dist/cjs/src/auth/clients/AuthFetch.js +74 -64
  29. package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
  30. package/dist/cjs/src/auth/clients/index.js +1 -1
  31. package/dist/cjs/src/auth/clients/index.js.map +1 -1
  32. package/dist/cjs/src/auth/index.js +7 -7
  33. package/dist/cjs/src/auth/index.js.map +1 -1
  34. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js +62 -54
  35. package/dist/cjs/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  36. package/dist/cjs/src/auth/transports/index.js +1 -1
  37. package/dist/cjs/src/auth/transports/index.js.map +1 -1
  38. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js +101 -0
  39. package/dist/cjs/src/auth/utils/__tests/cryptononce.test.js.map +1 -0
  40. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js +106 -0
  41. package/dist/cjs/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +1 -0
  42. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js +111 -0
  43. package/dist/cjs/src/auth/utils/__tests/validateCertificates.test.js.map +1 -0
  44. package/dist/cjs/src/auth/utils/createNonce.js +4 -4
  45. package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
  46. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js +2 -2
  47. package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  48. package/dist/cjs/src/auth/utils/index.js +4 -4
  49. package/dist/cjs/src/auth/utils/index.js.map +1 -1
  50. package/dist/cjs/src/auth/utils/validateCertificates.js +2 -2
  51. package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
  52. package/dist/cjs/src/auth/utils/verifyNonce.js +3 -3
  53. package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
  54. package/dist/cjs/src/compat/BSM.js +9 -9
  55. package/dist/cjs/src/compat/BSM.js.map +1 -1
  56. package/dist/cjs/src/compat/ECIES.js +157 -116
  57. package/dist/cjs/src/compat/ECIES.js.map +1 -1
  58. package/dist/cjs/src/compat/HD.js +75 -75
  59. package/dist/cjs/src/compat/HD.js.map +1 -1
  60. package/dist/cjs/src/compat/Mnemonic.js +98 -93
  61. package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
  62. package/dist/cjs/src/compat/Utxo.js +5 -5
  63. package/dist/cjs/src/compat/Utxo.js.map +1 -1
  64. package/dist/cjs/src/compat/__tests/BSM.test.js +69 -0
  65. package/dist/cjs/src/compat/__tests/BSM.test.js.map +1 -0
  66. package/dist/cjs/src/compat/__tests/ECIES.test.js +115 -0
  67. package/dist/cjs/src/compat/__tests/ECIES.test.js.map +1 -0
  68. package/dist/cjs/src/compat/__tests/HD.test.js +336 -0
  69. package/dist/cjs/src/compat/__tests/HD.test.js.map +1 -0
  70. package/dist/cjs/src/compat/__tests/Mnemonic.test.js +150 -0
  71. package/dist/cjs/src/compat/__tests/Mnemonic.test.js.map +1 -0
  72. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js +175 -0
  73. package/dist/cjs/src/compat/__tests/Mnemonic.vectors.js.map +1 -0
  74. package/dist/cjs/src/compat/index.js +9 -9
  75. package/dist/cjs/src/compat/index.js.map +1 -1
  76. package/dist/cjs/src/messages/EncryptedMessage.js +17 -15
  77. package/dist/cjs/src/messages/EncryptedMessage.js.map +1 -1
  78. package/dist/cjs/src/messages/SignedMessage.js +20 -20
  79. package/dist/cjs/src/messages/SignedMessage.js.map +1 -1
  80. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js +57 -0
  81. package/dist/cjs/src/messages/__tests/EncryptedMessage.test.js.map +1 -0
  82. package/dist/cjs/src/messages/__tests/SignedMessage.test.js +52 -0
  83. package/dist/cjs/src/messages/__tests/SignedMessage.test.js.map +1 -0
  84. package/dist/cjs/src/messages/index.js +2 -2
  85. package/dist/cjs/src/messages/index.js.map +1 -1
  86. package/dist/cjs/src/overlay-tools/LookupResolver.js +20 -13
  87. package/dist/cjs/src/overlay-tools/LookupResolver.js.map +1 -1
  88. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js +44 -32
  89. package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  90. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js +41 -30
  91. package/dist/cjs/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  92. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js +1471 -0
  93. package/dist/cjs/src/overlay-tools/__tests/LookupResolver.test.js.map +1 -0
  94. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +78 -0
  95. package/dist/cjs/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +1 -0
  96. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js +933 -0
  97. package/dist/cjs/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +1 -0
  98. package/dist/cjs/src/overlay-tools/index.js +8 -8
  99. package/dist/cjs/src/overlay-tools/index.js.map +1 -1
  100. package/dist/cjs/src/primitives/BasePoint.js +2 -2
  101. package/dist/cjs/src/primitives/BasePoint.js.map +1 -1
  102. package/dist/cjs/src/primitives/BigNumber.js +46 -59
  103. package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
  104. package/dist/cjs/src/primitives/Curve.js +29 -39
  105. package/dist/cjs/src/primitives/Curve.js.map +1 -1
  106. package/dist/cjs/src/primitives/DRBG.js +8 -14
  107. package/dist/cjs/src/primitives/DRBG.js.map +1 -1
  108. package/dist/cjs/src/primitives/ECDSA.js +24 -24
  109. package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
  110. package/dist/cjs/src/primitives/Hash.js +76 -111
  111. package/dist/cjs/src/primitives/Hash.js.map +1 -1
  112. package/dist/cjs/src/primitives/JacobianPoint.js +20 -16
  113. package/dist/cjs/src/primitives/JacobianPoint.js.map +1 -1
  114. package/dist/cjs/src/primitives/K256.js +2 -2
  115. package/dist/cjs/src/primitives/K256.js.map +1 -1
  116. package/dist/cjs/src/primitives/Mersenne.js +4 -4
  117. package/dist/cjs/src/primitives/Mersenne.js.map +1 -1
  118. package/dist/cjs/src/primitives/MontgomoryMethod.js +5 -5
  119. package/dist/cjs/src/primitives/MontgomoryMethod.js.map +1 -1
  120. package/dist/cjs/src/primitives/Point.js +74 -72
  121. package/dist/cjs/src/primitives/Point.js.map +1 -1
  122. package/dist/cjs/src/primitives/Polynomial.js +15 -13
  123. package/dist/cjs/src/primitives/Polynomial.js.map +1 -1
  124. package/dist/cjs/src/primitives/PrivateKey.js +48 -39
  125. package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
  126. package/dist/cjs/src/primitives/PublicKey.js +23 -23
  127. package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
  128. package/dist/cjs/src/primitives/Random.js +4 -4
  129. package/dist/cjs/src/primitives/Random.js.map +1 -1
  130. package/dist/cjs/src/primitives/ReductionContext.js +11 -11
  131. package/dist/cjs/src/primitives/ReductionContext.js.map +1 -1
  132. package/dist/cjs/src/primitives/Schnorr.js +29 -23
  133. package/dist/cjs/src/primitives/Schnorr.js.map +1 -1
  134. package/dist/cjs/src/primitives/Signature.js +25 -24
  135. package/dist/cjs/src/primitives/Signature.js.map +1 -1
  136. package/dist/cjs/src/primitives/SymmetricKey.js +26 -26
  137. package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
  138. package/dist/cjs/src/primitives/TransactionSignature.js +23 -21
  139. package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
  140. package/dist/cjs/src/primitives/__tests/AESGCM.test.js +248 -0
  141. package/dist/cjs/src/primitives/__tests/AESGCM.test.js.map +1 -0
  142. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js +36 -0
  143. package/dist/cjs/src/primitives/__tests/BRC42.private.vectors.js.map +1 -0
  144. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js +36 -0
  145. package/dist/cjs/src/primitives/__tests/BRC42.public.vectors.js.map +1 -0
  146. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js +501 -0
  147. package/dist/cjs/src/primitives/__tests/BigNumber.arithmatic.test.js.map +1 -0
  148. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js +185 -0
  149. package/dist/cjs/src/primitives/__tests/BigNumber.binary.test.js.map +1 -0
  150. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js +149 -0
  151. package/dist/cjs/src/primitives/__tests/BigNumber.constructor.test.js.map +1 -0
  152. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js +23 -0
  153. package/dist/cjs/src/primitives/__tests/BigNumber.dhGroup.test.js.map +1 -0
  154. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js +268 -0
  155. package/dist/cjs/src/primitives/__tests/BigNumber.fixtures.js.map +1 -0
  156. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js +147 -0
  157. package/dist/cjs/src/primitives/__tests/BigNumber.serializers.test.js.map +1 -0
  158. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js +322 -0
  159. package/dist/cjs/src/primitives/__tests/BigNumber.utils.test.js.map +1 -0
  160. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js +145 -0
  161. package/dist/cjs/src/primitives/__tests/Curve.unit.test.js.map +1 -0
  162. package/dist/cjs/src/primitives/__tests/DRBG.test.js +22 -0
  163. package/dist/cjs/src/primitives/__tests/DRBG.test.js.map +1 -0
  164. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js +170 -0
  165. package/dist/cjs/src/primitives/__tests/DRBG.vectors.js.map +1 -0
  166. package/dist/cjs/src/primitives/__tests/ECDH.test.js +34 -0
  167. package/dist/cjs/src/primitives/__tests/ECDH.test.js.map +1 -0
  168. package/dist/cjs/src/primitives/__tests/ECDSA.test.js +89 -0
  169. package/dist/cjs/src/primitives/__tests/ECDSA.test.js.map +1 -0
  170. package/dist/cjs/src/primitives/__tests/HMAC.test.js +60 -0
  171. package/dist/cjs/src/primitives/__tests/HMAC.test.js.map +1 -0
  172. package/dist/cjs/src/primitives/__tests/Hash.test.js +159 -0
  173. package/dist/cjs/src/primitives/__tests/Hash.test.js.map +1 -0
  174. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js +122 -0
  175. package/dist/cjs/src/primitives/__tests/PBKDF2.vectors.js.map +1 -0
  176. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js +105 -0
  177. package/dist/cjs/src/primitives/__tests/PrivateKey.split.test.js.map +1 -0
  178. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js +90 -0
  179. package/dist/cjs/src/primitives/__tests/PrivateKey.test.js.map +1 -0
  180. package/dist/cjs/src/primitives/__tests/PublicKey.test.js +83 -0
  181. package/dist/cjs/src/primitives/__tests/PublicKey.test.js.map +1 -0
  182. package/dist/cjs/src/primitives/__tests/Random.test.js +19 -0
  183. package/dist/cjs/src/primitives/__tests/Random.test.js.map +1 -0
  184. package/dist/cjs/src/primitives/__tests/Reader.test.js +282 -0
  185. package/dist/cjs/src/primitives/__tests/Reader.test.js.map +1 -0
  186. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js +224 -0
  187. package/dist/cjs/src/primitives/__tests/ReductionContext.test.js.map +1 -0
  188. package/dist/cjs/src/primitives/__tests/Schnorr.test.js +213 -0
  189. package/dist/cjs/src/primitives/__tests/Schnorr.test.js.map +1 -0
  190. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js +51 -0
  191. package/dist/cjs/src/primitives/__tests/SymmetricKey.test.js.map +1 -0
  192. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js +43 -0
  193. package/dist/cjs/src/primitives/__tests/SymmetricKey.vectors.js.map +1 -0
  194. package/dist/cjs/src/primitives/__tests/Writer.test.js +176 -0
  195. package/dist/cjs/src/primitives/__tests/Writer.test.js.map +1 -0
  196. package/dist/cjs/src/primitives/__tests/bug-31.test.js +32 -0
  197. package/dist/cjs/src/primitives/__tests/bug-31.test.js.map +1 -0
  198. package/dist/cjs/src/primitives/__tests/sighash.vectors.js +3506 -0
  199. package/dist/cjs/src/primitives/__tests/sighash.vectors.js.map +1 -0
  200. package/dist/cjs/src/primitives/__tests/utils.test.js +110 -0
  201. package/dist/cjs/src/primitives/__tests/utils.test.js.map +1 -0
  202. package/dist/cjs/src/primitives/index.js +27 -27
  203. package/dist/cjs/src/primitives/index.js.map +1 -1
  204. package/dist/cjs/src/primitives/utils.js +70 -60
  205. package/dist/cjs/src/primitives/utils.js.map +1 -1
  206. package/dist/cjs/src/script/LockingScript.js +2 -2
  207. package/dist/cjs/src/script/LockingScript.js.map +1 -1
  208. package/dist/cjs/src/script/Script.js +49 -47
  209. package/dist/cjs/src/script/Script.js.map +1 -1
  210. package/dist/cjs/src/script/Spend.js +305 -300
  211. package/dist/cjs/src/script/Spend.js.map +1 -1
  212. package/dist/cjs/src/script/UnlockingScript.js +2 -2
  213. package/dist/cjs/src/script/UnlockingScript.js.map +1 -1
  214. package/dist/cjs/src/script/__tests/Script.test.js +347 -0
  215. package/dist/cjs/src/script/__tests/Script.test.js.map +1 -0
  216. package/dist/cjs/src/script/__tests/Spend.test.js +282 -0
  217. package/dist/cjs/src/script/__tests/Spend.test.js.map +1 -0
  218. package/dist/cjs/src/script/__tests/SpendComplex.test.js +52 -0
  219. package/dist/cjs/src/script/__tests/SpendComplex.test.js.map +1 -0
  220. package/dist/cjs/src/script/__tests/script.invalid.vectors.js +2370 -0
  221. package/dist/cjs/src/script/__tests/script.invalid.vectors.js.map +1 -0
  222. package/dist/cjs/src/script/__tests/script.valid.vectors.js +1181 -0
  223. package/dist/cjs/src/script/__tests/script.valid.vectors.js.map +1 -0
  224. package/dist/cjs/src/script/__tests/spend.valid.vectors.js +2298 -0
  225. package/dist/cjs/src/script/__tests/spend.valid.vectors.js.map +1 -0
  226. package/dist/cjs/src/script/index.js +11 -11
  227. package/dist/cjs/src/script/index.js.map +1 -1
  228. package/dist/cjs/src/script/templates/P2PKH.js +40 -36
  229. package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
  230. package/dist/cjs/src/script/templates/PushDrop.js +42 -43
  231. package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
  232. package/dist/cjs/src/script/templates/RPuzzle.js +48 -45
  233. package/dist/cjs/src/script/templates/RPuzzle.js.map +1 -1
  234. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js +161 -0
  235. package/dist/cjs/src/script/templates/__tests/PushDrop.test.js.map +1 -0
  236. package/dist/cjs/src/script/templates/index.js +6 -6
  237. package/dist/cjs/src/script/templates/index.js.map +1 -1
  238. package/dist/cjs/src/totp/__tests/totp.test.js +67 -0
  239. package/dist/cjs/src/totp/__tests/totp.test.js.map +1 -0
  240. package/dist/cjs/src/totp/index.js +1 -1
  241. package/dist/cjs/src/totp/index.js.map +1 -1
  242. package/dist/cjs/src/totp/totp.js +7 -7
  243. package/dist/cjs/src/totp/totp.js.map +1 -1
  244. package/dist/cjs/src/transaction/Beef.js +141 -129
  245. package/dist/cjs/src/transaction/Beef.js.map +1 -1
  246. package/dist/cjs/src/transaction/BeefParty.js +25 -25
  247. package/dist/cjs/src/transaction/BeefParty.js.map +1 -1
  248. package/dist/cjs/src/transaction/BeefTx.js +25 -23
  249. package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
  250. package/dist/cjs/src/transaction/Broadcaster.js.map +1 -1
  251. package/dist/cjs/src/transaction/MerklePath.js +27 -22
  252. package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
  253. package/dist/cjs/src/transaction/Transaction.js +89 -157
  254. package/dist/cjs/src/transaction/Transaction.js.map +1 -1
  255. package/dist/cjs/src/transaction/__tests/Beef.test.js +393 -0
  256. package/dist/cjs/src/transaction/__tests/Beef.test.js.map +1 -0
  257. package/dist/cjs/src/transaction/__tests/MerklePath.test.js +209 -0
  258. package/dist/cjs/src/transaction/__tests/MerklePath.test.js.map +1 -0
  259. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js +219 -0
  260. package/dist/cjs/src/transaction/__tests/Transaction.benchmarks.test.js.map +1 -0
  261. package/dist/cjs/src/transaction/__tests/Transaction.test.js +1073 -0
  262. package/dist/cjs/src/transaction/__tests/Transaction.test.js.map +1 -0
  263. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js +7 -0
  264. package/dist/cjs/src/transaction/__tests/bigtx.vectors.js.map +1 -0
  265. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js +11 -0
  266. package/dist/cjs/src/transaction/__tests/bump.invalid.vectors.js.map +1 -0
  267. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js +7 -0
  268. package/dist/cjs/src/transaction/__tests/bump.valid.vectors.js.map +1 -0
  269. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js +230 -0
  270. package/dist/cjs/src/transaction/__tests/tx.invalid.vectors.js.map +1 -0
  271. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js +296 -0
  272. package/dist/cjs/src/transaction/__tests/tx.valid.vectors.js.map +1 -0
  273. package/dist/cjs/src/transaction/broadcasters/ARC.js +39 -35
  274. package/dist/cjs/src/transaction/broadcasters/ARC.js.map +1 -1
  275. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js +2 -2
  276. package/dist/cjs/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  277. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +15 -15
  278. package/dist/cjs/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  279. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js +246 -0
  280. package/dist/cjs/src/transaction/broadcasters/__tests/ARC.test.js.map +1 -0
  281. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +148 -0
  282. package/dist/cjs/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +1 -0
  283. package/dist/cjs/src/transaction/broadcasters/index.js +6 -6
  284. package/dist/cjs/src/transaction/broadcasters/index.js.map +1 -1
  285. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js +2 -2
  286. package/dist/cjs/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  287. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +8 -8
  288. package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  289. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +155 -0
  290. package/dist/cjs/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +1 -0
  291. package/dist/cjs/src/transaction/chaintrackers/index.js +4 -4
  292. package/dist/cjs/src/transaction/chaintrackers/index.js.map +1 -1
  293. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js +3 -3
  294. package/dist/cjs/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  295. package/dist/cjs/src/transaction/fee-models/index.js +2 -2
  296. package/dist/cjs/src/transaction/fee-models/index.js.map +1 -1
  297. package/dist/cjs/src/transaction/http/DefaultHttpClient.js +11 -11
  298. package/dist/cjs/src/transaction/http/DefaultHttpClient.js.map +1 -1
  299. package/dist/cjs/src/transaction/http/FetchHttpClient.js +4 -2
  300. package/dist/cjs/src/transaction/http/FetchHttpClient.js.map +1 -1
  301. package/dist/cjs/src/transaction/http/NodejsHttpClient.js +10 -8
  302. package/dist/cjs/src/transaction/http/NodejsHttpClient.js.map +1 -1
  303. package/dist/cjs/src/transaction/http/index.js +6 -6
  304. package/dist/cjs/src/transaction/http/index.js.map +1 -1
  305. package/dist/cjs/src/transaction/index.js +12 -12
  306. package/dist/cjs/src/transaction/index.js.map +1 -1
  307. package/dist/cjs/src/wallet/CachedKeyDeriver.js +65 -63
  308. package/dist/cjs/src/wallet/CachedKeyDeriver.js.map +1 -1
  309. package/dist/cjs/src/wallet/KeyDeriver.js +66 -58
  310. package/dist/cjs/src/wallet/KeyDeriver.js.map +1 -1
  311. package/dist/cjs/src/wallet/ProtoWallet.js +36 -23
  312. package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
  313. package/dist/cjs/src/wallet/WalletClient.js +15 -14
  314. package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
  315. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js +269 -0
  316. package/dist/cjs/src/wallet/__tests/CachedKeyDeriver.test.js.map +1 -0
  317. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js +114 -0
  318. package/dist/cjs/src/wallet/__tests/KeyDeriver.test.js.map +1 -0
  319. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js +475 -0
  320. package/dist/cjs/src/wallet/__tests/ProtoWallet.test.js.map +1 -0
  321. package/dist/cjs/src/wallet/index.js +12 -12
  322. package/dist/cjs/src/wallet/index.js.map +1 -1
  323. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js +3 -3
  324. package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  325. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js +10 -10
  326. package/dist/cjs/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  327. package/dist/cjs/src/wallet/substrates/WalletWireCalls.js.map +1 -1
  328. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js +1293 -1316
  329. package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  330. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js +320 -272
  331. package/dist/cjs/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  332. package/dist/cjs/src/wallet/substrates/XDM.js +8 -5
  333. package/dist/cjs/src/wallet/substrates/XDM.js.map +1 -1
  334. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js +1962 -0
  335. package/dist/cjs/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +1 -0
  336. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js +579 -0
  337. package/dist/cjs/src/wallet/substrates/__tests/XDM.test.js.map +1 -0
  338. package/dist/cjs/src/wallet/substrates/index.js +12 -12
  339. package/dist/cjs/src/wallet/substrates/index.js.map +1 -1
  340. package/dist/cjs/src/wallet/substrates/window.CWI.js +4 -4
  341. package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
  342. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  343. package/dist/esm/mod.js +31 -15
  344. package/dist/esm/mod.js.map +1 -1
  345. package/dist/esm/src/auth/Peer.js +67 -47
  346. package/dist/esm/src/auth/Peer.js.map +1 -1
  347. package/dist/esm/src/auth/SessionManager.js +9 -5
  348. package/dist/esm/src/auth/SessionManager.js.map +1 -1
  349. package/dist/esm/src/auth/__tests/Peer.test.js +448 -0
  350. package/dist/esm/src/auth/__tests/Peer.test.js.map +1 -0
  351. package/dist/esm/src/auth/__tests/SessionManager.test.js +69 -0
  352. package/dist/esm/src/auth/__tests/SessionManager.test.js.map +1 -0
  353. package/dist/esm/src/auth/certificates/Certificate.js +31 -25
  354. package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
  355. package/dist/esm/src/auth/certificates/MasterCertificate.js +33 -24
  356. package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
  357. package/dist/esm/src/auth/certificates/VerifiableCertificate.js +15 -8
  358. package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
  359. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js +182 -0
  360. package/dist/esm/src/auth/certificates/__tests/Certificate.test.js.map +1 -0
  361. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +26 -22
  362. package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
  363. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js +184 -0
  364. package/dist/esm/src/auth/certificates/__tests/MasterCertificate.test.js.map +1 -0
  365. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js +75 -0
  366. package/dist/esm/src/auth/certificates/__tests/VerifiableCertificate.test.js.map +1 -0
  367. package/dist/esm/src/auth/certificates/index.js +25 -4
  368. package/dist/esm/src/auth/certificates/index.js.map +1 -1
  369. package/dist/esm/src/auth/clients/AuthFetch.js +79 -65
  370. package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
  371. package/dist/esm/src/auth/clients/index.js +17 -1
  372. package/dist/esm/src/auth/clients/index.js.map +1 -1
  373. package/dist/esm/src/auth/index.js +23 -7
  374. package/dist/esm/src/auth/index.js.map +1 -1
  375. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js +67 -55
  376. package/dist/esm/src/auth/transports/SimplifiedFetchTransport.js.map +1 -1
  377. package/dist/esm/src/auth/transports/index.js +17 -1
  378. package/dist/esm/src/auth/transports/index.js.map +1 -1
  379. package/dist/esm/src/auth/types.js +2 -1
  380. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js +101 -0
  381. package/dist/esm/src/auth/utils/__tests/cryptononce.test.js.map +1 -0
  382. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js +106 -0
  383. package/dist/esm/src/auth/utils/__tests/getVerifiableCertificates.test.js.map +1 -0
  384. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js +111 -0
  385. package/dist/esm/src/auth/utils/__tests/validateCertificates.test.js.map +1 -0
  386. package/dist/esm/src/auth/utils/createNonce.js +8 -5
  387. package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
  388. package/dist/esm/src/auth/utils/getVerifiableCertificates.js +7 -3
  389. package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
  390. package/dist/esm/src/auth/utils/index.js +20 -4
  391. package/dist/esm/src/auth/utils/index.js.map +1 -1
  392. package/dist/esm/src/auth/utils/validateCertificates.js +7 -3
  393. package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
  394. package/dist/esm/src/auth/utils/verifyNonce.js +7 -4
  395. package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
  396. package/dist/esm/src/compat/BSM.js +56 -14
  397. package/dist/esm/src/compat/BSM.js.map +1 -1
  398. package/dist/esm/src/compat/ECIES.js +197 -117
  399. package/dist/esm/src/compat/ECIES.js.map +1 -1
  400. package/dist/esm/src/compat/HD.js +115 -76
  401. package/dist/esm/src/compat/HD.js.map +1 -1
  402. package/dist/esm/src/compat/Mnemonic.js +138 -94
  403. package/dist/esm/src/compat/Mnemonic.js.map +1 -1
  404. package/dist/esm/src/compat/Utxo.js +12 -6
  405. package/dist/esm/src/compat/Utxo.js.map +1 -1
  406. package/dist/esm/src/compat/__tests/BSM.test.js +69 -0
  407. package/dist/esm/src/compat/__tests/BSM.test.js.map +1 -0
  408. package/dist/esm/src/compat/__tests/ECIES.test.js +115 -0
  409. package/dist/esm/src/compat/__tests/ECIES.test.js.map +1 -0
  410. package/dist/esm/src/compat/__tests/HD.test.js +336 -0
  411. package/dist/esm/src/compat/__tests/HD.test.js.map +1 -0
  412. package/dist/esm/src/compat/__tests/Mnemonic.test.js +150 -0
  413. package/dist/esm/src/compat/__tests/Mnemonic.test.js.map +1 -0
  414. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js +175 -0
  415. package/dist/esm/src/compat/__tests/Mnemonic.vectors.js.map +1 -0
  416. package/dist/esm/src/compat/bip-39-wordlist-en.js +4 -1
  417. package/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -1
  418. package/dist/esm/src/compat/index.js +48 -5
  419. package/dist/esm/src/compat/index.js.map +1 -1
  420. package/dist/esm/src/messages/EncryptedMessage.js +27 -17
  421. package/dist/esm/src/messages/EncryptedMessage.js.map +1 -1
  422. package/dist/esm/src/messages/SignedMessage.js +30 -22
  423. package/dist/esm/src/messages/SignedMessage.js.map +1 -1
  424. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js +57 -0
  425. package/dist/esm/src/messages/__tests/EncryptedMessage.test.js.map +1 -0
  426. package/dist/esm/src/messages/__tests/SignedMessage.test.js +52 -0
  427. package/dist/esm/src/messages/__tests/SignedMessage.test.js.map +1 -0
  428. package/dist/esm/src/messages/index.js +38 -2
  429. package/dist/esm/src/messages/index.js.map +1 -1
  430. package/dist/esm/src/overlay-tools/LookupResolver.js +32 -17
  431. package/dist/esm/src/overlay-tools/LookupResolver.js.map +1 -1
  432. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js +51 -33
  433. package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
  434. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js +51 -32
  435. package/dist/esm/src/overlay-tools/SHIPBroadcaster.js.map +1 -1
  436. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js +1471 -0
  437. package/dist/esm/src/overlay-tools/__tests/LookupResolver.test.js.map +1 -0
  438. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js +78 -0
  439. package/dist/esm/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.js.map +1 -0
  440. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js +933 -0
  441. package/dist/esm/src/overlay-tools/__tests/SHIPBroadcaster.test.js.map +1 -0
  442. package/dist/esm/src/overlay-tools/index.js +28 -5
  443. package/dist/esm/src/overlay-tools/index.js.map +1 -1
  444. package/dist/esm/src/primitives/AESGCM.js +39 -26
  445. package/dist/esm/src/primitives/AESGCM.js.map +1 -1
  446. package/dist/esm/src/primitives/BasePoint.js +9 -3
  447. package/dist/esm/src/primitives/BasePoint.js.map +1 -1
  448. package/dist/esm/src/primitives/BigNumber.js +50 -60
  449. package/dist/esm/src/primitives/BigNumber.js.map +1 -1
  450. package/dist/esm/src/primitives/Curve.js +36 -40
  451. package/dist/esm/src/primitives/Curve.js.map +1 -1
  452. package/dist/esm/src/primitives/DRBG.js +12 -15
  453. package/dist/esm/src/primitives/DRBG.js.map +1 -1
  454. package/dist/esm/src/primitives/ECDSA.js +34 -26
  455. package/dist/esm/src/primitives/ECDSA.js.map +1 -1
  456. package/dist/esm/src/primitives/Hash.js +115 -130
  457. package/dist/esm/src/primitives/Hash.js.map +1 -1
  458. package/dist/esm/src/primitives/JacobianPoint.js +26 -16
  459. package/dist/esm/src/primitives/JacobianPoint.js.map +1 -1
  460. package/dist/esm/src/primitives/K256.js +8 -2
  461. package/dist/esm/src/primitives/K256.js.map +1 -1
  462. package/dist/esm/src/primitives/Mersenne.js +11 -5
  463. package/dist/esm/src/primitives/Mersenne.js.map +1 -1
  464. package/dist/esm/src/primitives/MontgomoryMethod.js +11 -5
  465. package/dist/esm/src/primitives/MontgomoryMethod.js.map +1 -1
  466. package/dist/esm/src/primitives/Point.js +80 -72
  467. package/dist/esm/src/primitives/Point.js.map +1 -1
  468. package/dist/esm/src/primitives/Polynomial.js +25 -15
  469. package/dist/esm/src/primitives/Polynomial.js.map +1 -1
  470. package/dist/esm/src/primitives/PrivateKey.js +90 -40
  471. package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
  472. package/dist/esm/src/primitives/PublicKey.js +29 -23
  473. package/dist/esm/src/primitives/PublicKey.js.map +1 -1
  474. package/dist/esm/src/primitives/Random.js +7 -5
  475. package/dist/esm/src/primitives/Random.js.map +1 -1
  476. package/dist/esm/src/primitives/ReductionContext.js +18 -12
  477. package/dist/esm/src/primitives/ReductionContext.js.map +1 -1
  478. package/dist/esm/src/primitives/Schnorr.js +36 -24
  479. package/dist/esm/src/primitives/Schnorr.js.map +1 -1
  480. package/dist/esm/src/primitives/Signature.js +32 -25
  481. package/dist/esm/src/primitives/Signature.js.map +1 -1
  482. package/dist/esm/src/primitives/SymmetricKey.js +32 -26
  483. package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
  484. package/dist/esm/src/primitives/TransactionSignature.js +62 -21
  485. package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
  486. package/dist/esm/src/primitives/__tests/AESGCM.test.js +248 -0
  487. package/dist/esm/src/primitives/__tests/AESGCM.test.js.map +1 -0
  488. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js +36 -0
  489. package/dist/esm/src/primitives/__tests/BRC42.private.vectors.js.map +1 -0
  490. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js +36 -0
  491. package/dist/esm/src/primitives/__tests/BRC42.public.vectors.js.map +1 -0
  492. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js +501 -0
  493. package/dist/esm/src/primitives/__tests/BigNumber.arithmatic.test.js.map +1 -0
  494. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js +185 -0
  495. package/dist/esm/src/primitives/__tests/BigNumber.binary.test.js.map +1 -0
  496. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js +149 -0
  497. package/dist/esm/src/primitives/__tests/BigNumber.constructor.test.js.map +1 -0
  498. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js +23 -0
  499. package/dist/esm/src/primitives/__tests/BigNumber.dhGroup.test.js.map +1 -0
  500. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js +268 -0
  501. package/dist/esm/src/primitives/__tests/BigNumber.fixtures.js.map +1 -0
  502. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js +147 -0
  503. package/dist/esm/src/primitives/__tests/BigNumber.serializers.test.js.map +1 -0
  504. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js +322 -0
  505. package/dist/esm/src/primitives/__tests/BigNumber.utils.test.js.map +1 -0
  506. package/dist/esm/src/primitives/__tests/Curve.unit.test.js +145 -0
  507. package/dist/esm/src/primitives/__tests/Curve.unit.test.js.map +1 -0
  508. package/dist/esm/src/primitives/__tests/DRBG.test.js +22 -0
  509. package/dist/esm/src/primitives/__tests/DRBG.test.js.map +1 -0
  510. package/dist/esm/src/primitives/__tests/DRBG.vectors.js +170 -0
  511. package/dist/esm/src/primitives/__tests/DRBG.vectors.js.map +1 -0
  512. package/dist/esm/src/primitives/__tests/ECDH.test.js +34 -0
  513. package/dist/esm/src/primitives/__tests/ECDH.test.js.map +1 -0
  514. package/dist/esm/src/primitives/__tests/ECDSA.test.js +89 -0
  515. package/dist/esm/src/primitives/__tests/ECDSA.test.js.map +1 -0
  516. package/dist/esm/src/primitives/__tests/HMAC.test.js +60 -0
  517. package/dist/esm/src/primitives/__tests/HMAC.test.js.map +1 -0
  518. package/dist/esm/src/primitives/__tests/Hash.test.js +159 -0
  519. package/dist/esm/src/primitives/__tests/Hash.test.js.map +1 -0
  520. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js +122 -0
  521. package/dist/esm/src/primitives/__tests/PBKDF2.vectors.js.map +1 -0
  522. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js +105 -0
  523. package/dist/esm/src/primitives/__tests/PrivateKey.split.test.js.map +1 -0
  524. package/dist/esm/src/primitives/__tests/PrivateKey.test.js +90 -0
  525. package/dist/esm/src/primitives/__tests/PrivateKey.test.js.map +1 -0
  526. package/dist/esm/src/primitives/__tests/PublicKey.test.js +83 -0
  527. package/dist/esm/src/primitives/__tests/PublicKey.test.js.map +1 -0
  528. package/dist/esm/src/primitives/__tests/Random.test.js +19 -0
  529. package/dist/esm/src/primitives/__tests/Random.test.js.map +1 -0
  530. package/dist/esm/src/primitives/__tests/Reader.test.js +282 -0
  531. package/dist/esm/src/primitives/__tests/Reader.test.js.map +1 -0
  532. package/dist/esm/src/primitives/__tests/ReductionContext.test.js +223 -0
  533. package/dist/esm/src/primitives/__tests/ReductionContext.test.js.map +1 -0
  534. package/dist/esm/src/primitives/__tests/Schnorr.test.js +213 -0
  535. package/dist/esm/src/primitives/__tests/Schnorr.test.js.map +1 -0
  536. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js +51 -0
  537. package/dist/esm/src/primitives/__tests/SymmetricKey.test.js.map +1 -0
  538. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js +43 -0
  539. package/dist/esm/src/primitives/__tests/SymmetricKey.vectors.js.map +1 -0
  540. package/dist/esm/src/primitives/__tests/Writer.test.js +176 -0
  541. package/dist/esm/src/primitives/__tests/Writer.test.js.map +1 -0
  542. package/dist/esm/src/primitives/__tests/bug-31.test.js +32 -0
  543. package/dist/esm/src/primitives/__tests/bug-31.test.js.map +1 -0
  544. package/dist/esm/src/primitives/__tests/sighash.vectors.js +3506 -0
  545. package/dist/esm/src/primitives/__tests/sighash.vectors.js.map +1 -0
  546. package/dist/esm/src/primitives/__tests/utils.test.js +110 -0
  547. package/dist/esm/src/primitives/__tests/utils.test.js.map +1 -0
  548. package/dist/esm/src/primitives/index.js +66 -14
  549. package/dist/esm/src/primitives/index.js.map +1 -1
  550. package/dist/esm/src/primitives/utils.js +109 -80
  551. package/dist/esm/src/primitives/utils.js.map +1 -1
  552. package/dist/esm/src/script/LockingScript.js +8 -2
  553. package/dist/esm/src/script/LockingScript.js.map +1 -1
  554. package/dist/esm/src/script/OP.js +3 -1
  555. package/dist/esm/src/script/OP.js.map +1 -1
  556. package/dist/esm/src/script/Script.js +56 -48
  557. package/dist/esm/src/script/Script.js.map +1 -1
  558. package/dist/esm/src/script/ScriptChunk.js +2 -1
  559. package/dist/esm/src/script/ScriptTemplate.js +2 -1
  560. package/dist/esm/src/script/Spend.js +345 -301
  561. package/dist/esm/src/script/Spend.js.map +1 -1
  562. package/dist/esm/src/script/UnlockingScript.js +8 -2
  563. package/dist/esm/src/script/UnlockingScript.js.map +1 -1
  564. package/dist/esm/src/script/__tests/Script.test.js +347 -0
  565. package/dist/esm/src/script/__tests/Script.test.js.map +1 -0
  566. package/dist/esm/src/script/__tests/Spend.test.js +282 -0
  567. package/dist/esm/src/script/__tests/Spend.test.js.map +1 -0
  568. package/dist/esm/src/script/__tests/SpendComplex.test.js +51 -0
  569. package/dist/esm/src/script/__tests/SpendComplex.test.js.map +1 -0
  570. package/dist/esm/src/script/__tests/script.invalid.vectors.js +2370 -0
  571. package/dist/esm/src/script/__tests/script.invalid.vectors.js.map +1 -0
  572. package/dist/esm/src/script/__tests/script.valid.vectors.js +1181 -0
  573. package/dist/esm/src/script/__tests/script.valid.vectors.js.map +1 -0
  574. package/dist/esm/src/script/__tests/spend.valid.vectors.js +2298 -0
  575. package/dist/esm/src/script/__tests/spend.valid.vectors.js.map +1 -0
  576. package/dist/esm/src/script/index.js +31 -6
  577. package/dist/esm/src/script/index.js.map +1 -1
  578. package/dist/esm/src/script/templates/P2PKH.js +52 -39
  579. package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
  580. package/dist/esm/src/script/templates/PushDrop.js +51 -46
  581. package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
  582. package/dist/esm/src/script/templates/RPuzzle.js +55 -46
  583. package/dist/esm/src/script/templates/RPuzzle.js.map +1 -1
  584. package/dist/esm/src/script/templates/__tests/PushDrop.test.js +161 -0
  585. package/dist/esm/src/script/templates/__tests/PushDrop.test.js.map +1 -0
  586. package/dist/esm/src/script/templates/index.js +12 -3
  587. package/dist/esm/src/script/templates/index.js.map +1 -1
  588. package/dist/esm/src/totp/__tests/totp.test.js +67 -0
  589. package/dist/esm/src/totp/__tests/totp.test.js.map +1 -0
  590. package/dist/esm/src/totp/index.js +17 -1
  591. package/dist/esm/src/totp/index.js.map +1 -1
  592. package/dist/esm/src/totp/totp.js +15 -8
  593. package/dist/esm/src/totp/totp.js.map +1 -1
  594. package/dist/esm/src/transaction/Beef.js +160 -141
  595. package/dist/esm/src/transaction/Beef.js.map +1 -1
  596. package/dist/esm/src/transaction/BeefParty.js +30 -26
  597. package/dist/esm/src/transaction/BeefParty.js.map +1 -1
  598. package/dist/esm/src/transaction/BeefTx.js +32 -24
  599. package/dist/esm/src/transaction/BeefTx.js.map +1 -1
  600. package/dist/esm/src/transaction/Broadcaster.js +6 -2
  601. package/dist/esm/src/transaction/Broadcaster.js.map +1 -1
  602. package/dist/esm/src/transaction/ChainTracker.js +2 -1
  603. package/dist/esm/src/transaction/FeeModel.js +2 -1
  604. package/dist/esm/src/transaction/MerklePath.js +31 -23
  605. package/dist/esm/src/transaction/MerklePath.js.map +1 -1
  606. package/dist/esm/src/transaction/Transaction.js +96 -158
  607. package/dist/esm/src/transaction/Transaction.js.map +1 -1
  608. package/dist/esm/src/transaction/TransactionInput.js +2 -1
  609. package/dist/esm/src/transaction/TransactionOutput.js +2 -1
  610. package/dist/esm/src/transaction/__tests/Beef.test.js +393 -0
  611. package/dist/esm/src/transaction/__tests/Beef.test.js.map +1 -0
  612. package/dist/esm/src/transaction/__tests/MerklePath.test.js +209 -0
  613. package/dist/esm/src/transaction/__tests/MerklePath.test.js.map +1 -0
  614. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js +219 -0
  615. package/dist/esm/src/transaction/__tests/Transaction.benchmarks.test.js.map +1 -0
  616. package/dist/esm/src/transaction/__tests/Transaction.test.js +1072 -0
  617. package/dist/esm/src/transaction/__tests/Transaction.test.js.map +1 -0
  618. package/dist/esm/src/transaction/__tests/bigtx.vectors.js +7 -0
  619. package/dist/esm/src/transaction/__tests/bigtx.vectors.js.map +1 -0
  620. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js +11 -0
  621. package/dist/esm/src/transaction/__tests/bump.invalid.vectors.js.map +1 -0
  622. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js +7 -0
  623. package/dist/esm/src/transaction/__tests/bump.valid.vectors.js.map +1 -0
  624. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js +230 -0
  625. package/dist/esm/src/transaction/__tests/tx.invalid.vectors.js.map +1 -0
  626. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js +296 -0
  627. package/dist/esm/src/transaction/__tests/tx.valid.vectors.js.map +1 -0
  628. package/dist/esm/src/transaction/broadcasters/ARC.js +46 -36
  629. package/dist/esm/src/transaction/broadcasters/ARC.js.map +1 -1
  630. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js +9 -3
  631. package/dist/esm/src/transaction/broadcasters/DefaultBroadcaster.js.map +1 -1
  632. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js +19 -16
  633. package/dist/esm/src/transaction/broadcasters/WhatsOnChainBroadcaster.js.map +1 -1
  634. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js +246 -0
  635. package/dist/esm/src/transaction/broadcasters/__tests/ARC.test.js.map +1 -0
  636. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js +148 -0
  637. package/dist/esm/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.js.map +1 -0
  638. package/dist/esm/src/transaction/broadcasters/index.js +12 -3
  639. package/dist/esm/src/transaction/broadcasters/index.js.map +1 -1
  640. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js +9 -3
  641. package/dist/esm/src/transaction/chaintrackers/DefaultChainTracker.js.map +1 -1
  642. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +12 -9
  643. package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
  644. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js +155 -0
  645. package/dist/esm/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.js.map +1 -0
  646. package/dist/esm/src/transaction/chaintrackers/index.js +10 -2
  647. package/dist/esm/src/transaction/chaintrackers/index.js.map +1 -1
  648. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js +7 -4
  649. package/dist/esm/src/transaction/fee-models/SatoshisPerKilobyte.js.map +1 -1
  650. package/dist/esm/src/transaction/fee-models/index.js +8 -1
  651. package/dist/esm/src/transaction/fee-models/index.js.map +1 -1
  652. package/dist/esm/src/transaction/http/DefaultHttpClient.js +15 -12
  653. package/dist/esm/src/transaction/http/DefaultHttpClient.js.map +1 -1
  654. package/dist/esm/src/transaction/http/FetchHttpClient.js +9 -3
  655. package/dist/esm/src/transaction/http/FetchHttpClient.js.map +1 -1
  656. package/dist/esm/src/transaction/http/HttpClient.js +2 -1
  657. package/dist/esm/src/transaction/http/NodejsHttpClient.js +15 -9
  658. package/dist/esm/src/transaction/http/NodejsHttpClient.js.map +1 -1
  659. package/dist/esm/src/transaction/http/index.js +9 -3
  660. package/dist/esm/src/transaction/http/index.js.map +1 -1
  661. package/dist/esm/src/transaction/index.js +32 -6
  662. package/dist/esm/src/transaction/index.js.map +1 -1
  663. package/dist/esm/src/wallet/CachedKeyDeriver.js +69 -64
  664. package/dist/esm/src/wallet/CachedKeyDeriver.js.map +1 -1
  665. package/dist/esm/src/wallet/KeyDeriver.js +72 -60
  666. package/dist/esm/src/wallet/KeyDeriver.js.map +1 -1
  667. package/dist/esm/src/wallet/ProtoWallet.js +42 -25
  668. package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
  669. package/dist/esm/src/wallet/Wallet.interfaces.js +5 -2
  670. package/dist/esm/src/wallet/Wallet.interfaces.js.map +1 -1
  671. package/dist/esm/src/wallet/WalletClient.js +22 -15
  672. package/dist/esm/src/wallet/WalletClient.js.map +1 -1
  673. package/dist/esm/src/wallet/WalletError.js +6 -2
  674. package/dist/esm/src/wallet/WalletError.js.map +1 -1
  675. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js +269 -0
  676. package/dist/esm/src/wallet/__tests/CachedKeyDeriver.test.js.map +1 -0
  677. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js +113 -0
  678. package/dist/esm/src/wallet/__tests/KeyDeriver.test.js.map +1 -0
  679. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js +475 -0
  680. package/dist/esm/src/wallet/__tests/ProtoWallet.test.js.map +1 -0
  681. package/dist/esm/src/wallet/index.js +32 -8
  682. package/dist/esm/src/wallet/index.js.map +1 -1
  683. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js +7 -4
  684. package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
  685. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js +17 -11
  686. package/dist/esm/src/wallet/substrates/HTTPWalletWire.js.map +1 -1
  687. package/dist/esm/src/wallet/substrates/WalletWire.js +2 -1
  688. package/dist/esm/src/wallet/substrates/WalletWireCalls.js +3 -1
  689. package/dist/esm/src/wallet/substrates/WalletWireCalls.js.map +1 -1
  690. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js +1300 -1317
  691. package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
  692. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js +327 -273
  693. package/dist/esm/src/wallet/substrates/WalletWireTransceiver.js.map +1 -1
  694. package/dist/esm/src/wallet/substrates/XDM.js +12 -6
  695. package/dist/esm/src/wallet/substrates/XDM.js.map +1 -1
  696. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js +1962 -0
  697. package/dist/esm/src/wallet/substrates/__tests/WalletWire.integration.test.js.map +1 -0
  698. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js +579 -0
  699. package/dist/esm/src/wallet/substrates/__tests/XDM.test.js.map +1 -0
  700. package/dist/esm/src/wallet/substrates/index.js +32 -7
  701. package/dist/esm/src/wallet/substrates/index.js.map +1 -1
  702. package/dist/esm/src/wallet/substrates/window.CWI.js +8 -5
  703. package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
  704. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  705. package/dist/types/mod.d.ts +15 -15
  706. package/dist/types/mod.d.ts.map +1 -1
  707. package/dist/types/src/auth/Peer.d.ts +14 -14
  708. package/dist/types/src/auth/Peer.d.ts.map +1 -1
  709. package/dist/types/src/auth/SessionManager.d.ts +5 -5
  710. package/dist/types/src/auth/SessionManager.d.ts.map +1 -1
  711. package/dist/types/src/auth/__tests/Peer.test.d.ts +2 -0
  712. package/dist/types/src/auth/__tests/Peer.test.d.ts.map +1 -0
  713. package/dist/types/src/auth/__tests/SessionManager.test.d.ts +2 -0
  714. package/dist/types/src/auth/__tests/SessionManager.test.d.ts.map +1 -0
  715. package/dist/types/src/auth/certificates/Certificate.d.ts +3 -3
  716. package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
  717. package/dist/types/src/auth/certificates/MasterCertificate.d.ts +11 -11
  718. package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
  719. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +4 -4
  720. package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
  721. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts +2 -0
  722. package/dist/types/src/auth/certificates/__tests/Certificate.test.d.ts.map +1 -0
  723. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +2 -2
  724. package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
  725. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts +2 -0
  726. package/dist/types/src/auth/certificates/__tests/MasterCertificate.test.d.ts.map +1 -0
  727. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts +2 -0
  728. package/dist/types/src/auth/certificates/__tests/VerifiableCertificate.test.d.ts.map +1 -0
  729. package/dist/types/src/auth/certificates/index.d.ts +4 -4
  730. package/dist/types/src/auth/certificates/index.d.ts.map +1 -1
  731. package/dist/types/src/auth/clients/AuthFetch.d.ts +9 -9
  732. package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
  733. package/dist/types/src/auth/clients/index.d.ts +1 -1
  734. package/dist/types/src/auth/clients/index.d.ts.map +1 -1
  735. package/dist/types/src/auth/index.d.ts +7 -7
  736. package/dist/types/src/auth/index.d.ts.map +1 -1
  737. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts +1 -1
  738. package/dist/types/src/auth/transports/SimplifiedFetchTransport.d.ts.map +1 -1
  739. package/dist/types/src/auth/transports/index.d.ts +1 -1
  740. package/dist/types/src/auth/transports/index.d.ts.map +1 -1
  741. package/dist/types/src/auth/types.d.ts +1 -1
  742. package/dist/types/src/auth/types.d.ts.map +1 -1
  743. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts +2 -0
  744. package/dist/types/src/auth/utils/__tests/cryptononce.test.d.ts.map +1 -0
  745. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts +2 -0
  746. package/dist/types/src/auth/utils/__tests/getVerifiableCertificates.test.d.ts.map +1 -0
  747. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts +2 -0
  748. package/dist/types/src/auth/utils/__tests/validateCertificates.test.d.ts.map +1 -0
  749. package/dist/types/src/auth/utils/createNonce.d.ts +1 -1
  750. package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
  751. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +3 -3
  752. package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
  753. package/dist/types/src/auth/utils/index.d.ts +4 -4
  754. package/dist/types/src/auth/utils/index.d.ts.map +1 -1
  755. package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
  756. package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
  757. package/dist/types/src/auth/utils/verifyNonce.d.ts +1 -1
  758. package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
  759. package/dist/types/src/compat/BSM.d.ts +3 -3
  760. package/dist/types/src/compat/BSM.d.ts.map +1 -1
  761. package/dist/types/src/compat/ECIES.d.ts +38 -38
  762. package/dist/types/src/compat/ECIES.d.ts.map +1 -1
  763. package/dist/types/src/compat/HD.d.ts +53 -53
  764. package/dist/types/src/compat/HD.d.ts.map +1 -1
  765. package/dist/types/src/compat/Mnemonic.d.ts +79 -79
  766. package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
  767. package/dist/types/src/compat/Utxo.d.ts +3 -3
  768. package/dist/types/src/compat/Utxo.d.ts.map +1 -1
  769. package/dist/types/src/compat/__tests/BSM.test.d.ts +2 -0
  770. package/dist/types/src/compat/__tests/BSM.test.d.ts.map +1 -0
  771. package/dist/types/src/compat/__tests/ECIES.test.d.ts +2 -0
  772. package/dist/types/src/compat/__tests/ECIES.test.d.ts.map +1 -0
  773. package/dist/types/src/compat/__tests/HD.test.d.ts +2 -0
  774. package/dist/types/src/compat/__tests/HD.test.d.ts.map +1 -0
  775. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts +2 -0
  776. package/dist/types/src/compat/__tests/Mnemonic.test.d.ts.map +1 -0
  777. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts +11 -0
  778. package/dist/types/src/compat/__tests/Mnemonic.vectors.d.ts.map +1 -0
  779. package/dist/types/src/compat/index.d.ts +5 -5
  780. package/dist/types/src/compat/index.d.ts.map +1 -1
  781. package/dist/types/src/messages/EncryptedMessage.d.ts +2 -2
  782. package/dist/types/src/messages/EncryptedMessage.d.ts.map +1 -1
  783. package/dist/types/src/messages/SignedMessage.d.ts +2 -2
  784. package/dist/types/src/messages/SignedMessage.d.ts.map +1 -1
  785. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts +2 -0
  786. package/dist/types/src/messages/__tests/EncryptedMessage.test.d.ts.map +1 -0
  787. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts +2 -0
  788. package/dist/types/src/messages/__tests/SignedMessage.test.d.ts.map +1 -0
  789. package/dist/types/src/messages/index.d.ts +2 -2
  790. package/dist/types/src/messages/index.d.ts.map +1 -1
  791. package/dist/types/src/overlay-tools/LookupResolver.d.ts +9 -9
  792. package/dist/types/src/overlay-tools/LookupResolver.d.ts.map +1 -1
  793. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +21 -21
  794. package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
  795. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts +16 -16
  796. package/dist/types/src/overlay-tools/SHIPBroadcaster.d.ts.map +1 -1
  797. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts +2 -0
  798. package/dist/types/src/overlay-tools/__tests/LookupResolver.test.d.ts.map +1 -0
  799. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts +2 -0
  800. package/dist/types/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.d.ts.map +1 -0
  801. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts +2 -0
  802. package/dist/types/src/overlay-tools/__tests/SHIPBroadcaster.test.d.ts.map +1 -0
  803. package/dist/types/src/overlay-tools/index.d.ts +5 -5
  804. package/dist/types/src/overlay-tools/index.d.ts.map +1 -1
  805. package/dist/types/src/primitives/BasePoint.d.ts +1 -1
  806. package/dist/types/src/primitives/BasePoint.d.ts.map +1 -1
  807. package/dist/types/src/primitives/BigNumber.d.ts +1 -1
  808. package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
  809. package/dist/types/src/primitives/Curve.d.ts +3 -3
  810. package/dist/types/src/primitives/Curve.d.ts.map +1 -1
  811. package/dist/types/src/primitives/DRBG.d.ts +1 -1
  812. package/dist/types/src/primitives/DRBG.d.ts.map +1 -1
  813. package/dist/types/src/primitives/ECDSA.d.ts +3 -3
  814. package/dist/types/src/primitives/ECDSA.d.ts.map +1 -1
  815. package/dist/types/src/primitives/Hash.d.ts.map +1 -1
  816. package/dist/types/src/primitives/JacobianPoint.d.ts +3 -3
  817. package/dist/types/src/primitives/JacobianPoint.d.ts.map +1 -1
  818. package/dist/types/src/primitives/K256.d.ts +2 -2
  819. package/dist/types/src/primitives/K256.d.ts.map +1 -1
  820. package/dist/types/src/primitives/Mersenne.d.ts +1 -1
  821. package/dist/types/src/primitives/Mersenne.d.ts.map +1 -1
  822. package/dist/types/src/primitives/MontgomoryMethod.d.ts +2 -2
  823. package/dist/types/src/primitives/MontgomoryMethod.d.ts.map +1 -1
  824. package/dist/types/src/primitives/Point.d.ts +17 -13
  825. package/dist/types/src/primitives/Point.d.ts.map +1 -1
  826. package/dist/types/src/primitives/Polynomial.d.ts +2 -2
  827. package/dist/types/src/primitives/Polynomial.d.ts.map +1 -1
  828. package/dist/types/src/primitives/PrivateKey.d.ts +5 -5
  829. package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
  830. package/dist/types/src/primitives/PublicKey.d.ts +4 -4
  831. package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
  832. package/dist/types/src/primitives/Random.d.ts.map +1 -1
  833. package/dist/types/src/primitives/ReductionContext.d.ts +2 -2
  834. package/dist/types/src/primitives/ReductionContext.d.ts.map +1 -1
  835. package/dist/types/src/primitives/Schnorr.d.ts +17 -17
  836. package/dist/types/src/primitives/Schnorr.d.ts.map +1 -1
  837. package/dist/types/src/primitives/Signature.d.ts +2 -2
  838. package/dist/types/src/primitives/Signature.d.ts.map +1 -1
  839. package/dist/types/src/primitives/SymmetricKey.d.ts +14 -14
  840. package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
  841. package/dist/types/src/primitives/TransactionSignature.d.ts +9 -9
  842. package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
  843. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts +2 -0
  844. package/dist/types/src/primitives/__tests/AESGCM.test.d.ts.map +1 -0
  845. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts +8 -0
  846. package/dist/types/src/primitives/__tests/BRC42.private.vectors.d.ts.map +1 -0
  847. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts +8 -0
  848. package/dist/types/src/primitives/__tests/BRC42.public.vectors.d.ts.map +1 -0
  849. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts +2 -0
  850. package/dist/types/src/primitives/__tests/BigNumber.arithmatic.test.d.ts.map +1 -0
  851. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts +2 -0
  852. package/dist/types/src/primitives/__tests/BigNumber.binary.test.d.ts.map +1 -0
  853. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts +2 -0
  854. package/dist/types/src/primitives/__tests/BigNumber.constructor.test.d.ts.map +1 -0
  855. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts +2 -0
  856. package/dist/types/src/primitives/__tests/BigNumber.dhGroup.test.d.ts.map +1 -0
  857. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts +15 -0
  858. package/dist/types/src/primitives/__tests/BigNumber.fixtures.d.ts.map +1 -0
  859. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts +2 -0
  860. package/dist/types/src/primitives/__tests/BigNumber.serializers.test.d.ts.map +1 -0
  861. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts +2 -0
  862. package/dist/types/src/primitives/__tests/BigNumber.utils.test.d.ts.map +1 -0
  863. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts +2 -0
  864. package/dist/types/src/primitives/__tests/Curve.unit.test.d.ts.map +1 -0
  865. package/dist/types/src/primitives/__tests/DRBG.test.d.ts +2 -0
  866. package/dist/types/src/primitives/__tests/DRBG.test.d.ts.map +1 -0
  867. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts +10 -0
  868. package/dist/types/src/primitives/__tests/DRBG.vectors.d.ts.map +1 -0
  869. package/dist/types/src/primitives/__tests/ECDH.test.d.ts +2 -0
  870. package/dist/types/src/primitives/__tests/ECDH.test.d.ts.map +1 -0
  871. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts +2 -0
  872. package/dist/types/src/primitives/__tests/ECDSA.test.d.ts.map +1 -0
  873. package/dist/types/src/primitives/__tests/HMAC.test.d.ts +2 -0
  874. package/dist/types/src/primitives/__tests/HMAC.test.d.ts.map +1 -0
  875. package/dist/types/src/primitives/__tests/Hash.test.d.ts +2 -0
  876. package/dist/types/src/primitives/__tests/Hash.test.d.ts.map +1 -0
  877. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts +68 -0
  878. package/dist/types/src/primitives/__tests/PBKDF2.vectors.d.ts.map +1 -0
  879. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts +2 -0
  880. package/dist/types/src/primitives/__tests/PrivateKey.split.test.d.ts.map +1 -0
  881. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts +2 -0
  882. package/dist/types/src/primitives/__tests/PrivateKey.test.d.ts.map +1 -0
  883. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts +2 -0
  884. package/dist/types/src/primitives/__tests/PublicKey.test.d.ts.map +1 -0
  885. package/dist/types/src/primitives/__tests/Random.test.d.ts +2 -0
  886. package/dist/types/src/primitives/__tests/Random.test.d.ts.map +1 -0
  887. package/dist/types/src/primitives/__tests/Reader.test.d.ts +2 -0
  888. package/dist/types/src/primitives/__tests/Reader.test.d.ts.map +1 -0
  889. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts +2 -0
  890. package/dist/types/src/primitives/__tests/ReductionContext.test.d.ts.map +1 -0
  891. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts +2 -0
  892. package/dist/types/src/primitives/__tests/Schnorr.test.d.ts.map +1 -0
  893. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts +2 -0
  894. package/dist/types/src/primitives/__tests/SymmetricKey.test.d.ts.map +1 -0
  895. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts +20 -0
  896. package/dist/types/src/primitives/__tests/SymmetricKey.vectors.d.ts.map +1 -0
  897. package/dist/types/src/primitives/__tests/Writer.test.d.ts +2 -0
  898. package/dist/types/src/primitives/__tests/Writer.test.d.ts.map +1 -0
  899. package/dist/types/src/primitives/__tests/bug-31.test.d.ts +2 -0
  900. package/dist/types/src/primitives/__tests/bug-31.test.d.ts.map +1 -0
  901. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts +3 -0
  902. package/dist/types/src/primitives/__tests/sighash.vectors.d.ts.map +1 -0
  903. package/dist/types/src/primitives/__tests/utils.test.d.ts +2 -0
  904. package/dist/types/src/primitives/__tests/utils.test.d.ts.map +1 -0
  905. package/dist/types/src/primitives/index.d.ts +14 -14
  906. package/dist/types/src/primitives/index.d.ts.map +1 -1
  907. package/dist/types/src/primitives/utils.d.ts +1 -1
  908. package/dist/types/src/primitives/utils.d.ts.map +1 -1
  909. package/dist/types/src/script/LockingScript.d.ts +1 -1
  910. package/dist/types/src/script/LockingScript.d.ts.map +1 -1
  911. package/dist/types/src/script/Script.d.ts +5 -5
  912. package/dist/types/src/script/Script.d.ts.map +1 -1
  913. package/dist/types/src/script/ScriptTemplate.d.ts +3 -3
  914. package/dist/types/src/script/ScriptTemplate.d.ts.map +1 -1
  915. package/dist/types/src/script/Spend.d.ts +4 -4
  916. package/dist/types/src/script/Spend.d.ts.map +1 -1
  917. package/dist/types/src/script/UnlockingScript.d.ts +1 -1
  918. package/dist/types/src/script/UnlockingScript.d.ts.map +1 -1
  919. package/dist/types/src/script/__tests/Script.test.d.ts +2 -0
  920. package/dist/types/src/script/__tests/Script.test.d.ts.map +1 -0
  921. package/dist/types/src/script/__tests/Spend.test.d.ts +2 -0
  922. package/dist/types/src/script/__tests/Spend.test.d.ts.map +1 -0
  923. package/dist/types/src/script/__tests/SpendComplex.test.d.ts +2 -0
  924. package/dist/types/src/script/__tests/SpendComplex.test.d.ts.map +1 -0
  925. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts +3 -0
  926. package/dist/types/src/script/__tests/script.invalid.vectors.d.ts.map +1 -0
  927. package/dist/types/src/script/__tests/script.valid.vectors.d.ts +3 -0
  928. package/dist/types/src/script/__tests/script.valid.vectors.d.ts.map +1 -0
  929. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts +3 -0
  930. package/dist/types/src/script/__tests/spend.valid.vectors.d.ts.map +1 -0
  931. package/dist/types/src/script/index.d.ts +7 -7
  932. package/dist/types/src/script/index.d.ts.map +1 -1
  933. package/dist/types/src/script/templates/P2PKH.d.ts +7 -7
  934. package/dist/types/src/script/templates/P2PKH.d.ts.map +1 -1
  935. package/dist/types/src/script/templates/PushDrop.d.ts +7 -7
  936. package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
  937. package/dist/types/src/script/templates/RPuzzle.d.ts +9 -9
  938. package/dist/types/src/script/templates/RPuzzle.d.ts.map +1 -1
  939. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts +2 -0
  940. package/dist/types/src/script/templates/__tests/PushDrop.test.d.ts.map +1 -0
  941. package/dist/types/src/script/templates/index.d.ts +3 -3
  942. package/dist/types/src/script/templates/index.d.ts.map +1 -1
  943. package/dist/types/src/totp/__tests/totp.test.d.ts +2 -0
  944. package/dist/types/src/totp/__tests/totp.test.d.ts.map +1 -0
  945. package/dist/types/src/totp/index.d.ts +1 -1
  946. package/dist/types/src/totp/index.d.ts.map +1 -1
  947. package/dist/types/src/transaction/Beef.d.ts +96 -96
  948. package/dist/types/src/transaction/Beef.d.ts.map +1 -1
  949. package/dist/types/src/transaction/BeefParty.d.ts +23 -23
  950. package/dist/types/src/transaction/BeefParty.d.ts.map +1 -1
  951. package/dist/types/src/transaction/BeefTx.d.ts +5 -5
  952. package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
  953. package/dist/types/src/transaction/Broadcaster.d.ts +1 -1
  954. package/dist/types/src/transaction/Broadcaster.d.ts.map +1 -1
  955. package/dist/types/src/transaction/ChainTracker.d.ts +2 -2
  956. package/dist/types/src/transaction/FeeModel.d.ts +1 -1
  957. package/dist/types/src/transaction/FeeModel.d.ts.map +1 -1
  958. package/dist/types/src/transaction/MerklePath.d.ts +2 -2
  959. package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
  960. package/dist/types/src/transaction/Transaction.d.ts +11 -19
  961. package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
  962. package/dist/types/src/transaction/TransactionInput.d.ts +2 -2
  963. package/dist/types/src/transaction/TransactionInput.d.ts.map +1 -1
  964. package/dist/types/src/transaction/TransactionOutput.d.ts +1 -1
  965. package/dist/types/src/transaction/TransactionOutput.d.ts.map +1 -1
  966. package/dist/types/src/transaction/__tests/Beef.test.d.ts +2 -0
  967. package/dist/types/src/transaction/__tests/Beef.test.d.ts.map +1 -0
  968. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts +2 -0
  969. package/dist/types/src/transaction/__tests/MerklePath.test.d.ts.map +1 -0
  970. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts +2 -0
  971. package/dist/types/src/transaction/__tests/Transaction.benchmarks.test.d.ts.map +1 -0
  972. package/dist/types/src/transaction/__tests/Transaction.test.d.ts +2 -0
  973. package/dist/types/src/transaction/__tests/Transaction.test.d.ts.map +1 -0
  974. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts +6 -0
  975. package/dist/types/src/transaction/__tests/bigtx.vectors.d.ts.map +1 -0
  976. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts +6 -0
  977. package/dist/types/src/transaction/__tests/bump.invalid.vectors.d.ts.map +1 -0
  978. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts +5 -0
  979. package/dist/types/src/transaction/__tests/bump.valid.vectors.d.ts.map +1 -0
  980. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts +3 -0
  981. package/dist/types/src/transaction/__tests/tx.invalid.vectors.d.ts.map +1 -0
  982. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts +3 -0
  983. package/dist/types/src/transaction/__tests/tx.valid.vectors.d.ts.map +1 -0
  984. package/dist/types/src/transaction/broadcasters/ARC.d.ts +3 -3
  985. package/dist/types/src/transaction/broadcasters/ARC.d.ts.map +1 -1
  986. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts +2 -2
  987. package/dist/types/src/transaction/broadcasters/DefaultBroadcaster.d.ts.map +1 -1
  988. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts +4 -4
  989. package/dist/types/src/transaction/broadcasters/WhatsOnChainBroadcaster.d.ts.map +1 -1
  990. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts +2 -0
  991. package/dist/types/src/transaction/broadcasters/__tests/ARC.test.d.ts.map +1 -0
  992. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts +2 -0
  993. package/dist/types/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.d.ts.map +1 -0
  994. package/dist/types/src/transaction/broadcasters/index.d.ts +4 -4
  995. package/dist/types/src/transaction/broadcasters/index.d.ts.map +1 -1
  996. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts +1 -1
  997. package/dist/types/src/transaction/chaintrackers/DefaultChainTracker.d.ts.map +1 -1
  998. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +3 -3
  999. package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
  1000. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts +2 -0
  1001. package/dist/types/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.d.ts.map +1 -0
  1002. package/dist/types/src/transaction/chaintrackers/index.d.ts +3 -3
  1003. package/dist/types/src/transaction/chaintrackers/index.d.ts.map +1 -1
  1004. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts +2 -2
  1005. package/dist/types/src/transaction/fee-models/SatoshisPerKilobyte.d.ts.map +1 -1
  1006. package/dist/types/src/transaction/fee-models/index.d.ts +1 -1
  1007. package/dist/types/src/transaction/fee-models/index.d.ts.map +1 -1
  1008. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts +2 -2
  1009. package/dist/types/src/transaction/http/DefaultHttpClient.d.ts.map +1 -1
  1010. package/dist/types/src/transaction/http/FetchHttpClient.d.ts +6 -6
  1011. package/dist/types/src/transaction/http/FetchHttpClient.d.ts.map +1 -1
  1012. package/dist/types/src/transaction/http/HttpClient.d.ts +4 -4
  1013. package/dist/types/src/transaction/http/HttpClient.d.ts.map +1 -1
  1014. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts +4 -4
  1015. package/dist/types/src/transaction/http/NodejsHttpClient.d.ts.map +1 -1
  1016. package/dist/types/src/transaction/http/index.d.ts +6 -6
  1017. package/dist/types/src/transaction/http/index.d.ts.map +1 -1
  1018. package/dist/types/src/transaction/index.d.ts +10 -10
  1019. package/dist/types/src/transaction/index.d.ts.map +1 -1
  1020. package/dist/types/src/wallet/CachedKeyDeriver.d.ts +61 -61
  1021. package/dist/types/src/wallet/CachedKeyDeriver.d.ts.map +1 -1
  1022. package/dist/types/src/wallet/KeyDeriver.d.ts +80 -80
  1023. package/dist/types/src/wallet/KeyDeriver.d.ts.map +1 -1
  1024. package/dist/types/src/wallet/ProtoWallet.d.ts +14 -14
  1025. package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
  1026. package/dist/types/src/wallet/Wallet.interfaces.d.ts +144 -144
  1027. package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
  1028. package/dist/types/src/wallet/WalletClient.d.ts +1 -1
  1029. package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
  1030. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts +2 -0
  1031. package/dist/types/src/wallet/__tests/CachedKeyDeriver.test.d.ts.map +1 -0
  1032. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts +2 -0
  1033. package/dist/types/src/wallet/__tests/KeyDeriver.test.d.ts.map +1 -0
  1034. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts +2 -0
  1035. package/dist/types/src/wallet/__tests/ProtoWallet.test.d.ts.map +1 -0
  1036. package/dist/types/src/wallet/index.d.ts +8 -8
  1037. package/dist/types/src/wallet/index.d.ts.map +1 -1
  1038. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +1 -1
  1039. package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
  1040. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts +1 -1
  1041. package/dist/types/src/wallet/substrates/HTTPWalletWire.d.ts.map +1 -1
  1042. package/dist/types/src/wallet/substrates/WalletWire.d.ts.map +1 -1
  1043. package/dist/types/src/wallet/substrates/WalletWireCalls.d.ts.map +1 -1
  1044. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts +2 -2
  1045. package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
  1046. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +10 -10
  1047. package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
  1048. package/dist/types/src/wallet/substrates/XDM.d.ts +2 -2
  1049. package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
  1050. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts +2 -0
  1051. package/dist/types/src/wallet/substrates/__tests/WalletWire.integration.test.d.ts.map +1 -0
  1052. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts +5 -0
  1053. package/dist/types/src/wallet/substrates/__tests/XDM.test.d.ts.map +1 -0
  1054. package/dist/types/src/wallet/substrates/index.d.ts +7 -7
  1055. package/dist/types/src/wallet/substrates/index.d.ts.map +1 -1
  1056. package/dist/types/src/wallet/substrates/window.CWI.d.ts +19 -19
  1057. package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
  1058. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  1059. package/dist/umd/bundle.js +1 -1
  1060. package/docs/auth.md +71 -63
  1061. package/docs/compat.md +24 -24
  1062. package/docs/messages.md +7 -5
  1063. package/docs/overlay-tools.md +21 -21
  1064. package/docs/primitives.md +239 -242
  1065. package/docs/script.md +31 -31
  1066. package/docs/totp.md +5 -5
  1067. package/docs/transaction.md +76 -78
  1068. package/docs/wallet-substrates.md +6 -6
  1069. package/docs/wallet.md +140 -140
  1070. package/mod.ts +15 -15
  1071. package/package.json +10 -2
  1072. package/src/auth/Peer.ts +217 -72
  1073. package/src/auth/SessionManager.ts +8 -6
  1074. package/src/auth/__tests/Peer.test.ts +314 -159
  1075. package/src/auth/certificates/Certificate.ts +17 -8
  1076. package/src/auth/certificates/MasterCertificate.ts +111 -55
  1077. package/src/auth/certificates/VerifiableCertificate.ts +31 -11
  1078. package/src/auth/certificates/__tests/Certificate.test.ts +160 -146
  1079. package/src/auth/certificates/__tests/CompletedProtoWallet.ts +148 -59
  1080. package/src/auth/certificates/__tests/MasterCertificate.test.ts +65 -41
  1081. package/src/auth/certificates/__tests/VerifiableCertificate.test.ts +60 -15
  1082. package/src/auth/certificates/index.ts +4 -4
  1083. package/src/auth/clients/AuthFetch.ts +316 -231
  1084. package/src/auth/clients/index.ts +1 -1
  1085. package/src/auth/index.ts +7 -7
  1086. package/src/auth/transports/SimplifiedFetchTransport.ts +166 -124
  1087. package/src/auth/transports/index.ts +1 -1
  1088. package/src/auth/types.ts +1 -1
  1089. package/src/auth/utils/__tests/cryptononce.test.ts +52 -25
  1090. package/src/auth/utils/__tests/getVerifiableCertificates.test.ts +64 -38
  1091. package/src/auth/utils/__tests/validateCertificates.test.ts +101 -89
  1092. package/src/auth/utils/createNonce.ts +11 -3
  1093. package/src/auth/utils/getVerifiableCertificates.ts +11 -6
  1094. package/src/auth/utils/index.ts +4 -4
  1095. package/src/auth/utils/validateCertificates.ts +53 -39
  1096. package/src/auth/utils/verifyNonce.ts +6 -2
  1097. package/src/compat/BSM.ts +17 -9
  1098. package/src/compat/ECIES.ts +239 -123
  1099. package/src/compat/HD.ts +82 -63
  1100. package/src/compat/Mnemonic.ts +98 -87
  1101. package/src/compat/Utxo.ts +12 -9
  1102. package/src/compat/__tests/BSM.test.ts +43 -16
  1103. package/src/compat/__tests/ECIES.test.ts +117 -52
  1104. package/src/compat/__tests/HD.test.ts +49 -38
  1105. package/src/compat/__tests/Mnemonic.test.ts +145 -145
  1106. package/src/compat/index.ts +5 -5
  1107. package/src/messages/EncryptedMessage.ts +11 -7
  1108. package/src/messages/SignedMessage.ts +19 -14
  1109. package/src/messages/__tests/EncryptedMessage.test.ts +55 -56
  1110. package/src/messages/__tests/SignedMessage.test.ts +58 -52
  1111. package/src/messages/index.ts +2 -2
  1112. package/src/overlay-tools/LookupResolver.ts +65 -33
  1113. package/src/overlay-tools/OverlayAdminTokenTemplate.ts +52 -27
  1114. package/src/overlay-tools/SHIPBroadcaster.ts +134 -59
  1115. package/src/overlay-tools/__tests/LookupResolver.test.ts +723 -323
  1116. package/src/overlay-tools/__tests/OverlayAdminTokenTemplate.test.ts +50 -22
  1117. package/src/overlay-tools/__tests/SHIPBroadcaster.test.ts +607 -290
  1118. package/src/overlay-tools/index.ts +5 -5
  1119. package/src/primitives/BasePoint.ts +1 -1
  1120. package/src/primitives/BigNumber.ts +94 -87
  1121. package/src/primitives/Curve.ts +49 -30
  1122. package/src/primitives/DRBG.ts +10 -12
  1123. package/src/primitives/ECDSA.ts +59 -33
  1124. package/src/primitives/Hash.ts +298 -179
  1125. package/src/primitives/JacobianPoint.ts +55 -21
  1126. package/src/primitives/K256.ts +2 -2
  1127. package/src/primitives/Mersenne.ts +1 -1
  1128. package/src/primitives/MontgomoryMethod.ts +2 -2
  1129. package/src/primitives/Point.ts +193 -113
  1130. package/src/primitives/Polynomial.ts +12 -7
  1131. package/src/primitives/PrivateKey.ts +44 -20
  1132. package/src/primitives/PublicKey.ts +21 -11
  1133. package/src/primitives/Random.ts +7 -5
  1134. package/src/primitives/ReductionContext.ts +4 -4
  1135. package/src/primitives/Schnorr.ts +45 -23
  1136. package/src/primitives/Signature.ts +27 -19
  1137. package/src/primitives/SymmetricKey.ts +17 -17
  1138. package/src/primitives/TransactionSignature.ts +29 -18
  1139. package/src/primitives/__tests/AESGCM.test.ts +635 -329
  1140. package/src/primitives/__tests/BigNumber.arithmatic.test.ts +721 -502
  1141. package/src/primitives/__tests/BigNumber.binary.test.ts +271 -190
  1142. package/src/primitives/__tests/BigNumber.constructor.test.ts +60 -24
  1143. package/src/primitives/__tests/BigNumber.dhGroup.test.ts +19 -15
  1144. package/src/primitives/__tests/BigNumber.serializers.test.ts +183 -157
  1145. package/src/primitives/__tests/BigNumber.utils.test.ts +394 -304
  1146. package/src/primitives/__tests/Curve.unit.test.ts +158 -143
  1147. package/src/primitives/__tests/DRBG.test.ts +13 -13
  1148. package/src/primitives/__tests/ECDH.test.ts +15 -8
  1149. package/src/primitives/__tests/ECDSA.test.ts +63 -57
  1150. package/src/primitives/__tests/HMAC.test.ts +55 -49
  1151. package/src/primitives/__tests/Hash.test.ts +96 -85
  1152. package/src/primitives/__tests/PrivateKey.split.test.ts +29 -9
  1153. package/src/primitives/__tests/PrivateKey.test.ts +53 -50
  1154. package/src/primitives/__tests/PublicKey.test.ts +15 -6
  1155. package/src/primitives/__tests/Random.test.ts +10 -10
  1156. package/src/primitives/__tests/Reader.test.ts +240 -219
  1157. package/src/primitives/__tests/ReductionContext.test.ts +271 -234
  1158. package/src/primitives/__tests/Schnorr.test.ts +252 -242
  1159. package/src/primitives/__tests/SymmetricKey.test.ts +53 -50
  1160. package/src/primitives/__tests/Writer.test.ts +23 -13
  1161. package/src/primitives/__tests/bug-31.test.ts +25 -23
  1162. package/src/primitives/__tests/utils.test.ts +70 -19
  1163. package/src/primitives/index.ts +14 -14
  1164. package/src/primitives/utils.ts +88 -63
  1165. package/src/script/LockingScript.ts +1 -1
  1166. package/src/script/Script.ts +14 -10
  1167. package/src/script/ScriptTemplate.ts +5 -7
  1168. package/src/script/Spend.ts +314 -118
  1169. package/src/script/UnlockingScript.ts +1 -1
  1170. package/src/script/__tests/Script.test.ts +68 -54
  1171. package/src/script/__tests/Spend.test.ts +188 -68
  1172. package/src/script/__tests/SpendComplex.test.ts +36 -26
  1173. package/src/script/__tests/script.valid.vectors.ts +1064 -3100
  1174. package/src/script/index.ts +7 -7
  1175. package/src/script/templates/P2PKH.ts +63 -52
  1176. package/src/script/templates/PushDrop.ts +117 -89
  1177. package/src/script/templates/RPuzzle.ts +72 -54
  1178. package/src/script/templates/__tests/PushDrop.test.ts +146 -40
  1179. package/src/script/templates/index.ts +3 -3
  1180. package/src/totp/__tests/totp.test.ts +39 -39
  1181. package/src/totp/index.ts +1 -1
  1182. package/src/totp/totp.ts +2 -2
  1183. package/src/transaction/Beef.ts +211 -141
  1184. package/src/transaction/BeefParty.ts +35 -27
  1185. package/src/transaction/BeefTx.ts +13 -9
  1186. package/src/transaction/Broadcaster.ts +11 -7
  1187. package/src/transaction/ChainTracker.ts +2 -2
  1188. package/src/transaction/FeeModel.ts +2 -2
  1189. package/src/transaction/MerklePath.ts +81 -37
  1190. package/src/transaction/Transaction.ts +185 -208
  1191. package/src/transaction/TransactionInput.ts +2 -2
  1192. package/src/transaction/TransactionOutput.ts +2 -2
  1193. package/src/transaction/__tests/Beef.test.ts +359 -297
  1194. package/src/transaction/__tests/MerklePath.test.ts +163 -131
  1195. package/src/transaction/__tests/Transaction.benchmarks.test.ts +235 -202
  1196. package/src/transaction/__tests/Transaction.test.ts +746 -459
  1197. package/src/transaction/broadcasters/ARC.ts +120 -94
  1198. package/src/transaction/broadcasters/DefaultBroadcaster.ts +11 -5
  1199. package/src/transaction/broadcasters/WhatsOnChainBroadcaster.ts +46 -33
  1200. package/src/transaction/broadcasters/__tests/ARC.test.ts +77 -45
  1201. package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +25 -17
  1202. package/src/transaction/broadcasters/index.ts +4 -4
  1203. package/src/transaction/chaintrackers/DefaultChainTracker.ts +4 -4
  1204. package/src/transaction/chaintrackers/WhatsOnChain.ts +53 -38
  1205. package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +138 -102
  1206. package/src/transaction/chaintrackers/index.ts +3 -3
  1207. package/src/transaction/fee-models/SatoshisPerKilobyte.ts +37 -32
  1208. package/src/transaction/fee-models/index.ts +1 -1
  1209. package/src/transaction/http/DefaultHttpClient.ts +17 -17
  1210. package/src/transaction/http/FetchHttpClient.ts +18 -9
  1211. package/src/transaction/http/HttpClient.ts +30 -25
  1212. package/src/transaction/http/NodejsHttpClient.ts +42 -28
  1213. package/src/transaction/http/index.ts +10 -6
  1214. package/src/transaction/index.ts +14 -10
  1215. package/src/wallet/CachedKeyDeriver.ts +118 -72
  1216. package/src/wallet/KeyDeriver.ts +186 -105
  1217. package/src/wallet/ProtoWallet.ts +73 -28
  1218. package/src/wallet/Wallet.interfaces.ts +158 -149
  1219. package/src/wallet/WalletClient.ts +316 -58
  1220. package/src/wallet/__tests/CachedKeyDeriver.test.ts +83 -27
  1221. package/src/wallet/__tests/KeyDeriver.test.ts +219 -116
  1222. package/src/wallet/__tests/ProtoWallet.test.ts +420 -339
  1223. package/src/wallet/index.ts +8 -8
  1224. package/src/wallet/substrates/HTTPWalletJSON.ts +201 -32
  1225. package/src/wallet/substrates/HTTPWalletWire.ts +30 -26
  1226. package/src/wallet/substrates/WalletWire.ts +1 -1
  1227. package/src/wallet/substrates/WalletWireCalls.ts +3 -3
  1228. package/src/wallet/substrates/WalletWireProcessor.ts +1651 -1515
  1229. package/src/wallet/substrates/WalletWireTransceiver.ts +1424 -854
  1230. package/src/wallet/substrates/XDM.ts +427 -37
  1231. package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +484 -223
  1232. package/src/wallet/substrates/__tests/XDM.test.ts +191 -195
  1233. package/src/wallet/substrates/index.ts +7 -7
  1234. package/src/wallet/substrates/window.CWI.ts +524 -65
@@ -1,3214 +1,1178 @@
1
1
  export default [
2
+ ["Format is: [scriptSig, scriptPubKey, flags, ... comments]"],
2
3
  [
3
- 'Format is: [scriptSig, scriptPubKey, flags, ... comments]'
4
- ],
5
- [
6
- 'It is evaluated as if there was a crediting coinbase transaction with two 0'
7
- ],
8
- [
9
- 'pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey,'
10
- ],
11
- [
12
- 'followed by a spending transaction which spends this output as only input (and'
13
- ],
14
- [
15
- 'correct prevout hash), using the given scriptSig. All nLockTimes are 0, all'
16
- ],
17
- [
18
- 'nSequences are max.'
19
- ],
20
- [
21
- '',
22
- '740087',
23
- 'P2SH,STRICTENC',
24
- 'Test the test: we should have an empty stack after scriptSig evaluation'
25
- ],
26
- [
27
- '',
28
- '740087',
29
- 'P2SH,STRICTENC',
30
- 'and multiple spaces should not change that.'
31
- ],
32
- [
33
- '',
34
- '740087',
35
- 'P2SH,STRICTENC'
36
- ],
37
- [
38
- '',
39
- '740087',
40
- 'P2SH,STRICTENC'
41
- ],
42
- [
43
- '5152',
44
- '52885187',
45
- 'P2SH,STRICTENC',
46
- 'Similarly whitespace around and between symbols'
47
- ],
48
- [
49
- '5152',
50
- '52885187',
51
- 'P2SH,STRICTENC'
52
- ],
53
- [
54
- '5152',
55
- '52885187',
56
- 'P2SH,STRICTENC'
57
- ],
58
- [
59
- '5152',
60
- '52885187',
61
- 'P2SH,STRICTENC'
62
- ],
63
- [
64
- '5152',
65
- '52885187',
66
- 'P2SH,STRICTENC'
67
- ],
68
- [
69
- '51',
70
- '',
71
- 'P2SH,STRICTENC'
72
- ],
73
- [
74
- '020100',
75
- '',
76
- 'P2SH,STRICTENC',
77
- 'all bytes are significant, not only the last one'
78
- ],
79
- [
80
- '09000000000000000010',
81
- '',
82
- 'P2SH,STRICTENC',
83
- 'equals zero when cast to Int64'
84
- ],
85
- [
86
- '010b',
87
- '5b87',
88
- 'P2SH,STRICTENC',
89
- 'push 1 byte'
90
- ],
91
- [
92
- '02417a',
93
- '417a87',
94
- 'P2SH,STRICTENC'
95
- ],
96
- [
97
- '4b417a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a',
98
- '417a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a87',
99
- 'P2SH,STRICTENC',
100
- 'push 75 bytes'
101
- ],
102
- [
103
- '4c0107',
104
- '5787',
105
- 'P2SH,STRICTENC',
106
- '0x4c is OP_PUSHDATA1'
107
- ],
108
- [
109
- '4d010008',
110
- '5887',
111
- 'P2SH,STRICTENC',
112
- '0x4d is OP_PUSHDATA2'
113
- ],
114
- [
115
- '4e0100000009',
116
- '5987',
117
- 'P2SH,STRICTENC',
118
- '0x4e is OP_PUSHDATA4'
119
- ],
120
- [
121
- '4c00',
122
- '0087',
123
- 'P2SH,STRICTENC'
124
- ],
125
- [
126
- '4d0000',
127
- '0087',
128
- 'P2SH,STRICTENC'
129
- ],
130
- [
131
- '4e00000000',
132
- '0087',
133
- 'P2SH,STRICTENC'
134
- ],
135
- [
136
- '4f02e80393',
137
- '02e70387',
138
- 'P2SH,STRICTENC'
139
- ],
140
- [
141
- '00',
142
- '63506851',
143
- 'P2SH,STRICTENC',
144
- '0x50 is reserved (ok if not executed)'
145
- ],
146
- [
147
- '51',
148
- '5f936087',
149
- 'P2SH,STRICTENC',
150
- '0x51 through 0x60 push 1 through 16 onto stack'
151
- ],
152
- [
153
- '51',
154
- '61',
155
- 'P2SH,STRICTENC'
156
- ],
157
- [
158
- '00',
159
- '6362675168',
160
- 'P2SH,STRICTENC',
161
- 'VER non-functional (ok if not executed)'
162
- ],
163
- [
164
- '00',
165
- '6350898a675168',
166
- 'P2SH,STRICTENC',
167
- 'RESERVED ok in un-executed IF'
168
- ],
169
- [
170
- '51',
171
- '766368',
172
- 'P2SH,STRICTENC'
173
- ],
174
- [
175
- '51',
176
- '635168',
177
- 'P2SH,STRICTENC'
178
- ],
179
- [
180
- '51',
181
- '76636768',
182
- 'P2SH,STRICTENC'
183
- ],
184
- [
185
- '51',
186
- '63516768',
187
- 'P2SH,STRICTENC'
188
- ],
189
- [
190
- '00',
191
- '63675168',
192
- 'P2SH,STRICTENC'
193
- ],
194
- [
195
- '5151',
196
- '63635167006868',
197
- 'P2SH,STRICTENC'
198
- ],
199
- [
200
- '5100',
201
- '63635167006868',
202
- 'P2SH,STRICTENC'
203
- ],
204
- [
205
- '5151',
206
- '63635167006867630067516868',
207
- 'P2SH,STRICTENC'
208
- ],
209
- [
210
- '0000',
211
- '63635167006867630067516868',
212
- 'P2SH,STRICTENC'
213
- ],
214
- [
215
- '5100',
216
- '64635167006868',
217
- 'P2SH,STRICTENC'
218
- ],
219
- [
220
- '5151',
221
- '64635167006868',
222
- 'P2SH,STRICTENC'
223
- ],
224
- [
225
- '5100',
226
- '64635167006867630067516868',
227
- 'P2SH,STRICTENC'
228
- ],
229
- [
230
- '0051',
231
- '64635167006867630067516868',
232
- 'P2SH,STRICTENC'
233
- ],
234
- [
235
- '00',
236
- '63006751670068',
237
- 'P2SH,STRICTENC',
238
- "Multiple ELSE's are valid and executed inverts on each ELSE encountered"
239
- ],
240
- [
241
- '51',
242
- '635167006768',
243
- 'P2SH,STRICTENC'
244
- ],
245
- [
246
- '51',
247
- '636700675168',
248
- 'P2SH,STRICTENC'
249
- ],
250
- [
251
- '51',
252
- '63516700675168935287',
253
- 'P2SH,STRICTENC'
254
- ],
255
- [
256
- '51',
257
- '63a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a7681468ca4fec736264c13b859bac43d5173df687168287',
258
- 'P2SH,STRICTENC'
259
- ],
260
- [
261
- '51',
262
- '64006751670068',
263
- 'P2SH,STRICTENC',
264
- "Multiple ELSE's are valid and execution inverts on each ELSE encountered"
265
- ],
266
- [
267
- '00',
268
- '645167006768',
269
- 'P2SH,STRICTENC'
270
- ],
271
- [
272
- '00',
273
- '646700675168',
274
- 'P2SH,STRICTENC'
275
- ],
276
- [
277
- '00',
278
- '64516700675168935287',
279
- 'P2SH,STRICTENC'
280
- ],
281
- [
282
- '00',
283
- '64a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a7681468ca4fec736264c13b859bac43d5173df687168287',
284
- 'P2SH,STRICTENC'
285
- ],
286
- [
287
- '00',
288
- '6351636a676a676a6867516351676a675168676a68935287',
289
- 'P2SH,STRICTENC',
290
- 'Nested ELSE ELSE'
291
- ],
292
- [
293
- '51',
294
- '6400646a676a676a6867006451676a675168676a68935287',
295
- 'P2SH,STRICTENC'
296
- ],
297
- [
298
- '00',
299
- '636a6851',
300
- 'P2SH,STRICTENC',
301
- 'RETURN only works if executed'
302
- ],
303
- [
304
- '5151',
305
- '69',
306
- 'P2SH,STRICTENC'
307
- ],
308
- [
309
- '51050100000000',
310
- '69',
311
- 'P2SH,STRICTENC',
312
- 'values >4 bytes can be cast to boolean'
313
- ],
314
- [
315
- '510180',
316
- '630068',
317
- 'P2SH,STRICTENC',
318
- 'negative 0 is false'
319
- ],
320
- [
321
- '5a005b6b756c',
322
- '93011587',
323
- 'P2SH,STRICTENC'
324
- ],
325
- [
326
- '676176696e5f7761735f686572656b5b6c',
327
- '676176696e5f7761735f68657265885b87',
328
- 'P2SH,STRICTENC'
329
- ],
330
- [
331
- '0073',
332
- '7451880087',
333
- 'P2SH,STRICTENC'
334
- ],
335
- [
336
- '5173',
337
- '74528851885187',
338
- 'P2SH,STRICTENC'
339
- ],
340
- [
341
- '05010000000073',
342
- '74528805010000000087',
343
- 'P2SH,STRICTENC',
344
- 'IFDUP dups non ints'
345
- ],
346
- [
347
- '0075',
348
- '740087',
349
- 'P2SH,STRICTENC'
350
- ],
351
- [
352
- '00',
353
- '76519351880087',
354
- 'P2SH,STRICTENC'
355
- ],
356
- [
357
- '0051',
358
- '77',
359
- 'P2SH,STRICTENC'
360
- ],
361
- [
362
- '5100',
363
- '78745388',
364
- 'P2SH,STRICTENC'
365
- ],
366
- [
367
- '011601150114',
368
- '0079011488745387',
369
- 'P2SH,STRICTENC'
370
- ],
371
- [
372
- '011601150114',
373
- '5179011588745387',
374
- 'P2SH,STRICTENC'
375
- ],
376
- [
377
- '011601150114',
378
- '5279011688745387',
379
- 'P2SH,STRICTENC'
380
- ],
381
- [
382
- '011601150114',
383
- '007a011488745287',
384
- 'P2SH,STRICTENC'
385
- ],
386
- [
387
- '011601150114',
388
- '517a011588745287',
389
- 'P2SH,STRICTENC'
390
- ],
391
- [
392
- '011601150114',
393
- '527a011688745287',
394
- 'P2SH,STRICTENC'
395
- ],
396
- [
397
- '011601150114',
398
- '7b011687',
399
- 'P2SH,STRICTENC'
400
- ],
401
- [
402
- '011601150114',
403
- '7b75011487',
404
- 'P2SH,STRICTENC'
405
- ],
406
- [
407
- '011601150114',
408
- '7b7575011587',
409
- 'P2SH,STRICTENC'
410
- ],
411
- [
412
- '011601150114',
413
- '7b7b011587',
414
- 'P2SH,STRICTENC'
415
- ],
416
- [
417
- '011601150114',
418
- '7b7b7b011487',
419
- 'P2SH,STRICTENC'
420
- ],
421
- [
422
- '011901180117011601150114',
423
- '71011887',
424
- 'P2SH,STRICTENC'
425
- ],
426
- [
427
- '011901180117011601150114',
428
- '7175011987',
429
- 'P2SH,STRICTENC'
430
- ],
431
- [
432
- '011901180117011601150114',
433
- '716d011487',
434
- 'P2SH,STRICTENC'
435
- ],
436
- [
437
- '011901180117011601150114',
438
- '716d75011587',
439
- 'P2SH,STRICTENC'
440
- ],
441
- [
442
- '011901180117011601150114',
443
- '716d6d011687',
444
- 'P2SH,STRICTENC'
445
- ],
446
- [
447
- '011901180117011601150114',
448
- '716d6d75011787',
449
- 'P2SH,STRICTENC'
450
- ],
451
- [
452
- '011901180117011601150114',
453
- '7171011687',
454
- 'P2SH,STRICTENC'
455
- ],
456
- [
457
- '011901180117011601150114',
458
- '717171011487',
459
- 'P2SH,STRICTENC'
460
- ],
461
- [
462
- '5100',
463
- '7c51880087',
464
- 'P2SH,STRICTENC'
465
- ],
466
- [
467
- '0051',
468
- '7d7453887c6d',
469
- 'P2SH,STRICTENC'
470
- ],
471
- [
472
- '5d5e',
473
- '6e7b8887',
474
- 'P2SH,STRICTENC'
475
- ],
476
- [
477
- '4f005152',
478
- '6f745788939353886d0088',
479
- 'P2SH,STRICTENC'
480
- ],
481
- [
482
- '51525355',
483
- '709393588893935687',
484
- 'P2SH,STRICTENC'
485
- ],
486
- [
487
- '51535557',
488
- '72935488935c87',
489
- 'P2SH,STRICTENC'
490
- ],
491
- [
492
- '00',
493
- '820087',
494
- 'P2SH,STRICTENC'
495
- ],
496
- [
497
- '51',
498
- '825187',
499
- 'P2SH,STRICTENC'
500
- ],
501
- [
502
- '017f',
503
- '825187',
504
- 'P2SH,STRICTENC'
505
- ],
506
- [
507
- '028000',
508
- '825287',
509
- 'P2SH,STRICTENC'
510
- ],
511
- [
512
- '02ff7f',
513
- '825287',
514
- 'P2SH,STRICTENC'
515
- ],
516
- [
517
- '03008000',
518
- '825387',
519
- 'P2SH,STRICTENC'
520
- ],
521
- [
522
- '03ffff7f',
523
- '825387',
524
- 'P2SH,STRICTENC'
525
- ],
526
- [
527
- '0400008000',
528
- '825487',
529
- 'P2SH,STRICTENC'
530
- ],
531
- [
532
- '04ffffff7f',
533
- '825487',
534
- 'P2SH,STRICTENC'
535
- ],
536
- [
537
- '050000008000',
538
- '825587',
539
- 'P2SH,STRICTENC'
540
- ],
541
- [
542
- '05ffffffff7f',
543
- '825587',
544
- 'P2SH,STRICTENC'
545
- ],
546
- [
547
- '06000000008000',
548
- '825687',
549
- 'P2SH,STRICTENC'
550
- ],
551
- [
552
- '08ffffffffffffff7f',
553
- '825887',
554
- 'P2SH,STRICTENC'
555
- ],
556
- [
557
- '4f',
558
- '825187',
559
- 'P2SH,STRICTENC'
560
- ],
561
- [
562
- '01ff',
563
- '825187',
564
- 'P2SH,STRICTENC'
565
- ],
566
- [
567
- '028080',
568
- '825287',
569
- 'P2SH,STRICTENC'
570
- ],
571
- [
572
- '02ffff',
573
- '825287',
574
- 'P2SH,STRICTENC'
575
- ],
576
- [
577
- '03008080',
578
- '825387',
579
- 'P2SH,STRICTENC'
580
- ],
581
- [
582
- '03ffffff',
583
- '825387',
584
- 'P2SH,STRICTENC'
585
- ],
586
- [
587
- '0400008080',
588
- '825487',
589
- 'P2SH,STRICTENC'
590
- ],
591
- [
592
- '04ffffffff',
593
- '825487',
594
- 'P2SH,STRICTENC'
595
- ],
596
- [
597
- '050000008080',
598
- '825587',
599
- 'P2SH,STRICTENC'
600
- ],
601
- [
602
- '05ffffffffff',
603
- '825587',
604
- 'P2SH,STRICTENC'
605
- ],
606
- [
607
- '06000000008080',
608
- '825687',
609
- 'P2SH,STRICTENC'
610
- ],
611
- [
612
- '08ffffffffffffffff',
613
- '825887',
614
- 'P2SH,STRICTENC'
615
- ],
616
- [
617
- '6162636465666768696a6b6c6d6e6f707172737475767778797a',
618
- '82011a87',
619
- 'P2SH,STRICTENC'
620
- ],
621
- [
622
- '012a',
623
- '825188012a87',
624
- 'P2SH,STRICTENC',
625
- 'SIZE does not consume argument'
626
- ],
627
- [
628
- '52018293',
629
- '0087',
630
- 'P2SH,STRICTENC'
631
- ],
632
- [
633
- '04ffffff7f04ffffffff93',
634
- '0087',
635
- 'P2SH,STRICTENC'
636
- ],
637
- [
638
- '4f4f93',
639
- '018287',
640
- 'P2SH,STRICTENC'
641
- ],
642
- [
643
- '0000',
644
- '87',
645
- 'P2SH,STRICTENC'
646
- ],
647
- [
648
- '515193',
649
- '5287',
650
- 'P2SH,STRICTENC'
651
- ],
652
- [
653
- '518b',
654
- '5287',
655
- 'P2SH,STRICTENC'
656
- ],
657
- [
658
- '016f8c',
659
- '016e87',
660
- 'P2SH,STRICTENC'
661
- ],
662
- [
663
- '016f51935c94',
664
- '016487',
665
- 'P2SH,STRICTENC'
666
- ],
667
- [
668
- '0090',
669
- '0087',
670
- 'P2SH,STRICTENC'
671
- ],
672
- [
673
- '6090',
674
- '6087',
675
- 'P2SH,STRICTENC'
676
- ],
677
- [
678
- '019090',
679
- '01908f87',
680
- 'P2SH,STRICTENC'
681
- ],
682
- [
683
- '0091',
684
- '61',
685
- 'P2SH,STRICTENC'
686
- ],
687
- [
688
- '5191',
689
- '0087',
690
- 'P2SH,STRICTENC'
691
- ],
692
- [
693
- '5b91',
694
- '0087',
695
- 'P2SH,STRICTENC'
696
- ],
697
- [
698
- '0092',
699
- '0087',
700
- 'P2SH,STRICTENC'
701
- ],
702
- [
703
- '5192',
704
- '5187',
705
- 'P2SH,STRICTENC'
706
- ],
707
- [
708
- '016f92',
709
- '5187',
710
- 'P2SH,STRICTENC'
711
- ],
712
- [
713
- '01ef92',
714
- '5187',
715
- 'P2SH,STRICTENC'
716
- ],
717
- [
718
- '51519a',
719
- '61',
720
- 'P2SH,STRICTENC'
721
- ],
722
- [
723
- '51009a',
724
- '91',
725
- 'P2SH,STRICTENC'
726
- ],
727
- [
728
- '00519a',
729
- '91',
730
- 'P2SH,STRICTENC'
731
- ],
732
- [
733
- '00009a',
734
- '91',
735
- 'P2SH,STRICTENC'
736
- ],
737
- [
738
- '6001119a',
739
- '61',
740
- 'P2SH,STRICTENC'
741
- ],
742
- [
743
- '51519b',
744
- '61',
745
- 'P2SH,STRICTENC'
746
- ],
747
- [
748
- '51009b',
749
- '61',
750
- 'P2SH,STRICTENC'
751
- ],
752
- [
753
- '00519b',
754
- '61',
755
- 'P2SH,STRICTENC'
756
- ],
757
- [
758
- '00009b',
759
- '91',
760
- 'P2SH,STRICTENC'
761
- ],
762
- [
763
- '6001119b',
764
- '61',
765
- 'P2SH,STRICTENC'
766
- ],
767
- [
768
- '5b5a5193',
769
- '9c',
770
- 'P2SH,STRICTENC'
771
- ],
772
- [
773
- '5b5a5193',
774
- '9d51',
775
- 'P2SH,STRICTENC'
776
- ],
777
- [
778
- '5b5a5193',
779
- '9e91',
780
- 'P2SH,STRICTENC'
781
- ],
782
- [
783
- '016f5a5193',
784
- '9e',
785
- 'P2SH,STRICTENC'
786
- ],
787
- [
788
- '5b5a',
789
- '9f91',
790
- 'P2SH,STRICTENC'
791
- ],
792
- [
793
- '5454',
794
- '9f91',
795
- 'P2SH,STRICTENC'
796
- ],
797
- [
798
- '5a5b',
799
- '9f',
800
- 'P2SH,STRICTENC'
801
- ],
802
- [
803
- '018b5b',
804
- '9f',
805
- 'P2SH,STRICTENC'
806
- ],
807
- [
808
- '018b018a',
809
- '9f',
810
- 'P2SH,STRICTENC'
811
- ],
812
- [
813
- '5b5a',
814
- 'a0',
815
- 'P2SH,STRICTENC'
816
- ],
817
- [
818
- '5454',
819
- 'a091',
820
- 'P2SH,STRICTENC'
821
- ],
822
- [
823
- '5a5b',
824
- 'a091',
825
- 'P2SH,STRICTENC'
826
- ],
827
- [
828
- '018b5b',
829
- 'a091',
830
- 'P2SH,STRICTENC'
831
- ],
832
- [
833
- '018b018a',
834
- 'a091',
835
- 'P2SH,STRICTENC'
836
- ],
837
- [
838
- '5b5a',
839
- 'a191',
840
- 'P2SH,STRICTENC'
841
- ],
842
- [
843
- '5454',
844
- 'a1',
845
- 'P2SH,STRICTENC'
846
- ],
847
- [
848
- '5a5b',
849
- 'a1',
850
- 'P2SH,STRICTENC'
851
- ],
852
- [
853
- '018b5b',
854
- 'a1',
855
- 'P2SH,STRICTENC'
856
- ],
857
- [
858
- '018b018a',
859
- 'a1',
860
- 'P2SH,STRICTENC'
861
- ],
862
- [
863
- '5b5a',
864
- 'a2',
865
- 'P2SH,STRICTENC'
866
- ],
867
- [
868
- '5454',
869
- 'a2',
870
- 'P2SH,STRICTENC'
871
- ],
872
- [
873
- '5a5b',
874
- 'a291',
875
- 'P2SH,STRICTENC'
876
- ],
877
- [
878
- '018b5b',
879
- 'a291',
880
- 'P2SH,STRICTENC'
881
- ],
882
- [
883
- '018b018a',
884
- 'a291',
885
- 'P2SH,STRICTENC'
886
- ],
887
- [
888
- '5100a3',
889
- '009c',
890
- 'P2SH,STRICTENC'
891
- ],
892
- [
893
- '0051a3',
894
- '009c',
895
- 'P2SH,STRICTENC'
896
- ],
897
- [
898
- '4f00a3',
899
- '4f9c',
900
- 'P2SH,STRICTENC'
901
- ],
902
- [
903
- '0004ffffffffa3',
904
- '04ffffffff9c',
905
- 'P2SH,STRICTENC'
906
- ],
907
- [
908
- '04ffffff7f00a4',
909
- '04ffffff7f9c',
910
- 'P2SH,STRICTENC'
911
- ],
912
- [
913
- '000164a4',
914
- '01649c',
915
- 'P2SH,STRICTENC'
916
- ],
917
- [
918
- '01e400a4',
919
- '009c',
920
- 'P2SH,STRICTENC'
921
- ],
922
- [
923
- '0004ffffffffa4',
924
- '009c',
925
- 'P2SH,STRICTENC'
926
- ],
927
- [
928
- '000051',
929
- 'a5',
930
- 'P2SH,STRICTENC'
931
- ],
932
- [
933
- '510051',
934
- 'a591',
935
- 'P2SH,STRICTENC'
936
- ],
937
- [
938
- '0004ffffffff04ffffff7f',
939
- 'a5',
940
- 'P2SH,STRICTENC'
941
- ],
942
- [
943
- '4f01e40164',
944
- 'a5',
945
- 'P2SH,STRICTENC'
946
- ],
947
- [
948
- '5b01e40164',
949
- 'a5',
950
- 'P2SH,STRICTENC'
951
- ],
952
- [
953
- '04ffffffff01e40164',
954
- 'a591',
955
- 'P2SH,STRICTENC'
956
- ],
957
- [
958
- '04ffffff7f01e40164',
959
- 'a591',
960
- 'P2SH,STRICTENC'
961
- ],
962
- [
963
- '04ffffff7f04ffffff7f94',
964
- '0087',
965
- 'P2SH,STRICTENC'
966
- ],
967
- [
968
- '04ffffff7f7693',
969
- '05feffffff0087',
970
- 'P2SH,STRICTENC',
971
- '>32 bit EQUAL is valid'
972
- ],
973
- [
974
- '04ffffff7f8f7693',
975
- '05feffffff8087',
976
- 'P2SH,STRICTENC'
977
- ],
978
- [
979
- '',
980
- 'a6149c1185a5c5e9fc54612808977ee8f548b2258d3187',
981
- 'P2SH,STRICTENC'
982
- ],
983
- [
984
- '61',
985
- 'a6140bdc9d2d256b3ee9daae347be6f4dc835a467ffe87',
986
- 'P2SH,STRICTENC'
987
- ],
988
- [
989
- '6162636465666768696a6b6c6d6e6f707172737475767778797a',
990
- 'a614f71c27109c692c1b56bbdceb5b9d2865b3708dbc87',
991
- 'P2SH,STRICTENC'
992
- ],
993
- [
994
- '',
995
- 'a714da39a3ee5e6b4b0d3255bfef95601890afd8070987',
996
- 'P2SH,STRICTENC'
997
- ],
998
- [
999
- '61',
1000
- 'a71486f7e437faa5a7fce15d1ddcb9eaeaea377667b887',
1001
- 'P2SH,STRICTENC'
1002
- ],
1003
- [
1004
- '6162636465666768696a6b6c6d6e6f707172737475767778797a',
1005
- 'a71432d10c7b8cf96570ca04ce37f2a19d84240d3a8987',
1006
- 'P2SH,STRICTENC'
1007
- ],
1008
- [
1009
- '',
1010
- 'a820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85587',
1011
- 'P2SH,STRICTENC'
1012
- ],
1013
- [
1014
- '61',
1015
- 'a820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb87',
1016
- 'P2SH,STRICTENC'
1017
- ],
1018
- [
1019
- '6162636465666768696a6b6c6d6e6f707172737475767778797a',
1020
- 'a82071c480df93d6ae2f1efad1447c66c9525e316218cf51fc8d9ed832f2daf18b7387',
1021
- 'P2SH,STRICTENC'
1022
- ],
1023
- [
1024
- '',
1025
- '76a97ca8a687',
1026
- 'P2SH,STRICTENC'
1027
- ],
1028
- [
1029
- '',
1030
- '76aa7ca8a887',
1031
- 'P2SH,STRICTENC'
1032
- ],
1033
- [
1034
- '',
1035
- '61a914b472a266d0bd89c13706a4132ccfb16f7c3b9fcb87',
1036
- 'P2SH,STRICTENC'
1037
- ],
1038
- [
1039
- '61',
1040
- 'a96114994355199e516ff76c4fa4aab39337b9d84cf12b87',
1041
- 'P2SH,STRICTENC'
1042
- ],
1043
- [
1044
- '6162636465666768696a6b6c6d6e6f707172737475767778797a',
1045
- 'a94c14c286a1af0947f58d1ad787385b1c2c4a976f9e7187',
1046
- 'P2SH,STRICTENC'
1047
- ],
1048
- [
1049
- '',
1050
- 'aa205df6e0e2761359d30a8275058e299fcc0381534545f55cf43e41983f5d4c945687',
1051
- 'P2SH,STRICTENC'
1052
- ],
1053
- [
1054
- '61',
1055
- 'aa20bf5d3affb73efd2ec6c36ad3112dd933efed63c4e1cbffcfa88e2759c144f2d887',
1056
- 'P2SH,STRICTENC'
1057
- ],
1058
- [
1059
- '6162636465666768696a6b6c6d6e6f707172737475767778797a',
1060
- 'aa4c20ca139bc10c2f660da42666f72e89a225936fc60f193c161124a672050c43467187',
1061
- 'P2SH,STRICTENC'
1062
- ],
1063
- [
1064
- '51',
1065
- 'b0b1b2b3b4b5b6b7b8b95187',
1066
- 'P2SH,STRICTENC'
1067
- ],
1068
- [
1069
- '4e060000005f746f5f3130b0b1b2b3b4b5b6b7b8b9',
1070
- '4e060000005f746f5f313087',
1071
- 'P2SH,STRICTENC'
1072
- ],
1073
- [
1074
- '51',
1075
- '61',
1076
- 'P2SH,STRICTENC,DISCOURAGE_UPGRADABLE_NOPS',
1077
- 'Discourage NOPx flag allows OP_NOP'
1078
- ],
1079
- [
1080
- '00',
1081
- '63b96851',
1082
- 'P2SH,STRICTENC,DISCOURAGE_UPGRADABLE_NOPS',
1083
- 'Discouraged NOPs are allowed if not executed'
1084
- ],
1085
- [
1086
- '00',
1087
- '63ba675168',
1088
- 'P2SH,STRICTENC',
1089
- 'opcodes above NOP10 invalid if executed'
1090
- ],
1091
- [
1092
- '00',
1093
- '63bb675168',
1094
- 'P2SH,STRICTENC'
1095
- ],
1096
- [
1097
- '00',
1098
- '63bc675168',
1099
- 'P2SH,STRICTENC'
1100
- ],
1101
- [
1102
- '00',
1103
- '63bd675168',
1104
- 'P2SH,STRICTENC'
1105
- ],
1106
- [
1107
- '00',
1108
- '63be675168',
1109
- 'P2SH,STRICTENC'
1110
- ],
1111
- [
1112
- '00',
1113
- '63bf675168',
1114
- 'P2SH,STRICTENC'
1115
- ],
1116
- [
1117
- '00',
1118
- '63c0675168',
1119
- 'P2SH,STRICTENC'
1120
- ],
1121
- [
1122
- '00',
1123
- '63c1675168',
1124
- 'P2SH,STRICTENC'
1125
- ],
1126
- [
1127
- '00',
1128
- '63c2675168',
1129
- 'P2SH,STRICTENC'
1130
- ],
1131
- [
1132
- '00',
1133
- '63c3675168',
1134
- 'P2SH,STRICTENC'
1135
- ],
1136
- [
1137
- '00',
1138
- '63c4675168',
1139
- 'P2SH,STRICTENC'
1140
- ],
1141
- [
1142
- '00',
1143
- '63c5675168',
1144
- 'P2SH,STRICTENC'
1145
- ],
1146
- [
1147
- '00',
1148
- '63c6675168',
1149
- 'P2SH,STRICTENC'
1150
- ],
1151
- [
1152
- '00',
1153
- '63c7675168',
1154
- 'P2SH,STRICTENC'
1155
- ],
1156
- [
1157
- '00',
1158
- '63c8675168',
1159
- 'P2SH,STRICTENC'
1160
- ],
1161
- [
1162
- '00',
1163
- '63c9675168',
1164
- 'P2SH,STRICTENC'
1165
- ],
1166
- [
1167
- '00',
1168
- '63ca675168',
1169
- 'P2SH,STRICTENC'
1170
- ],
1171
- [
1172
- '00',
1173
- '63cb675168',
1174
- 'P2SH,STRICTENC'
1175
- ],
1176
- [
1177
- '00',
1178
- '63cc675168',
1179
- 'P2SH,STRICTENC'
1180
- ],
1181
- [
1182
- '00',
1183
- '63cd675168',
1184
- 'P2SH,STRICTENC'
1185
- ],
1186
- [
1187
- '00',
1188
- '63ce675168',
1189
- 'P2SH,STRICTENC'
1190
- ],
1191
- [
1192
- '00',
1193
- '63cf675168',
1194
- 'P2SH,STRICTENC'
1195
- ],
1196
- [
1197
- '00',
1198
- '63d0675168',
1199
- 'P2SH,STRICTENC'
1200
- ],
1201
- [
1202
- '00',
1203
- '63d1675168',
1204
- 'P2SH,STRICTENC'
1205
- ],
1206
- [
1207
- '00',
1208
- '63d2675168',
1209
- 'P2SH,STRICTENC'
1210
- ],
1211
- [
1212
- '00',
1213
- '63d3675168',
1214
- 'P2SH,STRICTENC'
1215
- ],
1216
- [
1217
- '00',
1218
- '63d4675168',
1219
- 'P2SH,STRICTENC'
1220
- ],
1221
- [
1222
- '00',
1223
- '63d5675168',
1224
- 'P2SH,STRICTENC'
1225
- ],
1226
- [
1227
- '00',
1228
- '63d6675168',
1229
- 'P2SH,STRICTENC'
1230
- ],
1231
- [
1232
- '00',
1233
- '63d7675168',
1234
- 'P2SH,STRICTENC'
1235
- ],
1236
- [
1237
- '00',
1238
- '63d8675168',
1239
- 'P2SH,STRICTENC'
1240
- ],
1241
- [
1242
- '00',
1243
- '63d9675168',
1244
- 'P2SH,STRICTENC'
1245
- ],
1246
- [
1247
- '00',
1248
- '63da675168',
1249
- 'P2SH,STRICTENC'
1250
- ],
1251
- [
1252
- '00',
1253
- '63db675168',
1254
- 'P2SH,STRICTENC'
1255
- ],
1256
- [
1257
- '00',
1258
- '63dc675168',
1259
- 'P2SH,STRICTENC'
1260
- ],
1261
- [
1262
- '00',
1263
- '63dd675168',
1264
- 'P2SH,STRICTENC'
1265
- ],
1266
- [
1267
- '00',
1268
- '63de675168',
1269
- 'P2SH,STRICTENC'
1270
- ],
1271
- [
1272
- '00',
1273
- '63df675168',
1274
- 'P2SH,STRICTENC'
1275
- ],
1276
- [
1277
- '00',
1278
- '63e0675168',
1279
- 'P2SH,STRICTENC'
1280
- ],
1281
- [
1282
- '00',
1283
- '63e1675168',
1284
- 'P2SH,STRICTENC'
1285
- ],
1286
- [
1287
- '00',
1288
- '63e2675168',
1289
- 'P2SH,STRICTENC'
1290
- ],
1291
- [
1292
- '00',
1293
- '63e3675168',
1294
- 'P2SH,STRICTENC'
1295
- ],
1296
- [
1297
- '00',
1298
- '63e4675168',
1299
- 'P2SH,STRICTENC'
1300
- ],
1301
- [
1302
- '00',
1303
- '63e5675168',
1304
- 'P2SH,STRICTENC'
1305
- ],
1306
- [
1307
- '00',
1308
- '63e6675168',
1309
- 'P2SH,STRICTENC'
1310
- ],
1311
- [
1312
- '00',
1313
- '63e7675168',
1314
- 'P2SH,STRICTENC'
1315
- ],
1316
- [
1317
- '00',
1318
- '63e8675168',
1319
- 'P2SH,STRICTENC'
1320
- ],
1321
- [
1322
- '00',
1323
- '63e9675168',
1324
- 'P2SH,STRICTENC'
1325
- ],
1326
- [
1327
- '00',
1328
- '63ea675168',
1329
- 'P2SH,STRICTENC'
1330
- ],
1331
- [
1332
- '00',
1333
- '63eb675168',
1334
- 'P2SH,STRICTENC'
1335
- ],
1336
- [
1337
- '00',
1338
- '63ec675168',
1339
- 'P2SH,STRICTENC'
1340
- ],
1341
- [
1342
- '00',
1343
- '63ed675168',
1344
- 'P2SH,STRICTENC'
1345
- ],
1346
- [
1347
- '00',
1348
- '63ee675168',
1349
- 'P2SH,STRICTENC'
1350
- ],
1351
- [
1352
- '00',
1353
- '63ef675168',
1354
- 'P2SH,STRICTENC'
1355
- ],
1356
- [
1357
- '00',
1358
- '63f0675168',
1359
- 'P2SH,STRICTENC'
1360
- ],
1361
- [
1362
- '00',
1363
- '63f1675168',
1364
- 'P2SH,STRICTENC'
1365
- ],
1366
- [
1367
- '00',
1368
- '63f2675168',
1369
- 'P2SH,STRICTENC'
1370
- ],
1371
- [
1372
- '00',
1373
- '63f3675168',
1374
- 'P2SH,STRICTENC'
1375
- ],
1376
- [
1377
- '00',
1378
- '63f4675168',
1379
- 'P2SH,STRICTENC'
1380
- ],
1381
- [
1382
- '00',
1383
- '63f5675168',
1384
- 'P2SH,STRICTENC'
1385
- ],
1386
- [
1387
- '00',
1388
- '63f6675168',
1389
- 'P2SH,STRICTENC'
1390
- ],
1391
- [
1392
- '00',
1393
- '63f7675168',
1394
- 'P2SH,STRICTENC'
1395
- ],
1396
- [
1397
- '00',
1398
- '63f8675168',
1399
- 'P2SH,STRICTENC'
1400
- ],
1401
- [
1402
- '00',
1403
- '63f9675168',
1404
- 'P2SH,STRICTENC'
1405
- ],
1406
- [
1407
- '00',
1408
- '63fa675168',
1409
- 'P2SH,STRICTENC'
1410
- ],
1411
- [
1412
- '00',
1413
- '63fb675168',
1414
- 'P2SH,STRICTENC'
1415
- ],
1416
- [
1417
- '00',
1418
- '63fc675168',
1419
- 'P2SH,STRICTENC'
1420
- ],
1421
- [
1422
- '00',
1423
- '63fd675168',
1424
- 'P2SH,STRICTENC'
1425
- ],
1426
- [
1427
- '00',
1428
- '63fe675168',
1429
- 'P2SH,STRICTENC'
1430
- ],
1431
- [
1432
- '00',
1433
- '63ff675168',
1434
- 'P2SH,STRICTENC'
1435
- ],
1436
- [
1437
- '61',
1438
- '62626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262',
1439
- 'P2SH,STRICTENC',
1440
- '520 byte push'
1441
- ],
1442
- [
1443
- '51',
1444
- '616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161',
1445
- 'P2SH,STRICTENC',
1446
- '201 opcodes executed. 0x61 is NOP'
1447
- ],
1448
- [
1449
- '51525354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1450
- '51525354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1451
- 'P2SH,STRICTENC',
1452
- '1,000 stack size (0x6f is 3DUP)'
1453
- ],
1454
- [
1455
- '516b526b5354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1456
- '515253545556576f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1457
- 'P2SH,STRICTENC',
1458
- '1,000 stack size (altstack cleared between scriptSig/scriptPubKey)'
1459
- ],
1460
- [
1461
- '616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f',
1462
- '616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6e616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161',
1463
- 'P2SH,STRICTENC',
1464
- 'Max-size (10,000-byte), max-push(520 bytes), max-opcodes(201), max stack size(1,000 items). 0x6f is 3DUP, 0x61 is NOP'
1465
- ],
1466
- [
1467
- '00',
1468
- '6350505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050506851',
1469
- 'P2SH,STRICTENC',
1470
- ">201 opcodes, but RESERVED (0x50) doesn't count towards opcode limit."
1471
- ],
1472
- [
1473
- '61',
1474
- '51',
1475
- 'P2SH,STRICTENC'
1476
- ],
1477
- [
1478
- '51',
1479
- '010187',
1480
- 'P2SH,STRICTENC',
1481
- 'The following is useful for checking implementations of BN_bn2mpi'
1482
- ],
1483
- [
1484
- '017f',
1485
- '017f87',
1486
- 'P2SH,STRICTENC'
1487
- ],
1488
- [
1489
- '028000',
1490
- '02800087',
1491
- 'P2SH,STRICTENC',
1492
- 'Leave room for the sign bit'
1493
- ],
1494
- [
1495
- '02ff7f',
1496
- '02ff7f87',
1497
- 'P2SH,STRICTENC'
1498
- ],
1499
- [
1500
- '03008000',
1501
- '0300800087',
1502
- 'P2SH,STRICTENC'
1503
- ],
1504
- [
1505
- '03ffff7f',
1506
- '03ffff7f87',
1507
- 'P2SH,STRICTENC'
1508
- ],
1509
- [
1510
- '0400008000',
1511
- '040000800087',
1512
- 'P2SH,STRICTENC'
1513
- ],
1514
- [
1515
- '04ffffff7f',
1516
- '04ffffff7f87',
1517
- 'P2SH,STRICTENC'
1518
- ],
1519
- [
1520
- '050000008000',
1521
- '05000000800087',
1522
- 'P2SH,STRICTENC'
1523
- ],
1524
- [
1525
- '05ffffffff7f',
1526
- '05ffffffff7f87',
1527
- 'P2SH,STRICTENC'
1528
- ],
1529
- [
1530
- '06000000008000',
1531
- '06ffffffff7f87',
1532
- 'P2SH,STRICTENC'
1533
- ],
1534
- [
1535
- '08ffffffffffffff7f',
1536
- '08ffffffffffffff7f87',
1537
- 'P2SH,STRICTENC'
1538
- ],
1539
- [
1540
- '4f',
1541
- '018187',
1542
- 'P2SH,STRICTENC',
1543
- 'Numbers are little-endian with the MSB being a sign bit'
1544
- ],
1545
- [
1546
- '01ff',
1547
- '01ff87',
1548
- 'P2SH,STRICTENC'
1549
- ],
1550
- [
1551
- '028080',
1552
- '02808087',
1553
- 'P2SH,STRICTENC'
1554
- ],
1555
- [
1556
- '02ffff',
1557
- '02ffff87',
1558
- 'P2SH,STRICTENC'
1559
- ],
1560
- [
1561
- '03008080',
1562
- '0300808087',
1563
- 'P2SH,STRICTENC'
1564
- ],
1565
- [
1566
- '03ffffff',
1567
- '03ffffff87',
1568
- 'P2SH,STRICTENC'
1569
- ],
1570
- [
1571
- '0400008080',
1572
- '040000808087',
1573
- 'P2SH,STRICTENC'
1574
- ],
1575
- [
1576
- '04ffffffff',
1577
- '04ffffffff87',
1578
- 'P2SH,STRICTENC'
1579
- ],
1580
- [
1581
- '050000008080',
1582
- '05000000808087',
1583
- 'P2SH,STRICTENC'
1584
- ],
1585
- [
1586
- '05ffffffff80',
1587
- '05ffffffff8087',
1588
- 'P2SH,STRICTENC'
1589
- ],
1590
- [
1591
- '05ffffffffff',
1592
- '05ffffffffff87',
1593
- 'P2SH,STRICTENC'
1594
- ],
1595
- [
1596
- '06000000008080',
1597
- '0600000000808087',
1598
- 'P2SH,STRICTENC'
1599
- ],
1600
- [
1601
- '08ffffffffffffffff',
1602
- '08ffffffffffffffff87',
1603
- 'P2SH,STRICTENC'
1604
- ],
1605
- [
1606
- '04ffffff7f',
1607
- '8b05000000800087',
1608
- 'P2SH,STRICTENC',
1609
- 'We can do math on 4-byte integers, and compare 5-byte ones'
1610
- ],
1611
- [
1612
- '04ffffff7f',
1613
- '8b51',
1614
- 'P2SH,STRICTENC'
1615
- ],
1616
- [
1617
- '04ffffffff',
1618
- '8b51',
1619
- 'P2SH,STRICTENC'
1620
- ],
1621
- [
1622
- '51',
1623
- '0201008791',
1624
- 'P2SH,STRICTENC',
1625
- 'Not the same byte array...'
1626
- ],
1627
- [
1628
- '51',
1629
- '0201009c',
1630
- 'P2SH,STRICTENC',
1631
- '... but they are numerically equal'
1632
- ],
1633
- [
1634
- '5b',
1635
- '4c030b00009c',
1636
- 'P2SH,STRICTENC'
1637
- ],
1638
- [
1639
- '00',
1640
- '01808791',
1641
- 'P2SH,STRICTENC'
1642
- ],
1643
- [
1644
- '00',
1645
- '01809c',
1646
- 'P2SH,STRICTENC',
1647
- 'Zero numerically equals negative zero'
1648
- ],
1649
- [
1650
- '00',
1651
- '0200809c',
1652
- 'P2SH,STRICTENC'
1653
- ],
1654
- [
1655
- '03000080',
1656
- '04000000809c',
1657
- 'P2SH,STRICTENC'
1658
- ],
1659
- [
1660
- '03100080',
1661
- '04100000809c',
1662
- 'P2SH,STRICTENC'
1663
- ],
1664
- [
1665
- '03100000',
1666
- '04100000009c',
1667
- 'P2SH,STRICTENC'
1668
- ],
1669
- [
1670
- '61',
1671
- '6151',
1672
- 'P2SH,STRICTENC',
1673
- 'The following tests check the if(stack.size() < N) tests in each opcode'
1674
- ],
1675
- [
1676
- '51',
1677
- '635168',
1678
- 'P2SH,STRICTENC',
1679
- 'They are here to catch copy-and-paste errors'
1680
- ],
1681
- [
1682
- '00',
1683
- '645168',
1684
- 'P2SH,STRICTENC',
1685
- 'Most of them are duplicated elsewhere,'
1686
- ],
1687
- [
1688
- '51',
1689
- '6951',
1690
- 'P2SH,STRICTENC',
1691
- 'but, hey, more is always better, right?'
1692
- ],
1693
- [
1694
- '00',
1695
- '6b51',
1696
- 'P2SH,STRICTENC'
1697
- ],
1698
- [
1699
- '51',
1700
- '6b6c',
1701
- 'P2SH,STRICTENC'
1702
- ],
1703
- [
1704
- '0000',
1705
- '6d51',
1706
- 'P2SH,STRICTENC'
1707
- ],
1708
- [
1709
- '0051',
1710
- '6e',
1711
- 'P2SH,STRICTENC'
1712
- ],
1713
- [
1714
- '000051',
1715
- '6f',
1716
- 'P2SH,STRICTENC'
1717
- ],
1718
- [
1719
- '00510000',
1720
- '70',
1721
- 'P2SH,STRICTENC'
1722
- ],
1723
- [
1724
- '005100000000',
1725
- '71',
1726
- 'P2SH,STRICTENC'
1727
- ],
1728
- [
1729
- '00510000',
1730
- '72',
1731
- 'P2SH,STRICTENC'
1732
- ],
1733
- [
1734
- '51',
1735
- '73',
1736
- 'P2SH,STRICTENC'
1737
- ],
1738
- [
1739
- '61',
1740
- '7451',
1741
- 'P2SH,STRICTENC'
1742
- ],
1743
- [
1744
- '00',
1745
- '7551',
1746
- 'P2SH,STRICTENC'
1747
- ],
1748
- [
1749
- '51',
1750
- '76',
1751
- 'P2SH,STRICTENC'
1752
- ],
1753
- [
1754
- '0051',
1755
- '77',
1756
- 'P2SH,STRICTENC'
1757
- ],
1758
- [
1759
- '5100',
1760
- '78',
1761
- 'P2SH,STRICTENC'
1762
- ],
1763
- [
1764
- '5100000053',
1765
- '79',
1766
- 'P2SH,STRICTENC'
1767
- ],
1768
- [
1769
- '5100',
1770
- '79',
1771
- 'P2SH,STRICTENC'
1772
- ],
1773
- [
1774
- '5100000053',
1775
- '7a',
1776
- 'P2SH,STRICTENC'
1777
- ],
1778
- [
1779
- '5100',
1780
- '7a',
1781
- 'P2SH,STRICTENC'
1782
- ],
1783
- [
1784
- '510000',
1785
- '7b',
1786
- 'P2SH,STRICTENC'
1787
- ],
1788
- [
1789
- '5100',
1790
- '7c',
1791
- 'P2SH,STRICTENC'
1792
- ],
1793
- [
1794
- '0051',
1795
- '7d',
1796
- 'P2SH,STRICTENC'
1797
- ],
1798
- [
1799
- '51',
1800
- '82',
1801
- 'P2SH,STRICTENC'
1802
- ],
1803
- [
1804
- '0000',
1805
- '87',
1806
- 'P2SH,STRICTENC'
1807
- ],
1808
- [
1809
- '0000',
1810
- '8851',
1811
- 'P2SH,STRICTENC'
1812
- ],
1813
- [
1814
- '000051',
1815
- '8787',
1816
- 'P2SH,STRICTENC',
1817
- 'OP_0 and bools must have identical byte representations'
1818
- ],
1819
- [
1820
- '00',
1821
- '8b',
1822
- 'P2SH,STRICTENC'
1823
- ],
1824
- [
1825
- '52',
1826
- '8c',
1827
- 'P2SH,STRICTENC'
1828
- ],
1829
- [
1830
- '4f',
1831
- '8f',
1832
- 'P2SH,STRICTENC'
1833
- ],
1834
- [
1835
- '4f',
1836
- '90',
1837
- 'P2SH,STRICTENC'
1838
- ],
1839
- [
1840
- '00',
1841
- '91',
1842
- 'P2SH,STRICTENC'
1843
- ],
1844
- [
1845
- '4f',
1846
- '92',
1847
- 'P2SH,STRICTENC'
1848
- ],
1849
- [
1850
- '5100',
1851
- '93',
1852
- 'P2SH,STRICTENC'
1853
- ],
1854
- [
1855
- '5100',
1856
- '94',
1857
- 'P2SH,STRICTENC'
1858
- ],
1859
- [
1860
- '4f4f',
1861
- '9a',
1862
- 'P2SH,STRICTENC'
1863
- ],
1864
- [
1865
- '4f00',
1866
- '9b',
1867
- 'P2SH,STRICTENC'
1868
- ],
1869
- [
1870
- '0000',
1871
- '9c',
1872
- 'P2SH,STRICTENC'
1873
- ],
1874
- [
1875
- '0000',
1876
- '9d51',
1877
- 'P2SH,STRICTENC'
1878
- ],
1879
- [
1880
- '4f00',
1881
- '9e',
1882
- 'P2SH,STRICTENC'
1883
- ],
1884
- [
1885
- '4f00',
1886
- '9f',
1887
- 'P2SH,STRICTENC'
1888
- ],
1889
- [
1890
- '5100',
1891
- 'a0',
1892
- 'P2SH,STRICTENC'
1893
- ],
1894
- [
1895
- '0000',
1896
- 'a1',
1897
- 'P2SH,STRICTENC'
1898
- ],
1899
- [
1900
- '0000',
1901
- 'a2',
1902
- 'P2SH,STRICTENC'
1903
- ],
1904
- [
1905
- '4f00',
1906
- 'a3',
1907
- 'P2SH,STRICTENC'
1908
- ],
1909
- [
1910
- '5100',
1911
- 'a4',
1912
- 'P2SH,STRICTENC'
1913
- ],
1914
- [
1915
- '4f4f00',
1916
- 'a5',
1917
- 'P2SH,STRICTENC'
1918
- ],
1919
- [
1920
- '00',
1921
- 'a6',
1922
- 'P2SH,STRICTENC'
1923
- ],
1924
- [
1925
- '00',
1926
- 'a7',
1927
- 'P2SH,STRICTENC'
1928
- ],
1929
- [
1930
- '00',
1931
- 'a8',
1932
- 'P2SH,STRICTENC'
1933
- ],
1934
- [
1935
- '00',
1936
- 'a9',
1937
- 'P2SH,STRICTENC'
1938
- ],
1939
- [
1940
- '00',
1941
- 'aa',
1942
- 'P2SH,STRICTENC'
1943
- ],
1944
- [
1945
- '61',
1946
- 'ab51',
1947
- 'P2SH,STRICTENC'
1948
- ],
1949
- [
1950
- '61',
1951
- 'b051',
1952
- 'P2SH,STRICTENC'
1953
- ],
1954
- [
1955
- '61',
1956
- 'b151',
1957
- 'P2SH,STRICTENC'
1958
- ],
1959
- [
1960
- '61',
1961
- 'b251',
1962
- 'P2SH,STRICTENC'
1963
- ],
1964
- [
1965
- '61',
1966
- 'b351',
1967
- 'P2SH,STRICTENC'
1968
- ],
1969
- [
1970
- '61',
1971
- 'b451',
1972
- 'P2SH,STRICTENC'
1973
- ],
1974
- [
1975
- '61',
1976
- 'b551',
1977
- 'P2SH,STRICTENC'
1978
- ],
1979
- [
1980
- '61',
1981
- 'b651',
1982
- 'P2SH,STRICTENC'
1983
- ],
1984
- [
1985
- '61',
1986
- 'b751',
1987
- 'P2SH,STRICTENC'
1988
- ],
1989
- [
1990
- '61',
1991
- 'b851',
1992
- 'P2SH,STRICTENC'
1993
- ],
1994
- [
1995
- '61',
1996
- 'b951',
1997
- 'P2SH,STRICTENC'
1998
- ],
1999
- [
2000
- '',
2001
- '000000ae69740087',
2002
- 'P2SH,STRICTENC',
2003
- 'CHECKMULTISIG is allowed to have zero keys and/or sigs'
2004
- ],
2005
- [
2006
- '',
2007
- '000000af740087',
2008
- 'P2SH,STRICTENC'
2009
- ],
2010
- [
2011
- '',
2012
- '00000051ae69740087',
2013
- 'P2SH,STRICTENC',
2014
- 'Zero sigs means no sigs are checked'
2015
- ],
2016
- [
2017
- '',
2018
- '00000051af740087',
2019
- 'P2SH,STRICTENC'
2020
- ],
2021
- [
2022
- '',
2023
- '000000ae69740087',
2024
- 'P2SH,STRICTENC',
2025
- 'CHECKMULTISIG is allowed to have zero keys and/or sigs'
2026
- ],
2027
- [
2028
- '',
2029
- '000000af740087',
2030
- 'P2SH,STRICTENC'
2031
- ],
2032
- [
2033
- '',
2034
- '00000051ae69740087',
2035
- 'P2SH,STRICTENC',
2036
- 'Zero sigs means no sigs are checked'
2037
- ],
2038
- [
2039
- '',
2040
- '00000051af740087',
2041
- 'P2SH,STRICTENC'
2042
- ],
2043
- [
2044
- '',
2045
- '0000616252ae69740087',
2046
- 'P2SH,STRICTENC',
2047
- 'Test from up to 20 pubkeys, all not checked'
2048
- ],
2049
- [
2050
- '',
2051
- '000061626353ae69740087',
2052
- 'P2SH,STRICTENC'
2053
- ],
2054
- [
2055
- '',
2056
- '00006162636454ae69740087',
2057
- 'P2SH,STRICTENC'
2058
- ],
2059
- [
2060
- '',
2061
- '0000616263646555ae69740087',
2062
- 'P2SH,STRICTENC'
2063
- ],
2064
- [
2065
- '',
2066
- '000061626364656656ae69740087',
2067
- 'P2SH,STRICTENC'
2068
- ],
2069
- [
2070
- '',
2071
- '00006162636465666757ae69740087',
2072
- 'P2SH,STRICTENC'
2073
- ],
2074
- [
2075
- '',
2076
- '0000616263646566676858ae69740087',
2077
- 'P2SH,STRICTENC'
2078
- ],
2079
- [
2080
- '',
2081
- '000061626364656667686959ae69740087',
2082
- 'P2SH,STRICTENC'
2083
- ],
2084
- [
2085
- '',
2086
- '00006162636465666768696a5aae69740087',
2087
- 'P2SH,STRICTENC'
2088
- ],
2089
- [
2090
- '',
2091
- '00006162636465666768696a6b5bae69740087',
2092
- 'P2SH,STRICTENC'
2093
- ],
2094
- [
2095
- '',
2096
- '00006162636465666768696a6b6c5cae69740087',
2097
- 'P2SH,STRICTENC'
2098
- ],
2099
- [
2100
- '',
2101
- '00006162636465666768696a6b6c6d5dae69740087',
2102
- 'P2SH,STRICTENC'
2103
- ],
2104
- [
2105
- '',
2106
- '00006162636465666768696a6b6c6d6e5eae69740087',
2107
- 'P2SH,STRICTENC'
2108
- ],
2109
- [
2110
- '',
2111
- '00006162636465666768696a6b6c6d6e6f5fae69740087',
2112
- 'P2SH,STRICTENC'
2113
- ],
2114
- [
2115
- '',
2116
- '00006162636465666768696a6b6c6d6e6f7060ae69740087',
2117
- 'P2SH,STRICTENC'
2118
- ],
2119
- [
2120
- '',
2121
- '00006162636465666768696a6b6c6d6e6f70710111ae69740087',
2122
- 'P2SH,STRICTENC'
2123
- ],
2124
- [
2125
- '',
2126
- '00006162636465666768696a6b6c6d6e6f7071720112ae69740087',
2127
- 'P2SH,STRICTENC'
2128
- ],
2129
- [
2130
- '',
2131
- '00006162636465666768696a6b6c6d6e6f707172730113ae69740087',
2132
- 'P2SH,STRICTENC'
2133
- ],
2134
- [
2135
- '',
2136
- '00006162636465666768696a6b6c6d6e6f70717273740114ae69740087',
2137
- 'P2SH,STRICTENC'
2138
- ],
2139
- [
2140
- '',
2141
- '00006151af740087',
2142
- 'P2SH,STRICTENC'
2143
- ],
2144
- [
2145
- '',
2146
- '0000616252af740087',
2147
- 'P2SH,STRICTENC'
2148
- ],
2149
- [
2150
- '',
2151
- '000061626353af740087',
2152
- 'P2SH,STRICTENC'
2153
- ],
2154
- [
2155
- '',
2156
- '00006162636454af740087',
2157
- 'P2SH,STRICTENC'
2158
- ],
2159
- [
2160
- '',
2161
- '0000616263646555af740087',
2162
- 'P2SH,STRICTENC'
2163
- ],
2164
- [
2165
- '',
2166
- '000061626364656656af740087',
2167
- 'P2SH,STRICTENC'
2168
- ],
2169
- [
2170
- '',
2171
- '00006162636465666757af740087',
2172
- 'P2SH,STRICTENC'
2173
- ],
2174
- [
2175
- '',
2176
- '0000616263646566676858af740087',
2177
- 'P2SH,STRICTENC'
2178
- ],
2179
- [
2180
- '',
2181
- '000061626364656667686959af740087',
2182
- 'P2SH,STRICTENC'
2183
- ],
2184
- [
2185
- '',
2186
- '00006162636465666768696a5aaf740087',
2187
- 'P2SH,STRICTENC'
2188
- ],
2189
- [
2190
- '',
2191
- '00006162636465666768696a6b5baf740087',
2192
- 'P2SH,STRICTENC'
2193
- ],
2194
- [
2195
- '',
2196
- '00006162636465666768696a6b6c5caf740087',
2197
- 'P2SH,STRICTENC'
2198
- ],
2199
- [
2200
- '',
2201
- '00006162636465666768696a6b6c6d5daf740087',
2202
- 'P2SH,STRICTENC'
2203
- ],
2204
- [
2205
- '',
2206
- '00006162636465666768696a6b6c6d6e5eaf740087',
2207
- 'P2SH,STRICTENC'
2208
- ],
2209
- [
2210
- '',
2211
- '00006162636465666768696a6b6c6d6e6f5faf740087',
2212
- 'P2SH,STRICTENC'
2213
- ],
2214
- [
2215
- '',
2216
- '00006162636465666768696a6b6c6d6e6f7060af740087',
2217
- 'P2SH,STRICTENC'
2218
- ],
2219
- [
2220
- '',
2221
- '00006162636465666768696a6b6c6d6e6f70710111af740087',
2222
- 'P2SH,STRICTENC'
2223
- ],
2224
- [
2225
- '',
2226
- '00006162636465666768696a6b6c6d6e6f7071720112af740087',
2227
- 'P2SH,STRICTENC'
2228
- ],
2229
- [
2230
- '',
2231
- '00006162636465666768696a6b6c6d6e6f707172730113af740087',
2232
- 'P2SH,STRICTENC'
2233
- ],
2234
- [
2235
- '',
2236
- '00006162636465666768696a6b6c6d6e6f70717273740114af740087',
2237
- 'P2SH,STRICTENC'
2238
- ],
2239
- [
2240
- '',
2241
- '000000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae',
2242
- 'P2SH,STRICTENC',
2243
- 'nOpCount is incremented by the number of keys evaluated in addition to the usual one op per op. In this case we have zero keys, so we can execute 201 CHECKMULTISIGS'
2244
- ],
2245
- [
2246
- '51',
2247
- '000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af',
2248
- 'P2SH,STRICTENC'
2249
- ],
2250
- [
2251
- '',
2252
- '61616161616161616161616100006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae',
2253
- 'P2SH,STRICTENC',
2254
- 'Even though there are no signatures being checked nOpCount is incremented by the number of keys.'
2255
- ],
2256
- [
2257
- '51',
2258
- '61616161616161616161616100006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af',
2259
- 'P2SH,STRICTENC'
2260
- ],
2261
- [
2262
- '000151',
2263
- 'a914da1745e9b549bd0bfa1a569971c77eba30cd5a4b87',
2264
- 'P2SH,STRICTENC',
2265
- 'Very basic P2SH'
2266
- ],
2267
- [
2268
- '4c000151',
2269
- 'a914da1745e9b549bd0bfa1a569971c77eba30cd5a4b87',
2270
- 'P2SH,STRICTENC'
2271
- ],
2272
- [
2273
- '4042424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242',
2274
- '4d40004242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424287',
2275
- 'P2SH,STRICTENC',
2276
- 'Basic PUSH signedness check'
2277
- ],
2278
- [
2279
- '4c4042424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242',
2280
- '4d40004242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424287',
2281
- 'P2SH,STRICTENC',
2282
- 'Basic PUSHDATA1 signedness check'
2283
- ],
2284
- [
2285
- 'all PUSHDATA forms are equivalent'
2286
- ],
2287
- [
2288
- '4c4b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111',
2289
- '4b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111187',
2290
- '',
2291
- 'PUSHDATA1 of 75 bytes equals direct push of it'
2292
- ],
2293
- [
2294
- '4dff00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111',
2295
- '4cff11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111187',
2296
- '',
2297
- 'PUSHDATA2 of 255 bytes equals PUSHDATA1 of it'
2298
- ],
2299
- [
2300
- '00',
2301
- '820087',
2302
- 'P2SH,STRICTENC',
2303
- 'Basic OP_0 execution'
2304
- ],
2305
- [
2306
- 'Numeric pushes'
2307
- ],
2308
- [
2309
- '0181',
2310
- '4f87',
2311
- '',
2312
- 'OP1_NEGATE pushes 0x81'
2313
- ],
2314
- [
2315
- '0101',
2316
- '5187',
2317
- '',
2318
- 'OP_1 pushes 0x01'
2319
- ],
2320
- [
2321
- '0102',
2322
- '5287',
2323
- '',
2324
- 'OP_2 pushes 0x02'
2325
- ],
2326
- [
2327
- '0103',
2328
- '5387',
2329
- '',
2330
- 'OP_3 pushes 0x03'
2331
- ],
2332
- [
2333
- '0104',
2334
- '5487',
2335
- '',
2336
- 'OP_4 pushes 0x04'
2337
- ],
2338
- [
2339
- '0105',
2340
- '5587',
2341
- '',
2342
- 'OP_5 pushes 0x05'
2343
- ],
2344
- [
2345
- '0106',
2346
- '5687',
2347
- '',
2348
- 'OP_6 pushes 0x06'
2349
- ],
2350
- [
2351
- '0107',
2352
- '5787',
2353
- '',
2354
- 'OP_7 pushes 0x07'
2355
- ],
2356
- [
2357
- '0108',
2358
- '5887',
2359
- '',
2360
- 'OP_8 pushes 0x08'
2361
- ],
2362
- [
2363
- '0109',
2364
- '5987',
2365
- '',
2366
- 'OP_9 pushes 0x09'
2367
- ],
2368
- [
2369
- '010a',
2370
- '5a87',
2371
- '',
2372
- 'OP_10 pushes 0x0a'
2373
- ],
2374
- [
2375
- '010b',
2376
- '5b87',
2377
- '',
2378
- 'OP_11 pushes 0x0b'
2379
- ],
2380
- [
2381
- '010c',
2382
- '5c87',
2383
- '',
2384
- 'OP_12 pushes 0x0c'
2385
- ],
2386
- [
2387
- '010d',
2388
- '5d87',
2389
- '',
2390
- 'OP_13 pushes 0x0d'
2391
- ],
2392
- [
2393
- '010e',
2394
- '5e87',
2395
- '',
2396
- 'OP_14 pushes 0x0e'
2397
- ],
2398
- [
2399
- '010f',
2400
- '5f87',
2401
- '',
2402
- 'OP_15 pushes 0x0f'
2403
- ],
2404
- [
2405
- '0110',
2406
- '6087',
2407
- '',
2408
- 'OP_16 pushes 0x10'
2409
- ],
2410
- [
2411
- 'Equivalency of different numeric encodings'
2412
- ],
2413
- [
2414
- '028000',
2415
- '0280009c',
2416
- '',
2417
- '0x8000 equals 128'
2418
- ],
2419
- [
2420
- '0100',
2421
- '009c',
2422
- '',
2423
- '0x00 numequals 0'
2424
- ],
2425
- [
2426
- '0180',
2427
- '009c',
2428
- '',
2429
- '0x80 (negative zero) numequals 0'
2430
- ],
2431
- [
2432
- '020080',
2433
- '009c',
2434
- '',
2435
- '0x0080 numequals 0'
2436
- ],
2437
- [
2438
- '020500',
2439
- '559c',
2440
- '',
2441
- '0x0500 numequals 5'
2442
- ],
2443
- [
2444
- '03ff7f80',
2445
- '02ffff9c',
2446
- '',
2447
- ''
2448
- ],
2449
- [
2450
- '03ff7f00',
2451
- '02ff7f9c',
2452
- '',
2453
- ''
2454
- ],
2455
- [
2456
- '04ffff7f80',
2457
- '03ffffff9c',
2458
- '',
2459
- ''
2460
- ],
2461
- [
2462
- '04ffff7f00',
2463
- '03ffff7f9c',
2464
- '',
2465
- ''
2466
- ],
2467
- [
2468
- 'Unevaluated non-minimal pushes are ignored'
2469
- ],
2470
- [
2471
- '00634c006851',
2472
- '',
2473
- 'MINIMALDATA',
2474
- 'non-minimal PUSHDATA1 ignored'
2475
- ],
2476
- [
2477
- '00634d00006851',
2478
- '',
2479
- 'MINIMALDATA',
2480
- 'non-minimal PUSHDATA2 ignored'
2481
- ],
2482
- [
2483
- '00634c000000006851',
2484
- '',
2485
- 'MINIMALDATA',
2486
- 'non-minimal PUSHDATA4 ignored'
2487
- ],
2488
- [
2489
- '006301816851',
2490
- '',
2491
- 'MINIMALDATA',
2492
- '1NEGATE equiv'
2493
- ],
2494
- [
2495
- '006301016851',
2496
- '',
2497
- 'MINIMALDATA',
2498
- 'OP_1 equiv'
2499
- ],
2500
- [
2501
- '006301026851',
2502
- '',
2503
- 'MINIMALDATA',
2504
- 'OP_2 equiv'
2505
- ],
2506
- [
2507
- '006301036851',
2508
- '',
2509
- 'MINIMALDATA',
2510
- 'OP_3 equiv'
2511
- ],
2512
- [
2513
- '006301046851',
2514
- '',
2515
- 'MINIMALDATA',
2516
- 'OP_4 equiv'
2517
- ],
2518
- [
2519
- '006301056851',
2520
- '',
2521
- 'MINIMALDATA',
2522
- 'OP_5 equiv'
2523
- ],
2524
- [
2525
- '006301066851',
2526
- '',
2527
- 'MINIMALDATA',
2528
- 'OP_6 equiv'
2529
- ],
2530
- [
2531
- '006301076851',
2532
- '',
2533
- 'MINIMALDATA',
2534
- 'OP_7 equiv'
2535
- ],
2536
- [
2537
- '006301086851',
2538
- '',
2539
- 'MINIMALDATA',
2540
- 'OP_8 equiv'
2541
- ],
2542
- [
2543
- '006301096851',
2544
- '',
2545
- 'MINIMALDATA',
2546
- 'OP_9 equiv'
2547
- ],
2548
- [
2549
- '0063010a6851',
2550
- '',
2551
- 'MINIMALDATA',
2552
- 'OP_10 equiv'
2553
- ],
2554
- [
2555
- '0063010b6851',
2556
- '',
2557
- 'MINIMALDATA',
2558
- 'OP_11 equiv'
2559
- ],
2560
- [
2561
- '0063010c6851',
2562
- '',
2563
- 'MINIMALDATA',
2564
- 'OP_12 equiv'
2565
- ],
2566
- [
2567
- '0063010d6851',
2568
- '',
2569
- 'MINIMALDATA',
2570
- 'OP_13 equiv'
2571
- ],
2572
- [
2573
- '0063010e6851',
2574
- '',
2575
- 'MINIMALDATA',
2576
- 'OP_14 equiv'
2577
- ],
2578
- [
2579
- '0063010f6851',
2580
- '',
2581
- 'MINIMALDATA',
2582
- 'OP_15 equiv'
2583
- ],
2584
- [
2585
- '006301106851',
2586
- '',
2587
- 'MINIMALDATA',
2588
- 'OP_16 equiv'
2589
- ],
2590
- [
2591
- 'Numeric minimaldata rules are only applied when a stack item is numerically evaluated; the push itself is allowed'
2592
- ],
2593
- [
2594
- '0100',
2595
- '51',
2596
- 'MINIMALDATA'
2597
- ],
2598
- [
2599
- '0180',
2600
- '51',
2601
- 'MINIMALDATA'
2602
- ],
2603
- [
2604
- '020180',
2605
- '51',
2606
- 'MINIMALDATA'
2607
- ],
2608
- [
2609
- '020100',
2610
- '51',
2611
- 'MINIMALDATA'
2612
- ],
2613
- [
2614
- '020200',
2615
- '51',
2616
- 'MINIMALDATA'
2617
- ],
2618
- [
2619
- '020300',
2620
- '51',
2621
- 'MINIMALDATA'
2622
- ],
2623
- [
2624
- '020400',
2625
- '51',
2626
- 'MINIMALDATA'
2627
- ],
2628
- [
2629
- '020500',
2630
- '51',
2631
- 'MINIMALDATA'
2632
- ],
2633
- [
2634
- '020600',
2635
- '51',
2636
- 'MINIMALDATA'
2637
- ],
2638
- [
2639
- '020700',
2640
- '51',
2641
- 'MINIMALDATA'
2642
- ],
2643
- [
2644
- '020800',
2645
- '51',
2646
- 'MINIMALDATA'
2647
- ],
2648
- [
2649
- '020900',
2650
- '51',
2651
- 'MINIMALDATA'
2652
- ],
2653
- [
2654
- '020a00',
2655
- '51',
2656
- 'MINIMALDATA'
2657
- ],
2658
- [
2659
- '020b00',
2660
- '51',
2661
- 'MINIMALDATA'
2662
- ],
2663
- [
2664
- '020c00',
2665
- '51',
2666
- 'MINIMALDATA'
2667
- ],
2668
- [
2669
- '020d00',
2670
- '51',
2671
- 'MINIMALDATA'
2672
- ],
2673
- [
2674
- '020e00',
2675
- '51',
2676
- 'MINIMALDATA'
2677
- ],
2678
- [
2679
- '020f00',
2680
- '51',
2681
- 'MINIMALDATA'
2682
- ],
2683
- [
2684
- '021000',
2685
- '51',
2686
- 'MINIMALDATA'
2687
- ],
2688
- [
2689
- "Valid version of the 'Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule' script_invalid test"
2690
- ],
2691
- [
2692
- '51020000',
2693
- '7975',
2694
- ''
2695
- ],
2696
- [
2697
- '51020000',
2698
- '7a7551',
2699
- ''
2700
- ],
2701
- [
2702
- '020000',
2703
- '8b7551',
2704
- ''
2705
- ],
2706
- [
2707
- '020000',
2708
- '8c7551',
2709
- ''
2710
- ],
2711
- [
2712
- '020000',
2713
- '8f7551',
2714
- ''
2715
- ],
2716
- [
2717
- '020000',
2718
- '907551',
2719
- ''
2720
- ],
2721
- [
2722
- '020000',
2723
- '917551',
2724
- ''
2725
- ],
2726
- [
2727
- '020000',
2728
- '927551',
2729
- ''
2730
- ],
2731
- [
2732
- '00020000',
2733
- '937551',
2734
- ''
2735
- ],
2736
- [
2737
- '02000000',
2738
- '937551',
2739
- ''
2740
- ],
2741
- [
2742
- '00020000',
2743
- '947551',
2744
- ''
2745
- ],
2746
- [
2747
- '02000000',
2748
- '947551',
2749
- ''
2750
- ],
2751
- [
2752
- '00020000',
2753
- '9a7551',
2754
- ''
2755
- ],
2756
- [
2757
- '02000000',
2758
- '9a7551',
2759
- ''
2760
- ],
2761
- [
2762
- '00020000',
2763
- '9b7551',
2764
- ''
2765
- ],
2766
- [
2767
- '02000000',
2768
- '9b7551',
2769
- ''
2770
- ],
2771
- [
2772
- '00020000',
2773
- '9c7551',
2774
- ''
2775
- ],
2776
- [
2777
- '02000051',
2778
- '9c7551',
2779
- ''
2780
- ],
2781
- [
2782
- '00020000',
2783
- '9d51',
2784
- ''
2785
- ],
2786
- [
2787
- '02000000',
2788
- '9d51',
2789
- ''
2790
- ],
2791
- [
2792
- '00020000',
2793
- '9e7551',
2794
- ''
2795
- ],
2796
- [
2797
- '02000000',
2798
- '9e7551',
2799
- ''
2800
- ],
2801
- [
2802
- '00020000',
2803
- '9f7551',
2804
- ''
2805
- ],
2806
- [
2807
- '02000000',
2808
- '9f7551',
2809
- ''
2810
- ],
2811
- [
2812
- '00020000',
2813
- 'a07551',
2814
- ''
2815
- ],
2816
- [
2817
- '02000000',
2818
- 'a07551',
2819
- ''
2820
- ],
2821
- [
2822
- '00020000',
2823
- 'a17551',
2824
- ''
2825
- ],
2826
- [
2827
- '02000000',
2828
- 'a17551',
2829
- ''
2830
- ],
2831
- [
2832
- '00020000',
2833
- 'a27551',
2834
- ''
2835
- ],
2836
- [
2837
- '02000000',
2838
- 'a27551',
2839
- ''
2840
- ],
2841
- [
2842
- '00020000',
2843
- 'a37551',
2844
- ''
2845
- ],
2846
- [
2847
- '02000000',
2848
- 'a37551',
2849
- ''
2850
- ],
2851
- [
2852
- '00020000',
2853
- 'a47551',
2854
- ''
2855
- ],
2856
- [
2857
- '02000000',
2858
- 'a47551',
2859
- ''
2860
- ],
2861
- [
2862
- '0200000000',
2863
- 'a57551',
2864
- ''
2865
- ],
2866
- [
2867
- '0002000000',
2868
- 'a57551',
2869
- ''
2870
- ],
2871
- [
2872
- '0000020000',
2873
- 'a57551',
2874
- ''
2875
- ],
2876
- [
2877
- '0000020000',
2878
- 'ae7551',
2879
- ''
2880
- ],
2881
- [
2882
- '0002000000',
2883
- 'ae7551',
2884
- ''
2885
- ],
2886
- [
2887
- '000200000051',
2888
- 'ae7551',
2889
- ''
2890
- ],
2891
- [
2892
- '0000020000',
2893
- 'af51',
2894
- ''
2895
- ],
2896
- [
2897
- '0002000000',
2898
- 'af51',
2899
- ''
2900
- ],
2901
- [
2902
- 'While not really correctly DER encoded, the empty signature is allowed by'
2903
- ],
2904
- [
2905
- 'STRICTENC to provide a compact way to provide a delibrately invalid signature.'
2906
- ],
4
+ "It is evaluated as if there was a crediting coinbase transaction with two 0",
5
+ ],
6
+ ["pushes as scriptSig, and one output of 0 satoshi and given scriptPubKey,"],
2907
7
  [
2908
- '00',
2909
- '2102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0ac91',
2910
- 'STRICTENC'
8
+ "followed by a spending transaction which spends this output as only input (and",
2911
9
  ],
2912
10
  [
2913
- '0000',
2914
- '512102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac051ae91',
2915
- 'STRICTENC'
11
+ "correct prevout hash), using the given scriptSig. All nLockTimes are 0, all",
2916
12
  ],
13
+ ["nSequences are max."],
2917
14
  [
2918
- 'CHECKMULTISIG evaluation order tests. CHECKMULTISIG evaluates signatures and'
15
+ "",
16
+ "740087",
17
+ "P2SH,STRICTENC",
18
+ "Test the test: we should have an empty stack after scriptSig evaluation",
2919
19
  ],
2920
20
  [
2921
- 'pubkeys in a specific order, and will exit early if the number of signatures'
21
+ "",
22
+ "740087",
23
+ "P2SH,STRICTENC",
24
+ "and multiple spaces should not change that.",
2922
25
  ],
26
+ ["", "740087", "P2SH,STRICTENC"],
27
+ ["", "740087", "P2SH,STRICTENC"],
2923
28
  [
2924
- 'left to check is greater than the number of keys left. As STRICTENC fails the'
29
+ "5152",
30
+ "52885187",
31
+ "P2SH,STRICTENC",
32
+ "Similarly whitespace around and between symbols",
2925
33
  ],
34
+ ["5152", "52885187", "P2SH,STRICTENC"],
35
+ ["5152", "52885187", "P2SH,STRICTENC"],
36
+ ["5152", "52885187", "P2SH,STRICTENC"],
37
+ ["5152", "52885187", "P2SH,STRICTENC"],
38
+ ["51", "", "P2SH,STRICTENC"],
2926
39
  [
2927
- 'script when it reaches an invalidly encoded signature or pubkey, we can use it'
40
+ "020100",
41
+ "",
42
+ "P2SH,STRICTENC",
43
+ "all bytes are significant, not only the last one",
2928
44
  ],
2929
45
  [
2930
- 'to test the exact order in which signatures and pubkeys are evaluated by'
46
+ "09000000000000000010",
47
+ "",
48
+ "P2SH,STRICTENC",
49
+ "equals zero when cast to Int64",
2931
50
  ],
51
+ ["010b", "5b87", "P2SH,STRICTENC", "push 1 byte"],
52
+ ["02417a", "417a87", "P2SH,STRICTENC"],
2932
53
  [
2933
- 'distinguishing CHECKMULTISIG returning false on the stack and the script as a'
54
+ "4b417a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a",
55
+ "417a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a87",
56
+ "P2SH,STRICTENC",
57
+ "push 75 bytes",
58
+ ],
59
+ ["4c0107", "5787", "P2SH,STRICTENC", "0x4c is OP_PUSHDATA1"],
60
+ ["4d010008", "5887", "P2SH,STRICTENC", "0x4d is OP_PUSHDATA2"],
61
+ ["4e0100000009", "5987", "P2SH,STRICTENC", "0x4e is OP_PUSHDATA4"],
62
+ ["4c00", "0087", "P2SH,STRICTENC"],
63
+ ["4d0000", "0087", "P2SH,STRICTENC"],
64
+ ["4e00000000", "0087", "P2SH,STRICTENC"],
65
+ ["4f02e80393", "02e70387", "P2SH,STRICTENC"],
66
+ ["00", "63506851", "P2SH,STRICTENC", "0x50 is reserved (ok if not executed)"],
67
+ [
68
+ "51",
69
+ "5f936087",
70
+ "P2SH,STRICTENC",
71
+ "0x51 through 0x60 push 1 through 16 onto stack",
72
+ ],
73
+ ["51", "61", "P2SH,STRICTENC"],
74
+ [
75
+ "00",
76
+ "6362675168",
77
+ "P2SH,STRICTENC",
78
+ "VER non-functional (ok if not executed)",
79
+ ],
80
+ ["00", "6350898a675168", "P2SH,STRICTENC", "RESERVED ok in un-executed IF"],
81
+ ["51", "766368", "P2SH,STRICTENC"],
82
+ ["51", "635168", "P2SH,STRICTENC"],
83
+ ["51", "76636768", "P2SH,STRICTENC"],
84
+ ["51", "63516768", "P2SH,STRICTENC"],
85
+ ["00", "63675168", "P2SH,STRICTENC"],
86
+ ["5151", "63635167006868", "P2SH,STRICTENC"],
87
+ ["5100", "63635167006868", "P2SH,STRICTENC"],
88
+ ["5151", "63635167006867630067516868", "P2SH,STRICTENC"],
89
+ ["0000", "63635167006867630067516868", "P2SH,STRICTENC"],
90
+ ["5100", "64635167006868", "P2SH,STRICTENC"],
91
+ ["5151", "64635167006868", "P2SH,STRICTENC"],
92
+ ["5100", "64635167006867630067516868", "P2SH,STRICTENC"],
93
+ ["0051", "64635167006867630067516868", "P2SH,STRICTENC"],
94
+ [
95
+ "00",
96
+ "63006751670068",
97
+ "P2SH,STRICTENC",
98
+ "Multiple ELSE's are valid and executed inverts on each ELSE encountered",
99
+ ],
100
+ ["51", "635167006768", "P2SH,STRICTENC"],
101
+ ["51", "636700675168", "P2SH,STRICTENC"],
102
+ ["51", "63516700675168935287", "P2SH,STRICTENC"],
103
+ [
104
+ "51",
105
+ "63a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a7681468ca4fec736264c13b859bac43d5173df687168287",
106
+ "P2SH,STRICTENC",
107
+ ],
108
+ [
109
+ "51",
110
+ "64006751670068",
111
+ "P2SH,STRICTENC",
112
+ "Multiple ELSE's are valid and execution inverts on each ELSE encountered",
113
+ ],
114
+ ["00", "645167006768", "P2SH,STRICTENC"],
115
+ ["00", "646700675168", "P2SH,STRICTENC"],
116
+ ["00", "64516700675168935287", "P2SH,STRICTENC"],
117
+ [
118
+ "00",
119
+ "64a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a76767a7681468ca4fec736264c13b859bac43d5173df687168287",
120
+ "P2SH,STRICTENC",
121
+ ],
122
+ [
123
+ "00",
124
+ "6351636a676a676a6867516351676a675168676a68935287",
125
+ "P2SH,STRICTENC",
126
+ "Nested ELSE ELSE",
127
+ ],
128
+ ["51", "6400646a676a676a6867006451676a675168676a68935287", "P2SH,STRICTENC"],
129
+ ["00", "636a6851", "P2SH,STRICTENC", "RETURN only works if executed"],
130
+ ["5151", "69", "P2SH,STRICTENC"],
131
+ [
132
+ "51050100000000",
133
+ "69",
134
+ "P2SH,STRICTENC",
135
+ "values >4 bytes can be cast to boolean",
136
+ ],
137
+ ["510180", "630068", "P2SH,STRICTENC", "negative 0 is false"],
138
+ ["5a005b6b756c", "93011587", "P2SH,STRICTENC"],
139
+ [
140
+ "676176696e5f7761735f686572656b5b6c",
141
+ "676176696e5f7761735f68657265885b87",
142
+ "P2SH,STRICTENC",
143
+ ],
144
+ ["0073", "7451880087", "P2SH,STRICTENC"],
145
+ ["5173", "74528851885187", "P2SH,STRICTENC"],
146
+ [
147
+ "05010000000073",
148
+ "74528805010000000087",
149
+ "P2SH,STRICTENC",
150
+ "IFDUP dups non ints",
151
+ ],
152
+ ["0075", "740087", "P2SH,STRICTENC"],
153
+ ["00", "76519351880087", "P2SH,STRICTENC"],
154
+ ["0051", "77", "P2SH,STRICTENC"],
155
+ ["5100", "78745388", "P2SH,STRICTENC"],
156
+ ["011601150114", "0079011488745387", "P2SH,STRICTENC"],
157
+ ["011601150114", "5179011588745387", "P2SH,STRICTENC"],
158
+ ["011601150114", "5279011688745387", "P2SH,STRICTENC"],
159
+ ["011601150114", "007a011488745287", "P2SH,STRICTENC"],
160
+ ["011601150114", "517a011588745287", "P2SH,STRICTENC"],
161
+ ["011601150114", "527a011688745287", "P2SH,STRICTENC"],
162
+ ["011601150114", "7b011687", "P2SH,STRICTENC"],
163
+ ["011601150114", "7b75011487", "P2SH,STRICTENC"],
164
+ ["011601150114", "7b7575011587", "P2SH,STRICTENC"],
165
+ ["011601150114", "7b7b011587", "P2SH,STRICTENC"],
166
+ ["011601150114", "7b7b7b011487", "P2SH,STRICTENC"],
167
+ ["011901180117011601150114", "71011887", "P2SH,STRICTENC"],
168
+ ["011901180117011601150114", "7175011987", "P2SH,STRICTENC"],
169
+ ["011901180117011601150114", "716d011487", "P2SH,STRICTENC"],
170
+ ["011901180117011601150114", "716d75011587", "P2SH,STRICTENC"],
171
+ ["011901180117011601150114", "716d6d011687", "P2SH,STRICTENC"],
172
+ ["011901180117011601150114", "716d6d75011787", "P2SH,STRICTENC"],
173
+ ["011901180117011601150114", "7171011687", "P2SH,STRICTENC"],
174
+ ["011901180117011601150114", "717171011487", "P2SH,STRICTENC"],
175
+ ["5100", "7c51880087", "P2SH,STRICTENC"],
176
+ ["0051", "7d7453887c6d", "P2SH,STRICTENC"],
177
+ ["5d5e", "6e7b8887", "P2SH,STRICTENC"],
178
+ ["4f005152", "6f745788939353886d0088", "P2SH,STRICTENC"],
179
+ ["51525355", "709393588893935687", "P2SH,STRICTENC"],
180
+ ["51535557", "72935488935c87", "P2SH,STRICTENC"],
181
+ ["00", "820087", "P2SH,STRICTENC"],
182
+ ["51", "825187", "P2SH,STRICTENC"],
183
+ ["017f", "825187", "P2SH,STRICTENC"],
184
+ ["028000", "825287", "P2SH,STRICTENC"],
185
+ ["02ff7f", "825287", "P2SH,STRICTENC"],
186
+ ["03008000", "825387", "P2SH,STRICTENC"],
187
+ ["03ffff7f", "825387", "P2SH,STRICTENC"],
188
+ ["0400008000", "825487", "P2SH,STRICTENC"],
189
+ ["04ffffff7f", "825487", "P2SH,STRICTENC"],
190
+ ["050000008000", "825587", "P2SH,STRICTENC"],
191
+ ["05ffffffff7f", "825587", "P2SH,STRICTENC"],
192
+ ["06000000008000", "825687", "P2SH,STRICTENC"],
193
+ ["08ffffffffffffff7f", "825887", "P2SH,STRICTENC"],
194
+ ["4f", "825187", "P2SH,STRICTENC"],
195
+ ["01ff", "825187", "P2SH,STRICTENC"],
196
+ ["028080", "825287", "P2SH,STRICTENC"],
197
+ ["02ffff", "825287", "P2SH,STRICTENC"],
198
+ ["03008080", "825387", "P2SH,STRICTENC"],
199
+ ["03ffffff", "825387", "P2SH,STRICTENC"],
200
+ ["0400008080", "825487", "P2SH,STRICTENC"],
201
+ ["04ffffffff", "825487", "P2SH,STRICTENC"],
202
+ ["050000008080", "825587", "P2SH,STRICTENC"],
203
+ ["05ffffffffff", "825587", "P2SH,STRICTENC"],
204
+ ["06000000008080", "825687", "P2SH,STRICTENC"],
205
+ ["08ffffffffffffffff", "825887", "P2SH,STRICTENC"],
206
+ [
207
+ "6162636465666768696a6b6c6d6e6f707172737475767778797a",
208
+ "82011a87",
209
+ "P2SH,STRICTENC",
210
+ ],
211
+ ["012a", "825188012a87", "P2SH,STRICTENC", "SIZE does not consume argument"],
212
+ ["52018293", "0087", "P2SH,STRICTENC"],
213
+ ["04ffffff7f04ffffffff93", "0087", "P2SH,STRICTENC"],
214
+ ["4f4f93", "018287", "P2SH,STRICTENC"],
215
+ ["0000", "87", "P2SH,STRICTENC"],
216
+ ["515193", "5287", "P2SH,STRICTENC"],
217
+ ["518b", "5287", "P2SH,STRICTENC"],
218
+ ["016f8c", "016e87", "P2SH,STRICTENC"],
219
+ ["016f51935c94", "016487", "P2SH,STRICTENC"],
220
+ ["0090", "0087", "P2SH,STRICTENC"],
221
+ ["6090", "6087", "P2SH,STRICTENC"],
222
+ ["019090", "01908f87", "P2SH,STRICTENC"],
223
+ ["0091", "61", "P2SH,STRICTENC"],
224
+ ["5191", "0087", "P2SH,STRICTENC"],
225
+ ["5b91", "0087", "P2SH,STRICTENC"],
226
+ ["0092", "0087", "P2SH,STRICTENC"],
227
+ ["5192", "5187", "P2SH,STRICTENC"],
228
+ ["016f92", "5187", "P2SH,STRICTENC"],
229
+ ["01ef92", "5187", "P2SH,STRICTENC"],
230
+ ["51519a", "61", "P2SH,STRICTENC"],
231
+ ["51009a", "91", "P2SH,STRICTENC"],
232
+ ["00519a", "91", "P2SH,STRICTENC"],
233
+ ["00009a", "91", "P2SH,STRICTENC"],
234
+ ["6001119a", "61", "P2SH,STRICTENC"],
235
+ ["51519b", "61", "P2SH,STRICTENC"],
236
+ ["51009b", "61", "P2SH,STRICTENC"],
237
+ ["00519b", "61", "P2SH,STRICTENC"],
238
+ ["00009b", "91", "P2SH,STRICTENC"],
239
+ ["6001119b", "61", "P2SH,STRICTENC"],
240
+ ["5b5a5193", "9c", "P2SH,STRICTENC"],
241
+ ["5b5a5193", "9d51", "P2SH,STRICTENC"],
242
+ ["5b5a5193", "9e91", "P2SH,STRICTENC"],
243
+ ["016f5a5193", "9e", "P2SH,STRICTENC"],
244
+ ["5b5a", "9f91", "P2SH,STRICTENC"],
245
+ ["5454", "9f91", "P2SH,STRICTENC"],
246
+ ["5a5b", "9f", "P2SH,STRICTENC"],
247
+ ["018b5b", "9f", "P2SH,STRICTENC"],
248
+ ["018b018a", "9f", "P2SH,STRICTENC"],
249
+ ["5b5a", "a0", "P2SH,STRICTENC"],
250
+ ["5454", "a091", "P2SH,STRICTENC"],
251
+ ["5a5b", "a091", "P2SH,STRICTENC"],
252
+ ["018b5b", "a091", "P2SH,STRICTENC"],
253
+ ["018b018a", "a091", "P2SH,STRICTENC"],
254
+ ["5b5a", "a191", "P2SH,STRICTENC"],
255
+ ["5454", "a1", "P2SH,STRICTENC"],
256
+ ["5a5b", "a1", "P2SH,STRICTENC"],
257
+ ["018b5b", "a1", "P2SH,STRICTENC"],
258
+ ["018b018a", "a1", "P2SH,STRICTENC"],
259
+ ["5b5a", "a2", "P2SH,STRICTENC"],
260
+ ["5454", "a2", "P2SH,STRICTENC"],
261
+ ["5a5b", "a291", "P2SH,STRICTENC"],
262
+ ["018b5b", "a291", "P2SH,STRICTENC"],
263
+ ["018b018a", "a291", "P2SH,STRICTENC"],
264
+ ["5100a3", "009c", "P2SH,STRICTENC"],
265
+ ["0051a3", "009c", "P2SH,STRICTENC"],
266
+ ["4f00a3", "4f9c", "P2SH,STRICTENC"],
267
+ ["0004ffffffffa3", "04ffffffff9c", "P2SH,STRICTENC"],
268
+ ["04ffffff7f00a4", "04ffffff7f9c", "P2SH,STRICTENC"],
269
+ ["000164a4", "01649c", "P2SH,STRICTENC"],
270
+ ["01e400a4", "009c", "P2SH,STRICTENC"],
271
+ ["0004ffffffffa4", "009c", "P2SH,STRICTENC"],
272
+ ["000051", "a5", "P2SH,STRICTENC"],
273
+ ["510051", "a591", "P2SH,STRICTENC"],
274
+ ["0004ffffffff04ffffff7f", "a5", "P2SH,STRICTENC"],
275
+ ["4f01e40164", "a5", "P2SH,STRICTENC"],
276
+ ["5b01e40164", "a5", "P2SH,STRICTENC"],
277
+ ["04ffffffff01e40164", "a591", "P2SH,STRICTENC"],
278
+ ["04ffffff7f01e40164", "a591", "P2SH,STRICTENC"],
279
+ ["04ffffff7f04ffffff7f94", "0087", "P2SH,STRICTENC"],
280
+ [
281
+ "04ffffff7f7693",
282
+ "05feffffff0087",
283
+ "P2SH,STRICTENC",
284
+ ">32 bit EQUAL is valid",
285
+ ],
286
+ ["04ffffff7f8f7693", "05feffffff8087", "P2SH,STRICTENC"],
287
+ ["", "a6149c1185a5c5e9fc54612808977ee8f548b2258d3187", "P2SH,STRICTENC"],
288
+ ["61", "a6140bdc9d2d256b3ee9daae347be6f4dc835a467ffe87", "P2SH,STRICTENC"],
289
+ [
290
+ "6162636465666768696a6b6c6d6e6f707172737475767778797a",
291
+ "a614f71c27109c692c1b56bbdceb5b9d2865b3708dbc87",
292
+ "P2SH,STRICTENC",
293
+ ],
294
+ ["", "a714da39a3ee5e6b4b0d3255bfef95601890afd8070987", "P2SH,STRICTENC"],
295
+ ["61", "a71486f7e437faa5a7fce15d1ddcb9eaeaea377667b887", "P2SH,STRICTENC"],
296
+ [
297
+ "6162636465666768696a6b6c6d6e6f707172737475767778797a",
298
+ "a71432d10c7b8cf96570ca04ce37f2a19d84240d3a8987",
299
+ "P2SH,STRICTENC",
300
+ ],
301
+ [
302
+ "",
303
+ "a820e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85587",
304
+ "P2SH,STRICTENC",
305
+ ],
306
+ [
307
+ "61",
308
+ "a820ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb87",
309
+ "P2SH,STRICTENC",
310
+ ],
311
+ [
312
+ "6162636465666768696a6b6c6d6e6f707172737475767778797a",
313
+ "a82071c480df93d6ae2f1efad1447c66c9525e316218cf51fc8d9ed832f2daf18b7387",
314
+ "P2SH,STRICTENC",
315
+ ],
316
+ ["", "76a97ca8a687", "P2SH,STRICTENC"],
317
+ ["", "76aa7ca8a887", "P2SH,STRICTENC"],
318
+ ["", "61a914b472a266d0bd89c13706a4132ccfb16f7c3b9fcb87", "P2SH,STRICTENC"],
319
+ ["61", "a96114994355199e516ff76c4fa4aab39337b9d84cf12b87", "P2SH,STRICTENC"],
320
+ [
321
+ "6162636465666768696a6b6c6d6e6f707172737475767778797a",
322
+ "a94c14c286a1af0947f58d1ad787385b1c2c4a976f9e7187",
323
+ "P2SH,STRICTENC",
324
+ ],
325
+ [
326
+ "",
327
+ "aa205df6e0e2761359d30a8275058e299fcc0381534545f55cf43e41983f5d4c945687",
328
+ "P2SH,STRICTENC",
329
+ ],
330
+ [
331
+ "61",
332
+ "aa20bf5d3affb73efd2ec6c36ad3112dd933efed63c4e1cbffcfa88e2759c144f2d887",
333
+ "P2SH,STRICTENC",
334
+ ],
335
+ [
336
+ "6162636465666768696a6b6c6d6e6f707172737475767778797a",
337
+ "aa4c20ca139bc10c2f660da42666f72e89a225936fc60f193c161124a672050c43467187",
338
+ "P2SH,STRICTENC",
339
+ ],
340
+ ["51", "b0b1b2b3b4b5b6b7b8b95187", "P2SH,STRICTENC"],
341
+ [
342
+ "4e060000005f746f5f3130b0b1b2b3b4b5b6b7b8b9",
343
+ "4e060000005f746f5f313087",
344
+ "P2SH,STRICTENC",
345
+ ],
346
+ [
347
+ "51",
348
+ "61",
349
+ "P2SH,STRICTENC,DISCOURAGE_UPGRADABLE_NOPS",
350
+ "Discourage NOPx flag allows OP_NOP",
351
+ ],
352
+ [
353
+ "00",
354
+ "63b96851",
355
+ "P2SH,STRICTENC,DISCOURAGE_UPGRADABLE_NOPS",
356
+ "Discouraged NOPs are allowed if not executed",
357
+ ],
358
+ [
359
+ "00",
360
+ "63ba675168",
361
+ "P2SH,STRICTENC",
362
+ "opcodes above NOP10 invalid if executed",
363
+ ],
364
+ ["00", "63bb675168", "P2SH,STRICTENC"],
365
+ ["00", "63bc675168", "P2SH,STRICTENC"],
366
+ ["00", "63bd675168", "P2SH,STRICTENC"],
367
+ ["00", "63be675168", "P2SH,STRICTENC"],
368
+ ["00", "63bf675168", "P2SH,STRICTENC"],
369
+ ["00", "63c0675168", "P2SH,STRICTENC"],
370
+ ["00", "63c1675168", "P2SH,STRICTENC"],
371
+ ["00", "63c2675168", "P2SH,STRICTENC"],
372
+ ["00", "63c3675168", "P2SH,STRICTENC"],
373
+ ["00", "63c4675168", "P2SH,STRICTENC"],
374
+ ["00", "63c5675168", "P2SH,STRICTENC"],
375
+ ["00", "63c6675168", "P2SH,STRICTENC"],
376
+ ["00", "63c7675168", "P2SH,STRICTENC"],
377
+ ["00", "63c8675168", "P2SH,STRICTENC"],
378
+ ["00", "63c9675168", "P2SH,STRICTENC"],
379
+ ["00", "63ca675168", "P2SH,STRICTENC"],
380
+ ["00", "63cb675168", "P2SH,STRICTENC"],
381
+ ["00", "63cc675168", "P2SH,STRICTENC"],
382
+ ["00", "63cd675168", "P2SH,STRICTENC"],
383
+ ["00", "63ce675168", "P2SH,STRICTENC"],
384
+ ["00", "63cf675168", "P2SH,STRICTENC"],
385
+ ["00", "63d0675168", "P2SH,STRICTENC"],
386
+ ["00", "63d1675168", "P2SH,STRICTENC"],
387
+ ["00", "63d2675168", "P2SH,STRICTENC"],
388
+ ["00", "63d3675168", "P2SH,STRICTENC"],
389
+ ["00", "63d4675168", "P2SH,STRICTENC"],
390
+ ["00", "63d5675168", "P2SH,STRICTENC"],
391
+ ["00", "63d6675168", "P2SH,STRICTENC"],
392
+ ["00", "63d7675168", "P2SH,STRICTENC"],
393
+ ["00", "63d8675168", "P2SH,STRICTENC"],
394
+ ["00", "63d9675168", "P2SH,STRICTENC"],
395
+ ["00", "63da675168", "P2SH,STRICTENC"],
396
+ ["00", "63db675168", "P2SH,STRICTENC"],
397
+ ["00", "63dc675168", "P2SH,STRICTENC"],
398
+ ["00", "63dd675168", "P2SH,STRICTENC"],
399
+ ["00", "63de675168", "P2SH,STRICTENC"],
400
+ ["00", "63df675168", "P2SH,STRICTENC"],
401
+ ["00", "63e0675168", "P2SH,STRICTENC"],
402
+ ["00", "63e1675168", "P2SH,STRICTENC"],
403
+ ["00", "63e2675168", "P2SH,STRICTENC"],
404
+ ["00", "63e3675168", "P2SH,STRICTENC"],
405
+ ["00", "63e4675168", "P2SH,STRICTENC"],
406
+ ["00", "63e5675168", "P2SH,STRICTENC"],
407
+ ["00", "63e6675168", "P2SH,STRICTENC"],
408
+ ["00", "63e7675168", "P2SH,STRICTENC"],
409
+ ["00", "63e8675168", "P2SH,STRICTENC"],
410
+ ["00", "63e9675168", "P2SH,STRICTENC"],
411
+ ["00", "63ea675168", "P2SH,STRICTENC"],
412
+ ["00", "63eb675168", "P2SH,STRICTENC"],
413
+ ["00", "63ec675168", "P2SH,STRICTENC"],
414
+ ["00", "63ed675168", "P2SH,STRICTENC"],
415
+ ["00", "63ee675168", "P2SH,STRICTENC"],
416
+ ["00", "63ef675168", "P2SH,STRICTENC"],
417
+ ["00", "63f0675168", "P2SH,STRICTENC"],
418
+ ["00", "63f1675168", "P2SH,STRICTENC"],
419
+ ["00", "63f2675168", "P2SH,STRICTENC"],
420
+ ["00", "63f3675168", "P2SH,STRICTENC"],
421
+ ["00", "63f4675168", "P2SH,STRICTENC"],
422
+ ["00", "63f5675168", "P2SH,STRICTENC"],
423
+ ["00", "63f6675168", "P2SH,STRICTENC"],
424
+ ["00", "63f7675168", "P2SH,STRICTENC"],
425
+ ["00", "63f8675168", "P2SH,STRICTENC"],
426
+ ["00", "63f9675168", "P2SH,STRICTENC"],
427
+ ["00", "63fa675168", "P2SH,STRICTENC"],
428
+ ["00", "63fb675168", "P2SH,STRICTENC"],
429
+ ["00", "63fc675168", "P2SH,STRICTENC"],
430
+ ["00", "63fd675168", "P2SH,STRICTENC"],
431
+ ["00", "63fe675168", "P2SH,STRICTENC"],
432
+ ["00", "63ff675168", "P2SH,STRICTENC"],
433
+ [
434
+ "61",
435
+ "62626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262",
436
+ "P2SH,STRICTENC",
437
+ "520 byte push",
438
+ ],
439
+ [
440
+ "51",
441
+ "616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161",
442
+ "P2SH,STRICTENC",
443
+ "201 opcodes executed. 0x61 is NOP",
444
+ ],
445
+ [
446
+ "51525354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f",
447
+ "51525354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f",
448
+ "P2SH,STRICTENC",
449
+ "1,000 stack size (0x6f is 3DUP)",
450
+ ],
451
+ [
452
+ "516b526b5354556f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f",
453
+ "515253545556576f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f",
454
+ "P2SH,STRICTENC",
455
+ "1,000 stack size (altstack cleared between scriptSig/scriptPubKey)",
456
+ ],
457
+ [
458
+ "616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f",
459
+ "616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6e616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161",
460
+ "P2SH,STRICTENC",
461
+ "Max-size (10,000-byte), max-push(520 bytes), max-opcodes(201), max stack size(1,000 items). 0x6f is 3DUP, 0x61 is NOP",
462
+ ],
463
+ [
464
+ "00",
465
+ "6350505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050506851",
466
+ "P2SH,STRICTENC",
467
+ ">201 opcodes, but RESERVED (0x50) doesn't count towards opcode limit.",
468
+ ],
469
+ ["61", "51", "P2SH,STRICTENC"],
470
+ [
471
+ "51",
472
+ "010187",
473
+ "P2SH,STRICTENC",
474
+ "The following is useful for checking implementations of BN_bn2mpi",
475
+ ],
476
+ ["017f", "017f87", "P2SH,STRICTENC"],
477
+ ["028000", "02800087", "P2SH,STRICTENC", "Leave room for the sign bit"],
478
+ ["02ff7f", "02ff7f87", "P2SH,STRICTENC"],
479
+ ["03008000", "0300800087", "P2SH,STRICTENC"],
480
+ ["03ffff7f", "03ffff7f87", "P2SH,STRICTENC"],
481
+ ["0400008000", "040000800087", "P2SH,STRICTENC"],
482
+ ["04ffffff7f", "04ffffff7f87", "P2SH,STRICTENC"],
483
+ ["050000008000", "05000000800087", "P2SH,STRICTENC"],
484
+ ["05ffffffff7f", "05ffffffff7f87", "P2SH,STRICTENC"],
485
+ ["06000000008000", "06ffffffff7f87", "P2SH,STRICTENC"],
486
+ ["08ffffffffffffff7f", "08ffffffffffffff7f87", "P2SH,STRICTENC"],
487
+ [
488
+ "4f",
489
+ "018187",
490
+ "P2SH,STRICTENC",
491
+ "Numbers are little-endian with the MSB being a sign bit",
492
+ ],
493
+ ["01ff", "01ff87", "P2SH,STRICTENC"],
494
+ ["028080", "02808087", "P2SH,STRICTENC"],
495
+ ["02ffff", "02ffff87", "P2SH,STRICTENC"],
496
+ ["03008080", "0300808087", "P2SH,STRICTENC"],
497
+ ["03ffffff", "03ffffff87", "P2SH,STRICTENC"],
498
+ ["0400008080", "040000808087", "P2SH,STRICTENC"],
499
+ ["04ffffffff", "04ffffffff87", "P2SH,STRICTENC"],
500
+ ["050000008080", "05000000808087", "P2SH,STRICTENC"],
501
+ ["05ffffffff80", "05ffffffff8087", "P2SH,STRICTENC"],
502
+ ["05ffffffffff", "05ffffffffff87", "P2SH,STRICTENC"],
503
+ ["06000000008080", "0600000000808087", "P2SH,STRICTENC"],
504
+ ["08ffffffffffffffff", "08ffffffffffffffff87", "P2SH,STRICTENC"],
505
+ [
506
+ "04ffffff7f",
507
+ "8b05000000800087",
508
+ "P2SH,STRICTENC",
509
+ "We can do math on 4-byte integers, and compare 5-byte ones",
510
+ ],
511
+ ["04ffffff7f", "8b51", "P2SH,STRICTENC"],
512
+ ["04ffffffff", "8b51", "P2SH,STRICTENC"],
513
+ ["51", "0201008791", "P2SH,STRICTENC", "Not the same byte array..."],
514
+ ["51", "0201009c", "P2SH,STRICTENC", "... but they are numerically equal"],
515
+ ["5b", "4c030b00009c", "P2SH,STRICTENC"],
516
+ ["00", "01808791", "P2SH,STRICTENC"],
517
+ ["00", "01809c", "P2SH,STRICTENC", "Zero numerically equals negative zero"],
518
+ ["00", "0200809c", "P2SH,STRICTENC"],
519
+ ["03000080", "04000000809c", "P2SH,STRICTENC"],
520
+ ["03100080", "04100000809c", "P2SH,STRICTENC"],
521
+ ["03100000", "04100000009c", "P2SH,STRICTENC"],
522
+ [
523
+ "61",
524
+ "6151",
525
+ "P2SH,STRICTENC",
526
+ "The following tests check the if(stack.size() < N) tests in each opcode",
527
+ ],
528
+ [
529
+ "51",
530
+ "635168",
531
+ "P2SH,STRICTENC",
532
+ "They are here to catch copy-and-paste errors",
533
+ ],
534
+ ["00", "645168", "P2SH,STRICTENC", "Most of them are duplicated elsewhere,"],
535
+ ["51", "6951", "P2SH,STRICTENC", "but, hey, more is always better, right?"],
536
+ ["00", "6b51", "P2SH,STRICTENC"],
537
+ ["51", "6b6c", "P2SH,STRICTENC"],
538
+ ["0000", "6d51", "P2SH,STRICTENC"],
539
+ ["0051", "6e", "P2SH,STRICTENC"],
540
+ ["000051", "6f", "P2SH,STRICTENC"],
541
+ ["00510000", "70", "P2SH,STRICTENC"],
542
+ ["005100000000", "71", "P2SH,STRICTENC"],
543
+ ["00510000", "72", "P2SH,STRICTENC"],
544
+ ["51", "73", "P2SH,STRICTENC"],
545
+ ["61", "7451", "P2SH,STRICTENC"],
546
+ ["00", "7551", "P2SH,STRICTENC"],
547
+ ["51", "76", "P2SH,STRICTENC"],
548
+ ["0051", "77", "P2SH,STRICTENC"],
549
+ ["5100", "78", "P2SH,STRICTENC"],
550
+ ["5100000053", "79", "P2SH,STRICTENC"],
551
+ ["5100", "79", "P2SH,STRICTENC"],
552
+ ["5100000053", "7a", "P2SH,STRICTENC"],
553
+ ["5100", "7a", "P2SH,STRICTENC"],
554
+ ["510000", "7b", "P2SH,STRICTENC"],
555
+ ["5100", "7c", "P2SH,STRICTENC"],
556
+ ["0051", "7d", "P2SH,STRICTENC"],
557
+ ["51", "82", "P2SH,STRICTENC"],
558
+ ["0000", "87", "P2SH,STRICTENC"],
559
+ ["0000", "8851", "P2SH,STRICTENC"],
560
+ [
561
+ "000051",
562
+ "8787",
563
+ "P2SH,STRICTENC",
564
+ "OP_0 and bools must have identical byte representations",
565
+ ],
566
+ ["00", "8b", "P2SH,STRICTENC"],
567
+ ["52", "8c", "P2SH,STRICTENC"],
568
+ ["4f", "8f", "P2SH,STRICTENC"],
569
+ ["4f", "90", "P2SH,STRICTENC"],
570
+ ["00", "91", "P2SH,STRICTENC"],
571
+ ["4f", "92", "P2SH,STRICTENC"],
572
+ ["5100", "93", "P2SH,STRICTENC"],
573
+ ["5100", "94", "P2SH,STRICTENC"],
574
+ ["4f4f", "9a", "P2SH,STRICTENC"],
575
+ ["4f00", "9b", "P2SH,STRICTENC"],
576
+ ["0000", "9c", "P2SH,STRICTENC"],
577
+ ["0000", "9d51", "P2SH,STRICTENC"],
578
+ ["4f00", "9e", "P2SH,STRICTENC"],
579
+ ["4f00", "9f", "P2SH,STRICTENC"],
580
+ ["5100", "a0", "P2SH,STRICTENC"],
581
+ ["0000", "a1", "P2SH,STRICTENC"],
582
+ ["0000", "a2", "P2SH,STRICTENC"],
583
+ ["4f00", "a3", "P2SH,STRICTENC"],
584
+ ["5100", "a4", "P2SH,STRICTENC"],
585
+ ["4f4f00", "a5", "P2SH,STRICTENC"],
586
+ ["00", "a6", "P2SH,STRICTENC"],
587
+ ["00", "a7", "P2SH,STRICTENC"],
588
+ ["00", "a8", "P2SH,STRICTENC"],
589
+ ["00", "a9", "P2SH,STRICTENC"],
590
+ ["00", "aa", "P2SH,STRICTENC"],
591
+ ["61", "ab51", "P2SH,STRICTENC"],
592
+ ["61", "b051", "P2SH,STRICTENC"],
593
+ ["61", "b151", "P2SH,STRICTENC"],
594
+ ["61", "b251", "P2SH,STRICTENC"],
595
+ ["61", "b351", "P2SH,STRICTENC"],
596
+ ["61", "b451", "P2SH,STRICTENC"],
597
+ ["61", "b551", "P2SH,STRICTENC"],
598
+ ["61", "b651", "P2SH,STRICTENC"],
599
+ ["61", "b751", "P2SH,STRICTENC"],
600
+ ["61", "b851", "P2SH,STRICTENC"],
601
+ ["61", "b951", "P2SH,STRICTENC"],
602
+ [
603
+ "",
604
+ "000000ae69740087",
605
+ "P2SH,STRICTENC",
606
+ "CHECKMULTISIG is allowed to have zero keys and/or sigs",
607
+ ],
608
+ ["", "000000af740087", "P2SH,STRICTENC"],
609
+ [
610
+ "",
611
+ "00000051ae69740087",
612
+ "P2SH,STRICTENC",
613
+ "Zero sigs means no sigs are checked",
614
+ ],
615
+ ["", "00000051af740087", "P2SH,STRICTENC"],
616
+ [
617
+ "",
618
+ "000000ae69740087",
619
+ "P2SH,STRICTENC",
620
+ "CHECKMULTISIG is allowed to have zero keys and/or sigs",
621
+ ],
622
+ ["", "000000af740087", "P2SH,STRICTENC"],
623
+ [
624
+ "",
625
+ "00000051ae69740087",
626
+ "P2SH,STRICTENC",
627
+ "Zero sigs means no sigs are checked",
628
+ ],
629
+ ["", "00000051af740087", "P2SH,STRICTENC"],
630
+ [
631
+ "",
632
+ "0000616252ae69740087",
633
+ "P2SH,STRICTENC",
634
+ "Test from up to 20 pubkeys, all not checked",
635
+ ],
636
+ ["", "000061626353ae69740087", "P2SH,STRICTENC"],
637
+ ["", "00006162636454ae69740087", "P2SH,STRICTENC"],
638
+ ["", "0000616263646555ae69740087", "P2SH,STRICTENC"],
639
+ ["", "000061626364656656ae69740087", "P2SH,STRICTENC"],
640
+ ["", "00006162636465666757ae69740087", "P2SH,STRICTENC"],
641
+ ["", "0000616263646566676858ae69740087", "P2SH,STRICTENC"],
642
+ ["", "000061626364656667686959ae69740087", "P2SH,STRICTENC"],
643
+ ["", "00006162636465666768696a5aae69740087", "P2SH,STRICTENC"],
644
+ ["", "00006162636465666768696a6b5bae69740087", "P2SH,STRICTENC"],
645
+ ["", "00006162636465666768696a6b6c5cae69740087", "P2SH,STRICTENC"],
646
+ ["", "00006162636465666768696a6b6c6d5dae69740087", "P2SH,STRICTENC"],
647
+ ["", "00006162636465666768696a6b6c6d6e5eae69740087", "P2SH,STRICTENC"],
648
+ ["", "00006162636465666768696a6b6c6d6e6f5fae69740087", "P2SH,STRICTENC"],
649
+ ["", "00006162636465666768696a6b6c6d6e6f7060ae69740087", "P2SH,STRICTENC"],
650
+ [
651
+ "",
652
+ "00006162636465666768696a6b6c6d6e6f70710111ae69740087",
653
+ "P2SH,STRICTENC",
654
+ ],
655
+ [
656
+ "",
657
+ "00006162636465666768696a6b6c6d6e6f7071720112ae69740087",
658
+ "P2SH,STRICTENC",
659
+ ],
660
+ [
661
+ "",
662
+ "00006162636465666768696a6b6c6d6e6f707172730113ae69740087",
663
+ "P2SH,STRICTENC",
664
+ ],
665
+ [
666
+ "",
667
+ "00006162636465666768696a6b6c6d6e6f70717273740114ae69740087",
668
+ "P2SH,STRICTENC",
669
+ ],
670
+ ["", "00006151af740087", "P2SH,STRICTENC"],
671
+ ["", "0000616252af740087", "P2SH,STRICTENC"],
672
+ ["", "000061626353af740087", "P2SH,STRICTENC"],
673
+ ["", "00006162636454af740087", "P2SH,STRICTENC"],
674
+ ["", "0000616263646555af740087", "P2SH,STRICTENC"],
675
+ ["", "000061626364656656af740087", "P2SH,STRICTENC"],
676
+ ["", "00006162636465666757af740087", "P2SH,STRICTENC"],
677
+ ["", "0000616263646566676858af740087", "P2SH,STRICTENC"],
678
+ ["", "000061626364656667686959af740087", "P2SH,STRICTENC"],
679
+ ["", "00006162636465666768696a5aaf740087", "P2SH,STRICTENC"],
680
+ ["", "00006162636465666768696a6b5baf740087", "P2SH,STRICTENC"],
681
+ ["", "00006162636465666768696a6b6c5caf740087", "P2SH,STRICTENC"],
682
+ ["", "00006162636465666768696a6b6c6d5daf740087", "P2SH,STRICTENC"],
683
+ ["", "00006162636465666768696a6b6c6d6e5eaf740087", "P2SH,STRICTENC"],
684
+ ["", "00006162636465666768696a6b6c6d6e6f5faf740087", "P2SH,STRICTENC"],
685
+ ["", "00006162636465666768696a6b6c6d6e6f7060af740087", "P2SH,STRICTENC"],
686
+ ["", "00006162636465666768696a6b6c6d6e6f70710111af740087", "P2SH,STRICTENC"],
687
+ [
688
+ "",
689
+ "00006162636465666768696a6b6c6d6e6f7071720112af740087",
690
+ "P2SH,STRICTENC",
691
+ ],
692
+ [
693
+ "",
694
+ "00006162636465666768696a6b6c6d6e6f707172730113af740087",
695
+ "P2SH,STRICTENC",
696
+ ],
697
+ [
698
+ "",
699
+ "00006162636465666768696a6b6c6d6e6f70717273740114af740087",
700
+ "P2SH,STRICTENC",
701
+ ],
702
+ [
703
+ "",
704
+ "000000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae0000ae",
705
+ "P2SH,STRICTENC",
706
+ "nOpCount is incremented by the number of keys evaluated in addition to the usual one op per op. In this case we have zero keys, so we can execute 201 CHECKMULTISIGS",
707
+ ],
708
+ [
709
+ "51",
710
+ "000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af000000af",
711
+ "P2SH,STRICTENC",
712
+ ],
713
+ [
714
+ "",
715
+ "61616161616161616161616100006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae00006162636465666768696a6b6c6d6e6f70717273740114ae",
716
+ "P2SH,STRICTENC",
717
+ "Even though there are no signatures being checked nOpCount is incremented by the number of keys.",
718
+ ],
719
+ [
720
+ "51",
721
+ "61616161616161616161616100006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af00006162636465666768696a6b6c6d6e6f70717273740114af",
722
+ "P2SH,STRICTENC",
723
+ ],
724
+ [
725
+ "000151",
726
+ "a914da1745e9b549bd0bfa1a569971c77eba30cd5a4b87",
727
+ "P2SH,STRICTENC",
728
+ "Very basic P2SH",
729
+ ],
730
+ [
731
+ "4c000151",
732
+ "a914da1745e9b549bd0bfa1a569971c77eba30cd5a4b87",
733
+ "P2SH,STRICTENC",
734
+ ],
735
+ [
736
+ "4042424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242",
737
+ "4d40004242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424287",
738
+ "P2SH,STRICTENC",
739
+ "Basic PUSH signedness check",
740
+ ],
741
+ [
742
+ "4c4042424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242",
743
+ "4d40004242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424287",
744
+ "P2SH,STRICTENC",
745
+ "Basic PUSHDATA1 signedness check",
746
+ ],
747
+ ["all PUSHDATA forms are equivalent"],
748
+ [
749
+ "4c4b111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
750
+ "4b11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111187",
751
+ "",
752
+ "PUSHDATA1 of 75 bytes equals direct push of it",
753
+ ],
754
+ [
755
+ "4dff00111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
756
+ "4cff11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111187",
757
+ "",
758
+ "PUSHDATA2 of 255 bytes equals PUSHDATA1 of it",
759
+ ],
760
+ ["00", "820087", "P2SH,STRICTENC", "Basic OP_0 execution"],
761
+ ["Numeric pushes"],
762
+ ["0181", "4f87", "", "OP1_NEGATE pushes 0x81"],
763
+ ["0101", "5187", "", "OP_1 pushes 0x01"],
764
+ ["0102", "5287", "", "OP_2 pushes 0x02"],
765
+ ["0103", "5387", "", "OP_3 pushes 0x03"],
766
+ ["0104", "5487", "", "OP_4 pushes 0x04"],
767
+ ["0105", "5587", "", "OP_5 pushes 0x05"],
768
+ ["0106", "5687", "", "OP_6 pushes 0x06"],
769
+ ["0107", "5787", "", "OP_7 pushes 0x07"],
770
+ ["0108", "5887", "", "OP_8 pushes 0x08"],
771
+ ["0109", "5987", "", "OP_9 pushes 0x09"],
772
+ ["010a", "5a87", "", "OP_10 pushes 0x0a"],
773
+ ["010b", "5b87", "", "OP_11 pushes 0x0b"],
774
+ ["010c", "5c87", "", "OP_12 pushes 0x0c"],
775
+ ["010d", "5d87", "", "OP_13 pushes 0x0d"],
776
+ ["010e", "5e87", "", "OP_14 pushes 0x0e"],
777
+ ["010f", "5f87", "", "OP_15 pushes 0x0f"],
778
+ ["0110", "6087", "", "OP_16 pushes 0x10"],
779
+ ["Equivalency of different numeric encodings"],
780
+ ["028000", "0280009c", "", "0x8000 equals 128"],
781
+ ["0100", "009c", "", "0x00 numequals 0"],
782
+ ["0180", "009c", "", "0x80 (negative zero) numequals 0"],
783
+ ["020080", "009c", "", "0x0080 numequals 0"],
784
+ ["020500", "559c", "", "0x0500 numequals 5"],
785
+ ["03ff7f80", "02ffff9c", "", ""],
786
+ ["03ff7f00", "02ff7f9c", "", ""],
787
+ ["04ffff7f80", "03ffffff9c", "", ""],
788
+ ["04ffff7f00", "03ffff7f9c", "", ""],
789
+ ["Unevaluated non-minimal pushes are ignored"],
790
+ ["00634c006851", "", "MINIMALDATA", "non-minimal PUSHDATA1 ignored"],
791
+ ["00634d00006851", "", "MINIMALDATA", "non-minimal PUSHDATA2 ignored"],
792
+ ["00634c000000006851", "", "MINIMALDATA", "non-minimal PUSHDATA4 ignored"],
793
+ ["006301816851", "", "MINIMALDATA", "1NEGATE equiv"],
794
+ ["006301016851", "", "MINIMALDATA", "OP_1 equiv"],
795
+ ["006301026851", "", "MINIMALDATA", "OP_2 equiv"],
796
+ ["006301036851", "", "MINIMALDATA", "OP_3 equiv"],
797
+ ["006301046851", "", "MINIMALDATA", "OP_4 equiv"],
798
+ ["006301056851", "", "MINIMALDATA", "OP_5 equiv"],
799
+ ["006301066851", "", "MINIMALDATA", "OP_6 equiv"],
800
+ ["006301076851", "", "MINIMALDATA", "OP_7 equiv"],
801
+ ["006301086851", "", "MINIMALDATA", "OP_8 equiv"],
802
+ ["006301096851", "", "MINIMALDATA", "OP_9 equiv"],
803
+ ["0063010a6851", "", "MINIMALDATA", "OP_10 equiv"],
804
+ ["0063010b6851", "", "MINIMALDATA", "OP_11 equiv"],
805
+ ["0063010c6851", "", "MINIMALDATA", "OP_12 equiv"],
806
+ ["0063010d6851", "", "MINIMALDATA", "OP_13 equiv"],
807
+ ["0063010e6851", "", "MINIMALDATA", "OP_14 equiv"],
808
+ ["0063010f6851", "", "MINIMALDATA", "OP_15 equiv"],
809
+ ["006301106851", "", "MINIMALDATA", "OP_16 equiv"],
810
+ [
811
+ "Numeric minimaldata rules are only applied when a stack item is numerically evaluated; the push itself is allowed",
812
+ ],
813
+ ["0100", "51", "MINIMALDATA"],
814
+ ["0180", "51", "MINIMALDATA"],
815
+ ["020180", "51", "MINIMALDATA"],
816
+ ["020100", "51", "MINIMALDATA"],
817
+ ["020200", "51", "MINIMALDATA"],
818
+ ["020300", "51", "MINIMALDATA"],
819
+ ["020400", "51", "MINIMALDATA"],
820
+ ["020500", "51", "MINIMALDATA"],
821
+ ["020600", "51", "MINIMALDATA"],
822
+ ["020700", "51", "MINIMALDATA"],
823
+ ["020800", "51", "MINIMALDATA"],
824
+ ["020900", "51", "MINIMALDATA"],
825
+ ["020a00", "51", "MINIMALDATA"],
826
+ ["020b00", "51", "MINIMALDATA"],
827
+ ["020c00", "51", "MINIMALDATA"],
828
+ ["020d00", "51", "MINIMALDATA"],
829
+ ["020e00", "51", "MINIMALDATA"],
830
+ ["020f00", "51", "MINIMALDATA"],
831
+ ["021000", "51", "MINIMALDATA"],
832
+ [
833
+ "Valid version of the 'Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule' script_invalid test",
834
+ ],
835
+ ["51020000", "7975", ""],
836
+ ["51020000", "7a7551", ""],
837
+ ["020000", "8b7551", ""],
838
+ ["020000", "8c7551", ""],
839
+ ["020000", "8f7551", ""],
840
+ ["020000", "907551", ""],
841
+ ["020000", "917551", ""],
842
+ ["020000", "927551", ""],
843
+ ["00020000", "937551", ""],
844
+ ["02000000", "937551", ""],
845
+ ["00020000", "947551", ""],
846
+ ["02000000", "947551", ""],
847
+ ["00020000", "9a7551", ""],
848
+ ["02000000", "9a7551", ""],
849
+ ["00020000", "9b7551", ""],
850
+ ["02000000", "9b7551", ""],
851
+ ["00020000", "9c7551", ""],
852
+ ["02000051", "9c7551", ""],
853
+ ["00020000", "9d51", ""],
854
+ ["02000000", "9d51", ""],
855
+ ["00020000", "9e7551", ""],
856
+ ["02000000", "9e7551", ""],
857
+ ["00020000", "9f7551", ""],
858
+ ["02000000", "9f7551", ""],
859
+ ["00020000", "a07551", ""],
860
+ ["02000000", "a07551", ""],
861
+ ["00020000", "a17551", ""],
862
+ ["02000000", "a17551", ""],
863
+ ["00020000", "a27551", ""],
864
+ ["02000000", "a27551", ""],
865
+ ["00020000", "a37551", ""],
866
+ ["02000000", "a37551", ""],
867
+ ["00020000", "a47551", ""],
868
+ ["02000000", "a47551", ""],
869
+ ["0200000000", "a57551", ""],
870
+ ["0002000000", "a57551", ""],
871
+ ["0000020000", "a57551", ""],
872
+ ["0000020000", "ae7551", ""],
873
+ ["0002000000", "ae7551", ""],
874
+ ["000200000051", "ae7551", ""],
875
+ ["0000020000", "af51", ""],
876
+ ["0002000000", "af51", ""],
877
+ ["While not really correctly DER encoded, the empty signature is allowed by"],
878
+ [
879
+ "STRICTENC to provide a compact way to provide a delibrately invalid signature.",
880
+ ],
881
+ [
882
+ "00",
883
+ "2102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0ac91",
884
+ "STRICTENC",
885
+ ],
886
+ [
887
+ "0000",
888
+ "512102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac051ae91",
889
+ "STRICTENC",
890
+ ],
891
+ [
892
+ "CHECKMULTISIG evaluation order tests. CHECKMULTISIG evaluates signatures and",
893
+ ],
894
+ [
895
+ "pubkeys in a specific order, and will exit early if the number of signatures",
2934
896
  ],
2935
897
  [
2936
- 'whole failing.'
898
+ "left to check is greater than the number of keys left. As STRICTENC fails the",
2937
899
  ],
2938
900
  [
2939
- 'See also the corresponding inverted versions of these tests in script_invalid.json'
901
+ "script when it reaches an invalidly encoded signature or pubkey, we can use it",
2940
902
  ],
903
+ ["to test the exact order in which signatures and pubkeys are evaluated by"],
2941
904
  [
2942
- '00473044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501473044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501',
2943
- '52002102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac052ae91',
2944
- 'STRICTENC',
2945
- '2-of-2 CHECKMULTISIG NOT with the second pubkey invalid, and both signatures validly encoded. Valid pubkey fails, and CHECKMULTISIG exits early, prior to evaluation of second invalid pubkey.'
905
+ "distinguishing CHECKMULTISIG returning false on the stack and the script as a",
2946
906
  ],
907
+ ["whole failing."],
2947
908
  [
2948
- '0000473044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501',
2949
- '522102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac02102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac052ae91',
2950
- 'STRICTENC',
2951
- '2-of-2 CHECKMULTISIG NOT with both pubkeys valid, but second signature invalid. Valid pubkey fails, and CHECKMULTISIG exits early, prior to evaluation of second invalid signature.'
909
+ "See also the corresponding inverted versions of these tests in script_invalid",
2952
910
  ],
2953
911
  [
2954
- 'Increase test coverage for DERSIG'
912
+ "00473044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501473044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501",
913
+ "52002102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac052ae91",
914
+ "STRICTENC",
915
+ "2-of-2 CHECKMULTISIG NOT with the second pubkey invalid, and both signatures validly encoded. Valid pubkey fails, and CHECKMULTISIG exits early, prior to evaluation of second invalid pubkey.",
2955
916
  ],
2956
917
  [
2957
- '4a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
2958
- '00ac91',
2959
- '',
2960
- 'Overly long signature is correctly encoded'
918
+ "0000473044022044dc17b0887c161bb67ba9635bf758735bdde503e4b0a0987f587f14a4e1143d022009a215772d49a85dae40d8ca03955af26ad3978a0ff965faa12915e9586249a501",
919
+ "522102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac02102865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac052ae91",
920
+ "STRICTENC",
921
+ "2-of-2 CHECKMULTISIG NOT with both pubkeys valid, but second signature invalid. Valid pubkey fails, and CHECKMULTISIG exits early, prior to evaluation of second invalid signature.",
2961
922
  ],
923
+ ["Increase test coverage for DERSIG"],
2962
924
  [
2963
- '2530220220000000000000000000000000000000000000000000000000000000000000000000',
2964
- '00ac91',
2965
- '',
2966
- 'Missing S is correctly encoded'
925
+ "4a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
926
+ "00ac91",
927
+ "",
928
+ "Overly long signature is correctly encoded",
2967
929
  ],
2968
930
  [
2969
- '273024021077777777777777777777777777777777020a7777777777777777777777777777777701',
2970
- '00ac91',
2971
- '',
2972
- 'S with invalid S length is correctly encoded'
931
+ "2530220220000000000000000000000000000000000000000000000000000000000000000000",
932
+ "00ac91",
933
+ "",
934
+ "Missing S is correctly encoded",
2973
935
  ],
2974
936
  [
2975
- '27302403107777777777777777777777777777777702107777777777777777777777777777777701',
2976
- '00ac91',
2977
- '',
2978
- 'Non-integer R is correctly encoded'
937
+ "273024021077777777777777777777777777777777020a7777777777777777777777777777777701",
938
+ "00ac91",
939
+ "",
940
+ "S with invalid S length is correctly encoded",
2979
941
  ],
2980
942
  [
2981
- '27302402107777777777777777777777777777777703107777777777777777777777777777777701',
2982
- '00ac91',
2983
- '',
2984
- 'Non-integer S is correctly encoded'
943
+ "27302403107777777777777777777777777777777702107777777777777777777777777777777701",
944
+ "00ac91",
945
+ "",
946
+ "Non-integer R is correctly encoded",
2985
947
  ],
2986
948
  [
2987
- '173014020002107777777777777777777777777777777701',
2988
- '00ac91',
2989
- '',
2990
- 'Zero-length R is correctly encoded'
949
+ "27302402107777777777777777777777777777777703107777777777777777777777777777777701",
950
+ "00ac91",
951
+ "",
952
+ "Non-integer S is correctly encoded",
2991
953
  ],
2992
954
  [
2993
- '173014021077777777777777777777777777777777020001',
2994
- '00ac91',
2995
- '',
2996
- 'Zero-length S is correctly encoded for DERSIG'
955
+ "173014020002107777777777777777777777777777777701",
956
+ "00ac91",
957
+ "",
958
+ "Zero-length R is correctly encoded",
2997
959
  ],
2998
960
  [
2999
- '27302402107777777777777777777777777777777702108777777777777777777777777777777701',
3000
- '00ac91',
3001
- '',
3002
- 'Negative S is correctly encoded'
961
+ "173014021077777777777777777777777777777777020001",
962
+ "00ac91",
963
+ "",
964
+ "Zero-length S is correctly encoded for DERSIG",
3003
965
  ],
3004
966
  [
3005
- 'Automatically generated test cases'
967
+ "27302402107777777777777777777777777777777702108777777777777777777777777777777701",
968
+ "00ac91",
969
+ "",
970
+ "Negative S is correctly encoded",
3006
971
  ],
972
+ ["Automatically generated test cases"],
3007
973
  [
3008
- '47304402200a5c6163f07b8d3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001',
3009
- '410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac',
3010
- '',
3011
- 'P2PK'
974
+ "47304402200a5c6163f07b8d3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001",
975
+ "410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac",
976
+ "",
977
+ "P2PK",
3012
978
  ],
3013
979
  [
3014
- '47304402206e05a6fe23c59196ffe176c9ddc31e73a9885638f9d1328d47c0c703863b8876022076feb53811aa5b04e0e79f938eb19906cc5e67548bc555a8e8b8b0fc603d840c0121038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
3015
- '76a9141018853670f9f3b0582c5b9ee8ce93764ac32b9388ac',
3016
- '',
3017
- 'P2PKH'
980
+ "47304402206e05a6fe23c59196ffe176c9ddc31e73a9885638f9d1328d47c0c703863b8876022076feb53811aa5b04e0e79f938eb19906cc5e67548bc555a8e8b8b0fc603d840c0121038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508",
981
+ "76a9141018853670f9f3b0582c5b9ee8ce93764ac32b9388ac",
982
+ "",
983
+ "P2PKH",
3018
984
  ],
3019
985
  [
3020
- '47304402204710a85181663b32d25c70ec2bbd14adff5ddfff6cb50d09e155ef5f541fc86c0220056b0cc949be9386ecc5f6c2ac0493269031dbb185781db90171b54ac127790281',
3021
- '41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac',
3022
- '',
3023
- 'P2PK anyonecanpay'
986
+ "47304402204710a85181663b32d25c70ec2bbd14adff5ddfff6cb50d09e155ef5f541fc86c0220056b0cc949be9386ecc5f6c2ac0493269031dbb185781db90171b54ac127790281",
987
+ "41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac",
988
+ "",
989
+ "P2PK anyonecanpay",
3024
990
  ],
3025
991
  [
3026
- '473044022003fef42ed6c7be8917441218f525a60e2431be978e28b7aca4d7a532cc413ae8022067a1f82c74e8d69291b90d148778405c6257bbcfc2353cc38a3e1f22bf4425460123210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ac',
3027
- 'a91423b0ad3477f2178bc0b3eed26e4e6316f4e83aa187',
3028
- 'P2SH',
3029
- 'P2SH(P2PK)'
992
+ "473044022003fef42ed6c7be8917441218f525a60e2431be978e28b7aca4d7a532cc413ae8022067a1f82c74e8d69291b90d148778405c6257bbcfc2353cc38a3e1f22bf4425460123210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798ac",
993
+ "a91423b0ad3477f2178bc0b3eed26e4e6316f4e83aa187",
994
+ "P2SH",
995
+ "P2SH(P2PK)",
3030
996
  ],
3031
997
  [
3032
- '47304402204e2eb034be7b089534ac9e798cf6a2c79f38bcb34d1b179efd6f2de0841735db022071461beb056b5a7be1819da6a3e3ce3662831ecc298419ca101eb6887b5dd6a4011976a9147cf9c846cd4882efec4bf07e44ebdad495c94f4b88ac',
3033
- 'a9142df519943d5acc0ef5222091f9dfe3543f489a8287',
3034
- '',
3035
- 'P2SH(P2PKH), bad sig but no VERIFY_P2SH'
998
+ "47304402204e2eb034be7b089534ac9e798cf6a2c79f38bcb34d1b179efd6f2de0841735db022071461beb056b5a7be1819da6a3e3ce3662831ecc298419ca101eb6887b5dd6a4011976a9147cf9c846cd4882efec4bf07e44ebdad495c94f4b88ac",
999
+ "a9142df519943d5acc0ef5222091f9dfe3543f489a8287",
1000
+ "",
1001
+ "P2SH(P2PKH), bad sig but no VERIFY_P2SH",
3036
1002
  ],
3037
1003
  [
3038
- '00473044022051254b9fb476a52d85530792b578f86fea70ec1ffb4393e661bcccb23d8d63d3022076505f94a403c86097841944e044c70c2045ce90e36de51f7e9d3828db98a0750147304402200a358f750934b3feb822f1966bfcd8bbec9eeaa3a8ca941e11ee5960e181fa01022050bf6b5a8e7750f70354ae041cb68a7bade67ec6c3ab19eb359638974410626e0147304402200955d031fff71d8653221e85e36c3c85533d2312fc3045314b19650b7ae2f81002202a6bb8505e36201909d0921f01abff390ae6b7ff97bbf959f98aedeb0a56730901',
3039
- '53210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae',
3040
- '',
3041
- '3-of-3'
1004
+ "00473044022051254b9fb476a52d85530792b578f86fea70ec1ffb4393e661bcccb23d8d63d3022076505f94a403c86097841944e044c70c2045ce90e36de51f7e9d3828db98a0750147304402200a358f750934b3feb822f1966bfcd8bbec9eeaa3a8ca941e11ee5960e181fa01022050bf6b5a8e7750f70354ae041cb68a7bade67ec6c3ab19eb359638974410626e0147304402200955d031fff71d8653221e85e36c3c85533d2312fc3045314b19650b7ae2f81002202a6bb8505e36201909d0921f01abff390ae6b7ff97bbf959f98aedeb0a56730901",
1005
+ "53210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae",
1006
+ "",
1007
+ "3-of-3",
3042
1008
  ],
3043
1009
  [
3044
- '0047304402205b7d2c2f177ae76cfbbf14d589c113b0b35db753d305d5562dd0b61cbf366cfb02202e56f93c4f08a27f986cd424ffc48a462c3202c4902104d4d0ff98ed28f4bf80014730440220563e5b3b1fc11662a84bc5ea2a32cc3819703254060ba30d639a1aaf2d5068ad0220601c1f47ddc76d93284dd9ed68f7c9974c4a0ea7cbe8a247d6bc3878567a5fca014c6952210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae',
3045
- 'a914c9e4a896d149702d0d1695434feddd52e24ad78d87',
3046
- 'P2SH',
3047
- 'P2SH(2-of-3)'
1010
+ "0047304402205b7d2c2f177ae76cfbbf14d589c113b0b35db753d305d5562dd0b61cbf366cfb02202e56f93c4f08a27f986cd424ffc48a462c3202c4902104d4d0ff98ed28f4bf80014730440220563e5b3b1fc11662a84bc5ea2a32cc3819703254060ba30d639a1aaf2d5068ad0220601c1f47ddc76d93284dd9ed68f7c9974c4a0ea7cbe8a247d6bc3878567a5fca014c6952210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae",
1011
+ "a914c9e4a896d149702d0d1695434feddd52e24ad78d87",
1012
+ "P2SH",
1013
+ "P2SH(2-of-3)",
3048
1014
  ],
3049
1015
  [
3050
- '47304402200060558477337b9022e70534f1fea71a318caf836812465a2509931c5e7c4987022078ec32bd50ac9e03a349ba953dfd9fe1c8d2dd8bdb1d38ddca844d3d5c78c11801',
3051
- '21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac',
3052
- '',
3053
- 'P2PK with too much R padding but no DERSIG'
1016
+ "47304402200060558477337b9022e70534f1fea71a318caf836812465a2509931c5e7c4987022078ec32bd50ac9e03a349ba953dfd9fe1c8d2dd8bdb1d38ddca844d3d5c78c11801",
1017
+ "21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac",
1018
+ "",
1019
+ "P2PK with too much R padding but no DERSIG",
3054
1020
  ],
3055
1021
  [
3056
- '48304502202de8c03fc525285c9c535631019a5f2af7c6454fa9eb392a3756a4917c420edd02210046130bf2baf7cfc065067c8b9e33a066d9c15edcea9feb0ca2d233e3597925b401',
3057
- '21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac',
3058
- '',
3059
- 'P2PK with too much S padding but no DERSIG'
1022
+ "48304502202de8c03fc525285c9c535631019a5f2af7c6454fa9eb392a3756a4917c420edd02210046130bf2baf7cfc065067c8b9e33a066d9c15edcea9feb0ca2d233e3597925b401",
1023
+ "21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac",
1024
+ "",
1025
+ "P2PK with too much S padding but no DERSIG",
3060
1026
  ],
3061
1027
  [
3062
- '4730440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201',
3063
- '21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac',
3064
- '',
3065
- 'P2PK with too little R padding but no DERSIG'
1028
+ "4730440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201",
1029
+ "21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac",
1030
+ "",
1031
+ "P2PK with too little R padding but no DERSIG",
3066
1032
  ],
3067
1033
  [
3068
- '4730440220005ece1335e7f757a1a1f476a7fb5bd90964e8a022489f890614a04acfb734c002206c12b8294a6513c7710e8c82d3c23d75cdbfe83200eb7efb495701958501a5d601',
3069
- '2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac91',
3070
- '',
3071
- 'P2PK NOT with bad sig with too much R padding but no DERSIG'
1034
+ "4730440220005ece1335e7f757a1a1f476a7fb5bd90964e8a022489f890614a04acfb734c002206c12b8294a6513c7710e8c82d3c23d75cdbfe83200eb7efb495701958501a5d601",
1035
+ "2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac91",
1036
+ "",
1037
+ "P2PK NOT with bad sig with too much R padding but no DERSIG",
3072
1038
  ],
3073
1039
  [
3074
- '4730440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201',
3075
- '21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac',
3076
- '',
3077
- 'BIP66 example 1, without DERSIG'
1040
+ "4730440220d7a0417c3f6d1a15094d1cf2a3378ca0503eb8a57630953a9e2987e21ddd0a6502207a6266d686c99090920249991d3d42065b6d43eb70187b219c0db82e4f94d1a201",
1041
+ "21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac",
1042
+ "",
1043
+ "BIP66 example 1, without DERSIG",
3078
1044
  ],
3079
1045
  [
3080
- '00',
3081
- '21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac91',
3082
- '',
3083
- 'BIP66 example 4, without DERSIG'
1046
+ "00",
1047
+ "21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac91",
1048
+ "",
1049
+ "BIP66 example 4, without DERSIG",
3084
1050
  ],
3085
1051
  [
3086
- '00',
3087
- '21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac91',
3088
- 'DERSIG',
3089
- 'BIP66 example 4, with DERSIG'
1052
+ "00",
1053
+ "21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac91",
1054
+ "DERSIG",
1055
+ "BIP66 example 4, with DERSIG",
3090
1056
  ],
3091
1057
  [
3092
- '51',
3093
- '21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac91',
3094
- '',
3095
- 'BIP66 example 6, without DERSIG'
1058
+ "51",
1059
+ "21038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508ac91",
1060
+ "",
1061
+ "BIP66 example 6, without DERSIG",
3096
1062
  ],
3097
1063
  [
3098
- '004730440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501473044022027c2714269ca5aeecc4d70edc88ba5ee0e3da4986e9216028f489ab4f1b8efce022022bd545b4951215267e4c5ceabd4c5350331b2e4a0b6494c56f361fa5a57a1a201',
3099
- '5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464052ae',
3100
- '',
3101
- 'BIP66 example 7, without DERSIG'
1064
+ "004730440220cae00b1444babfbf6071b0ba8707f6bd373da3df494d6e74119b0430c5db810502205d5231b8c5939c8ff0c82242656d6e06edb073d42af336c99fe8837c36ea39d501473044022027c2714269ca5aeecc4d70edc88ba5ee0e3da4986e9216028f489ab4f1b8efce022022bd545b4951215267e4c5ceabd4c5350331b2e4a0b6494c56f361fa5a57a1a201",
1065
+ "5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464052ae",
1066
+ "",
1067
+ "BIP66 example 7, without DERSIG",
3102
1068
  ],
3103
1069
  [
3104
- '00004730440220da6f441dc3b4b2c84cfa8db0cd5b34ed92c9e01686de5a800d40498b70c0dcac02207c2cf91b0c32b860c4cd4994be36cfb84caf8bb7c3a8e4d96a31b2022c5299c501',
3105
- '5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464052ae91',
3106
- '',
3107
- 'BIP66 example 10, without DERSIG'
1070
+ "00004730440220da6f441dc3b4b2c84cfa8db0cd5b34ed92c9e01686de5a800d40498b70c0dcac02207c2cf91b0c32b860c4cd4994be36cfb84caf8bb7c3a8e4d96a31b2022c5299c501",
1071
+ "5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464052ae91",
1072
+ "",
1073
+ "BIP66 example 10, without DERSIG",
3108
1074
  ],
3109
1075
  [
3110
- '004730440220b119d67d389315308d1745f734a51ff3ec72e06081e84e236fdf9dc2f5d2a64802204b04e3bc38674c4422ea317231d642b56dc09d214a1ecbbf16ecca01ed996e220100',
3111
- '5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464052ae91',
3112
- '',
3113
- 'BIP66 example 12, without DERSIG'
1076
+ "004730440220b119d67d389315308d1745f734a51ff3ec72e06081e84e236fdf9dc2f5d2a64802204b04e3bc38674c4422ea317231d642b56dc09d214a1ecbbf16ecca01ed996e220100",
1077
+ "5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464052ae91",
1078
+ "",
1079
+ "BIP66 example 12, without DERSIG",
3114
1080
  ],
3115
1081
  [
3116
- '004730440220b119d67d389315308d1745f734a51ff3ec72e06081e84e236fdf9dc2f5d2a64802204b04e3bc38674c4422ea317231d642b56dc09d214a1ecbbf16ecca01ed996e220100',
3117
- '5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464052ae91',
3118
- 'DERSIG',
3119
- 'BIP66 example 12, with DERSIG'
1082
+ "004730440220b119d67d389315308d1745f734a51ff3ec72e06081e84e236fdf9dc2f5d2a64802204b04e3bc38674c4422ea317231d642b56dc09d214a1ecbbf16ecca01ed996e220100",
1083
+ "5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464052ae91",
1084
+ "DERSIG",
1085
+ "BIP66 example 12, with DERSIG",
3120
1086
  ],
3121
1087
  [
3122
- '48304402203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022054e1c258c2981cdfba5df1f46661fb6541c44f77ca0092f3600331abfffb12510101',
3123
- '2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac',
3124
- '',
3125
- 'P2PK with multi-byte hashtype, without DERSIG'
1088
+ "48304402203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022054e1c258c2981cdfba5df1f46661fb6541c44f77ca0092f3600331abfffb12510101",
1089
+ "2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac",
1090
+ "",
1091
+ "P2PK with multi-byte hashtype, without DERSIG",
3126
1092
  ],
3127
1093
  [
3128
- '48304502203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022100ab1e3da73d67e32045a20e0b999e049978ea8d6ee5480d485fcf2ce0d03b2ef001',
3129
- '2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac',
3130
- '',
3131
- 'P2PK with high S but no LOW_S'
1094
+ "48304502203e4516da7253cf068effec6b95c41221c0cf3a8e6ccb8cbf1725b562e9afde2c022100ab1e3da73d67e32045a20e0b999e049978ea8d6ee5480d485fcf2ce0d03b2ef001",
1095
+ "2103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640ac",
1096
+ "",
1097
+ "P2PK with high S but no LOW_S",
3132
1098
  ],
3133
1099
  [
3134
- '473044022057292e2d4dfe775becdd0a9e6547997c728cdf35390f6a017da56d654d374e4902206b643be2fc53763b4e284845bfea2c597d2dc7759941dce937636c9d341b71ed01',
3135
- '410679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac',
3136
- '',
3137
- 'P2PK with hybrid pubkey but no STRICTENC'
1100
+ "473044022057292e2d4dfe775becdd0a9e6547997c728cdf35390f6a017da56d654d374e4902206b643be2fc53763b4e284845bfea2c597d2dc7759941dce937636c9d341b71ed01",
1101
+ "410679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac",
1102
+ "",
1103
+ "P2PK with hybrid pubkey but no STRICTENC",
3138
1104
  ],
3139
1105
  [
3140
- '4730440220035d554e3153c04950c9993f41c496607a8e24093db0595be7bf875cf64fcf1f02204731c8c4e5daf15e706cec19cdd8f2c5b1d05490e11dab8465ed426569b6e92101',
3141
- '410679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac91',
3142
- '',
3143
- 'P2PK NOT with invalid hybrid pubkey but no STRICTENC'
1106
+ "4730440220035d554e3153c04950c9993f41c496607a8e24093db0595be7bf875cf64fcf1f02204731c8c4e5daf15e706cec19cdd8f2c5b1d05490e11dab8465ed426569b6e92101",
1107
+ "410679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac91",
1108
+ "",
1109
+ "P2PK NOT with invalid hybrid pubkey but no STRICTENC",
3144
1110
  ],
3145
1111
  [
3146
- '0047304402202e79441ad1baf5a07fb86bae3753184f6717d9692680947ea8b6e8b777c69af1022079a262e13d868bb5a0964fefe3ba26942e1b0669af1afb55ef3344bc9d4fc4c401',
3147
- '51410679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150852ae',
3148
- '',
3149
- '1-of-2 with the second 1 hybrid pubkey and no STRICTENC'
1112
+ "0047304402202e79441ad1baf5a07fb86bae3753184f6717d9692680947ea8b6e8b777c69af1022079a262e13d868bb5a0964fefe3ba26942e1b0669af1afb55ef3344bc9d4fc4c401",
1113
+ "51410679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150852ae",
1114
+ "",
1115
+ "1-of-2 with the second 1 hybrid pubkey and no STRICTENC",
3150
1116
  ],
3151
1117
  [
3152
- '0047304402202e79441ad1baf5a07fb86bae3753184f6717d9692680947ea8b6e8b777c69af1022079a262e13d868bb5a0964fefe3ba26942e1b0669af1afb55ef3344bc9d4fc4c401',
3153
- '51410679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150852ae',
3154
- 'STRICTENC',
3155
- '1-of-2 with the second 1 hybrid pubkey'
1118
+ "0047304402202e79441ad1baf5a07fb86bae3753184f6717d9692680947ea8b6e8b777c69af1022079a262e13d868bb5a0964fefe3ba26942e1b0669af1afb55ef3344bc9d4fc4c401",
1119
+ "51410679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150852ae",
1120
+ "STRICTENC",
1121
+ "1-of-2 with the second 1 hybrid pubkey",
3156
1122
  ],
3157
1123
  [
3158
- '47304402206177d513ec2cda444c021a1f4f656fc4c72ba108ae063e157eb86dc3575784940220666fc66702815d0e5413bb9b1df22aed44f5f1efb8b99d41dd5dc9a5be6d205205',
3159
- '41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac',
3160
- '',
3161
- 'P2PK with undefined hashtype but no STRICTENC'
1124
+ "47304402206177d513ec2cda444c021a1f4f656fc4c72ba108ae063e157eb86dc3575784940220666fc66702815d0e5413bb9b1df22aed44f5f1efb8b99d41dd5dc9a5be6d205205",
1125
+ "41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac",
1126
+ "",
1127
+ "P2PK with undefined hashtype but no STRICTENC",
3162
1128
  ],
3163
1129
  [
3164
- '47304402207409b5b320296e5e2136a7b281a7f803028ca4ca44e2b83eebd46932677725de02202d4eea1c8d3c98e6f42614f54764e6e5e6542e213eb4d079737e9a8b6e9812ec05',
3165
- '41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac91',
3166
- '',
3167
- 'P2PK NOT with invalid sig and undefined hashtype but no STRICTENC'
1130
+ "47304402207409b5b320296e5e2136a7b281a7f803028ca4ca44e2b83eebd46932677725de02202d4eea1c8d3c98e6f42614f54764e6e5e6542e213eb4d079737e9a8b6e9812ec05",
1131
+ "41048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26cafac91",
1132
+ "",
1133
+ "P2PK NOT with invalid sig and undefined hashtype but no STRICTENC",
3168
1134
  ],
3169
1135
  [
3170
- '51473044022051254b9fb476a52d85530792b578f86fea70ec1ffb4393e661bcccb23d8d63d3022076505f94a403c86097841944e044c70c2045ce90e36de51f7e9d3828db98a0750147304402200a358f750934b3feb822f1966bfcd8bbec9eeaa3a8ca941e11ee5960e181fa01022050bf6b5a8e7750f70354ae041cb68a7bade67ec6c3ab19eb359638974410626e0147304402200955d031fff71d8653221e85e36c3c85533d2312fc3045314b19650b7ae2f81002202a6bb8505e36201909d0921f01abff390ae6b7ff97bbf959f98aedeb0a56730901',
3171
- '53210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae',
3172
- '',
3173
- '3-of-3 with nonzero dummy but no NULLDUMMY'
1136
+ "51473044022051254b9fb476a52d85530792b578f86fea70ec1ffb4393e661bcccb23d8d63d3022076505f94a403c86097841944e044c70c2045ce90e36de51f7e9d3828db98a0750147304402200a358f750934b3feb822f1966bfcd8bbec9eeaa3a8ca941e11ee5960e181fa01022050bf6b5a8e7750f70354ae041cb68a7bade67ec6c3ab19eb359638974410626e0147304402200955d031fff71d8653221e85e36c3c85533d2312fc3045314b19650b7ae2f81002202a6bb8505e36201909d0921f01abff390ae6b7ff97bbf959f98aedeb0a56730901",
1137
+ "53210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae",
1138
+ "",
1139
+ "3-of-3 with nonzero dummy but no NULLDUMMY",
3174
1140
  ],
3175
1141
  [
3176
- '5147304402201bb2edab700a5d020236df174fefed78087697143731f659bea59642c759c16d022061f42cdbae5bcd3e8790f20bf76687443436e94a634321c16a72aa54cbc7c2ea0147304402204bb4a64f2a6e5c7fb2f07fef85ee56fde5e6da234c6a984262307a20e99842d702206f8303aaba5e625d223897e2ffd3f88ef1bcffef55f38dc3768e5f2e94c923f901473044022040c2809b71fffb155ec8b82fe7a27f666bd97f941207be4e14ade85a1249dd4d02204d56c85ec525dd18e29a0533d5ddf61b6b1bb32980c2f63edf951aebf7a27bfe01',
3177
- '53210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae91',
3178
- '',
3179
- '3-of-3 NOT with invalid sig and nonzero dummy but no NULLDUMMY'
1142
+ "5147304402201bb2edab700a5d020236df174fefed78087697143731f659bea59642c759c16d022061f42cdbae5bcd3e8790f20bf76687443436e94a634321c16a72aa54cbc7c2ea0147304402204bb4a64f2a6e5c7fb2f07fef85ee56fde5e6da234c6a984262307a20e99842d702206f8303aaba5e625d223897e2ffd3f88ef1bcffef55f38dc3768e5f2e94c923f901473044022040c2809b71fffb155ec8b82fe7a27f666bd97f941207be4e14ade85a1249dd4d02204d56c85ec525dd18e29a0533d5ddf61b6b1bb32980c2f63edf951aebf7a27bfe01",
1143
+ "53210279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f8179821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f515082103363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff464053ae91",
1144
+ "",
1145
+ "3-of-3 NOT with invalid sig and nonzero dummy but no NULLDUMMY",
3180
1146
  ],
3181
1147
  [
3182
- '0047304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b7390176',
3183
- '5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150852ae',
3184
- '',
3185
- '2-of-2 with two identical keys and sigs pushed using OP_DUP but no SIGPUSHONLY'
1148
+ "0047304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b7390176",
1149
+ "5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150852ae",
1150
+ "",
1151
+ "2-of-2 with two identical keys and sigs pushed using OP_DUP but no SIGPUSHONLY",
3186
1152
  ],
3187
1153
  [
3188
- '0047304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b7390147304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b73901',
3189
- '5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150852ae',
3190
- 'SIGPUSHONLY',
3191
- '2-of-2 with two identical keys and sigs pushed'
1154
+ "0047304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b7390147304402200abeb4bd07f84222f474aed558cfbdfc0b4e96cde3c2935ba7098b1ff0bd74c302204a04c1ca67b2a20abee210cf9a21023edccbbf8024b988812634233115c6b73901",
1155
+ "5221038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150821038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150852ae",
1156
+ "SIGPUSHONLY",
1157
+ "2-of-2 with two identical keys and sigs pushed",
3192
1158
  ],
3193
1159
  [
3194
- '5b47304402200a5c6163f07b8d3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001',
3195
- '410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac',
3196
- 'P2SH',
3197
- 'P2PK with unnecessary input but no CLEANSTACK'
1160
+ "5b47304402200a5c6163f07b8d3b013c4d1d6dba25e780b39658d79ba37af7057a3b7f15ffa102201fd9b4eaa9943f734928b99a83592c2e7bf342ea2680f6a2bb705167966b742001",
1161
+ "410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac",
1162
+ "P2SH",
1163
+ "P2PK with unnecessary input but no CLEANSTACK",
3198
1164
  ],
3199
1165
  [
3200
- '5b47304402202f7505132be14872581f35d74b759212d9da40482653f1ffa3116c3294a4a51702206adbf347a2240ca41c66522b1a22a41693610b76a8e7770645dc721d1635854f0143410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac',
3201
- 'a91431edc23bdafda4639e669f89ad6b2318dd79d03287',
3202
- 'P2SH',
3203
- 'P2SH with unnecessary input but no CLEANSTACK'
1166
+ "5b47304402202f7505132be14872581f35d74b759212d9da40482653f1ffa3116c3294a4a51702206adbf347a2240ca41c66522b1a22a41693610b76a8e7770645dc721d1635854f0143410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac",
1167
+ "a91431edc23bdafda4639e669f89ad6b2318dd79d03287",
1168
+ "P2SH",
1169
+ "P2SH with unnecessary input but no CLEANSTACK",
3204
1170
  ],
3205
1171
  [
3206
- '47304402202f7505132be14872581f35d74b759212d9da40482653f1ffa3116c3294a4a51702206adbf347a2240ca41c66522b1a22a41693610b76a8e7770645dc721d1635854f0143410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac',
3207
- 'a91431edc23bdafda4639e669f89ad6b2318dd79d03287',
3208
- 'CLEANSTACK,P2SH',
3209
- 'P2SH with CLEANSTACK'
1172
+ "47304402202f7505132be14872581f35d74b759212d9da40482653f1ffa3116c3294a4a51702206adbf347a2240ca41c66522b1a22a41693610b76a8e7770645dc721d1635854f0143410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8ac",
1173
+ "a91431edc23bdafda4639e669f89ad6b2318dd79d03287",
1174
+ "CLEANSTACK,P2SH",
1175
+ "P2SH with CLEANSTACK",
3210
1176
  ],
3211
- [
3212
- 'The End'
3213
- ]
3214
- ]
1177
+ ["The End"],
1178
+ ];