toDecimal/fromDecimal is using bignumber.js now

pull/272/merge
Marek Kotewicz 10 years ago
parent 81a5813270
commit c2d9c1a6f1
  1. 43
      dist/ethereum.js
  2. 4
      dist/ethereum.js.map
  3. 2
      dist/ethereum.min.js
  4. 43
      lib/web3.js

43
dist/ethereum.js vendored

@ -804,6 +804,32 @@ module.exports = ProviderManager;
* @date 2014 * @date 2014
*/ */
if ("build" !== 'build') {/*
var BigNumber = require('bignumber.js');
*/}
var ETH_UNITS = [
'wei',
'Kwei',
'Mwei',
'Gwei',
'szabo',
'finney',
'ether',
'grand',
'Mether',
'Gether',
'Tether',
'Pether',
'Eether',
'Zether',
'Yether',
'Nether',
'Dether',
'Vether',
'Uether'
];
/// @returns an array of objects describing web3 api methods /// @returns an array of objects describing web3 api methods
var web3Methods = function () { var web3Methods = function () {
return [ return [
@ -941,16 +967,6 @@ var setupProperties = function (obj, properties) {
}); });
}; };
// TODO: import from a dependency, don't duplicate.
// TODO: use bignumber for that!
var hexToDec = function (hex) {
return parseInt(hex, 16).toString();
};
var decToHex = function (dec) {
return parseInt(dec).toString(16);
};
/// setups web3 object, and it's in-browser executed methods /// setups web3 object, and it's in-browser executed methods
var web3 = { var web3 = {
_callbacks: {}, _callbacks: {},
@ -997,19 +1013,20 @@ var web3 = {
/// @returns decimal representaton of hex value prefixed by 0x /// @returns decimal representaton of hex value prefixed by 0x
toDecimal: function (val) { toDecimal: function (val) {
return hexToDec(val.substring(2)); return (new BigNumber(val.substring(2), 16).toString(10));
}, },
/// @returns hex representation (prefixed by 0x) of decimal value /// @returns hex representation (prefixed by 0x) of decimal value
fromDecimal: function (val) { fromDecimal: function (val) {
return "0x" + decToHex(val); return "0x" + (new BigNumber(val).toString(16));
}, },
/// used to transform value/string to eth string /// used to transform value/string to eth string
/// TODO: use BigNumber.js to parse int
toEth: function(str) { toEth: function(str) {
var val = typeof str === "string" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str; var val = typeof str === "string" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str;
var unit = 0; var unit = 0;
var units = [ 'wei', 'Kwei', 'Mwei', 'Gwei', 'szabo', 'finney', 'ether', 'grand', 'Mether', 'Gether', 'Tether', 'Pether', 'Eether', 'Zether', 'Yether', 'Nether', 'Dether', 'Vether', 'Uether' ]; var units = ETH_UNITS;
while (val > 3000 && unit < units.length - 1) while (val > 3000 && unit < units.length - 1)
{ {
val /= 1000; val /= 1000;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -23,6 +23,32 @@
* @date 2014 * @date 2014
*/ */
if (process.env.NODE_ENV !== 'build') {
var BigNumber = require('bignumber.js');
}
var ETH_UNITS = [
'wei',
'Kwei',
'Mwei',
'Gwei',
'szabo',
'finney',
'ether',
'grand',
'Mether',
'Gether',
'Tether',
'Pether',
'Eether',
'Zether',
'Yether',
'Nether',
'Dether',
'Vether',
'Uether'
];
/// @returns an array of objects describing web3 api methods /// @returns an array of objects describing web3 api methods
var web3Methods = function () { var web3Methods = function () {
return [ return [
@ -160,16 +186,6 @@ var setupProperties = function (obj, properties) {
}); });
}; };
// TODO: import from a dependency, don't duplicate.
// TODO: use bignumber for that!
var hexToDec = function (hex) {
return parseInt(hex, 16).toString();
};
var decToHex = function (dec) {
return parseInt(dec).toString(16);
};
/// setups web3 object, and it's in-browser executed methods /// setups web3 object, and it's in-browser executed methods
var web3 = { var web3 = {
_callbacks: {}, _callbacks: {},
@ -216,19 +232,20 @@ var web3 = {
/// @returns decimal representaton of hex value prefixed by 0x /// @returns decimal representaton of hex value prefixed by 0x
toDecimal: function (val) { toDecimal: function (val) {
return hexToDec(val.substring(2)); return (new BigNumber(val.substring(2), 16).toString(10));
}, },
/// @returns hex representation (prefixed by 0x) of decimal value /// @returns hex representation (prefixed by 0x) of decimal value
fromDecimal: function (val) { fromDecimal: function (val) {
return "0x" + decToHex(val); return "0x" + (new BigNumber(val).toString(16));
}, },
/// used to transform value/string to eth string /// used to transform value/string to eth string
/// TODO: use BigNumber.js to parse int
toEth: function(str) { toEth: function(str) {
var val = typeof str === "string" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str; var val = typeof str === "string" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str;
var unit = 0; var unit = 0;
var units = [ 'wei', 'Kwei', 'Mwei', 'Gwei', 'szabo', 'finney', 'ether', 'grand', 'Mether', 'Gether', 'Tether', 'Pether', 'Eether', 'Zether', 'Yether', 'Nether', 'Dether', 'Vether', 'Uether' ]; var units = ETH_UNITS;
while (val > 3000 && unit < units.length - 1) while (val > 3000 && unit < units.length - 1)
{ {
val /= 1000; val /= 1000;

Loading…
Cancel
Save