mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
710a1463c1
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
81 lines
2.4 KiB
JavaScript
81 lines
2.4 KiB
JavaScript
var chai = require('chai');
|
|
var assert = chai.assert;
|
|
var web3 = require('../index');
|
|
var FakeHttpProvider = require('./helpers/FakeHttpProvider');
|
|
var utils = require('../lib/utils/utils');
|
|
|
|
var tests = [{
|
|
protocol: 'eth',
|
|
args: ['latest'],
|
|
firstResult: 1,
|
|
firstPayload: {
|
|
method: "eth_newBlockFilter",
|
|
params: []
|
|
},
|
|
secondResult: ['0x1234'],
|
|
secondPayload: {
|
|
method: "eth_getFilterChanges"
|
|
}
|
|
},
|
|
{
|
|
protocol: 'eth',
|
|
args: ['pending'],
|
|
firstResult: 1,
|
|
firstPayload: {
|
|
method: "eth_newPendingTransactionFilter",
|
|
params: []
|
|
},
|
|
secondResult: ['0x1234'],
|
|
secondPayload: {
|
|
method: "eth_getFilterChanges"
|
|
}
|
|
}];
|
|
|
|
|
|
var testPolling = function (tests) {
|
|
|
|
describe('web3.eth.filter.polling', function () {
|
|
tests.forEach(function (test, index) {
|
|
it('should create && successfully poll filter', function (done) {
|
|
|
|
// given
|
|
var provider = new FakeHttpProvider();
|
|
web3.setProvider(provider);
|
|
web3.reset();
|
|
provider.injectResult(test.firstResult);
|
|
var step = 0;
|
|
provider.injectValidation(function (payload) {
|
|
if (step === 0) {
|
|
step = 1;
|
|
assert.equal(payload.jsonrpc, '2.0');
|
|
assert.equal(payload.method, test.firstPayload.method);
|
|
assert.deepEqual(payload.params, test.firstPayload.params);
|
|
} else if (step === 1 && utils.isArray(payload)) {
|
|
var r = payload.filter(function (p) {
|
|
return p.jsonrpc === '2.0' && p.method === test.secondPayload.method && p.params[0] === test.firstResult;
|
|
});
|
|
assert.equal(r.length > 0, true);
|
|
}
|
|
|
|
});
|
|
|
|
// when
|
|
var filter = web3[test.protocol].filter.apply(null, test.args);
|
|
provider.injectBatchResults([test.secondResult]);
|
|
filter.watch(function (err, result) {
|
|
if (test.err) {
|
|
// todo
|
|
} else {
|
|
assert.equal(result, test.secondResult[0]);
|
|
}
|
|
done();
|
|
|
|
});
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
testPolling(tests);
|
|
|