diff --git a/lib/utils/utils.js b/lib/utils/utils.js
index 772e470..c439ac9 100644
--- a/lib/utils/utils.js
+++ b/lib/utils/utils.js
@@ -14,7 +14,7 @@
You should have received a copy of the GNU Lesser General Public License
along with ethereum.js. If not, see .
*/
-/**
+/**
* @file utils.js
* @author Marek Kotewicz
* @date 2015
@@ -22,13 +22,13 @@
/**
* Utils
- *
+ *
* @module utils
*/
/**
* Utility functions
- *
+ *
* @class [utils] utils
* @constructor
*/
@@ -90,7 +90,7 @@ var padRight = function (string, chars, sign) {
return string + (new Array(chars - string.length + 1).join(sign ? sign : "0"));
};
-/**
+/**
* Should be called to get utf8 from it's hex representation
*
* @method toUtf8
@@ -111,8 +111,8 @@ var toUtf8 = function(hex) {
return utf8.decode(str);
};
-
-/**
+
+/**
* Should be called to get ascii from it's hex representation
*
* @method toAscii
@@ -128,9 +128,6 @@ var toAscii = function(hex) {
}
for (; i < l; i+=2) {
var code = parseInt(hex.substr(i, 2), 16);
- if (code === 0) {
- break;
- }
str += String.fromCharCode(code);
}
@@ -138,7 +135,7 @@ var toAscii = function(hex) {
};
/**
- * Shold be called to get hex representation (prefixed by 0x) of utf8 string
+ * Shold be called to get hex representation (prefixed by 0x) of utf8 string
*
* @method fromUtf8
* @param {String} string
@@ -157,7 +154,7 @@ var fromUtf8 = function(str) {
};
/**
- * Shold be called to get hex representation (prefixed by 0x) of ascii string
+ * Shold be called to get hex representation (prefixed by 0x) of ascii string
*
* @method fromAscii
* @param {String} string
@@ -168,9 +165,6 @@ var fromAscii = function(str) {
var hex = "";
for(var i = 0; i < str.length; i++) {
var code = str.charCodeAt(i);
- if (code === 0) {
- break;
- }
var n = code.toString(16);
hex += n.length < 2 ? '0' + n : n;
}
@@ -196,13 +190,13 @@ var transformToFullName = function (json) {
/**
* Should be called to get display name of contract function
- *
+ *
* @method extractDisplayName
* @param {String} name of function/event
* @returns {String} display name for function/event eg. multiply(uint256) -> multiply
*/
var extractDisplayName = function (name) {
- var length = name.indexOf('(');
+ var length = name.indexOf('(');
return length !== -1 ? name.substr(0, length) : name;
};
@@ -266,7 +260,7 @@ var toHex = function (val) {
else if(val.indexOf('0x') === 0)
return val;
else if (!isFinite(val))
- return fromUtf8(val);
+ return fromAscii(val);
}
return fromDecimal(val);
@@ -300,7 +294,7 @@ var getValueOfUnit = function (unit) {
* - -- microether szabo micro
* - -- milliether finney milli
* - ether -- --
- * - kether einstein grand
+ * - kether einstein grand
* - mether
* - gether
* - tether
@@ -313,7 +307,7 @@ var getValueOfUnit = function (unit) {
var fromWei = function(number, unit) {
var returnValue = toBigNumber(number).dividedBy(getValueOfUnit(unit));
- return isBigNumber(number) ? returnValue : returnValue.toString(10);
+ return isBigNumber(number) ? returnValue : returnValue.toString(10);
};
/**
@@ -322,12 +316,12 @@ var fromWei = function(number, unit) {
* Possible units are:
* SI Short SI Full Effigy Other
* - kwei femtoether ada
- * - mwei picoether babbage
+ * - mwei picoether babbage
* - gwei nanoether shannon nano
* - -- microether szabo micro
* - -- milliether finney milli
* - ether -- --
- * - kether einstein grand
+ * - kether einstein grand
* - mether
* - gether
* - tether
@@ -340,7 +334,7 @@ var fromWei = function(number, unit) {
var toWei = function(number, unit) {
var returnValue = toBigNumber(number).times(getValueOfUnit(unit));
- return isBigNumber(number) ? returnValue : returnValue.toString(10);
+ return isBigNumber(number) ? returnValue : returnValue.toString(10);
};
/**
@@ -359,7 +353,7 @@ var toBigNumber = function(number) {
if (isString(number) && (number.indexOf('0x') === 0 || number.indexOf('-0x') === 0)) {
return new BigNumber(number.replace('0x',''), 16);
}
-
+
return new BigNumber(number.toString(10), 10);
};
@@ -411,7 +405,7 @@ var toAddress = function (address) {
if (isStrictAddress(address)) {
return address;
}
-
+
if (/^[0-9a-f]{40}$/.test(address)) {
return '0x' + address;
}
@@ -425,7 +419,7 @@ var toAddress = function (address) {
*
* @method isBigNumber
* @param {Object}
- * @return {Boolean}
+ * @return {Boolean}
*/
var isBigNumber = function (object) {
return object instanceof BigNumber ||
@@ -434,7 +428,7 @@ var isBigNumber = function (object) {
/**
* Returns true if object is string, otherwise false
- *
+ *
* @method isString
* @param {Object}
* @return {Boolean}
@@ -485,12 +479,12 @@ var isBoolean = function (object) {
* @return {Boolean}
*/
var isArray = function (object) {
- return object instanceof Array;
+ return object instanceof Array;
};
/**
* Returns true if given string is valid json object
- *
+ *
* @method isJson
* @param {String}
* @return {Boolean}
@@ -531,4 +525,3 @@ module.exports = {
isArray: isArray,
isJson: isJson
};
-
diff --git a/test/utils.fromAscii.js b/test/utils.fromAscii.js
index c8a25bc..8874b2e 100644
--- a/test/utils.fromAscii.js
+++ b/test/utils.fromAscii.js
@@ -5,7 +5,9 @@ var assert = chai.assert;
var tests = [
{ value: 'myString', expected: '0x6d79537472696e67'},
- { value: 'myString\x00', expected: '0x6d79537472696e67'},
+ { value: 'myString\x00', expected: '0x6d79537472696e6700'},
+ { value: '\u0003\u0000\u0000\u00005èÆÕL]\u0012|ξ\u001a7«\u00052\u0011(ÐY\n<\u0010\u0000\u0000\u0000\u0000\u0000\u0000e!ßd/ñõì\f:z¦Î¦±ç·÷Í¢Ëß\u00076*
\bñùC1ÉUÀé2\u001aÓB',
+ expected: '0x0300000035e8c6d54c5d127c9dcebe9e1a37ab9b05321128d097590a3c100000000000006521df642ff1f5ec0c3a7aa6cea6b1e7b7f7cda2cbdf07362a85088e97f19ef94331c955c0e9321ad386428c'}
];
describe('lib/utils/utils', function () {
@@ -17,4 +19,3 @@ describe('lib/utils/utils', function () {
});
});
});
-
diff --git a/test/utils.toAscii.js b/test/utils.toAscii.js
index d07c4f6..fba9840 100644
--- a/test/utils.toAscii.js
+++ b/test/utils.toAscii.js
@@ -5,7 +5,9 @@ var assert = chai.assert;
var tests = [
{ value: '0x6d79537472696e67', expected: 'myString'},
- { value: '0x6d79537472696e6700', expected: 'myString'},
+ { value: '0x6d79537472696e6700', expected: 'myString\u0000'},
+ { value: "0x0300000035e8c6d54c5d127c9dcebe9e1a37ab9b05321128d097590a3c100000000000006521df642ff1f5ec0c3a7aa6cea6b1e7b7f7cda2cbdf07362a85088e97f19ef94331c955c0e9321ad386428c",
+ expected: '\u0003\u0000\u0000\u00005èÆÕL]\u0012|ξ\u001a7«\u00052\u0011(ÐY\n<\u0010\u0000\u0000\u0000\u0000\u0000\u0000e!ßd/ñõì\f:z¦Î¦±ç·÷Í¢Ëß\u00076*
\bñùC1ÉUÀé2\u001aÓB'}
];
describe('lib/utils/utils', function () {
@@ -17,4 +19,3 @@ describe('lib/utils/utils', function () {
});
});
});
-
diff --git a/test/utils.toHex.js b/test/utils.toHex.js
index fdf88cd..0448330 100644
--- a/test/utils.toHex.js
+++ b/test/utils.toHex.js
@@ -30,7 +30,9 @@ var tests = [
{ value: 'myString', expected: '0x6d79537472696e67'},
{ value: new BigNumber(15), expected: '0xf'},
{ value: true, expected: '0x1'},
- { value: false, expected: '0x0'}
+ { value: false, expected: '0x0'},
+ { value: '\u0003\u0000\u0000\u00005èÆÕL]\u0012|ξ\u001a7«\u00052\u0011(ÐY\n<\u0010\u0000\u0000\u0000\u0000\u0000\u0000e!ßd/ñõì\f:z¦Î¦±ç·÷Í¢Ëß\u00076*
\bñùC1ÉUÀé2\u001aÓB',
+ expected: '0x0300000035e8c6d54c5d127c9dcebe9e1a37ab9b05321128d097590a3c100000000000006521df642ff1f5ec0c3a7aa6cea6b1e7b7f7cda2cbdf07362a85088e97f19ef94331c955c0e9321ad386428c'}
];
describe('lib/utils/utils', function () {
@@ -42,4 +44,3 @@ describe('lib/utils/utils', function () {
});
});
});
-