bitcoin-ruby 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. data/.gitignore +4 -1
  2. data/Gemfile +21 -0
  3. data/README.rdoc +85 -25
  4. data/Rakefile +7 -3
  5. data/bin/bitcoin_node +39 -42
  6. data/bin/bitcoin_shell +1 -0
  7. data/bin/bitcoin_wallet +129 -53
  8. data/bitcoin-ruby.gemspec +4 -7
  9. data/concept-examples/blockchain-pow.rb +1 -1
  10. data/doc/CONFIG.rdoc +5 -5
  11. data/doc/EXAMPLES.rdoc +9 -5
  12. data/doc/NAMECOIN.rdoc +34 -0
  13. data/doc/NODE.rdoc +147 -10
  14. data/examples/balance.rb +10 -4
  15. data/examples/bbe_verify_tx.rb +7 -2
  16. data/examples/forwarder.rb +73 -0
  17. data/examples/generate_tx.rb +34 -0
  18. data/examples/simple_network_monitor_and_util.rb +187 -0
  19. data/examples/verify_tx.rb +1 -1
  20. data/lib/bitcoin.rb +308 -18
  21. data/lib/bitcoin/builder.rb +62 -36
  22. data/lib/bitcoin/config.rb +2 -0
  23. data/lib/bitcoin/connection.rb +11 -8
  24. data/lib/bitcoin/electrum/mnemonic.rb +162 -0
  25. data/lib/bitcoin/ffi/openssl.rb +187 -21
  26. data/lib/bitcoin/gui/addr_view.rb +2 -0
  27. data/lib/bitcoin/gui/conn_view.rb +2 -0
  28. data/lib/bitcoin/gui/connection.rb +2 -0
  29. data/lib/bitcoin/gui/em_gtk.rb +2 -0
  30. data/lib/bitcoin/gui/gui.rb +2 -0
  31. data/lib/bitcoin/gui/helpers.rb +2 -0
  32. data/lib/bitcoin/gui/tree_view.rb +2 -0
  33. data/lib/bitcoin/gui/tx_view.rb +2 -0
  34. data/lib/bitcoin/key.rb +77 -11
  35. data/lib/bitcoin/litecoin.rb +81 -0
  36. data/lib/bitcoin/logger.rb +20 -1
  37. data/lib/bitcoin/namecoin.rb +279 -0
  38. data/lib/bitcoin/network/command_client.rb +7 -6
  39. data/lib/bitcoin/network/command_handler.rb +229 -43
  40. data/lib/bitcoin/network/connection_handler.rb +182 -70
  41. data/lib/bitcoin/network/node.rb +231 -106
  42. data/lib/bitcoin/protocol.rb +44 -23
  43. data/lib/bitcoin/protocol/address.rb +5 -3
  44. data/lib/bitcoin/protocol/alert.rb +3 -4
  45. data/lib/bitcoin/protocol/aux_pow.rb +123 -0
  46. data/lib/bitcoin/protocol/block.rb +98 -18
  47. data/lib/bitcoin/protocol/handler.rb +6 -5
  48. data/lib/bitcoin/protocol/parser.rb +44 -19
  49. data/lib/bitcoin/protocol/tx.rb +105 -52
  50. data/lib/bitcoin/protocol/txin.rb +39 -19
  51. data/lib/bitcoin/protocol/txout.rb +28 -13
  52. data/lib/bitcoin/protocol/version.rb +16 -7
  53. data/lib/bitcoin/script.rb +579 -122
  54. data/lib/bitcoin/storage/{dummy.rb → dummy/dummy_store.rb} +8 -14
  55. data/lib/bitcoin/storage/models.rb +20 -7
  56. data/lib/bitcoin/storage/{sequel_store/sequel_migrations.rb → sequel/migrations.rb} +22 -7
  57. data/lib/bitcoin/storage/sequel/migrations/001_base_schema.rb +52 -0
  58. data/lib/bitcoin/storage/sequel/migrations/002_tx.rb +50 -0
  59. data/lib/bitcoin/storage/sequel/migrations/003_change_txin_script_sig_to_blob.rb +18 -0
  60. data/lib/bitcoin/storage/sequel/sequel_store.rb +436 -0
  61. data/lib/bitcoin/storage/storage.rb +233 -28
  62. data/lib/bitcoin/storage/utxo/migrations/001_base_schema.rb +52 -0
  63. data/lib/bitcoin/storage/utxo/migrations/002_utxo.rb +18 -0
  64. data/lib/bitcoin/storage/utxo/utxo_store.rb +361 -0
  65. data/lib/bitcoin/validation.rb +369 -0
  66. data/lib/bitcoin/version.rb +1 -1
  67. data/lib/bitcoin/wallet/coinselector.rb +3 -0
  68. data/lib/bitcoin/wallet/keygenerator.rb +3 -1
  69. data/lib/bitcoin/wallet/keystore.rb +6 -2
  70. data/lib/bitcoin/wallet/txdp.rb +6 -4
  71. data/lib/bitcoin/wallet/wallet.rb +54 -16
  72. data/spec/bitcoin/bitcoin_spec.rb +48 -3
  73. data/spec/bitcoin/builder_spec.rb +40 -17
  74. data/spec/bitcoin/fixtures/000000000000056b1a3d84a1e2b33cde8915a4b61c0cae14fca6d3e1490b4f98.json +3697 -0
  75. data/spec/bitcoin/fixtures/03d7e1fa4d5fefa169431f24f7798552861b255cd55d377066fedcd088fb0e99.json +23 -0
  76. data/spec/bitcoin/fixtures/0961c660358478829505e16a1f028757e54b5bbf9758341a7546573738f31429.json +24 -0
  77. data/spec/bitcoin/fixtures/0f24294a1d23efbb49c1765cf443fba7930702752aba6d765870082fe4f13cae.json +37 -0
  78. data/spec/bitcoin/fixtures/315ac7d4c26d69668129cc352851d9389b4a6868f1509c6c8b66bead11e2619f.json +31 -0
  79. data/spec/bitcoin/fixtures/35e2001b428891fefa0bfb73167c7360669d3cbd7b3aa78e7cad125ddfc51131.json +27 -0
  80. data/spec/bitcoin/fixtures/3a17dace09ffb919ed627a93f1873220f4c975c1248558b18d16bce25d38c4b7.json +72 -0
  81. data/spec/bitcoin/fixtures/3e58b7eed0fdb599019af08578effea25c8666bbe8e200845453cacce6314477.json +27 -0
  82. data/spec/bitcoin/fixtures/514c46f0b61714092f15c8dfcb576c9f79b3f959989b98de3944b19d98832b58.json +24 -0
  83. data/spec/bitcoin/fixtures/51bf528ecf3c161e7c021224197dbe84f9a8564212f6207baa014c01a1668e1e.json +30 -0
  84. data/spec/bitcoin/fixtures/69216b8aaa35b76d6613e5f527f4858640d986e1046238583bdad79b35e938dc.json +28 -0
  85. data/spec/bitcoin/fixtures/7208e5edf525f04e705fb3390194e316205b8f995c8c9fcd8c6093abe04fa27d.json +27 -0
  86. data/spec/bitcoin/fixtures/761d8c5210fdfd505f6dff38f740ae3728eb93d7d0971fb433f685d40a4c04f6.json +27 -0
  87. data/spec/bitcoin/fixtures/aea682d68a3ea5e3583e088dcbd699a5d44d4b083f02ad0aaf2598fe1fa4dfd4.json +27 -0
  88. data/spec/bitcoin/fixtures/bd1715f1abfdc62bea3f605bdb461b3ba1f2cca6ec0d73a18a548b7717ca8531.json +34 -0
  89. data/spec/bitcoin/fixtures/block-testnet-0000000000ac85bb2530a05a4214a387e6be02b22d3348abc5e7a5d9c4ce8dab.bin +0 -0
  90. data/spec/bitcoin/fixtures/cd874fa8cb0e2ec2d385735d5e1fd482c4fe648533efb4c50ee53bda58e15ae2.json +24 -0
  91. data/spec/bitcoin/fixtures/ce5fad9b4ef094d8f4937b0707edaf0a6e6ceeaf67d5edbfd51f660eac8f398b.json +41 -0
  92. data/spec/bitcoin/fixtures/f003f0c1193019db2497a675fd05d9f2edddf9b67c59e677c48d3dbd4ed5f00b.json +23 -0
  93. data/spec/bitcoin/fixtures/freicoin-block-000000005d231b285e63af83edae2d8f5e50e70d396468643092b9239fd3be3c.bin +0 -0
  94. data/spec/bitcoin/fixtures/freicoin-block-000000005d231b285e63af83edae2d8f5e50e70d396468643092b9239fd3be3c.json +43 -0
  95. data/spec/bitcoin/fixtures/freicoin-genesis-block-000000005b1e3d23ecfd2dd4a6e1a35238aa0392c0a8528c40df52376d7efe2c.bin +0 -0
  96. data/spec/bitcoin/fixtures/freicoin-genesis-block-000000005b1e3d23ecfd2dd4a6e1a35238aa0392c0a8528c40df52376d7efe2c.json +67 -0
  97. data/spec/bitcoin/fixtures/litecoin-block-80ca095ed10b02e53d769eb6eaf92cd04e9e0759e5be4a8477b42911ba49c78f.bin +0 -0
  98. data/spec/bitcoin/fixtures/litecoin-block-80ca095ed10b02e53d769eb6eaf92cd04e9e0759e5be4a8477b42911ba49c78f.json +39 -0
  99. data/spec/bitcoin/fixtures/litecoin-genesis-block-12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2.bin +0 -0
  100. data/spec/bitcoin/fixtures/litecoin-genesis-block-12a765e31ffd4059bada1e25190f6e98c99d9714d334efa41a195a7e7e04bfe2.json +39 -0
  101. data/spec/bitcoin/fixtures/rawblock-auxpow.bin +0 -0
  102. data/spec/bitcoin/fixtures/tx-313897799b1e37e9ecae15010e56156dddde4e683c96b0e713af95272c38aee0.json +30 -0
  103. data/spec/bitcoin/fixtures/tx-3da75972766f0ad13319b0b461fd16823a731e44f6e9de4eb3c52d6a6fb6c8ae.json +23 -0
  104. data/spec/bitcoin/fixtures/tx-44b833074e671120ba33106877b49e86ece510824b9af477a3853972bcd8d06a.json +30 -0
  105. data/spec/bitcoin/fixtures/tx-d3d77d63709e47d9ef58f0b557800115a6b676c6a423012fbb96f45d8fcef830.json +28 -0
  106. data/spec/bitcoin/key_spec.rb +128 -3
  107. data/spec/bitcoin/namecoin_spec.rb +182 -0
  108. data/spec/bitcoin/network_spec.rb +5 -3
  109. data/spec/bitcoin/node/command_api_spec.rb +376 -0
  110. data/spec/bitcoin/protocol/addr_spec.rb +2 -0
  111. data/spec/bitcoin/protocol/alert_spec.rb +2 -0
  112. data/spec/bitcoin/protocol/aux_pow_spec.rb +44 -0
  113. data/spec/bitcoin/protocol/block_spec.rb +134 -39
  114. data/spec/bitcoin/protocol/getblocks_spec.rb +32 -0
  115. data/spec/bitcoin/protocol/inv_spec.rb +10 -8
  116. data/spec/bitcoin/protocol/notfound_spec.rb +31 -0
  117. data/spec/bitcoin/protocol/ping_spec.rb +2 -0
  118. data/spec/bitcoin/protocol/tx_spec.rb +83 -17
  119. data/spec/bitcoin/protocol/version_spec.rb +7 -5
  120. data/spec/bitcoin/script/opcodes_spec.rb +412 -133
  121. data/spec/bitcoin/script/script_spec.rb +112 -13
  122. data/spec/bitcoin/spec_helper.rb +68 -0
  123. data/spec/bitcoin/storage/reorg_spec.rb +199 -0
  124. data/spec/bitcoin/storage/storage_spec.rb +337 -0
  125. data/spec/bitcoin/storage/validation_spec.rb +261 -0
  126. data/spec/bitcoin/wallet/coinselector_spec.rb +10 -7
  127. data/spec/bitcoin/wallet/keygenerator_spec.rb +2 -0
  128. data/spec/bitcoin/wallet/keystore_spec.rb +2 -0
  129. data/spec/bitcoin/wallet/txdp_spec.rb +2 -0
  130. data/spec/bitcoin/wallet/wallet_spec.rb +91 -58
  131. metadata +105 -51
  132. data/lib/bitcoin/storage/sequel.rb +0 -335
  133. data/spec/bitcoin/fixtures/0d0affb5964abe804ffe85e53f1dbb9f29e406aa3046e2db04fba240e63c7fdd.json +0 -27
  134. data/spec/bitcoin/fixtures/477fff140b363ec2cc51f3a65c0c58eda38f4d41f04a295bbd62babf25e4c590.json +0 -27
  135. data/spec/bitcoin/reorg_spec.rb +0 -129
  136. data/spec/bitcoin/storage_spec.rb +0 -229
