uri: allow empty keys.
This commit is contained in:
parent
6e7a19ef35
commit
e82950a6e8
@ -8,7 +8,6 @@
|
||||
|
||||
var util = require('../utils/util');
|
||||
var Address = require('../primitives/address');
|
||||
var KeyRing = require('../primitives/keyring');
|
||||
var Amount = require('./amount');
|
||||
var assert = require('assert');
|
||||
|
||||
@ -17,11 +16,9 @@ var assert = require('assert');
|
||||
* @constructor
|
||||
* @param {Object|String} options
|
||||
* @property {Address} address
|
||||
* @property {Number|-1} version
|
||||
* @property {Amount} amount
|
||||
* @property {String|null} label
|
||||
* @property {String|null} message
|
||||
* @property {KeyRing|null} key
|
||||
* @property {String|null} request
|
||||
*/
|
||||
|
||||
@ -201,10 +198,9 @@ function BitcoinQuery() {
|
||||
function parsePairs(str) {
|
||||
var parts = str.split('&');
|
||||
var data = new BitcoinQuery();
|
||||
var size = 0;
|
||||
var i, index, pair, key, value;
|
||||
|
||||
assert(parts.length <= 4, 'Too many keys in querystring.');
|
||||
|
||||
for (i = 0; i < parts.length; i++) {
|
||||
pair = parts[i];
|
||||
index = pair.indexOf('=');
|
||||
@ -217,6 +213,13 @@ function parsePairs(str) {
|
||||
value = pair.substring(index + 1);
|
||||
}
|
||||
|
||||
if (key.length === 0) {
|
||||
assert(value.length === 0, 'Empty key in querystring.');
|
||||
continue;
|
||||
}
|
||||
|
||||
assert(size < 4, 'Too many keys in querystring.');
|
||||
|
||||
switch (key) {
|
||||
case 'amount':
|
||||
assert(data.amount == null, 'Duplicate key in querystring (amount).');
|
||||
@ -238,6 +241,8 @@ function parsePairs(str) {
|
||||
assert(false, 'Unknown querystring key: ' + value);
|
||||
break;
|
||||
}
|
||||
|
||||
size++;
|
||||
}
|
||||
|
||||
return data;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user