From d3608fb34c347072f8dafc3d660bbdf08e7f159e Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Wed, 29 Aug 2018 21:29:09 +0200 Subject: [PATCH] Add dogecoin and litecoin rpc test --- bchain/coins/dogecoin/dogecoinrpc_test.go | 72 +++++++++++++++++++++++ bchain/coins/litecoin/litecoinrpc_test.go | 72 +++++++++++++++++++++++ bchain/tests/rpc/config.json | 10 ++++ bchain/tests/rpc/testdata/Dogecoin.json | 53 +++++++++++++++++ bchain/tests/rpc/testdata/Litecoin.json | 49 +++++++++++++++ 5 files changed, 256 insertions(+) create mode 100644 bchain/coins/dogecoin/dogecoinrpc_test.go create mode 100644 bchain/coins/litecoin/litecoinrpc_test.go create mode 100644 bchain/tests/rpc/testdata/Dogecoin.json create mode 100644 bchain/tests/rpc/testdata/Litecoin.json diff --git a/bchain/coins/dogecoin/dogecoinrpc_test.go b/bchain/coins/dogecoin/dogecoinrpc_test.go new file mode 100644 index 00000000..17ffb0ef --- /dev/null +++ b/bchain/coins/dogecoin/dogecoinrpc_test.go @@ -0,0 +1,72 @@ +// +build integration + +package dogecoin + +import ( + "blockbook/bchain" + "blockbook/bchain/tests/rpc" + "encoding/json" + "flag" + "os" + "testing" +) + +func getRPCClient(cfg json.RawMessage) (bchain.BlockChain, error) { + c, err := NewDogecoinRPC(cfg, nil) + if err != nil { + return nil, err + } + cli := c.(*DogecoinRPC) + cli.Parser = NewDogecoinParser(GetChainParams("main"), cli.ChainConfig) + if err != nil { + return nil, err + } + cli.Mempool = bchain.NewUTXOMempool(cli, cli.ChainConfig.MempoolWorkers, cli.ChainConfig.MempoolSubWorkers) + return cli, nil +} + +var rpcTest *rpc.Test + +func TestMain(m *testing.M) { + flag.Parse() + t, err := rpc.NewTest("Dogecoin", getRPCClient) + if err != nil { + panic(err) + } + + rpcTest = t + + os.Exit(m.Run()) +} + +func TestDogecoinRPC_GetBlockHash(t *testing.T) { + rpcTest.TestGetBlockHash(t) +} + +func TestDogecoinRPC_GetBlock(t *testing.T) { + rpcTest.TestGetBlock(t) +} + +func TestDogecoinRPC_GetTransaction(t *testing.T) { + rpcTest.TestGetTransaction(t) +} + +func TestDogecoinRPC_GetTransactionForMempool(t *testing.T) { + rpcTest.TestGetTransactionForMempool(t) +} + +func TestDogecoinRPC_MempoolSync(t *testing.T) { + rpcTest.TestMempoolSync(t) +} + +func TestDogecoinRPC_GetMempoolEntry(t *testing.T) { + rpcTest.TestGetMempoolEntry(t) +} + +func TestDogecoinRPC_EstimateSmartFee(t *testing.T) { + rpcTest.TestEstimateSmartFee(t) +} + +func TestDogecoinRPC_EstimateFee(t *testing.T) { + rpcTest.TestEstimateFee(t) +} diff --git a/bchain/coins/litecoin/litecoinrpc_test.go b/bchain/coins/litecoin/litecoinrpc_test.go new file mode 100644 index 00000000..33a67b91 --- /dev/null +++ b/bchain/coins/litecoin/litecoinrpc_test.go @@ -0,0 +1,72 @@ +// +build integration + +package litecoin + +import ( + "blockbook/bchain" + "blockbook/bchain/tests/rpc" + "encoding/json" + "flag" + "os" + "testing" +) + +func getRPCClient(cfg json.RawMessage) (bchain.BlockChain, error) { + c, err := NewLitecoinRPC(cfg, nil) + if err != nil { + return nil, err + } + cli := c.(*LitecoinRPC) + cli.Parser = NewLitecoinParser(GetChainParams("main"), cli.ChainConfig) + if err != nil { + return nil, err + } + cli.Mempool = bchain.NewUTXOMempool(cli, cli.ChainConfig.MempoolWorkers, cli.ChainConfig.MempoolSubWorkers) + return cli, nil +} + +var rpcTest *rpc.Test + +func TestMain(m *testing.M) { + flag.Parse() + t, err := rpc.NewTest("Litecoin", getRPCClient) + if err != nil { + panic(err) + } + + rpcTest = t + + os.Exit(m.Run()) +} + +func TestLitecoinRPC_GetBlockHash(t *testing.T) { + rpcTest.TestGetBlockHash(t) +} + +func TestLitecoinRPC_GetBlock(t *testing.T) { + rpcTest.TestGetBlock(t) +} + +func TestLitecoinRPC_GetTransaction(t *testing.T) { + rpcTest.TestGetTransaction(t) +} + +func TestLitecoinRPC_GetTransactionForMempool(t *testing.T) { + rpcTest.TestGetTransactionForMempool(t) +} + +func TestLitecoinRPC_MempoolSync(t *testing.T) { + rpcTest.TestMempoolSync(t) +} + +func TestLitecoinRPC_GetMempoolEntry(t *testing.T) { + rpcTest.TestGetMempoolEntry(t) +} + +func TestLitecoinRPC_EstimateSmartFee(t *testing.T) { + rpcTest.TestEstimateSmartFee(t) +} + +func TestLitecoinRPC_EstimateFee(t *testing.T) { + rpcTest.TestEstimateFee(t) +} diff --git a/bchain/tests/rpc/config.json b/bchain/tests/rpc/config.json index 8bbe587e..2e8be7a8 100644 --- a/bchain/tests/rpc/config.json +++ b/bchain/tests/rpc/config.json @@ -19,11 +19,21 @@ "user": "rpc", "pass": "rpc" }, + "Litecoin": { + "url": "http://localhost:8034", + "user": "rpc", + "pass": "rpc" + }, "Ethereum": { "url": "ws://localhost:8036", "user": null, "pass": null }, + "Dogecoin": { + "url": "http://localhost:8038", + "user": "rpc", + "pass": "rpcp" + }, "Namecoin": { "url": "http://localhost:8039", "user": "rpc", diff --git a/bchain/tests/rpc/testdata/Dogecoin.json b/bchain/tests/rpc/testdata/Dogecoin.json new file mode 100644 index 00000000..75b32f85 --- /dev/null +++ b/bchain/tests/rpc/testdata/Dogecoin.json @@ -0,0 +1,53 @@ +{ + "blockHeight": 2000002, + "blockHash": "6db0b6fc543cacbc4244f5fab23af56792a87eacc3149957a1922fd59d4d03e0", + "blockTime": 1512601001, + "blockTxs": [ + "cc3c92a9da8e28f18faf17efe74e96f541f03e3a300c55fef0c4dbc9e5b14c01", + "cb3cb43e34385556c9617699687b15f3dbad57cb0e8548114b66c55512c51a52", + "f6be02faa646a1ad764e4eb49fb6f02cbae69e5bc396a8977e59c7d887aa38b2", + "79883da5f57c942feb922e4bb635af631219aae2e70037459b07840945d6466c", + "23b5caddcb3c1222a0b97ff6f67185266b982465ef1a3546c7fc6ad8414ba7d0", + "82cf9f6822362ecfc0d47cc6b7372862ef0fdd14b259c42c8f2def8589f266f0", + "12a4e4daa6e3b842a2395c315f296f284ac2085e2f2fb4f356f94e08117963ba", + "cc136353be3db35e051e5dd34ff29f9cfe47a7b3f6ab7383fd644bc00ab1e348", + "f2db6749bc5f7e727f9e6c9a5553ad44dc59d9994dcadc24a57cf6042d1d07e7" + ], + "txDetails": { + "f6be02faa646a1ad764e4eb49fb6f02cbae69e5bc396a8977e59c7d887aa38b2": { + "hex": "0100000002361742ebea8bdce921359dbe528b23cc8050dc86950fd07011a74258cd0215dde5030000db00483045022100885238254408979e8f44c087c06333376980a73594c4d51c8cdf457934514e34022026287952d554f9f9f24c0a47096cce0db53547099aa700a91fa9046eb5c4960801483045022100a4ce7700bdf654dfe2a4fc5796bd3466be6af3691dc263821d4c71f91f9d9d1e02200b988bea6bf9e7d44e9a4b8cee9e390c72d284e3df1aacf6ab23368560b3e53e0147522102a39a18546545ee2944481953c25b3a5f4942cd8ed533ae2daabb4339c68c599b210349ed7f7284feff2b9d0b3493fde313afcc63b41347592c435f5408852c9ea05d52aeffffffff85f2900e642720043fae056075b48ea83cbd3653797c40fb4e7e512938dcda7573020000da004730440220138a8dd272f3081e54b172fb3e6cf43fe5375369d7e93c310ceba852c22ba16f022050de068f932f6d6db9889a8d4e489ffeda2ed1848cd2a71a06d635e6d1799b8e01483045022100af99d412c97062219ef56c3c8ad99023feab94042d310f792392940c61df9bdd02200b4542395624412260c96c46427509c2b801df33e15da08c6c505594c7c142010147522102a39a18546545ee2944481953c25b3a5f4942cd8ed533ae2daabb4339c68c599b210349ed7f7284feff2b9d0b3493fde313afcc63b41347592c435f5408852c9ea05d52aeffffffff01c0ebf7b90100000017a9147541523df4d0d0875c024e1906b0d195abaf20958700000000", + "txid": "f6be02faa646a1ad764e4eb49fb6f02cbae69e5bc396a8977e59c7d887aa38b2", + "blocktime": 1512601001, + "time": 1512601001, + "locktime": 0, + "version": 1, + "vin": [ + { + "txid": "dd1502cd5842a71170d00f9586dc5080cc238b52be9d3521e9dc8beaeb421736", + "vout": 997, + "scriptSig": { + "hex": "00483045022100885238254408979e8f44c087c06333376980a73594c4d51c8cdf457934514e34022026287952d554f9f9f24c0a47096cce0db53547099aa700a91fa9046eb5c4960801483045022100a4ce7700bdf654dfe2a4fc5796bd3466be6af3691dc263821d4c71f91f9d9d1e02200b988bea6bf9e7d44e9a4b8cee9e390c72d284e3df1aacf6ab23368560b3e53e0147522102a39a18546545ee2944481953c25b3a5f4942cd8ed533ae2daabb4339c68c599b210349ed7f7284feff2b9d0b3493fde313afcc63b41347592c435f5408852c9ea05d52ae" + }, + "sequence": 4294967295 + }, + { + "txid": "75dadc3829517e4efb407c795336bd3ca88eb4756005ae3f042027640e90f285", + "vout": 627, + "scriptSig": { + "hex": "004730440220138a8dd272f3081e54b172fb3e6cf43fe5375369d7e93c310ceba852c22ba16f022050de068f932f6d6db9889a8d4e489ffeda2ed1848cd2a71a06d635e6d1799b8e01483045022100af99d412c97062219ef56c3c8ad99023feab94042d310f792392940c61df9bdd02200b4542395624412260c96c46427509c2b801df33e15da08c6c505594c7c142010147522102a39a18546545ee2944481953c25b3a5f4942cd8ed533ae2daabb4339c68c599b210349ed7f7284feff2b9d0b3493fde313afcc63b41347592c435f5408852c9ea05d52ae" + }, + "sequence": 4294967295 + } + ], + "vout": [ + { + "value": 74.15000000, + "n": 0, + "scriptPubKey": { + "hex": "a9147541523df4d0d0875c024e1906b0d195abaf209587" + } + } + ] + } + } +} \ No newline at end of file diff --git a/bchain/tests/rpc/testdata/Litecoin.json b/bchain/tests/rpc/testdata/Litecoin.json new file mode 100644 index 00000000..4f5a5f5a --- /dev/null +++ b/bchain/tests/rpc/testdata/Litecoin.json @@ -0,0 +1,49 @@ +{ + "blockHeight": 1377592, + "blockHash": "bddb1cfbd474e9516399b373e411bd33c1a71cb01aa8469a27d397ef0a891c7d", + "blockTime": 1519947864, + "blockTxs": [ + "84e9147bf6e171adbda3b3961e467652286d9d9c2933d19326bf84766d047922", + "8d6e628b891dd17bfe3bb5a24a6c7f02ebc2cf499a85515d0325033aa74ab53a", + "5b77ca9735f65d110b086be410658d0239e1fcee13231942a262b35a5b8d6a91", + "19ad3daa2447be4e000d822f79ce252f274b016dacf1418b433d36c0aaf24f18", + "5bffbf0c8ff66d298d94dc323c3644e21932dfc733603d6637ff46cb8d34466c", + "90d587e35b23905f0125111f41d69bb6c7eed44f0944caad2903aae1f174ac49" + ], + "txDetails": { + "19ad3daa2447be4e000d822f79ce252f274b016dacf1418b433d36c0aaf24f18": { + "hex": "010000000001011f9216c16c78386540d7ae7d32657c388ef5f204596f84ea0851dcb78c479a87010000001716001432d094c8e2efd308d2c69affd6712ebbf7a5a286ffffffff0289544a110000000017a91457ca840d6c811dd6808722babe3f88d2fdb2ca14875bb1c9180000000017a91482696a9b4188eda8f93b120315cad4260cbb90db8702483045022100aa256153317133fa719180935017671e33ca77df6f5426554f5b0855f07a392b02202684e8c30623e1c4e753ea23a95bd571e1fda7d15dc0b1e2d54ff5bc50329256012103399a1d98f0733ef400ff8d4f43fe4543065f7f387c863361c77a8826321ca6fb00000000", + "txid": "19ad3daa2447be4e000d822f79ce252f274b016dacf1418b433d36c0aaf24f18", + "blocktime": 1519947864, + "time": 1519947864, + "locktime": 0, + "version": 1, + "vin": [ + { + "txid": "879a478cb7dc5108ea846f5904f2f58e387c65327daed7406538786cc116921f", + "vout": 1, + "scriptSig": { + "hex": "16001432d094c8e2efd308d2c69affd6712ebbf7a5a286" + }, + "sequence": 4294967295 + } + ], + "vout": [ + { + "value": 2.90083977, + "n": 0, + "scriptPubKey": { + "hex": "a91457ca840d6c811dd6808722babe3f88d2fdb2ca1487" + } + }, + { + "value": 4.15871323, + "n": 1, + "scriptPubKey": { + "hex": "a91482696a9b4188eda8f93b120315cad4260cbb90db87" + } + } + ] + } + } +} \ No newline at end of file