2015-05-30 12:58:07 +02:00
|
|
|
var https = require('https')
|
|
|
|
|
|
|
|
function faucetWithdraw(address, amount, done) {
|
2015-05-30 14:20:04 +02:00
|
|
|
var url = "https://coconut-macaroon.herokuapp.com/withdrawal?address=" + address + "&amount=" + amount
|
2015-05-30 12:58:07 +02:00
|
|
|
https.get(url, function(res) {
|
|
|
|
res.statusCode == 200 ? done(null) : done(new Error("non-200 status: " + res.statusCode))
|
|
|
|
}).on('error', done)
|
|
|
|
}
|
|
|
|
|
2015-05-30 13:17:42 +02:00
|
|
|
function pollUnspent(blockchain, address, done) {
|
|
|
|
blockchain.addresses.unspents(address, function (err, unspents) {
|
|
|
|
if (err) return done(err)
|
|
|
|
|
|
|
|
if(unspents == null || unspents.length === 0) {
|
|
|
|
return setTimeout(function() {
|
|
|
|
pollUnspent(blockchain, address, done)
|
|
|
|
}, 200)
|
|
|
|
}
|
|
|
|
|
|
|
|
done(null, unspents)
|
|
|
|
})
|
2015-05-30 15:19:57 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function pollSummary(blockchain, address, done) {
|
|
|
|
blockchain.addresses.summary(address, function (err, result) {
|
|
|
|
if (err) return done(err)
|
|
|
|
|
|
|
|
if(result.balance == 0) {
|
|
|
|
return setTimeout(function() {
|
|
|
|
pollSummary(blockchain, address, done)
|
|
|
|
}, 200)
|
|
|
|
}
|
2015-05-30 13:17:42 +02:00
|
|
|
|
2015-05-30 15:19:57 +02:00
|
|
|
done(null, result)
|
|
|
|
})
|
2015-05-30 13:17:42 +02:00
|
|
|
}
|
|
|
|
|
2015-05-30 12:58:07 +02:00
|
|
|
module.exports = {
|
2015-05-30 13:17:42 +02:00
|
|
|
faucetWithdraw: faucetWithdraw,
|
2015-05-30 15:19:57 +02:00
|
|
|
pollUnspent: pollUnspent,
|
|
|
|
pollSummary: pollSummary
|
2015-05-30 12:58:07 +02:00
|
|
|
}
|