bitcoin-ruby 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/.travis.yml +2 -2
- data/COPYING +1 -1
- data/Gemfile +5 -11
- data/README.rdoc +11 -5
- data/Rakefile +5 -0
- data/bin/bitcoin_node +11 -29
- data/bin/bitcoin_node_cli +81 -0
- data/bin/bitcoin_wallet +9 -6
- data/doc/NODE.rdoc +79 -26
- data/examples/bbe_verify_tx.rb +1 -1
- data/examples/index_nhash.rb +24 -0
- data/examples/reindex_p2sh_addrs.rb +44 -0
- data/lib/bitcoin.rb +135 -20
- data/lib/bitcoin/builder.rb +233 -63
- data/lib/bitcoin/key.rb +89 -16
- data/lib/bitcoin/litecoin.rb +13 -11
- data/lib/bitcoin/namecoin.rb +5 -4
- data/lib/bitcoin/network/command_client.rb +23 -13
- data/lib/bitcoin/network/command_handler.rb +336 -131
- data/lib/bitcoin/network/connection_handler.rb +14 -13
- data/lib/bitcoin/network/node.rb +61 -20
- data/lib/bitcoin/protocol.rb +5 -1
- data/lib/bitcoin/protocol/block.rb +15 -3
- data/lib/bitcoin/protocol/parser.rb +3 -3
- data/lib/bitcoin/protocol/tx.rb +82 -20
- data/lib/bitcoin/protocol/txin.rb +7 -0
- data/lib/bitcoin/protocol/txout.rb +12 -9
- data/lib/bitcoin/script.rb +329 -75
- data/lib/bitcoin/storage/dummy/dummy_store.rb +23 -4
- data/lib/bitcoin/storage/models.rb +6 -11
- data/lib/bitcoin/storage/sequel/migrations/005_change_tx_hash_to_bytea.rb +14 -0
- data/lib/bitcoin/storage/sequel/migrations/006_add_tx_nhash.rb +31 -0
- data/lib/bitcoin/storage/sequel/migrations/007_add_prev_out_index_index.rb +16 -0
- data/lib/bitcoin/storage/sequel/migrations/008_add_txin_p2sh_type.rb +31 -0
- data/lib/bitcoin/storage/sequel/migrations/009_add_addrs_type.rb +56 -0
- data/lib/bitcoin/storage/sequel/sequel_store.rb +168 -70
- data/lib/bitcoin/storage/storage.rb +161 -97
- data/lib/bitcoin/storage/utxo/migrations/002_utxo.rb +1 -1
- data/lib/bitcoin/storage/utxo/migrations/004_add_addrs_type.rb +14 -0
- data/lib/bitcoin/storage/utxo/utxo_store.rb +25 -12
- data/lib/bitcoin/validation.rb +87 -56
- data/lib/bitcoin/version.rb +1 -1
- data/spec/bitcoin/bitcoin_spec.rb +38 -0
- data/spec/bitcoin/builder_spec.rb +177 -0
- data/spec/bitcoin/fixtures/litecoin-tx-f5aa30f574e3b6f1a3d99c07a6356ba812aabb9661e1d5f71edff828cbd5c996.json +259 -0
- data/spec/bitcoin/fixtures/rawblock-testnet-265322.bin +0 -0
- data/spec/bitcoin/fixtures/tx-0295028ef826b2a188409cb905b631faebb9bb3cdf14510571c5f4bd8591338f.json +64 -0
- data/spec/bitcoin/fixtures/tx-03339a725007a279484fb6f5361f522dd1cf4d0923d30e6b973290dba4275f92.json +64 -0
- data/spec/bitcoin/fixtures/tx-0ce7e5238fbdb6c086cf1b384b21b827e91cc23f360417265874a5a0d86ce367.json +64 -0
- data/spec/bitcoin/fixtures/tx-0ef34c49f630aea17df0080728b0fc67bf5f87fbda936934a4b11b4a69d7821e.json +64 -0
- data/spec/bitcoin/fixtures/tx-1129d2a8bd5bb3a81e54dc96a90f1f6b2544575748caa17243470935c5dd91b7.json +28 -0
- data/spec/bitcoin/fixtures/tx-19aa42fee0fa57c45d3b16488198b27caaacc4ff5794510d0c17f173f05587ff.json +23 -0
- data/spec/bitcoin/fixtures/tx-1a4f3b9dc4494aeedeb39f30dd37e60541b2abe3ed4977992017cc0ad4f44956.json +64 -0
- data/spec/bitcoin/fixtures/tx-1f9191dcf2b1844ca28c6ef4b969e1d5fab70a5e3c56b7007949e55851cb0c4f.json +64 -0
- data/spec/bitcoin/fixtures/tx-22cd5fef23684d7b304e119bedffde6f54538d3d54a5bfa237e20dc2d9b4b5ad.json +64 -0
- data/spec/bitcoin/fixtures/tx-2958fb00b4fd6fe0353503b886eb9a193d502f4fd5fc042d5e03216ba918bbd6.json +64 -0
- data/spec/bitcoin/fixtures/tx-29f277145749ad6efbed3ae6ce301f8d33c585ec26b7c044ad93c2f866e9e942.json +64 -0
- data/spec/bitcoin/fixtures/tx-2c5e5376c20e9cc78d0fb771730e5d840cc2096eff0ef045b599fe92475ace1c.json +28 -0
- data/spec/bitcoin/fixtures/tx-2c63aa814701cef5dbd4bbaddab3fea9117028f2434dddcdab8339141e9b14d1.json +30 -0
- data/spec/bitcoin/fixtures/tx-326882a7f22b5191f1a0cc9962ca4b878cd969cf3b3a70887aece4d801a0ba5e.json +23 -0
- data/spec/bitcoin/fixtures/tx-345bed8785c3282a264ffb0dbee61cde54854f10e16f1b3e75b7f2d9f62946f2.json +64 -0
- data/spec/bitcoin/fixtures/tx-39ba7440b7103557560cc8ce258009936796485aaf8b478e66ab4cb97c66e31b.json +32 -0
- data/spec/bitcoin/fixtures/tx-3a04d57a833367f1655cc5ec3beb587888ef4977a86caa8c8ad4ba7cc717eae7.json +64 -0
- data/spec/bitcoin/fixtures/tx-4142ee4877eb116abf955a7ec6ef2dc38133b793df762b76d75e3d7d4d8badc9.json +38 -0
- data/spec/bitcoin/fixtures/tx-46224764c7870f95b58f155bce1e38d4da8e99d42dbb632d0dd7c07e092ee5aa.json +23 -0
- data/spec/bitcoin/fixtures/tx-5df1375ffe61ac35ca178ebb0cab9ea26dedbd0e96005dfcee7e379fa513232f.json +30 -0
- data/spec/bitcoin/fixtures/tx-62d9a565bd7b5344c5352e3e9e5f40fa4bbd467fa19c87357216ec8777ba1cce.json +64 -0
- data/spec/bitcoin/fixtures/tx-6327783a064d4e350c454ad5cd90201aedf65b1fc524e73709c52f0163739190.json +23 -0
- data/spec/bitcoin/fixtures/tx-6606c366a487bff9e412d0b6c09c14916319932db5954bf5d8719f43f828a3ba.json +27 -0
- data/spec/bitcoin/fixtures/tx-6aaf18b9f1283b939d8e5d40ff5f8a435229f4178372659cc3a0bce4e262bf78.json +28 -0
- data/spec/bitcoin/fixtures/tx-6b48bba6f6d2286d7ec0883c0fc3085955090813a4c94980466611c798b868cc.json +64 -0
- data/spec/bitcoin/fixtures/tx-70cfbc6690f9ab46712db44e3079ac227962b2771a9341d4233d898b521619ef.json +40 -0
- data/spec/bitcoin/fixtures/tx-7a1a9db42f065f75110fcdb1bc415549c8ef7670417ba1d35a67f1b8adc562c1.json +64 -0
- data/spec/bitcoin/fixtures/tx-9a768fc7d0c4bdc86e25154357ef7c0063ca21310e5740a2f12f90b7455184a7.json +64 -0
- data/spec/bitcoin/fixtures/tx-9cad8d523a0694f2509d092c39cebc8046adae62b4e4297102d568191d9478d8.json +64 -0
- data/spec/bitcoin/fixtures/tx-9e052eb694bd7e15906433f064dff0161a12fd325c1124537766377004023c6f.json +64 -0
- data/spec/bitcoin/fixtures/tx-a955032f4d6b0c9bfe8cad8f00a8933790b9c1dc28c82e0f48e75b35da0e4944.json +23 -0
- data/spec/bitcoin/fixtures/tx-aab7ef280abbb9cc6fbaf524d2645c3daf4fcca2b3f53370e618d9cedf65f1f8.json +23 -0
- data/spec/bitcoin/fixtures/tx-ab9805c6d57d7070d9a42c5176e47bb705023e6b67249fb6760880548298e742.json +27 -0
- data/spec/bitcoin/fixtures/tx-ad4bcf3241e5d2ad140564e20db3567d41594cf4c2012433fe46a2b70e0d87b8.json +64 -0
- data/spec/bitcoin/fixtures/tx-b5b598de91787439afd5938116654e0b16b7a0d0f82742ba37564219c5afcbf9.json +27 -0
- data/spec/bitcoin/fixtures/tx-b8fd633e7713a43d5ac87266adc78444669b987a56b3a65fb92d58c2c4b0e84d.json +28 -0
- data/spec/bitcoin/fixtures/tx-bbca0628c42cb8bf7c3f4b2ad688fa56da5308dd2a10255da89fb1f46e6e413d.json +36 -0
- data/spec/bitcoin/fixtures/tx-bc7fd132fcf817918334822ee6d9bd95c889099c96e07ca2c1eb2cc70db63224.json +23 -0
- data/spec/bitcoin/fixtures/tx-c192b74844e4837a34c4a5a97b438f1c111405b01b99e2d12b7c96d07fc74c04.json +28 -0
- data/spec/bitcoin/fixtures/tx-e335562f7e297aadeed88e5954bc4eeb8dc00b31d829eedb232e39d672b0c009.json +406 -0
- data/spec/bitcoin/fixtures/tx-eb3b82c0884e3efa6d8b0be55b4915eb20be124c9766245bcc7f34fdac32bccb.json +35 -0
- data/spec/bitcoin/fixtures/tx-fee1b9b85531c8fb6cd7831f83490c7f2aa768b6eefe29854ef5e89ce7b9ecb1.json +64 -0
- data/spec/bitcoin/fixtures/txscript-invalid-too-many-sigops-followed-by-invalid-pushdata.bin +1 -0
- data/spec/bitcoin/helpers/fake_blockchain.rb +183 -0
- data/spec/bitcoin/key_spec.rb +79 -8
- data/spec/bitcoin/namecoin_spec.rb +1 -1
- data/spec/bitcoin/node/command_api_spec.rb +373 -86
- data/spec/bitcoin/performance/storage_spec.rb +41 -0
- data/spec/bitcoin/protocol/addr_spec.rb +7 -5
- data/spec/bitcoin/protocol/aux_pow_spec.rb +1 -0
- data/spec/bitcoin/protocol/block_spec.rb +6 -0
- data/spec/bitcoin/protocol/tx_spec.rb +184 -1
- data/spec/bitcoin/protocol/txin_spec.rb +27 -0
- data/spec/bitcoin/protocol/txout_spec.rb +27 -0
- data/spec/bitcoin/script/opcodes_spec.rb +74 -3
- data/spec/bitcoin/script/script_spec.rb +271 -0
- data/spec/bitcoin/spec_helper.rb +34 -6
- data/spec/bitcoin/storage/models_spec.rb +104 -0
- data/spec/bitcoin/storage/reorg_spec.rb +42 -11
- data/spec/bitcoin/storage/storage_spec.rb +58 -15
- data/spec/bitcoin/storage/validation_spec.rb +44 -14
- data/spec/bitcoin/wallet/keygenerator_spec.rb +6 -3
- data/spec/bitcoin/wallet/keystore_spec.rb +3 -3
- data/spec/bitcoin/wallet/wallet_spec.rb +87 -89
- metadata +117 -11
data/spec/bitcoin/fixtures/tx-2c5e5376c20e9cc78d0fb771730e5d840cc2096eff0ef045b599fe92475ace1c.json
ADDED
@@ -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
|
+
}
|
data/spec/bitcoin/fixtures/tx-2c63aa814701cef5dbd4bbaddab3fea9117028f2434dddcdab8339141e9b14d1.json
ADDED
@@ -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
|
+
}
|
data/spec/bitcoin/fixtures/tx-326882a7f22b5191f1a0cc9962ca4b878cd969cf3b3a70887aece4d801a0ba5e.json
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"hash":"326882a7f22b5191f1a0cc9962ca4b878cd969cf3b3a70887aece4d801a0ba5e",
|
3
|
+
"ver":1,
|
4
|
+
"vin_sz":1,
|
5
|
+
"vout_sz":1,
|
6
|
+
"lock_time":0,
|
7
|
+
"size":202,
|
8
|
+
"in":[
|
9
|
+
{
|
10
|
+
"prev_out":{
|
11
|
+
"hash":"f3fd3e2f56a4d475d93103155009e07a4b9dcd878903abe60b0cfc4dde22f243",
|
12
|
+
"n":1
|
13
|
+
},
|
14
|
+
"scriptSig":"3044022008f84b2c0457af66c5efc438e1cc7b76f1832b79faf60b77c4e69419214ca0e1022078834e90ab5c410e9d99700825774934ea7b2982d1d880f70106668626a82e1e01 028c4132e7792c3ce3f85b07d50bcdc21c299f670993157e24e6bc4df106a5fb72"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"out":[
|
18
|
+
{
|
19
|
+
"value":"0.00025000",
|
20
|
+
"scriptPubKey":"038479a0fa998cd35259a2ef0a7a5c68662c1474f88ccb6d08a7677bbec7f22041 OP_CODESEPARATOR OP_CHECKSIG"
|
21
|
+
}
|
22
|
+
]
|
23
|
+
}
|
data/spec/bitcoin/fixtures/tx-345bed8785c3282a264ffb0dbee61cde54854f10e16f1b3e75b7f2d9f62946f2.json
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
{
|
2
|
+
"hash": "345bed8785c3282a264ffb0dbee61cde54854f10e16f1b3e75b7f2d9f62946f2",
|
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": "881e5bb59faa99178c291da8043c3ddd037eacf06767d24d4a5c7a6705258c75",
|
12
|
+
"n": 7
|
13
|
+
},
|
14
|
+
"scriptSig": "30450221008e4ece3337b0ecca5ef6b35d398d0e9bfc12f8072dc1699b535156ede9fd13db0220113ed599752feb7d3316411f2e74763e6437d95b7821d937cf61314e73622a2901 0459c3aea943522322d4771ff9ae61bbea1c33de19aaadb0a6e5dc0f650db937bd3a93bffba6497c9b3eceff8f3250dd1891d98c6f64079f70c2fa91339c05d017"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"out": [
|
18
|
+
{
|
19
|
+
"value": "0.02100000",
|
20
|
+
"scriptPubKey": "feffffff80 OP_EQUAL"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"value": "0.03100000",
|
24
|
+
"scriptPubKey": "4e4f505f315f746f5f3130272045515541 OP_EQUAL"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"value": "0.04100000",
|
28
|
+
"scriptPubKey": "OP_SWAP 1 OP_EQUALVERIFY 0 OP_EQUAL"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"value": "0.09100000",
|
32
|
+
"scriptPubKey": "OP_SHA256 20 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 OP_EQUAL"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"value": "0.08100000",
|
36
|
+
"scriptPubKey": "OP_SIZE 1a OP_EQUAL"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"value": "0.01100000",
|
40
|
+
"scriptPubKey": "OP_LESSTHAN OP_NOT"
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"value": "0.07100000",
|
44
|
+
"scriptPubKey": "OP_NOP1 OP_NOP2 OP_NOP3 OP_NOP4 OP_NOP5 OP_NOP6 OP_NOP7 OP_NOP8 OP_NOP9 OP_NOP10 1 OP_EQUAL"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"value": "48.88000000",
|
48
|
+
"scriptPubKey": "OP_DUP OP_HASH160 a90494bf5ddccc364aa66d117f915b6414ab9a03 OP_EQUALVERIFY OP_CHECKSIG"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"value": "0.05100000",
|
52
|
+
"scriptPubKey": "OP_IF fd OP_ELSE 1 OP_ENDIF"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"value": "0.10100000",
|
56
|
+
"scriptPubKey": "OP_NOT"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"value": "0.06100000",
|
60
|
+
"scriptPubKey": "OP_NUMNOTEQUAL OP_NOT"
|
61
|
+
}
|
62
|
+
],
|
63
|
+
"nid": "b18a6f95a8fdfd94576c4affbf7f1b6131cd861129193a9b736d25ba280b5ebf"
|
64
|
+
}
|
data/spec/bitcoin/fixtures/tx-39ba7440b7103557560cc8ce258009936796485aaf8b478e66ab4cb97c66e31b.json
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
{
|
2
|
+
"hash": "39ba7440b7103557560cc8ce258009936796485aaf8b478e66ab4cb97c66e31b",
|
3
|
+
"ver": 1,
|
4
|
+
"vin_sz": 1,
|
5
|
+
"vout_sz": 3,
|
6
|
+
"lock_time": 0,
|
7
|
+
"size": 939,
|
8
|
+
"in": [
|
9
|
+
{
|
10
|
+
"prev_out": {
|
11
|
+
"hash": "1f9191dcf2b1844ca28c6ef4b969e1d5fab70a5e3c56b7007949e55851cb0c4f",
|
12
|
+
"n": 0
|
13
|
+
},
|
14
|
+
"scriptSig": "3045022100fa76a695c678f040264492dc71a29310d58c78e208bd1d8e384ef507b7b7229902201fb047807170aa590dbc5ff4d6e5b4b050ccb0fc4385ced9e0c129338c67294901 044a3549784ccf7b3711e1a0482ba7ebcb252c2997c6422c5dfce88ccb797643fa485ba80a26ef977ea703b39f299421f032c74cac9847cafd3478466aa5fea16c"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"out": [
|
18
|
+
{
|
19
|
+
"value": "46.31950000",
|
20
|
+
"scriptPubKey": "OP_DUP OP_HASH160 a009272d8f4457aa878fbb378ca0a31f1bac69c8 OP_EQUALVERIFY OP_CHECKSIG"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"value": "1.00000000",
|
24
|
+
"scriptPubKey": "62626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"value": "1.00000000",
|
28
|
+
"scriptPubKey": "1 2 3 4 5 6 7 OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP OP_3DUP"
|
29
|
+
}
|
30
|
+
],
|
31
|
+
"nid": "8ff3e013d4aa3da8cb4650fafb88bc2e45ca648fd161fe90bdaf19d072a686db"
|
32
|
+
}
|
data/spec/bitcoin/fixtures/tx-3a04d57a833367f1655cc5ec3beb587888ef4977a86caa8c8ad4ba7cc717eae7.json
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
{
|
2
|
+
"hash": "3a04d57a833367f1655cc5ec3beb587888ef4977a86caa8c8ad4ba7cc717eae7",
|
3
|
+
"ver": 1,
|
4
|
+
"vin_sz": 1,
|
5
|
+
"vout_sz": 11,
|
6
|
+
"lock_time": 0,
|
7
|
+
"size": 438,
|
8
|
+
"in": [
|
9
|
+
{
|
10
|
+
"prev_out": {
|
11
|
+
"hash": "725670808d3e3939e3a5734f86599d844b5bcb530091286092a25ca9d1cf86ec",
|
12
|
+
"n": 0
|
13
|
+
},
|
14
|
+
"scriptSig": "304502200e6d53c83390083579096c8a0a72ea19f74fd7a780856df8c07b5004d00b935202210098bbab8e57e9cb9e1858b913165d00f9a738cbd1f8a101f351a54f3c56b6ef7501 04b8f5339bbbd6086df26561ef2256f1f2ac41e150d33067848a09985749fae5c066712f3955c9c68fcbf59bf1182a646588a51faad98f3b43337314b8683d2103"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"out": [
|
18
|
+
{
|
19
|
+
"value": "0.05100000",
|
20
|
+
"scriptPubKey": "OP_SHA1 0:1:14 32d10c7b8cf96570ca04ce37f2a19d84240d3a89 OP_EQUAL"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"value": "0.06100000",
|
24
|
+
"scriptPubKey": "OP_HASH160 4c 0:1:14 c286a1af0947f58d1ad787385b1c2c4a976f9e71 OP_EQUAL"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"value": "0.02100000",
|
28
|
+
"scriptPubKey": "1 OP_ROLL 0:1:15 OP_EQUALVERIFY OP_DEPTH 2 OP_EQUAL"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"value": "0.09100000",
|
32
|
+
"scriptPubKey": "1 OP_EQUAL"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"value": "0.10100000",
|
36
|
+
"scriptPubKey": "676176696e5f7761735f686572652720455155414c5645524946592031312045515541 OP_EQUALVERIFY 11 OP_EQUAL"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"value": "0.07100000",
|
40
|
+
"scriptPubKey": "feffffff00 OP_EQUAL"
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"value": "0.01100000",
|
44
|
+
"scriptPubKey": "OP_SIZE 1 OP_EQUAL"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"value": "0.03100000",
|
48
|
+
"scriptPubKey": "OP_SIZE 1a OP_EQUAL"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"value": "0.04100000",
|
52
|
+
"scriptPubKey": "OP_DEPTH 2 OP_EQUALVERIFY 1 OP_EQUALVERIFY 1 OP_EQUAL"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"value": "49.32950000",
|
56
|
+
"scriptPubKey": "OP_DUP OP_HASH160 33b341cf27913d8352c24a668b71ca3a3b6c435e OP_EQUALVERIFY OP_CHECKSIG"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"value": "0.08100000",
|
60
|
+
"scriptPubKey": "OP_1NEGATE OP_NUMEQUAL"
|
61
|
+
}
|
62
|
+
],
|
63
|
+
"nid": "98516a87e297045adc67849d5aeede81e1992353dbde80816805ee7184d665c3"
|
64
|
+
}
|
data/spec/bitcoin/fixtures/tx-4142ee4877eb116abf955a7ec6ef2dc38133b793df762b76d75e3d7d4d8badc9.json
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
{
|
2
|
+
"hash":"4142ee4877eb116abf955a7ec6ef2dc38133b793df762b76d75e3d7d4d8badc9",
|
3
|
+
"ver":1,
|
4
|
+
"vin_sz":2,
|
5
|
+
"vout_sz":3,
|
6
|
+
"lock_time":0,
|
7
|
+
"size":453,
|
8
|
+
"in":[
|
9
|
+
{
|
10
|
+
"prev_out":{
|
11
|
+
"hash":"f014b8ae9c5bda1cee4e03c59d3cf27f12ed5ce3a118f1b68ed1ad19cddf7843",
|
12
|
+
"n":0
|
13
|
+
},
|
14
|
+
"scriptSig":"3044022008addf33a37f8f058e629020d73c3873953e1eca559fcb59d9db651f2c9b524f02203cbfd319b2675974adfbff2cb605fc9b89a92f2f3197ee634b39c892fb57d1be01 0352f2e34760514099f90b03aab91239466924c3b06047d3cf0e011f26ef96ceb7"
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"prev_out":{
|
18
|
+
"hash":"5c43896b8aea92c15c042df7243d2b4b2842d8963baa48ba99cf0f3aa9228ba5",
|
19
|
+
"n":1
|
20
|
+
},
|
21
|
+
"scriptSig":"304402207f4beeb1a86432be0b4c3d4f4db7416b52b66c84383d1980d39e21d547a1762f02200405d0d4b80d1094e3a08cb39ef6f1161be163026d417af08d54c5a1cfdbbbeb01 0207cf5fb65d6923d5d41db21ceac9567a0fc3eb92c6137f274018381ced7b6568"
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"out":[
|
25
|
+
{
|
26
|
+
"value":"0.03000000",
|
27
|
+
"scriptPubKey":"2 0352f2e34760514099f90b03aab91239466924c3b06047d3cf0e011f26ef96ceb7 0207cf5fb65d6923d5d41db21ceac9567a0fc3eb92c6137f274018381ced7b6568 0 3 OP_CHECKMULTISIG"
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"value":"0.98990000",
|
31
|
+
"scriptPubKey":"OP_DUP OP_HASH160 9fc3d8e0371b6eab89a8c3c015839f9e493ccf65 OP_EQUALVERIFY OP_CHECKSIG"
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"value":"0.97990000",
|
35
|
+
"scriptPubKey":"OP_DUP OP_HASH160 e5175c1f71c28218306d4a27c8cec0269dddbbde OP_EQUALVERIFY OP_CHECKSIG"
|
36
|
+
}
|
37
|
+
]
|
38
|
+
}
|
data/spec/bitcoin/fixtures/tx-46224764c7870f95b58f155bce1e38d4da8e99d42dbb632d0dd7c07e092ee5aa.json
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"hash":"46224764c7870f95b58f155bce1e38d4da8e99d42dbb632d0dd7c07e092ee5aa",
|
3
|
+
"ver":1,
|
4
|
+
"vin_sz":1,
|
5
|
+
"vout_sz":1,
|
6
|
+
"lock_time":0,
|
7
|
+
"size":135,
|
8
|
+
"in":[
|
9
|
+
{
|
10
|
+
"prev_out":{
|
11
|
+
"hash":"bc7fd132fcf817918334822ee6d9bd95c889099c96e07ca2c1eb2cc70db63224",
|
12
|
+
"n":0
|
13
|
+
},
|
14
|
+
"scriptSig":"3046022100a576b52051962c25e642c0fd3d77ee6c92487048e5d90818bcf5b51abaccd7900221008204f8fb121be4ec3b24483b1f92d89b1b0548513a134e345c5442e86e8617a501"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"out":[
|
18
|
+
{
|
19
|
+
"value":"0.00000000",
|
20
|
+
"scriptPubKey":"OP_RETURN"
|
21
|
+
}
|
22
|
+
]
|
23
|
+
}
|
data/spec/bitcoin/fixtures/tx-5df1375ffe61ac35ca178ebb0cab9ea26dedbd0e96005dfcee7e379fa513232f.json
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"hash":"5df1375ffe61ac35ca178ebb0cab9ea26dedbd0e96005dfcee7e379fa513232f",
|
3
|
+
"ver":1,
|
4
|
+
"vin_sz":2,
|
5
|
+
"vout_sz":1,
|
6
|
+
"lock_time":0,
|
7
|
+
"size":527,
|
8
|
+
"in":[
|
9
|
+
{
|
10
|
+
"prev_out":{
|
11
|
+
"hash":"b5b598de91787439afd5938116654e0b16b7a0d0f82742ba37564219c5afcbf9",
|
12
|
+
"n":0
|
13
|
+
},
|
14
|
+
"scriptSig":"30450221008dd619c563e527c47d9bd53534a770b102e40faa87f61433580e04e271ef2f960220029886434e18122b53d5decd25f1f4acb2480659fea20aabd856987ba3c3907e01 022b78b756e2258af13779c1a1f37ea6800259716ca4b7f0b87610e0bf3ab52a01"
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"prev_out":{
|
18
|
+
"hash":"ab9805c6d57d7070d9a42c5176e47bb705023e6b67249fb6760880548298e742",
|
19
|
+
"n":0
|
20
|
+
},
|
21
|
+
"scriptSig":"0 3045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303 30460221008431bdfa72bc67f9d41fe72e94c88fb8f359ffa30b33c72c121c5a877d922e1002210089ef5fc22dd8bfc6bf9ffdb01a9862d27687d424d1fefbab9e9c7176844a187a01 52483045022015bd0139bcccf990a6af6ec5c1c52ed8222e03a0d51c334df139968525d2fcd20221009f9efe325476eb64c3958e4713e9eefe49bf1d820ed58d2112721b134e2a1a5303210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c71210378d430274f8c5ec1321338151e9f27f4c676a008bdf8638d07c0b6be9ab35c7153ae"
|
22
|
+
}
|
23
|
+
],
|
24
|
+
"out":[
|
25
|
+
{
|
26
|
+
"value":"0.00100000",
|
27
|
+
"scriptPubKey":"OP_HASH160 d8dacdadb7462ae15cd906f1878706d0da8660e6 OP_EQUAL"
|
28
|
+
}
|
29
|
+
]
|
30
|
+
}
|
data/spec/bitcoin/fixtures/tx-62d9a565bd7b5344c5352e3e9e5f40fa4bbd467fa19c87357216ec8777ba1cce.json
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
{
|
2
|
+
"hash": "62d9a565bd7b5344c5352e3e9e5f40fa4bbd467fa19c87357216ec8777ba1cce",
|
3
|
+
"ver": 1,
|
4
|
+
"vin_sz": 1,
|
5
|
+
"vout_sz": 11,
|
6
|
+
"lock_time": 0,
|
7
|
+
"size": 422,
|
8
|
+
"in": [
|
9
|
+
{
|
10
|
+
"prev_out": {
|
11
|
+
"hash": "44ecaf5d5357850d372a50ffcdf12b5aaf52edad6264359078178f5f7cecf848",
|
12
|
+
"n": 2
|
13
|
+
},
|
14
|
+
"scriptSig": "3045022100bb3e570ec6da31297e83c238a8b321a4e1c649e1fd081bfc9bf58c295a3538e8022036982a1fb82ffd8a3bc274663ffcad0aa03ec6dcc906860b26148915dce6426401 043b0126f59e00c25a3bf07462e5e3dd6fe6bfa8288f43021dade5b1402ea1c4500a04da5631b7dd568af0b208131e49f3862b51f16af74c39888dd2484ece126d"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"out": [
|
18
|
+
{
|
19
|
+
"value": "0.05100000",
|
20
|
+
"scriptPubKey": "OP_HASH160 4c 0:1:14 c286a1af0947f58d1ad787385b1c2c4a976f9e71 OP_EQUAL"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"value": "0.02100000",
|
24
|
+
"scriptPubKey": "1 OP_ROLL 0:1:15 OP_EQUALVERIFY OP_DEPTH 2 OP_EQUAL"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"value": "0.08100000",
|
28
|
+
"scriptPubKey": "0 OP_ROLL 0:1:14 OP_EQUALVERIFY OP_DEPTH 2 OP_EQUAL"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"value": "0.04100000",
|
32
|
+
"scriptPubKey": "feffffff00 OP_EQUAL"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"value": "0.06100000",
|
36
|
+
"scriptPubKey": "OP_HASH256 20 bf5d3affb73efd2ec6c36ad3112dd933efed63c4e1cbffcfa88e2759c144f2d8 OP_EQUAL"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"value": "0.07100000",
|
40
|
+
"scriptPubKey": "OP_DEPTH 0 OP_EQUAL"
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"value": "0.09100000",
|
44
|
+
"scriptPubKey": "OP_NUMEQUAL"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"value": "0.03100000",
|
48
|
+
"scriptPubKey": "OP_NOP1 OP_NOP2 OP_NOP3 OP_NOP4 OP_NOP5 OP_NOP6 OP_NOP7 OP_NOP8 OP_NOP9 OP_NOP10 1 OP_EQUAL"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"value": "48.88000000",
|
52
|
+
"scriptPubKey": "OP_DUP OP_HASH160 c64e5bf30fc7cf458fe23f256f86548528d0521a OP_EQUALVERIFY OP_CHECKSIG"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"value": "0.10100000",
|
56
|
+
"scriptPubKey": "OP_WITHIN OP_NOT"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"value": "0.01100000",
|
60
|
+
"scriptPubKey": "OP_IF 1 OP_ENDIF"
|
61
|
+
}
|
62
|
+
],
|
63
|
+
"nid": "002191e68338738a60887ef72ea05f7e0dee370a13e67cc43ed283c2c259e22d"
|
64
|
+
}
|
data/spec/bitcoin/fixtures/tx-6327783a064d4e350c454ad5cd90201aedf65b1fc524e73709c52f0163739190.json
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"hash":"6327783a064d4e350c454ad5cd90201aedf65b1fc524e73709c52f0163739190",
|
3
|
+
"ver":1,
|
4
|
+
"vin_sz":1,
|
5
|
+
"vout_sz":1,
|
6
|
+
"lock_time":0,
|
7
|
+
"size":207,
|
8
|
+
"in":[
|
9
|
+
{
|
10
|
+
"prev_out":{
|
11
|
+
"hash":"a955032f4d6b0c9bfe8cad8f00a8933790b9c1dc28c82e0f48e75b35da0e4944",
|
12
|
+
"n":0
|
13
|
+
},
|
14
|
+
"scriptSig":"30450221009c0a27f886a1d8cb87f6f595fbc3163d28f7a81ec3c4b252ee7f3ac77fd13ffa02203caa8dfa09713c8c4d7ef575c75ed97812072405d932bd11e6a1593a98b6793701 304502201e3861ef39a526406bad1e20ecad06be7375ad40ddb582c9be42d26c3a0d7b240221009d0a3985e96522e59635d19cc4448547477396ce0ef17a58e7d74c3ef464292301"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"out":[
|
18
|
+
{
|
19
|
+
"value":"0.00000000",
|
20
|
+
"scriptPubKey":"OP_RETURN"
|
21
|
+
}
|
22
|
+
]
|
23
|
+
}
|
data/spec/bitcoin/fixtures/tx-6606c366a487bff9e412d0b6c09c14916319932db5954bf5d8719f43f828a3ba.json
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
{
|
2
|
+
"hash":"6606c366a487bff9e412d0b6c09c14916319932db5954bf5d8719f43f828a3ba",
|
3
|
+
"ver":1,
|
4
|
+
"vin_sz":1,
|
5
|
+
"vout_sz":2,
|
6
|
+
"lock_time":0,
|
7
|
+
"size":265,
|
8
|
+
"in":[
|
9
|
+
{
|
10
|
+
"prev_out":{
|
11
|
+
"hash":"4142ee4877eb116abf955a7ec6ef2dc38133b793df762b76d75e3d7d4d8badc9",
|
12
|
+
"n":0
|
13
|
+
},
|
14
|
+
"scriptSig":"0 30450221008ebd06e53ce1ab7b599098b3117f2073b1d224baae21190ef7839b70a638207602201485ae19965f2d954398f691aa40fecb4d08d625ae96037a4fc5eecb7a4803c301 30440220521c485045a46fbb61c634ebf456c470f9c2f7307a743e3fce10b50f7a69115d0220249ff5f9796a9fcd12984afcfd3f7d16d2f8c49ddcef245db7c7b02b909af9a601"
|
15
|
+
}
|
16
|
+
],
|
17
|
+
"out":[
|
18
|
+
{
|
19
|
+
"value":"0.02890000",
|
20
|
+
"scriptPubKey":"OP_DUP OP_HASH160 9fc3d8e0371b6eab89a8c3c015839f9e493ccf65 OP_EQUALVERIFY OP_CHECKSIG"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"value":"0.00090000",
|
24
|
+
"scriptPubKey":"OP_DUP OP_HASH160 e5175c1f71c28218306d4a27c8cec0269dddbbde OP_EQUALVERIFY OP_CHECKSIG"
|
25
|
+
}
|
26
|
+
]
|
27
|
+
}
|