Fix for JS API formatting.
This commit is contained in:
parent
9a9987aeed
commit
e95bb34ea0
26
lib/abi.js
26
lib/abi.js
@ -84,6 +84,18 @@ var calcRealPadding = function (type, expected) {
|
||||
|
||||
var setupInputTypes = function () {
|
||||
|
||||
// convert from int, decimal-string, prefixed hex string whatever into a bare hex string.
|
||||
var formatStandard = function (value) {
|
||||
if (typeof value === "number")
|
||||
return value.toString(16);
|
||||
else if (typeof value === "string" && value.indexOf('0x') === 0)
|
||||
return value.substr(2);
|
||||
else if (typeof value === "string")
|
||||
return web3.toHex(value);
|
||||
else
|
||||
return (+value).toString(16);
|
||||
};
|
||||
|
||||
var prefixedType = function (prefix, calcPadding) {
|
||||
return function (type, value) {
|
||||
var expected = prefix;
|
||||
@ -98,15 +110,7 @@ var setupInputTypes = function () {
|
||||
|
||||
if (prefix === "string")
|
||||
return web3.fromAscii(value, padding).substr(2);
|
||||
if (typeof value === "number")
|
||||
value = value.toString(16);
|
||||
else if (typeof value === "string")
|
||||
value = web3.toHex(value);
|
||||
else if (value.indexOf('0x') === 0)
|
||||
value = value.substr(2);
|
||||
else
|
||||
value = (+value).toString(16);
|
||||
return padLeft(value, padding * 2);
|
||||
return padLeft(formatStandard(value), padding * 2);
|
||||
};
|
||||
};
|
||||
|
||||
@ -123,7 +127,7 @@ var setupInputTypes = function () {
|
||||
};
|
||||
|
||||
var formatBool = function (value) {
|
||||
return value ? '0x1' : '0x0';
|
||||
return value ? '01' : '00';
|
||||
};
|
||||
|
||||
return [
|
||||
@ -133,7 +137,7 @@ var setupInputTypes = function () {
|
||||
prefixedType('string', calcBytePadding),
|
||||
prefixedType('real', calcRealPadding),
|
||||
prefixedType('ureal', calcRealPadding),
|
||||
namedType('address', 20),
|
||||
namedType('address', 20, formatStandard),
|
||||
namedType('bool', 1, formatBool),
|
||||
];
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user