|
|
|
@ -1684,7 +1684,7 @@ var methods = [ |
|
|
|
|
inputFormatter: [utils.toHex, function(param){ return (!param) ? false : true; }]}, |
|
|
|
|
{ name: 'getUncle', call: uncleCall, |
|
|
|
|
outputFormatter: formatters.outputBlockFormatter, |
|
|
|
|
inputFormatter: [utils.toHex, function(param){ return (!param) ? false : true; }]}, |
|
|
|
|
inputFormatter: [utils.toHex, utils.toHex, function(param){ return (!param) ? false : true; }]}, |
|
|
|
|
{ name: 'getCompilers', call: 'eth_getCompilers' }, |
|
|
|
|
{ name: 'getBlockTransactionCount', call: getBlockTransactionCountCall, |
|
|
|
|
outputFormatter: utils.toDecimal, |
|
|
|
@ -1703,9 +1703,9 @@ var methods = [ |
|
|
|
|
inputFormatter: formatters.inputTransactionFormatter }, |
|
|
|
|
{ name: 'call', call: 'eth_call', addDefaultblock: 2, |
|
|
|
|
inputFormatter: formatters.inputCallFormatter }, |
|
|
|
|
{ name: 'compile.solidity', call: 'eth_compileSolidity' }, |
|
|
|
|
{ name: 'compile.lll', call: 'eth_compileLLL' }, |
|
|
|
|
{ name: 'compile.serpent', call: 'eth_compileSerpent' }, |
|
|
|
|
{ name: 'compile.solidity', call: 'eth_compileSolidity', inputFormatter: utils.toHex }, |
|
|
|
|
{ name: 'compile.lll', call: 'eth_compileLLL', inputFormatter: utils.toHex }, |
|
|
|
|
{ name: 'compile.serpent', call: 'eth_compileSerpent', inputFormatter: utils.toHex }, |
|
|
|
|
{ name: 'flush', call: 'eth_flush' }, |
|
|
|
|
|
|
|
|
|
// deprecated methods
|
|
|
|
@ -1939,12 +1939,34 @@ var getOptions = function (options) { |
|
|
|
|
|
|
|
|
|
options = options || {}; |
|
|
|
|
|
|
|
|
|
if (options.topics) |
|
|
|
|
console.warn('"topics" is deprecated, is "topic" instead'); |
|
|
|
|
if (options.topic) { |
|
|
|
|
console.warn('"topic" is deprecated, is "topics" instead'); |
|
|
|
|
options.topics = options.topic; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (options.earliest) { |
|
|
|
|
console.warn('"earliest" is deprecated, is "fromBlock" instead'); |
|
|
|
|
options.fromBlock = options.earliest; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (options.latest) { |
|
|
|
|
console.warn('"latest" is deprecated, is "toBlock" instead'); |
|
|
|
|
options.toBlock = options.latest; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (options.skip) { |
|
|
|
|
console.warn('"skip" is deprecated, is "offset" instead'); |
|
|
|
|
options.offset = options.skip; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (options.max) { |
|
|
|
|
console.warn('"max" is deprecated, is "limit" instead'); |
|
|
|
|
options.limit = options.max; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// make sure topics, get converted to hex
|
|
|
|
|
if(options.topic instanceof Array) { |
|
|
|
|
options.topic = options.topic.map(function(topic){ |
|
|
|
|
if(options.topics instanceof Array) { |
|
|
|
|
options.topics = options.topics.map(function(topic){ |
|
|
|
|
return utils.toHex(topic); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
@ -1952,13 +1974,13 @@ var getOptions = function (options) { |
|
|
|
|
|
|
|
|
|
// evaluate lazy properties
|
|
|
|
|
return { |
|
|
|
|
fromBlock: utils.toHex(options.fromBlock), |
|
|
|
|
toBlock: utils.toHex(options.toBlock), |
|
|
|
|
limit: utils.toHex(options.limit), |
|
|
|
|
offset: utils.toHex(options.offset), |
|
|
|
|
to: options.to, |
|
|
|
|
topic: options.topic, |
|
|
|
|
earliest: options.earliest, |
|
|
|
|
latest: options.latest, |
|
|
|
|
max: options.max, |
|
|
|
|
skip: options.skip, |
|
|
|
|
address: options.address |
|
|
|
|
address: options.address, |
|
|
|
|
topics: options.topics |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -2269,6 +2291,7 @@ if ("build" !== 'build') {/* |
|
|
|
|
*/} |
|
|
|
|
|
|
|
|
|
var HttpProvider = function (host) { |
|
|
|
|
this.name = 'HTTP'; |
|
|
|
|
this.handlers = []; |
|
|
|
|
this.host = host || 'http://localhost:8080'; |
|
|
|
|
}; |
|
|
|
@ -2280,8 +2303,14 @@ HttpProvider.prototype.send = function (payload, callback) { |
|
|
|
|
// ASYNC
|
|
|
|
|
if(typeof callback === 'function') { |
|
|
|
|
request.onreadystatechange = function() { |
|
|
|
|
if(request.readyState === 4 && request.status === 200) { |
|
|
|
|
callback(JSON.parse(request.responseText)); |
|
|
|
|
if(request.readyState === 4) { |
|
|
|
|
var result = ''; |
|
|
|
|
try { |
|
|
|
|
result = JSON.parse(request.responseText) |
|
|
|
|
} catch(error) { |
|
|
|
|
result = error; |
|
|
|
|
} |
|
|
|
|
callback(result, request.status); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -2518,19 +2547,26 @@ var requestManager = function() { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ASYNC (only when callback is given, and it a HttpProvidor)
|
|
|
|
|
if(typeof callback === 'function' && provider.host){ |
|
|
|
|
provider.send(payload, function(result){ |
|
|
|
|
// HTTP ASYNC (only when callback is given, and it a HttpProvidor)
|
|
|
|
|
if(typeof callback === 'function' && provider.name === 'HTTP'){ |
|
|
|
|
provider.send(payload, function(result, status){ |
|
|
|
|
|
|
|
|
|
if (!jsonrpc.isValidResponse(result)) { |
|
|
|
|
console.log(result); |
|
|
|
|
if(typeof result === 'object' && result.error && result.error.message) |
|
|
|
|
if(typeof result === 'object' && result.error && result.error.message) { |
|
|
|
|
console.error(result.error.message); |
|
|
|
|
callback(result.error); |
|
|
|
|
} else { |
|
|
|
|
callback(new Error({ |
|
|
|
|
status: status, |
|
|
|
|
error: result, |
|
|
|
|
message: 'Bad Request' |
|
|
|
|
})); |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// format the output
|
|
|
|
|
callback((typeof data.outputFormatter === 'function') ? data.outputFormatter(result.result) : result.result); |
|
|
|
|
callback(null, (typeof data.outputFormatter === 'function') ? data.outputFormatter(result.result) : result.result); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// SYNC
|
|
|
|
|