Merge commit '29333fc213b62b27ef826616cf77430947fb6eab' into ethereumjs

This commit is contained in:
Marek Kotewicz 2015-01-16 16:49:50 +01:00
commit 1c4d8f36e4
14 changed files with 112 additions and 97 deletions

View File

@ -1,11 +1,12 @@
{ {
"name": "ethereum.js", "name": "ethereum.js",
"namespace": "ethereum", "namespace": "ethereum",
"version": "0.0.3", "version": "0.0.8",
"description": "Ethereum Compatible JavaScript API", "description": "Ethereum Compatible JavaScript API",
"main": ["./dist/ethereum.js", "./dist/ethereum.min.js"], "main": ["./dist/ethereum.js", "./dist/ethereum.min.js"],
"dependencies": { "dependencies": {
"es6-promise": "#master" "es6-promise": "#master",
"bignumber.js": ">=2.0.0"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

74
dist/ethereum.js vendored
View File

@ -24,10 +24,14 @@ require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof requ
// TODO: is these line is supposed to be here? // TODO: is these line is supposed to be here?
if ("build" !== 'build') {/* if ("build" !== 'build') {/*
var web3 = require('./web3'); // jshint ignore:line var BigNumber = require('bignumber.js'); // jshint ignore:line
*/} */}
var BigNumber = require('bignumber.js'); var web3 = require('./web3'); // jshint ignore:line
BigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_DOWN });
var ETH_PADDING = 32;
// TODO: make these be actually accurate instead of falling back onto JS's doubles. // TODO: make these be actually accurate instead of falling back onto JS's doubles.
var hexToDec = function (hex) { var hexToDec = function (hex) {
@ -88,25 +92,23 @@ var setupInputTypes = function () {
/// Formats input value to byte representation of int /// Formats input value to byte representation of int
/// If value is negative, return it's two's complement /// If value is negative, return it's two's complement
/// If the value is floating point, round it down
/// @returns right-aligned byte representation of int /// @returns right-aligned byte representation of int
var formatInt = function (value) { var formatInt = function (value) {
var padding = 32 * 2; var padding = ETH_PADDING * 2;
if (value instanceof BigNumber) { if (value instanceof BigNumber || typeof value === 'number') {
if (typeof value === 'number')
value = new BigNumber(value);
value = value.round();
if (value.lessThan(0)) if (value.lessThan(0))
value = new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).plus(value).plus(1).toString(16); value = new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).plus(value).plus(1);
else
value = value.toString(16); value = value.toString(16);
} }
else if (typeof value === 'number') {
if (value < 0)
value = new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).plus(value).plus(1).toString(16);
else
value = new BigNumber(value).toString(16);
}
else if (value.indexOf('0x') === 0) else if (value.indexOf('0x') === 0)
value = value.substr(2); value = value.substr(2);
else if (typeof value === 'string') else if (typeof value === 'string')
value = new BigNumber(value).toString(16); value = formatInt(new BigNumber(value));
else else
value = (+value).toString(16); value = (+value).toString(16);
return padLeft(value, padding); return padLeft(value, padding);
@ -115,7 +117,7 @@ var setupInputTypes = function () {
/// Formats input value to byte representation of string /// Formats input value to byte representation of string
/// @returns left-algined byte representation of string /// @returns left-algined byte representation of string
var formatString = function (value) { var formatString = function (value) {
return web3.fromAscii(value, 32).substr(2); return web3.fromAscii(value, ETH_PADDING).substr(2);
}; };
/// Formats input value to byte representation of bool /// Formats input value to byte representation of bool
@ -152,7 +154,7 @@ var toAbiInput = function (json, methodName, params) {
} }
var method = json[index]; var method = json[index];
var padding = 32 * 2; var padding = ETH_PADDING * 2;
for (var i = 0; i < method.inputs.length; i++) { for (var i = 0; i < method.inputs.length; i++) {
var typeMatch = false; var typeMatch = false;
@ -178,12 +180,15 @@ var setupOutputTypes = function () {
var formatInt = function (value) { var formatInt = function (value) {
// 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 (value.substr(0, 1).toLowerCase() === 'f') { var firstBit = new BigNumber(value.substr(0, 1), 16).toString(2).substr(0, 1);
if (firstBit === '1') {
return new BigNumber(value, 16).minus(new BigNumber('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16)).minus(1); return new BigNumber(value, 16).minus(new BigNumber('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16)).minus(1);
} }
return new BigNumber(value, 16); return new BigNumber(value, 16);
}; };
/// Formats big right-aligned input bytes to uint
/// @returns right-aligned input bytes formatted to uint
var formatUInt = function (value) { var formatUInt = function (value) {
return new BigNumber(value, 16); return new BigNumber(value, 16);
}; };
@ -238,7 +243,7 @@ var fromAbiOutput = function (json, methodName, output) {
var result = []; var result = [];
var method = json[index]; var method = json[index];
var padding = 32 * 2; var padding = ETH_PADDING * 2;
for (var i = 0; i < method.outputs.length; i++) { for (var i = 0; i < method.outputs.length; i++) {
var typeMatch = false; var typeMatch = false;
for (var j = 0; j < outputTypes.length && !typeMatch; j++) { for (var j = 0; j < outputTypes.length && !typeMatch; j++) {
@ -308,7 +313,7 @@ module.exports = {
}; };
},{"bignumber.js":undefined}],2:[function(require,module,exports){ },{"./web3":8}],2:[function(require,module,exports){
/* /*
This file is part of ethereum.js. This file is part of ethereum.js.
@ -448,11 +453,7 @@ module.exports = AutoProvider;
* @date 2014 * @date 2014
*/ */
// TODO: is these line is supposed to be here?
if ("build" !== 'build') {/*
var web3 = require('./web3'); // jshint ignore:line var web3 = require('./web3'); // jshint ignore:line
*/}
var abi = require('./abi'); var abi = require('./abi');
/// method signature length in bytes /// method signature length in bytes
@ -520,7 +521,7 @@ var contract = function (address, desc) {
module.exports = contract; module.exports = contract;
},{"./abi":1}],4:[function(require,module,exports){ },{"./abi":1,"./web3":8}],4:[function(require,module,exports){
/* /*
This file is part of ethereum.js. This file is part of ethereum.js.
@ -546,10 +547,7 @@ module.exports = contract;
* @date 2014 * @date 2014
*/ */
// TODO: is these line is supposed to be here?
if ("build" !== 'build') {/*
var web3 = require('./web3'); // jshint ignore:line var web3 = require('./web3'); // jshint ignore:line
*/}
/// should be used when we want to watch something /// should be used when we want to watch something
/// it's using inner polling mechanism and is notified about changes /// it's using inner polling mechanism and is notified about changes
@ -611,7 +609,7 @@ Filter.prototype.logs = function () {
module.exports = Filter; module.exports = Filter;
},{}],5:[function(require,module,exports){ },{"./web3":8}],5:[function(require,module,exports){
/* /*
This file is part of ethereum.js. This file is part of ethereum.js.
@ -766,9 +764,7 @@ module.exports = HttpRpcProvider;
*/ */
// TODO: is these line is supposed to be here? // TODO: is these line is supposed to be here?
if ("build" !== 'build') {/*
var web3 = require('./web3'); // jshint ignore:line var web3 = require('./web3'); // jshint ignore:line
*/}
/** /**
* Provider manager object prototype * Provider manager object prototype
@ -863,7 +859,7 @@ ProviderManager.prototype.stopPolling = function (pollId) {
module.exports = ProviderManager; module.exports = ProviderManager;
},{}],7:[function(require,module,exports){ },{"./web3":8}],7:[function(require,module,exports){
/* /*
This file is part of ethereum.js. This file is part of ethereum.js.
@ -948,9 +944,6 @@ module.exports = QtProvider;
* @date 2014 * @date 2014
*/ */
var Filter = require('./filter');
var ProviderManager = require('./providermanager');
/// Recursively resolves all promises in given object and replaces the resolved values with promises /// Recursively resolves all promises in given object and replaces the resolved values with promises
/// @param any object/array/promise/anything else.. /// @param any object/array/promise/anything else..
/// @returns (resolves) object with replaced promises with their result /// @returns (resolves) object with replaced promises with their result
@ -1244,7 +1237,7 @@ var web3 = {
/// eth object prototype /// eth object prototype
eth: { eth: {
watch: function (params) { watch: function (params) {
return new Filter(params, ethWatch); return new web3.filter(params, ethWatch);
} }
}, },
@ -1254,7 +1247,7 @@ var web3 = {
/// shh object prototype /// shh object prototype
shh: { shh: {
watch: function (params) { watch: function (params) {
return new Filter(params, shhWatch); return new web3.filter(params, shhWatch);
} }
}, },
@ -1312,8 +1305,6 @@ var shhWatch = {
setupMethods(shhWatch, shhWatchMethods()); setupMethods(shhWatch, shhWatchMethods());
web3.provider = new ProviderManager();
web3.setProvider = function(provider) { web3.setProvider = function(provider) {
provider.onmessage = messageHandler; provider.onmessage = messageHandler;
web3.provider.set(provider); web3.provider.set(provider);
@ -1336,10 +1327,10 @@ function messageHandler(data) {
} }
} }
if (typeof(module) !== "undefined")
module.exports = web3; module.exports = web3;
},{"./filter":4,"./providermanager":6}],9:[function(require,module,exports){
},{}],9:[function(require,module,exports){
/* /*
This file is part of ethereum.js. This file is part of ethereum.js.
@ -1441,6 +1432,9 @@ if (typeof(module) !== "undefined")
},{}],"web3":[function(require,module,exports){ },{}],"web3":[function(require,module,exports){
var web3 = require('./lib/web3'); var web3 = require('./lib/web3');
var ProviderManager = require('./lib/providermanager');
web3.provider = new ProviderManager();
web3.filter = require('./lib/filter');
web3.providers.WebSocketProvider = require('./lib/websocket'); web3.providers.WebSocketProvider = require('./lib/websocket');
web3.providers.HttpRpcProvider = require('./lib/httprpc'); web3.providers.HttpRpcProvider = require('./lib/httprpc');
web3.providers.QtProvider = require('./lib/qt'); web3.providers.QtProvider = require('./lib/qt');
@ -1449,7 +1443,7 @@ web3.eth.contract = require('./lib/contract');
module.exports = web3; module.exports = web3;
},{"./lib/autoprovider":2,"./lib/contract":3,"./lib/httprpc":5,"./lib/qt":7,"./lib/web3":8,"./lib/websocket":9}]},{},["web3"]) },{"./lib/autoprovider":2,"./lib/contract":3,"./lib/filter":4,"./lib/httprpc":5,"./lib/providermanager":6,"./lib/qt":7,"./lib/web3":8,"./lib/websocket":9}]},{},["web3"])
//# sourceMappingURL=ethereum.js.map //# sourceMappingURL=ethereum.js.map

14
dist/ethereum.js.map vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
<head> <head>
<script type="text/javascript" src="js/es6-promise/promise.min.js"></script> <script type="text/javascript" src="js/es6-promise/promise.min.js"></script>
<script type="text/javascript" src="../node_modules/bignumber.js/bignumber.min.js"></script> <script type="text/javascript" src="js/bignumber.js/bignumber.min.js"></script>
<script type="text/javascript" src="../dist/ethereum.js"></script> <script type="text/javascript" src="../dist/ethereum.js"></script>
<script type="text/javascript"> <script type="text/javascript">

View File

@ -3,6 +3,7 @@
<head> <head>
<script type="text/javascript" src="js/es6-promise/promise.min.js"></script> <script type="text/javascript" src="js/es6-promise/promise.min.js"></script>
<script type="text/javascript" src="js/bignumber.js/bignumber.min.js"></script>
<script type="text/javascript" src="../dist/ethereum.js"></script> <script type="text/javascript" src="../dist/ethereum.js"></script>
<script type="text/javascript"> <script type="text/javascript">

View File

@ -1,4 +1,7 @@
var web3 = require('./lib/web3'); var web3 = require('./lib/web3');
var ProviderManager = require('./lib/providermanager');
web3.provider = new ProviderManager();
web3.filter = require('./lib/filter');
web3.providers.WebSocketProvider = require('./lib/websocket'); web3.providers.WebSocketProvider = require('./lib/websocket');
web3.providers.HttpRpcProvider = require('./lib/httprpc'); web3.providers.HttpRpcProvider = require('./lib/httprpc');
web3.providers.QtProvider = require('./lib/qt'); web3.providers.QtProvider = require('./lib/qt');

View File

@ -23,10 +23,14 @@
// TODO: is these line is supposed to be here? // TODO: is these line is supposed to be here?
if (process.env.NODE_ENV !== 'build') { if (process.env.NODE_ENV !== 'build') {
var web3 = require('./web3'); // jshint ignore:line var BigNumber = require('bignumber.js'); // jshint ignore:line
} }
var BigNumber = require('bignumber.js'); var web3 = require('./web3'); // jshint ignore:line
BigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_DOWN });
var ETH_PADDING = 32;
// TODO: make these be actually accurate instead of falling back onto JS's doubles. // TODO: make these be actually accurate instead of falling back onto JS's doubles.
var hexToDec = function (hex) { var hexToDec = function (hex) {
@ -87,25 +91,23 @@ var setupInputTypes = function () {
/// Formats input value to byte representation of int /// Formats input value to byte representation of int
/// If value is negative, return it's two's complement /// If value is negative, return it's two's complement
/// If the value is floating point, round it down
/// @returns right-aligned byte representation of int /// @returns right-aligned byte representation of int
var formatInt = function (value) { var formatInt = function (value) {
var padding = 32 * 2; var padding = ETH_PADDING * 2;
if (value instanceof BigNumber) { if (value instanceof BigNumber || typeof value === 'number') {
if (typeof value === 'number')
value = new BigNumber(value);
value = value.round();
if (value.lessThan(0)) if (value.lessThan(0))
value = new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).plus(value).plus(1).toString(16); value = new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).plus(value).plus(1);
else
value = value.toString(16); value = value.toString(16);
} }
else if (typeof value === 'number') {
if (value < 0)
value = new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16).plus(value).plus(1).toString(16);
else
value = new BigNumber(value).toString(16);
}
else if (value.indexOf('0x') === 0) else if (value.indexOf('0x') === 0)
value = value.substr(2); value = value.substr(2);
else if (typeof value === 'string') else if (typeof value === 'string')
value = new BigNumber(value).toString(16); value = formatInt(new BigNumber(value));
else else
value = (+value).toString(16); value = (+value).toString(16);
return padLeft(value, padding); return padLeft(value, padding);
@ -114,7 +116,7 @@ var setupInputTypes = function () {
/// Formats input value to byte representation of string /// Formats input value to byte representation of string
/// @returns left-algined byte representation of string /// @returns left-algined byte representation of string
var formatString = function (value) { var formatString = function (value) {
return web3.fromAscii(value, 32).substr(2); return web3.fromAscii(value, ETH_PADDING).substr(2);
}; };
/// Formats input value to byte representation of bool /// Formats input value to byte representation of bool
@ -151,7 +153,7 @@ var toAbiInput = function (json, methodName, params) {
} }
var method = json[index]; var method = json[index];
var padding = 32 * 2; var padding = ETH_PADDING * 2;
for (var i = 0; i < method.inputs.length; i++) { for (var i = 0; i < method.inputs.length; i++) {
var typeMatch = false; var typeMatch = false;
@ -177,12 +179,15 @@ var setupOutputTypes = function () {
var formatInt = function (value) { var formatInt = function (value) {
// 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 (value.substr(0, 1).toLowerCase() === 'f') { var firstBit = new BigNumber(value.substr(0, 1), 16).toString(2).substr(0, 1);
if (firstBit === '1') {
return new BigNumber(value, 16).minus(new BigNumber('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16)).minus(1); return new BigNumber(value, 16).minus(new BigNumber('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16)).minus(1);
} }
return new BigNumber(value, 16); return new BigNumber(value, 16);
}; };
/// Formats big right-aligned input bytes to uint
/// @returns right-aligned input bytes formatted to uint
var formatUInt = function (value) { var formatUInt = function (value) {
return new BigNumber(value, 16); return new BigNumber(value, 16);
}; };
@ -237,7 +242,7 @@ var fromAbiOutput = function (json, methodName, output) {
var result = []; var result = [];
var method = json[index]; var method = json[index];
var padding = 32 * 2; var padding = ETH_PADDING * 2;
for (var i = 0; i < method.outputs.length; i++) { for (var i = 0; i < method.outputs.length; i++) {
var typeMatch = false; var typeMatch = false;
for (var j = 0; j < outputTypes.length && !typeMatch; j++) { for (var j = 0; j < outputTypes.length && !typeMatch; j++) {

View File

@ -20,11 +20,7 @@
* @date 2014 * @date 2014
*/ */
// TODO: is these line is supposed to be here?
if (process.env.NODE_ENV !== 'build') {
var web3 = require('./web3'); // jshint ignore:line var web3 = require('./web3'); // jshint ignore:line
}
var abi = require('./abi'); var abi = require('./abi');
/// method signature length in bytes /// method signature length in bytes

View File

@ -23,10 +23,7 @@
* @date 2014 * @date 2014
*/ */
// TODO: is these line is supposed to be here?
if (process.env.NODE_ENV !== 'build') {
var web3 = require('./web3'); // jshint ignore:line var web3 = require('./web3'); // jshint ignore:line
}
/// should be used when we want to watch something /// should be used when we want to watch something
/// it's using inner polling mechanism and is notified about changes /// it's using inner polling mechanism and is notified about changes

View File

@ -24,9 +24,7 @@
*/ */
// TODO: is these line is supposed to be here? // TODO: is these line is supposed to be here?
if (process.env.NODE_ENV !== 'build') {
var web3 = require('./web3'); // jshint ignore:line var web3 = require('./web3'); // jshint ignore:line
}
/** /**
* Provider manager object prototype * Provider manager object prototype

View File

@ -23,9 +23,6 @@
* @date 2014 * @date 2014
*/ */
var Filter = require('./filter');
var ProviderManager = require('./providermanager');
/// Recursively resolves all promises in given object and replaces the resolved values with promises /// Recursively resolves all promises in given object and replaces the resolved values with promises
/// @param any object/array/promise/anything else.. /// @param any object/array/promise/anything else..
/// @returns (resolves) object with replaced promises with their result /// @returns (resolves) object with replaced promises with their result
@ -319,7 +316,7 @@ var web3 = {
/// eth object prototype /// eth object prototype
eth: { eth: {
watch: function (params) { watch: function (params) {
return new Filter(params, ethWatch); return new web3.filter(params, ethWatch);
} }
}, },
@ -329,7 +326,7 @@ var web3 = {
/// shh object prototype /// shh object prototype
shh: { shh: {
watch: function (params) { watch: function (params) {
return new Filter(params, shhWatch); return new web3.filter(params, shhWatch);
} }
}, },
@ -387,8 +384,6 @@ var shhWatch = {
setupMethods(shhWatch, shhWatchMethods()); setupMethods(shhWatch, shhWatchMethods());
web3.provider = new ProviderManager();
web3.setProvider = function(provider) { web3.setProvider = function(provider) {
provider.onmessage = messageHandler; provider.onmessage = messageHandler;
web3.provider.set(provider); web3.provider.set(provider);
@ -411,5 +406,5 @@ function messageHandler(data) {
} }
} }
if (typeof(module) !== "undefined")
module.exports = web3; module.exports = web3;

View File

@ -1,7 +1,7 @@
{ {
"name": "ethereum.js", "name": "ethereum.js",
"namespace": "ethereum", "namespace": "ethereum",
"version": "0.0.7", "version": "0.0.8",
"description": "Ethereum Compatible JavaScript API", "description": "Ethereum Compatible JavaScript API",
"main": "./index.js", "main": "./index.js",
"directories": { "directories": {

View File

@ -43,6 +43,11 @@ describe('abi', function() {
parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)), parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
); );
assert.equal(parser.test(0.1), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test(3.9), "0000000000000000000000000000000000000000000000000000000000000003");
assert.equal(parser.test('0.1'), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test('3.9'), "0000000000000000000000000000000000000000000000000000000000000003");
}); });
@ -69,6 +74,10 @@ describe('abi', function() {
parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)), parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
); );
assert.equal(parser.test(0.1), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test(3.9), "0000000000000000000000000000000000000000000000000000000000000003");
assert.equal(parser.test('0.1'), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test('3.9'), "0000000000000000000000000000000000000000000000000000000000000003");
}); });
@ -95,6 +104,10 @@ describe('abi', function() {
parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)), parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
); );
assert.equal(parser.test(0.1), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test(3.9), "0000000000000000000000000000000000000000000000000000000000000003");
assert.equal(parser.test('0.1'), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test('3.9'), "0000000000000000000000000000000000000000000000000000000000000003");
}); });
@ -124,6 +137,10 @@ describe('abi', function() {
parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)), parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
); );
assert.equal(parser.test(0.1), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test(3.9), "0000000000000000000000000000000000000000000000000000000000000003");
assert.equal(parser.test('0.1'), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test('3.9'), "0000000000000000000000000000000000000000000000000000000000000003");
}); });
it('should parse input int128', function() { it('should parse input int128', function() {
@ -152,6 +169,10 @@ describe('abi', function() {
parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)), parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
); );
assert.equal(parser.test(0.1), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test(3.9), "0000000000000000000000000000000000000000000000000000000000000003");
assert.equal(parser.test('0.1'), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test('3.9'), "0000000000000000000000000000000000000000000000000000000000000003");
}); });
@ -181,6 +202,10 @@ describe('abi', function() {
parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)), parser.test(new BigNumber("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)),
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
); );
assert.equal(parser.test(0.1), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test(3.9), "0000000000000000000000000000000000000000000000000000000000000003");
assert.equal(parser.test('0.1'), "0000000000000000000000000000000000000000000000000000000000000000");
assert.equal(parser.test('3.9'), "0000000000000000000000000000000000000000000000000000000000000003");
}); });