aboutsummaryrefslogtreecommitdiffstats
path: root/lib/utils.js
diff options
context:
space:
mode:
authorMarek Kotewicz <marek.kotewicz@gmail.com>2015-02-03 23:20:26 +0800
committerMarek Kotewicz <marek.kotewicz@gmail.com>2015-02-03 23:20:26 +0800
commitf1a5cf9128170b85428259c8b0ecfaed5b3e17d1 (patch)
tree9baf54fd2db882b95018fcd66238702b29035abf /lib/utils.js
parent4bb5ba78b0f3d906743874aa8c0cb980b2ad0055 (diff)
parenta5909d82eb16d6e631bd5f89d700eced205b2fcf (diff)
downloaddexon-f1a5cf9128170b85428259c8b0ecfaed5b3e17d1.tar
dexon-f1a5cf9128170b85428259c8b0ecfaed5b3e17d1.tar.gz
dexon-f1a5cf9128170b85428259c8b0ecfaed5b3e17d1.tar.bz2
dexon-f1a5cf9128170b85428259c8b0ecfaed5b3e17d1.tar.lz
dexon-f1a5cf9128170b85428259c8b0ecfaed5b3e17d1.tar.xz
dexon-f1a5cf9128170b85428259c8b0ecfaed5b3e17d1.tar.zst
dexon-f1a5cf9128170b85428259c8b0ecfaed5b3e17d1.zip
Merge branch 'develop' into cpp
Conflicts: dist/ethereum.js.map dist/ethereum.min.js
Diffstat (limited to 'lib/utils.js')
-rw-r--r--lib/utils.js31
1 files changed, 30 insertions, 1 deletions
diff --git a/lib/utils.js b/lib/utils.js
index 5cd6ec8d6..e1265803c 100644
--- a/lib/utils.js
+++ b/lib/utils.js
@@ -20,6 +20,8 @@
* @date 2015
*/
+var c = require('./const');
+
/// Finds first index of array element matching pattern
/// @param array
/// @param callback pattern
@@ -101,6 +103,32 @@ var filterEvents = function (json) {
});
};
+/// used to transform value/string to eth string
+/// TODO: use BigNumber.js to parse int
+/// TODO: add tests for it!
+var toEth = function (str) {
+ var val = typeof str === "string" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str;
+ var unit = 0;
+ var units = c.ETH_UNITS;
+ while (val > 3000 && unit < units.length - 1)
+ {
+ val /= 1000;
+ unit++;
+ }
+ var s = val.toString().length < val.toFixed(2).length ? val.toString() : val.toFixed(2);
+ var replaceFunction = function($0, $1, $2) {
+ return $1 + ',' + $2;
+ };
+
+ while (true) {
+ var o = s;
+ s = s.replace(/(\d)(\d\d\d[\.\,])/, replaceFunction);
+ if (o === s)
+ break;
+ }
+ return s + ' ' + units[unit];
+};
+
module.exports = {
findIndex: findIndex,
toAscii: toAscii,
@@ -108,6 +136,7 @@ module.exports = {
extractDisplayName: extractDisplayName,
extractTypeName: extractTypeName,
filterFunctions: filterFunctions,
- filterEvents: filterEvents
+ filterEvents: filterEvents,
+ toEth: toEth
};