From 2c36d5ff457952c557b467e580514b08126d7dd7 Mon Sep 17 00:00:00 2001 From: Marek Kotewicz Date: Fri, 16 Jan 2015 11:58:26 +0100 Subject: big integers on abi.js output, tests --- dist/ethereum.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'dist/ethereum.js') diff --git a/dist/ethereum.js b/dist/ethereum.js index b69f51c75..0a26b832f 100644 --- a/dist/ethereum.js +++ b/dist/ethereum.js @@ -176,7 +176,16 @@ var setupOutputTypes = function () { /// Formats input right-aligned input bytes to int /// @returns right-aligned input bytes formatted to int var formatInt = function (value) { - return value.length <= 8 ? +parseInt(value, 16) : hexToDec(value); + // check if it's negative number + // it it is, return two's complement + if (value.substr(0, 1).toLowerCase() === 'f') { + return new BigNumber(value, 16).minus(new BigNumber('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16)).minus(1); + } + return new BigNumber(value, 16); + }; + + var formatUInt = function (value) { + return new BigNumber(value, 16); }; /// @returns right-aligned input bytes formatted to hex @@ -200,7 +209,7 @@ var setupOutputTypes = function () { }; return [ - { type: prefixedType('uint'), format: formatInt }, + { type: prefixedType('uint'), format: formatUInt }, { type: prefixedType('int'), format: formatInt }, { type: prefixedType('hash'), format: formatHash }, { type: prefixedType('string'), format: formatString }, -- cgit v1.2.3