monacoin-ruby 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.travis.yml +5 -0
  4. data/COPYING +18 -0
  5. data/Gemfile +15 -0
  6. data/Gemfile.lock +33 -0
  7. data/README.rdoc +210 -0
  8. data/Rakefile +112 -0
  9. data/bin/monacoin_shell +12 -0
  10. data/bitcoin-ruby.gemspec +23 -0
  11. data/examples/bbe_verify_tx.rb +60 -0
  12. data/examples/concept-blockchain-pow.rb +151 -0
  13. data/examples/connect.rb +36 -0
  14. data/examples/generate_tx.rb +34 -0
  15. data/examples/simple_network_monitor_and_util.rb +195 -0
  16. data/spec/bitcoin/bitcoin_spec.rb +598 -0
  17. data/spec/bitcoin/bloom_filter_spec.rb +23 -0
  18. data/spec/bitcoin/builder_spec.rb +342 -0
  19. data/spec/bitcoin/contracthash_spec.rb +45 -0
  20. data/spec/bitcoin/dogecoin_spec.rb +176 -0
  21. data/spec/bitcoin/ext_key_spec.rb +180 -0
  22. data/spec/bitcoin/ffi_openssl.rb +45 -0
  23. data/spec/bitcoin/fixtures/000000000000056b1a3d84a1e2b33cde8915a4b61c0cae14fca6d3e1490b4f98.json +3697 -0
  24. data/spec/bitcoin/fixtures/03d7e1fa4d5fefa169431f24f7798552861b255cd55d377066fedcd088fb0e99.json +23 -0
  25. data/spec/bitcoin/fixtures/0961c660358478829505e16a1f028757e54b5bbf9758341a7546573738f31429.json +24 -0
  26. data/spec/bitcoin/fixtures/0f24294a1d23efbb49c1765cf443fba7930702752aba6d765870082fe4f13cae.json +37 -0
  27. data/spec/bitcoin/fixtures/156e6e1b84c5c3bd3a0927b25e4119fadce6e6d5186f363317511d1d680fae9a.json +24 -0
  28. data/spec/bitcoin/fixtures/23b397edccd3740a74adb603c9756370fafcde9bcc4483eb271ecad09a94dd63.json +23 -0
  29. data/spec/bitcoin/fixtures/315ac7d4c26d69668129cc352851d9389b4a6868f1509c6c8b66bead11e2619f.json +31 -0
  30. data/spec/bitcoin/fixtures/35e2001b428891fefa0bfb73167c7360669d3cbd7b3aa78e7cad125ddfc51131.json +27 -0
  31. data/spec/bitcoin/fixtures/3a17dace09ffb919ed627a93f1873220f4c975c1248558b18d16bce25d38c4b7.json +72 -0
  32. data/spec/bitcoin/fixtures/3e58b7eed0fdb599019af08578effea25c8666bbe8e200845453cacce6314477.json +27 -0
  33. data/spec/bitcoin/fixtures/514c46f0b61714092f15c8dfcb576c9f79b3f959989b98de3944b19d98832b58.json +24 -0
  34. data/spec/bitcoin/fixtures/51bf528ecf3c161e7c021224197dbe84f9a8564212f6207baa014c01a1668e1e.json +30 -0
  35. data/spec/bitcoin/fixtures/60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1.json +45 -0
  36. data/spec/bitcoin/fixtures/69216b8aaa35b76d6613e5f527f4858640d986e1046238583bdad79b35e938dc.json +28 -0
  37. data/spec/bitcoin/fixtures/7208e5edf525f04e705fb3390194e316205b8f995c8c9fcd8c6093abe04fa27d.json +27 -0
  38. data/spec/bitcoin/fixtures/761d8c5210fdfd505f6dff38f740ae3728eb93d7d0971fb433f685d40a4c04f6.json +27 -0
  39. data/spec/bitcoin/fixtures/8d0b238a06b5a70be75d543902d02d7a514d68d3252a949a513865ac3538874c.json +24 -0
  40. data/spec/bitcoin/fixtures/aea682d68a3ea5e3583e088dcbd699a5d44d4b083f02ad0aaf2598fe1fa4dfd4.json +27 -0
  41. data/spec/bitcoin/fixtures/bc179baab547b7d7c1d5d8d6f8b0cc6318eaa4b0dd0a093ad6ac7f5a1cb6b3ba.json +34 -0
  42. data/spec/bitcoin/fixtures/bd1715f1abfdc62bea3f605bdb461b3ba1f2cca6ec0d73a18a548b7717ca8531.json +34 -0
  43. data/spec/bitcoin/fixtures/block-testnet-0000000000ac85bb2530a05a4214a387e6be02b22d3348abc5e7a5d9c4ce8dab.bin +0 -0
  44. data/spec/bitcoin/fixtures/cd874fa8cb0e2ec2d385735d5e1fd482c4fe648533efb4c50ee53bda58e15ae2.json +24 -0
  45. data/spec/bitcoin/fixtures/ce5fad9b4ef094d8f4937b0707edaf0a6e6ceeaf67d5edbfd51f660eac8f398b.json +41 -0
  46. data/spec/bitcoin/fixtures/coinbase-toshi.json +33 -0
  47. data/spec/bitcoin/fixtures/coinbase.json +24 -0
  48. data/spec/bitcoin/fixtures/dogecoin-block-60323982f9c5ff1b5a954eac9dc1269352835f47c2c5222691d80f0d50dcf053.bin +0 -0
  49. data/spec/bitcoin/fixtures/f003f0c1193019db2497a675fd05d9f2edddf9b67c59e677c48d3dbd4ed5f00b.json +23 -0
  50. data/spec/bitcoin/fixtures/filteredblock-0.bin +0 -0
  51. data/spec/bitcoin/fixtures/litecoin-block-80ca095ed10b02e53d769eb6eaf92cd04e9e0759e5be4a8477b42911ba49c78f.bin +0 -0
  52. data/spec/bitcoin/fixtures/litecoin-block-80ca095ed10b02e53d769eb6eaf92cd04e9e0759e5be4a8477b42911ba49c78f.json +39 -0
  53. data/spec/bitcoin/fixtures/litecoin-genesis-block-12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2.bin +0 -0
  54. data/spec/bitcoin/fixtures/litecoin-genesis-block-12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2.json +39 -0
  55. data/spec/bitcoin/fixtures/litecoin-tx-f5aa30f574e3b6f1a3d99c07a6356ba812aabb9661e1d5f71edff828cbd5c996.json +259 -0
  56. data/spec/bitcoin/fixtures/rawblock-0.bin +0 -0
  57. data/spec/bitcoin/fixtures/rawblock-0.json +39 -0
  58. data/spec/bitcoin/fixtures/rawblock-1.bin +0 -0
  59. data/spec/bitcoin/fixtures/rawblock-1.json +39 -0
  60. data/spec/bitcoin/fixtures/rawblock-131025.bin +0 -0
  61. data/spec/bitcoin/fixtures/rawblock-131025.json +5063 -0
  62. data/spec/bitcoin/fixtures/rawblock-170.bin +0 -0
  63. data/spec/bitcoin/fixtures/rawblock-170.json +68 -0
  64. data/spec/bitcoin/fixtures/rawblock-9.bin +0 -0
  65. data/spec/bitcoin/fixtures/rawblock-9.json +39 -0
  66. data/spec/bitcoin/fixtures/rawblock-auxpow.bin +0 -0
  67. data/spec/bitcoin/fixtures/rawblock-testnet-1151351.bin +0 -0
  68. data/spec/bitcoin/fixtures/rawblock-testnet-26478.bin +0 -0
  69. data/spec/bitcoin/fixtures/rawblock-testnet-26478.json +64 -0
  70. data/spec/bitcoin/fixtures/rawblock-testnet-265322.bin +0 -0
  71. data/spec/bitcoin/fixtures/rawtx-01-toshi.json +46 -0
  72. data/spec/bitcoin/fixtures/rawtx-01.bin +0 -0
  73. data/spec/bitcoin/fixtures/rawtx-01.json +27 -0
  74. data/spec/bitcoin/fixtures/rawtx-02-toshi.json +46 -0
  75. data/spec/bitcoin/fixtures/rawtx-02.bin +0 -0
  76. data/spec/bitcoin/fixtures/rawtx-02.json +27 -0
  77. data/spec/bitcoin/fixtures/rawtx-03-toshi.json +73 -0
  78. data/spec/bitcoin/fixtures/rawtx-03.bin +0 -0
  79. data/spec/bitcoin/fixtures/rawtx-03.json +48 -0
  80. data/spec/bitcoin/fixtures/rawtx-04.json +27 -0
  81. data/spec/bitcoin/fixtures/rawtx-0437cd7f8525ceed2324359c2d0ba26006d92d856a9c20fa0241106ee5a597c9.bin +0 -0
  82. data/spec/bitcoin/fixtures/rawtx-05.json +23 -0
  83. data/spec/bitcoin/fixtures/rawtx-14be6fff8c6014f7c9493b4a6e4a741699173f39d74431b6b844fcb41ebb9984.bin +0 -0
  84. data/spec/bitcoin/fixtures/rawtx-2f4a2717ec8c9f077a87dde6cbe0274d5238793a3f3f492b63c744837285e58a.bin +0 -0
  85. data/spec/bitcoin/fixtures/rawtx-2f4a2717ec8c9f077a87dde6cbe0274d5238793a3f3f492b63c744837285e58a.json +27 -0
  86. data/spec/bitcoin/fixtures/rawtx-406b2b06bcd34d3c8733e6b79f7a394c8a431fbf4ff5ac705c93f4076bb77602.json +23 -0
  87. data/spec/bitcoin/fixtures/rawtx-52250a162c7d03d2e1fbc5ebd1801a88612463314b55102171c5b5d817d2d7b2.bin +0 -0
  88. data/spec/bitcoin/fixtures/rawtx-b5d4e8883533f99e5903ea2cf001a133a322fa6b1370b18a16c57c946a40823d.bin +0 -0
  89. data/spec/bitcoin/fixtures/rawtx-ba1ff5cd66713133c062a871a8adab92416f1e38d17786b2bf56ac5f6ffdfdf5.json +37 -0
  90. data/spec/bitcoin/fixtures/rawtx-c99c49da4c38af669dea436d3e73780dfdb6c1ecf9958baa52960e8baee30e73.json +24 -0
  91. data/spec/bitcoin/fixtures/rawtx-de35d060663750b3975b7997bde7fb76307cec5b270d12fcd9c4ad98b279c28c.json +23 -0
  92. data/spec/bitcoin/fixtures/rawtx-f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16.bin +0 -0
  93. data/spec/bitcoin/fixtures/rawtx-p2wpkh.bin +0 -0
  94. data/spec/bitcoin/fixtures/rawtx-p2wpkh.json +67 -0
  95. data/spec/bitcoin/fixtures/rawtx-testnet-04fdc38d6722ab4b12d79113fc4b2896bdcc5169710690ee4e78541b98e467b4.bin +0 -0
  96. data/spec/bitcoin/fixtures/rawtx-testnet-0b294c7d11dd21bcccb8393e6744fed7d4d1981a08c00e3e88838cc421f33c9f.bin +0 -0
  97. data/spec/bitcoin/fixtures/rawtx-testnet-3bc52ac063291ad92d95ddda5fd776a342083b95607ad32ed8bc6f8f7d30449e.bin +0 -0
  98. data/spec/bitcoin/fixtures/rawtx-testnet-6f0bbdd4e71a8af4305018d738184df32dbb6f27284fdebd5b56d16947f7c181.bin +0 -0
  99. data/spec/bitcoin/fixtures/rawtx-testnet-a220adf1902c46a39db25a24bc4178b6a88440f977a7e2cabfdd8b5c1dd35cfb.json +27 -0
  100. data/spec/bitcoin/fixtures/rawtx-testnet-a7c9b06e275e8674cc19a5f7d3e557c72c6d93576e635b33212dbe08ab7cdb60.bin +0 -0
  101. data/spec/bitcoin/fixtures/rawtx-testnet-e232e0055dbdca88bbaa79458683195a0b7c17c5b6c524a8d146721d4d4d652f.bin +0 -0
  102. data/spec/bitcoin/fixtures/rawtx-testnet-e232e0055dbdca88bbaa79458683195a0b7c17c5b6c524a8d146721d4d4d652f.json +41 -0
  103. data/spec/bitcoin/fixtures/rawtx-testnet-f80acbd2f594d04ddb0e1cacba662132104909157dff526935a3c88abe9201a5.bin +0 -0
  104. data/spec/bitcoin/fixtures/reorg/blk_0_to_4.dat +0 -0
  105. data/spec/bitcoin/fixtures/reorg/blk_3A.dat +0 -0
  106. data/spec/bitcoin/fixtures/reorg/blk_4A.dat +0 -0
  107. data/spec/bitcoin/fixtures/reorg/blk_5A.dat +0 -0
  108. data/spec/bitcoin/fixtures/script_tests.json +1947 -0
  109. data/spec/bitcoin/fixtures/sighash.json +1004 -0
  110. data/spec/bitcoin/fixtures/testnet/block_0.bin +0 -0
  111. data/spec/bitcoin/fixtures/testnet/block_1.bin +0 -0
  112. data/spec/bitcoin/fixtures/testnet/block_2.bin +0 -0
  113. data/spec/bitcoin/fixtures/testnet/block_3.bin +0 -0
  114. data/spec/bitcoin/fixtures/testnet/block_4.bin +0 -0
  115. data/spec/bitcoin/fixtures/testnet/block_5.bin +0 -0
  116. data/spec/bitcoin/fixtures/tx-0295028ef826b2a188409cb905b631faebb9bb3cdf14510571c5f4bd8591338f.json +64 -0
  117. data/spec/bitcoin/fixtures/tx-03339a725007a279484fb6f5361f522dd1cf4d0923d30e6b973290dba4275f92.json +64 -0
  118. data/spec/bitcoin/fixtures/tx-0a6a357e2f7796444e02638749d9611c008b253fb55f5dc88b739b230ed0c4c3.json +139 -0
  119. data/spec/bitcoin/fixtures/tx-0ce7e5238fbdb6c086cf1b384b21b827e91cc23f360417265874a5a0d86ce367.json +64 -0
  120. data/spec/bitcoin/fixtures/tx-0ef34c49f630aea17df0080728b0fc67bf5f87fbda936934a4b11b4a69d7821e.json +64 -0
  121. data/spec/bitcoin/fixtures/tx-1129d2a8bd5bb3a81e54dc96a90f1f6b2544575748caa17243470935c5dd91b7.json +28 -0
  122. data/spec/bitcoin/fixtures/tx-19aa42fee0fa57c45d3b16488198b27caaacc4ff5794510d0c17f173f05587ff.json +23 -0
  123. data/spec/bitcoin/fixtures/tx-1a4f3b9dc4494aeedeb39f30dd37e60541b2abe3ed4977992017cc0ad4f44956.json +64 -0
  124. data/spec/bitcoin/fixtures/tx-1f9191dcf2b1844ca28c6ef4b969e1d5fab70a5e3c56b7007949e55851cb0c4f.json +64 -0
  125. data/spec/bitcoin/fixtures/tx-22cd5fef23684d7b304e119bedffde6f54538d3d54a5bfa237e20dc2d9b4b5ad.json +64 -0
  126. data/spec/bitcoin/fixtures/tx-28204cad1d7fc1d199e8ef4fa22f182de6258a3eaafe1bbe56ebdcacd3069a5f.json +34 -0
  127. data/spec/bitcoin/fixtures/tx-2958fb00b4fd6fe0353503b886eb9a193d502f4fd5fc042d5e03216ba918bbd6.json +64 -0
  128. data/spec/bitcoin/fixtures/tx-29f277145749ad6efbed3ae6ce301f8d33c585ec26b7c044ad93c2f866e9e942.json +64 -0
  129. data/spec/bitcoin/fixtures/tx-2c5e5376c20e9cc78d0fb771730e5d840cc2096eff0ef045b599fe92475ace1c.json +28 -0
  130. data/spec/bitcoin/fixtures/tx-2c63aa814701cef5dbd4bbaddab3fea9117028f2434dddcdab8339141e9b14d1.json +30 -0
  131. data/spec/bitcoin/fixtures/tx-313897799b1e37e9ecae15010e56156dddde4e683c96b0e713af95272c38aee0.json +30 -0
  132. data/spec/bitcoin/fixtures/tx-326882a7f22b5191f1a0cc9962ca4b878cd969cf3b3a70887aece4d801a0ba5e.json +23 -0
  133. data/spec/bitcoin/fixtures/tx-345bed8785c3282a264ffb0dbee61cde54854f10e16f1b3e75b7f2d9f62946f2.json +64 -0
  134. data/spec/bitcoin/fixtures/tx-39ba7440b7103557560cc8ce258009936796485aaf8b478e66ab4cb97c66e31b.json +32 -0
  135. data/spec/bitcoin/fixtures/tx-3a04d57a833367f1655cc5ec3beb587888ef4977a86caa8c8ad4ba7cc717eae7.json +64 -0
  136. data/spec/bitcoin/fixtures/tx-3da75972766f0ad13319b0b461fd16823a731e44f6e9de4eb3c52d6a6fb6c8ae.json +23 -0
  137. data/spec/bitcoin/fixtures/tx-4142ee4877eb116abf955a7ec6ef2dc38133b793df762b76d75e3d7d4d8badc9.json +38 -0
  138. data/spec/bitcoin/fixtures/tx-44b833074e671120ba33106877b49e86ece510824b9af477a3853972bcd8d06a.json +30 -0
  139. data/spec/bitcoin/fixtures/tx-46224764c7870f95b58f155bce1e38d4da8e99d42dbb632d0dd7c07e092ee5aa.json +23 -0
  140. data/spec/bitcoin/fixtures/tx-5df1375ffe61ac35ca178ebb0cab9ea26dedbd0e96005dfcee7e379fa513232f.json +30 -0
  141. data/spec/bitcoin/fixtures/tx-62d9a565bd7b5344c5352e3e9e5f40fa4bbd467fa19c87357216ec8777ba1cce.json +64 -0
  142. data/spec/bitcoin/fixtures/tx-6327783a064d4e350c454ad5cd90201aedf65b1fc524e73709c52f0163739190.json +23 -0
  143. data/spec/bitcoin/fixtures/tx-6606c366a487bff9e412d0b6c09c14916319932db5954bf5d8719f43f828a3ba.json +27 -0
  144. data/spec/bitcoin/fixtures/tx-6aaf18b9f1283b939d8e5d40ff5f8a435229f4178372659cc3a0bce4e262bf78.json +28 -0
  145. data/spec/bitcoin/fixtures/tx-6b48bba6f6d2286d7ec0883c0fc3085955090813a4c94980466611c798b868cc.json +64 -0
  146. data/spec/bitcoin/fixtures/tx-70cfbc6690f9ab46712db44e3079ac227962b2771a9341d4233d898b521619ef.json +40 -0
  147. data/spec/bitcoin/fixtures/tx-7a1a9db42f065f75110fcdb1bc415549c8ef7670417ba1d35a67f1b8adc562c1.json +64 -0
  148. data/spec/bitcoin/fixtures/tx-9a768fc7d0c4bdc86e25154357ef7c0063ca21310e5740a2f12f90b7455184a7.json +64 -0
  149. data/spec/bitcoin/fixtures/tx-9cad8d523a0694f2509d092c39cebc8046adae62b4e4297102d568191d9478d8.json +64 -0
  150. data/spec/bitcoin/fixtures/tx-9e052eb694bd7e15906433f064dff0161a12fd325c1124537766377004023c6f.json +64 -0
  151. data/spec/bitcoin/fixtures/tx-9fb65b7304aaa77ac9580823c2c06b259cc42591e5cce66d76a81b6f51cc5c28.json +23 -0
  152. data/spec/bitcoin/fixtures/tx-a6ce7081addade7676cd2af75c4129eba6bf5e179a19c40c7d4cf6a5fe595954.json +30 -0
  153. data/spec/bitcoin/fixtures/tx-a955032f4d6b0c9bfe8cad8f00a8933790b9c1dc28c82e0f48e75b35da0e4944.json +23 -0
  154. data/spec/bitcoin/fixtures/tx-aab7ef280abbb9cc6fbaf524d2645c3daf4fcca2b3f53370e618d9cedf65f1f8.json +23 -0
  155. data/spec/bitcoin/fixtures/tx-ab9805c6d57d7070d9a42c5176e47bb705023e6b67249fb6760880548298e742.json +27 -0
  156. data/spec/bitcoin/fixtures/tx-ad4bcf3241e5d2ad140564e20db3567d41594cf4c2012433fe46a2b70e0d87b8.json +64 -0
  157. data/spec/bitcoin/fixtures/tx-b5b598de91787439afd5938116654e0b16b7a0d0f82742ba37564219c5afcbf9.json +27 -0
  158. data/spec/bitcoin/fixtures/tx-b8fd633e7713a43d5ac87266adc78444669b987a56b3a65fb92d58c2c4b0e84d.json +28 -0
  159. data/spec/bitcoin/fixtures/tx-bbca0628c42cb8bf7c3f4b2ad688fa56da5308dd2a10255da89fb1f46e6e413d.json +36 -0
  160. data/spec/bitcoin/fixtures/tx-bc7fd132fcf817918334822ee6d9bd95c889099c96e07ca2c1eb2cc70db63224.json +23 -0
  161. data/spec/bitcoin/fixtures/tx-c192b74844e4837a34c4a5a97b438f1c111405b01b99e2d12b7c96d07fc74c04.json +28 -0
  162. data/spec/bitcoin/fixtures/tx-d3d77d63709e47d9ef58f0b557800115a6b676c6a423012fbb96f45d8fcef830.json +28 -0
  163. data/spec/bitcoin/fixtures/tx-e335562f7e297aadeed88e5954bc4eeb8dc00b31d829eedb232e39d672b0c009.json +406 -0
  164. data/spec/bitcoin/fixtures/tx-eb3b82c0884e3efa6d8b0be55b4915eb20be124c9766245bcc7f34fdac32bccb.json +35 -0
  165. data/spec/bitcoin/fixtures/tx-fee1b9b85531c8fb6cd7831f83490c7f2aa768b6eefe29854ef5e89ce7b9ecb1.json +64 -0
  166. data/spec/bitcoin/fixtures/txdp-1.txt +32 -0
  167. data/spec/bitcoin/fixtures/txdp-2-signed.txt +19 -0
  168. data/spec/bitcoin/fixtures/txdp-2-unsigned.txt +14 -0
  169. data/spec/bitcoin/fixtures/txscript-invalid-too-many-sigops-followed-by-invalid-pushdata.bin +1 -0
  170. data/spec/bitcoin/helpers/fake_blockchain.rb +183 -0
  171. data/spec/bitcoin/key_spec.rb +326 -0
  172. data/spec/bitcoin/network_spec.rb +50 -0
  173. data/spec/bitcoin/performance/storage_spec.rb +41 -0
  174. data/spec/bitcoin/protocol/addr_spec.rb +82 -0
  175. data/spec/bitcoin/protocol/alert_spec.rb +22 -0
  176. data/spec/bitcoin/protocol/aux_pow_spec.rb +45 -0
  177. data/spec/bitcoin/protocol/bip143_spec.rb +116 -0
  178. data/spec/bitcoin/protocol/block_spec.rb +208 -0
  179. data/spec/bitcoin/protocol/getblocks_spec.rb +32 -0
  180. data/spec/bitcoin/protocol/inv_spec.rb +134 -0
  181. data/spec/bitcoin/protocol/notfound_spec.rb +31 -0
  182. data/spec/bitcoin/protocol/parser_spec.rb +50 -0
  183. data/spec/bitcoin/protocol/partial_merkle_tree_spec.rb +38 -0
  184. data/spec/bitcoin/protocol/ping_spec.rb +51 -0
  185. data/spec/bitcoin/protocol/reject.rb +17 -0
  186. data/spec/bitcoin/protocol/tx_spec.rb +894 -0
  187. data/spec/bitcoin/protocol/txin_spec.rb +45 -0
  188. data/spec/bitcoin/protocol/txout_spec.rb +27 -0
  189. data/spec/bitcoin/protocol/version_spec.rb +110 -0
  190. data/spec/bitcoin/script/opcodes_spec.rb +773 -0
  191. data/spec/bitcoin/script/script_spec.rb +971 -0
  192. data/spec/bitcoin/secp256k1_spec.rb +78 -0
  193. data/spec/bitcoin/spec_helper.rb +108 -0
  194. data/spec/bitcoin/trezor/mnemonic_spec.rb +161 -0
  195. metadata +237 -0
