@@ -59,7 +59,7 @@ func (suite *BitcoinObserverTestSuite) SetupTest() {
59
59
base .DefaultLogger (), nil )
60
60
suite .Require ().NoError (err )
61
61
suite .Require ().NotNil (ob )
62
- suite .rpcClient , err = getRPCClient (18332 )
62
+ suite .rpcClient , err = createRPCClient (18332 )
63
63
suite .Require ().NoError (err )
64
64
skBytes , err := hex .DecodeString (skHex )
65
65
suite .Require ().NoError (err )
@@ -91,13 +91,14 @@ func (suite *BitcoinObserverTestSuite) SetupTest() {
91
91
func (suite * BitcoinObserverTestSuite ) TearDownSuite () {
92
92
}
93
93
94
- func getRPCClient (chainID int64 ) (* rpcclient.Client , error ) {
94
+ // createRPCClient creates a new Bitcoin RPC client for given chainID
95
+ func createRPCClient (chainID int64 ) (* rpcclient.Client , error ) {
95
96
var connCfg * rpcclient.ConnConfig
96
97
rpcMainnet := os .Getenv ("BTC_RPC_MAINNET" )
97
98
rpcTestnet := os .Getenv ("BTC_RPC_TESTNET" )
98
99
99
100
// mainnet
100
- if chainID == 8332 {
101
+ if chainID == chains . BitcoinMainnet . ChainId {
101
102
connCfg = & rpcclient.ConnConfig {
102
103
Host : rpcMainnet , // mainnet endpoint goes here
103
104
User : "user" ,
@@ -108,7 +109,7 @@ func getRPCClient(chainID int64) (*rpcclient.Client, error) {
108
109
}
109
110
}
110
111
// testnet3
111
- if chainID == 18332 {
112
+ if chainID == chains . BitcoinTestnet . ChainId {
112
113
connCfg = & rpcclient.ConnConfig {
113
114
Host : rpcTestnet , // testnet endpoint goes here
114
115
User : "user" ,
@@ -218,6 +219,7 @@ func TestBitcoinObserverLive(t *testing.T) {
218
219
// LiveTestBitcoinFeeRate(t)
219
220
// LiveTestAvgFeeRateMainnetMempoolSpace(t)
220
221
// LiveTestAvgFeeRateTestnetMempoolSpace(t)
222
+ // LiveTestGetRecentFeeRate(t)
221
223
// LiveTestGetSenderByVin(t)
222
224
}
223
225
@@ -243,7 +245,7 @@ func LiveTestNewRPCClient(t *testing.T) {
243
245
// LiveTestGetBlockHeightByHash queries Bitcoin block height by hash
244
246
func LiveTestGetBlockHeightByHash (t * testing.T ) {
245
247
// setup Bitcoin client
246
- client , err := getRPCClient ( 8332 )
248
+ client , err := createRPCClient ( chains . BitcoinMainnet . ChainId )
247
249
require .NoError (t , err )
248
250
249
251
// the block hashes to test
@@ -265,7 +267,7 @@ func LiveTestGetBlockHeightByHash(t *testing.T) {
265
267
// and compares Conservative and Economical fee rates for different block targets (1 and 2)
266
268
func LiveTestBitcoinFeeRate (t * testing.T ) {
267
269
// setup Bitcoin client
268
- client , err := getRPCClient ( 8332 )
270
+ client , err := createRPCClient ( chains . BitcoinMainnet . ChainId )
269
271
require .NoError (t , err )
270
272
bn , err := client .GetBlockCount ()
271
273
if err != nil {
@@ -390,7 +392,7 @@ func compareAvgFeeRate(t *testing.T, client *rpcclient.Client, startBlock int, e
390
392
// LiveTestAvgFeeRateMainnetMempoolSpace compares calculated fee rate with mempool.space fee rate for mainnet
391
393
func LiveTestAvgFeeRateMainnetMempoolSpace (t * testing.T ) {
392
394
// setup Bitcoin client
393
- client , err := getRPCClient ( 8332 )
395
+ client , err := createRPCClient ( chains . BitcoinMainnet . ChainId )
394
396
require .NoError (t , err )
395
397
396
398
// test against mempool.space API for 10000 blocks
@@ -404,7 +406,7 @@ func LiveTestAvgFeeRateMainnetMempoolSpace(t *testing.T) {
404
406
// LiveTestAvgFeeRateTestnetMempoolSpace compares calculated fee rate with mempool.space fee rate for testnet
405
407
func LiveTestAvgFeeRateTestnetMempoolSpace (t * testing.T ) {
406
408
// setup Bitcoin client
407
- client , err := getRPCClient ( 18332 )
409
+ client , err := createRPCClient ( chains . BitcoinTestnet . ChainId )
408
410
require .NoError (t , err )
409
411
410
412
// test against mempool.space API for 10000 blocks
@@ -415,11 +417,23 @@ func LiveTestAvgFeeRateTestnetMempoolSpace(t *testing.T) {
415
417
compareAvgFeeRate (t , client , startBlock , endBlock , true )
416
418
}
417
419
420
+ // LiveTestGetRecentFeeRate gets the highest fee rate from recent blocks
421
+ func LiveTestGetRecentFeeRate (t * testing.T ) {
422
+ // setup Bitcoin testnet client
423
+ client , err := createRPCClient (chains .BitcoinTestnet .ChainId )
424
+ require .NoError (t , err )
425
+
426
+ // get fee rate from recent blocks
427
+ feeRate , err := rpc .GetRecentFeeRate (client , & chaincfg .TestNet3Params )
428
+ require .NoError (t , err )
429
+ require .Greater (t , feeRate , uint64 (0 ))
430
+ }
431
+
418
432
// LiveTestGetSenderByVin gets sender address for each vin and compares with mempool.space sender address
419
433
func LiveTestGetSenderByVin (t * testing.T ) {
420
434
// setup Bitcoin client
421
- chainID := int64 ( 8332 )
422
- client , err := getRPCClient (chainID )
435
+ chainID := chains . BitcoinMainnet . ChainId
436
+ client , err := createRPCClient (chainID )
423
437
require .NoError (t , err )
424
438
425
439
// net params
0 commit comments