aboutsummaryrefslogtreecommitdiffstats
path: root/batch.js
diff options
context:
space:
mode:
authorMarek Kotewicz <marek.kotewicz@gmail.com>2015-05-14 20:05:30 +0800
committerMarek Kotewicz <marek.kotewicz@gmail.com>2015-05-14 20:05:30 +0800
commit710a1463c18dea96bd1f03d7ea62a95702d92d72 (patch)
tree908a59796e4d4238461bfaad05fb366d4242bc9b /batch.js
parent2958ad88f3e75146be2e84b246733fe9dc9984c9 (diff)
downloaddexon-solidity-710a1463c18dea96bd1f03d7ea62a95702d92d72.tar
dexon-solidity-710a1463c18dea96bd1f03d7ea62a95702d92d72.tar.gz
dexon-solidity-710a1463c18dea96bd1f03d7ea62a95702d92d72.tar.bz2
dexon-solidity-710a1463c18dea96bd1f03d7ea62a95702d92d72.tar.lz
dexon-solidity-710a1463c18dea96bd1f03d7ea62a95702d92d72.tar.xz
dexon-solidity-710a1463c18dea96bd1f03d7ea62a95702d92d72.tar.zst
dexon-solidity-710a1463c18dea96bd1f03d7ea62a95702d92d72.zip
Squashed 'libjsqrc/ethereumjs/' changes from e908439..16861fc
16861fc version 0.4.2 e4f7dde fixed failing lint 69e7d9d fixed #133 55553d7 add async error test d02a375 Merge branch 'develop' of github.com:ethereum/web3.js into develop ff48da1 fixed callback error issue 471bce1 #133 in progress dc69085 version 0.4.1 2ae0afa critical bugfix 09f2a92 updated examples a0a36e5 Merge branch 'develop' of https://github.com/ethereum/ethereum.js into develop 2b179a8 updated node install test 8f63640 Merge pull request #203 from frozeman/develop 22ef4a1 added estimateGas method cd2e462 version 0.4.0 ae7762a Merge pull request #198 from ethereum/minerMethods d1e1206 removed byte formatter methods 6fd17d9 merged develop 373fd1b Merge pull request #201 from debris/batch 274fc29 Merge pull request #200 from debris/contract_overhaul b2ff2ff Merge branch 'contract_overhaul' into batch 99a3bda removed redundant lines 7cafac9 Merge branch 'develop' into contract_overhaul fa8db32 Merge pull request #202 from debris/async_properties 5f9272c asyncGet -> getAsync cd0df61 gulp 80c0792 async getting properties, remove property setters 744bb9e batch for requests with calls/transacts 8636077 initial support for batch requests a0b9cfb contract async call && transact 1272780 sendTransaction && call async 6afb1f9 Merge branch 'async-contract-calls' of https://github.com/niran/web3.js into contract_overhaul 611f640 asynchronous contract creation, breaking changes e3796bf merged develop edf808a add getWork and submitWork functions and toXBytes utils 9812b01 Merge branch 'blockFilterProposal' of https://github.com/ethereum/ethereum.js into develop 6f466f6 add miner functions 3af8e27 add newblockfilter Proposal e86552f Use async contract calls when a callback is passed git-subtree-dir: libjsqrc/ethereumjs git-subtree-split: 16861fc1944cca721672bb8faa81909d69be2b99
Diffstat (limited to 'batch.js')
-rw-r--r--batch.js86
1 files changed, 86 insertions, 0 deletions
diff --git a/batch.js b/batch.js
new file mode 100644
index 00000000..69ae8fd5
--- /dev/null
+++ b/batch.js
@@ -0,0 +1,86 @@
+var chai = require('chai');
+var assert = chai.assert;
+var web3 = require('../index');
+var FakeHttpProvider = require('./helpers/FakeHttpProvider');
+var bn = require('bignumber.js');
+
+describe('lib/web3/batch', function () {
+ describe('execute', function () {
+ it('should execute batch request', function (done) {
+
+ var provider = new FakeHttpProvider();
+ web3.setProvider(provider);
+ web3.reset();
+
+ var result = '0x126';
+ var result2 = '0x127';
+ provider.injectBatchResults([result, result2]);
+
+ var counter = 0;
+ var callback = function (err, r) {
+ counter++;
+ assert.deepEqual(new bn(result), r);
+ };
+
+ var callback2 = function (err, r) {
+ assert.equal(counter, 1);
+ assert.deepEqual(new bn(result2), r);
+ done();
+ };
+
+ var batch = web3.createBatch();
+ batch.add(web3.eth.getBalance.request('0x0000000000000000000000000000000000000000', 'latest', callback));
+ batch.add(web3.eth.getBalance.request('0x0000000000000000000000000000000000000005', 'latest', callback2));
+ batch.execute();
+ });
+
+ it('should execute batch request', function (done) {
+
+ var provider = new FakeHttpProvider();
+ web3.setProvider(provider);
+ web3.reset();
+
+ var abi = [{
+ "name": "balance(address)",
+ "type": "function",
+ "inputs": [{
+ "name": "who",
+ "type": "address"
+ }],
+ "constant": true,
+ "outputs": [{
+ "name": "value",
+ "type": "uint256"
+ }]
+ }];
+
+
+ var address = '0x0000000000000000000000000000000000000000';
+ var result = '0x126';
+ var result2 = '0x0000000000000000000000000000000000000000000000000000000000000123';
+ var signature = '0x001122334455';
+
+ // TODO: fix this, maybe in browser sha3?
+ provider.injectResult(signature);
+
+ var counter = 0;
+ var callback = function (err, r) {
+ counter++;
+ assert.deepEqual(new bn(result), r);
+ };
+
+ var callback2 = function (err, r) {
+ assert.equal(counter, 1);
+ assert.deepEqual(new bn(result2), r);
+ done();
+ };
+
+ var batch = web3.createBatch();
+ batch.add(web3.eth.getBalance.request('0x0000000000000000000000000000000000000000', 'latest', callback));
+ batch.add(web3.eth.contract(abi).at(address).balance.request(address, callback2));
+ provider.injectBatchResults([result, result2]);
+ batch.execute();
+ });
+ });
+});
+