mirror of
https://github.com/status-im/web3.js.git
synced 2025-02-23 19:48:13 +00:00
changes in input formatters
This commit is contained in:
parent
748cda238a
commit
0898669bd2
@ -14,10 +14,10 @@
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with ethereum.js. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/** @file eth.js
|
||||
* @authors:
|
||||
* Marek Kotewicz <marek@ethdev.com>
|
||||
* Fabian Vogelsteller <fabian@ethdev.com>
|
||||
/**
|
||||
* @file eth.js
|
||||
* @author Marek Kotewicz <marek@ethdev.com>
|
||||
* @author Fabian Vogelsteller <fabian@ethdev.com>
|
||||
* @date 2015
|
||||
*/
|
||||
|
||||
@ -77,7 +77,7 @@ var methods = [{
|
||||
name: 'getBalance',
|
||||
call: 'eth_getBalance',
|
||||
addDefaultblock: 2,
|
||||
outputFormatter: formatters.convertToBigNumber
|
||||
outputFormatter: formatters.inputNumberFormatter
|
||||
}, {
|
||||
name: 'getStorage',
|
||||
call: 'eth_getStorage',
|
||||
@ -95,12 +95,12 @@ var methods = [{
|
||||
name: 'getBlock',
|
||||
call: blockCall,
|
||||
outputFormatter: formatters.outputBlockFormatter,
|
||||
inputFormatter: [utils.toHex, function(param){ return (!param) ? false : true; }]
|
||||
inputFormatter: formatters.inputBlockFormatter
|
||||
}, {
|
||||
name: 'getUncle',
|
||||
call: uncleCall,
|
||||
outputFormatter: formatters.outputBlockFormatter,
|
||||
inputFormatter: [utils.toHex, utils.toHex, function(param){ return (!param) ? false : true; }]
|
||||
inputFormatter: formatters.inputUncleFormatter
|
||||
}, {
|
||||
name: 'getCompilers',
|
||||
call: 'eth_getCompilers'
|
||||
@ -176,7 +176,7 @@ var methods = [{
|
||||
var properties = [
|
||||
{ name: 'coinbase', getter: 'eth_coinbase'},
|
||||
{ name: 'mining', getter: 'eth_mining'},
|
||||
{ name: 'gasPrice', getter: 'eth_gasPrice', outputFormatter: formatters.convertToBigNumber},
|
||||
{ name: 'gasPrice', getter: 'eth_gasPrice', outputFormatter: formatters.inputNumberFormatter},
|
||||
{ name: 'accounts', getter: 'eth_accounts' },
|
||||
{ name: 'blockNumber', getter: 'eth_blockNumber', outputFormatter: utils.toDecimal},
|
||||
|
||||
@ -186,7 +186,6 @@ var properties = [
|
||||
{ name: 'number', getter: 'eth_number', newProperty: 'eth.blockNumber'}
|
||||
];
|
||||
|
||||
|
||||
module.exports = {
|
||||
methods: methods,
|
||||
properties: properties
|
||||
|
@ -14,10 +14,10 @@
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with ethereum.js. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/** @file formatters.js
|
||||
* @authors:
|
||||
* Marek Kotewicz <marek@ethdev.com>
|
||||
* Fabian Vogelsteller <fabian@ethdev.com>
|
||||
/**
|
||||
* @file formatters.js
|
||||
* @author Marek Kotewicz <marek@ethdev.com>
|
||||
* @author Fabian Vogelsteller <fabian@ethdev.com>
|
||||
* @date 2015
|
||||
*/
|
||||
|
||||
@ -26,12 +26,13 @@ var utils = require('../utils/utils');
|
||||
/**
|
||||
* Should the input to a big number
|
||||
*
|
||||
* @method convertToBigNumber
|
||||
* @method inputNumberFormatter
|
||||
* @param {String|Number|BigNumber}
|
||||
* @returns {BigNumber} object
|
||||
*/
|
||||
var convertToBigNumber = function (value) {
|
||||
return utils.toBigNumber(value);
|
||||
var inputNumberFormatter = function (args) {
|
||||
args[0] = utils.toBigNumber(args[0]);
|
||||
return args;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -41,7 +42,8 @@ var convertToBigNumber = function (value) {
|
||||
* @param {Object} transaction options
|
||||
* @returns object
|
||||
*/
|
||||
var inputTransactionFormatter = function (options){
|
||||
var inputTransactionFormatter = function (args){
|
||||
var options = args[0];
|
||||
|
||||
// make code -> data
|
||||
if (options.code) {
|
||||
@ -53,7 +55,7 @@ var inputTransactionFormatter = function (options){
|
||||
options[key] = utils.fromDecimal(options[key]);
|
||||
});
|
||||
|
||||
return options;
|
||||
return args;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -77,7 +79,8 @@ var outputTransactionFormatter = function (tx){
|
||||
* @param {Object} transaction options
|
||||
* @returns object
|
||||
*/
|
||||
var inputCallFormatter = function (options){
|
||||
var inputCallFormatter = function (args){
|
||||
var options = args[0];
|
||||
|
||||
// make code -> data
|
||||
if (options.code) {
|
||||
@ -85,9 +88,21 @@ var inputCallFormatter = function (options){
|
||||
delete options.code;
|
||||
}
|
||||
|
||||
return options;
|
||||
return args;
|
||||
};
|
||||
|
||||
var inputBlockFormatter = function (args) {
|
||||
args[0] = utils.toHex(args[0]);
|
||||
args[1] = !!args[1];
|
||||
return args;
|
||||
};
|
||||
|
||||
var inputUncleFormatter = function (args) {
|
||||
args[0] = utils.toHex(args[0]);
|
||||
args[1] = utils.toHex(args[1]);
|
||||
args[2] = !!args[2];
|
||||
return args;
|
||||
};
|
||||
|
||||
/**
|
||||
* Formats the output of a block to its proper values
|
||||
@ -96,7 +111,7 @@ var inputCallFormatter = function (options){
|
||||
* @param {Object} block object
|
||||
* @returns {Object} block object
|
||||
*/
|
||||
var outputBlockFormatter = function(block){
|
||||
var outputBlockFormatter = function(block) {
|
||||
|
||||
// transform to number
|
||||
block.gasLimit = utils.toDecimal(block.gasLimit);
|
||||
@ -142,7 +157,8 @@ var outputLogFormatter = function(log){
|
||||
* @param {Object} transaction object
|
||||
* @returns {Object}
|
||||
*/
|
||||
var inputPostFormatter = function(post){
|
||||
var inputPostFormatter = function(args){
|
||||
var post = args[0];
|
||||
|
||||
post.payload = utils.toHex(post.payload);
|
||||
post.ttl = utils.fromDecimal(post.ttl);
|
||||
@ -157,7 +173,7 @@ var inputPostFormatter = function(post){
|
||||
return utils.fromAscii(topic);
|
||||
});
|
||||
|
||||
return post;
|
||||
return args;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -191,13 +207,15 @@ var outputPostFormatter = function(post){
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
convertToBigNumber: convertToBigNumber,
|
||||
inputNumberFormatter: inputNumberFormatter,
|
||||
inputTransactionFormatter: inputTransactionFormatter,
|
||||
outputTransactionFormatter: outputTransactionFormatter,
|
||||
inputCallFormatter: inputCallFormatter,
|
||||
inputPostFormatter: inputPostFormatter,
|
||||
inputBlockFormatter: inputBlockFormatter,
|
||||
inputUncleFormatter: inputUncleFormatter,
|
||||
outputTransactionFormatter: outputTransactionFormatter,
|
||||
outputBlockFormatter: outputBlockFormatter,
|
||||
outputLogFormatter: outputLogFormatter,
|
||||
inputPostFormatter: inputPostFormatter,
|
||||
outputPostFormatter: outputPostFormatter
|
||||
};
|
||||
|
||||
|
@ -1,28 +1,29 @@
|
||||
var chai = require('chai');
|
||||
var formatters = require('../lib/web3/formatters.js');
|
||||
var assert = chai.assert;
|
||||
var formatters = require('../lib/web3/formatters.js');
|
||||
|
||||
describe('formatters', function () {
|
||||
describe('inputPostFormatter', function () {
|
||||
it('should return the correct value', function () {
|
||||
|
||||
// input as strings and numbers
|
||||
assert.deepEqual(formatters.inputPostFormatter({
|
||||
assert.deepEqual(formatters.inputPostFormatter([{
|
||||
from: '0x00000',
|
||||
to: '0x00000',
|
||||
payload: {test: 'test'},
|
||||
ttl: 200,
|
||||
priority: 1000,
|
||||
topics: ['hello','mytopics']
|
||||
}), {
|
||||
}]), [{
|
||||
from: '0x00000',
|
||||
to: '0x00000',
|
||||
payload: '0x7b2274657374223a2274657374227d',
|
||||
ttl: '0xc8',
|
||||
priority: '0x3e8',
|
||||
topics: ['0x68656c6c6f','0x6d79746f70696373']
|
||||
});
|
||||
}]);
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
var assert = require('assert');
|
||||
var chai = require('chai');
|
||||
var assert = chai.assert;
|
||||
var formatters = require('../lib/web3/formatters.js');
|
||||
var BigNumber = require('bignumber.js');
|
||||
|
||||
@ -6,21 +7,21 @@ describe('formatters', function () {
|
||||
describe('inputTransactionFormatter', function () {
|
||||
it('should return the correct value', function () {
|
||||
|
||||
assert.deepEqual(formatters.inputTransactionFormatter({
|
||||
assert.deepEqual(formatters.inputTransactionFormatter([{
|
||||
data: '0x34234kjh23kj4234',
|
||||
value: new BigNumber(100),
|
||||
from: '0x00000',
|
||||
to: '0x00000',
|
||||
gas: 1000,
|
||||
gasPrice: new BigNumber(1000),
|
||||
}), {
|
||||
}]), [{
|
||||
data: '0x34234kjh23kj4234',
|
||||
value: '0x64',
|
||||
from: '0x00000',
|
||||
to: '0x00000',
|
||||
gas: '0x3e8',
|
||||
gasPrice: '0x3e8',
|
||||
});
|
||||
}]);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -4,6 +4,7 @@ var RequestManager = require('../lib/web3/requestmanager');
|
||||
var FakeHttpProvider = require('./FakeHttpProvider');
|
||||
|
||||
// TODO: handling errors!
|
||||
// TODO: validation of params!
|
||||
|
||||
describe('requestmanager', function () {
|
||||
describe('send', function () {
|
||||
|
Loading…
x
Reference in New Issue
Block a user