bitcoind-rpc
Advanced tools
Comparing version 0.3.1 to 0.4.0
@@ -188,3 +188,3 @@ 'use strict'; | ||
sendFrom: 'str str float int str str', | ||
sendMany: 'str str int str', //not sure this is will work | ||
sendMany: 'str obj int str', //not sure this is will work | ||
sendRawTransaction: '', | ||
@@ -257,2 +257,8 @@ sendToAddress: 'str float str str', | ||
return (arg === true || arg == '1' || arg == 'true' || arg.toString().toLowerCase() == 'true'); | ||
}, | ||
obj: function(arg) { | ||
if(typeof arg === 'string') { | ||
return JSON.parse(arg); | ||
} | ||
return arg; | ||
} | ||
@@ -259,0 +265,0 @@ }; |
{ | ||
"name": "bitcoind-rpc", | ||
"description": "Bitcoin Client Library to connect to Bitcoin Core via RPC", | ||
"version": "0.3.1", | ||
"version": "0.4.0", | ||
"author": { | ||
@@ -6,0 +6,0 @@ "name": "Stephen Pair", |
@@ -13,2 +13,4 @@ 'use strict'; | ||
if(!setImmediate) setImmediate = setTimeout; | ||
describe('RpcClient', function() { | ||
@@ -110,6 +112,6 @@ | ||
var req = new FakeRequest(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('data', '{}'); | ||
res.emit('end'); | ||
}, 10); | ||
}); | ||
callback(res); | ||
@@ -142,6 +144,6 @@ return req; | ||
var req = new FakeRequest(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('data', req.data); | ||
res.emit('end'); | ||
}, 10); | ||
}); | ||
callback(res); | ||
@@ -165,2 +167,39 @@ return req; | ||
it('should process object arguments', function(done) { | ||
var client = new RpcClient({ | ||
user: 'user', | ||
pass: 'pass', | ||
host: 'localhost', | ||
port: 8332, | ||
rejectUnauthorized: true, | ||
disableAgent: false | ||
}); | ||
var requestStub = sinon.stub(client.protocol, 'request', function(options, callback){ | ||
var res = new FakeResponse(); | ||
var req = new FakeRequest(); | ||
setImmediate(function(){ | ||
res.emit('data', req.data); | ||
res.emit('end'); | ||
}); | ||
callback(res); | ||
return req; | ||
}); | ||
var obj = {'n28S35tqEMbt6vNad7A5K3mZ7vdn8dZ86X': 1}; | ||
async.eachSeries([obj, JSON.stringify(obj)], function(i, next) { | ||
client.sendMany('account', i, function(error, parsedBuf) { | ||
should.not.exist(error); | ||
should.exist(parsedBuf); | ||
parsedBuf.params[1].should.have.property('n28S35tqEMbt6vNad7A5K3mZ7vdn8dZ86X', 1); | ||
next(); | ||
}); | ||
}, function(err) { | ||
requestStub.restore(); | ||
done(); | ||
}); | ||
}); | ||
it('should batch calls for a method and receive a response', function(done) { | ||
@@ -179,6 +218,6 @@ | ||
var res = new FakeResponse(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('data', '[{}, {}, {}]'); | ||
res.emit('end'); | ||
}, 10); | ||
}); | ||
callback(res); | ||
@@ -220,5 +259,5 @@ return new FakeRequest(); | ||
res.statusCode = 401; | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('end'); | ||
}, 10); | ||
}); | ||
callback(res); | ||
@@ -251,5 +290,5 @@ return new FakeRequest(); | ||
res.statusCode = 403; | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('end'); | ||
}, 10); | ||
}); | ||
callback(res); | ||
@@ -280,11 +319,11 @@ return new FakeRequest(); | ||
var requestStub = sinon.stub(client.protocol, 'request', function(options, callback){ | ||
var req = new FakeRequest(); | ||
setImmediate(function(){ | ||
req.emit('error', new Error('write EPIPE')); | ||
}); | ||
var res = new FakeResponse(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('data', '{}'); | ||
res.emit('end'); | ||
}, 10); | ||
var req = new FakeRequest(); | ||
setTimeout(function(){ | ||
req.emit('error', new Error('write EPIPE')); | ||
}, 8); | ||
}); | ||
callback(res); | ||
@@ -316,10 +355,10 @@ return req; | ||
var res = new FakeResponse(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('data', '{}'); | ||
res.emit('end'); | ||
}, 8); | ||
}); | ||
var req = new FakeRequest(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
req.emit('error', new Error('write EPIPE')); | ||
}, 10); | ||
}); | ||
callback(res); | ||
@@ -351,5 +390,5 @@ req.on('error', function(err) { | ||
var req = new FakeRequest(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
req.emit('error', new Error('connect ECONNREFUSED')); | ||
}, 10); | ||
}); | ||
callback(res); | ||
@@ -381,6 +420,6 @@ return req; | ||
var res = new FakeResponse(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('data', 'not a json string'); | ||
res.emit('end'); | ||
}, 8); | ||
}); | ||
var req = new FakeRequest(); | ||
@@ -413,6 +452,6 @@ callback(res); | ||
var res = new FakeResponse(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('data', ''); | ||
res.emit('end'); | ||
}, 8); | ||
}); | ||
var req = new FakeRequest(); | ||
@@ -452,6 +491,6 @@ callback(res); | ||
var res = new FakeResponse(); | ||
setTimeout(function(){ | ||
setImmediate(function(){ | ||
res.emit('data', '{}'); | ||
res.emit('end'); | ||
}, 8); | ||
}); | ||
var req = new FakeRequest(); | ||
@@ -458,0 +497,0 @@ callback(res); |
664
24800
8