From a2b4558a0b423c0462098a9c4a7c8bcc75e844bf Mon Sep 17 00:00:00 2001
From: Wei Lu <luwei.here@gmail.com>
Date: Sat, 30 May 2015 18:58:07 +0800
Subject: [PATCH] replace helloblock with insight and blockr

---
 package.json                 |  3 ++-
 test/integration/advanced.js |  5 +++--
 test/integration/crypto.js   |  2 +-
 test/integration/multisig.js |  5 +++--
 test/integration/utils.js    | 12 ++++++++++++
 5 files changed, 21 insertions(+), 6 deletions(-)
 create mode 100644 test/integration/utils.js

diff --git a/package.json b/package.json
index 2fd829c..b02c0b3 100644
--- a/package.json
+++ b/package.json
@@ -57,7 +57,8 @@
     "async": "^0.9.0",
     "browserify": "^10.0.0",
     "bs58": "^2.0.1",
-    "cb-helloblock": "^0.4.13",
+    "cb-blockr": "^3.1.1",
+    "cb-insight": "git://github.com/weilu/cb-insight",
     "coveralls": "^2.11.2",
     "istanbul": "^0.3.5",
     "mocha": "^2.2.0",
diff --git a/test/integration/advanced.js b/test/integration/advanced.js
index e510f4f..65e9a5b 100644
--- a/test/integration/advanced.js
+++ b/test/integration/advanced.js
@@ -2,7 +2,8 @@
 
 var assert = require('assert')
 var bitcoin = require('../../')
-var blockchain = new (require('cb-helloblock'))('testnet')
+var blockchain = new (require('cb-insight'))('https://test-insight.bitpay.com')
+var faucetWithdraw = require('./utils').faucetWithdraw
 
 describe('bitcoinjs-lib (advanced)', function () {
   it('can sign a Bitcoin message', function () {
@@ -29,7 +30,7 @@ describe('bitcoinjs-lib (advanced)', function () {
     })
     var address = keyPair.getAddress().toString()
 
-    blockchain.addresses.__faucetWithdraw(address, 2e4, function (err) {
+    faucetWithdraw(address, 2e4, function (err) {
       if (err) return done(err)
 
       blockchain.addresses.unspents(address, function (err, unspents) {
diff --git a/test/integration/crypto.js b/test/integration/crypto.js
index 60e2cea..3d8f365 100644
--- a/test/integration/crypto.js
+++ b/test/integration/crypto.js
@@ -4,7 +4,7 @@ var assert = require('assert')
 var async = require('async')
 var bigi = require('bigi')
 var bitcoin = require('../../')
-var blockchain = new (require('cb-helloblock'))('bitcoin')
+var blockchain = new (require('cb-blockr'))('bitcoin')
 var crypto = require('crypto')
 
 describe('bitcoinjs-lib (crypto)', function () {
diff --git a/test/integration/multisig.js b/test/integration/multisig.js
index 4e2a8c0..414d3af 100644
--- a/test/integration/multisig.js
+++ b/test/integration/multisig.js
@@ -2,7 +2,8 @@
 
 var assert = require('assert')
 var bitcoin = require('../../')
-var blockchain = new (require('cb-helloblock'))('testnet')
+var blockchain = new (require('cb-insight'))('https://test-insight.bitpay.com')
+var faucetWithdraw = require('./utils').faucetWithdraw
 
 describe('bitcoinjs-lib (multisig)', function () {
   it('can create a 2-of-3 multisig P2SH address', function () {
@@ -37,7 +38,7 @@ describe('bitcoinjs-lib (multisig)', function () {
     var address = bitcoin.Address.fromOutputScript(scriptPubKey, bitcoin.networks.testnet).toString()
 
     // Attempt to send funds to the source address
-    blockchain.addresses.__faucetWithdraw(address, 2e4, function (err) {
+    faucetWithdraw(address, 2e4, function (err) {
       if (err) return done(err)
 
       // get latest unspents from the address
diff --git a/test/integration/utils.js b/test/integration/utils.js
new file mode 100644
index 0000000..d481973
--- /dev/null
+++ b/test/integration/utils.js
@@ -0,0 +1,12 @@
+var https = require('https')
+
+function faucetWithdraw(address, amount, done) {
+  var url = "https://coconut-macaroon.herokuapp.com/bitcoin/testnet/withdrawal?address=" + address + "&amount=" + amount
+  https.get(url, function(res) {
+    res.statusCode == 200 ? done(null) : done(new Error("non-200 status: " + res.statusCode))
+  }).on('error', done)
+}
+
+module.exports = {
+  faucetWithdraw: faucetWithdraw
+}