aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Kotewicz <marek.kotewicz@gmail.com>2015-01-16 19:07:48 +0800
committerMarek Kotewicz <marek.kotewicz@gmail.com>2015-01-16 19:07:48 +0800
commit46e67c986278519ca9ba3ba2c6535dcc170a847b (patch)
tree31f70610552c1efa167729380b5ce6d4829b2173
parentdda1788082f789a24f58669af8d24ea9d0f00a8d (diff)
downloaddexon-solidity-46e67c986278519ca9ba3ba2c6535dcc170a847b.tar.gz
dexon-solidity-46e67c986278519ca9ba3ba2c6535dcc170a847b.tar.zst
dexon-solidity-46e67c986278519ca9ba3ba2c6535dcc170a847b.zip
Squashed 'libjsqrc/ethereumjs/' changes from ec74fc0..2c36d5f
2c36d5f big integers on abi.js output, tests f1295b5 tests for bigintegers on input fbcc6d0 BigNumber support git-subtree-dir: libjsqrc/ethereumjs git-subtree-split: 2c36d5ff457952c557b467e580514b08126d7dd7
-rw-r--r--abi.parsers.js109
1 files changed, 102 insertions, 7 deletions
diff --git a/abi.parsers.js b/abi.parsers.js
index 92532446..9d255e7a 100644
--- a/abi.parsers.js
+++ b/abi.parsers.js
@@ -1,4 +1,5 @@
var assert = require('assert');
+var BigNumber = require('bignumber.js');
var abi = require('../lib/abi.js');
var clone = function (object) { return JSON.parse(JSON.stringify(object)); };
@@ -34,6 +35,14 @@ describe('abi', function() {
// then
assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001");
assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a");
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
+ assert.equal(
+ parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
});
@@ -52,6 +61,14 @@ describe('abi', function() {
// then
assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001");
assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a");
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
+ assert.equal(
+ parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
});
@@ -70,6 +87,14 @@ describe('abi', function() {
// then
assert.equal(parser.test(1), "0000000000000000000000000000000000000000000000000000000000000001");
assert.equal(parser.test(10), "000000000000000000000000000000000000000000000000000000000000000a");
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
+ assert.equal(
+ parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
});
@@ -91,7 +116,14 @@ describe('abi', function() {
assert.equal(parser.test(-1), "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
assert.equal(parser.test(-2), "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe");
assert.equal(parser.test(-16), "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0");
-
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
+ assert.equal(
+ parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
});
it('should parse input int128', function() {
@@ -112,6 +144,14 @@ describe('abi', function() {
assert.equal(parser.test(-1), "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
assert.equal(parser.test(-2), "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe");
assert.equal(parser.test(-16), "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0");
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
+ assert.equal(
+ parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
});
@@ -133,6 +173,14 @@ describe('abi', function() {
assert.equal(parser.test(-1), "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
assert.equal(parser.test(-2), "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe");
assert.equal(parser.test(-16), "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0");
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
+ assert.equal(
+ parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
+ "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ );
});
@@ -312,6 +360,14 @@ describe('abi', function() {
// then
assert.equal(parser.test("0x0000000000000000000000000000000000000000000000000000000000000001")[0], 1);
assert.equal(parser.test("0x000000000000000000000000000000000000000000000000000000000000000a")[0], 10);
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")[0].toString(10),
+ new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).toString(10)
+ );
+ assert.equal(
+ parser.test("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0")[0].toString(10),
+ new BigNumber("fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0", 16).toString(10)
+ );
});
it('should parse output uint256', function() {
@@ -329,6 +385,14 @@ describe('abi', function() {
// then
assert.equal(parser.test("0x0000000000000000000000000000000000000000000000000000000000000001")[0], 1);
assert.equal(parser.test("0x000000000000000000000000000000000000000000000000000000000000000a")[0], 10);
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")[0].toString(10),
+ new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).toString(10)
+ );
+ assert.equal(
+ parser.test("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0")[0].toString(10),
+ new BigNumber("fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0", 16).toString(10)
+ );
});
it('should parse output uint128', function() {
@@ -346,6 +410,14 @@ describe('abi', function() {
// then
assert.equal(parser.test("0x0000000000000000000000000000000000000000000000000000000000000001")[0], 1);
assert.equal(parser.test("0x000000000000000000000000000000000000000000000000000000000000000a")[0], 10);
+ assert.equal(
+ parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")[0].toString(10),
+ new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).toString(10)
+ );
+ assert.equal(
+ parser.test("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0")[0].toString(10),
+ new BigNumber("fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0", 16).toString(10)
+ );
});
it('should parse output int', function() {
@@ -363,6 +435,8 @@ describe('abi', function() {
// then
assert.equal(parser.test("0x0000000000000000000000000000000000000000000000000000000000000001")[0], 1);
assert.equal(parser.test("0x000000000000000000000000000000000000000000000000000000000000000a")[0], 10);
+ assert.equal(parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")[0], -1);
+ assert.equal(parser.test("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0")[0], -16);
});
it('should parse output int256', function() {
@@ -380,6 +454,8 @@ describe('abi', function() {
// then
assert.equal(parser.test("0x0000000000000000000000000000000000000000000000000000000000000001")[0], 1);
assert.equal(parser.test("0x000000000000000000000000000000000000000000000000000000000000000a")[0], 10);
+ assert.equal(parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")[0], -1);
+ assert.equal(parser.test("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0")[0], -16);
});
it('should parse output int128', function() {
@@ -397,6 +473,8 @@ describe('abi', function() {
// then
assert.equal(parser.test("0x0000000000000000000000000000000000000000000000000000000000000001")[0], 1);
assert.equal(parser.test("0x000000000000000000000000000000000000000000000000000000000000000a")[0], 10);
+ assert.equal(parser.test("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")[0], -1);
+ assert.equal(parser.test("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0")[0], -16);
});
it('should parse output hash', function() {
@@ -412,7 +490,10 @@ describe('abi', function() {
var parser = abi.outputParser(d);
// then
- assert.equal(parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0], "0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")
+ assert.equal(
+ parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0],
+ "0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1"
+ );
});
it('should parse output hash256', function() {
@@ -428,7 +509,10 @@ describe('abi', function() {
var parser = abi.outputParser(d);
// then
- assert.equal(parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0], "0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")
+ assert.equal(
+ parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0],
+ "0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1"
+ );
});
it('should parse output hash160', function() {
@@ -444,7 +528,10 @@ describe('abi', function() {
var parser = abi.outputParser(d);
// then
- assert.equal(parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0], "0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")
+ assert.equal(
+ parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0],
+ "0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1"
+ );
// TODO shouldnt' the expected hash be shorter?
});
@@ -461,7 +548,10 @@ describe('abi', function() {
var parser = abi.outputParser(d);
// then
- assert.equal(parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0], "0x407d73d8a49eeb85d32cf465507dd71d507100c1")
+ assert.equal(
+ parser.test("0x000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1")[0],
+ "0x407d73d8a49eeb85d32cf465507dd71d507100c1"
+ );
});
it('should parse output bool', function() {
@@ -497,8 +587,13 @@ describe('abi', function() {
var parser = abi.outputParser(d);
// then
- assert.equal(parser.test("0x68656c6c6f000000000000000000000000000000000000000000000000000000776f726c64000000000000000000000000000000000000000000000000000000")[0], 'hello');
- assert.equal(parser.test("0x68656c6c6f000000000000000000000000000000000000000000000000000000776f726c64000000000000000000000000000000000000000000000000000000")[1], 'world');
+ assert.equal(
+ parser.test("0x68656c6c6f000000000000000000000000000000000000000000000000000000776f726c64000000000000000000000000000000000000000000000000000000")[0],
+ 'hello'
+ );
+ assert.equal(
+ parser.test("0x68656c6c6f000000000000000000000000000000000000000000000000000000776f726c64000000000000000000000000000000000000000000000000000000")[1],
+ 'world');
});