Commit 09f63359 authored by Marek Kotewicz's avatar Marek Kotewicz

fixed #23

parent 42a25f2f
...@@ -212,6 +212,7 @@ var signedIsNegative = function (value) { ...@@ -212,6 +212,7 @@ var signedIsNegative = function (value) {
/// Formats input right-aligned input bytes to int /// Formats input right-aligned input bytes to int
/// @returns right-aligned input bytes formatted to int /// @returns right-aligned input bytes formatted to int
var formatOutputInt = function (value) { var formatOutputInt = function (value) {
value = value || "0";
// check if it's negative number // check if it's negative number
// it it is, return two's complement // it it is, return two's complement
if (signedIsNegative(value)) { if (signedIsNegative(value)) {
...@@ -223,6 +224,7 @@ var formatOutputInt = function (value) { ...@@ -223,6 +224,7 @@ var formatOutputInt = function (value) {
/// Formats big right-aligned input bytes to uint /// Formats big right-aligned input bytes to uint
/// @returns right-aligned input bytes formatted to uint /// @returns right-aligned input bytes formatted to uint
var formatOutputUInt = function (value) { var formatOutputUInt = function (value) {
value = value || "0";
return new BigNumber(value, 16); return new BigNumber(value, 16);
}; };
...@@ -1078,7 +1080,9 @@ var web3 = { ...@@ -1078,7 +1080,9 @@ var web3 = {
/// @returns decimal representaton of hex value prefixed by 0x /// @returns decimal representaton of hex value prefixed by 0x
toDecimal: function (val) { toDecimal: function (val) {
return (new BigNumber(val.substring(2), 16).toString(10)); // remove 0x and place 0, if it's required
val = val.length > 2 ? val.substring(2) : "0";
return (new BigNumber(val, 16).toString(10));
}, },
/// @returns hex representation (prefixed by 0x) of decimal value /// @returns hex representation (prefixed by 0x) of decimal value
......
This diff is collapsed.
This diff is collapsed.
...@@ -211,6 +211,7 @@ var signedIsNegative = function (value) { ...@@ -211,6 +211,7 @@ var signedIsNegative = function (value) {
/// Formats input right-aligned input bytes to int /// Formats input right-aligned input bytes to int
/// @returns right-aligned input bytes formatted to int /// @returns right-aligned input bytes formatted to int
var formatOutputInt = function (value) { var formatOutputInt = function (value) {
value = value || "0";
// check if it's negative number // check if it's negative number
// it it is, return two's complement // it it is, return two's complement
if (signedIsNegative(value)) { if (signedIsNegative(value)) {
...@@ -222,6 +223,7 @@ var formatOutputInt = function (value) { ...@@ -222,6 +223,7 @@ var formatOutputInt = function (value) {
/// Formats big right-aligned input bytes to uint /// Formats big right-aligned input bytes to uint
/// @returns right-aligned input bytes formatted to uint /// @returns right-aligned input bytes formatted to uint
var formatOutputUInt = function (value) { var formatOutputUInt = function (value) {
value = value || "0";
return new BigNumber(value, 16); return new BigNumber(value, 16);
}; };
......
...@@ -233,7 +233,9 @@ var web3 = { ...@@ -233,7 +233,9 @@ var web3 = {
/// @returns decimal representaton of hex value prefixed by 0x /// @returns decimal representaton of hex value prefixed by 0x
toDecimal: function (val) { toDecimal: function (val) {
return (new BigNumber(val.substring(2), 16).toString(10)); // remove 0x and place 0, if it's required
val = val.length > 2 ? val.substring(2) : "0";
return (new BigNumber(val, 16).toString(10));
}, },
/// @returns hex representation (prefixed by 0x) of decimal value /// @returns hex representation (prefixed by 0x) of decimal value
......
...@@ -823,6 +823,38 @@ describe('abi', function() { ...@@ -823,6 +823,38 @@ describe('abi', function() {
}); });
it('should parse 0x value', function () {
// given
var d = clone(description);
d[0].outputs = [
{ type: 'int' }
];
// when
var parser = abi.outputParser(d);
// then
assert.equal(parser.test("0x")[0], 0);
});
it('should parse 0x value', function () {
// given
var d = clone(description);
d[0].outputs = [
{ type: 'uint' }
];
// when
var parser = abi.outputParser(d);
// then
assert.equal(parser.test("0x")[0], 0);
});
}); });
}); });
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment