monacoin-ruby 0.1.2

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 (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
+ }