diff --git a/db/test_helper.go b/db/test_helper.go new file mode 100644 index 00000000..0fb16814 --- /dev/null +++ b/db/test_helper.go @@ -0,0 +1,11 @@ +// +build integration + +package db + +func ConnectBlocks(w *SyncWorker, onNewBlock func(hash string), initialSync bool) error { + return w.connectBlocks(onNewBlock, initialSync) +} + +func HandleFork(w *SyncWorker, localBestHeight uint32, localBestHash string, onNewBlock func(hash string), initialSync bool) error { + return w.handleFork(localBestHeight, localBestHash, onNewBlock, initialSync) +} diff --git a/tests/sync/sync.go b/tests/sync/sync.go index 65c29079..eaa0fe6a 100644 --- a/tests/sync/sync.go +++ b/tests/sync/sync.go @@ -6,6 +6,7 @@ import ( "blockbook/db" "encoding/json" "errors" + "fmt" "io/ioutil" "math/big" "os" @@ -16,9 +17,9 @@ import ( ) var testMap = map[string]func(t *testing.T, th *TestHandler){ - // "ConnectBlocks": nil, + "ConnectBlocks": testConnectBlocks, "ConnectBlocksParallel": testConnectBlocksParallel, - // "DisconnectBlocks": nil, + // "HandleFork": testHandleFork, } type TestHandler struct { @@ -33,13 +34,24 @@ type Range struct { } type TestData struct { - SyncRanges []Range `json:"syncRanges"` - Blocks map[uint32]BlockInfo `json:"blocks"` + ConnectBlocks struct { + SyncRanges []Range `json:"syncRanges"` + Blocks map[uint32]BlockInfo `json:"blocks"` + } `json:"connectBlocks"` + HandleFork struct { + SyncRanges []Range `json:"syncRanges"` + FakeBlocks map[uint32]BlockID `json:"fakeBlocks"` + RealBlocks map[uint32]BlockID `json:"realBlocks"` + } `json:"handleFork"` +} + +type BlockID struct { + Height uint32 `json:"height"` + Hash string `json:"hash"` } type BlockInfo struct { - Height uint32 `json:"height"` - Hash string `json:"hash"` + BlockID NoTxs uint32 `json:"noTxs"` TxDetails []*bchain.Tx `json:"txDetails"` } @@ -56,10 +68,9 @@ func IntegrationTest(t *testing.T, coin string, chain bchain.BlockChain, testCon t.Fatalf("Failed loading of test data: %s", err) } - h := TestHandler{Coin: coin, Chain: chain, TestData: td} - for _, test := range tests { if f, found := testMap[test]; found { + h := TestHandler{Coin: coin, Chain: chain, TestData: td} t.Run(test, func(t *testing.T) { f(t, &h) }) } else { t.Errorf("%s: test not found", test) @@ -92,7 +103,7 @@ func loadTestData(coin string, parser bchain.BlockChainParser) (*TestData, error return nil, err } - for _, b := range v.Blocks { + for _, b := range v.ConnectBlocks.Blocks { for _, tx := range b.TxDetails { // convert amounts in test json to bit.Int and clear the temporary JsonValue for i := range tx.Vout { @@ -189,8 +200,45 @@ func withRocksDBAndSyncWorker(t *testing.T, h *TestHandler, startHeight uint32, fn(d, sw, ch) } +func testConnectBlocks(t *testing.T, h *TestHandler) { + for _, rng := range h.TestData.ConnectBlocks.SyncRanges { + withRocksDBAndSyncWorker(t, h, rng.Lower, func(d *db.RocksDB, sw *db.SyncWorker, ch chan os.Signal) { + upperHash, err := h.Chain.GetBlockHash(rng.Upper) + if err != nil { + t.Fatal(err) + } + + err = db.ConnectBlocks(sw, func(hash string) { + if hash == upperHash { + close(ch) + } + }, true) + if err != nil { + if err.Error() != fmt.Sprintf("connectBlocks interrupted at height %d", rng.Upper) { + t.Fatal(err) + } + } + + height, hash, err := d.GetBestBlock() + if err != nil { + t.Fatal(err) + } + if height != rng.Upper { + t.Fatalf("Upper block height mismatch: %d != %d", height, rng.Upper) + } + if hash != upperHash { + t.Fatalf("Upper block hash mismatch: %s != %s", hash, upperHash) + } + + t.Run("verifyBlockInfo", func(t *testing.T) { verifyBlockInfo(t, d, h, rng) }) + t.Run("verifyTransactions", func(t *testing.T) { verifyTransactions(t, d, h, rng) }) + t.Run("verifyAddresses", func(t *testing.T) { verifyAddresses(t, d, h, rng) }) + }) + } +} + func testConnectBlocksParallel(t *testing.T, h *TestHandler) { - for _, rng := range h.TestData.SyncRanges { + for _, rng := range h.TestData.ConnectBlocks.SyncRanges { withRocksDBAndSyncWorker(t, h, rng.Lower, func(d *db.RocksDB, sw *db.SyncWorker, ch chan os.Signal) { upperHash, err := h.Chain.GetBlockHash(rng.Upper) if err != nil { @@ -222,7 +270,7 @@ func testConnectBlocksParallel(t *testing.T, h *TestHandler) { func verifyBlockInfo(t *testing.T, d *db.RocksDB, h *TestHandler, rng Range) { for height := rng.Lower; height <= rng.Upper; height++ { - block, found := h.TestData.Blocks[height] + block, found := h.TestData.ConnectBlocks.Blocks[height] if !found { continue } @@ -257,7 +305,7 @@ func verifyTransactions(t *testing.T, d *db.RocksDB, h *TestHandler, rng Range) checkMap := make(map[string][]bool) for height := rng.Lower; height <= rng.Upper; height++ { - block, found := h.TestData.Blocks[height] + block, found := h.TestData.ConnectBlocks.Blocks[height] if !found { continue } @@ -305,7 +353,7 @@ func verifyAddresses(t *testing.T, d *db.RocksDB, h *TestHandler, rng Range) { parser := h.Chain.GetChainParser() for height := rng.Lower; height <= rng.Upper; height++ { - block, found := h.TestData.Blocks[height] + block, found := h.TestData.ConnectBlocks.Blocks[height] if !found { continue } diff --git a/tests/sync/testdata/bitcoin.json b/tests/sync/testdata/bitcoin.json index f58266c0..457332ce 100644 --- a/tests/sync/testdata/bitcoin.json +++ b/tests/sync/testdata/bitcoin.json @@ -1,399 +1,401 @@ { - "syncRanges": [ - {"lower": 541224, "upper": 541255}, - {"lower": 542835, "upper": 542838} - ], - "blocks": { - "541224": { - "height": 541224, - "hash": "00000000000000000027fe3aca0241ccee4f3b103b2108457a2dfd7490aa41a8", - "noTxs": 1880, - "txDetails": [ - { - "hex": "02000000000101138032859ee12b6b46f2d20ab5bce9564dfcceef9b366c024c5b1bf21b33a47a01000000171600143544c8e7eacc7f624a7748e3623273145394f005feffffff02e09fc92c0000000017a91449c60d71775a5768a139d83e01665602a7319e598740420f00000000001976a91483b47502199d2599b7839ee96011b4340c5554d688ac02483045022100a788bfbc3ebb62ce034061dfe4a500de5ecad7db7c6f40c8d4af55c2d224b3dd02207aff39a1e2c422a96930a977dcb920b0ab80b35e978a7631692f887b0a49d0f0012103919187d19426a9b50012da2cfdebaf8fe45a730066f67ff628c38ce681231a9f22420800", - "txid": "04bfdfaa2babb96581657c77729daa4da4fb1d221ba516393bab3e1a44e45c56", - "blocktime": 1536829299, - "time": 1536829299, - "version": 2, - "vin": [ - { - "txid": "7aa4331bf21b5b4c026c369befcefc4d56e9bcb50ad2f2466b2be19e85328013", - "vout": 1, - "sequence": 4294967294, - "scriptSig": { - "hex": "1600143544c8e7eacc7f624a7748e3623273145394f005" + "connectBlocks": { + "syncRanges": [ + {"lower": 541224, "upper": 541255}, + {"lower": 542835, "upper": 542838} + ], + "blocks": { + "541224": { + "height": 541224, + "hash": "00000000000000000027fe3aca0241ccee4f3b103b2108457a2dfd7490aa41a8", + "noTxs": 1880, + "txDetails": [ + { + "hex": "02000000000101138032859ee12b6b46f2d20ab5bce9564dfcceef9b366c024c5b1bf21b33a47a01000000171600143544c8e7eacc7f624a7748e3623273145394f005feffffff02e09fc92c0000000017a91449c60d71775a5768a139d83e01665602a7319e598740420f00000000001976a91483b47502199d2599b7839ee96011b4340c5554d688ac02483045022100a788bfbc3ebb62ce034061dfe4a500de5ecad7db7c6f40c8d4af55c2d224b3dd02207aff39a1e2c422a96930a977dcb920b0ab80b35e978a7631692f887b0a49d0f0012103919187d19426a9b50012da2cfdebaf8fe45a730066f67ff628c38ce681231a9f22420800", + "txid": "04bfdfaa2babb96581657c77729daa4da4fb1d221ba516393bab3e1a44e45c56", + "blocktime": 1536829299, + "time": 1536829299, + "version": 2, + "vin": [ + { + "txid": "7aa4331bf21b5b4c026c369befcefc4d56e9bcb50ad2f2466b2be19e85328013", + "vout": 1, + "sequence": 4294967294, + "scriptSig": { + "hex": "1600143544c8e7eacc7f624a7748e3623273145394f005" + } } - } - ], - "vout": [ - { - "value": 7.51411168, - "n": 0, - "scriptPubKey": { - "hex": "a91449c60d71775a5768a139d83e01665602a7319e5987" - } - }, - { - "value": 0.01000000, - "n": 1, - "scriptPubKey": { - "hex": "76a91483b47502199d2599b7839ee96011b4340c5554d688ac" - } - } - ] - }, - { - "hex": "02000000000101565ce4441a3eab3b3916a51b221dfba44daa9d72777c658165b9ab2baadfbf040000000017160014ef684f89a6656212f5659078c1111523be97f72bfeffffff0240420f00000000001976a914a885121ba438d8145a402e12b91ea1a43a8ba54b88acad5cba2c0000000017a91447f4c3bd4ecb0bd7f4d3489bf640352cab6fb6c58702483045022100f31cb0e57281dd732b20e468cd40dbd018b03631f0c0760565d1349ab46e5e29022046f754795d3a191a7731b470d5b6c5ba9f515c54d354a81e9c265fdfdcfbfd3e012103a596a6b5a398bf1d40778104d56a6317cc65981b6c28082989a4cbf74691d6f722420800", - "txid": "b3f61e880609417a18a18a9e089e706822edd230e0a28316a30595f41eafc45f", - "blocktime": 1536829299, - "time": 1536829299, - "version": 2, - "vin": [ - { - "txid": "04bfdfaa2babb96581657c77729daa4da4fb1d221ba516393bab3e1a44e45c56", - "vout": 0, - "sequence": 4294967294, - "scriptSig": { - "hex": "160014ef684f89a6656212f5659078c1111523be97f72b" - } - } - ], - "vout": [ - { - "value": 0.01000000, - "n": 0, - "scriptPubKey": { - "hex": "76a914a885121ba438d8145a402e12b91ea1a43a8ba54b88ac" - } - }, - { - "value": 7.50410925, - "n": 1, - "scriptPubKey": { - "hex": "a91447f4c3bd4ecb0bd7f4d3489bf640352cab6fb6c587" - } - } - ] - } - ] - }, - "541225": { - "height": 541225, - "hash": "00000000000000000023e1bf6bc0a71fb1340c00f256de589108a4768ea82c76", - "noTxs": 1971, - "txDetails": [ - { - "hex": "010000000001030d493576a4a74be8c2de4ffbc5307e27fe354241487c3c5a3a00435f960dca9a01000000232200203676b8ea63f8a38db4bd2a36ad3ecb080ff389a4fc56f85c8042b8136f1a5525ffffffffa531960755251678f3e1f0a76657dc39e71d2d069ab01f6269dc5c8d526e78af14000000fdfe0000483045022100ef26a403ec643750e5dd88211fc2a0432e1b7aa76b5f3eec6c88694947ea67bf02201942f492871eb3178e381f96372658f65e5144ade142d502be99738021f2ae7401483045022100d960c87e0e62362bb2f275c0b4f46a7e1ca1957b25585ba95310511910cca4c102200620f7535478428a2458628c0b25eeadf75fc24fafd480a01396f75dd0c1e7e9014c6952210289a0758ddbdee43fb55af018757ae15d880759ae87c152d1831056e042a3a4362102dc2256a7fcdadc5df21bb668681dcaf234cd0f933066cfc3ccb7de71ea6ab4c421038fdea78199b4554e16aa28d76741b8ad75d5265926d16b5c4cd68e2ec1f66f2253aeffffffff58a39080604b5e99dedba40beb18f5316a66d8c1c8fc054a77d72300476ff05e0000000023220020af51de0aec71ce9d8529b5d196d04c00ca5c63888ae1318ad2e8b682481e8763ffffffff027c2d15000000000017a91473829585e38acb264c21ab7e1d8d4814337c4ba287496800000000000017a91450be45be5aa3ee42827c1eb72370fde4665acfaa870400473044022079fa3a1abf6c9265592cbe2b4a7cac5855bd764f66fc7ceed9e15b5d81184b00022024e6c885cb5c9300f0a6a070b1a6a613ea1137a863253d3737a8e75327cb620f01483045022100dc8f2f4b43cf94849e238b1a94cf9ce0a9fe6e875dcef200d4a9704e29fcc1a902200186ac5327fb4c67c2b663b9ca89b7fd1078cff5851abca987beb0ae3faee31001695221021dd05af6e6e36aa7c7fa3a366f8ba5aefbfa96f8d2014d52bb912f413d4ff1662102b5ed803ebd815d2af641793fcc96dc87bbb1b982ba26b82c59d64cce2e44d2522103c0e71c8ebcf021ceb93ac97182e22c89f9b3ef3e82a59750f593f27f0b8f32c553ae00040047304402204236e7aac97e6df9af208cc0238b409e122ea4bdbee67f4df3f69c3b99ca76a60220202fe1ee41236e997ce9f96f07129dd19d7b98a0c084d74e621a01b742c5425001483045022100b34e348784d84dd9a97c3da856676d035460b11b7e62d66c2f04e770a72bafb40220794eebb88a764b14e0c648cc54f7133115348c1063e3d74b1c92282f479a01d501695221027894bff7c2f0a6faab636188dc8e9915a18f4927f21d25a3a927827e42a22f4c210284efcef0f2f18068454982e29aedbae12e8b6e463e21dfe97a29bd7a1caa559a2102d3b7ad3ad3a5719caa7d9e66ed8412f56eb3b6ce09752c2474695b7e01ec345553ae00000000", - "txid": "3a05d0b3bbb23b23888708dbdb89b729871e1f8cce69874a03a52d401a745f2b", - "blocktime": 1536830751, - "time": 1536830751, - "version": 1, - "vin": [ - { - "txid": "9aca0d965f43003a5a3c7c48414235fe277e30c5fb4fdec2e84ba7a47635490d", - "vout": 1, - "sequence": 4294967295, - "scriptSig": { - "hex": "2200203676b8ea63f8a38db4bd2a36ad3ecb080ff389a4fc56f85c8042b8136f1a5525" - } - }, - { - "txid": "af786e528d5cdc69621fb09a062d1de739dc5766a7f0e1f378162555079631a5", - "vout": 20, - "sequence": 4294967295, - "scriptSig": { - "hex": "00483045022100ef26a403ec643750e5dd88211fc2a0432e1b7aa76b5f3eec6c88694947ea67bf02201942f492871eb3178e381f96372658f65e5144ade142d502be99738021f2ae7401483045022100d960c87e0e62362bb2f275c0b4f46a7e1ca1957b25585ba95310511910cca4c102200620f7535478428a2458628c0b25eeadf75fc24fafd480a01396f75dd0c1e7e9014c6952210289a0758ddbdee43fb55af018757ae15d880759ae87c152d1831056e042a3a4362102dc2256a7fcdadc5df21bb668681dcaf234cd0f933066cfc3ccb7de71ea6ab4c421038fdea78199b4554e16aa28d76741b8ad75d5265926d16b5c4cd68e2ec1f66f2253ae" - } - }, - { - "txid": "5ef06f470023d7774a05fcc8c1d8666a31f518eb0ba4dbde995e4b608090a358", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "220020af51de0aec71ce9d8529b5d196d04c00ca5c63888ae1318ad2e8b682481e8763" - } - } - ], - "vout": [ - { - "value": 0.01387900, - "n": 0, - "scriptPubKey": { - "hex": "a91473829585e38acb264c21ab7e1d8d4814337c4ba287" - } - }, - { - "value": 0.00026697, - "n": 1, - "scriptPubKey": { - "hex": "a91450be45be5aa3ee42827c1eb72370fde4665acfaa87" - } - } - ] - } - ] - }, - "541226": { - "height": 541226, - "hash": "00000000000000000023fc3b42ff5da9f74c6a672a7f793860f7c03b217628ae", - "noTxs": 2479, - "txDetails": [ - { - "hex": "02000000014dd8ff786e18c1c48fbaece303c6da31b02013d9122091d5bb5c14e351178bd1030000006a47304402200f46c8a00c84dfc980a39f1db80b9008a06b1fdbe9893bca36ac9278ce1201e30220455a67d71d968a0a32e7d7fd99f1f32055c0d692abb009d9fdfdfb95d011f14f012102133c477d27b26eac6fc51c4452e7b7a6071b77af1869b750c14601e3821a51cafeffffff02e8f10200000000001976a914b18cf542d661fc17a04a29f91b03056e3d7f2aaa88ac51a39500000000001976a914194e18702f84b5c87f307662887ca7ec18482bc488ac28420800", - "txid": "62665cce55418efe3dfe035d6f2c72259f1bf4a4a95dbb6bc27df39e9fd6f1fb", - "blocktime": 1536831767, - "time": 1536831767, - "locktime": 541224, - "version": 2, - "vin": [ - { - "txid": "d18b1751e3145cbbd5912012d91320b031dac603e3ecba8fc4c1186e78ffd84d", - "vout": 3, - "sequence": 4294967294, - "scriptSig": { - "hex": "47304402200f46c8a00c84dfc980a39f1db80b9008a06b1fdbe9893bca36ac9278ce1201e30220455a67d71d968a0a32e7d7fd99f1f32055c0d692abb009d9fdfdfb95d011f14f012102133c477d27b26eac6fc51c4452e7b7a6071b77af1869b750c14601e3821a51ca" - } - } - ], - "vout": [ - { - "value": 0.00193000, - "n": 0, - "scriptPubKey": { - "hex": "76a914b18cf542d661fc17a04a29f91b03056e3d7f2aaa88ac" - } - }, - { - "value": 0.09806673, - "n": 1, - "scriptPubkey": { - "hex": "76a914194e18702f84b5c87f307662887ca7ec18482bc488ac" - } - } - ] - } - ] - }, - "541227": { - "height": 541227, - "hash": "00000000000000000007d2b42e5ea24bed4aa02d18192c33b9ec7f6685acb16a", - "noTxs": 1815, - "txDetails": [ - { - "hex": "010000000176ccfc9ac16ced1eebb4e886169a03b9cff16610b8e1dcd8d380110537f6eff4000000006b483045022100b5417fc0e95b39ce2036d67621eb332dd9091734081108630f0521bd9fec1867022070080f1a568eb39dcbad467eb041862daedf8e7b14e3986bc8ab89947a5c8dc6012103aae7dca1bc6f38f77b767ddc6b3dd0ef86c294543c65bfd5cd6ac535f4f54dcdffffffff0206bfc901000000001976a914059272d492ba10fab46e2fe0154ae9200027974d88ac801d2c04000000001976a9145c02a3783346f0a8cd4c5918c625ab13c5be698e88ac00000000", - "txid": "d37262282c3bdd3da47caa663fc21eda2c9db51b43f2a4bde39527fdad569308", - "blocktime": 1536831879, - "time": 1536831879, - "locktime": 0, - "version": 1, - "vin": [ - { - "txid": "f4eff637051180d3d8dce1b81066f1cfb9039a1686e8b4eb1eed6cc19afccc76", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "483045022100b5417fc0e95b39ce2036d67621eb332dd9091734081108630f0521bd9fec1867022070080f1a568eb39dcbad467eb041862daedf8e7b14e3986bc8ab89947a5c8dc6012103aae7dca1bc6f38f77b767ddc6b3dd0ef86c294543c65bfd5cd6ac535f4f54dcd" + ], + "vout": [ + { + "value": 7.51411168, + "n": 0, + "scriptPubKey": { + "hex": "a91449c60d71775a5768a139d83e01665602a7319e5987" + } }, - "addresses": ["1PE9dMki67qUYnX5J8APFTHvUJVWxEUoQP"] - } - ], - "vout": [ - { - "value": 0.29998854, - "n": 0, - "scriptPubKey": { - "hex": "76a914059272d492ba10fab46e2fe0154ae9200027974d88ac" + { + "value": 0.01000000, + "n": 1, + "scriptPubKey": { + "hex": "76a91483b47502199d2599b7839ee96011b4340c5554d688ac" + } } - }, - { - "value": 0.70000000, - "n": 1, - "scriptPubKey": { - "hex": "76a9145c02a3783346f0a8cd4c5918c625ab13c5be698e88ac" + ] + }, + { + "hex": "02000000000101565ce4441a3eab3b3916a51b221dfba44daa9d72777c658165b9ab2baadfbf040000000017160014ef684f89a6656212f5659078c1111523be97f72bfeffffff0240420f00000000001976a914a885121ba438d8145a402e12b91ea1a43a8ba54b88acad5cba2c0000000017a91447f4c3bd4ecb0bd7f4d3489bf640352cab6fb6c58702483045022100f31cb0e57281dd732b20e468cd40dbd018b03631f0c0760565d1349ab46e5e29022046f754795d3a191a7731b470d5b6c5ba9f515c54d354a81e9c265fdfdcfbfd3e012103a596a6b5a398bf1d40778104d56a6317cc65981b6c28082989a4cbf74691d6f722420800", + "txid": "b3f61e880609417a18a18a9e089e706822edd230e0a28316a30595f41eafc45f", + "blocktime": 1536829299, + "time": 1536829299, + "version": 2, + "vin": [ + { + "txid": "04bfdfaa2babb96581657c77729daa4da4fb1d221ba516393bab3e1a44e45c56", + "vout": 0, + "sequence": 4294967294, + "scriptSig": { + "hex": "160014ef684f89a6656212f5659078c1111523be97f72b" + } } - } - ] - } - ] - }, - "541228": { - "height": 541228, - "hash": "0000000000000000001c2444541142d58b126ef608b5f52081aced02612d078f", - "noTxs": 2549, - "txDetails": [ - { - "hex": "020000000001012790904fd89e78bf372a8d79bac24ae21c0b60d65761a7fbf1002ce28d4db8fd00000000171600146432f02f2f8f1d1a7d58d83b1815cd300417404dfeffffff027dff11000000000017a91401dfd360c8b640f9da5ede7170dc369d84c3dfcf87503403000000000017a91454f7c31d5a1aac2f6b3d6b4773f62f333e2e8af8870247304402205a89be503e481e37b7175a988f7f1276e6f56d477570d3745dda126f9521bba402201cfafd0f575b6617a6f1d2c3062f398e7be43830a2786d5c9848092cc8382f600121020dc52cfdf50ad27ce9b6701e0d88d2177ad118d43c864a3cc491bd4b7ddf5dc827420800", - "txid": "3dbf8bf9d9dc161024c08fc22c938426f975da4a1da7830257cf149c260e6f89", - "blocktime": 1536832036, - "time": 1536832036, - "locktime": 541223, - "version": 2, - "vin": [ - { - "txid": "fdb84d8de22c00f1fba76157d6600b1ce24ac2ba798d2a37bf789ed84f909027", - "vout": 0, - "sequence": 4294967294, - "scriptSig": { - "hex": "1600146432f02f2f8f1d1a7d58d83b1815cd300417404d" + ], + "vout": [ + { + "value": 0.01000000, + "n": 0, + "scriptPubKey": { + "hex": "76a914a885121ba438d8145a402e12b91ea1a43a8ba54b88ac" + } + }, + { + "value": 7.50410925, + "n": 1, + "scriptPubKey": { + "hex": "a91447f4c3bd4ecb0bd7f4d3489bf640352cab6fb6c587" + } } - } - ], - "vout": [ - { - "value": 0.01179517, - "n": 0, - "scriptPubKey": { - "hex": "a91401dfd360c8b640f9da5ede7170dc369d84c3dfcf87" + ] + } + ] + }, + "541225": { + "height": 541225, + "hash": "00000000000000000023e1bf6bc0a71fb1340c00f256de589108a4768ea82c76", + "noTxs": 1971, + "txDetails": [ + { + "hex": "010000000001030d493576a4a74be8c2de4ffbc5307e27fe354241487c3c5a3a00435f960dca9a01000000232200203676b8ea63f8a38db4bd2a36ad3ecb080ff389a4fc56f85c8042b8136f1a5525ffffffffa531960755251678f3e1f0a76657dc39e71d2d069ab01f6269dc5c8d526e78af14000000fdfe0000483045022100ef26a403ec643750e5dd88211fc2a0432e1b7aa76b5f3eec6c88694947ea67bf02201942f492871eb3178e381f96372658f65e5144ade142d502be99738021f2ae7401483045022100d960c87e0e62362bb2f275c0b4f46a7e1ca1957b25585ba95310511910cca4c102200620f7535478428a2458628c0b25eeadf75fc24fafd480a01396f75dd0c1e7e9014c6952210289a0758ddbdee43fb55af018757ae15d880759ae87c152d1831056e042a3a4362102dc2256a7fcdadc5df21bb668681dcaf234cd0f933066cfc3ccb7de71ea6ab4c421038fdea78199b4554e16aa28d76741b8ad75d5265926d16b5c4cd68e2ec1f66f2253aeffffffff58a39080604b5e99dedba40beb18f5316a66d8c1c8fc054a77d72300476ff05e0000000023220020af51de0aec71ce9d8529b5d196d04c00ca5c63888ae1318ad2e8b682481e8763ffffffff027c2d15000000000017a91473829585e38acb264c21ab7e1d8d4814337c4ba287496800000000000017a91450be45be5aa3ee42827c1eb72370fde4665acfaa870400473044022079fa3a1abf6c9265592cbe2b4a7cac5855bd764f66fc7ceed9e15b5d81184b00022024e6c885cb5c9300f0a6a070b1a6a613ea1137a863253d3737a8e75327cb620f01483045022100dc8f2f4b43cf94849e238b1a94cf9ce0a9fe6e875dcef200d4a9704e29fcc1a902200186ac5327fb4c67c2b663b9ca89b7fd1078cff5851abca987beb0ae3faee31001695221021dd05af6e6e36aa7c7fa3a366f8ba5aefbfa96f8d2014d52bb912f413d4ff1662102b5ed803ebd815d2af641793fcc96dc87bbb1b982ba26b82c59d64cce2e44d2522103c0e71c8ebcf021ceb93ac97182e22c89f9b3ef3e82a59750f593f27f0b8f32c553ae00040047304402204236e7aac97e6df9af208cc0238b409e122ea4bdbee67f4df3f69c3b99ca76a60220202fe1ee41236e997ce9f96f07129dd19d7b98a0c084d74e621a01b742c5425001483045022100b34e348784d84dd9a97c3da856676d035460b11b7e62d66c2f04e770a72bafb40220794eebb88a764b14e0c648cc54f7133115348c1063e3d74b1c92282f479a01d501695221027894bff7c2f0a6faab636188dc8e9915a18f4927f21d25a3a927827e42a22f4c210284efcef0f2f18068454982e29aedbae12e8b6e463e21dfe97a29bd7a1caa559a2102d3b7ad3ad3a5719caa7d9e66ed8412f56eb3b6ce09752c2474695b7e01ec345553ae00000000", + "txid": "3a05d0b3bbb23b23888708dbdb89b729871e1f8cce69874a03a52d401a745f2b", + "blocktime": 1536830751, + "time": 1536830751, + "version": 1, + "vin": [ + { + "txid": "9aca0d965f43003a5a3c7c48414235fe277e30c5fb4fdec2e84ba7a47635490d", + "vout": 1, + "sequence": 4294967295, + "scriptSig": { + "hex": "2200203676b8ea63f8a38db4bd2a36ad3ecb080ff389a4fc56f85c8042b8136f1a5525" + } + }, + { + "txid": "af786e528d5cdc69621fb09a062d1de739dc5766a7f0e1f378162555079631a5", + "vout": 20, + "sequence": 4294967295, + "scriptSig": { + "hex": "00483045022100ef26a403ec643750e5dd88211fc2a0432e1b7aa76b5f3eec6c88694947ea67bf02201942f492871eb3178e381f96372658f65e5144ade142d502be99738021f2ae7401483045022100d960c87e0e62362bb2f275c0b4f46a7e1ca1957b25585ba95310511910cca4c102200620f7535478428a2458628c0b25eeadf75fc24fafd480a01396f75dd0c1e7e9014c6952210289a0758ddbdee43fb55af018757ae15d880759ae87c152d1831056e042a3a4362102dc2256a7fcdadc5df21bb668681dcaf234cd0f933066cfc3ccb7de71ea6ab4c421038fdea78199b4554e16aa28d76741b8ad75d5265926d16b5c4cd68e2ec1f66f2253ae" + } + }, + { + "txid": "5ef06f470023d7774a05fcc8c1d8666a31f518eb0ba4dbde995e4b608090a358", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "220020af51de0aec71ce9d8529b5d196d04c00ca5c63888ae1318ad2e8b682481e8763" + } } - }, - { - "value": 0.00210000, - "n": 1, - "scriptPubkey": { - "hex": "a91454f7c31d5a1aac2f6b3d6b4773f62f333e2e8af887" + ], + "vout": [ + { + "value": 0.01387900, + "n": 0, + "scriptPubKey": { + "hex": "a91473829585e38acb264c21ab7e1d8d4814337c4ba287" + } + }, + { + "value": 0.00026697, + "n": 1, + "scriptPubKey": { + "hex": "a91450be45be5aa3ee42827c1eb72370fde4665acfaa87" + } } - } - ] - } - ] - }, - "541255": { - "height": 541255, - "hash": "0000000000000000001375c3e88b4e53b687a70aba4b645ba81c93a4539d724d", - "noTxs": 2633, - "txDetails": [ - { - "hex": "010000000263bc2bd6ba344d39487c3c8a29eb0b71d118bef0c4318e3f9d6cd6c0a63b2e34010000006b483045022100fe6a3fb0fafa305a7cf0dd55f670e6a6469392d16bd7395ac3eecd31b48f04dc022008e4c23e7657135bb6e11727e3bc4f67aa4c827f4cfb45b27a8df531295b6a5a0121030e2844042326a3dad34937b2a577977b6d13d87a50812f351735fe1ebd999fb7ffffffff17809d201a1cb3a7da30de83f9d92b52e6f78f37c5bc6f3c105127bdb6dc9291000000006a473044022053e8788b622f6ed5ed69bffb6f2c568d42d1bb398eb6c8b9d7d011e1280c261a0220243a3346883ed0acd7a291140ddc520d43100f60e68fd4a242ec70bae95c097e0121030e2844042326a3dad34937b2a577977b6d13d87a50812f351735fe1ebd999fb7ffffffff020a39e800000000001976a914a1d8d0f5edd2bf6808d7156f2884096fd86359fe88ac00e1f505000000001976a914492f305f58b7469202526bff3200a9f2a446fb4988ac00000000", - "txid": "dcc55f1443084d97bcf17e7d7ac1d589ea947f4940030779a40cfd9731a24a9e", - "blocktime": 1536832036, - "time": 1536832036, - "locktime": 541223, - "version": 2, - "vin": [ - { - "txid": "342e3ba6c0d66c9d3f8e31c4f0be18d1710beb298a3c7c48394d34bad62bbc63", - "vout": 1, - "sequence": 4294967295, - "scriptSig": { - "hex": "483045022100fe6a3fb0fafa305a7cf0dd55f670e6a6469392d16bd7395ac3eecd31b48f04dc022008e4c23e7657135bb6e11727e3bc4f67aa4c827f4cfb45b27a8df531295b6a5a0121030e2844042326a3dad34937b2a577977b6d13d87a50812f351735fe1ebd999fb7" + ] + } + ] + }, + "541226": { + "height": 541226, + "hash": "00000000000000000023fc3b42ff5da9f74c6a672a7f793860f7c03b217628ae", + "noTxs": 2479, + "txDetails": [ + { + "hex": "02000000014dd8ff786e18c1c48fbaece303c6da31b02013d9122091d5bb5c14e351178bd1030000006a47304402200f46c8a00c84dfc980a39f1db80b9008a06b1fdbe9893bca36ac9278ce1201e30220455a67d71d968a0a32e7d7fd99f1f32055c0d692abb009d9fdfdfb95d011f14f012102133c477d27b26eac6fc51c4452e7b7a6071b77af1869b750c14601e3821a51cafeffffff02e8f10200000000001976a914b18cf542d661fc17a04a29f91b03056e3d7f2aaa88ac51a39500000000001976a914194e18702f84b5c87f307662887ca7ec18482bc488ac28420800", + "txid": "62665cce55418efe3dfe035d6f2c72259f1bf4a4a95dbb6bc27df39e9fd6f1fb", + "blocktime": 1536831767, + "time": 1536831767, + "locktime": 541224, + "version": 2, + "vin": [ + { + "txid": "d18b1751e3145cbbd5912012d91320b031dac603e3ecba8fc4c1186e78ffd84d", + "vout": 3, + "sequence": 4294967294, + "scriptSig": { + "hex": "47304402200f46c8a00c84dfc980a39f1db80b9008a06b1fdbe9893bca36ac9278ce1201e30220455a67d71d968a0a32e7d7fd99f1f32055c0d692abb009d9fdfdfb95d011f14f012102133c477d27b26eac6fc51c4452e7b7a6071b77af1869b750c14601e3821a51ca" + } } - }, - { - "txid": "9192dcb6bd2751103c6fbcc5378ff7e6522bd9f983de30daa7b31c1a209d8017", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "473044022053e8788b622f6ed5ed69bffb6f2c568d42d1bb398eb6c8b9d7d011e1280c261a0220243a3346883ed0acd7a291140ddc520d43100f60e68fd4a242ec70bae95c097e0121030e2844042326a3dad34937b2a577977b6d13d87a50812f351735fe1ebd999fb7" + ], + "vout": [ + { + "value": 0.00193000, + "n": 0, + "scriptPubKey": { + "hex": "76a914b18cf542d661fc17a04a29f91b03056e3d7f2aaa88ac" + } + }, + { + "value": 0.09806673, + "n": 1, + "scriptPubkey": { + "hex": "76a914194e18702f84b5c87f307662887ca7ec18482bc488ac" + } } - } - ], - "vout": [ - { - "value": 0.15218954, - "n": 0, - "scriptPubKey": { - "hex": "76a914a1d8d0f5edd2bf6808d7156f2884096fd86359fe88ac" + ] + } + ] + }, + "541227": { + "height": 541227, + "hash": "00000000000000000007d2b42e5ea24bed4aa02d18192c33b9ec7f6685acb16a", + "noTxs": 1815, + "txDetails": [ + { + "hex": "010000000176ccfc9ac16ced1eebb4e886169a03b9cff16610b8e1dcd8d380110537f6eff4000000006b483045022100b5417fc0e95b39ce2036d67621eb332dd9091734081108630f0521bd9fec1867022070080f1a568eb39dcbad467eb041862daedf8e7b14e3986bc8ab89947a5c8dc6012103aae7dca1bc6f38f77b767ddc6b3dd0ef86c294543c65bfd5cd6ac535f4f54dcdffffffff0206bfc901000000001976a914059272d492ba10fab46e2fe0154ae9200027974d88ac801d2c04000000001976a9145c02a3783346f0a8cd4c5918c625ab13c5be698e88ac00000000", + "txid": "d37262282c3bdd3da47caa663fc21eda2c9db51b43f2a4bde39527fdad569308", + "blocktime": 1536831879, + "time": 1536831879, + "locktime": 0, + "version": 1, + "vin": [ + { + "txid": "f4eff637051180d3d8dce1b81066f1cfb9039a1686e8b4eb1eed6cc19afccc76", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "483045022100b5417fc0e95b39ce2036d67621eb332dd9091734081108630f0521bd9fec1867022070080f1a568eb39dcbad467eb041862daedf8e7b14e3986bc8ab89947a5c8dc6012103aae7dca1bc6f38f77b767ddc6b3dd0ef86c294543c65bfd5cd6ac535f4f54dcd" + }, + "addresses": ["1PE9dMki67qUYnX5J8APFTHvUJVWxEUoQP"] } - }, - { - "value": 1.00000000, - "n": 1, - "scriptPubkey": { - "hex": "76a914492f305f58b7469202526bff3200a9f2a446fb4988ac" + ], + "vout": [ + { + "value": 0.29998854, + "n": 0, + "scriptPubKey": { + "hex": "76a914059272d492ba10fab46e2fe0154ae9200027974d88ac" + } + }, + { + "value": 0.70000000, + "n": 1, + "scriptPubKey": { + "hex": "76a9145c02a3783346f0a8cd4c5918c625ab13c5be698e88ac" + } } - } - ] - } - ] - }, - "542838": { - "height": 542838, - "hash": "00000000000000000001e973be0770d428d3494d4e1b661aafcd8924c892648d", - "noTxs": 31, - "txDetails": [ - { - "hex": "0100000007763056a30225a7f9f1af67e74a7ec67b514bcf094f8790da301b931ad2c8110e000000006b48304502210095e355273d421b93123786510757e10301508de7c4d9fb0c10900c43b6d6488a02206ddcd52d5e3e09083b50b8e020e2ce3f520e45b7be748e2cf79f1dafc44e54380121037d662ed0eab74137653a05001ada5b16c9b13ee4c542666d762564ebf68e3c8bffffffffbd4d49ec91d404facffca906661a1f437ba2e01f7004a769f01e3841d753e238000000006b4830450221008c92a4c432f4b822d234ee817f544673a86263a2eb106d1fd4189f0e8aeb4f64022031ecf397a0a15eeb41ed636d2729e422f57cb8269a74ddf7696df85055d35c5b012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4ffffffff3e851c0f9f70cb40a2492d811d87a899f6e29a1299f93dc7985e39e2db782559000000006a47304402202f8942571366051dc870be96e602e9415996e7583ecb270d7102b51453c50bb9022021c529a26ea348377863f59b03321279d4775cce1877fb37e3d09eb24b39e45b012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4ffffffffc9f4fc77c61640d945f14cbf9c7ecc2a89421ed03c3c593858915c995a009273000000006b483045022100e83039eb8d55b21f90a0fbae004bb3b0f0681b7e7a4f1bfceadbe5b470cb483702203be7ce3567967a2a1cdaeb3bd47d57cffd645557ab504d1056c3294c08ec08a6012103f3422741129eb0bfb82ca77f3818371749de4c38eb5f8def51a0abfb81cc1957ffffffff395717f7dfdec0df3e2117966af1e43eca5515f7469618d403a1383b5e4bca8a020000006a4730440220071c6128864f4ee9437b27a9ccdec52961f6a481c5ba01ae993a20a1d9afdfa20220248a5209af572f0af3c922e96def6c8b1967e355a8dfeaa891e69f59c9a37e96012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4ffffffff2e9ea71c6811838ec46444f08fad8298f8fa83cb1190ccaf98950963f0e68199000000006b483045022100d84f351d070103e614487ef7e8a7f5a6d60b6c51566aa1262111f8be1cad47d702203e0f36fec153718d3ba3a1c7dd8dd7f28691f4673498680d7f094b83db357aa4012103c71e9c61b2092b415b8ae4d5107786770cff927196efd12e39ed55477baefcdeffffffff39e161ac068370063eddd3ede85c9301f23e088f1ee72ac8e12603d7e0e8d6d6000000006a473044022053eb77ad34f47bcf00fdc845119d673948e2c6c0d21e6ec82d903598b32194df0220379127f024b85b964b52d3a7f501d7dad0b77321675d5d1ba6f0dc8f09305837012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4ffffffff02bb430000000000001976a9147270edc07db25cd4a7b99e54fd3c0c76076ba02688ac00e1f5050000000017a9141458b33294f0791f682c0d181ea757730faeeca88700000000", - "txid": "17da91b3b0590ee84b51174a76c0a61126d2ce82830230371cae549e0c070cd0", - "blocktime": 1537791290, - "time": 1537791290, - "locktime": 0, - "version": 1, - "vin": [ - { - "txid": "48304502210095e355273d421b93123786510757e10301508de7c4d9fb0c10900c43b6d6488a02206ddcd52d5e3e09083b50b8e020e2ce3f520e45b7be748e2cf79f1dafc44e54380121037d662ed0eab74137653a05001ada5b16c9b13ee4c542666d762564ebf68e3c8b", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "48304502210095e355273d421b93123786510757e10301508de7c4d9fb0c10900c43b6d6488a02206ddcd52d5e3e09083b50b8e020e2ce3f520e45b7be748e2cf79f1dafc44e54380121037d662ed0eab74137653a05001ada5b16c9b13ee4c542666d762564ebf68e3c8b" + ] + } + ] + }, + "541228": { + "height": 541228, + "hash": "0000000000000000001c2444541142d58b126ef608b5f52081aced02612d078f", + "noTxs": 2549, + "txDetails": [ + { + "hex": "020000000001012790904fd89e78bf372a8d79bac24ae21c0b60d65761a7fbf1002ce28d4db8fd00000000171600146432f02f2f8f1d1a7d58d83b1815cd300417404dfeffffff027dff11000000000017a91401dfd360c8b640f9da5ede7170dc369d84c3dfcf87503403000000000017a91454f7c31d5a1aac2f6b3d6b4773f62f333e2e8af8870247304402205a89be503e481e37b7175a988f7f1276e6f56d477570d3745dda126f9521bba402201cfafd0f575b6617a6f1d2c3062f398e7be43830a2786d5c9848092cc8382f600121020dc52cfdf50ad27ce9b6701e0d88d2177ad118d43c864a3cc491bd4b7ddf5dc827420800", + "txid": "3dbf8bf9d9dc161024c08fc22c938426f975da4a1da7830257cf149c260e6f89", + "blocktime": 1536832036, + "time": 1536832036, + "locktime": 541223, + "version": 2, + "vin": [ + { + "txid": "fdb84d8de22c00f1fba76157d6600b1ce24ac2ba798d2a37bf789ed84f909027", + "vout": 0, + "sequence": 4294967294, + "scriptSig": { + "hex": "1600146432f02f2f8f1d1a7d58d83b1815cd300417404d" + } } - }, - { - "txid": "38e253d741381ef069a704701fe0a27b431f1a6606a9fccffa04d491ec494dbd", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "4830450221008c92a4c432f4b822d234ee817f544673a86263a2eb106d1fd4189f0e8aeb4f64022031ecf397a0a15eeb41ed636d2729e422f57cb8269a74ddf7696df85055d35c5b012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4" + ], + "vout": [ + { + "value": 0.01179517, + "n": 0, + "scriptPubKey": { + "hex": "a91401dfd360c8b640f9da5ede7170dc369d84c3dfcf87" + } + }, + { + "value": 0.00210000, + "n": 1, + "scriptPubkey": { + "hex": "a91454f7c31d5a1aac2f6b3d6b4773f62f333e2e8af887" + } } - }, - { - "txid": "592578dbe2395e98c73df999129ae2f699a8871d812d49a240cb709f0f1c853e", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "47304402202f8942571366051dc870be96e602e9415996e7583ecb270d7102b51453c50bb9022021c529a26ea348377863f59b03321279d4775cce1877fb37e3d09eb24b39e45b012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4" + ] + } + ] + }, + "541255": { + "height": 541255, + "hash": "0000000000000000001375c3e88b4e53b687a70aba4b645ba81c93a4539d724d", + "noTxs": 2633, + "txDetails": [ + { + "hex": "010000000263bc2bd6ba344d39487c3c8a29eb0b71d118bef0c4318e3f9d6cd6c0a63b2e34010000006b483045022100fe6a3fb0fafa305a7cf0dd55f670e6a6469392d16bd7395ac3eecd31b48f04dc022008e4c23e7657135bb6e11727e3bc4f67aa4c827f4cfb45b27a8df531295b6a5a0121030e2844042326a3dad34937b2a577977b6d13d87a50812f351735fe1ebd999fb7ffffffff17809d201a1cb3a7da30de83f9d92b52e6f78f37c5bc6f3c105127bdb6dc9291000000006a473044022053e8788b622f6ed5ed69bffb6f2c568d42d1bb398eb6c8b9d7d011e1280c261a0220243a3346883ed0acd7a291140ddc520d43100f60e68fd4a242ec70bae95c097e0121030e2844042326a3dad34937b2a577977b6d13d87a50812f351735fe1ebd999fb7ffffffff020a39e800000000001976a914a1d8d0f5edd2bf6808d7156f2884096fd86359fe88ac00e1f505000000001976a914492f305f58b7469202526bff3200a9f2a446fb4988ac00000000", + "txid": "dcc55f1443084d97bcf17e7d7ac1d589ea947f4940030779a40cfd9731a24a9e", + "blocktime": 1536832036, + "time": 1536832036, + "locktime": 541223, + "version": 2, + "vin": [ + { + "txid": "342e3ba6c0d66c9d3f8e31c4f0be18d1710beb298a3c7c48394d34bad62bbc63", + "vout": 1, + "sequence": 4294967295, + "scriptSig": { + "hex": "483045022100fe6a3fb0fafa305a7cf0dd55f670e6a6469392d16bd7395ac3eecd31b48f04dc022008e4c23e7657135bb6e11727e3bc4f67aa4c827f4cfb45b27a8df531295b6a5a0121030e2844042326a3dad34937b2a577977b6d13d87a50812f351735fe1ebd999fb7" + } + }, + { + "txid": "9192dcb6bd2751103c6fbcc5378ff7e6522bd9f983de30daa7b31c1a209d8017", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "473044022053e8788b622f6ed5ed69bffb6f2c568d42d1bb398eb6c8b9d7d011e1280c261a0220243a3346883ed0acd7a291140ddc520d43100f60e68fd4a242ec70bae95c097e0121030e2844042326a3dad34937b2a577977b6d13d87a50812f351735fe1ebd999fb7" + } } - }, - { - "txid": "7392005a995c915838593c3cd01e42892acc7e9cbf4cf145d94016c677fcf4c9", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "483045022100e83039eb8d55b21f90a0fbae004bb3b0f0681b7e7a4f1bfceadbe5b470cb483702203be7ce3567967a2a1cdaeb3bd47d57cffd645557ab504d1056c3294c08ec08a6012103f3422741129eb0bfb82ca77f3818371749de4c38eb5f8def51a0abfb81cc1957" + ], + "vout": [ + { + "value": 0.15218954, + "n": 0, + "scriptPubKey": { + "hex": "76a914a1d8d0f5edd2bf6808d7156f2884096fd86359fe88ac" + } + }, + { + "value": 1.00000000, + "n": 1, + "scriptPubkey": { + "hex": "76a914492f305f58b7469202526bff3200a9f2a446fb4988ac" + } } - }, - { - "txid": "8aca4b5e3b38a103d4189646f71555ca3ee4f16a9617213edfc0dedff7175739", - "vout": 2, - "sequence": 4294967295, - "scriptSig": { - "hex": "4730440220071c6128864f4ee9437b27a9ccdec52961f6a481c5ba01ae993a20a1d9afdfa20220248a5209af572f0af3c922e96def6c8b1967e355a8dfeaa891e69f59c9a37e96012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4" + ] + } + ] + }, + "542838": { + "height": 542838, + "hash": "00000000000000000001e973be0770d428d3494d4e1b661aafcd8924c892648d", + "noTxs": 31, + "txDetails": [ + { + "hex": "0100000007763056a30225a7f9f1af67e74a7ec67b514bcf094f8790da301b931ad2c8110e000000006b48304502210095e355273d421b93123786510757e10301508de7c4d9fb0c10900c43b6d6488a02206ddcd52d5e3e09083b50b8e020e2ce3f520e45b7be748e2cf79f1dafc44e54380121037d662ed0eab74137653a05001ada5b16c9b13ee4c542666d762564ebf68e3c8bffffffffbd4d49ec91d404facffca906661a1f437ba2e01f7004a769f01e3841d753e238000000006b4830450221008c92a4c432f4b822d234ee817f544673a86263a2eb106d1fd4189f0e8aeb4f64022031ecf397a0a15eeb41ed636d2729e422f57cb8269a74ddf7696df85055d35c5b012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4ffffffff3e851c0f9f70cb40a2492d811d87a899f6e29a1299f93dc7985e39e2db782559000000006a47304402202f8942571366051dc870be96e602e9415996e7583ecb270d7102b51453c50bb9022021c529a26ea348377863f59b03321279d4775cce1877fb37e3d09eb24b39e45b012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4ffffffffc9f4fc77c61640d945f14cbf9c7ecc2a89421ed03c3c593858915c995a009273000000006b483045022100e83039eb8d55b21f90a0fbae004bb3b0f0681b7e7a4f1bfceadbe5b470cb483702203be7ce3567967a2a1cdaeb3bd47d57cffd645557ab504d1056c3294c08ec08a6012103f3422741129eb0bfb82ca77f3818371749de4c38eb5f8def51a0abfb81cc1957ffffffff395717f7dfdec0df3e2117966af1e43eca5515f7469618d403a1383b5e4bca8a020000006a4730440220071c6128864f4ee9437b27a9ccdec52961f6a481c5ba01ae993a20a1d9afdfa20220248a5209af572f0af3c922e96def6c8b1967e355a8dfeaa891e69f59c9a37e96012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4ffffffff2e9ea71c6811838ec46444f08fad8298f8fa83cb1190ccaf98950963f0e68199000000006b483045022100d84f351d070103e614487ef7e8a7f5a6d60b6c51566aa1262111f8be1cad47d702203e0f36fec153718d3ba3a1c7dd8dd7f28691f4673498680d7f094b83db357aa4012103c71e9c61b2092b415b8ae4d5107786770cff927196efd12e39ed55477baefcdeffffffff39e161ac068370063eddd3ede85c9301f23e088f1ee72ac8e12603d7e0e8d6d6000000006a473044022053eb77ad34f47bcf00fdc845119d673948e2c6c0d21e6ec82d903598b32194df0220379127f024b85b964b52d3a7f501d7dad0b77321675d5d1ba6f0dc8f09305837012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4ffffffff02bb430000000000001976a9147270edc07db25cd4a7b99e54fd3c0c76076ba02688ac00e1f5050000000017a9141458b33294f0791f682c0d181ea757730faeeca88700000000", + "txid": "17da91b3b0590ee84b51174a76c0a61126d2ce82830230371cae549e0c070cd0", + "blocktime": 1537791290, + "time": 1537791290, + "locktime": 0, + "version": 1, + "vin": [ + { + "txid": "48304502210095e355273d421b93123786510757e10301508de7c4d9fb0c10900c43b6d6488a02206ddcd52d5e3e09083b50b8e020e2ce3f520e45b7be748e2cf79f1dafc44e54380121037d662ed0eab74137653a05001ada5b16c9b13ee4c542666d762564ebf68e3c8b", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "48304502210095e355273d421b93123786510757e10301508de7c4d9fb0c10900c43b6d6488a02206ddcd52d5e3e09083b50b8e020e2ce3f520e45b7be748e2cf79f1dafc44e54380121037d662ed0eab74137653a05001ada5b16c9b13ee4c542666d762564ebf68e3c8b" + } + }, + { + "txid": "38e253d741381ef069a704701fe0a27b431f1a6606a9fccffa04d491ec494dbd", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "4830450221008c92a4c432f4b822d234ee817f544673a86263a2eb106d1fd4189f0e8aeb4f64022031ecf397a0a15eeb41ed636d2729e422f57cb8269a74ddf7696df85055d35c5b012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4" + } + }, + { + "txid": "592578dbe2395e98c73df999129ae2f699a8871d812d49a240cb709f0f1c853e", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "47304402202f8942571366051dc870be96e602e9415996e7583ecb270d7102b51453c50bb9022021c529a26ea348377863f59b03321279d4775cce1877fb37e3d09eb24b39e45b012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4" + } + }, + { + "txid": "7392005a995c915838593c3cd01e42892acc7e9cbf4cf145d94016c677fcf4c9", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "483045022100e83039eb8d55b21f90a0fbae004bb3b0f0681b7e7a4f1bfceadbe5b470cb483702203be7ce3567967a2a1cdaeb3bd47d57cffd645557ab504d1056c3294c08ec08a6012103f3422741129eb0bfb82ca77f3818371749de4c38eb5f8def51a0abfb81cc1957" + } + }, + { + "txid": "8aca4b5e3b38a103d4189646f71555ca3ee4f16a9617213edfc0dedff7175739", + "vout": 2, + "sequence": 4294967295, + "scriptSig": { + "hex": "4730440220071c6128864f4ee9437b27a9ccdec52961f6a481c5ba01ae993a20a1d9afdfa20220248a5209af572f0af3c922e96def6c8b1967e355a8dfeaa891e69f59c9a37e96012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4" + } + }, + { + "txid": "9981e6f063099598afcc9011cb83faf89882ad8ff04464c48e8311681ca79e2e", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "483045022100d84f351d070103e614487ef7e8a7f5a6d60b6c51566aa1262111f8be1cad47d702203e0f36fec153718d3ba3a1c7dd8dd7f28691f4673498680d7f094b83db357aa4012103c71e9c61b2092b415b8ae4d5107786770cff927196efd12e39ed55477baefcde" + } + }, + { + "txid": "d6d6e8e0d70326e1c82ae71e8f083ef201935ce8edd3dd3e06708306ac61e139", + "vout": 0, + "sequence": 4294967295, + "scriptSig": { + "hex": "473044022053eb77ad34f47bcf00fdc845119d673948e2c6c0d21e6ec82d903598b32194df0220379127f024b85b964b52d3a7f501d7dad0b77321675d5d1ba6f0dc8f09305837012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4" + } } - }, - { - "txid": "9981e6f063099598afcc9011cb83faf89882ad8ff04464c48e8311681ca79e2e", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "483045022100d84f351d070103e614487ef7e8a7f5a6d60b6c51566aa1262111f8be1cad47d702203e0f36fec153718d3ba3a1c7dd8dd7f28691f4673498680d7f094b83db357aa4012103c71e9c61b2092b415b8ae4d5107786770cff927196efd12e39ed55477baefcde" + ], + "vout": [ + { + "value": 0.00017339, + "n": 0, + "scriptPubKey": { + "hex": "76a9147270edc07db25cd4a7b99e54fd3c0c76076ba02688ac" + } + }, + { + "value": 1.00000000, + "n": 1, + "scriptPubKey": { + "hex": "a9141458b33294f0791f682c0d181ea757730faeeca887" + } } - }, - { - "txid": "d6d6e8e0d70326e1c82ae71e8f083ef201935ce8edd3dd3e06708306ac61e139", - "vout": 0, - "sequence": 4294967295, - "scriptSig": { - "hex": "473044022053eb77ad34f47bcf00fdc845119d673948e2c6c0d21e6ec82d903598b32194df0220379127f024b85b964b52d3a7f501d7dad0b77321675d5d1ba6f0dc8f09305837012102940f4b3a9737f208c8cb1fe5ae8b317d06d0ca6e63dca5a04f735eb7d42377e4" - } - } - ], - "vout": [ - { - "value": 0.00017339, - "n": 0, - "scriptPubKey": { - "hex": "76a9147270edc07db25cd4a7b99e54fd3c0c76076ba02688ac" - } - }, - { - "value": 1.00000000, - "n": 1, - "scriptPubKey": { - "hex": "a9141458b33294f0791f682c0d181ea757730faeeca887" - } - } - ] - } - ] + ] + } + ] + } } } } diff --git a/tests/tests.json b/tests/tests.json index 5abe6990..db3335c5 100644 --- a/tests/tests.json +++ b/tests/tests.json @@ -10,7 +10,7 @@ "bitcoin": { "rpc": ["GetBlock", "GetBlockHash", "GetTransaction", "GetTransactionForMempool", "MempoolSync", "EstimateSmartFee", "EstimateFee", "GetBestBlockHash", "GetBestBlockHeight", "GetBlockHeader"], - "sync": ["ConnectBlocksParallel"] + "sync": ["ConnectBlocksParallel", "ConnectBlocks"] }, "bitcoin_testnet": { "rpc": ["GetBlock", "GetBlockHash", "GetTransaction", "GetTransactionForMempool", "MempoolSync",