@@ -428,8 +428,15 @@ Bitcoin.prototype._resetCaches = function() {
428
428
this . blockOverviewCache . reset ( ) ;
429
429
} ;
430
430
431
- Bitcoin . prototype . _tryAll = function ( func , callback ) {
432
- async . retry ( { times : this . nodes . length , interval : this . tryAllInterval || 1000 } , func , callback ) ;
431
+ Bitcoin . prototype . _tryAllClients = function ( func , callback ) {
432
+ var self = this ;
433
+ var nodesIndex = 0 ;
434
+ var retry = function ( done ) {
435
+ var client = self . nodes [ nodesIndex ] . client ;
436
+ nodesIndex ++ ;
437
+ func ( client , done ) ;
438
+ } ;
439
+ async . retry ( { times : this . nodes . length , interval : this . tryAllInterval || 1000 } , retry , callback ) ;
433
440
} ;
434
441
435
442
Bitcoin . prototype . _wrapRPCError = function ( errObj ) {
@@ -1537,8 +1544,8 @@ Bitcoin.prototype.getAddressSummary = function(addressArg, options, callback) {
1537
1544
Bitcoin . prototype . _maybeGetBlockHash = function ( blockArg , callback ) {
1538
1545
var self = this ;
1539
1546
if ( _ . isNumber ( blockArg ) || ( blockArg . length < 40 && / ^ [ 0 - 9 ] + $ / . test ( blockArg ) ) ) {
1540
- self . _tryAll ( function ( done ) {
1541
- self . client . getBlockHash ( blockArg , function ( err , response ) {
1547
+ self . _tryAllClients ( function ( client , done ) {
1548
+ client . getBlockHash ( blockArg , function ( err , response ) {
1542
1549
if ( err ) {
1543
1550
return done ( self . _wrapRPCError ( err ) ) ;
1544
1551
}
@@ -1563,7 +1570,7 @@ Bitcoin.prototype.getRawBlock = function(blockArg, callback) {
1563
1570
if ( err ) {
1564
1571
return callback ( err ) ;
1565
1572
}
1566
- self . _tryAll ( function ( done ) {
1573
+ self . _tryAllClients ( function ( client , done ) {
1567
1574
self . client . getBlock ( blockhash , false , function ( err , response ) {
1568
1575
if ( err ) {
1569
1576
return done ( self . _wrapRPCError ( err ) ) ;
@@ -1603,8 +1610,8 @@ Bitcoin.prototype.getBlockOverview = function(blockArg, callback) {
1603
1610
callback ( null , cachedBlock ) ;
1604
1611
} ) ;
1605
1612
} else {
1606
- self . _tryAll ( function ( done ) {
1607
- self . client . getBlock ( blockhash , true , function ( err , response ) {
1613
+ self . _tryAllClients ( function ( client , done ) {
1614
+ client . getBlock ( blockhash , true , function ( err , response ) {
1608
1615
if ( err ) {
1609
1616
return done ( self . _wrapRPCError ( err ) ) ;
1610
1617
}
@@ -1654,8 +1661,8 @@ Bitcoin.prototype.getBlock = function(blockArg, callback) {
1654
1661
callback ( null , cachedBlock ) ;
1655
1662
} ) ;
1656
1663
} else {
1657
- self . _tryAll ( function ( done ) {
1658
- self . client . getBlock ( blockhash , false , function ( err , response ) {
1664
+ self . _tryAllClients ( function ( client , done ) {
1665
+ client . getBlock ( blockhash , false , function ( err , response ) {
1659
1666
if ( err ) {
1660
1667
return done ( self . _wrapRPCError ( err ) ) ;
1661
1668
}
@@ -1713,8 +1720,8 @@ Bitcoin.prototype.getBlockHeader = function(blockArg, callback) {
1713
1720
if ( err ) {
1714
1721
return callback ( err ) ;
1715
1722
}
1716
- self . _tryAll ( function ( done ) {
1717
- self . client . getBlockHeader ( blockhash , function ( err , response ) {
1723
+ self . _tryAllClients ( function ( client , done ) {
1724
+ client . getBlockHeader ( blockhash , function ( err , response ) {
1718
1725
if ( err ) {
1719
1726
return done ( self . _wrapRPCError ( err ) ) ;
1720
1727
}
@@ -1795,8 +1802,8 @@ Bitcoin.prototype.getRawTransaction = function(txid, callback) {
1795
1802
callback ( null , tx ) ;
1796
1803
} ) ;
1797
1804
} else {
1798
- self . _tryAll ( function ( done ) {
1799
- self . client . getRawTransaction ( txid , function ( err , response ) {
1805
+ self . _tryAllClients ( function ( client , done ) {
1806
+ client . getRawTransaction ( txid , function ( err , response ) {
1800
1807
if ( err ) {
1801
1808
return done ( self . _wrapRPCError ( err ) ) ;
1802
1809
}
@@ -1822,8 +1829,8 @@ Bitcoin.prototype.getTransaction = function(txid, callback) {
1822
1829
callback ( null , tx ) ;
1823
1830
} ) ;
1824
1831
} else {
1825
- self . _tryAll ( function ( done ) {
1826
- self . client . getRawTransaction ( txid , function ( err , response ) {
1832
+ self . _tryAllClients ( function ( client , done ) {
1833
+ client . getRawTransaction ( txid , function ( err , response ) {
1827
1834
if ( err ) {
1828
1835
return done ( self . _wrapRPCError ( err ) ) ;
1829
1836
}
@@ -1937,8 +1944,8 @@ Bitcoin.prototype.getDetailedTransaction = function(txid, callback) {
1937
1944
callback ( null , tx ) ;
1938
1945
} ) ;
1939
1946
} else {
1940
- self . _tryAll ( function ( done ) {
1941
- self . client . getRawTransaction ( txid , 1 , function ( err , response ) {
1947
+ self . _tryAllClients ( function ( client , done ) {
1948
+ client . getRawTransaction ( txid , 1 , function ( err , response ) {
1942
1949
if ( err ) {
1943
1950
return done ( self . _wrapRPCError ( err ) ) ;
1944
1951
}
0 commit comments