Fix for JS API formatting.

This commit is contained in:
Gav Wood 2015-01-13 11:04:31 +00:00
parent 9a9987aeed
commit e95bb34ea0
1 changed files with 15 additions and 11 deletions

View File

@ -84,6 +84,18 @@ var calcRealPadding = function (type, expected) {
var setupInputTypes = function () { 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) { var prefixedType = function (prefix, calcPadding) {
return function (type, value) { return function (type, value) {
var expected = prefix; var expected = prefix;
@ -98,15 +110,7 @@ var setupInputTypes = function () {
if (prefix === "string") if (prefix === "string")
return web3.fromAscii(value, padding).substr(2); return web3.fromAscii(value, padding).substr(2);
if (typeof value === "number") return padLeft(formatStandard(value), padding * 2);
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);
}; };
}; };
@ -123,7 +127,7 @@ var setupInputTypes = function () {
}; };
var formatBool = function (value) { var formatBool = function (value) {
return value ? '0x1' : '0x0'; return value ? '01' : '00';
}; };
return [ return [
@ -133,7 +137,7 @@ var setupInputTypes = function () {
prefixedType('string', calcBytePadding), prefixedType('string', calcBytePadding),
prefixedType('real', calcRealPadding), prefixedType('real', calcRealPadding),
prefixedType('ureal', calcRealPadding), prefixedType('ureal', calcRealPadding),
namedType('address', 20), namedType('address', 20, formatStandard),
namedType('bool', 1, formatBool), namedType('bool', 1, formatBool),
]; ];
}; };