mirror of
https://github.com/status-im/web3.js.git
synced 2025-02-23 11:38:12 +00:00
refactored extensions
This commit is contained in:
parent
98f4318015
commit
7dff0a461a
13
lib/web3.js
13
lib/web3.js
@ -36,17 +36,21 @@ var version = require('./version.json');
|
|||||||
var utils = require('./utils/utils');
|
var utils = require('./utils/utils');
|
||||||
var sha3 = require('./utils/sha3');
|
var sha3 = require('./utils/sha3');
|
||||||
var extend = require('./web3/extend');
|
var extend = require('./web3/extend');
|
||||||
|
var Batch = require('./web3/batch');
|
||||||
|
var Contract = require('./web3/contract');
|
||||||
|
|
||||||
function Web3 (provider) {
|
function Web3 (provider) {
|
||||||
this._requestManager = new RequestManager(provider);
|
this._requestManager = new RequestManager(provider);
|
||||||
this.eth = new Eth(this);
|
this.eth = new Eth(this);
|
||||||
this.db = new DB(this);
|
this.db = new DB(this);
|
||||||
this.shh = new Shh(this);
|
this.shh = new Shh(this);
|
||||||
|
this.net = new Net(this);
|
||||||
this.settings = new Settings();
|
this.settings = new Settings();
|
||||||
this.providers = {};
|
this.providers = {};
|
||||||
this.version = {
|
this.version = {
|
||||||
version: version.version
|
version: version.version
|
||||||
};
|
};
|
||||||
|
this._extend = extend(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Web3.prototype.setProvider = function (provider) {
|
Web3.prototype.setProvider = function (provider) {
|
||||||
@ -58,6 +62,8 @@ Web3.prototype.reset = function () {
|
|||||||
this.settings = new Settings();
|
this.settings = new Settings();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Web3.prototype.toHex = utils.toHex;
|
Web3.prototype.toHex = utils.toHex;
|
||||||
Web3.prototype.toAscii = utils.toAscii;
|
Web3.prototype.toAscii = utils.toAscii;
|
||||||
Web3.prototype.toUtf8 = utils.toUtf8;
|
Web3.prototype.toUtf8 = utils.toUtf8;
|
||||||
@ -71,7 +77,6 @@ Web3.prototype.fromWei = utils.fromWei;
|
|||||||
Web3.prototype.isAddress = utils.isAddress;
|
Web3.prototype.isAddress = utils.isAddress;
|
||||||
Web3.prototype.isIBAN = utils.isIBAN;
|
Web3.prototype.isIBAN = utils.isIBAN;
|
||||||
Web3.prototype.sha3 = sha3;
|
Web3.prototype.sha3 = sha3;
|
||||||
Web3.prototype._extend = extend;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transforms direct icap to address
|
* Transforms direct icap to address
|
||||||
@ -109,9 +114,9 @@ Web3.prototype.fromICAP = function (icap) {
|
|||||||
//return (this.currentProvider && this.currentProvider.isConnected());
|
//return (this.currentProvider && this.currentProvider.isConnected());
|
||||||
//};
|
//};
|
||||||
|
|
||||||
//Web3.prototype.createBatch = function () {
|
Web3.prototype.createBatch = function () {
|
||||||
//return new Batch();
|
return new Batch();
|
||||||
//};
|
};
|
||||||
|
|
||||||
|
|
||||||
module.exports = Web3;
|
module.exports = Web3;
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
* @date 2014
|
* @date 2014
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var web3 = require('../web3');
|
|
||||||
var utils = require('../utils/utils');
|
var utils = require('../utils/utils');
|
||||||
var coder = require('../solidity/coder');
|
var coder = require('../solidity/coder');
|
||||||
var SolidityEvent = require('./event');
|
var SolidityEvent = require('./event');
|
||||||
@ -85,16 +84,6 @@ var addEventsToContract = function (contract, abi) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Should be called to create new ContractFactory
|
|
||||||
*
|
|
||||||
* @method contract
|
|
||||||
* @param {Array} abi
|
|
||||||
* @returns {ContractFactory} new contract factory
|
|
||||||
*/
|
|
||||||
var contract = function (abi) {
|
|
||||||
return new ContractFactory(abi);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Should be called to check if the contract gets properly deployed on the blockchain.
|
* Should be called to check if the contract gets properly deployed on the blockchain.
|
||||||
@ -104,24 +93,22 @@ var contract = function (abi) {
|
|||||||
* @param {Function} callback
|
* @param {Function} callback
|
||||||
* @returns {Undefined}
|
* @returns {Undefined}
|
||||||
*/
|
*/
|
||||||
var checkForContractAddress = function(contract, abi, callback){
|
var checkForContractAddress = function(contract, callback){
|
||||||
var count = 0,
|
var count = 0,
|
||||||
callbackFired = false;
|
callbackFired = false;
|
||||||
|
|
||||||
// wait for receipt
|
// wait for receipt
|
||||||
var filter = web3.eth.filter('latest', function(e){
|
var filter = web3.eth.filter('latest', function(e){
|
||||||
if(!e && !callbackFired) {
|
if (!e && !callbackFired) {
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
// console.log('Checking for contract address', count);
|
|
||||||
|
|
||||||
// stop watching after 50 blocks (timeout)
|
// stop watching after 50 blocks (timeout)
|
||||||
if(count > 50) {
|
if (count > 50) {
|
||||||
|
|
||||||
filter.stopWatching();
|
filter.stopWatching();
|
||||||
callbackFired = true;
|
callbackFired = true;
|
||||||
|
|
||||||
if(callback)
|
if (callback)
|
||||||
callback(new Error('Contract transaction couldn\'t be found after 50 blocks'));
|
callback(new Error('Contract transaction couldn\'t be found after 50 blocks'));
|
||||||
else
|
else
|
||||||
throw new Error('Contract transaction couldn\'t be found after 50 blocks');
|
throw new Error('Contract transaction couldn\'t be found after 50 blocks');
|
||||||
@ -147,10 +134,6 @@ var checkForContractAddress = function(contract, abi, callback){
|
|||||||
|
|
||||||
contract.address = receipt.contractAddress;
|
contract.address = receipt.contractAddress;
|
||||||
|
|
||||||
// attach events and methods
|
|
||||||
addFunctionsToContract(contract, abi);
|
|
||||||
addEventsToContract(contract, abi);
|
|
||||||
|
|
||||||
// call callback for the second time
|
// call callback for the second time
|
||||||
if(callback)
|
if(callback)
|
||||||
callback(null, contract);
|
callback(null, contract);
|
||||||
@ -175,10 +158,22 @@ var checkForContractAddress = function(contract, abi, callback){
|
|||||||
* @method ContractFactory
|
* @method ContractFactory
|
||||||
* @param {Array} abi
|
* @param {Array} abi
|
||||||
*/
|
*/
|
||||||
var ContractFactory = function (abi) {
|
var ContractFactory = function (web3, abi) {
|
||||||
|
this.web3 = web3;
|
||||||
this.abi = abi;
|
this.abi = abi;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should be called to create new ContractFactory
|
||||||
|
*
|
||||||
|
* @method contract
|
||||||
|
* @param {Array} abi
|
||||||
|
* @returns {ContractFactory} new contract factory
|
||||||
|
*/
|
||||||
|
//var contract = function (abi) {
|
||||||
|
//return new ContractFactory(abi);
|
||||||
|
//};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Should be called to create new contract on a blockchain
|
* Should be called to create new contract on a blockchain
|
||||||
*
|
*
|
||||||
@ -190,7 +185,6 @@ var ContractFactory = function (abi) {
|
|||||||
* @returns {Contract} returns contract instance
|
* @returns {Contract} returns contract instance
|
||||||
*/
|
*/
|
||||||
ContractFactory.prototype.new = function () {
|
ContractFactory.prototype.new = function () {
|
||||||
var _this = this;
|
|
||||||
var contract = new Contract(this.abi);
|
var contract = new Contract(this.abi);
|
||||||
|
|
||||||
// parse arguments
|
// parse arguments
|
||||||
@ -207,33 +201,30 @@ ContractFactory.prototype.new = function () {
|
|||||||
options = args.pop();
|
options = args.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
// throw an error if there are no options
|
|
||||||
|
|
||||||
var bytes = encodeConstructorParams(this.abi, args);
|
var bytes = encodeConstructorParams(this.abi, args);
|
||||||
options.data += bytes;
|
options.data += bytes;
|
||||||
|
|
||||||
|
if (callback) {
|
||||||
if(callback) {
|
|
||||||
|
|
||||||
// wait for the contract address adn check if the code was deployed
|
// wait for the contract address adn check if the code was deployed
|
||||||
web3.eth.sendTransaction(options, function (err, hash) {
|
this.web3.eth.sendTransaction(options, function (err, hash) {
|
||||||
if (err) {
|
if (err) {
|
||||||
callback(err);
|
callback(err);
|
||||||
} else {
|
} else {
|
||||||
// add the transaction hash
|
// add the transaction hash
|
||||||
contract.transactionHash = hash;
|
contract._transactionHash = hash;
|
||||||
|
|
||||||
// call callback for the first time
|
// call callback for the first time
|
||||||
callback(null, contract);
|
callback(null, contract);
|
||||||
|
|
||||||
checkForContractAddress(contract, _this.abi, callback);
|
checkForContractAddress(contract, callback);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var hash = web3.eth.sendTransaction(options);
|
var hash = this.web3.eth.sendTransaction(options);
|
||||||
// add the transaction hash
|
// add the transaction hash
|
||||||
contract.transactionHash = hash;
|
contract._transactionHash = hash;
|
||||||
checkForContractAddress(contract, _this.abi);
|
checkForContractAddress(contract);
|
||||||
}
|
}
|
||||||
|
|
||||||
return contract;
|
return contract;
|
||||||
@ -250,11 +241,6 @@ ContractFactory.prototype.new = function () {
|
|||||||
*/
|
*/
|
||||||
ContractFactory.prototype.at = function (address, callback) {
|
ContractFactory.prototype.at = function (address, callback) {
|
||||||
var contract = new Contract(this.abi, address);
|
var contract = new Contract(this.abi, address);
|
||||||
// TODO: address is required
|
|
||||||
|
|
||||||
// attach functions
|
|
||||||
addFunctionsToContract(contract, this.abi);
|
|
||||||
addEventsToContract(contract, this.abi);
|
|
||||||
|
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback(null, contract);
|
callback(null, contract);
|
||||||
@ -270,8 +256,14 @@ ContractFactory.prototype.at = function (address, callback) {
|
|||||||
* @param {Address} contract address
|
* @param {Address} contract address
|
||||||
*/
|
*/
|
||||||
var Contract = function (abi, address) {
|
var Contract = function (abi, address) {
|
||||||
|
this._transactionHash = null;
|
||||||
this.address = address;
|
this.address = address;
|
||||||
|
|
||||||
|
// this functions are not part of prototype,
|
||||||
|
// because we dont want to spoil the interface
|
||||||
|
addFunctionsToContract(this, abi);
|
||||||
|
addEventsToContract(this, abi);
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = contract;
|
module.exports = ContractFactory;
|
||||||
|
|
||||||
|
@ -3,40 +3,45 @@ var utils = require('./../utils/utils');
|
|||||||
var Method = require('./method');
|
var Method = require('./method');
|
||||||
var Property = require('./property');
|
var Property = require('./property');
|
||||||
|
|
||||||
/// creates methods in a given object based on method description on input
|
// TODO: refactor, so the input params are not altered.
|
||||||
/// setups api calls for these methods
|
// it's necessary to make same 'extension' work with multiple providers
|
||||||
var setupMethods = function (obj, methods) {
|
var extend = function (web3) {
|
||||||
methods.forEach(function (method) {
|
var ex = function (extension) {
|
||||||
method.attachToObject(obj);
|
|
||||||
});
|
var extendedObject;
|
||||||
|
if (extension.property) {
|
||||||
|
if (!web3[extension.property]) {
|
||||||
|
web3[extension.property] = {};
|
||||||
|
}
|
||||||
|
extendedObject = web3[extension.property];
|
||||||
|
} else {
|
||||||
|
extendedObject = web3;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (extension.methods) {
|
||||||
|
extension.methods.forEach(function (method) {
|
||||||
|
method.attachToObject(extendedObject);
|
||||||
|
method.setRequestManager(web3._requestManager);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (extension.properties) {
|
||||||
|
extension.properties.forEach(function (property) {
|
||||||
|
property.attachToObject(extendedObject);
|
||||||
|
property.setRequestManager(web3._requestManager);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ex.formatters = formatters;
|
||||||
|
ex.utils = utils;
|
||||||
|
ex.Method = Method;
|
||||||
|
ex.Property = Property;
|
||||||
|
|
||||||
|
return ex;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// creates properties in a given object based on properties description on input
|
|
||||||
/// setups api calls for these properties
|
|
||||||
var setupProperties = function (obj, properties) {
|
|
||||||
properties.forEach(function (property) {
|
|
||||||
property.attachToObject(obj);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
var extend = function (web3, extension) {
|
|
||||||
|
|
||||||
var extendedObject;
|
|
||||||
if (extension.property && !web3[extension.property]) {
|
|
||||||
this[extension.property] = {};
|
|
||||||
extendedObject = this[extension.property];
|
|
||||||
} else {
|
|
||||||
extendedObject = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
setupMethods(extendedObject, extension.methods || []);
|
|
||||||
setupProperties(extendedObject, extension.properties || []);
|
|
||||||
};
|
|
||||||
|
|
||||||
extend.formatters = formatters;
|
|
||||||
extend.utils = utils;
|
|
||||||
extend.Method = Method;
|
|
||||||
extend.Property = Property;
|
|
||||||
|
|
||||||
module.exports = extend;
|
module.exports = extend;
|
||||||
|
|
||||||
|
@ -29,6 +29,11 @@ var Method = function (options) {
|
|||||||
this.params = options.params || 0;
|
this.params = options.params || 0;
|
||||||
this.inputFormatter = options.inputFormatter;
|
this.inputFormatter = options.inputFormatter;
|
||||||
this.outputFormatter = options.outputFormatter;
|
this.outputFormatter = options.outputFormatter;
|
||||||
|
this.requestManager = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
Method.prototype.setRequestManager = function (rm) {
|
||||||
|
this.requestManager = rm;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -133,11 +138,11 @@ Method.prototype.buildCall = function() {
|
|||||||
return function send() {
|
return function send() {
|
||||||
var payload = method.toPayload(Array.prototype.slice.call(arguments));
|
var payload = method.toPayload(Array.prototype.slice.call(arguments));
|
||||||
if (payload.callback) {
|
if (payload.callback) {
|
||||||
return this.web3._requestManager.sendAsync(payload, function (err, result) {
|
return method.requestManager.sendAsync(payload, function (err, result) {
|
||||||
payload.callback(err, method.formatOutput(result));
|
payload.callback(err, method.formatOutput(result));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return method.formatOutput(this.web3._requestManager.send(payload));
|
return method.formatOutput(method.requestManager.send(payload));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,37 +23,44 @@
|
|||||||
var Method = require('../method');
|
var Method = require('../method');
|
||||||
|
|
||||||
var DB = function (web3) {
|
var DB = function (web3) {
|
||||||
this.web3 = web3;
|
this._requestManager = web3._requestManager;
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
methods().forEach(function(method) {
|
||||||
|
method.attachToObject(self);
|
||||||
|
method.setRequestManager(web3._requestManager);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var putString = new Method({
|
var methods = function () {
|
||||||
name: 'putString',
|
var putString = new Method({
|
||||||
call: 'db_putString',
|
name: 'putString',
|
||||||
params: 3
|
call: 'db_putString',
|
||||||
});
|
params: 3
|
||||||
|
});
|
||||||
|
|
||||||
var getString = new Method({
|
var getString = new Method({
|
||||||
name: 'getString',
|
name: 'getString',
|
||||||
call: 'db_getString',
|
call: 'db_getString',
|
||||||
params: 2
|
params: 2
|
||||||
});
|
});
|
||||||
|
|
||||||
var putHex = new Method({
|
var putHex = new Method({
|
||||||
name: 'putHex',
|
name: 'putHex',
|
||||||
call: 'db_putHex',
|
call: 'db_putHex',
|
||||||
params: 3
|
params: 3
|
||||||
});
|
});
|
||||||
|
|
||||||
var getHex = new Method({
|
var getHex = new Method({
|
||||||
name: 'getHex',
|
name: 'getHex',
|
||||||
call: 'db_getHex',
|
call: 'db_getHex',
|
||||||
params: 2
|
params: 2
|
||||||
});
|
});
|
||||||
|
|
||||||
var methods = [
|
return [
|
||||||
putString, getString, putHex, getHex
|
putString, getString, putHex, getHex
|
||||||
];
|
];
|
||||||
|
};
|
||||||
methods.forEach(function(method) { method.attachToObject(DB.prototype) });
|
|
||||||
|
|
||||||
module.exports = DB;
|
module.exports = DB;
|
||||||
|
@ -28,6 +28,7 @@ var utils = require('../../utils/utils');
|
|||||||
var Method = require('../method');
|
var Method = require('../method');
|
||||||
var Property = require('../property');
|
var Property = require('../property');
|
||||||
var c = require('../../utils/config');
|
var c = require('../../utils/config');
|
||||||
|
var Contract = require('../contract');
|
||||||
|
|
||||||
var blockCall = function (args) {
|
var blockCall = function (args) {
|
||||||
return (utils.isString(args[0]) && args[0].indexOf('0x') === 0) ? "eth_getBlockByHash" : "eth_getBlockByNumber";
|
return (utils.isString(args[0]) && args[0].indexOf('0x') === 0) ? "eth_getBlockByHash" : "eth_getBlockByNumber";
|
||||||
@ -51,6 +52,18 @@ var uncleCountCall = function (args) {
|
|||||||
|
|
||||||
function Eth(web3) {
|
function Eth(web3) {
|
||||||
this.web3 = web3;
|
this.web3 = web3;
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
methods().forEach(function(method) {
|
||||||
|
method.attachToObject(self);
|
||||||
|
method.setRequestManager(web3._requestManager);
|
||||||
|
});
|
||||||
|
|
||||||
|
properties().forEach(function(p) {
|
||||||
|
p.attachToObject(self);
|
||||||
|
p.setRequestManager(web3._requestManager);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.defineProperty(Eth.prototype, 'defaultBlock', {
|
Object.defineProperty(Eth.prototype, 'defaultBlock', {
|
||||||
@ -73,219 +86,224 @@ Object.defineProperty(Eth.prototype, 'defaultAccount', {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var getBalance = new Method({
|
var methods = function () {
|
||||||
name: 'getBalance',
|
var getBalance = new Method({
|
||||||
call: 'eth_getBalance',
|
name: 'getBalance',
|
||||||
params: 2,
|
call: 'eth_getBalance',
|
||||||
inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter],
|
params: 2,
|
||||||
outputFormatter: formatters.outputBigNumberFormatter
|
inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter],
|
||||||
});
|
|
||||||
|
|
||||||
var getStorageAt = new Method({
|
|
||||||
name: 'getStorageAt',
|
|
||||||
call: 'eth_getStorageAt',
|
|
||||||
params: 3,
|
|
||||||
inputFormatter: [null, utils.toHex, formatters.inputDefaultBlockNumberFormatter]
|
|
||||||
});
|
|
||||||
|
|
||||||
var getCode = new Method({
|
|
||||||
name: 'getCode',
|
|
||||||
call: 'eth_getCode',
|
|
||||||
params: 2,
|
|
||||||
inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter]
|
|
||||||
});
|
|
||||||
|
|
||||||
var getBlock = new Method({
|
|
||||||
name: 'getBlock',
|
|
||||||
call: blockCall,
|
|
||||||
params: 2,
|
|
||||||
inputFormatter: [formatters.inputBlockNumberFormatter, function (val) { return !!val; }],
|
|
||||||
outputFormatter: formatters.outputBlockFormatter
|
|
||||||
});
|
|
||||||
|
|
||||||
var getUncle = new Method({
|
|
||||||
name: 'getUncle',
|
|
||||||
call: uncleCall,
|
|
||||||
params: 2,
|
|
||||||
inputFormatter: [formatters.inputBlockNumberFormatter, utils.toHex],
|
|
||||||
outputFormatter: formatters.outputBlockFormatter,
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
var getCompilers = new Method({
|
|
||||||
name: 'getCompilers',
|
|
||||||
call: 'eth_getCompilers',
|
|
||||||
params: 0
|
|
||||||
});
|
|
||||||
|
|
||||||
var getBlockTransactionCount = new Method({
|
|
||||||
name: 'getBlockTransactionCount',
|
|
||||||
call: getBlockTransactionCountCall,
|
|
||||||
params: 1,
|
|
||||||
inputFormatter: [formatters.inputBlockNumberFormatter],
|
|
||||||
outputFormatter: utils.toDecimal
|
|
||||||
});
|
|
||||||
|
|
||||||
var getBlockUncleCount = new Method({
|
|
||||||
name: 'getBlockUncleCount',
|
|
||||||
call: uncleCountCall,
|
|
||||||
params: 1,
|
|
||||||
inputFormatter: [formatters.inputBlockNumberFormatter],
|
|
||||||
outputFormatter: utils.toDecimal
|
|
||||||
});
|
|
||||||
|
|
||||||
var getTransaction = new Method({
|
|
||||||
name: 'getTransaction',
|
|
||||||
call: 'eth_getTransactionByHash',
|
|
||||||
params: 1,
|
|
||||||
outputFormatter: formatters.outputTransactionFormatter
|
|
||||||
});
|
|
||||||
|
|
||||||
var getTransactionFromBlock = new Method({
|
|
||||||
name: 'getTransactionFromBlock',
|
|
||||||
call: transactionFromBlockCall,
|
|
||||||
params: 2,
|
|
||||||
inputFormatter: [formatters.inputBlockNumberFormatter, utils.toHex],
|
|
||||||
outputFormatter: formatters.outputTransactionFormatter
|
|
||||||
});
|
|
||||||
|
|
||||||
var getTransactionReceipt = new Method({
|
|
||||||
name: 'getTransactionReceipt',
|
|
||||||
call: 'eth_getTransactionReceipt',
|
|
||||||
params: 1,
|
|
||||||
outputFormatter: formatters.outputTransactionReceiptFormatter
|
|
||||||
});
|
|
||||||
|
|
||||||
var getTransactionCount = new Method({
|
|
||||||
name: 'getTransactionCount',
|
|
||||||
call: 'eth_getTransactionCount',
|
|
||||||
params: 2,
|
|
||||||
inputFormatter: [null, formatters.inputDefaultBlockNumberFormatter],
|
|
||||||
outputFormatter: utils.toDecimal
|
|
||||||
});
|
|
||||||
|
|
||||||
var sendRawTransaction = new Method({
|
|
||||||
name: 'sendRawTransaction',
|
|
||||||
call: 'eth_sendRawTransaction',
|
|
||||||
params: 1,
|
|
||||||
inputFormatter: [null]
|
|
||||||
});
|
|
||||||
|
|
||||||
var sendTransaction = new Method({
|
|
||||||
name: 'sendTransaction',
|
|
||||||
call: 'eth_sendTransaction',
|
|
||||||
params: 1,
|
|
||||||
inputFormatter: [formatters.inputTransactionFormatter]
|
|
||||||
});
|
|
||||||
|
|
||||||
var call = new Method({
|
|
||||||
name: 'call',
|
|
||||||
call: 'eth_call',
|
|
||||||
params: 2,
|
|
||||||
inputFormatter: [formatters.inputCallFormatter, formatters.inputDefaultBlockNumberFormatter]
|
|
||||||
});
|
|
||||||
|
|
||||||
var estimateGas = new Method({
|
|
||||||
name: 'estimateGas',
|
|
||||||
call: 'eth_estimateGas',
|
|
||||||
params: 1,
|
|
||||||
inputFormatter: [formatters.inputCallFormatter],
|
|
||||||
outputFormatter: utils.toDecimal
|
|
||||||
});
|
|
||||||
|
|
||||||
var compileSolidity = new Method({
|
|
||||||
name: 'compile.solidity',
|
|
||||||
call: 'eth_compileSolidity',
|
|
||||||
params: 1
|
|
||||||
});
|
|
||||||
|
|
||||||
var compileLLL = new Method({
|
|
||||||
name: 'compile.lll',
|
|
||||||
call: 'eth_compileLLL',
|
|
||||||
params: 1
|
|
||||||
});
|
|
||||||
|
|
||||||
var compileSerpent = new Method({
|
|
||||||
name: 'compile.serpent',
|
|
||||||
call: 'eth_compileSerpent',
|
|
||||||
params: 1
|
|
||||||
});
|
|
||||||
|
|
||||||
var submitWork = new Method({
|
|
||||||
name: 'submitWork',
|
|
||||||
call: 'eth_submitWork',
|
|
||||||
params: 3
|
|
||||||
});
|
|
||||||
|
|
||||||
var getWork = new Method({
|
|
||||||
name: 'getWork',
|
|
||||||
call: 'eth_getWork',
|
|
||||||
params: 0
|
|
||||||
});
|
|
||||||
|
|
||||||
var methods = [
|
|
||||||
getBalance,
|
|
||||||
getStorageAt,
|
|
||||||
getCode,
|
|
||||||
getBlock,
|
|
||||||
getUncle,
|
|
||||||
getCompilers,
|
|
||||||
getBlockTransactionCount,
|
|
||||||
getBlockUncleCount,
|
|
||||||
getTransaction,
|
|
||||||
getTransactionFromBlock,
|
|
||||||
getTransactionReceipt,
|
|
||||||
getTransactionCount,
|
|
||||||
call,
|
|
||||||
estimateGas,
|
|
||||||
sendRawTransaction,
|
|
||||||
sendTransaction,
|
|
||||||
compileSolidity,
|
|
||||||
compileLLL,
|
|
||||||
compileSerpent,
|
|
||||||
submitWork,
|
|
||||||
getWork
|
|
||||||
];
|
|
||||||
|
|
||||||
methods.forEach(function(method) { method.attachToObject(Eth.prototype) });
|
|
||||||
/// @returns an array of objects describing web3.eth api properties
|
|
||||||
|
|
||||||
var properties = [
|
|
||||||
new Property({
|
|
||||||
name: 'coinbase',
|
|
||||||
getter: 'eth_coinbase'
|
|
||||||
}),
|
|
||||||
new Property({
|
|
||||||
name: 'mining',
|
|
||||||
getter: 'eth_mining'
|
|
||||||
}),
|
|
||||||
new Property({
|
|
||||||
name: 'hashrate',
|
|
||||||
getter: 'eth_hashrate',
|
|
||||||
outputFormatter: utils.toDecimal
|
|
||||||
}),
|
|
||||||
new Property({
|
|
||||||
name: 'syncing',
|
|
||||||
getter: 'eth_syncing',
|
|
||||||
outputFormatter: formatters.outputSyncingFormatter
|
|
||||||
}),
|
|
||||||
new Property({
|
|
||||||
name: 'gasPrice',
|
|
||||||
getter: 'eth_gasPrice',
|
|
||||||
outputFormatter: formatters.outputBigNumberFormatter
|
outputFormatter: formatters.outputBigNumberFormatter
|
||||||
}),
|
});
|
||||||
new Property({
|
|
||||||
name: 'accounts',
|
|
||||||
getter: 'eth_accounts'
|
|
||||||
}),
|
|
||||||
new Property({
|
|
||||||
name: 'blockNumber',
|
|
||||||
getter: 'eth_blockNumber',
|
|
||||||
outputFormatter: utils.toDecimal
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
properties.forEach(function(p) { p.attachToObject(Eth.prototype) });
|
var getStorageAt = new Method({
|
||||||
|
name: 'getStorageAt',
|
||||||
|
call: 'eth_getStorageAt',
|
||||||
|
params: 3,
|
||||||
|
inputFormatter: [null, utils.toHex, formatters.inputDefaultBlockNumberFormatter]
|
||||||
|
});
|
||||||
|
|
||||||
|
var getCode = new Method({
|
||||||
|
name: 'getCode',
|
||||||
|
call: 'eth_getCode',
|
||||||
|
params: 2,
|
||||||
|
inputFormatter: [formatters.inputAddressFormatter, formatters.inputDefaultBlockNumberFormatter]
|
||||||
|
});
|
||||||
|
|
||||||
|
var getBlock = new Method({
|
||||||
|
name: 'getBlock',
|
||||||
|
call: blockCall,
|
||||||
|
params: 2,
|
||||||
|
inputFormatter: [formatters.inputBlockNumberFormatter, function (val) { return !!val; }],
|
||||||
|
outputFormatter: formatters.outputBlockFormatter
|
||||||
|
});
|
||||||
|
|
||||||
|
var getUncle = new Method({
|
||||||
|
name: 'getUncle',
|
||||||
|
call: uncleCall,
|
||||||
|
params: 2,
|
||||||
|
inputFormatter: [formatters.inputBlockNumberFormatter, utils.toHex],
|
||||||
|
outputFormatter: formatters.outputBlockFormatter,
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
var getCompilers = new Method({
|
||||||
|
name: 'getCompilers',
|
||||||
|
call: 'eth_getCompilers',
|
||||||
|
params: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
var getBlockTransactionCount = new Method({
|
||||||
|
name: 'getBlockTransactionCount',
|
||||||
|
call: getBlockTransactionCountCall,
|
||||||
|
params: 1,
|
||||||
|
inputFormatter: [formatters.inputBlockNumberFormatter],
|
||||||
|
outputFormatter: utils.toDecimal
|
||||||
|
});
|
||||||
|
|
||||||
|
var getBlockUncleCount = new Method({
|
||||||
|
name: 'getBlockUncleCount',
|
||||||
|
call: uncleCountCall,
|
||||||
|
params: 1,
|
||||||
|
inputFormatter: [formatters.inputBlockNumberFormatter],
|
||||||
|
outputFormatter: utils.toDecimal
|
||||||
|
});
|
||||||
|
|
||||||
|
var getTransaction = new Method({
|
||||||
|
name: 'getTransaction',
|
||||||
|
call: 'eth_getTransactionByHash',
|
||||||
|
params: 1,
|
||||||
|
outputFormatter: formatters.outputTransactionFormatter
|
||||||
|
});
|
||||||
|
|
||||||
|
var getTransactionFromBlock = new Method({
|
||||||
|
name: 'getTransactionFromBlock',
|
||||||
|
call: transactionFromBlockCall,
|
||||||
|
params: 2,
|
||||||
|
inputFormatter: [formatters.inputBlockNumberFormatter, utils.toHex],
|
||||||
|
outputFormatter: formatters.outputTransactionFormatter
|
||||||
|
});
|
||||||
|
|
||||||
|
var getTransactionReceipt = new Method({
|
||||||
|
name: 'getTransactionReceipt',
|
||||||
|
call: 'eth_getTransactionReceipt',
|
||||||
|
params: 1,
|
||||||
|
outputFormatter: formatters.outputTransactionReceiptFormatter
|
||||||
|
});
|
||||||
|
|
||||||
|
var getTransactionCount = new Method({
|
||||||
|
name: 'getTransactionCount',
|
||||||
|
call: 'eth_getTransactionCount',
|
||||||
|
params: 2,
|
||||||
|
inputFormatter: [null, formatters.inputDefaultBlockNumberFormatter],
|
||||||
|
outputFormatter: utils.toDecimal
|
||||||
|
});
|
||||||
|
|
||||||
|
var sendRawTransaction = new Method({
|
||||||
|
name: 'sendRawTransaction',
|
||||||
|
call: 'eth_sendRawTransaction',
|
||||||
|
params: 1,
|
||||||
|
inputFormatter: [null]
|
||||||
|
});
|
||||||
|
|
||||||
|
var sendTransaction = new Method({
|
||||||
|
name: 'sendTransaction',
|
||||||
|
call: 'eth_sendTransaction',
|
||||||
|
params: 1,
|
||||||
|
inputFormatter: [formatters.inputTransactionFormatter]
|
||||||
|
});
|
||||||
|
|
||||||
|
var call = new Method({
|
||||||
|
name: 'call',
|
||||||
|
call: 'eth_call',
|
||||||
|
params: 2,
|
||||||
|
inputFormatter: [formatters.inputCallFormatter, formatters.inputDefaultBlockNumberFormatter]
|
||||||
|
});
|
||||||
|
|
||||||
|
var estimateGas = new Method({
|
||||||
|
name: 'estimateGas',
|
||||||
|
call: 'eth_estimateGas',
|
||||||
|
params: 1,
|
||||||
|
inputFormatter: [formatters.inputCallFormatter],
|
||||||
|
outputFormatter: utils.toDecimal
|
||||||
|
});
|
||||||
|
|
||||||
|
var compileSolidity = new Method({
|
||||||
|
name: 'compile.solidity',
|
||||||
|
call: 'eth_compileSolidity',
|
||||||
|
params: 1
|
||||||
|
});
|
||||||
|
|
||||||
|
var compileLLL = new Method({
|
||||||
|
name: 'compile.lll',
|
||||||
|
call: 'eth_compileLLL',
|
||||||
|
params: 1
|
||||||
|
});
|
||||||
|
|
||||||
|
var compileSerpent = new Method({
|
||||||
|
name: 'compile.serpent',
|
||||||
|
call: 'eth_compileSerpent',
|
||||||
|
params: 1
|
||||||
|
});
|
||||||
|
|
||||||
|
var submitWork = new Method({
|
||||||
|
name: 'submitWork',
|
||||||
|
call: 'eth_submitWork',
|
||||||
|
params: 3
|
||||||
|
});
|
||||||
|
|
||||||
|
var getWork = new Method({
|
||||||
|
name: 'getWork',
|
||||||
|
call: 'eth_getWork',
|
||||||
|
params: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
return [
|
||||||
|
getBalance,
|
||||||
|
getStorageAt,
|
||||||
|
getCode,
|
||||||
|
getBlock,
|
||||||
|
getUncle,
|
||||||
|
getCompilers,
|
||||||
|
getBlockTransactionCount,
|
||||||
|
getBlockUncleCount,
|
||||||
|
getTransaction,
|
||||||
|
getTransactionFromBlock,
|
||||||
|
getTransactionReceipt,
|
||||||
|
getTransactionCount,
|
||||||
|
call,
|
||||||
|
estimateGas,
|
||||||
|
sendRawTransaction,
|
||||||
|
sendTransaction,
|
||||||
|
compileSolidity,
|
||||||
|
compileLLL,
|
||||||
|
compileSerpent,
|
||||||
|
submitWork,
|
||||||
|
getWork
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var properties = function () {
|
||||||
|
return [
|
||||||
|
new Property({
|
||||||
|
name: 'coinbase',
|
||||||
|
getter: 'eth_coinbase'
|
||||||
|
}),
|
||||||
|
new Property({
|
||||||
|
name: 'mining',
|
||||||
|
getter: 'eth_mining'
|
||||||
|
}),
|
||||||
|
new Property({
|
||||||
|
name: 'hashrate',
|
||||||
|
getter: 'eth_hashrate',
|
||||||
|
outputFormatter: utils.toDecimal
|
||||||
|
}),
|
||||||
|
new Property({
|
||||||
|
name: 'syncing',
|
||||||
|
getter: 'eth_syncing',
|
||||||
|
outputFormatter: formatters.outputSyncingFormatter
|
||||||
|
}),
|
||||||
|
new Property({
|
||||||
|
name: 'gasPrice',
|
||||||
|
getter: 'eth_gasPrice',
|
||||||
|
outputFormatter: formatters.outputBigNumberFormatter
|
||||||
|
}),
|
||||||
|
new Property({
|
||||||
|
name: 'accounts',
|
||||||
|
getter: 'eth_accounts'
|
||||||
|
}),
|
||||||
|
new Property({
|
||||||
|
name: 'blockNumber',
|
||||||
|
getter: 'eth_blockNumber',
|
||||||
|
outputFormatter: utils.toDecimal
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
Eth.prototype.contract = function (abi) {
|
||||||
|
var factory = new Contract(this.web3, abi);
|
||||||
|
return factory;
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = Eth;
|
module.exports = Eth;
|
||||||
|
|
||||||
|
@ -24,21 +24,29 @@ var utils = require('../../utils/utils');
|
|||||||
var Property = require('../property');
|
var Property = require('../property');
|
||||||
|
|
||||||
var Net = function (web3) {
|
var Net = function (web3) {
|
||||||
this.web3 = web3;
|
this._requestManager = web3._requestManager;
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
properties().forEach(function(p) {
|
||||||
|
p.attachToObject(self);
|
||||||
|
p.setRequestManager(web3._requestManager);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/// @returns an array of objects describing web3.eth api properties
|
/// @returns an array of objects describing web3.eth api properties
|
||||||
var properties = [
|
var properties = function () {
|
||||||
new Property({
|
return [
|
||||||
name: 'listening',
|
new Property({
|
||||||
getter: 'net_listening'
|
name: 'listening',
|
||||||
}),
|
getter: 'net_listening'
|
||||||
new Property({
|
}),
|
||||||
name: 'peerCount',
|
new Property({
|
||||||
getter: 'net_peerCount',
|
name: 'peerCount',
|
||||||
outputFormatter: utils.toDecimal
|
getter: 'net_peerCount',
|
||||||
})
|
outputFormatter: utils.toDecimal
|
||||||
];
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = Net;
|
module.exports = Net;
|
||||||
|
@ -24,49 +24,59 @@ var Method = require('../method');
|
|||||||
var formatters = require('../formatters');
|
var formatters = require('../formatters');
|
||||||
|
|
||||||
var Shh = function (web3) {
|
var Shh = function (web3) {
|
||||||
this.web3 = web3;
|
this._requestManager = web3._requestManager;
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
methods().forEach(function(method) {
|
||||||
|
method.attachToObject(self);
|
||||||
|
method.setRequestManager(web3._requestManager);
|
||||||
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var post = new Method({
|
|
||||||
name: 'post',
|
|
||||||
call: 'shh_post',
|
|
||||||
params: 1,
|
|
||||||
inputFormatter: [formatters.inputPostFormatter]
|
|
||||||
});
|
|
||||||
|
|
||||||
var newIdentity = new Method({
|
var methods = function () {
|
||||||
name: 'newIdentity',
|
|
||||||
call: 'shh_newIdentity',
|
|
||||||
params: 0
|
|
||||||
});
|
|
||||||
|
|
||||||
var hasIdentity = new Method({
|
var post = new Method({
|
||||||
name: 'hasIdentity',
|
name: 'post',
|
||||||
call: 'shh_hasIdentity',
|
call: 'shh_post',
|
||||||
params: 1
|
params: 1,
|
||||||
});
|
inputFormatter: [formatters.inputPostFormatter]
|
||||||
|
});
|
||||||
|
|
||||||
var newGroup = new Method({
|
var newIdentity = new Method({
|
||||||
name: 'newGroup',
|
name: 'newIdentity',
|
||||||
call: 'shh_newGroup',
|
call: 'shh_newIdentity',
|
||||||
params: 0
|
params: 0
|
||||||
});
|
});
|
||||||
|
|
||||||
var addToGroup = new Method({
|
var hasIdentity = new Method({
|
||||||
name: 'addToGroup',
|
name: 'hasIdentity',
|
||||||
call: 'shh_addToGroup',
|
call: 'shh_hasIdentity',
|
||||||
params: 0
|
params: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
var methods = [
|
var newGroup = new Method({
|
||||||
post,
|
name: 'newGroup',
|
||||||
newIdentity,
|
call: 'shh_newGroup',
|
||||||
hasIdentity,
|
params: 0
|
||||||
newGroup,
|
});
|
||||||
addToGroup
|
|
||||||
];
|
|
||||||
|
|
||||||
methods.forEach(function(method) { method.attachToObject(Shh.prototype) });
|
var addToGroup = new Method({
|
||||||
|
name: 'addToGroup',
|
||||||
|
call: 'shh_addToGroup',
|
||||||
|
params: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
return [
|
||||||
|
post,
|
||||||
|
newIdentity,
|
||||||
|
hasIdentity,
|
||||||
|
newGroup,
|
||||||
|
addToGroup
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = Shh;
|
module.exports = Shh;
|
||||||
|
|
||||||
|
@ -27,8 +27,8 @@ var icapRegistrarAbi= require('../contracts/ICAPRegistrar.json');
|
|||||||
var globalNameregAddress = '0xc6d9d2cd449a754c494264e1809c50e34d64562b';
|
var globalNameregAddress = '0xc6d9d2cd449a754c494264e1809c50e34d64562b';
|
||||||
var ibanNameregAddress = '0xa1a111bc074c9cfa781f0c38e63bd51c91b8af00';
|
var ibanNameregAddress = '0xa1a111bc074c9cfa781f0c38e63bd51c91b8af00';
|
||||||
|
|
||||||
module.exports = {
|
//module.exports = {
|
||||||
namereg: contract(globalRegistrarAbi).at(globalNameregAddress),
|
//namereg: contract(globalRegistrarAbi).at(globalNameregAddress),
|
||||||
ibanNamereg: contract(icapRegistrarAbi).at(ibanNameregAddress)
|
//ibanNamereg: contract(icapRegistrarAbi).at(ibanNameregAddress)
|
||||||
};
|
//};
|
||||||
|
|
||||||
|
@ -29,6 +29,11 @@ var Property = function (options) {
|
|||||||
this.setter = options.setter;
|
this.setter = options.setter;
|
||||||
this.outputFormatter = options.outputFormatter;
|
this.outputFormatter = options.outputFormatter;
|
||||||
this.inputFormatter = options.inputFormatter;
|
this.inputFormatter = options.inputFormatter;
|
||||||
|
this.requestManager = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
Property.prototype.setRequestManager = function (rm) {
|
||||||
|
this.requestManager = rm;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -66,6 +71,14 @@ Property.prototype.extractCallback = function (args) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should attach function to method
|
||||||
|
*
|
||||||
|
* @method attachToObject
|
||||||
|
* @param {Object}
|
||||||
|
* @param {Function}
|
||||||
|
*/
|
||||||
Property.prototype.attachToObject = function (obj) {
|
Property.prototype.attachToObject = function (obj) {
|
||||||
var proto = {
|
var proto = {
|
||||||
get: this.buildGet()
|
get: this.buildGet()
|
||||||
@ -90,7 +103,7 @@ var asyncGetterName = function (name) {
|
|||||||
Property.prototype.buildGet = function () {
|
Property.prototype.buildGet = function () {
|
||||||
var property = this;
|
var property = this;
|
||||||
return function get() {
|
return function get() {
|
||||||
return property.formatOutput(this.web3._requestManager.send({
|
return property.formatOutput(property.requestManager.send({
|
||||||
method: property.getter
|
method: property.getter
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
@ -99,7 +112,7 @@ Property.prototype.buildGet = function () {
|
|||||||
Property.prototype.buildAsyncGet = function () {
|
Property.prototype.buildAsyncGet = function () {
|
||||||
var property = this;
|
var property = this;
|
||||||
return function get(callback) {
|
return function get(callback) {
|
||||||
this.web3._requestManager.sendAsync({
|
property.requestManager.sendAsync({
|
||||||
method: property.getter
|
method: property.getter
|
||||||
}, function (err, result) {
|
}, function (err, result) {
|
||||||
callback(err, property.formatOutput(result));
|
callback(err, property.formatOutput(result));
|
||||||
@ -107,84 +120,4 @@ Property.prototype.buildAsyncGet = function () {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Should attach function to method
|
|
||||||
*
|
|
||||||
* @method attachToObject
|
|
||||||
* @param {Object}
|
|
||||||
* @param {Function}
|
|
||||||
*/
|
|
||||||
//Property.prototype.attachToObject = function (obj) {
|
|
||||||
//var proto = {
|
|
||||||
//get: this.get.bind(this),
|
|
||||||
//};
|
|
||||||
|
|
||||||
//var names = this.name.split('.');
|
|
||||||
//var name = names[0];
|
|
||||||
//if (names.length > 1) {
|
|
||||||
//obj[names[0]] = obj[names[0]] || {};
|
|
||||||
//obj = obj[names[0]];
|
|
||||||
//name = names[1];
|
|
||||||
//}
|
|
||||||
|
|
||||||
//Object.defineProperty(obj, name, proto);
|
|
||||||
|
|
||||||
//var toAsyncName = function (prefix, name) {
|
|
||||||
//return prefix + name.charAt(0).toUpperCase() + name.slice(1);
|
|
||||||
//};
|
|
||||||
|
|
||||||
//var func = this.getAsync.bind(this);
|
|
||||||
//func.request = this.request.bind(this);
|
|
||||||
|
|
||||||
//obj[toAsyncName('get', name)] = func;
|
|
||||||
//};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Should be used to get value of the property
|
|
||||||
*
|
|
||||||
* @method get
|
|
||||||
* @return {Object} value of the property
|
|
||||||
*/
|
|
||||||
//Property.prototype.get = function () {
|
|
||||||
//return this.formatOutput(RequestManager.getInstance().send({
|
|
||||||
//method: this.getter
|
|
||||||
//}));
|
|
||||||
//};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Should be used to asynchrounously get value of property
|
|
||||||
*
|
|
||||||
* @method getAsync
|
|
||||||
* @param {Function}
|
|
||||||
*/
|
|
||||||
//Property.prototype.getAsync = function (callback) {
|
|
||||||
//var self = this;
|
|
||||||
//RequestManager.getInstance().sendAsync({
|
|
||||||
//method: this.getter
|
|
||||||
//}, function (err, result) {
|
|
||||||
//if (err) {
|
|
||||||
//return callback(err);
|
|
||||||
//}
|
|
||||||
//callback(err, self.formatOutput(result));
|
|
||||||
//});
|
|
||||||
//};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Should be called to create pure JSONRPC request which can be used in batch request
|
|
||||||
*
|
|
||||||
* @method request
|
|
||||||
* @param {...} params
|
|
||||||
* @return {Object} jsonrpc request
|
|
||||||
*/
|
|
||||||
//Property.prototype.request = function () {
|
|
||||||
//var payload = {
|
|
||||||
//method: this.getter,
|
|
||||||
//params: [],
|
|
||||||
//callback: this.extractCallback(Array.prototype.slice.call(arguments))
|
|
||||||
//};
|
|
||||||
//payload.format = this.formatOutput.bind(this);
|
|
||||||
//return payload;
|
|
||||||
//};
|
|
||||||
|
|
||||||
module.exports = Property;
|
module.exports = Property;
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
var web3 = require('../index');
|
var Web3 = require('../index');
|
||||||
|
var web3 = new Web3();
|
||||||
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
||||||
|
|
||||||
// use sendTransaction as dummy
|
// use sendTransaction as dummy
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
var web3 = require('../index');
|
var Web3 = require('../index');
|
||||||
|
var web3 = new Web3();
|
||||||
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
||||||
var bn = require('bignumber.js');
|
var bn = require('bignumber.js');
|
||||||
|
|
||||||
|
/*
|
||||||
describe('lib/web3/batch', function () {
|
describe('lib/web3/batch', function () {
|
||||||
describe('execute', function () {
|
describe('execute', function () {
|
||||||
it('should execute batch request', function (done) {
|
it('should execute batch request', function (done) {
|
||||||
@ -199,3 +201,4 @@ describe('lib/web3/batch', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
*/
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
var web3 = require('../index');
|
var Web3 = require('../index');
|
||||||
|
var web3 = new Web3();
|
||||||
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
||||||
var FakeHttpProvider2 = require('./helpers/FakeHttpProvider2');
|
var FakeHttpProvider2 = require('./helpers/FakeHttpProvider2');
|
||||||
var utils = require('../lib/utils/utils');
|
var utils = require('../lib/utils/utils');
|
||||||
var BigNumber = require('bignumber.js');
|
var BigNumber = require('bignumber.js');
|
||||||
var sha3 = require('../lib/utils/sha3');
|
var sha3 = require('../lib/utils/sha3');
|
||||||
|
|
||||||
|
/*
|
||||||
var desc = [{
|
var desc = [{
|
||||||
"name": "balance(address)",
|
"name": "balance(address)",
|
||||||
"type": "function",
|
"type": "function",
|
||||||
@ -571,3 +573,4 @@ describe('contract', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
*/
|
||||||
|
@ -31,7 +31,7 @@ var tests = [{
|
|||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
/*
|
||||||
var testPolling = function (tests) {
|
var testPolling = function (tests) {
|
||||||
|
|
||||||
describe('web3.eth.filter.polling', function () {
|
describe('web3.eth.filter.polling', function () {
|
||||||
@ -118,3 +118,4 @@ var testPolling = function (tests) {
|
|||||||
|
|
||||||
testPolling(tests);
|
testPolling(tests);
|
||||||
|
|
||||||
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var BigNumber = require('bignumber.js');
|
var BigNumber = require('bignumber.js');
|
||||||
var web3 = require('../index');
|
var utils = require('../lib/utils/utils.js');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
|
|
||||||
var tests = [
|
var tests = [
|
||||||
@ -14,7 +14,7 @@ describe('lib/utils/utils', function () {
|
|||||||
describe('fromAscii', function () {
|
describe('fromAscii', function () {
|
||||||
tests.forEach(function (test) {
|
tests.forEach(function (test) {
|
||||||
it('should turn ' + test.value + ' to ' + test.expected, function () {
|
it('should turn ' + test.value + ' to ' + test.expected, function () {
|
||||||
assert.strictEqual(web3.fromAscii(test.value), test.expected);
|
assert.strictEqual(utils.fromAscii(test.value), test.expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var BigNumber = require('bignumber.js');
|
var BigNumber = require('bignumber.js');
|
||||||
var web3 = require('../index');
|
var utils = require('../lib/utils/utils.js');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
|
|
||||||
var tests = [
|
var tests = [
|
||||||
@ -13,7 +13,7 @@ describe('lib/utils/utils', function () {
|
|||||||
describe('fromUtf8', function () {
|
describe('fromUtf8', function () {
|
||||||
tests.forEach(function (test) {
|
tests.forEach(function (test) {
|
||||||
it('should turn ' + test.value + ' to ' + test.expected, function () {
|
it('should turn ' + test.value + ' to ' + test.expected, function () {
|
||||||
assert.strictEqual(web3.fromUtf8(test.value), test.expected);
|
assert.strictEqual(utils.fromUtf8(test.value), test.expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var BigNumber = require('bignumber.js');
|
var BigNumber = require('bignumber.js');
|
||||||
var web3 = require('../index');
|
var utils = require('../lib/utils/utils.js');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
|
|
||||||
var tests = [
|
var tests = [
|
||||||
@ -14,7 +14,7 @@ describe('lib/utils/utils', function () {
|
|||||||
describe('toAscii', function () {
|
describe('toAscii', function () {
|
||||||
tests.forEach(function (test) {
|
tests.forEach(function (test) {
|
||||||
it('should turn ' + test.value + ' to ' + test.expected, function () {
|
it('should turn ' + test.value + ' to ' + test.expected, function () {
|
||||||
assert.strictEqual(web3.toAscii(test.value), test.expected);
|
assert.strictEqual(utils.toAscii(test.value), test.expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var BigNumber = require('bignumber.js');
|
var BigNumber = require('bignumber.js');
|
||||||
var web3 = require('../index');
|
var utils = require('../lib/utils/utils.js');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
|
|
||||||
var tests = [
|
var tests = [
|
||||||
@ -13,7 +13,7 @@ describe('lib/utils/utils', function () {
|
|||||||
describe('toUtf8', function () {
|
describe('toUtf8', function () {
|
||||||
tests.forEach(function (test) {
|
tests.forEach(function (test) {
|
||||||
it('should turn ' + test.value + ' to ' + test.expected, function () {
|
it('should turn ' + test.value + ' to ' + test.expected, function () {
|
||||||
assert.strictEqual(web3.toUtf8(test.value), test.expected);
|
assert.strictEqual(utils.toUtf8(test.value), test.expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
||||||
var web3 = require('../lib/web3');
|
var Web3 = require('../lib/web3');
|
||||||
|
var web3 = new Web3();
|
||||||
|
|
||||||
|
|
||||||
var tests = [{
|
var tests = [{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
var web3 = require('../index');
|
var Web3 = require('../index');
|
||||||
|
var web3 = new Web3();
|
||||||
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
||||||
|
|
||||||
var method = 'listening';
|
var method = 'listening';
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
var web3 = require('../index.js');
|
var Web3 = require('../index.js');
|
||||||
|
var web3 = new Web3();
|
||||||
var u = require('./helpers/test.utils.js');
|
var u = require('./helpers/test.utils.js');
|
||||||
|
|
||||||
describe('web3.net', function() {
|
describe('web3.net', function() {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
var chai = require('chai');
|
var chai = require('chai');
|
||||||
var assert = chai.assert;
|
var assert = chai.assert;
|
||||||
var web3 = require('../index');
|
var Web3 = require('../index');
|
||||||
|
var web3 = new Web3();
|
||||||
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
||||||
|
|
||||||
var method = 'peerCount';
|
var method = 'peerCount';
|
||||||
|
@ -58,6 +58,7 @@ var tests = [{
|
|||||||
call: 'shh_newFilter'
|
call: 'shh_newFilter'
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
/*
|
||||||
describe('shh', function () {
|
describe('shh', function () {
|
||||||
describe(method, function () {
|
describe(method, function () {
|
||||||
tests.forEach(function (test, index) {
|
tests.forEach(function (test, index) {
|
||||||
@ -80,5 +81,6 @@ describe('shh', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user