Merge pull request #109 from LefterisJP/string_hash_rename

Renaming hash/stringXX to bytes
This commit is contained in:
Marek Kotewicz 2015-03-13 16:09:02 +01:00
commit cc3e373081
4 changed files with 21 additions and 131 deletions

View File

@ -57,7 +57,7 @@ var isArrayType = function (type) {
*/ */
var dynamicTypeBytes = function (type, value) { var dynamicTypeBytes = function (type, value) {
// TODO: decide what to do with array of strings // TODO: decide what to do with array of strings
if (isArrayType(type) || type === 'string') // only string itself that is dynamic; stringX is static length. if (isArrayType(type) || type === 'bytes')
return f.formatInputInt(value.length); return f.formatInputInt(value.length);
return ""; return "";
}; };
@ -98,7 +98,7 @@ var formatInput = function (inputs, params) {
toAppendArrayContent += params[i].reduce(function (acc, curr) { toAppendArrayContent += params[i].reduce(function (acc, curr) {
return acc + formatter(curr); return acc + formatter(curr);
}, ""); }, "");
else if (inputs[i].type === 'string') else if (inputs[i].type === 'bytes')
toAppendArrayContent += formatter(params[i]); toAppendArrayContent += formatter(params[i]);
else else
toAppendConstant += formatter(params[i]); toAppendConstant += formatter(params[i]);
@ -117,7 +117,7 @@ var formatInput = function (inputs, params) {
* @returns {Number} length of dynamic type, 0 or multiplication of ETH_PADDING (32) * @returns {Number} length of dynamic type, 0 or multiplication of ETH_PADDING (32)
*/ */
var dynamicBytesLength = function (type) { var dynamicBytesLength = function (type) {
if (isArrayType(type) || type === 'string') // only string itself that is dynamic; stringX is static length. if (isArrayType(type) || type === 'bytes')
return c.ETH_PADDING * 2; return c.ETH_PADDING * 2;
return 0; return 0;
}; };
@ -167,7 +167,7 @@ var formatOutput = function (outs, output) {
} }
result.push(array); result.push(array);
} }
else if (types.prefixedType('string')(outs[i].type)) { else if (types.prefixedType('bytes')(outs[i].type)) {
dynamicPart = dynamicPart.slice(padding); dynamicPart = dynamicPart.slice(padding);
result.push(formatter(output.slice(0, padding))); result.push(formatter(output.slice(0, padding)));
output = output.slice(padding); output = output.slice(padding);

View File

@ -45,8 +45,7 @@ var inputTypes = function () {
return [ return [
{ type: prefixedType('uint'), format: f.formatInputInt }, { type: prefixedType('uint'), format: f.formatInputInt },
{ type: prefixedType('int'), format: f.formatInputInt }, { type: prefixedType('int'), format: f.formatInputInt },
{ type: prefixedType('hash'), format: f.formatInputInt }, { type: prefixedType('bytes'), format: f.formatInputString },
{ type: prefixedType('string'), format: f.formatInputString },
{ type: prefixedType('real'), format: f.formatInputReal }, { type: prefixedType('real'), format: f.formatInputReal },
{ type: prefixedType('ureal'), format: f.formatInputReal }, { type: prefixedType('ureal'), format: f.formatInputReal },
{ type: namedType('address'), format: f.formatInputInt }, { type: namedType('address'), format: f.formatInputInt },
@ -61,8 +60,7 @@ var outputTypes = function () {
return [ return [
{ type: prefixedType('uint'), format: f.formatOutputUInt }, { type: prefixedType('uint'), format: f.formatOutputUInt },
{ type: prefixedType('int'), format: f.formatOutputInt }, { type: prefixedType('int'), format: f.formatOutputInt },
{ type: prefixedType('hash'), format: f.formatOutputHash }, { type: prefixedType('bytes'), format: f.formatOutputString },
{ type: prefixedType('string'), format: f.formatOutputString },
{ type: prefixedType('real'), format: f.formatOutputReal }, { type: prefixedType('real'), format: f.formatOutputReal },
{ type: prefixedType('ureal'), format: f.formatOutputUReal }, { type: prefixedType('ureal'), format: f.formatOutputUReal },
{ type: namedType('address'), format: f.formatOutputAddress }, { type: namedType('address'), format: f.formatOutputAddress },

View File

@ -227,56 +227,6 @@ describe('abi', function() {
}); });
it('should parse input hash', function() {
// given
var d = clone(description);
d[0].inputs = [
{ type: "hash" }
];
// when
var parser = abi.inputParser(d);
// then
assert.equal(parser.test("0x407d73d8a49eeb85d32cf465507dd71d507100c1"), "000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1");
});
it('should parse input hash256', function() {
// given
var d = clone(description);
d[0].inputs = [
{ type: "hash256" }
];
// when
var parser = abi.inputParser(d);
// then
assert.equal(parser.test("0x407d73d8a49eeb85d32cf465507dd71d507100c1"), "000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1");
});
it('should parse input hash160', function() {
// given
var d = clone(description);
d[0].inputs = [
{ type: "hash160" }
];
// when
var parser = abi.inputParser(d);
// then
assert.equal(parser.test("0x407d73d8a49eeb85d32cf465507dd71d507100c1"), "000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1");
});
it('should parse input address', function () { it('should parse input address', function () {
// given // given
@ -294,13 +244,13 @@ describe('abi', function() {
}); });
it('should parse input string', function () { it('should parse input fixed bytes type', function () {
// given // given
var d = clone(description); var d = clone(description);
d[0].inputs = [ d[0].inputs = [
{ type: "string" } { type: "bytes" }
]; ];
// when // when
@ -318,14 +268,14 @@ describe('abi', function() {
); );
}); });
it('should parse input int followed by a string', function () { it('should parse input int followed by a fixed bytes type', function () {
// given // given
var d = clone(description); var d = clone(description);
d[0].inputs = [ d[0].inputs = [
{ type: "int" }, { type: "int" },
{ type: "string" } { type: "bytes" }
]; ];
// when // when
@ -340,13 +290,13 @@ describe('abi', function() {
); );
}); });
it('should parse input string followed by an int', function () { it('should parse input fixed bytes type followed by an int', function () {
// given // given
var d = clone(description); var d = clone(description);
d[0].inputs = [ d[0].inputs = [
{ type: "string" }, { type: "bytes" },
{ type: "int" } { type: "int" }
]; ];
@ -391,8 +341,8 @@ describe('abi', function() {
},{ },{
name: "test2", name: "test2",
type: "function", type: "function",
inputs: [{ type: "string" }], inputs: [{ type: "bytes" }],
outputs: [{ type: "string" }] outputs: [{ type: "bytes" }]
}]; }];
// when // when

View File

@ -21,13 +21,13 @@ var description = [{
describe('abi', function() { describe('abi', function() {
describe('outputParser', function() { describe('outputParser', function() {
it('should parse output string', function() { it('should parse output fixed bytes type', function() {
// given // given
var d = clone(description); var d = clone(description);
d[0].outputs = [ d[0].outputs = [
{ type: "string" } { type: "bytes" }
]; ];
// when // when
@ -181,64 +181,6 @@ describe('abi', function() {
assert.equal(parser.test("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0")[0], -16); assert.equal(parser.test("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0")[0], -16);
}); });
it('should parse output hash', function() {
// given
var d = clone(description);
d[0].outputs = [
{ type: 'hash' }
];
// when
var parser = abi.outputParser(d);
// then
assert.equal(
parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0],
"0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1"
);
});
it('should parse output hash256', function() {
// given
var d = clone(description);
d[0].outputs = [
{ type: 'hash256' }
];
// when
var parser = abi.outputParser(d);
// then
assert.equal(
parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0],
"0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1"
);
});
it('should parse output hash160', function() {
// given
var d = clone(description);
d[0].outputs = [
{ type: 'hash160' }
];
// when
var parser = abi.outputParser(d);
// then
assert.equal(
parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0],
"0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1"
);
// TODO shouldnt' the expected hash be shorter?
});
it('should parse output address', function() { it('should parse output address', function() {
// given // given
@ -317,14 +259,14 @@ describe('abi', function() {
}); });
it('should parse multiple output strings', function() { it('should parse multiple output fixed bytes type', function() {
// given // given
var d = clone(description); var d = clone(description);
d[0].outputs = [ d[0].outputs = [
{ type: "string" }, { type: "bytes" },
{ type: "string" } { type: "bytes" }
]; ];
// when // when
@ -380,8 +322,8 @@ describe('abi', function() {
},{ },{
name: "test2", name: "test2",
type: "function", type: "function",
inputs: [{ type: "string" }], inputs: [{ type: "bytes" }],
outputs: [{ type: "string" }] outputs: [{ type: "bytes" }]
}]; }];
// when // when