mirror of https://github.com/status-im/web3.js.git
Merge pull request #292 from caktux/develop
fix fromAscii, toAscii and toHex, fix wrong test assertions, add raw …
This commit is contained in:
commit
29d11b96de
|
@ -14,7 +14,7 @@
|
|||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with ethereum.js. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/**
|
||||
/**
|
||||
* @file utils.js
|
||||
* @author Marek Kotewicz <marek@ethdev.com>
|
||||
* @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
|
||||
};
|
||||
|
||||
|
|
|
@ -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 () {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -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 () {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -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 () {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue