diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-16 23:40:26 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-16 23:40:26 +0800 |
commit | a1c0bb68ddd7a032843d16ed083a951588281278 (patch) | |
tree | 79ee66ec2945e1f898b79a5ce42c3a7c65e209b5 /lib | |
parent | 774e9d24a14fd258bd832b10dab445ebaa792d29 (diff) | |
download | go-tangerine-a1c0bb68ddd7a032843d16ed083a951588281278.tar go-tangerine-a1c0bb68ddd7a032843d16ed083a951588281278.tar.gz go-tangerine-a1c0bb68ddd7a032843d16ed083a951588281278.tar.bz2 go-tangerine-a1c0bb68ddd7a032843d16ed083a951588281278.tar.lz go-tangerine-a1c0bb68ddd7a032843d16ed083a951588281278.tar.xz go-tangerine-a1c0bb68ddd7a032843d16ed083a951588281278.tar.zst go-tangerine-a1c0bb68ddd7a032843d16ed083a951588281278.zip |
fixed checking first bit for parsing int output
Diffstat (limited to 'lib')
-rw-r--r-- | lib/abi.js | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/abi.js b/lib/abi.js index 11141e28b..f94e97faf 100644 --- a/lib/abi.js +++ b/lib/abi.js @@ -89,7 +89,7 @@ var setupInputTypes = function () { /// Formats input value to byte representation of int /// If value is negative, return it's two's complement - /// If the value is floating point, it rounds it down + /// If the value is floating point, round it down /// @returns right-aligned byte representation of int var formatInt = function (value) { var padding = 32 * 2; @@ -177,12 +177,15 @@ var setupOutputTypes = function () { var formatInt = function (value) { // check if it's negative number // it it is, return two's complement - if (value.substr(0, 1).toLowerCase() === 'f') { + var firstBit = new BigNumber(value.substr(0, 1), 16).toString(2).substr(0, 1); + if (firstBit === '1') { return new BigNumber(value, 16).minus(new BigNumber('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16)).minus(1); } return new BigNumber(value, 16); }; + /// Formats big right-aligned input bytes to uint + /// @returns right-aligned input bytes formatted to uint var formatUInt = function (value) { return new BigNumber(value, 16); }; |