From 91c015e4024c7774c7d9299aa25572161ed44f29 Mon Sep 17 00:00:00 2001 From: Fabian Vogelsteller Date: Fri, 20 Feb 2015 12:40:09 +0100 Subject: [PATCH 1/2] Made to/fromWei return strings instead of numbers --- bower.json | 5 +++++ dist/ethereum.js | 13 +++++++------ dist/ethereum.js.map | 4 ++-- dist/ethereum.min.js | 2 +- lib/utils.js | 13 +++++++------ package.json | 5 +++++ test/utils.fromWei.js | 22 ++++++++++++++++++++++ test/utils.toWei.js | 22 ++++++++++++++++++++++ 8 files changed, 71 insertions(+), 15 deletions(-) create mode 100644 test/utils.fromWei.js create mode 100644 test/utils.toWei.js diff --git a/bower.json b/bower.json index b9a0487..8cf459b 100644 --- a/bower.json +++ b/bower.json @@ -30,6 +30,11 @@ "name": "Marian Oancea", "email": "marian@ethdev.com", "homepage": "https://github.com/cubedro" + }, + { + "name": "Fabian Vogelsteller", + "email": "fabian@ethdev.com", + "homepage": "https://github.com/frozeman" } ], "license": "LGPL-3.0", diff --git a/dist/ethereum.js b/dist/ethereum.js index 7a4a18c..3178070 100644 --- a/dist/ethereum.js +++ b/dist/ethereum.js @@ -1555,6 +1555,7 @@ var toEth = function (str) { return s + ' ' + units[unit]; }; + var toDecimal = function (val) { // remove 0x and place 0, if it's required val = val.length > 2 ? val.substring(2) : "0"; @@ -1579,9 +1580,9 @@ Possible units are: - tether @method fromWei -@param {Number|String} number can be a number or a HEX of a decimal +@param {Number|String} number can be a number, number string or a HEX of a decimal @param {String} unit the unit to convert to -@return {Number|Object} When given a BigNumber object it returns one as well, otherwise a number +@return {String|Object} When given a BigNumber object it returns one as well, otherwise a number */ var fromWei = function(number, unit) { var isBigNumber = true; @@ -1638,7 +1639,7 @@ var fromWei = function(number, unit) { break; } - return (isBigNumber) ? number : number.toNumber(); + return (isBigNumber) ? number : number.toString(10); }; /** @@ -1658,9 +1659,9 @@ Possible units are: - tether @method toWei -@param {Number|String} number can be a number or a HEX of a decimal +@param {Number|String} number can be a number, number string or a HEX of a decimal @param {String} unit the unit to convert to -@return {Number|Object} When given a BigNumber object it returns one as well, otherwise a number +@return {String|Object} When given a BigNumber object it returns one as well, otherwise a number */ var toWei = function(number, unit) { var isBigNumber = true; @@ -1717,7 +1718,7 @@ var toWei = function(number, unit) { break; } - return (isBigNumber) ? number : number.toNumber(); + return (isBigNumber) ? number : number.toString(10); }; diff --git a/dist/ethereum.js.map b/dist/ethereum.js.map index febda12..9640ae8 100644 --- a/dist/ethereum.js.map +++ b/dist/ethereum.js.map @@ -22,7 +22,7 @@ "index.js" ], "names": [], - "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA", + "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA", "file": "generated.js", "sourceRoot": "", "sourcesContent": [ @@ -41,7 +41,7 @@ "/*\n This file is part of ethereum.js.\n\n ethereum.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n ethereum.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with ethereum.js. If not, see .\n*/\n/** @file requestmanager.js\n * @authors:\n * Jeffrey Wilcke \n * Marek Kotewicz \n * Marian Oancea \n * Gav Wood \n * @date 2014\n */\n\nvar jsonrpc = require('./jsonrpc');\nvar c = require('./const');\n\n/**\n * It's responsible for passing messages to providers\n * It's also responsible for polling the ethereum node for incoming messages\n * Default poll timeout is 1 second\n */\nvar requestManager = function() {\n var polls = [];\n var provider;\n\n var send = function (data) {\n var payload = jsonrpc.toPayload(data.method, data.params);\n \n if (!provider) {\n console.error('provider is not set');\n return null;\n }\n\n var result = provider.send(payload);\n\n if (!jsonrpc.isValidResponse(result)) {\n console.log(result);\n return null;\n }\n \n return result.result;\n };\n\n var setProvider = function (p) {\n provider = p;\n };\n\n var startPolling = function (data, pollId, callback, uninstall) {\n polls.push({data: data, id: pollId, callback: callback, uninstall: uninstall});\n };\n\n var stopPolling = function (pollId) {\n for (var i = polls.length; i--;) {\n var poll = polls[i];\n if (poll.id === pollId) {\n polls.splice(i, 1);\n }\n }\n };\n\n var reset = function () {\n polls.forEach(function (poll) {\n poll.uninstall(poll.id); \n });\n polls = [];\n };\n\n var poll = function () {\n polls.forEach(function (data) {\n var result = send(data.data);\n if (!(result instanceof Array) || result.length === 0) {\n return;\n }\n data.callback(result);\n });\n setTimeout(poll, c.ETH_POLLING_TIMEOUT);\n };\n \n poll();\n\n return {\n send: send,\n setProvider: setProvider,\n startPolling: startPolling,\n stopPolling: stopPolling,\n reset: reset\n };\n};\n\nmodule.exports = requestManager;\n\n", "/*\n This file is part of ethereum.js.\n\n ethereum.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n ethereum.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with ethereum.js. If not, see .\n*/\n/** @file shh.js\n * @authors:\n * Marek Kotewicz \n * @date 2015\n */\n\n/// @returns an array of objects describing web3.shh api methods\nvar methods = function () {\n return [\n { name: 'post', call: 'shh_post' },\n { name: 'newIdentity', call: 'shh_newIdentity' },\n { name: 'haveIdentity', call: 'shh_haveIdentity' },\n { name: 'newGroup', call: 'shh_newGroup' },\n { name: 'addToGroup', call: 'shh_addToGroup' }\n ];\n};\n\nmodule.exports = {\n methods: methods\n};\n\n", "/*\n This file is part of ethereum.js.\n\n ethereum.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n ethereum.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with ethereum.js. If not, see .\n*/\n/** @file types.js\n * @authors:\n * Marek Kotewicz \n * @date 2015\n */\n\nvar f = require('./formatters');\n\n/// @param expected type prefix (string)\n/// @returns function which checks if type has matching prefix. if yes, returns true, otherwise false\nvar prefixedType = function (prefix) {\n return function (type) {\n return type.indexOf(prefix) === 0;\n };\n};\n\n/// @param expected type name (string)\n/// @returns function which checks if type is matching expected one. if yes, returns true, otherwise false\nvar namedType = function (name) {\n return function (type) {\n return name === type;\n };\n};\n\n/// Setups input formatters for solidity types\n/// @returns an array of input formatters \nvar inputTypes = function () {\n \n return [\n { type: prefixedType('uint'), format: f.formatInputInt },\n { type: prefixedType('int'), format: f.formatInputInt },\n { type: prefixedType('hash'), format: f.formatInputInt },\n { type: prefixedType('string'), format: f.formatInputString }, \n { type: prefixedType('real'), format: f.formatInputReal },\n { type: prefixedType('ureal'), format: f.formatInputReal },\n { type: namedType('address'), format: f.formatInputInt },\n { type: namedType('bool'), format: f.formatInputBool }\n ];\n};\n\n/// Setups output formaters for solidity types\n/// @returns an array of output formatters\nvar outputTypes = function () {\n\n return [\n { type: prefixedType('uint'), format: f.formatOutputUInt },\n { type: prefixedType('int'), format: f.formatOutputInt },\n { type: prefixedType('hash'), format: f.formatOutputHash },\n { type: prefixedType('string'), format: f.formatOutputString },\n { type: prefixedType('real'), format: f.formatOutputReal },\n { type: prefixedType('ureal'), format: f.formatOutputUReal },\n { type: namedType('address'), format: f.formatOutputAddress },\n { type: namedType('bool'), format: f.formatOutputBool }\n ];\n};\n\nmodule.exports = {\n prefixedType: prefixedType,\n namedType: namedType,\n inputTypes: inputTypes,\n outputTypes: outputTypes\n};\n\n", - "/*\n This file is part of ethereum.js.\n\n ethereum.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n ethereum.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with ethereum.js. If not, see .\n*/\n/** @file utils.js\n * @authors:\n * Marek Kotewicz \n * @date 2015\n */\n\nvar c = require('./const');\n\nif (\"build\" !== 'build') {/*\n var BigNumber = require('bignumber.js'); // jshint ignore:line\n*/}\n\n/// Finds first index of array element matching pattern\n/// @param array\n/// @param callback pattern\n/// @returns index of element\nvar findIndex = function (array, callback) {\n var end = false;\n var i = 0;\n for (; i < array.length && !end; i++) {\n end = callback(array[i]);\n }\n return end ? i - 1 : -1;\n};\n\n/// @returns ascii string representation of hex value prefixed with 0x\nvar toAscii = function(hex) {\n// Find termination\n var str = \"\";\n var i = 0, l = hex.length;\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n for (; i < l; i+=2) {\n var code = parseInt(hex.substr(i, 2), 16);\n if (code === 0) {\n break;\n }\n\n str += String.fromCharCode(code);\n }\n\n return str;\n};\n \nvar toHex = function(str) {\n var hex = \"\";\n for(var i = 0; i < str.length; i++) {\n var n = str.charCodeAt(i).toString(16);\n hex += n.length < 2 ? '0' + n : n;\n }\n\n return hex;\n};\n\n/// @returns hex representation (prefixed by 0x) of ascii string\nvar fromAscii = function(str, pad) {\n pad = pad === undefined ? 0 : pad;\n var hex = toHex(str);\n while (hex.length < pad*2)\n hex += \"00\";\n return \"0x\" + hex;\n};\n\n/// @returns display name for function/event eg. multiply(uint256) -> multiply\nvar extractDisplayName = function (name) {\n var length = name.indexOf('('); \n return length !== -1 ? name.substr(0, length) : name;\n};\n\n/// @returns overloaded part of function/event name\nvar extractTypeName = function (name) {\n /// TODO: make it invulnerable\n var length = name.indexOf('(');\n return length !== -1 ? name.substr(length + 1, name.length - 1 - (length + 1)).replace(' ', '') : \"\";\n};\n\n/// Filters all function from input abi\n/// @returns abi array with filtered objects of type 'function'\nvar filterFunctions = function (json) {\n return json.filter(function (current) {\n return current.type === 'function'; \n }); \n};\n\n/// Filters all events form input abi\n/// @returns abi array with filtered objects of type 'event'\nvar filterEvents = function (json) {\n return json.filter(function (current) {\n return current.type === 'event';\n });\n};\n\n/// used to transform value/string to eth string\n/// TODO: use BigNumber.js to parse int\n/// TODO: add tests for it!\nvar toEth = function (str) {\n\n console.warn('This method is deprecated please use eth.fromWei(number, unit) instead.');\n\n var val = typeof str === \"string\" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str;\n var unit = 0;\n var units = c.ETH_UNITS;\n while (val > 3000 && unit < units.length - 1)\n {\n val /= 1000;\n unit++;\n }\n var s = val.toString().length < val.toFixed(2).length ? val.toString() : val.toFixed(2);\n var replaceFunction = function($0, $1, $2) {\n return $1 + ',' + $2;\n };\n\n while (true) {\n var o = s;\n s = s.replace(/(\\d)(\\d\\d\\d[\\.\\,])/, replaceFunction);\n if (o === s)\n break;\n }\n return s + ' ' + units[unit];\n};\n\nvar toDecimal = function (val) {\n // remove 0x and place 0, if it's required\n val = val.length > 2 ? val.substring(2) : \"0\";\n return (new BigNumber(val, 16).toString(10));\n};\n\n\n/**\nTakes a number of wei and converts it to any other ether unit.\n\nPossible units are:\n\n - kwei/ada\n - mwei/babbage\n - gwei/shannon\n - szabo\n - finney\n - ether\n - kether/grand/einstein\n - mether\n - gether\n - tether\n\n@method fromWei\n@param {Number|String} number can be a number or a HEX of a decimal\n@param {String} unit the unit to convert to\n@return {Number|Object} When given a BigNumber object it returns one as well, otherwise a number\n*/\nvar fromWei = function(number, unit) {\n var isBigNumber = true;\n\n if(!number)\n return number;\n\n if(typeof number === 'string' && number.indexOf('0x') === 0)\n number = toDecimal(number);\n \n if(!(number instanceof BigNumber)) {\n isBigNumber = false;\n number = new BigNumber(number.toString()); // toString to prevent errors, the user have to handle giving correct bignums themselves\n }\n\n\n unit = unit.toLowerCase();\n\n switch(unit) {\n case 'kwei':\n case 'ada':\n number = number.dividedBy(1000);\n break;\n case 'mwei':\n case 'babbage':\n number = number.dividedBy(1000000);\n break;\n case 'gwei':\n case 'schannon':\n number = number.dividedBy(1000000000);\n break;\n case 'szabo':\n number = number.dividedBy(1000000000000);\n break;\n case 'finney':\n number = number.dividedBy(1000000000000000);\n break;\n case 'ether':\n number = number.dividedBy(1000000000000000000);\n break;\n case 'kether':\n case 'grand':\n case 'einstein':\n number = number.dividedBy(1000000000000000000000);\n break;\n case 'mether':\n number = number.dividedBy(1000000000000000000000000);\n break;\n case 'gether':\n number = number.dividedBy(1000000000000000000000000000);\n break;\n case 'tether':\n number = number.dividedBy(1000000000000000000000000000000);\n break;\n }\n\n return (isBigNumber) ? number : number.toNumber();\n};\n\n/**\nTakes a number of a unit and converts it to wei.\n\nPossible units are:\n\n - kwei/ada\n - mwei/babbage\n - gwei/shannon\n - szabo\n - finney\n - ether\n - kether/grand/einstein\n - mether\n - gether\n - tether\n\n@method toWei\n@param {Number|String} number can be a number or a HEX of a decimal\n@param {String} unit the unit to convert to\n@return {Number|Object} When given a BigNumber object it returns one as well, otherwise a number\n*/\nvar toWei = function(number, unit) {\n var isBigNumber = true;\n\n if(!number)\n return number;\n\n if(typeof number === 'string' && number.indexOf('0x') === 0)\n number = toDecimal(number);\n\n if(!(number instanceof BigNumber)) {\n isBigNumber = false;\n number = new BigNumber(number.toString());// toString to prevent errors, the user have to handle giving correct bignums themselves\n }\n\n\n unit = unit.toLowerCase();\n\n switch(unit) {\n case 'kwei':\n case 'ada':\n number = number.times(1000);\n break;\n case 'mwei':\n case 'babbage':\n number = number.times(1000000);\n break;\n case 'gwei':\n case 'schannon':\n number = number.times(1000000000);\n break;\n case 'szabo':\n number = number.times(1000000000000);\n break;\n case 'finney':\n number = number.times(1000000000000000);\n break;\n case 'ether':\n number = number.times(1000000000000000000);\n break;\n case 'kether':\n case 'grand':\n case 'einstein':\n number = number.times(1000000000000000000000);\n break;\n case 'mether':\n number = number.times(1000000000000000000000000);\n break;\n case 'gether':\n number = number.times(1000000000000000000000000000);\n break;\n case 'tether':\n number = number.times(1000000000000000000000000000000);\n break;\n }\n\n return (isBigNumber) ? number : number.toNumber();\n};\n\n\n/**\nChecks if the given string is a valid ethereum HEX address.\n\n@method isAddress\n@param {String} address the given HEX adress\n@return {Boolean}\n*/\nvar isAddress = function(address) {\n if(address.indexOf('0x') === 0 && address.length !== 42)\n return false;\n if(address.indexOf('0x') === -1 && address.length !== 40)\n return false;\n\n return /^\\w+$/.test(address);\n};\n\n\nmodule.exports = {\n findIndex: findIndex,\n toDecimal: toDecimal,\n toAscii: toAscii,\n fromAscii: fromAscii,\n extractDisplayName: extractDisplayName,\n extractTypeName: extractTypeName,\n filterFunctions: filterFunctions,\n filterEvents: filterEvents,\n toEth: toEth,\n toWei: toWei,\n fromWei: fromWei,\n isAddress: isAddress\n};\n\n", + "/*\n This file is part of ethereum.js.\n\n ethereum.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n ethereum.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with ethereum.js. If not, see .\n*/\n/** @file utils.js\n * @authors:\n * Marek Kotewicz \n * @date 2015\n */\n\nvar c = require('./const');\n\nif (\"build\" !== 'build') {/*\n var BigNumber = require('bignumber.js'); // jshint ignore:line\n*/}\n\n/// Finds first index of array element matching pattern\n/// @param array\n/// @param callback pattern\n/// @returns index of element\nvar findIndex = function (array, callback) {\n var end = false;\n var i = 0;\n for (; i < array.length && !end; i++) {\n end = callback(array[i]);\n }\n return end ? i - 1 : -1;\n};\n\n/// @returns ascii string representation of hex value prefixed with 0x\nvar toAscii = function(hex) {\n// Find termination\n var str = \"\";\n var i = 0, l = hex.length;\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n for (; i < l; i+=2) {\n var code = parseInt(hex.substr(i, 2), 16);\n if (code === 0) {\n break;\n }\n\n str += String.fromCharCode(code);\n }\n\n return str;\n};\n \nvar toHex = function(str) {\n var hex = \"\";\n for(var i = 0; i < str.length; i++) {\n var n = str.charCodeAt(i).toString(16);\n hex += n.length < 2 ? '0' + n : n;\n }\n\n return hex;\n};\n\n/// @returns hex representation (prefixed by 0x) of ascii string\nvar fromAscii = function(str, pad) {\n pad = pad === undefined ? 0 : pad;\n var hex = toHex(str);\n while (hex.length < pad*2)\n hex += \"00\";\n return \"0x\" + hex;\n};\n\n/// @returns display name for function/event eg. multiply(uint256) -> multiply\nvar extractDisplayName = function (name) {\n var length = name.indexOf('('); \n return length !== -1 ? name.substr(0, length) : name;\n};\n\n/// @returns overloaded part of function/event name\nvar extractTypeName = function (name) {\n /// TODO: make it invulnerable\n var length = name.indexOf('(');\n return length !== -1 ? name.substr(length + 1, name.length - 1 - (length + 1)).replace(' ', '') : \"\";\n};\n\n/// Filters all function from input abi\n/// @returns abi array with filtered objects of type 'function'\nvar filterFunctions = function (json) {\n return json.filter(function (current) {\n return current.type === 'function'; \n }); \n};\n\n/// Filters all events form input abi\n/// @returns abi array with filtered objects of type 'event'\nvar filterEvents = function (json) {\n return json.filter(function (current) {\n return current.type === 'event';\n });\n};\n\n/// used to transform value/string to eth string\n/// TODO: use BigNumber.js to parse int\n/// TODO: add tests for it!\nvar toEth = function (str) {\n\n console.warn('This method is deprecated please use eth.fromWei(number, unit) instead.');\n\n var val = typeof str === \"string\" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str;\n var unit = 0;\n var units = c.ETH_UNITS;\n while (val > 3000 && unit < units.length - 1)\n {\n val /= 1000;\n unit++;\n }\n var s = val.toString().length < val.toFixed(2).length ? val.toString() : val.toFixed(2);\n var replaceFunction = function($0, $1, $2) {\n return $1 + ',' + $2;\n };\n\n while (true) {\n var o = s;\n s = s.replace(/(\\d)(\\d\\d\\d[\\.\\,])/, replaceFunction);\n if (o === s)\n break;\n }\n return s + ' ' + units[unit];\n};\n\n\nvar toDecimal = function (val) {\n // remove 0x and place 0, if it's required\n val = val.length > 2 ? val.substring(2) : \"0\";\n return (new BigNumber(val, 16).toString(10));\n};\n\n\n/**\nTakes a number of wei and converts it to any other ether unit.\n\nPossible units are:\n\n - kwei/ada\n - mwei/babbage\n - gwei/shannon\n - szabo\n - finney\n - ether\n - kether/grand/einstein\n - mether\n - gether\n - tether\n\n@method fromWei\n@param {Number|String} number can be a number, number string or a HEX of a decimal\n@param {String} unit the unit to convert to\n@return {String|Object} When given a BigNumber object it returns one as well, otherwise a number\n*/\nvar fromWei = function(number, unit) {\n var isBigNumber = true;\n\n if(!number)\n return number;\n\n if(typeof number === 'string' && number.indexOf('0x') === 0)\n number = toDecimal(number);\n \n if(!(number instanceof BigNumber)) {\n isBigNumber = false;\n number = new BigNumber(number.toString()); // toString to prevent errors, the user have to handle giving correct bignums themselves\n }\n\n\n unit = unit.toLowerCase();\n\n switch(unit) {\n case 'kwei':\n case 'ada':\n number = number.dividedBy(1000);\n break;\n case 'mwei':\n case 'babbage':\n number = number.dividedBy(1000000);\n break;\n case 'gwei':\n case 'schannon':\n number = number.dividedBy(1000000000);\n break;\n case 'szabo':\n number = number.dividedBy(1000000000000);\n break;\n case 'finney':\n number = number.dividedBy(1000000000000000);\n break;\n case 'ether':\n number = number.dividedBy(1000000000000000000);\n break;\n case 'kether':\n case 'grand':\n case 'einstein':\n number = number.dividedBy(1000000000000000000000);\n break;\n case 'mether':\n number = number.dividedBy(1000000000000000000000000);\n break;\n case 'gether':\n number = number.dividedBy(1000000000000000000000000000);\n break;\n case 'tether':\n number = number.dividedBy(1000000000000000000000000000000);\n break;\n }\n\n return (isBigNumber) ? number : number.toString(10);\n};\n\n/**\nTakes a number of a unit and converts it to wei.\n\nPossible units are:\n\n - kwei/ada\n - mwei/babbage\n - gwei/shannon\n - szabo\n - finney\n - ether\n - kether/grand/einstein\n - mether\n - gether\n - tether\n\n@method toWei\n@param {Number|String} number can be a number, number string or a HEX of a decimal\n@param {String} unit the unit to convert to\n@return {String|Object} When given a BigNumber object it returns one as well, otherwise a number\n*/\nvar toWei = function(number, unit) {\n var isBigNumber = true;\n\n if(!number)\n return number;\n\n if(typeof number === 'string' && number.indexOf('0x') === 0)\n number = toDecimal(number);\n\n if(!(number instanceof BigNumber)) {\n isBigNumber = false;\n number = new BigNumber(number.toString());// toString to prevent errors, the user have to handle giving correct bignums themselves\n }\n\n\n unit = unit.toLowerCase();\n\n switch(unit) {\n case 'kwei':\n case 'ada':\n number = number.times(1000);\n break;\n case 'mwei':\n case 'babbage':\n number = number.times(1000000);\n break;\n case 'gwei':\n case 'schannon':\n number = number.times(1000000000);\n break;\n case 'szabo':\n number = number.times(1000000000000);\n break;\n case 'finney':\n number = number.times(1000000000000000);\n break;\n case 'ether':\n number = number.times(1000000000000000000);\n break;\n case 'kether':\n case 'grand':\n case 'einstein':\n number = number.times(1000000000000000000000);\n break;\n case 'mether':\n number = number.times(1000000000000000000000000);\n break;\n case 'gether':\n number = number.times(1000000000000000000000000000);\n break;\n case 'tether':\n number = number.times(1000000000000000000000000000000);\n break;\n }\n\n return (isBigNumber) ? number : number.toString(10);\n};\n\n\n/**\nChecks if the given string is a valid ethereum HEX address.\n\n@method isAddress\n@param {String} address the given HEX adress\n@return {Boolean}\n*/\nvar isAddress = function(address) {\n if(address.indexOf('0x') === 0 && address.length !== 42)\n return false;\n if(address.indexOf('0x') === -1 && address.length !== 40)\n return false;\n\n return /^\\w+$/.test(address);\n};\n\n\nmodule.exports = {\n findIndex: findIndex,\n toDecimal: toDecimal,\n toAscii: toAscii,\n fromAscii: fromAscii,\n extractDisplayName: extractDisplayName,\n extractTypeName: extractTypeName,\n filterFunctions: filterFunctions,\n filterEvents: filterEvents,\n toEth: toEth,\n toWei: toWei,\n fromWei: fromWei,\n isAddress: isAddress\n};\n\n", "/*\n This file is part of ethereum.js.\n\n ethereum.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n ethereum.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with ethereum.js. If not, see .\n*/\n/** @file watches.js\n * @authors:\n * Marek Kotewicz \n * @date 2015\n */\n\n/// @returns an array of objects describing web3.eth.watch api methods\nvar eth = function () {\n var newFilter = function (args) {\n return typeof args[0] === 'string' ? 'eth_newFilterString' : 'eth_newFilter';\n };\n\n return [\n { name: 'newFilter', call: newFilter },\n { name: 'uninstallFilter', call: 'eth_uninstallFilter' },\n { name: 'getMessages', call: 'eth_filterLogs' }\n ];\n};\n\n/// @returns an array of objects describing web3.shh.watch api methods\nvar shh = function () {\n return [\n { name: 'newFilter', call: 'shh_newFilter' },\n { name: 'uninstallFilter', call: 'shh_uninstallFilter' },\n { name: 'getMessages', call: 'shh_getMessages' }\n ];\n};\n\nmodule.exports = {\n eth: eth,\n shh: shh\n};\n\n", "/*\n This file is part of ethereum.js.\n\n ethereum.js is free software: you can redistribute it and/or modify\n it under the terms of the GNU Lesser General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n ethereum.js is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public License\n along with ethereum.js. If not, see .\n*/\n/** @file web3.js\n * @authors:\n * Jeffrey Wilcke \n * Marek Kotewicz \n * Marian Oancea \n * Gav Wood \n * @date 2014\n */\n\nif (\"build\" !== 'build') {/*\n var BigNumber = require('bignumber.js');\n*/}\n\nvar eth = require('./eth');\nvar db = require('./db');\nvar shh = require('./shh');\nvar watches = require('./watches');\nvar filter = require('./filter');\nvar utils = require('./utils');\nvar requestManager = require('./requestmanager');\n\n/// @returns an array of objects describing web3 api methods\nvar web3Methods = function () {\n return [\n { name: 'sha3', call: 'web3_sha3' }\n ];\n};\n\n/// creates methods in a given object based on method description on input\n/// setups api calls for these methods\nvar setupMethods = function (obj, methods) {\n methods.forEach(function (method) {\n // allow for object methods 'myObject.method'\n var objectMethods = method.name.split('.'),\n callFunction = function () {\n var args = Array.prototype.slice.call(arguments);\n var call = typeof method.call === 'function' ? method.call(args) : method.call;\n\n // show deprecated warning\n if(method.newMethod)\n console.warn('This method is deprecated please use eth.'+ method.newMethod +'() instead.');\n\n return web3.manager.send({\n method: call,\n params: args\n });\n };\n\n if(objectMethods.length > 1) {\n if(!obj[objectMethods[0]])\n obj[objectMethods[0]] = {};\n\n obj[objectMethods[0]][objectMethods[1]] = callFunction;\n \n } else {\n\n obj[objectMethods[0]] = callFunction;\n }\n\n });\n};\n\n/// creates properties in a given object based on properties description on input\n/// setups api calls for these properties\nvar setupProperties = function (obj, properties) {\n properties.forEach(function (property) {\n var proto = {};\n proto.get = function () {\n\n // show deprecated warning\n if(property.newProperty)\n console.warn('This property is deprecated please use eth.'+ property.newProperty +' instead.');\n\n\n return web3.manager.send({\n method: property.getter\n });\n };\n\n if (property.setter) {\n proto.set = function (val) {\n\n // show deprecated warning\n if(property.newProperty)\n console.warn('This property is deprecated please use eth.'+ property.newProperty +' instead.');\n\n return web3.manager.send({\n method: property.setter,\n params: [val]\n });\n };\n }\n\n proto.enumerable = !property.newProperty;\n Object.defineProperty(obj, property.name, proto);\n\n });\n};\n\nvar startPolling = function (method, id, callback, uninstall) {\n web3.manager.startPolling({\n method: method, \n params: [id]\n }, id, callback, uninstall); \n};\n\nvar stopPolling = function (id) {\n web3.manager.stopPolling(id);\n};\n\nvar ethWatch = {\n startPolling: startPolling.bind(null, 'eth_changed'), \n stopPolling: stopPolling\n};\n\nvar shhWatch = {\n startPolling: startPolling.bind(null, 'shh_changed'), \n stopPolling: stopPolling\n};\n\n/// setups web3 object, and it's in-browser executed methods\nvar web3 = {\n manager: requestManager(),\n providers: {},\n\n /// @returns ascii string representation of hex value prefixed with 0x\n toAscii: utils.toAscii,\n\n /// @returns hex representation (prefixed by 0x) of ascii string\n fromAscii: utils.fromAscii,\n\n /// @returns decimal representaton of hex value prefixed by 0x\n toDecimal: utils.toDecimal,\n\n /// @returns hex representation (prefixed by 0x) of decimal value\n fromDecimal: function (val) {\n return \"0x\" + (new BigNumber(val).toString(16));\n },\n\n /// used to transform value/string to eth string\n toEth: utils.toEth,\n\n toWei: utils.toWei,\n fromWei: utils.fromWei,\n isAddress: utils.isAddress,\n\n\n /// eth object prototype\n eth: {\n contractFromAbi: function (abi) {\n return function(addr) {\n // Default to address of Config. TODO: rremove prior to genesis.\n addr = addr || '0xc6d9d2cd449a754c494264e1809c50e34d64562b';\n var ret = web3.eth.contract(addr, abi);\n ret.address = addr;\n return ret;\n };\n },\n\n /// @param filter may be a string, object or event\n /// @param indexed is optional, this is an object with optional event indexed params\n /// @param options is optional, this is an object with optional event options ('max'...)\n /// TODO: fix it, 4 params? no way\n watch: function (fil, indexed, options, formatter) {\n if (fil._isEvent) {\n return fil(indexed, options);\n }\n return filter(fil, ethWatch, formatter);\n }\n },\n\n /// db object prototype\n db: {},\n\n /// shh object prototype\n shh: {\n /// @param filter may be a string, object or event\n watch: function (fil) {\n return filter(fil, shhWatch);\n }\n },\n setProvider: function (provider) {\n web3.manager.setProvider(provider);\n },\n \n /// Should be called to reset state of web3 object\n /// Resets everything except manager\n reset: function () {\n web3.manager.reset(); \n }\n};\n\n/// setups all api methods\nsetupMethods(web3, web3Methods());\nsetupMethods(web3.eth, eth.methods);\nsetupProperties(web3.eth, eth.properties);\nsetupMethods(web3.db, db.methods());\nsetupMethods(web3.shh, shh.methods());\nsetupMethods(ethWatch, watches.eth());\nsetupMethods(shhWatch, watches.shh());\n\nmodule.exports = web3;\n\n", "var web3 = require('./lib/web3');\nweb3.providers.HttpSyncProvider = require('./lib/httpsync');\nweb3.providers.QtSyncProvider = require('./lib/qtsync');\nweb3.eth.contract = require('./lib/contract');\nweb3.abi = require('./lib/abi');\n\nmodule.exports = web3;\n" diff --git a/dist/ethereum.min.js b/dist/ethereum.min.js index 02e6d0e..1ad2ce8 100644 --- a/dist/ethereum.min.js +++ b/dist/ethereum.min.js @@ -1 +1 @@ -require=function t(e,n,r){function a(i,s){if(!n[i]){if(!e[i]){var u="function"==typeof require&&require;if(!s&&u)return u(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[i]={exports:{}};e[i][0].call(f.exports,function(t){var n=e[i][1][t];return a(n?n:t)},f,f.exports,t,e,n,r)}return n[i].exports}for(var o="function"==typeof require&&require,i=0;iv;v++)g.push(h(e.slice(0,r))),e=e.slice(r);n.push(g)}else a.prefixedType("string")(t[c].type)?(f=f.slice(r),n.push(h(e.slice(0,r))),e=e.slice(r)):(n.push(h(e.slice(0,r))),e=e.slice(r))}),n},d=function(t){var e={};return t.forEach(function(t){var n=r.extractDisplayName(t.name),a=r.extractTypeName(t.name),o=function(){var e=Array.prototype.slice.call(arguments);return l(t.inputs,e)};void 0===e[n]&&(e[n]=o),e[n][a]=o}),e},g=function(t){var e={};return t.forEach(function(t){var n=r.extractDisplayName(t.name),a=r.extractTypeName(t.name),o=function(e){return h(t.outputs,e)};void 0===e[n]&&(e[n]=o),e[n][a]=o}),e},v=function(t){return n.sha3(n.fromAscii(t)).slice(0,2+2*o.ETH_SIGNATURE_LENGTH)},y=function(t){return n.sha3(n.fromAscii(t))};e.exports={inputParser:d,outputParser:g,formatInput:l,formatOutput:h,signatureFromAscii:v,eventSignatureFromAscii:y}},{"./const":2,"./formatters":8,"./types":14,"./utils":15,"./web3":17}],2:[function(t,e){var n=["wei","Kwei","Mwei","Gwei","szabo","finney","ether","grand","Mether","Gether","Tether","Pether","Eether","Zether","Yether","Nether","Dether","Vether","Uether"];e.exports={ETH_PADDING:32,ETH_SIGNATURE_LENGTH:4,ETH_UNITS:n,ETH_BIGNUMBER_ROUNDING_MODE:{ROUNDING_MODE:BigNumber.ROUND_DOWN},ETH_POLLING_TIMEOUT:1e3}},{}],3:[function(t,e){var n=t("./web3"),r=t("./abi"),a=t("./utils"),o=t("./event"),i=(t("./filter"),function(t){n._currentContractAbi=t.abi,n._currentContractAddress=t.address,n._currentContractMethodName=t.method,n._currentContractMethodParams=t.params}),s=function(t){t.call=function(e){return t._isTransact=!1,t._options=e,t},t.transact=function(e){return t._isTransact=!0,t._options=e,t},t._options={},["gas","gasPrice","value","from"].forEach(function(e){t[e]=function(n){return t._options[e]=n,t}})},u=function(t,e,o){var s=r.inputParser(e),u=r.outputParser(e);a.filterFunctions(e).forEach(function(c){var f=a.extractDisplayName(c.name),l=a.extractTypeName(c.name),p=function(){var a=Array.prototype.slice.call(arguments),p=r.signatureFromAscii(c.name),m=s[f][l].apply(null,a),h=t._options||{};h.to=o,h.data=p+m;var d=t._isTransact===!0||t._isTransact!==!1&&!c.constant,g=h.collapse!==!1;if(t._options={},t._isTransact=null,d)return i({abi:e,address:o,method:c.name,params:a}),void n.eth.sendTransaction(h);var v=n.eth.call(h),y=u[f][l](v);return g&&(1===y.length?y=y[0]:0===y.length&&(y=null)),y};void 0===t[f]&&(t[f]=p),t[f][l]=p})},c=function(t,e,n){t.address=n,t._onWatchEventResult=function(t){var n=event.getMatchingEvent(a.filterEvents(e)),r=o.outputParser(n);return r(t)},Object.defineProperty(t,"topic",{get:function(){return a.filterEvents(e).map(function(t){return r.eventSignatureFromAscii(t.name)})}})},f=function(t,e,i){a.filterEvents(e).forEach(function(e){var s=function(){var t=Array.prototype.slice.call(arguments),a=r.eventSignatureFromAscii(e.name),s=o.inputParser(i,a,e),u=s.apply(null,t),c=function(t){var n=o.outputParser(e);return n(t)};return n.eth.watch(u,void 0,void 0,c)};s._isEvent=!0;var u=a.extractDisplayName(e.name),c=a.extractTypeName(e.name);void 0===t[u]&&(t[u]=s),t[u][c]=s})},l=function(t,e){e.forEach(function(t){if(-1===t.name.indexOf("(")){var e=t.name,n=t.inputs.map(function(t){return t.type}).join();t.name=e+"("+n+")"}});var n={};return s(n),u(n,e,t),c(n,e,t),f(n,e,t),n};e.exports=l},{"./abi":1,"./event":6,"./filter":7,"./utils":15,"./web3":17}],4:[function(t,e){var n=function(){return[{name:"put",call:"db_put"},{name:"get",call:"db_get"},{name:"putString",call:"db_putString"},{name:"getString",call:"db_getString"}]};e.exports={methods:n}},{}],5:[function(t,e){var n=function(t){return"string"==typeof t[0]?"eth_blockByHash":"eth_blockByNumber"},r=function(t){return"string"==typeof t[0]?"eth_transactionByHash":"eth_transactionByNumber"},a=function(t){return"string"==typeof t[0]?"eth_uncleByHash":"eth_uncleByNumber"},o=function(t){return"string"==typeof t[0]?"eth_transactionCountByHash":"eth_transactionCountByNumber"},i=function(t){return"string"==typeof t[0]?"eth_uncleCountByHash":"eth_uncleCountByNumber"},s=[{name:"getBalance",call:"eth_balanceAt"},{name:"getState",call:"eth_stateAt"},{name:"getStorage",call:"eth_storageAt"},{name:"getTransactionCount",call:"eth_countAt"},{name:"getCode",call:"eth_codeAt"},{name:"sendTransaction",call:"eth_transact"},{name:"call",call:"eth_call"},{name:"getBlock",call:n},{name:"getTransaction",call:r},{name:"getUncle",call:a},{name:"getCompilers",call:"eth_compilers"},{name:"flush",call:"eth_flush"},{name:"compile.solidity",call:"eth_solidity"},{name:"compile.lll",call:"eth_lll"},{name:"compile.serpent",call:"eth_serpent"},{name:"getBlockTransactionCount",call:o},{name:"getBlockUncleCount",call:i},{name:"balanceAt",call:"eth_balanceAt",newMethod:"getBalance"},{name:"stateAt",call:"eth_stateAt",newMethod:"getState"},{name:"storageAt",call:"eth_storageAt",newMethod:"getStorage"},{name:"countAt",call:"eth_countAt",newMethod:"getTransactionCount"},{name:"codeAt",call:"eth_codeAt",newMethod:"getCode"},{name:"transact",call:"eth_transact",newMethod:"sendTransaction"},{name:"block",call:n,newMethod:"getBlock"},{name:"transaction",call:r,newMethod:"getTransaction"},{name:"uncle",call:a,newMethod:"getUncle"},{name:"compilers",call:"eth_compilers",newMethod:"getCompilers"},{name:"solidity",call:"eth_solidity",newMethod:"compile.solidity"},{name:"lll",call:"eth_lll",newMethod:"compile.lll"},{name:"serpent",call:"eth_serpent",newMethod:"compile.serpent"},{name:"transactionCount",call:o,newMethod:"getBlockTransactionCount"},{name:"uncleCount",call:i,newMethod:"getBlockUncleCount"},{name:"logs",call:"eth_logs"}],u=[{name:"coinbase",getter:"eth_coinbase",setter:"eth_setCoinbase"},{name:"listening",getter:"eth_listening",setter:"eth_setListening"},{name:"mining",getter:"eth_mining",setter:"eth_setMining"},{name:"gasPrice",getter:"eth_gasPrice"},{name:"accounts",getter:"eth_accounts"},{name:"peerCount",getter:"eth_peerCount"},{name:"defaultBlock",getter:"eth_defaultBlock",setter:"eth_setDefaultBlock"},{name:"blockNumber",getter:"eth_number"},{name:"number",getter:"eth_number",newProperty:"blockNumber"}];e.exports={methods:s,properties:u}},{}],6:[function(t,e){var n=t("./abi"),r=t("./utils"),a=function(t,e){return t.filter(function(t){return t.indexed===e})},o=function(t,e){var n=r.findIndex(t,function(t){return t.name===e});return-1===n?void console.error("indexed param with name "+e+" not found"):t[n]},i=function(t,e){return Object.keys(e).map(function(r){var i=[o(a(t.inputs,!0),r)],s=e[r];return s instanceof Array?s.map(function(t){return n.formatInput(i,[t])}):n.formatInput(i,[s])})},s=function(t,e,n){return function(r,a){var o=a||{};return o.address=t,o.topic=[],o.topic.push(e),r&&(o.topic=o.topic.concat(i(n,r))),o}},u=function(t,e,n){e.slice(),n.slice();return t.reduce(function(t,r){var a;return a=r.indexed?e.splice(0,1)[0]:n.splice(0,1)[0],t[r.name]=a,t},{})},c=function(t){return function(e){var o={event:r.extractDisplayName(t.name),number:e.number,args:{}};if(e.topics=e.topic,!e.topic)return o;var i=a(t.inputs,!0),s="0x"+e.topic.slice(1,e.topic.length).map(function(t){return t.slice(2)}).join(""),c=n.formatOutput(i,s),f=a(t.inputs,!1),l=n.formatOutput(f,e.data);return o.args=u(t.inputs,c,l),o}},f=function(t,e){for(var r=0;rn;n+=2){var a=parseInt(t.substr(n,2),16);if(0===a)break;e+=String.fromCharCode(a)}return e},o=function(t){for(var e="",n=0;n3e3&&r2?t.substring(2):"0",new BigNumber(t,16).toString(10)},m=function(t,e){var n=!0;if(!t)return t;switch("string"==typeof t&&0===t.indexOf("0x")&&(t=p(t)),t instanceof BigNumber||(n=!1,t=new BigNumber(t.toString())),e=e.toLowerCase()){case"kwei":case"ada":t=t.dividedBy(1e3);break;case"mwei":case"babbage":t=t.dividedBy(1e6);break;case"gwei":case"schannon":t=t.dividedBy(1e9);break;case"szabo":t=t.dividedBy(1e12);break;case"finney":t=t.dividedBy(1e15);break;case"ether":t=t.dividedBy(1e18);break;case"kether":case"grand":case"einstein":t=t.dividedBy(1e21);break;case"mether":t=t.dividedBy(1e24);break;case"gether":t=t.dividedBy(1e27);break;case"tether":t=t.dividedBy(1e30)}return n?t:t.toNumber()},h=function(t,e){var n=!0;if(!t)return t;switch("string"==typeof t&&0===t.indexOf("0x")&&(t=p(t)),t instanceof BigNumber||(n=!1,t=new BigNumber(t.toString())),e=e.toLowerCase()){case"kwei":case"ada":t=t.times(1e3);break;case"mwei":case"babbage":t=t.times(1e6);break;case"gwei":case"schannon":t=t.times(1e9);break;case"szabo":t=t.times(1e12);break;case"finney":t=t.times(1e15);break;case"ether":t=t.times(1e18);break;case"kether":case"grand":case"einstein":t=t.times(1e21);break;case"mether":t=t.times(1e24);break;case"gether":t=t.times(1e27);break;case"tether":t=t.times(1e30)}return n?t:t.toNumber()},d=function(t){return 0===t.indexOf("0x")&&42!==t.length?!1:-1===t.indexOf("0x")&&40!==t.length?!1:/^\w+$/.test(t)};e.exports={findIndex:r,toDecimal:p,toAscii:a,fromAscii:i,extractDisplayName:s,extractTypeName:u,filterFunctions:c,filterEvents:f,toEth:l,toWei:h,fromWei:m,isAddress:d}},{"./const":2}],16:[function(t,e){var n=function(){var t=function(t){return"string"==typeof t[0]?"eth_newFilterString":"eth_newFilter"};return[{name:"newFilter",call:t},{name:"uninstallFilter",call:"eth_uninstallFilter"},{name:"getMessages",call:"eth_filterLogs"}]},r=function(){return[{name:"newFilter",call:"shh_newFilter"},{name:"uninstallFilter",call:"shh_uninstallFilter"},{name:"getMessages",call:"shh_getMessages"}]};e.exports={eth:n,shh:r}},{}],17:[function(t,e){var n=t("./eth"),r=t("./db"),a=t("./shh"),o=t("./watches"),i=t("./filter"),s=t("./utils"),u=t("./requestmanager"),c=function(){return[{name:"sha3",call:"web3_sha3"}]},f=function(t,e){e.forEach(function(e){var n=e.name.split("."),r=function(){var t=Array.prototype.slice.call(arguments),n="function"==typeof e.call?e.call(t):e.call;return e.newMethod&&console.warn("This method is deprecated please use eth."+e.newMethod+"() instead."),g.manager.send({method:n,params:t})};n.length>1?(t[n[0]]||(t[n[0]]={}),t[n[0]][n[1]]=r):t[n[0]]=r})},l=function(t,e){e.forEach(function(e){var n={};n.get=function(){return e.newProperty&&console.warn("This property is deprecated please use eth."+e.newProperty+" instead."),g.manager.send({method:e.getter})},e.setter&&(n.set=function(t){return e.newProperty&&console.warn("This property is deprecated please use eth."+e.newProperty+" instead."),g.manager.send({method:e.setter,params:[t]})}),n.enumerable=!e.newProperty,Object.defineProperty(t,e.name,n)})},p=function(t,e,n,r){g.manager.startPolling({method:t,params:[e]},e,n,r)},m=function(t){g.manager.stopPolling(t)},h={startPolling:p.bind(null,"eth_changed"),stopPolling:m},d={startPolling:p.bind(null,"shh_changed"),stopPolling:m},g={manager:u(),providers:{},toAscii:s.toAscii,fromAscii:s.fromAscii,toDecimal:s.toDecimal,fromDecimal:function(t){return"0x"+new BigNumber(t).toString(16)},toEth:s.toEth,toWei:s.toWei,fromWei:s.fromWei,isAddress:s.isAddress,eth:{contractFromAbi:function(t){return function(e){e=e||"0xc6d9d2cd449a754c494264e1809c50e34d64562b";var n=g.eth.contract(e,t);return n.address=e,n}},watch:function(t,e,n,r){return t._isEvent?t(e,n):i(t,h,r)}},db:{},shh:{watch:function(t){return i(t,d)}},setProvider:function(t){g.manager.setProvider(t)},reset:function(){g.manager.reset()}};f(g,c()),f(g.eth,n.methods),l(g.eth,n.properties),f(g.db,r.methods()),f(g.shh,a.methods()),f(h,o.eth()),f(d,o.shh()),e.exports=g},{"./db":4,"./eth":5,"./filter":7,"./requestmanager":12,"./shh":13,"./utils":15,"./watches":16}],web3:[function(t,e){var n=t("./lib/web3");n.providers.HttpSyncProvider=t("./lib/httpsync"),n.providers.QtSyncProvider=t("./lib/qtsync"),n.eth.contract=t("./lib/contract"),n.abi=t("./lib/abi"),e.exports=n},{"./lib/abi":1,"./lib/contract":3,"./lib/httpsync":9,"./lib/qtsync":11,"./lib/web3":17}]},{},["web3"]); \ No newline at end of file +require=function t(e,n,r){function a(i,s){if(!n[i]){if(!e[i]){var u="function"==typeof require&&require;if(!s&&u)return u(i,!0);if(o)return o(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[i]={exports:{}};e[i][0].call(f.exports,function(t){var n=e[i][1][t];return a(n?n:t)},f,f.exports,t,e,n,r)}return n[i].exports}for(var o="function"==typeof require&&require,i=0;iv;v++)g.push(h(e.slice(0,r))),e=e.slice(r);n.push(g)}else a.prefixedType("string")(t[c].type)?(f=f.slice(r),n.push(h(e.slice(0,r))),e=e.slice(r)):(n.push(h(e.slice(0,r))),e=e.slice(r))}),n},d=function(t){var e={};return t.forEach(function(t){var n=r.extractDisplayName(t.name),a=r.extractTypeName(t.name),o=function(){var e=Array.prototype.slice.call(arguments);return l(t.inputs,e)};void 0===e[n]&&(e[n]=o),e[n][a]=o}),e},g=function(t){var e={};return t.forEach(function(t){var n=r.extractDisplayName(t.name),a=r.extractTypeName(t.name),o=function(e){return h(t.outputs,e)};void 0===e[n]&&(e[n]=o),e[n][a]=o}),e},v=function(t){return n.sha3(n.fromAscii(t)).slice(0,2+2*o.ETH_SIGNATURE_LENGTH)},y=function(t){return n.sha3(n.fromAscii(t))};e.exports={inputParser:d,outputParser:g,formatInput:l,formatOutput:h,signatureFromAscii:v,eventSignatureFromAscii:y}},{"./const":2,"./formatters":8,"./types":14,"./utils":15,"./web3":17}],2:[function(t,e){var n=["wei","Kwei","Mwei","Gwei","szabo","finney","ether","grand","Mether","Gether","Tether","Pether","Eether","Zether","Yether","Nether","Dether","Vether","Uether"];e.exports={ETH_PADDING:32,ETH_SIGNATURE_LENGTH:4,ETH_UNITS:n,ETH_BIGNUMBER_ROUNDING_MODE:{ROUNDING_MODE:BigNumber.ROUND_DOWN},ETH_POLLING_TIMEOUT:1e3}},{}],3:[function(t,e){var n=t("./web3"),r=t("./abi"),a=t("./utils"),o=t("./event"),i=(t("./filter"),function(t){n._currentContractAbi=t.abi,n._currentContractAddress=t.address,n._currentContractMethodName=t.method,n._currentContractMethodParams=t.params}),s=function(t){t.call=function(e){return t._isTransact=!1,t._options=e,t},t.transact=function(e){return t._isTransact=!0,t._options=e,t},t._options={},["gas","gasPrice","value","from"].forEach(function(e){t[e]=function(n){return t._options[e]=n,t}})},u=function(t,e,o){var s=r.inputParser(e),u=r.outputParser(e);a.filterFunctions(e).forEach(function(c){var f=a.extractDisplayName(c.name),l=a.extractTypeName(c.name),p=function(){var a=Array.prototype.slice.call(arguments),p=r.signatureFromAscii(c.name),m=s[f][l].apply(null,a),h=t._options||{};h.to=o,h.data=p+m;var d=t._isTransact===!0||t._isTransact!==!1&&!c.constant,g=h.collapse!==!1;if(t._options={},t._isTransact=null,d)return i({abi:e,address:o,method:c.name,params:a}),void n.eth.sendTransaction(h);var v=n.eth.call(h),y=u[f][l](v);return g&&(1===y.length?y=y[0]:0===y.length&&(y=null)),y};void 0===t[f]&&(t[f]=p),t[f][l]=p})},c=function(t,e,n){t.address=n,t._onWatchEventResult=function(t){var n=event.getMatchingEvent(a.filterEvents(e)),r=o.outputParser(n);return r(t)},Object.defineProperty(t,"topic",{get:function(){return a.filterEvents(e).map(function(t){return r.eventSignatureFromAscii(t.name)})}})},f=function(t,e,i){a.filterEvents(e).forEach(function(e){var s=function(){var t=Array.prototype.slice.call(arguments),a=r.eventSignatureFromAscii(e.name),s=o.inputParser(i,a,e),u=s.apply(null,t),c=function(t){var n=o.outputParser(e);return n(t)};return n.eth.watch(u,void 0,void 0,c)};s._isEvent=!0;var u=a.extractDisplayName(e.name),c=a.extractTypeName(e.name);void 0===t[u]&&(t[u]=s),t[u][c]=s})},l=function(t,e){e.forEach(function(t){if(-1===t.name.indexOf("(")){var e=t.name,n=t.inputs.map(function(t){return t.type}).join();t.name=e+"("+n+")"}});var n={};return s(n),u(n,e,t),c(n,e,t),f(n,e,t),n};e.exports=l},{"./abi":1,"./event":6,"./filter":7,"./utils":15,"./web3":17}],4:[function(t,e){var n=function(){return[{name:"put",call:"db_put"},{name:"get",call:"db_get"},{name:"putString",call:"db_putString"},{name:"getString",call:"db_getString"}]};e.exports={methods:n}},{}],5:[function(t,e){var n=function(t){return"string"==typeof t[0]?"eth_blockByHash":"eth_blockByNumber"},r=function(t){return"string"==typeof t[0]?"eth_transactionByHash":"eth_transactionByNumber"},a=function(t){return"string"==typeof t[0]?"eth_uncleByHash":"eth_uncleByNumber"},o=function(t){return"string"==typeof t[0]?"eth_transactionCountByHash":"eth_transactionCountByNumber"},i=function(t){return"string"==typeof t[0]?"eth_uncleCountByHash":"eth_uncleCountByNumber"},s=[{name:"getBalance",call:"eth_balanceAt"},{name:"getState",call:"eth_stateAt"},{name:"getStorage",call:"eth_storageAt"},{name:"getTransactionCount",call:"eth_countAt"},{name:"getCode",call:"eth_codeAt"},{name:"sendTransaction",call:"eth_transact"},{name:"call",call:"eth_call"},{name:"getBlock",call:n},{name:"getTransaction",call:r},{name:"getUncle",call:a},{name:"getCompilers",call:"eth_compilers"},{name:"flush",call:"eth_flush"},{name:"compile.solidity",call:"eth_solidity"},{name:"compile.lll",call:"eth_lll"},{name:"compile.serpent",call:"eth_serpent"},{name:"getBlockTransactionCount",call:o},{name:"getBlockUncleCount",call:i},{name:"balanceAt",call:"eth_balanceAt",newMethod:"getBalance"},{name:"stateAt",call:"eth_stateAt",newMethod:"getState"},{name:"storageAt",call:"eth_storageAt",newMethod:"getStorage"},{name:"countAt",call:"eth_countAt",newMethod:"getTransactionCount"},{name:"codeAt",call:"eth_codeAt",newMethod:"getCode"},{name:"transact",call:"eth_transact",newMethod:"sendTransaction"},{name:"block",call:n,newMethod:"getBlock"},{name:"transaction",call:r,newMethod:"getTransaction"},{name:"uncle",call:a,newMethod:"getUncle"},{name:"compilers",call:"eth_compilers",newMethod:"getCompilers"},{name:"solidity",call:"eth_solidity",newMethod:"compile.solidity"},{name:"lll",call:"eth_lll",newMethod:"compile.lll"},{name:"serpent",call:"eth_serpent",newMethod:"compile.serpent"},{name:"transactionCount",call:o,newMethod:"getBlockTransactionCount"},{name:"uncleCount",call:i,newMethod:"getBlockUncleCount"},{name:"logs",call:"eth_logs"}],u=[{name:"coinbase",getter:"eth_coinbase",setter:"eth_setCoinbase"},{name:"listening",getter:"eth_listening",setter:"eth_setListening"},{name:"mining",getter:"eth_mining",setter:"eth_setMining"},{name:"gasPrice",getter:"eth_gasPrice"},{name:"accounts",getter:"eth_accounts"},{name:"peerCount",getter:"eth_peerCount"},{name:"defaultBlock",getter:"eth_defaultBlock",setter:"eth_setDefaultBlock"},{name:"blockNumber",getter:"eth_number"},{name:"number",getter:"eth_number",newProperty:"blockNumber"}];e.exports={methods:s,properties:u}},{}],6:[function(t,e){var n=t("./abi"),r=t("./utils"),a=function(t,e){return t.filter(function(t){return t.indexed===e})},o=function(t,e){var n=r.findIndex(t,function(t){return t.name===e});return-1===n?void console.error("indexed param with name "+e+" not found"):t[n]},i=function(t,e){return Object.keys(e).map(function(r){var i=[o(a(t.inputs,!0),r)],s=e[r];return s instanceof Array?s.map(function(t){return n.formatInput(i,[t])}):n.formatInput(i,[s])})},s=function(t,e,n){return function(r,a){var o=a||{};return o.address=t,o.topic=[],o.topic.push(e),r&&(o.topic=o.topic.concat(i(n,r))),o}},u=function(t,e,n){e.slice(),n.slice();return t.reduce(function(t,r){var a;return a=r.indexed?e.splice(0,1)[0]:n.splice(0,1)[0],t[r.name]=a,t},{})},c=function(t){return function(e){var o={event:r.extractDisplayName(t.name),number:e.number,args:{}};if(e.topics=e.topic,!e.topic)return o;var i=a(t.inputs,!0),s="0x"+e.topic.slice(1,e.topic.length).map(function(t){return t.slice(2)}).join(""),c=n.formatOutput(i,s),f=a(t.inputs,!1),l=n.formatOutput(f,e.data);return o.args=u(t.inputs,c,l),o}},f=function(t,e){for(var r=0;rn;n+=2){var a=parseInt(t.substr(n,2),16);if(0===a)break;e+=String.fromCharCode(a)}return e},o=function(t){for(var e="",n=0;n3e3&&r2?t.substring(2):"0",new BigNumber(t,16).toString(10)},m=function(t,e){var n=!0;if(!t)return t;switch("string"==typeof t&&0===t.indexOf("0x")&&(t=p(t)),t instanceof BigNumber||(n=!1,t=new BigNumber(t.toString())),e=e.toLowerCase()){case"kwei":case"ada":t=t.dividedBy(1e3);break;case"mwei":case"babbage":t=t.dividedBy(1e6);break;case"gwei":case"schannon":t=t.dividedBy(1e9);break;case"szabo":t=t.dividedBy(1e12);break;case"finney":t=t.dividedBy(1e15);break;case"ether":t=t.dividedBy(1e18);break;case"kether":case"grand":case"einstein":t=t.dividedBy(1e21);break;case"mether":t=t.dividedBy(1e24);break;case"gether":t=t.dividedBy(1e27);break;case"tether":t=t.dividedBy(1e30)}return n?t:t.toString(10)},h=function(t,e){var n=!0;if(!t)return t;switch("string"==typeof t&&0===t.indexOf("0x")&&(t=p(t)),t instanceof BigNumber||(n=!1,t=new BigNumber(t.toString())),e=e.toLowerCase()){case"kwei":case"ada":t=t.times(1e3);break;case"mwei":case"babbage":t=t.times(1e6);break;case"gwei":case"schannon":t=t.times(1e9);break;case"szabo":t=t.times(1e12);break;case"finney":t=t.times(1e15);break;case"ether":t=t.times(1e18);break;case"kether":case"grand":case"einstein":t=t.times(1e21);break;case"mether":t=t.times(1e24);break;case"gether":t=t.times(1e27);break;case"tether":t=t.times(1e30)}return n?t:t.toString(10)},d=function(t){return 0===t.indexOf("0x")&&42!==t.length?!1:-1===t.indexOf("0x")&&40!==t.length?!1:/^\w+$/.test(t)};e.exports={findIndex:r,toDecimal:p,toAscii:a,fromAscii:i,extractDisplayName:s,extractTypeName:u,filterFunctions:c,filterEvents:f,toEth:l,toWei:h,fromWei:m,isAddress:d}},{"./const":2}],16:[function(t,e){var n=function(){var t=function(t){return"string"==typeof t[0]?"eth_newFilterString":"eth_newFilter"};return[{name:"newFilter",call:t},{name:"uninstallFilter",call:"eth_uninstallFilter"},{name:"getMessages",call:"eth_filterLogs"}]},r=function(){return[{name:"newFilter",call:"shh_newFilter"},{name:"uninstallFilter",call:"shh_uninstallFilter"},{name:"getMessages",call:"shh_getMessages"}]};e.exports={eth:n,shh:r}},{}],17:[function(t,e){var n=t("./eth"),r=t("./db"),a=t("./shh"),o=t("./watches"),i=t("./filter"),s=t("./utils"),u=t("./requestmanager"),c=function(){return[{name:"sha3",call:"web3_sha3"}]},f=function(t,e){e.forEach(function(e){var n=e.name.split("."),r=function(){var t=Array.prototype.slice.call(arguments),n="function"==typeof e.call?e.call(t):e.call;return e.newMethod&&console.warn("This method is deprecated please use eth."+e.newMethod+"() instead."),g.manager.send({method:n,params:t})};n.length>1?(t[n[0]]||(t[n[0]]={}),t[n[0]][n[1]]=r):t[n[0]]=r})},l=function(t,e){e.forEach(function(e){var n={};n.get=function(){return e.newProperty&&console.warn("This property is deprecated please use eth."+e.newProperty+" instead."),g.manager.send({method:e.getter})},e.setter&&(n.set=function(t){return e.newProperty&&console.warn("This property is deprecated please use eth."+e.newProperty+" instead."),g.manager.send({method:e.setter,params:[t]})}),n.enumerable=!e.newProperty,Object.defineProperty(t,e.name,n)})},p=function(t,e,n,r){g.manager.startPolling({method:t,params:[e]},e,n,r)},m=function(t){g.manager.stopPolling(t)},h={startPolling:p.bind(null,"eth_changed"),stopPolling:m},d={startPolling:p.bind(null,"shh_changed"),stopPolling:m},g={manager:u(),providers:{},toAscii:s.toAscii,fromAscii:s.fromAscii,toDecimal:s.toDecimal,fromDecimal:function(t){return"0x"+new BigNumber(t).toString(16)},toEth:s.toEth,toWei:s.toWei,fromWei:s.fromWei,isAddress:s.isAddress,eth:{contractFromAbi:function(t){return function(e){e=e||"0xc6d9d2cd449a754c494264e1809c50e34d64562b";var n=g.eth.contract(e,t);return n.address=e,n}},watch:function(t,e,n,r){return t._isEvent?t(e,n):i(t,h,r)}},db:{},shh:{watch:function(t){return i(t,d)}},setProvider:function(t){g.manager.setProvider(t)},reset:function(){g.manager.reset()}};f(g,c()),f(g.eth,n.methods),l(g.eth,n.properties),f(g.db,r.methods()),f(g.shh,a.methods()),f(h,o.eth()),f(d,o.shh()),e.exports=g},{"./db":4,"./eth":5,"./filter":7,"./requestmanager":12,"./shh":13,"./utils":15,"./watches":16}],web3:[function(t,e){var n=t("./lib/web3");n.providers.HttpSyncProvider=t("./lib/httpsync"),n.providers.QtSyncProvider=t("./lib/qtsync"),n.eth.contract=t("./lib/contract"),n.abi=t("./lib/abi"),e.exports=n},{"./lib/abi":1,"./lib/contract":3,"./lib/httpsync":9,"./lib/qtsync":11,"./lib/web3":17}]},{},["web3"]); \ No newline at end of file diff --git a/lib/utils.js b/lib/utils.js index 388cd1d..bcae2b1 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -136,6 +136,7 @@ var toEth = function (str) { return s + ' ' + units[unit]; }; + var toDecimal = function (val) { // remove 0x and place 0, if it's required val = val.length > 2 ? val.substring(2) : "0"; @@ -160,9 +161,9 @@ Possible units are: - tether @method fromWei -@param {Number|String} number can be a number or a HEX of a decimal +@param {Number|String} number can be a number, number string or a HEX of a decimal @param {String} unit the unit to convert to -@return {Number|Object} When given a BigNumber object it returns one as well, otherwise a number +@return {String|Object} When given a BigNumber object it returns one as well, otherwise a number */ var fromWei = function(number, unit) { var isBigNumber = true; @@ -219,7 +220,7 @@ var fromWei = function(number, unit) { break; } - return (isBigNumber) ? number : number.toNumber(); + return (isBigNumber) ? number : number.toString(10); }; /** @@ -239,9 +240,9 @@ Possible units are: - tether @method toWei -@param {Number|String} number can be a number or a HEX of a decimal +@param {Number|String} number can be a number, number string or a HEX of a decimal @param {String} unit the unit to convert to -@return {Number|Object} When given a BigNumber object it returns one as well, otherwise a number +@return {String|Object} When given a BigNumber object it returns one as well, otherwise a number */ var toWei = function(number, unit) { var isBigNumber = true; @@ -298,7 +299,7 @@ var toWei = function(number, unit) { break; } - return (isBigNumber) ? number : number.toNumber(); + return (isBigNumber) ? number : number.toString(10); }; diff --git a/package.json b/package.json index 40b3349..2903362 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,11 @@ "name": "Marian Oancea", "email": "marian@ethdev.com", "url": "https://github.com/cubedro" + }, + { + "name": "Fabian Vogelsteller", + "email": "fabian@ethdev.com", + "homepage": "https://github.com/frozeman" } ], "license": "LGPL-3.0" diff --git a/test/utils.fromWei.js b/test/utils.fromWei.js new file mode 100644 index 0000000..f0e8b7d --- /dev/null +++ b/test/utils.fromWei.js @@ -0,0 +1,22 @@ +var assert = require('assert'); +var utils = require('../lib/utils.js'); + +describe('utils', function () { + describe('toWei', function () { + it('should return the correct value', function () { + + assert.equal(EthTools.fromWei(1000000000000000000, 'wei'), '1000000000000000000'); + assert.equal(EthTools.fromWei(1000000000000000000, 'kwei'), '1000000000000000'); + assert.equal(EthTools.fromWei(1000000000000000000, 'mwei'), '1000000000000'); + assert.equal(EthTools.fromWei(1000000000000000000, 'gwei'), '1000000000'); + assert.equal(EthTools.fromWei(1000000000000000000, 'szabo'), '1000000'); + assert.equal(EthTools.fromWei(1000000000000000000, 'finney'), '1000'); + assert.equal(EthTools.fromWei(1000000000000000000, 'ether'), '1'); + assert.equal(EthTools.fromWei(1000000000000000000, 'kether'), '0.001'); + assert.equal(EthTools.fromWei(1000000000000000000, 'grand'), '0.001'); + assert.equal(EthTools.fromWei(1000000000000000000, 'mether'), '0.000001'); + assert.equal(EthTools.fromWei(1000000000000000000, 'gether'), '0.000000001'); + assert.equal(EthTools.fromWei(1000000000000000000, 'tether'), '0.000000000001'); + }); + }); +}); \ No newline at end of file diff --git a/test/utils.toWei.js b/test/utils.toWei.js new file mode 100644 index 0000000..e7a5f05 --- /dev/null +++ b/test/utils.toWei.js @@ -0,0 +1,22 @@ +var assert = require('assert'); +var utils = require('../lib/utils.js'); + +describe('utils', function () { + describe('toWei', function () { + it('should return the correct value', function () { + + assert.equal(EthTools.toWei(1, 'wei'), '1'); + assert.equal(EthTools.toWei(1, 'kwei'), '1000'); + assert.equal(EthTools.toWei(1, 'mwei'), '1000000'); + assert.equal(EthTools.toWei(1, 'gwei'), '1000000000'); + assert.equal(EthTools.toWei(1, 'szabo'), '1000000000000'); + assert.equal(EthTools.toWei(1, 'finney'), '1000000000000000'); + assert.equal(EthTools.toWei(1, 'ether'), '1000000000000000000'); + assert.equal(EthTools.toWei(1, 'kether'), '1000000000000000000000'); + assert.equal(EthTools.toWei(1, 'grand'), '1000000000000000000000'); + assert.equal(EthTools.toWei(1, 'mether'), '1000000000000000000000000'); + assert.equal(EthTools.toWei(1, 'gether'), '1000000000000000000000000000'); + assert.equal(EthTools.toWei(1, 'tether'), '1000000000000000000000000000000'); + }); + }); +}); \ No newline at end of file From 60cda4e58ada26e0818dba2ec20b28975fbebd24 Mon Sep 17 00:00:00 2001 From: Fabian Vogelsteller Date: Mon, 23 Feb 2015 10:01:00 +0100 Subject: [PATCH 2/2] fixed tests --- test/utils.fromWei.js | 24 ++++++++++++------------ test/utils.toWei.js | 24 ++++++++++++------------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/test/utils.fromWei.js b/test/utils.fromWei.js index f0e8b7d..2b32292 100644 --- a/test/utils.fromWei.js +++ b/test/utils.fromWei.js @@ -5,18 +5,18 @@ describe('utils', function () { describe('toWei', function () { it('should return the correct value', function () { - assert.equal(EthTools.fromWei(1000000000000000000, 'wei'), '1000000000000000000'); - assert.equal(EthTools.fromWei(1000000000000000000, 'kwei'), '1000000000000000'); - assert.equal(EthTools.fromWei(1000000000000000000, 'mwei'), '1000000000000'); - assert.equal(EthTools.fromWei(1000000000000000000, 'gwei'), '1000000000'); - assert.equal(EthTools.fromWei(1000000000000000000, 'szabo'), '1000000'); - assert.equal(EthTools.fromWei(1000000000000000000, 'finney'), '1000'); - assert.equal(EthTools.fromWei(1000000000000000000, 'ether'), '1'); - assert.equal(EthTools.fromWei(1000000000000000000, 'kether'), '0.001'); - assert.equal(EthTools.fromWei(1000000000000000000, 'grand'), '0.001'); - assert.equal(EthTools.fromWei(1000000000000000000, 'mether'), '0.000001'); - assert.equal(EthTools.fromWei(1000000000000000000, 'gether'), '0.000000001'); - assert.equal(EthTools.fromWei(1000000000000000000, 'tether'), '0.000000000001'); + assert.equal(utils.fromWei(1000000000000000000, 'wei'), '1000000000000000000'); + assert.equal(utils.fromWei(1000000000000000000, 'kwei'), '1000000000000000'); + assert.equal(utils.fromWei(1000000000000000000, 'mwei'), '1000000000000'); + assert.equal(utils.fromWei(1000000000000000000, 'gwei'), '1000000000'); + assert.equal(utils.fromWei(1000000000000000000, 'szabo'), '1000000'); + assert.equal(utils.fromWei(1000000000000000000, 'finney'), '1000'); + assert.equal(utils.fromWei(1000000000000000000, 'ether'), '1'); + assert.equal(utils.fromWei(1000000000000000000, 'kether'), '0.001'); + assert.equal(utils.fromWei(1000000000000000000, 'grand'), '0.001'); + assert.equal(utils.fromWei(1000000000000000000, 'mether'), '0.000001'); + assert.equal(utils.fromWei(1000000000000000000, 'gether'), '0.000000001'); + assert.equal(utils.fromWei(1000000000000000000, 'tether'), '0.000000000001'); }); }); }); \ No newline at end of file diff --git a/test/utils.toWei.js b/test/utils.toWei.js index e7a5f05..9599421 100644 --- a/test/utils.toWei.js +++ b/test/utils.toWei.js @@ -5,18 +5,18 @@ describe('utils', function () { describe('toWei', function () { it('should return the correct value', function () { - assert.equal(EthTools.toWei(1, 'wei'), '1'); - assert.equal(EthTools.toWei(1, 'kwei'), '1000'); - assert.equal(EthTools.toWei(1, 'mwei'), '1000000'); - assert.equal(EthTools.toWei(1, 'gwei'), '1000000000'); - assert.equal(EthTools.toWei(1, 'szabo'), '1000000000000'); - assert.equal(EthTools.toWei(1, 'finney'), '1000000000000000'); - assert.equal(EthTools.toWei(1, 'ether'), '1000000000000000000'); - assert.equal(EthTools.toWei(1, 'kether'), '1000000000000000000000'); - assert.equal(EthTools.toWei(1, 'grand'), '1000000000000000000000'); - assert.equal(EthTools.toWei(1, 'mether'), '1000000000000000000000000'); - assert.equal(EthTools.toWei(1, 'gether'), '1000000000000000000000000000'); - assert.equal(EthTools.toWei(1, 'tether'), '1000000000000000000000000000000'); + assert.equal(utils.toWei(1, 'wei'), '1'); + assert.equal(utils.toWei(1, 'kwei'), '1000'); + assert.equal(utils.toWei(1, 'mwei'), '1000000'); + assert.equal(utils.toWei(1, 'gwei'), '1000000000'); + assert.equal(utils.toWei(1, 'szabo'), '1000000000000'); + assert.equal(utils.toWei(1, 'finney'), '1000000000000000'); + assert.equal(utils.toWei(1, 'ether'), '1000000000000000000'); + assert.equal(utils.toWei(1, 'kether'), '1000000000000000000000'); + assert.equal(utils.toWei(1, 'grand'), '1000000000000000000000'); + assert.equal(utils.toWei(1, 'mether'), '1000000000000000000000000'); + assert.equal(utils.toWei(1, 'gether'), '1000000000000000000000000000'); + assert.equal(utils.toWei(1, 'tether'), '1000000000000000000000000000000'); }); }); }); \ No newline at end of file