@@ -0,0 +1,23 @@
1
+ {
2
+ "hash":"03d7e1fa4d5fefa169431f24f7798552861b255cd55d377066fedcd088fb0e99",
3
+ "ver":1,
4
+ "vin_sz":1,
5
+ "vout_sz":1,
6
+ "lock_time":0,
7
+ "size":151,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"f003f0c1193019db2497a675fd05d9f2edddf9b67c59e677c48d3dbd4ed5f00b",
12
+ "n":0
13
+ },
14
+ "scriptSig":"04e19cb94dab9efa1e4507c17c81d4fdb0fc9d03c01caac970995ca4788f6e3fd3b2eb0efba75a98b1e1a62f9bdcb71430ce066869facb4f1e20b9ee1d1669b356"
15
+ }
16
+ ],
17
+ "out":[
18
+ {
19
+ "value":"0.00950000",
20
+ "scriptPubKey":"OP_DUP OP_HASH160 606f60927e6016b677f092eb8f4f52c1bee18526 OP_EQUALVERIFY OP_CHECKSIG"
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "hash":"0961c660358478829505e16a1f028757e54b5bbf9758341a7546573738f31429",
3
+ "ver":1,
4
+ "vin_sz":1,
5
+ "vout_sz":1,
6
+ "lock_time":0,
7
+ "size":118,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"0000000000000000000000000000000000000000000000000000000000000000",
12
+ "n":4294967295
13
+ },
14
+ "coinbase":"03880703062f503253482f04634d5150081000001300000002072f736c7573682f",
15
+ "sequence":0
16
+ }
17
+ ],
18
+ "out":[
19
+ {
20
+ "value":"50.39342560",
21
+ "scriptPubKey":"OP_DUP OP_HASH160 e8e6ace10f10ce5ed479c7188c9b4061e53aa906 OP_EQUALVERIFY OP_CHECKSIG"
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "hash":"0f24294a1d23efbb49c1765cf443fba7930702752aba6d765870082fe4f13cae",
3
+ "ver":1,
4
+ "vin_sz":3,
5
+ "vout_sz":1,
6
+ "lock_time":0,
7
+ "size":179,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"aea682d68a3ea5e3583e088dcbd699a5d44d4b083f02ad0aaf2598fe1fa4dfd4",
12
+ "n":1
13
+ },
14
+ "scriptSig":"03 03"
15
+ },
16
+ {
17
+ "prev_out":{
18
+ "hash":"9b43e37566a6cbcd305170f33b0dc60b75486615d57c4e348f70e194124e27e2",
19
+ "n":1
20
+ },
21
+ "scriptSig":"03 03"
22
+ },
23
+ {
24
+ "prev_out":{
25
+ "hash":"29237a21b6b7d1350a952c7a76873d6207ceeebc30f10bb1c524d16813101df4",
26
+ "n":0
27
+ },
28
+ "scriptSig":"03 03"
29
+ }
30
+ ],
31
+ "out":[
32
+ {
33
+ "value":"0.02950000",
34
+ "scriptPubKey":"OP_DUP OP_HASH160 29c9743283afd76eed5811788b20b23f9eece007 OP_EQUALVERIFY OP_CHECKSIG"
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "hash":"315ac7d4c26d69668129cc352851d9389b4a6868f1509c6c8b66bead11e2619f",
3
+ "ver":1,
4
+ "confirmations":420,
5
+ "vin_sz":2,
6
+ "vout_sz":1,
7
+ "lock_time":0,
8
+ "size":339,
9
+ "in":[
10
+ {
11
+ "prev_out":{
12
+ "hash":"69216b8aaa35b76d6613e5f527f4858640d986e1046238583bdad79b35e938dc",
13
+ "n":0
14
+ },
15
+ "scriptSig":"304402205d8feeb312478e468d0b514e63e113958d7214fa572acd87079a7f0cc026fc5c02200fa76ea05bf243af6d0f9177f241caf606d01fcfd5e62d6befbca24e569e5c2703 02100a1a9ca2c18932d6577c58f225580184d0e08226d41959874ac963e3c1b2fe"
16
+ },
17
+ {
18
+ "prev_out":{
19
+ "hash":"69216b8aaa35b76d6613e5f527f4858640d986e1046238583bdad79b35e938dc",
20
+ "n":1
21
+ },
22
+ "scriptSig":"30450220087ede38729e6d35e4f515505018e659222031273b7366920f393ee3ab17bc1e022100ca43164b757d1a6d1235f13200d4b5f76dd8fda4ec9fc28546b2df5b1211e8df03 0275983913e60093b767e85597ca9397fb2f418e57f998d6afbbc536116085b1cb"
23
+ }
24
+ ],
25
+ "out":[
26
+ {
27
+ "value":"0.09800000",
28
+ "scriptPubKey":"OP_DUP OP_HASH160 fcc9b36d38cf55d7d5b4ee4dddb6b2c17612f48c OP_EQUALVERIFY OP_CHECKSIG"
29
+ }
30
+ ]
31
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "hash":"35e2001b428891fefa0bfb73167c7360669d3cbd7b3aa78e7cad125ddfc51131",
3
+ "ver":1,
4
+ "vin_sz":1,
5
+ "vout_sz":2,
6
+ "lock_time":0,
7
+ "size":256,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"b34c343779cca5d26335aeccdf20a54480726083c6a552460459b468f1d5082f",
12
+ "n":0
13
+ },
14
+ "scriptSig":"3045022100c3a7ea09dcaa449e3871bfc1ad07b2163c80274e4113cced141c3a8c9ec08144022024f4bf19fcc4e1a52b91ee54a99026fe8104a34cb503284cb428af9d4bfe037701 04a04001e7eac41810b99c73d7894cc214ec8a904dd41e4ffa5b98e630f16c900b222dfeea4b7e16d5153eca873bd1b85759fe8357dbd363279fd7ce78f3d8ee7c"
15
+ }
16
+ ],
17
+ "out":[
18
+ {
19
+ "value":"2.99940000",
20
+ "scriptPubKey":"OP_DUP OP_HASH160 6138f3b82af985f1a6cd25dfe42c2eb20fec3995 OP_EQUALVERIFY OP_CHECKSIG"
21
+ },
22
+ {
23
+ "value":"27.00000000",
24
+ "scriptPubKey":"OP_HASH160 739afa9473a54255fa467fb2d88ae3d9a5dc6202 OP_EQUAL"
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "hash":"3a17dace09ffb919ed627a93f1873220f4c975c1248558b18d16bce25d38c4b7",
3
+ "ver":1,
4
+ "vin_sz":8,
5
+ "vout_sz":1,
6
+ "lock_time":0,
7
+ "size":1490,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"35e2001b428891fefa0bfb73167c7360669d3cbd7b3aa78e7cad125ddfc51131",
12
+ "n":1
13
+ },
14
+ "scriptSig":"0 3044022023141e7e14f0f8502233169eb93cd77c1b978e2bc4b602db5d76038159b789fc02207470293319e1fa8c27f5355105000232797bf52b7e36a2dfc780d489a946f06001 51410426e2961e27da6180eb514b6db7c9a1ec54db293bfa2b3a103902bd38f1e0835c23cb0fe2364893ff11bcd20f21902d64a19eb2cb31d7261c1f623a019b7b494c51ae"
15
+ },
16
+ {
17
+ "prev_out":{
18
+ "hash":"b0ad18e37b76e94d7cdd774486aa021b9ad2ee29c91fb4c23313039c2d5c2967",
19
+ "n":1
20
+ },
21
+ "scriptSig":"3046022100f8118f1a32c8dd6eadc1561902535a8f4ba91534673c0ef32a678c7e88ebe9c1022100a16ba7b4e0967ccf51f2281624d1fd13696e78eb0a085ac42b727635ff1b80e701 04b2e2d940673ff7d4f11156d88e3665560b4b96b3f0beac7032cd14329a918cc7c7eda4e43d4de48affbc6d5e26441d7fc8a3e44206a77088808aa43a26bdb333"
22
+ },
23
+ {
24
+ "prev_out":{
25
+ "hash":"33f10251d50139481005549a673cad2ba26a3760898682c5c6175f614d75ee7a",
26
+ "n":1
27
+ },
28
+ "scriptSig":"3045022100d909d1547f0f240fb98c45f94fde2b3c8b24e98d5a64fcba2fc265a0243ef04902207b3f2def8387502fe333e113ef1e35a9ef501bd484a83a55a095fcd7e5bfa65501 04b2e2d940673ff7d4f11156d88e3665560b4b96b3f0beac7032cd14329a918cc7c7eda4e43d4de48affbc6d5e26441d7fc8a3e44206a77088808aa43a26bdb333"
29
+ },
30
+ {
31
+ "prev_out":{
32
+ "hash":"0aabaf44e1943ca5adf99001e4a43ac1b59014346a1f8f8840aec633c1457499",
33
+ "n":1
34
+ },
35
+ "scriptSig":"30460221009d4c348b69b882575906c026f3686184d6d8ca24ec0c3a4e738c90f1dd3231bb022100d73c34f74a313ee68f387de0db39db82ff81987a6607887f624dbe3bffdca0fb01 04b2e2d940673ff7d4f11156d88e3665560b4b96b3f0beac7032cd14329a918cc7c7eda4e43d4de48affbc6d5e26441d7fc8a3e44206a77088808aa43a26bdb333"
36
+ },
37
+ {
38
+ "prev_out":{
39
+ "hash":"76e0d4e410c873d5195c466f4abf6cef2cea6f24668b8f132db093d15d7574ba",
40
+ "n":1
41
+ },
42
+ "scriptSig":"3045022013293ab6f72b0216f3c9c570a3ca70ae972547f8102ec1339d89df05c76b2353022100bf2ad4ade2ef537e00461299c710c1e9803acd1a8b379cf9b1d145adedaa837501 04b2e2d940673ff7d4f11156d88e3665560b4b96b3f0beac7032cd14329a918cc7c7eda4e43d4de48affbc6d5e26441d7fc8a3e44206a77088808aa43a26bdb333"
43
+ },
44
+ {
45
+ "prev_out":{
46
+ "hash":"4a27eede9cbe8c7cfb7313c0a01b34ffcf3a1f5694ea8de36e7d28df27617dea",
47
+ "n":1
48
+ },
49
+ "scriptSig":"304502204c47cdcb44240b989e01615332550599b61d3e0dcda5db7c89650a9b54e172c7022100abb31dc91fe49633eebf026c0d83515f52c337ff2edb33e78381177581fe0bdb01 0461db01b9d9d75bb75add1a048174d8909b668d3d30e930e70dccd88efdd0c00a08f1091754ace7214e021c57fcf9b214893c7ffc8d78aa632d4f0543a04f1173"
50
+ },
51
+ {
52
+ "prev_out":{
53
+ "hash":"030df4a039ee219ebaf0d5549271f74faa82033c3e35b9045f5bd57df15887fd",
54
+ "n":1
55
+ },
56
+ "scriptSig":"3045022100e904b3213d9bc9c5322e722f277fdd308ade1281faa53086d0f6bfd244e0bb1302205524154b0f83116593f4bf7478688b26d1f18e863caf0fd0b0afa133a6d9679101 0426fea76025e36f9067931c9d0999e938758b6a8b74e3d129e8df2ada71199c1929fe300496f7238cad195052a7b53167bbfb917aef6ab6ab17d7ffb6e1a19721"
57
+ },
58
+ {
59
+ "prev_out":{
60
+ "hash":"901276b3a94186106efba72484734ca9087fe25a592e35bd612e4ef8b2bb7bdc",
61
+ "n":1
62
+ },
63
+ "scriptSig":"3045022100d745a3b80290c1c314ca4aa8fe9a5f516931f990511dc4862c19bd4edcef1a1e02200ec167888d9afa4d66a92d8b2a3707aeae0309c568de397f9d46a0a0c9d5e7ed01 04b2e2d940673ff7d4f11156d88e3665560b4b96b3f0beac7032cd14329a918cc7c7eda4e43d4de48affbc6d5e26441d7fc8a3e44206a77088808aa43a26bdb333"
64
+ }
65
+ ],
66
+ "out":[
67
+ {
68
+ "value":"200.00000000",
69
+ "scriptPubKey":"OP_DUP OP_HASH160 7e4dad6968120fdacd7d51c249d6d94a1d367df5 OP_EQUALVERIFY OP_CHECKSIG"
70
+ }
71
+ ]
72
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "hash":"3e58b7eed0fdb599019af08578effea25c8666bbe8e200845453cacce6314477",
3
+ "ver":1,
4
+ "vin_sz":1,
5
+ "vout_sz":2,
6
+ "lock_time":0,
7
+ "size":233,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"3f9de661c686c69837eae57db63e21228a043f1a1503520185a697bf0d5f2655",
12
+ "n":0
13
+ },
14
+ "scriptSig":"3046022100c853cd8a9cb3cde7902bb933fa6d02c0838ea9edfdaf8be983438967875bfdd50221008c51b6869145fa9cfc5a55573d5bfcf8ac1f8144ee065d81d0b0f8958c0b30ae01"
15
+ }
16
+ ],
17
+ "out":[
18
+ {
19
+ "value":"7.00879317",
20
+ "scriptPubKey":"04a39b9e4fbd213ef24bb9be69de4a118dd0644082e47c01fd9159d38637b83fbcdc115a5d6e970586a012d1cfe3e3a8b1a3d04e763bdc5a071c0e827c0bd834a5 OP_CHECKSIG"
21
+ },
22
+ {
23
+ "value":"0.26000000",
24
+ "scriptPubKey":"OP_HASH160 d0c15a7d41500976056b3345f542d8c944077c8a OP_EQUAL"
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "hash":"514c46f0b61714092f15c8dfcb576c9f79b3f959989b98de3944b19d98832b58",
3
+ "ver":1,
4
+ "confirmations":2685,
5
+ "vin_sz":1,
6
+ "vout_sz":1,
7
+ "lock_time":0,
8
+ "size":203,
9
+ "in":[
10
+ {
11
+ "prev_out":{
12
+ "hash":"b06ce4af5989479e92e647806f47318991204054ae3e831e406b84f736b4c2da",
13
+ "n":0
14
+ },
15
+ "scriptSig":"3044022032a6d03ce66da7276c84d91aa43dd24de4e7cdee2d3cc5647a2db0e7454b842202202a0e333adcd6eb3c7cfeec34f2e1f5972e61a35d1e89d28eae218f0493c66aa201 0361d19e52c6133aa55c08ff10ddb5adb66c26e3be56c259b137adb8e533b568d6"
16
+ }
17
+ ],
18
+ "out":[
19
+ {
20
+ "value":"0.10000000",
21
+ "scriptPubKey":"0378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71 OP_SWAP OP_1ADD OP_CHECKMULTISIG"
22
+ }
23
+ ]
24
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "hash":"51bf528ecf3c161e7c021224197dbe84f9a8564212f6207baa014c01a1668e1e",
3
+ "ver":1,
4
+ "vin_sz":2,
5
+ "vout_sz":1,
6
+ "lock_time":0,
7
+ "size":341,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"761d8c5210fdfd505f6dff38f740ae3728eb93d7d0971fb433f685d40a4c04f6",
12
+ "n":1
13
+ },
14
+ "scriptSig":"304502205853c7f1395785bfabb03c57e962eb076ff24d8e4e573b04db13b45ed3ed6ee20221009dc82ae43be9d4b1fe2847754e1d36dad48ba801817d485dc529afc516c2ddb481 0305584980367b321fad7f1c1f4d5d723d0ac80c1d80c8ba12343965b48364537a"
15
+ },
16
+ {
17
+ "prev_out":{
18
+ "hash":"40cd1ee71808037f2ae01faef88de4788cbcbe257e319ed1debc6966dff06a9c",
19
+ "n":1
20
+ },
21
+ "scriptSig":"30460221008269c9d7ba0a7e730dd16f4082d29e3684fb7463ba064fd093afc170ad6e0388022100bc6d76373916a3ff6ee41b2c752001fda3c9e048bcff0d81d05b39ff0f4217b281 03aae303d825421545c5bc7ccd5ac87dd5add3bcc3a432ba7aa2f2661699f9f659"
22
+ }
23
+ ],
24
+ "out":[
25
+ {
26
+ "value":"0.00300000",
27
+ "scriptPubKey":"OP_DUP OP_HASH160 5c11f917883b927eef77dc57707aeb853f6d3894 OP_EQUALVERIFY OP_CHECKSIG"
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "hash":"69216b8aaa35b76d6613e5f527f4858640d986e1046238583bdad79b35e938dc",
3
+ "ver":1,
4
+ "confirmations":421,
5
+ "vin_sz":1,
6
+ "vout_sz":2,
7
+ "lock_time":0,
8
+ "size":226,
9
+ "in":[
10
+ {
11
+ "prev_out":{
12
+ "hash":"ab005e03aec91832aefe96ce396eab1f0fb49b1a0e0238613cff265ac7fd512d",
13
+ "n":1
14
+ },
15
+ "scriptSig":"3045022100e4f1a521907e50fc44d33132ee98c9715a64df9d2c2860e3e0474c521ab8537e022030af8d3506a5352e2b056445acd855a42d37270e94a629a7b28b21870ec6d76101 03808c493f061990d2be001e40f048ae8870320b74895ce2d9652f3c1c73cd6f2c"
16
+ }
17
+ ],
18
+ "out":[
19
+ {
20
+ "value":"0.04950000",
21
+ "scriptPubKey":"OP_DUP OP_HASH160 fcc9b36d38cf55d7d5b4ee4dddb6b2c17612f48c OP_EQUALVERIFY OP_CHECKSIG"
22
+ },
23
+ {
24
+ "value":"0.04950000",
25
+ "scriptPubKey":"OP_DUP OP_HASH160 33cef61749d11ba2adf091a5e045678177fe3a6d OP_EQUALVERIFY OP_CHECKSIG"
26
+ }
27
+ ]
28
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "hash":"7208e5edf525f04e705fb3390194e316205b8f995c8c9fcd8c6093abe04fa27d",
3
+ "ver":1,
4
+ "vin_sz":1,
5
+ "vout_sz":2,
6
+ "lock_time":0,
7
+ "size":339,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"3e58b7eed0fdb599019af08578effea25c8666bbe8e200845453cacce6314477",
12
+ "n":1
13
+ },
14
+ "scriptSig":"0 30460221008662e2bfcc4741d92531f566c5765d849e24b45c289607593584fbba938d88cc022100d718e710d5991bdfbdc5b0d52ae8e4d9c1c1c719bcc348003c5e80524a04e16283 3045022100fbdbea6b614989b210d269dbf171746a9507bb3dae292bdaf85848a7aa091eca02205d23a46269a904c40076c76eadfdb8f98e7d0349c0bfe5915cca3f8835a4a41683 5221034758cefcb75e16e4dfafb32383b709fa632086ea5ca982712de6add93060b17a2103fe96237629128a0ae8c3825af8a4be8fe3109b16f62af19cec0b1eb93b8717e252ae"
15
+ }
16
+ ],
17
+ "out":[
18
+ {
19
+ "value":"0.10000000",
20
+ "scriptPubKey":"OP_DUP OP_HASH160 f164a82c9b3c5d217c83380792d56a6261f2d176 OP_EQUALVERIFY OP_CHECKSIG"
21
+ },
22
+ {
23
+ "value":"0.15900000",
24
+ "scriptPubKey":"OP_DUP OP_HASH160 2ab55d985e552653c189b1530aac817c0223cb4c OP_EQUALVERIFY OP_CHECKSIG"
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "hash":"761d8c5210fdfd505f6dff38f740ae3728eb93d7d0971fb433f685d40a4c04f6",
3
+ "ver":1,
4
+ "vin_sz":1,
5
+ "vout_sz":2,
6
+ "lock_time":0,
7
+ "size":225,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"bc230d3a7bcbca4080ba848492fec5be8fdb19197369eb72105c6e7ef07a87b7",
12
+ "n":1
13
+ },
14
+ "scriptSig":"304402204a4653bb91e19063c0fc9f6e2d04040c2a65423b31ecb5d0cbd479065883143e022041dd939e0d499093b0b53feeb2ed4bc4273f0dcccdb9e7e9b7a6295fd28da9fc01 0372517b2117c312844838b6cb79959ab6dfb3357e7c7e8ead94e438091039f72d"
15
+ }
16
+ ],
17
+ "out":[
18
+ {
19
+ "value":"0.02750000",
20
+ "scriptPubKey":"OP_DUP OP_HASH160 f8effefa3ef216922bd06e051a877337b3080e1a OP_EQUALVERIFY OP_CHECKSIG"
21
+ },
22
+ {
23
+ "value":"0.00200000",
24
+ "scriptPubKey":"OP_DUP OP_HASH160 8551e48a53decd1cfc63079a4581bcccfad1a93c OP_EQUALVERIFY OP_CHECKSIG"
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "hash":"aea682d68a3ea5e3583e088dcbd699a5d44d4b083f02ad0aaf2598fe1fa4dfd4",
3
+ "ver":1,
4
+ "vin_sz":1,
5
+ "vout_sz":2,
6
+ "lock_time":0,
7
+ "size":278,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"652dabe4857210c93785c692644789d9949474374569155dcaaee87e9399654a",
12
+ "n":1
13
+ },
14
+ "scriptSig":"3045022100fdc1046ae3262c75161ca84ae9e7348bb80f8f20bcacfee7256c28842127108402201ff562446840ad055cdc2975fa41f30ce260e23e97b2d5b859bd365d2fbd3f5501 048b65a0e6bb200e6dac05e74281b1ab9a41e80006d6b12d8521e09981da97dd96ac72d24d1a7ded9493a9fc20fdb4a714808f0b680f1f1d93527748b5e3f629ff"
15
+ }
16
+ ],
17
+ "out":[
18
+ {
19
+ "value":"0.10000000",
20
+ "scriptPubKey":"04a39b9e4fbd213ef24bb9be69de4a118dd0644082e47c01fd9159d38637b83fbcdc115a5d6e970586a012d1cfe3e3a8b1a3d04e763bdc5a071c0e827c0bd834a5 OP_CHECKSIG"
21
+ },
22
+ {
23
+ "value":"0.01000000",
24
+ "scriptPubKey":"OP_MIN 3 OP_EQUAL"
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "hash":"bd1715f1abfdc62bea3f605bdb461b3ba1f2cca6ec0d73a18a548b7717ca8531",
3
+ "ver":1,
4
+ "vin_sz":2,
5
+ "vout_sz":2,
6
+ "lock_time":0,
7
+ "size":584,
8
+ "in":[
9
+ {
10
+ "prev_out":{
11
+ "hash":"ce5fad9b4ef094d8f4937b0707edaf0a6e6ceeaf67d5edbfd51f660eac8f398b",
12
+ "n":0
13
+ },
14
+ "scriptSig":"3045022100ea28d8750a40425453d896c53d88a74cd87855636ab5db210520021c58fc350f02201244a70ca7e9d397b297cbc92d7134402f123444a08672216b70976098dfc7a401 0447aa3c2f31432e8cb9f6f0d565046ad0ee9239fd6912133078429437546f6980b33efa6dc78a8b1770208f64c7a2cc63afda24e3dfd8f0a919ee7d5a36e2edd2"
15
+ },
16
+ {
17
+ "prev_out":{
18
+ "hash":"ce5fad9b4ef094d8f4937b0707edaf0a6e6ceeaf67d5edbfd51f660eac8f398b",
19
+ "n":1
20
+ },
21
+ "scriptSig":"0 304402202cb83ffc91e28cc8e33ad6dc476c6891134bfa1393ec233de7184d3a107a535b02203207e9502b1cd6631c9be26e6d60a05c887517dddeede9ad649b4a2d6260227101 3045022100d2a252b31ea802246de6efbbd86c8a0a461b82b8cf3d35458598be737bd3a82502205d78f38c562c4ef0d74065e09a043b8b9e9e35b8d936c7de2c6a5f7e5c551e8501 52410493d4f2b42d090390951d18ff799f54e633d8878ee47fe9f5616f3fb9291b35bf137f65cc7bde718cfe2775f3f1fae9ede4fc8819c8061fc583d9bdac0b413b684104a848145e95c40485e70a8dca505405b8d78f55b2e9efb1ebb480d66e9d87768186e7bef91cffd82f525b4680354b50e3c5c92165d8909c7185ea356fd8e90b5b52ae"
22
+ }
23
+ ],
24
+ "out":[
25
+ {
26
+ "value":"0.00759460",
27
+ "scriptPubKey":"OP_DUP OP_HASH160 7ae794102395e5d90eb8ca724a1fa68fabf4a8df OP_EQUALVERIFY OP_CHECKSIG"
28
+ },
29
+ {
30
+ "value":"0.02000000",
31
+ "scriptPubKey":"OP_DUP OP_HASH160 e8ac39225ef298f1c0b1cffbff4b3abaa76b1769 OP_EQUALVERIFY OP_CHECKSIG"
32
+ }
33
+ ]
34
+ }