|
@ -1398,7 +1398,7 @@ module.exports = { |
|
|
|
|
|
|
|
|
},{"bignumber.js":"bignumber.js"}],8:[function(require,module,exports){ |
|
|
},{"bignumber.js":"bignumber.js"}],8:[function(require,module,exports){ |
|
|
module.exports={ |
|
|
module.exports={ |
|
|
"version": "0.7.1" |
|
|
"version": "0.9.0" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
},{}],9:[function(require,module,exports){ |
|
|
},{}],9:[function(require,module,exports){ |
|
@ -1505,6 +1505,9 @@ web3.setProvider = function (provider) { |
|
|
this.currentProvider = provider; |
|
|
this.currentProvider = provider; |
|
|
RequestManager.getInstance().setProvider(provider); |
|
|
RequestManager.getInstance().setProvider(provider); |
|
|
}; |
|
|
}; |
|
|
|
|
|
web3.isConnected = function(){ |
|
|
|
|
|
return (this.currentProvider && this.currentProvider.isConnected()); |
|
|
|
|
|
}; |
|
|
web3.reset = function () { |
|
|
web3.reset = function () { |
|
|
RequestManager.getInstance().reset(); |
|
|
RequestManager.getInstance().reset(); |
|
|
c.defaultBlock = 'latest'; |
|
|
c.defaultBlock = 'latest'; |
|
@ -1575,7 +1578,7 @@ setupMethods(web3.shh, shh.methods); |
|
|
module.exports = web3; |
|
|
module.exports = web3; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"./utils/config":5,"./utils/sha3":6,"./utils/utils":7,"./version.json":8,"./web3/batch":11,"./web3/db":13,"./web3/eth":15,"./web3/filter":17,"./web3/formatters":18,"./web3/method":23,"./web3/net":25,"./web3/property":26,"./web3/requestmanager":28,"./web3/shh":29,"./web3/watches":31}],10:[function(require,module,exports){ |
|
|
},{"./utils/config":5,"./utils/sha3":6,"./utils/utils":7,"./version.json":8,"./web3/batch":11,"./web3/db":13,"./web3/eth":15,"./web3/filter":17,"./web3/formatters":18,"./web3/method":24,"./web3/net":26,"./web3/property":27,"./web3/requestmanager":28,"./web3/shh":29,"./web3/watches":31}],10:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -1620,7 +1623,6 @@ AllSolidityEvents.prototype.encode = function (options) { |
|
|
result[f] = formatters.inputBlockNumberFormatter(options[f]); |
|
|
result[f] = formatters.inputBlockNumberFormatter(options[f]); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
result.topics = [null, null, null, null, null]; // match all topics
|
|
|
|
|
|
result.address = this._address; |
|
|
result.address = this._address; |
|
|
|
|
|
|
|
|
return result; |
|
|
return result; |
|
@ -1682,6 +1684,8 @@ module.exports = AllSolidityEvents; |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
var RequestManager = require('./requestmanager'); |
|
|
var RequestManager = require('./requestmanager'); |
|
|
|
|
|
var Jsonrpc = require('./jsonrpc'); |
|
|
|
|
|
var errors = require('./errors'); |
|
|
|
|
|
|
|
|
var Batch = function () { |
|
|
var Batch = function () { |
|
|
this.requests = []; |
|
|
this.requests = []; |
|
@ -1708,11 +1712,14 @@ Batch.prototype.execute = function () { |
|
|
results = results || []; |
|
|
results = results || []; |
|
|
requests.map(function (request, index) { |
|
|
requests.map(function (request, index) { |
|
|
return results[index] || {}; |
|
|
return results[index] || {}; |
|
|
}).map(function (result, index) { |
|
|
|
|
|
return requests[index].format ? requests[index].format(result.result) : result.result; |
|
|
|
|
|
}).forEach(function (result, index) { |
|
|
}).forEach(function (result, index) { |
|
|
if (requests[index].callback) { |
|
|
if (requests[index].callback) { |
|
|
requests[index].callback(err, result); |
|
|
|
|
|
|
|
|
if (!Jsonrpc.getInstance().isValidResponse(result)) { |
|
|
|
|
|
return requests[index].callback(errors.InvalidResponse(result)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
requests[index].callback(null, (requests[index].format ? requests[index].format(result.result) : result.result)); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |
|
@ -1721,7 +1728,7 @@ Batch.prototype.execute = function () { |
|
|
module.exports = Batch; |
|
|
module.exports = Batch; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"./requestmanager":28}],12:[function(require,module,exports){ |
|
|
},{"./errors":14,"./jsonrpc":23,"./requestmanager":28}],12:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -1820,6 +1827,79 @@ var contract = function (abi) { |
|
|
return new ContractFactory(abi); |
|
|
return new ContractFactory(abi); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Should be called to check if the contract gets properly deployed on the blockchain. |
|
|
|
|
|
* |
|
|
|
|
|
* @method checkForContractAddress |
|
|
|
|
|
* @param {Object} contract |
|
|
|
|
|
* @param {Function} callback |
|
|
|
|
|
* @returns {Undefined} |
|
|
|
|
|
*/ |
|
|
|
|
|
var checkForContractAddress = function(contract, abi, callback){ |
|
|
|
|
|
var count = 0, |
|
|
|
|
|
callbackFired = false; |
|
|
|
|
|
|
|
|
|
|
|
// wait for receipt
|
|
|
|
|
|
var filter = web3.eth.filter('latest', function(e){ |
|
|
|
|
|
if(!e && !callbackFired) { |
|
|
|
|
|
count++; |
|
|
|
|
|
|
|
|
|
|
|
// console.log('Checking for contract address', count);
|
|
|
|
|
|
|
|
|
|
|
|
// stop watching after 50 blocks (timeout)
|
|
|
|
|
|
if(count > 50) { |
|
|
|
|
|
|
|
|
|
|
|
filter.stopWatching(); |
|
|
|
|
|
callbackFired = true; |
|
|
|
|
|
|
|
|
|
|
|
if(callback) |
|
|
|
|
|
callback(new Error('Contract transaction couldn\'t be found after 50 blocks')); |
|
|
|
|
|
else |
|
|
|
|
|
throw new Error('Contract transaction couldn\'t be found after 50 blocks'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
web3.eth.getTransactionReceipt(contract.transactionHash, function(e, receipt){ |
|
|
|
|
|
if(receipt && !callbackFired) { |
|
|
|
|
|
|
|
|
|
|
|
web3.eth.getCode(receipt.contractAddress, function(e, code){ |
|
|
|
|
|
/*jshint maxcomplexity: 5 */ |
|
|
|
|
|
|
|
|
|
|
|
if(callbackFired) |
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
filter.stopWatching(); |
|
|
|
|
|
callbackFired = true; |
|
|
|
|
|
|
|
|
|
|
|
if(code.length > 2) { |
|
|
|
|
|
|
|
|
|
|
|
// console.log('Contract code deployed!');
|
|
|
|
|
|
|
|
|
|
|
|
contract.address = receipt.contractAddress; |
|
|
|
|
|
|
|
|
|
|
|
// attach events and methods
|
|
|
|
|
|
addFunctionsToContract(contract, abi); |
|
|
|
|
|
addEventsToContract(contract, abi); |
|
|
|
|
|
|
|
|
|
|
|
// call callback for the second time
|
|
|
|
|
|
if(callback) |
|
|
|
|
|
callback(null, contract); |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
if(callback) |
|
|
|
|
|
callback(new Error('The contract code couldn\'t be stored, please check your gas amount.')); |
|
|
|
|
|
else |
|
|
|
|
|
throw new Error('The contract code couldn\'t be stored, please check your gas amount.'); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Should be called to create new ContractFactory instance |
|
|
* Should be called to create new ContractFactory instance |
|
|
* |
|
|
* |
|
@ -1838,10 +1918,12 @@ var ContractFactory = function (abi) { |
|
|
* @param {Any} contract constructor param2 (optional) |
|
|
* @param {Any} contract constructor param2 (optional) |
|
|
* @param {Object} contract transaction object (required) |
|
|
* @param {Object} contract transaction object (required) |
|
|
* @param {Function} callback |
|
|
* @param {Function} callback |
|
|
* @returns {Contract} returns contract if no callback was passed, |
|
|
* @returns {Contract} returns contract instance |
|
|
* otherwise calls callback function (err, contract) |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
ContractFactory.prototype.new = function () { |
|
|
ContractFactory.prototype.new = function () { |
|
|
|
|
|
var _this = this; |
|
|
|
|
|
var contract = new Contract(this.abi); |
|
|
|
|
|
|
|
|
// parse arguments
|
|
|
// parse arguments
|
|
|
var options = {}; // required!
|
|
|
var options = {}; // required!
|
|
|
var callback; |
|
|
var callback; |
|
@ -1861,18 +1943,31 @@ ContractFactory.prototype.new = function () { |
|
|
var bytes = encodeConstructorParams(this.abi, args); |
|
|
var bytes = encodeConstructorParams(this.abi, args); |
|
|
options.data += bytes; |
|
|
options.data += bytes; |
|
|
|
|
|
|
|
|
if (!callback) { |
|
|
|
|
|
var address = web3.eth.sendTransaction(options); |
|
|
|
|
|
return this.at(address); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var self = this; |
|
|
if(callback) { |
|
|
web3.eth.sendTransaction(options, function (err, address) { |
|
|
|
|
|
|
|
|
// wait for the contract address adn check if the code was deployed
|
|
|
|
|
|
web3.eth.sendTransaction(options, function (err, hash) { |
|
|
if (err) { |
|
|
if (err) { |
|
|
callback(err); |
|
|
callback(err); |
|
|
|
|
|
} else { |
|
|
|
|
|
// add the transaction hash
|
|
|
|
|
|
contract.transactionHash = hash; |
|
|
|
|
|
|
|
|
|
|
|
// call callback for the first time
|
|
|
|
|
|
callback(null, contract); |
|
|
|
|
|
|
|
|
|
|
|
checkForContractAddress(contract, _this.abi, callback); |
|
|
} |
|
|
} |
|
|
self.at(address, callback); |
|
|
|
|
|
}); |
|
|
}); |
|
|
|
|
|
} else { |
|
|
|
|
|
var hash = web3.eth.sendTransaction(options); |
|
|
|
|
|
// add the transaction hash
|
|
|
|
|
|
contract.transactionHash = hash; |
|
|
|
|
|
checkForContractAddress(contract, _this.abi); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return contract; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -1885,12 +1980,17 @@ ContractFactory.prototype.new = function () { |
|
|
* otherwise calls callback function (err, contract) |
|
|
* otherwise calls callback function (err, contract) |
|
|
*/ |
|
|
*/ |
|
|
ContractFactory.prototype.at = function (address, callback) { |
|
|
ContractFactory.prototype.at = function (address, callback) { |
|
|
|
|
|
var contract = new Contract(this.abi, address); |
|
|
// TODO: address is required
|
|
|
// TODO: address is required
|
|
|
|
|
|
|
|
|
|
|
|
// attach functions
|
|
|
|
|
|
addFunctionsToContract(contract, this.abi); |
|
|
|
|
|
addEventsToContract(contract, this.abi); |
|
|
|
|
|
|
|
|
if (callback) { |
|
|
if (callback) { |
|
|
callback(null, new Contract(this.abi, address)); |
|
|
callback(null, contract); |
|
|
} |
|
|
} |
|
|
return new Contract(this.abi, address); |
|
|
return contract; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -1902,8 +2002,6 @@ ContractFactory.prototype.at = function (address, callback) { |
|
|
*/ |
|
|
*/ |
|
|
var Contract = function (abi, address) { |
|
|
var Contract = function (abi, address) { |
|
|
this.address = address; |
|
|
this.address = address; |
|
|
addFunctionsToContract(this, abi); |
|
|
|
|
|
addEventsToContract(this, abi); |
|
|
|
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
module.exports = contract; |
|
|
module.exports = contract; |
|
@ -1967,7 +2065,7 @@ module.exports = { |
|
|
methods: methods |
|
|
methods: methods |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
},{"./method":23}],14:[function(require,module,exports){ |
|
|
},{"./method":24}],14:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -2001,7 +2099,7 @@ module.exports = { |
|
|
return new Error('Providor not set or invalid'); |
|
|
return new Error('Providor not set or invalid'); |
|
|
}, |
|
|
}, |
|
|
InvalidResponse: function (result){ |
|
|
InvalidResponse: function (result){ |
|
|
var message = !!result && !!result.error && !!result.error.message ? result.error.message : 'Invalid JSON RPC response'; |
|
|
var message = !!result && !!result.error && !!result.error.message ? result.error.message : 'Invalid JSON RPC response: '+ result; |
|
|
return new Error(message); |
|
|
return new Error(message); |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
@ -2162,6 +2260,13 @@ var getTransactionFromBlock = new Method({ |
|
|
outputFormatter: formatters.outputTransactionFormatter |
|
|
outputFormatter: formatters.outputTransactionFormatter |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
var getTransactionReceipt = new Method({ |
|
|
|
|
|
name: 'getTransactionReceipt', |
|
|
|
|
|
call: 'eth_getTransactionReceipt', |
|
|
|
|
|
params: 1, |
|
|
|
|
|
outputFormatter: formatters.outputTransactionReceiptFormatter |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
var getTransactionCount = new Method({ |
|
|
var getTransactionCount = new Method({ |
|
|
name: 'getTransactionCount', |
|
|
name: 'getTransactionCount', |
|
|
call: 'eth_getTransactionCount', |
|
|
call: 'eth_getTransactionCount', |
|
@ -2174,7 +2279,7 @@ var sendRawTransaction = new Method({ |
|
|
name: 'sendRawTransaction', |
|
|
name: 'sendRawTransaction', |
|
|
call: 'eth_sendRawTransaction', |
|
|
call: 'eth_sendRawTransaction', |
|
|
params: 1, |
|
|
params: 1, |
|
|
inputFormatter: [] |
|
|
inputFormatter: [null] |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
var sendTransaction = new Method({ |
|
|
var sendTransaction = new Method({ |
|
@ -2240,6 +2345,7 @@ var methods = [ |
|
|
getBlockUncleCount, |
|
|
getBlockUncleCount, |
|
|
getTransaction, |
|
|
getTransaction, |
|
|
getTransactionFromBlock, |
|
|
getTransactionFromBlock, |
|
|
|
|
|
getTransactionReceipt, |
|
|
getTransactionCount, |
|
|
getTransactionCount, |
|
|
call, |
|
|
call, |
|
|
estimateGas, |
|
|
estimateGas, |
|
@ -2292,7 +2398,7 @@ module.exports = { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"../utils/utils":7,"./formatters":18,"./method":23,"./property":26}],16:[function(require,module,exports){ |
|
|
},{"../utils/utils":7,"./formatters":18,"./method":24,"./property":27}],16:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -2398,8 +2504,8 @@ SolidityEvent.prototype.encode = function (indexed, options) { |
|
|
|
|
|
|
|
|
result.topics = []; |
|
|
result.topics = []; |
|
|
|
|
|
|
|
|
if (!this._anonymous) { |
|
|
|
|
|
result.address = this._address; |
|
|
result.address = this._address; |
|
|
|
|
|
if (!this._anonymous) { |
|
|
result.topics.push('0x' + this.signature()); |
|
|
result.topics.push('0x' + this.signature()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -2594,9 +2700,11 @@ var getLogsAtStart = function(self, callback){ |
|
|
callback(err); |
|
|
callback(err); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(utils.isArray(messages)) { |
|
|
messages.forEach(function (message) { |
|
|
messages.forEach(function (message) { |
|
|
callback(null, message); |
|
|
callback(null, message); |
|
|
}); |
|
|
}); |
|
|
|
|
|
} |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
@ -2798,8 +2906,8 @@ var inputTransactionFormatter = function (options){ |
|
|
* Formats the output of a transaction to its proper values |
|
|
* Formats the output of a transaction to its proper values |
|
|
* |
|
|
* |
|
|
* @method outputTransactionFormatter |
|
|
* @method outputTransactionFormatter |
|
|
* @param {Object} transaction |
|
|
* @param {Object} tx |
|
|
* @returns {Object} transaction |
|
|
* @returns {Object} |
|
|
*/ |
|
|
*/ |
|
|
var outputTransactionFormatter = function (tx){ |
|
|
var outputTransactionFormatter = function (tx){ |
|
|
if(tx.blockNumber !== null) |
|
|
if(tx.blockNumber !== null) |
|
@ -2813,12 +2921,36 @@ var outputTransactionFormatter = function (tx){ |
|
|
return tx; |
|
|
return tx; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Formats the output of a transaction receipt to its proper values |
|
|
|
|
|
* |
|
|
|
|
|
* @method outputTransactionReceiptFormatter |
|
|
|
|
|
* @param {Object} receipt |
|
|
|
|
|
* @returns {Object} |
|
|
|
|
|
*/ |
|
|
|
|
|
var outputTransactionReceiptFormatter = function (receipt){ |
|
|
|
|
|
if(receipt.blockNumber !== null) |
|
|
|
|
|
receipt.blockNumber = utils.toDecimal(receipt.blockNumber); |
|
|
|
|
|
if(receipt.transactionIndex !== null) |
|
|
|
|
|
receipt.transactionIndex = utils.toDecimal(receipt.transactionIndex); |
|
|
|
|
|
receipt.cumulativeGasUsed = utils.toDecimal(receipt.cumulativeGasUsed); |
|
|
|
|
|
receipt.gasUsed = utils.toDecimal(receipt.gasUsed); |
|
|
|
|
|
|
|
|
|
|
|
if(utils.isArray(receipt.logs)) { |
|
|
|
|
|
receipt.logs = receipt.logs.map(function(log){ |
|
|
|
|
|
return outputLogFormatter(log); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return receipt; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Formats the output of a block to its proper values |
|
|
* Formats the output of a block to its proper values |
|
|
* |
|
|
* |
|
|
* @method outputBlockFormatter |
|
|
* @method outputBlockFormatter |
|
|
* @param {Object} block object |
|
|
* @param {Object} block |
|
|
* @returns {Object} block object |
|
|
* @returns {Object} |
|
|
*/ |
|
|
*/ |
|
|
var outputBlockFormatter = function(block) { |
|
|
var outputBlockFormatter = function(block) { |
|
|
|
|
|
|
|
@ -2926,6 +3058,7 @@ module.exports = { |
|
|
inputPostFormatter: inputPostFormatter, |
|
|
inputPostFormatter: inputPostFormatter, |
|
|
outputBigNumberFormatter: outputBigNumberFormatter, |
|
|
outputBigNumberFormatter: outputBigNumberFormatter, |
|
|
outputTransactionFormatter: outputTransactionFormatter, |
|
|
outputTransactionFormatter: outputTransactionFormatter, |
|
|
|
|
|
outputTransactionReceiptFormatter: outputTransactionReceiptFormatter, |
|
|
outputBlockFormatter: outputBlockFormatter, |
|
|
outputBlockFormatter: outputBlockFormatter, |
|
|
outputLogFormatter: outputLogFormatter, |
|
|
outputLogFormatter: outputLogFormatter, |
|
|
outputPostFormatter: outputPostFormatter |
|
|
outputPostFormatter: outputPostFormatter |
|
@ -3191,12 +3324,11 @@ module.exports = SolidityFunction; |
|
|
* Marek Kotewicz <marek@ethdev.com> |
|
|
* Marek Kotewicz <marek@ethdev.com> |
|
|
* Marian Oancea <marian@ethdev.com> |
|
|
* Marian Oancea <marian@ethdev.com> |
|
|
* Fabian Vogelsteller <fabian@ethdev.com> |
|
|
* Fabian Vogelsteller <fabian@ethdev.com> |
|
|
* @date 2014 |
|
|
* @date 2015 |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
"use strict"; |
|
|
"use strict"; |
|
|
|
|
|
|
|
|
// resolves the problem for electron/atom shell environments, which use node integration, but have no process variable available
|
|
|
|
|
|
var XMLHttpRequest = (typeof window !== 'undefined' && window.XMLHttpRequest) ? window.XMLHttpRequest : require('xmlhttprequest').XMLHttpRequest; // jshint ignore:line
|
|
|
var XMLHttpRequest = (typeof window !== 'undefined' && window.XMLHttpRequest) ? window.XMLHttpRequest : require('xmlhttprequest').XMLHttpRequest; // jshint ignore:line
|
|
|
var errors = require('./errors'); |
|
|
var errors = require('./errors'); |
|
|
|
|
|
|
|
@ -3204,6 +3336,25 @@ var HttpProvider = function (host) { |
|
|
this.host = host || 'http://localhost:8545'; |
|
|
this.host = host || 'http://localhost:8545'; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
HttpProvider.prototype.isConnected = function() { |
|
|
|
|
|
var request = new XMLHttpRequest(); |
|
|
|
|
|
|
|
|
|
|
|
request.open('POST', this.host, false); |
|
|
|
|
|
request.setRequestHeader('Content-type','application/json'); |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
request.send(JSON.stringify({ |
|
|
|
|
|
id: 9999999999, |
|
|
|
|
|
jsonrpc: '2.0', |
|
|
|
|
|
method: 'net_listening', |
|
|
|
|
|
params: [] |
|
|
|
|
|
})); |
|
|
|
|
|
return true; |
|
|
|
|
|
} catch(e) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
HttpProvider.prototype.send = function (payload) { |
|
|
HttpProvider.prototype.send = function (payload) { |
|
|
var request = new XMLHttpRequest(); |
|
|
var request = new XMLHttpRequest(); |
|
|
|
|
|
|
|
@ -3228,7 +3379,7 @@ HttpProvider.prototype.send = function (payload) { |
|
|
try { |
|
|
try { |
|
|
result = JSON.parse(result); |
|
|
result = JSON.parse(result); |
|
|
} catch(e) { |
|
|
} catch(e) { |
|
|
throw errors.InvalidResponse(result); |
|
|
throw errors.InvalidResponse(request.responseText); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return result; |
|
|
return result; |
|
@ -3244,7 +3395,7 @@ HttpProvider.prototype.sendAsync = function (payload, callback) { |
|
|
try { |
|
|
try { |
|
|
result = JSON.parse(result); |
|
|
result = JSON.parse(result); |
|
|
} catch(e) { |
|
|
} catch(e) { |
|
|
error = errors.InvalidResponse(result); |
|
|
error = errors.InvalidResponse(request.responseText); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
callback(error, result); |
|
|
callback(error, result); |
|
@ -3391,6 +3542,219 @@ module.exports = ICAP; |
|
|
You should have received a copy of the GNU Lesser General Public License |
|
|
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/>.
|
|
|
along with ethereum.js. If not, see <http://www.gnu.org/licenses/>.
|
|
|
*/ |
|
|
*/ |
|
|
|
|
|
/** @file ipcprovider.js |
|
|
|
|
|
* @authors: |
|
|
|
|
|
* Fabian Vogelsteller <fabian@ethdev.com> |
|
|
|
|
|
* @date 2015 |
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
"use strict"; |
|
|
|
|
|
|
|
|
|
|
|
var utils = require('../utils/utils'); |
|
|
|
|
|
var errors = require('./errors'); |
|
|
|
|
|
|
|
|
|
|
|
var errorTimeout = '{"jsonrpc": "2.0", "error": {"code": -32603, "message": "IPC Request timed out for method \'__method__\'"}, "id": "__id__"}'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var IpcProvider = function (path, net) { |
|
|
|
|
|
var _this = this; |
|
|
|
|
|
this.responseCallbacks = {}; |
|
|
|
|
|
this.path = path; |
|
|
|
|
|
|
|
|
|
|
|
net = net || require('net'); |
|
|
|
|
|
|
|
|
|
|
|
this.connection = net.connect({path: this.path}); |
|
|
|
|
|
|
|
|
|
|
|
this.connection.on('error', function(e){ |
|
|
|
|
|
console.error('IPC Connection Error', e); |
|
|
|
|
|
_this._timeout(); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
this.connection.on('end', function(){ |
|
|
|
|
|
_this._timeout(); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// LISTEN FOR CONNECTION RESPONSES
|
|
|
|
|
|
this.connection.on('data', function(data) { |
|
|
|
|
|
/*jshint maxcomplexity: 6 */ |
|
|
|
|
|
|
|
|
|
|
|
_this._parseResponse(data.toString()).forEach(function(result){ |
|
|
|
|
|
|
|
|
|
|
|
var id = null; |
|
|
|
|
|
|
|
|
|
|
|
// get the id which matches the returned id
|
|
|
|
|
|
if(utils.isArray(result)) { |
|
|
|
|
|
result.forEach(function(load){ |
|
|
|
|
|
if(_this.responseCallbacks[load.id]) |
|
|
|
|
|
id = load.id; |
|
|
|
|
|
}); |
|
|
|
|
|
} else { |
|
|
|
|
|
id = result.id; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// fire the callback
|
|
|
|
|
|
if(_this.responseCallbacks[id]) { |
|
|
|
|
|
_this.responseCallbacks[id](null, result); |
|
|
|
|
|
delete _this.responseCallbacks[id]; |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
Will parse the response and make an array out of it. |
|
|
|
|
|
|
|
|
|
|
|
@method _parseResponse |
|
|
|
|
|
@param {String} data |
|
|
|
|
|
*/ |
|
|
|
|
|
IpcProvider.prototype._parseResponse = function(data) { |
|
|
|
|
|
var _this = this, |
|
|
|
|
|
returnValues = []; |
|
|
|
|
|
|
|
|
|
|
|
// DE-CHUNKER
|
|
|
|
|
|
var dechunkedData = data |
|
|
|
|
|
.replace(/\}\{/g,'}|--|{') // }{
|
|
|
|
|
|
.replace(/\}\]\[\{/g,'}]|--|[{') // }][{
|
|
|
|
|
|
.replace(/\}\[\{/g,'}|--|[{') // }[{
|
|
|
|
|
|
.replace(/\}\]\{/g,'}]|--|{') // }]{
|
|
|
|
|
|
.split('|--|'); |
|
|
|
|
|
|
|
|
|
|
|
dechunkedData.forEach(function(data){ |
|
|
|
|
|
|
|
|
|
|
|
// prepend the last chunk
|
|
|
|
|
|
if(_this.lastChunk) |
|
|
|
|
|
data = _this.lastChunk + data; |
|
|
|
|
|
|
|
|
|
|
|
var result = null; |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
result = JSON.parse(data); |
|
|
|
|
|
|
|
|
|
|
|
} catch(e) { |
|
|
|
|
|
|
|
|
|
|
|
_this.lastChunk = data; |
|
|
|
|
|
|
|
|
|
|
|
// start timeout to cancel all requests
|
|
|
|
|
|
clearTimeout(_this.lastChunkTimeout); |
|
|
|
|
|
_this.lastChunkTimeout = setTimeout(function(){ |
|
|
|
|
|
_this.timeout(); |
|
|
|
|
|
throw errors.InvalidResponse(data); |
|
|
|
|
|
}, 1000 * 15); |
|
|
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// cancel timeout and set chunk to null
|
|
|
|
|
|
clearTimeout(_this.lastChunkTimeout); |
|
|
|
|
|
_this.lastChunk = null; |
|
|
|
|
|
|
|
|
|
|
|
if(result) |
|
|
|
|
|
returnValues.push(result); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
return returnValues; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
Get the adds a callback to the responseCallbacks object, |
|
|
|
|
|
which will be called if a response matching the response Id will arrive. |
|
|
|
|
|
|
|
|
|
|
|
@method _addResponseCallback |
|
|
|
|
|
*/ |
|
|
|
|
|
IpcProvider.prototype._addResponseCallback = function(payload, callback) { |
|
|
|
|
|
var id = payload.id || payload[0].id; |
|
|
|
|
|
var method = payload.method || payload[0].method; |
|
|
|
|
|
|
|
|
|
|
|
this.responseCallbacks[id] = callback; |
|
|
|
|
|
this.responseCallbacks[id].method = method; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
Timeout all requests when the end/error event is fired |
|
|
|
|
|
|
|
|
|
|
|
@method _timeout |
|
|
|
|
|
*/ |
|
|
|
|
|
IpcProvider.prototype._timeout = function() { |
|
|
|
|
|
for(var key in this.responseCallbacks) { |
|
|
|
|
|
if(this.responseCallbacks.hasOwnProperty(key)){ |
|
|
|
|
|
this.responseCallbacks[key](errorTimeout.replace('__id__', key).replace('__method__', this.responseCallbacks[key].method)); |
|
|
|
|
|
delete this.responseCallbacks[key]; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
Check if the current connection is still valid. |
|
|
|
|
|
|
|
|
|
|
|
@method isConnected |
|
|
|
|
|
*/ |
|
|
|
|
|
IpcProvider.prototype.isConnected = function() { |
|
|
|
|
|
var _this = this; |
|
|
|
|
|
|
|
|
|
|
|
// try reconnect, when connection is gone
|
|
|
|
|
|
if(!_this.connection.writable) |
|
|
|
|
|
_this.connection.connect({path: _this.path}); |
|
|
|
|
|
|
|
|
|
|
|
return !!this.connection.writable; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
IpcProvider.prototype.send = function (payload) { |
|
|
|
|
|
|
|
|
|
|
|
if(this.connection.writeSync) { |
|
|
|
|
|
var result; |
|
|
|
|
|
|
|
|
|
|
|
// try reconnect, when connection is gone
|
|
|
|
|
|
if(!this.connection.writable) |
|
|
|
|
|
this.connection.connect({path: this.path}); |
|
|
|
|
|
|
|
|
|
|
|
var data = this.connection.writeSync(JSON.stringify(payload)); |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
result = JSON.parse(data); |
|
|
|
|
|
} catch(e) { |
|
|
|
|
|
throw errors.InvalidResponse(data); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
throw new Error('You tried to send "'+ payload.method +'" synchronously. Synchronous requests are not supported by the IPC provider.'); |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
IpcProvider.prototype.sendAsync = function (payload, callback) { |
|
|
|
|
|
// try reconnect, when connection is gone
|
|
|
|
|
|
if(!this.connection.writable) |
|
|
|
|
|
this.connection.connect({path: this.path}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.connection.write(JSON.stringify(payload)); |
|
|
|
|
|
this._addResponseCallback(payload, callback); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
module.exports = IpcProvider; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"../utils/utils":7,"./errors":14,"net":32}],23:[function(require,module,exports){ |
|
|
|
|
|
/* |
|
|
|
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
|
|
|
|
ethereum.js is free software: you can redistribute it and/or modify |
|
|
|
|
|
it under the terms of the GNU Lesser General Public License as published by |
|
|
|
|
|
the Free Software Foundation, either version 3 of the License, or |
|
|
|
|
|
(at your option) any later version. |
|
|
|
|
|
|
|
|
|
|
|
ethereum.js is distributed in the hope that it will be useful, |
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
|
|
|
GNU Lesser General Public License for more details. |
|
|
|
|
|
|
|
|
|
|
|
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 jsonrpc.js |
|
|
/** @file jsonrpc.js |
|
|
* @authors: |
|
|
* @authors: |
|
|
* Marek Kotewicz <marek@ethdev.com> |
|
|
* Marek Kotewicz <marek@ethdev.com> |
|
@ -3467,7 +3831,7 @@ Jsonrpc.prototype.toBatchPayload = function (messages) { |
|
|
module.exports = Jsonrpc; |
|
|
module.exports = Jsonrpc; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{}],23:[function(require,module,exports){ |
|
|
},{}],24:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -3564,7 +3928,7 @@ Method.prototype.formatInput = function (args) { |
|
|
* @return {Object} |
|
|
* @return {Object} |
|
|
*/ |
|
|
*/ |
|
|
Method.prototype.formatOutput = function (result) { |
|
|
Method.prototype.formatOutput = function (result) { |
|
|
return this.outputFormatter && result !== null ? this.outputFormatter(result) : result; |
|
|
return this.outputFormatter && result ? this.outputFormatter(result) : result; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -3641,7 +4005,7 @@ Method.prototype.send = function () { |
|
|
module.exports = Method; |
|
|
module.exports = Method; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"../utils/utils":7,"./errors":14,"./requestmanager":28}],24:[function(require,module,exports){ |
|
|
},{"../utils/utils":7,"./errors":14,"./requestmanager":28}],25:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -3689,7 +4053,7 @@ var abi = [ |
|
|
module.exports = contract(abi).at(address); |
|
|
module.exports = contract(abi).at(address); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"./contract":12}],25:[function(require,module,exports){ |
|
|
},{"./contract":12}],26:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -3739,7 +4103,7 @@ module.exports = { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"../utils/utils":7,"./property":26}],26:[function(require,module,exports){ |
|
|
},{"../utils/utils":7,"./property":27}],27:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -3764,6 +4128,7 @@ module.exports = { |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
var RequestManager = require('./requestmanager'); |
|
|
var RequestManager = require('./requestmanager'); |
|
|
|
|
|
var utils = require('../utils/utils'); |
|
|
|
|
|
|
|
|
var Property = function (options) { |
|
|
var Property = function (options) { |
|
|
this.name = options.name; |
|
|
this.name = options.name; |
|
@ -3795,6 +4160,19 @@ Property.prototype.formatOutput = function (result) { |
|
|
return this.outputFormatter && result !== null ? this.outputFormatter(result) : result; |
|
|
return this.outputFormatter && result !== null ? this.outputFormatter(result) : result; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* Should be used to extract callback from array of arguments. Modifies input param |
|
|
|
|
|
* |
|
|
|
|
|
* @method extractCallback |
|
|
|
|
|
* @param {Array} arguments |
|
|
|
|
|
* @return {Function|Null} callback, if exists |
|
|
|
|
|
*/ |
|
|
|
|
|
Property.prototype.extractCallback = function (args) { |
|
|
|
|
|
if (utils.isFunction(args[args.length - 1])) { |
|
|
|
|
|
return args.pop(); // modify the args array!
|
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* Should attach function to method |
|
|
* Should attach function to method |
|
|
* |
|
|
* |
|
@ -3821,7 +4199,10 @@ Property.prototype.attachToObject = function (obj) { |
|
|
return prefix + name.charAt(0).toUpperCase() + name.slice(1); |
|
|
return prefix + name.charAt(0).toUpperCase() + name.slice(1); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
obj[toAsyncName('get', name)] = this.getAsync.bind(this); |
|
|
var func = this.getAsync.bind(this); |
|
|
|
|
|
func.request = this.request.bind(this); |
|
|
|
|
|
|
|
|
|
|
|
obj[toAsyncName('get', name)] = func; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -3854,45 +4235,27 @@ Property.prototype.getAsync = function (callback) { |
|
|
}); |
|
|
}); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
module.exports = Property; |
|
|
/** |
|
|
|
|
|
* Should be called to create pure JSONRPC request which can be used in batch request |
|
|
|
|
|
* |
|
|
},{"./requestmanager":28}],27:[function(require,module,exports){ |
|
|
* @method request |
|
|
/* |
|
|
* @param {...} params |
|
|
This file is part of ethereum.js. |
|
|
* @return {Object} jsonrpc request |
|
|
|
|
|
|
|
|
ethereum.js is free software: you can redistribute it and/or modify |
|
|
|
|
|
it under the terms of the GNU Lesser General Public License as published by |
|
|
|
|
|
the Free Software Foundation, either version 3 of the License, or |
|
|
|
|
|
(at your option) any later version. |
|
|
|
|
|
|
|
|
|
|
|
ethereum.js is distributed in the hope that it will be useful, |
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
|
|
|
GNU Lesser General Public License for more details. |
|
|
|
|
|
|
|
|
|
|
|
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 qtsync.js |
|
|
|
|
|
* @authors: |
|
|
|
|
|
* Marek Kotewicz <marek@ethdev.com> |
|
|
|
|
|
* Marian Oancea <marian@ethdev.com> |
|
|
|
|
|
* @date 2014 |
|
|
|
|
|
*/ |
|
|
*/ |
|
|
|
|
|
Property.prototype.request = function () { |
|
|
var QtSyncProvider = function () { |
|
|
var payload = { |
|
|
}; |
|
|
method: this.getter, |
|
|
|
|
|
params: [], |
|
|
QtSyncProvider.prototype.send = function (payload) { |
|
|
callback: this.extractCallback(Array.prototype.slice.call(arguments)) |
|
|
var result = navigator.qt.callMethod(JSON.stringify(payload)); |
|
|
}; |
|
|
return JSON.parse(result); |
|
|
payload.format = this.formatOutput.bind(this); |
|
|
|
|
|
return payload; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
module.exports = QtSyncProvider; |
|
|
module.exports = Property; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{}],28:[function(require,module,exports){ |
|
|
},{"../utils/utils":7,"./requestmanager":28}],28:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -4157,7 +4520,7 @@ RequestManager.prototype.poll = function () { |
|
|
module.exports = RequestManager; |
|
|
module.exports = RequestManager; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"../utils/config":5,"../utils/utils":7,"./errors":14,"./jsonrpc":22}],29:[function(require,module,exports){ |
|
|
},{"../utils/config":5,"../utils/utils":7,"./errors":14,"./jsonrpc":23}],29:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -4227,7 +4590,7 @@ module.exports = { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"./formatters":18,"./method":23}],30:[function(require,module,exports){ |
|
|
},{"./formatters":18,"./method":24}],30:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -4323,7 +4686,7 @@ var deposit = function (from, address, value, client, callback) { |
|
|
module.exports = transfer; |
|
|
module.exports = transfer; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"../web3":9,"./contract":12,"./icap":21,"./namereg":24}],31:[function(require,module,exports){ |
|
|
},{"../web3":9,"./contract":12,"./icap":21,"./namereg":25}],31:[function(require,module,exports){ |
|
|
/* |
|
|
/* |
|
|
This file is part of ethereum.js. |
|
|
This file is part of ethereum.js. |
|
|
|
|
|
|
|
@ -4439,7 +4802,7 @@ module.exports = { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"./method":23}],32:[function(require,module,exports){ |
|
|
},{"./method":24}],32:[function(require,module,exports){ |
|
|
|
|
|
|
|
|
},{}],33:[function(require,module,exports){ |
|
|
},{}],33:[function(require,module,exports){ |
|
|
;(function (root, factory) { |
|
|
;(function (root, factory) { |
|
@ -5821,8 +6184,10 @@ module.exports = BigNumber; // jshint ignore:line |
|
|
|
|
|
|
|
|
},{}],"web3":[function(require,module,exports){ |
|
|
},{}],"web3":[function(require,module,exports){ |
|
|
var web3 = require('./lib/web3'); |
|
|
var web3 = require('./lib/web3'); |
|
|
|
|
|
|
|
|
web3.providers.HttpProvider = require('./lib/web3/httpprovider'); |
|
|
web3.providers.HttpProvider = require('./lib/web3/httpprovider'); |
|
|
web3.providers.QtSyncProvider = require('./lib/web3/qtsync'); |
|
|
web3.providers.IpcProvider = require('./lib/web3/ipcprovider'); |
|
|
|
|
|
|
|
|
web3.eth.contract = require('./lib/web3/contract'); |
|
|
web3.eth.contract = require('./lib/web3/contract'); |
|
|
web3.eth.namereg = require('./lib/web3/namereg'); |
|
|
web3.eth.namereg = require('./lib/web3/namereg'); |
|
|
web3.eth.sendIBANTransaction = require('./lib/web3/transfer'); |
|
|
web3.eth.sendIBANTransaction = require('./lib/web3/transfer'); |
|
@ -5835,5 +6200,5 @@ if (typeof window !== 'undefined' && typeof window.web3 === 'undefined') { |
|
|
module.exports = web3; |
|
|
module.exports = web3; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
},{"./lib/web3":9,"./lib/web3/contract":12,"./lib/web3/httpprovider":20,"./lib/web3/namereg":24,"./lib/web3/qtsync":27,"./lib/web3/transfer":30}]},{},["web3"]) |
|
|
},{"./lib/web3":9,"./lib/web3/contract":12,"./lib/web3/httpprovider":20,"./lib/web3/ipcprovider":22,"./lib/web3/namereg":25,"./lib/web3/transfer":30}]},{},["web3"]) |
|
|
//# sourceMappingURL=web3-light.js.map
|
|
|
//# sourceMappingURL=web3-light.js.map
|
|
|