diff --git a/bchain/coins/btc/bitcoinrpc_test.go b/bchain/coins/btc/bitcoinrpc_test.go index 9da65080..266e6a35 100644 --- a/bchain/coins/btc/bitcoinrpc_test.go +++ b/bchain/coins/btc/bitcoinrpc_test.go @@ -56,3 +56,15 @@ func TestBitcoinRPC_TestMempoolSync(t *testing.T) { func TestBitcoinRPC_GetMempoolEntry(t *testing.T) { rpcTest.TestGetMempoolEntry(t) } + +func TestBitcoinRPC_SendRawTransaction(t *testing.T) { + rpcTest.TestSendRawTransaction(t) +} + +func TestBitcoinRPC_EstimateSmartFee(t *testing.T) { + rpcTest.TestEstimateSmartFee(t) +} + +func TestBitcoinRPC_EstimateFee(t *testing.T) { + rpcTest.TestEstimateFee(t) +} diff --git a/bchain/tests/rpc/rpc.go b/bchain/tests/rpc/rpc.go index 15f799f3..4c39de7c 100644 --- a/bchain/tests/rpc/rpc.go +++ b/bchain/tests/rpc/rpc.go @@ -284,3 +284,39 @@ func (rt *Test) TestGetMempoolEntry(t *testing.T) { } t.Skip("Skipping test, all attempts to get mempool entry failed due to network state changes") } + +func (rt *Test) TestSendRawTransaction(t *testing.T) { + for txid, tx := range rt.TestData.TxDetails { + _, err := rt.Client.SendRawTransaction(tx.Hex) + if err != nil { + if err, ok := err.(*bchain.RPCError); ok && err.Code == -27 { + continue + } + } + t.Errorf("SendRawTransaction() for %s returned unexpected error: %#v", txid, err) + } +} + +func (rt *Test) TestEstimateSmartFee(t *testing.T) { + for _, blocks := range []int{1, 2, 3, 5, 10} { + fee, err := rt.Client.EstimateSmartFee(blocks, true) + if err != nil { + t.Error(err) + } + if fee != -1 && (fee < 0 || fee > 1) { + t.Errorf("EstimateSmartFee() returned unexpected fee rate: %f", fee) + } + } +} + +func (rt *Test) TestEstimateFee(t *testing.T) { + for _, blocks := range []int{1, 2, 3, 5, 10} { + fee, err := rt.Client.EstimateFee(blocks) + if err != nil { + t.Error(err) + } + if fee != -1 && (fee < 0 || fee > 1) { + t.Errorf("EstimateFee() returned unexpected fee rate: %f", fee) + } + } +} diff --git a/bchain/tests/rpc/testdata/Bitcoin_Testnet.json b/bchain/tests/rpc/testdata/Bitcoin_Testnet.json index 0eb09a8a..ece3c941 100644 --- a/bchain/tests/rpc/testdata/Bitcoin_Testnet.json +++ b/bchain/tests/rpc/testdata/Bitcoin_Testnet.json @@ -78,43 +78,43 @@ } ] }, - "5bef621ad6d0970939ae36270a3228d3c315f8008fb04eebffab5f7a3589d114": { - "hex": "01000000025b0551bd0fffcf55881e285e15b364ab9a831d2494d2eb7a163a4bbd6f551151000000006b483045022100dff500e8c060a9c8810483d4ada8f91c0b844e92778cc762300040870109c0be02207029fa781ec37ddeb0ffbfa7160e625afdd126f30ec11fb9bc25f4d2164933bb0121023c6017ab9f471a69157180c5e30b9aef2ff73ea2a1a774c53a975e2557536314ffffffffd49a58913818610b0aa065d4f32995863d216c44040a49d454f6b7eeb65c9adc010000006b483045022100dce24b819b70f920d0bb60fa1241fa14f2500412a60aceeaae2610e1593b5e3c022041fdc5a02dc26af043bea27713f1245340b98bd47aa283e23b96ecc4aae157a4012102d18a88bcf5f65d937de7d9bc24d2f492a55216087262bf4683d0055dd0521a56feffffff02da869800000000001976a914b4f1349ec3e7c751c6720e2c0783e3449e21e36888ac80fe210a000000001976a914b4f1349ec3e7c751c6720e2c0783e3449e21e36888ac00000000", - "txid": "5bef621ad6d0970939ae36270a3228d3c315f8008fb04eebffab5f7a3589d114", + "3005378ee85fc905a1812bdfae4b2e0e9bb09f5867a53fd73237bb319a1774aa": { + "hex": "01000000000102c997f74e9ad52a44446302381e0fa6de080dadadf55842588bde1be8a47b438000000000171600147edbcdda98080eeb6e8a63c63da135498295c3cdffffffff563c9674a40bf1aa1063f767a50d2288146116fe869012ad3dad03d71e74a8800100000017160014af97d082fd5de049bce2991d9dcaa5d3035a1b04ffffffff0290f4f700000000001976a914abba3808b854c70b63ff038fcddfbafcb707713988ac74b77b030100000017a914fb1e0f36e2d8e91a43c7faba7dae18a610070c4a87024730440220538fcd8fbbf39b813372a7ff6251f1d22c9e940f54272ab525e1d1dc5f03049b022066cc5a1c445573e7e069fdaf3aa33d6665ef5f7936cb155cfd9093e888ca9461012102b45e239d96f8504ae45a32af7c80f6164f7b9658166e318521ee822192fee3ef0248304502210089e579ce52f765c8de6033e1cee93c94aa9a5ef3a194fec12885ed163dc60688022050aadd6aa170c6cfb58f406497949b0140327b4889ca7e082bdcfa8cc03d487f012103fb1a838f38d587dea0532f4a15a39b96e411cdb37c5160ba576a4cb0072db01900000000", + "txid": "3005378ee85fc905a1812bdfae4b2e0e9bb09f5867a53fd73237bb319a1774aa", "blocktime": 1528788394, "time": 1528788394, "locktime": 0, "vin": [ { - "txid": "5111556fbd4b3a167aebd294241d839aab64b3155e281e8855cfff0fbd51055b", + "txid": "80437ba4e81bde8b584258f5adad0d08dea60f1e38026344442ad59a4ef797c9", "vout": 0, "sequence": 4294967295, "scriptSig": { - "hex": "483045022100dff500e8c060a9c8810483d4ada8f91c0b844e92778cc762300040870109c0be02207029fa781ec37ddeb0ffbfa7160e625afdd126f30ec11fb9bc25f4d2164933bb0121023c6017ab9f471a69157180c5e30b9aef2ff73ea2a1a774c53a975e2557536314" + "hex": "1600147edbcdda98080eeb6e8a63c63da135498295c3cd" } }, { - "txid": "dc9a5cb6eeb7f654d4490a04446c213d869529f3d465a00a0b61183891589ad4", + "txid": "80a8741ed703ad3dad129086fe16611488220da567f76310aaf10ba474963c56", "vout": 1, - "sequence": 4294967294, + "sequence": 4294967295, "scriptSig": { - "hex": "483045022100dce24b819b70f920d0bb60fa1241fa14f2500412a60aceeaae2610e1593b5e3c022041fdc5a02dc26af043bea27713f1245340b98bd47aa283e23b96ecc4aae157a4012102d18a88bcf5f65d937de7d9bc24d2f492a55216087262bf4683d0055dd0521a56" + "hex": "160014af97d082fd5de049bce2991d9dcaa5d3035a1b04" } } ], "vout": [ { - "value": 0.09995994, + "value": 0.16250000, "n": 0, "scriptPubKey": { - "hex": "76a914b4f1349ec3e7c751c6720e2c0783e3449e21e36888ac" + "hex": "76a914abba3808b854c70b63ff038fcddfbafcb707713988ac" } }, { - "value": 1.7, + "value": 43.53406836, "n": 1, "scriptPubKey": { - "hex": "76a914b4f1349ec3e7c751c6720e2c0783e3449e21e36888ac" + "hex": "a914fb1e0f36e2d8e91a43c7faba7dae18a610070c4a87" } } ]