@@ -0,0 +1,64 @@
1
+ {
2
+ "hash": "1a4f3b9dc4494aeedeb39f30dd37e60541b2abe3ed4977992017cc0ad4f44956",
3
+ "ver": 1,
4
+ "vin_sz": 1,
5
+ "vout_sz": 11,
6
+ "lock_time": 0,
7
+ "size": 387,
8
+ "in": [
9
+ {
10
+ "prev_out": {
11
+ "hash": "ef986dec204ef44d0b100f8506379127d5d031517c10be30ea8e2aa4453b1794",
12
+ "n": 0
13
+ },
14
+ "scriptSig": "304402202caf4e621a477d119d9979e546d6fc039aeea0df314a9cfde4364de9cba507a002207749aba0f7f8dab09eb4dfde256623e2b412e888b561fced70d94568ecdd302301 04eb719bacfed45e78310f7ebe092a7ff5dc38662bd37887ee880910e15f3169e42dc88a921827044894f8fe0b4605c1c98a5fa78dd9da602493846e6c9f563e3d"
15
+ }
16
+ ],
17
+ "out": [
18
+ {
19
+ "value": "0.02100000",
20
+ "scriptPubKey": "OP_HASH160 4c 0:1:14 c286a1af0947f58d1ad787385b1c2c4a976f9e71 OP_EQUAL"
21
+ },
22
+ {
23
+ "value": "0.04100000",
24
+ "scriptPubKey": "OP_IF 50 OP_ENDIF 1"
25
+ },
26
+ {
27
+ "value": "0.05100000",
28
+ "scriptPubKey": "OP_NOTIF OP_IF 1 OP_ELSE 0 OP_ENDIF OP_ENDIF"
29
+ },
30
+ {
31
+ "value": "0.07100000",
32
+ "scriptPubKey": "OP_1NEGATE OP_NUMEQUAL"
33
+ },
34
+ {
35
+ "value": "0.10100000",
36
+ "scriptPubKey": "OP_NUMNOTEQUAL"
37
+ },
38
+ {
39
+ "value": "0.08100000",
40
+ "scriptPubKey": "OP_NOP1 OP_NOP2 OP_NOP3 OP_NOP4 OP_NOP5 OP_NOP6 OP_NOP7 OP_NOP8 OP_NOP9 OP_NOP10 1 OP_EQUAL"
41
+ },
42
+ {
43
+ "value": "0.01100000",
44
+ "scriptPubKey": "OP_ADD 0:1:15 OP_EQUAL"
45
+ },
46
+ {
47
+ "value": "0.03100000",
48
+ "scriptPubKey": "1 OP_PICK 0:1:15 OP_EQUALVERIFY OP_DEPTH 3 OP_EQUAL"
49
+ },
50
+ {
51
+ "value": "0.09100000",
52
+ "scriptPubKey": "OP_IF OP_VER OP_ELSE 1 OP_ENDIF"
53
+ },
54
+ {
55
+ "value": "48.88000000",
56
+ "scriptPubKey": "OP_DUP OP_HASH160 c54cc5e7985aef373ecc88dc60dfb01f4bceaee3 OP_EQUALVERIFY OP_CHECKSIG"
57
+ },
58
+ {
59
+ "value": "0.06100000",
60
+ "scriptPubKey": "OP_SIZE 2 OP_EQUAL"
61
+ }
62
+ ],
63
+ "nid": "5a4a80bc4f86477f9fdbc08dba858dc8fb93032cac2504c3c185b4358b464233"
64
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "hash": "1f9191dcf2b1844ca28c6ef4b969e1d5fab70a5e3c56b7007949e55851cb0c4f",
3
+ "ver": 1,
4
+ "vin_sz": 1,
5
+ "vout_sz": 11,
6
+ "lock_time": 0,
7
+ "size": 399,
8
+ "in": [
9
+ {
10
+ "prev_out": {
11
+ "hash": "345bed8785c3282a264ffb0dbee61cde54854f10e16f1b3e75b7f2d9f62946f2",
12
+ "n": 7
13
+ },
14
+ "scriptSig": "304402205da820c6cd642dce9d7c5f653c0faf5df9cd5b4b15f3f31a519c3a85bfb0897a02201f300d59950c8cebdaf50eb42c86877e5643507d31ebb452697449efb3c1577c01 0497b2fddf3194d80fcc4aea90f864d6bf5fd75f5e34333955f00f92a6b4d3c28378efbd0ffe7358c983d1006bcbd1ae8948d52e07389fb099de6fc898ee591dd0"
15
+ }
16
+ ],
17
+ "out": [
18
+ {
19
+ "value": "48.32000000",
20
+ "scriptPubKey": "OP_DUP OP_HASH160 8b07e01aadf83afe16e5ba3a0b7f8b82b82f4d2d OP_EQUALVERIFY OP_CHECKSIG"
21
+ },
22
+ {
23
+ "value": "0.02100000",
24
+ "scriptPubKey": "OP_SHA1 0:1:14 da39a3ee5e6b4b0d3255bfef95601890afd80709 OP_EQUAL"
25
+ },
26
+ {
27
+ "value": "0.05100000",
28
+ "scriptPubKey": "OP_IF d1 OP_ELSE 1 OP_ENDIF"
29
+ },
30
+ {
31
+ "value": "0.04100000",
32
+ "scriptPubKey": "OP_DUP OP_IF OP_ELSE OP_ENDIF"
33
+ },
34
+ {
35
+ "value": "0.01100000",
36
+ "scriptPubKey": "OP_2OVER OP_ADD OP_ADD 8 OP_EQUALVERIFY OP_ADD OP_ADD 6 OP_EQUAL"
37
+ },
38
+ {
39
+ "value": "0.07100000",
40
+ "scriptPubKey": "6e OP_EQUAL"
41
+ },
42
+ {
43
+ "value": "0.10100000",
44
+ "scriptPubKey": "5f OP_ADD 60 OP_EQUAL"
45
+ },
46
+ {
47
+ "value": "0.08100000",
48
+ "scriptPubKey": "OP_NUMNOTEQUAL"
49
+ },
50
+ {
51
+ "value": "0.03100000",
52
+ "scriptPubKey": "82 OP_EQUAL"
53
+ },
54
+ {
55
+ "value": "0.09100000",
56
+ "scriptPubKey": "OP_2DUP OP_ROT OP_EQUALVERIFY OP_EQUAL"
57
+ },
58
+ {
59
+ "value": "0.06100000",
60
+ "scriptPubKey": "OP_RIPEMD160 0:1:14 9c1185a5c5e9fc54612808977ee8f548b2258d31 OP_EQUAL"
61
+ }
62
+ ],
63
+ "nid": "5f1d20663b58b4199722a932ed47a084e225a61a5c9927c78208bb2c9698481d"
64
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "hash": "22cd5fef23684d7b304e119bedffde6f54538d3d54a5bfa237e20dc2d9b4b5ad",
3
+ "ver": 1,
4
+ "vin_sz": 1,
5
+ "vout_sz": 11,
6
+ "lock_time": 0,
7
+ "size": 403,
8
+ "in": [
9
+ {
10
+ "prev_out": {
11
+ "hash": "98a306565bc5eed3cc539af8b0c322dc68370abe1a873b6318b11af790861c5e",
12
+ "n": 0
13
+ },
14
+ "scriptSig": "304502203e639091fe9c9fb1bc0ae4c64eaf2c427ebd1f02ae4cdd6b592599e2d2125885022100ecff2eac52adbc980aae9bcddb0db84685214cbcd15b48751598dac40db0b9d201 04423e368d4905d08f93f90ba754c3772047e2b392b4230f424ecdfd5b8637ea03d70378828383a1711d13f4cbb202ee2c496a57ac7cf796caaf4f15f28cff78e9"
15
+ }
16
+ ],
17
+ "out": [
18
+ {
19
+ "value": "18.78850000",
20
+ "scriptPubKey": "OP_DUP OP_HASH160 6fbaab8eccc0c8b89211e423ebd5c794041316db OP_EQUALVERIFY OP_CHECKSIG"
21
+ },
22
+ {
23
+ "value": "0.01100000",
24
+ "scriptPubKey": "16 OP_EQUAL"
25
+ },
26
+ {
27
+ "value": "0.09100000",
28
+ "scriptPubKey": "OP_ROT OP_ROT OP_ROT 0:1:14 OP_EQUAL"
29
+ },
30
+ {
31
+ "value": "0.03100000",
32
+ "scriptPubKey": "OP_SIZE 1 OP_EQUAL"
33
+ },
34
+ {
35
+ "value": "0.04100000",
36
+ "scriptPubKey": "OP_IF ee OP_ELSE 1 OP_ENDIF"
37
+ },
38
+ {
39
+ "value": "0.02100000",
40
+ "scriptPubKey": "OP_SHA256 20 ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb OP_EQUAL"
41
+ },
42
+ {
43
+ "value": "0.08100000",
44
+ "scriptPubKey": "OP_LESSTHAN"
45
+ },
46
+ {
47
+ "value": "0.06100000",
48
+ "scriptPubKey": "OP_GREATERTHANOREQUAL"
49
+ },
50
+ {
51
+ "value": "0.07100000",
52
+ "scriptPubKey": "OP_2DUP OP_ROT OP_EQUALVERIFY OP_EQUAL"
53
+ },
54
+ {
55
+ "value": "0.10100000",
56
+ "scriptPubKey": "OP_RIPEMD160 0:1:14 9c1185a5c5e9fc54612808977ee8f548b2258d31 OP_EQUAL"
57
+ },
58
+ {
59
+ "value": "0.05100000",
60
+ "scriptPubKey": "OP_IF 1 OP_ELSE OP_ENDIF"
61
+ }
62
+ ],
63
+ "nid": "4f8cab22eeb080b8d54229be4a60a14db6498e9b2f6eb066a5808afdb10e41c9"
64
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "hash": "28204cad1d7fc1d199e8ef4fa22f182de6258a3eaafe1bbe56ebdcacd3069a5f",
3
+ "ver": 1,
4
+ "vin_sz": 2,
5
+ "vout_sz": 2,
6
+ "lock_time": 0,
7
+ "size": 389,
8
+ "in": [
9
+ {
10
+ "prev_out": {
11
+ "hash": "35288d269cee1941eaebb2ea85e32b42cdb2b04284a56d8b14dcc3f5c65d6055",
12
+ "n": 0
13
+ },
14
+ "scriptSig": "3045022100aa46504baa86df8a33b1192b1b9367b4d729dc41e389f2c04f3e5c7f0559aae702205e82253a54bf5c4f65b7428551554b2045167d6d206dfe6a2e198127d3f7df1501"
15
+ },
16
+ {
17
+ "prev_out": {
18
+ "hash": "35288d269cee1941eaebb2ea85e32b42cdb2b04284a56d8b14dcc3f5c65d6055",
19
+ "n": 1
20
+ },
21
+ "scriptSig": "304402202329484c35fa9d6bb32a55a70c0982f606ce0e3634b69006138683bcd12cbb6602200c28feb1e2555c3210f1dddb299738b4ff8bbe9667b68cb8764b5ac17b7adf0001"
22
+ }
23
+ ],
24
+ "out": [
25
+ {
26
+ "value": "1.00000000",
27
+ "scriptPubKey": "046a0765b5865641ce08dd39690aade26dfbf5511430ca428a3089261361cef170e3929a68aee3d8d4848b0c5111b0a37b82b86ad559fd2a745b44d8e8d9dfdc0c OP_CHECKSIG"
28
+ },
29
+ {
30
+ "value": "24.00000000",
31
+ "scriptPubKey": "044a656f065871a353f216ca26cef8dde2f03e8c16202d2e8ad769f02032cb86a5eb5e56842e92e19141d60a01928f8dd2c875a390f67c1f6c94cfc617c0ea45af OP_CHECKSIG"
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "hash": "2958fb00b4fd6fe0353503b886eb9a193d502f4fd5fc042d5e03216ba918bbd6",
3
+ "ver": 1,
4
+ "vin_sz": 1,
5
+ "vout_sz": 11,
6
+ "lock_time": 0,
7
+ "size": 365,
8
+ "in": [
9
+ {
10
+ "prev_out": {
11
+ "hash": "9cad8d523a0694f2509d092c39cebc8046adae62b4e4297102d568191d9478d8",
12
+ "n": 9
13
+ },
14
+ "scriptSig": "304502207dc88d72a34815cfe9509d10df026949d2c7cd65196fff5b71c0535eedbce2a8022100b0bdcdbe0a56e2fa79a172f197b54dc7cf9e8a170d664d0932343157f5d0b79a01 043aa705abec76aa33c5190822c37d46eff13473d393b799afabcd9bdba411ba9c5ff523d23ad27a68217f5db5c12a5ef6730ac105061774ec87552d5bff219b41"
15
+ }
16
+ ],
17
+ "out": [
18
+ {
19
+ "value": "0.04100000",
20
+ "scriptPubKey": "1 OP_EQUAL"
21
+ },
22
+ {
23
+ "value": "0.09100000",
24
+ "scriptPubKey": "OP_DUP OP_HASH256 OP_SWAP OP_SHA256 OP_SHA256 OP_EQUAL"
25
+ },
26
+ {
27
+ "value": "0.07100000",
28
+ "scriptPubKey": "OP_NOTIF OP_IF 1 OP_ELSE 0 OP_ENDIF OP_ENDIF"
29
+ },
30
+ {
31
+ "value": "0.01100000",
32
+ "scriptPubKey": "OP_WITHIN"
33
+ },
34
+ {
35
+ "value": "0.05100000",
36
+ "scriptPubKey": "OP_LESSTHANOREQUAL"
37
+ },
38
+ {
39
+ "value": "0.03100000",
40
+ "scriptPubKey": "OP_LESSTHAN OP_NOT"
41
+ },
42
+ {
43
+ "value": "5.98700000",
44
+ "scriptPubKey": "OP_DUP OP_HASH160 6958bbdb14ee35624fcb70359c7b0157647e51e3 OP_EQUALVERIFY OP_CHECKSIG"
45
+ },
46
+ {
47
+ "value": "0.02100000",
48
+ "scriptPubKey": "OP_2DUP OP_ROT OP_EQUALVERIFY OP_EQUAL"
49
+ },
50
+ {
51
+ "value": "0.08100000",
52
+ "scriptPubKey": "OP_RIPEMD160 0:1:14 9c1185a5c5e9fc54612808977ee8f548b2258d31 OP_EQUAL"
53
+ },
54
+ {
55
+ "value": "0.10100000",
56
+ "scriptPubKey": "OP_GREATERTHANOREQUAL"
57
+ },
58
+ {
59
+ "value": "0.06100000",
60
+ "scriptPubKey": "0 OP_EQUAL"
61
+ }
62
+ ],
63
+ "nid": "9907813ab55c5fb2512452557aa77781c2423f0d4aa7c672bd99cc7541a8dbf5"
64
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "hash": "29f277145749ad6efbed3ae6ce301f8d33c585ec26b7c044ad93c2f866e9e942",
3
+ "ver": 1,
4
+ "vin_sz": 1,
5
+ "vout_sz": 11,
6
+ "lock_time": 0,
7
+ "size": 409,
8
+ "in": [
9
+ {
10
+ "prev_out": {
11
+ "hash": "0021faeb4b27421d4163a52fe0d6d31de76ca7602e2e64480e687521fa8010cd",
12
+ "n": 0
13
+ },
14
+ "scriptSig": "3045022100d9255664ff7c16357af0a861ba9371637e80e8c079f4fd346503641df4b4479202205d0e2fc025c260cf40587558d7621a34dbd2b040398033587f9e997fee8b008101 04de8b40d5bb41493f63a42f3785cfcba0e1f1984ca8830f37e73b356c787943a8f47dba325367b0a8c13a6fc36e5db71c63d34821b0f783a0cf66c44bcdd92720"
15
+ }
16
+ ],
17
+ "out": [
18
+ {
19
+ "value": "0.03100000",
20
+ "scriptPubKey": "OP_SHA1 0:1:14 da39a3ee5e6b4b0d3255bfef95601890afd80709 OP_EQUAL"
21
+ },
22
+ {
23
+ "value": "0.09100000",
24
+ "scriptPubKey": "OP_IF d1 OP_ELSE 1 OP_ENDIF"
25
+ },
26
+ {
27
+ "value": "49.33000000",
28
+ "scriptPubKey": "OP_DUP OP_HASH160 3b55d15bf635d837f3625a2e85cb45bb7b4a00c6 OP_EQUALVERIFY OP_CHECKSIG"
29
+ },
30
+ {
31
+ "value": "0.08100000",
32
+ "scriptPubKey": "OP_DUP OP_HASH256 OP_SWAP OP_SHA256 OP_SHA256 OP_EQUAL"
33
+ },
34
+ {
35
+ "value": "0.04100000",
36
+ "scriptPubKey": "0 OP_ROLL 0:1:14 OP_EQUALVERIFY OP_DEPTH 2 OP_EQUAL"
37
+ },
38
+ {
39
+ "value": "0.07100000",
40
+ "scriptPubKey": "676176696e5f7761735f686572652720455155414c5645524946592031312045515541 OP_EQUALVERIFY 11 OP_EQUAL"
41
+ },
42
+ {
43
+ "value": "0.06100000",
44
+ "scriptPubKey": "OP_IF OP_ELSE 1 OP_ENDIF"
45
+ },
46
+ {
47
+ "value": "0.05100000",
48
+ "scriptPubKey": "OP_EQUAL"
49
+ },
50
+ {
51
+ "value": "0.01100000",
52
+ "scriptPubKey": "OP_DUP OP_IF OP_ENDIF"
53
+ },
54
+ {
55
+ "value": "0.10100000",
56
+ "scriptPubKey": "OP_NIP"
57
+ },
58
+ {
59
+ "value": "0.02100000",
60
+ "scriptPubKey": "OP_1NEGATE OP_NUMEQUAL"
61
+ }
62
+ ],
63
+ "nid": "6aa6ab41098f1504fae56c04254394d6add72f5059635d86d6621615a1c13ccc"
64
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "hash": "2c5e5376c20e9cc78d0fb771730e5d840cc2096eff0ef045b599fe92475ace1c",
3
+ "ver": 1,
4
+ "vin_sz": 1,
5
+ "vout_sz": 2,
6
+ "lock_time": 0,
7
+ "size": 758,
8
+ "in": [
9
+ {
10
+ "prev_out": {
11
+ "hash": "9a768fc7d0c4bdc86e25154357ef7c0063ca21310e5740a2f12f90b7455184a7",
12
+ "n": 8
13
+ },
14
+ "scriptSig": "304502207e2cd2a5ada86063b8b47cd007e50f7c9dbe525a2c241e9331301dfecf1b60290221008ae20033c8a8628946e7e4aa193973e88ac04b4b8e7a036eb1cfc8c99a8b56ff01 04c16375c12e8ec002f71e4a1da12167e8d007dd622d5faf48de110082be2d16b994e0169ead57275ae35e499d67251dcb4f0720e1eb6b8a8a76f400cb42c92cee"
15
+ }
16
+ ],
17
+ "out": [
18
+ {
19
+ "value": "2.41650000",
20
+ "scriptPubKey": "OP_DUP OP_HASH160 36eac5a6ec4bd66cddbfec3a2c2d7238f0c60e0c OP_EQUALVERIFY OP_CHECKSIG"
21
+ },
22
+ {
23
+ "value": "1.00000000",
24
+ "scriptPubKey": "62626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262"
25
+ }
26
+ ],
27
+ "nid": "f0bfbd2adc1e049ca6acaca3ad88007ef140ccc1aa383ea9da864516921bea9c"
28
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "hash":"2c63aa814701cef5dbd4bbaddab3fea9117028f2434dddcdab8339141e9b14d1",
3
+ "ver":1,
4
+ "vin_sz":2,
5
+ "vout_sz":1,
6
+ "lock_time":0,
7
+ "size":354,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"5f6d73ed72c366f050eba67dd6bade5e5b3b892c887bf0046a42bde5f16c192f",
12
+ "n":0
13
+ },
14
+ "scriptSig":"304402201f81ac31b52cb4b1ceb83f97d18476f7339b74f4eecd1a32c251d4c3cccfffa402203c9143c18810ce072969e4132fdab91408816c96b423b2be38eec8a3582ade3601 02aa5a2b334bd8f135f11bc5c477bf6307ff98ed52d3ed10f857d5c89adf5b02be"
15
+ },
16
+ {
17
+ "prev_out":{
18
+ "hash":"19aa42fee0fa57c45d3b16488198b27caaacc4ff5794510d0c17f173f05587ff",
19
+ "n":0
20
+ },
21
+ "scriptSig":"0 3045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303 304402206da827fb26e569eb740641f9c1a7121ee59141703cbe0f903a22cc7d9a7ec7ac02204729f989b5348b3669ab020b8c4af01acc4deaba7c0d9f8fa9e06b2106cbbfeb01"
22
+ }
23
+ ],
24
+ "out":[
25
+ {
26
+ "value":"0.00000000",
27
+ "scriptPubKey":"OP_RETURN"
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "hash":"313897799b1e37e9ecae15010e56156dddde4e683c96b0e713af95272c38aee0",
3
+ "ver":1,
4
+ "vin_sz":2,
5
+ "vout_sz":1,
6
+ "lock_time":0,
7
+ "size":417,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"95afe351496b28d7c4bc8167157506a0f9cc5cc14ace8da1b05439403ec48d47",
12
+ "n":0
13
+ },
14
+ "scriptSig":"0 304502206904f2fc30e49ece1c7b59189b82f057db8b542047bfad25f9508a4fcc7f4a9b022100fba908458cbe9dce2c8e8f6f04115904c7b1c73894dc99474b15f21caaaa4bbf01 3045022100f789401c467c8d69afb335baf5f129145cb32a90e09d8320a71165d9adf2ca920220421ec3d4bd92ae1a2708c7af507e4efef0d7c2f0ed2f8be98ac19d1c394ea08a01"
15
+ },
16
+ {
17
+ "prev_out":{
18
+ "hash":"10b433a227ca8f7b75c98d3df7e1cbd529cbec613a1546bc09cc67461e0500f0",
19
+ "n":0
20
+ },
21
+ "scriptSig":"0 304402205dd25d59494cecd5cbc79ca14bbb41424221f01cc02d5948e9a499567a3be246022047785bf632f8c6719df5736908502051d63b259f5db1359ac2b3c4c57569b88e01 3045022100e08e98c3cad884603224441d61300e9f11f3826e52d58a3d34e01be5f0286f4402205f85d91d1cff6272f10c41de27e30a3db8cb9b176f011635bb4d11687ebe06dd01"
22
+ }
23
+ ],
24
+ "out":[
25
+ {
26
+ "value":"0.06990000",
27
+ "scriptPubKey":"OP_HASH160 47f070cd693c5fcc481f181caeb5515f7928c6ca OP_EQUAL"
28
+ }
29
+ ]
30
+ }