diff --git a/test/contract.js b/test/contract.js index a7e7247..9566e29 100644 --- a/test/contract.js +++ b/test/contract.js @@ -62,7 +62,7 @@ describe('contract', function () { describe('event', function () { it('should create event filter', function (done) { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'Changed(address,uint256,uint256,uint256)'; var step = 0; provider.injectValidation(function (payload) { @@ -75,7 +75,7 @@ describe('contract', function () { topics: [ '0x' + sha3(signature), '0x0000000000000000000000001234567890123456789012345678901234567891', - null + '0x000000000000000000000000000000000000000000000000000000000000000a' ], address: '0x1234567890123456789012345678901234567891' }); @@ -90,7 +90,7 @@ describe('contract', function () { ], number: 2, data: '0x0000000000000000000000000000000000000000000000000000000000000001' + - '0000000000000000000000000000000000000000000000000000000000000008' + '0000000000000000000000000000000000000000000000000000000000000008' }]); assert.equal(payload.jsonrpc, '2.0'); assert.equal(payload.method, 'eth_getFilterLogs'); @@ -105,7 +105,7 @@ describe('contract', function () { ], number: 2, data: '0x0000000000000000000000000000000000000000000000000000000000000001' + - '0000000000000000000000000000000000000000000000000000000000000008' + '0000000000000000000000000000000000000000000000000000000000000008' }]]); var r = payload.filter(function (p) { return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3'; @@ -117,9 +117,9 @@ describe('contract', function () { var contract = web3.eth.contract(desc).at(address); var res = 0; - var event = contract.Changed({from: address}); + var event = contract.Changed({from: address, amount: 10}); event.watch(function(err, result) { - assert.equal(result.args.from, address); + assert.equal(result.args.from, address); assert.equal(result.args.amount, 1); assert.equal(result.args.t1, 1); assert.equal(result.args.t2, 8); @@ -133,7 +133,7 @@ describe('contract', function () { it('should create event filter and watch immediately', function (done) { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'Changed(address,uint256,uint256,uint256)'; var step = 0; provider.injectValidation(function (payload) { @@ -161,7 +161,7 @@ describe('contract', function () { ], number: 2, data: '0x0000000000000000000000000000000000000000000000000000000000000001' + - '0000000000000000000000000000000000000000000000000000000000000008' + '0000000000000000000000000000000000000000000000000000000000000008' }]); assert.equal(payload.jsonrpc, '2.0'); assert.equal(payload.method, 'eth_getFilterLogs'); @@ -176,7 +176,7 @@ describe('contract', function () { ], number: 2, data: '0x0000000000000000000000000000000000000000000000000000000000000001' + - '0000000000000000000000000000000000000000000000000000000000000008' + '0000000000000000000000000000000000000000000000000000000000000008' }]]); var r = payload.filter(function (p) { return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3'; @@ -189,7 +189,7 @@ describe('contract', function () { var res = 0; var event = contract.Changed({from: address}, function(err, result) { - assert.equal(result.args.from, address); + assert.equal(result.args.from, address); assert.equal(result.args.amount, 1); assert.equal(result.args.t1, 1); assert.equal(result.args.t2, 8); @@ -203,7 +203,7 @@ describe('contract', function () { it('should create all event filter', function (done) { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'Changed(address,uint256,uint256,uint256)'; var step = 0; provider.injectValidation(function (payload) { @@ -227,7 +227,7 @@ describe('contract', function () { ], number: 2, data: '0x0000000000000000000000000000000000000000000000000000000000000001' + - '0000000000000000000000000000000000000000000000000000000000000008' + '0000000000000000000000000000000000000000000000000000000000000008' }]); assert.equal(payload.jsonrpc, '2.0'); assert.equal(payload.method, 'eth_getFilterLogs'); @@ -242,7 +242,7 @@ describe('contract', function () { ], number: 2, data: '0x0000000000000000000000000000000000000000000000000000000000000001' + - '0000000000000000000000000000000000000000000000000000000000000008' + '0000000000000000000000000000000000000000000000000000000000000008' }]]); var r = payload.filter(function (p) { return p.jsonrpc === '2.0' && p.method === 'eth_getFilterChanges' && p.params[0] === '0x3'; @@ -256,7 +256,7 @@ describe('contract', function () { var res = 0; var event = contract.allEvents(); event.watch(function(err, result) { - assert.equal(result.args.from, address); + assert.equal(result.args.from, address); assert.equal(result.args.amount, 1); assert.equal(result.args.t1, 1); assert.equal(result.args.t2, 8); @@ -270,11 +270,11 @@ describe('contract', function () { it('should call constant function', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); var signature = 'balance(address)' var address = '0x1234567890123456789012345678901234567891'; - + provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_call'); assert.deepEqual(payload.params, [{ @@ -291,11 +291,11 @@ describe('contract', function () { it('should call constant function with default block', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); var signature = 'balance(address)' var address = '0x1234567890123456789012345678901234567891'; - + provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_call'); assert.deepEqual(payload.params, [{ @@ -312,14 +312,14 @@ describe('contract', function () { it('should sendTransaction to contract function', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'send(address,uint256)'; var address = '0x1234567890123456789012345678901234567891'; provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_sendTransaction'); assert.deepEqual(payload.params, [{ - data: '0x' + sha3(signature).slice(0, 8) + - '0000000000000000000000001234567890123456789012345678901234567891' + + data: '0x' + sha3(signature).slice(0, 8) + + '0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000000000000000000000000000000000000000000011' , from: address, to: address @@ -333,7 +333,7 @@ describe('contract', function () { it('should make a call with optional params', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); var signature = 'balance(address)'; var address = '0x1234567890123456789012345678901234567891'; @@ -356,7 +356,7 @@ describe('contract', function () { it('should throw if called with optional params without all args', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); var signature = 'balance(address)'; var address = '0x1234567890123456789012345678901234567891'; @@ -371,7 +371,7 @@ describe('contract', function () { }); var contract = web3.eth.contract(desc).at(address); - + var test = function() { var r = contract.balance({from: address, gas: 50000}); } @@ -381,7 +381,7 @@ describe('contract', function () { it('should explicitly make a call with optional params', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); var signature = 'balance(address)'; var address = '0x1234567890123456789012345678901234567891'; @@ -404,7 +404,7 @@ describe('contract', function () { it('should explicitly make a call with optional params and defaultBlock', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032'); var signature = 'balance(address)'; var address = '0x1234567890123456789012345678901234567891'; @@ -456,14 +456,14 @@ describe('contract', function () { it('should sendTransaction with optional params', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'send(address,uint256)'; var address = '0x1234567890123456789012345678901234567891'; provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_sendTransaction'); assert.deepEqual(payload.params, [{ - data: '0x' + sha3(signature).slice(0, 8) + - '0000000000000000000000001234567890123456789012345678901234567891' + + data: '0x' + sha3(signature).slice(0, 8) + + '0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000000000000000000000000000000000000000000011' , to: address, from: address, @@ -480,14 +480,14 @@ describe('contract', function () { it('should explicitly sendTransaction with optional params', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'send(address,uint256)'; var address = '0x1234567890123456789012345678901234567891'; provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_sendTransaction'); assert.deepEqual(payload.params, [{ - data: '0x' + sha3(signature).slice(0, 8) + - '0000000000000000000000001234567890123456789012345678901234567891' + + data: '0x' + sha3(signature).slice(0, 8) + + '0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000000000000000000000000000000000000000000011' , to: address, from: address, @@ -504,14 +504,14 @@ describe('contract', function () { it('should explicitly sendTransaction with optional params and call callback without error', function (done) { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var address = '0x1234567890123456789012345678901234567891'; var signature = 'send(address,uint256)'; provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_sendTransaction'); assert.deepEqual(payload.params, [{ - data: '0x' + sha3(signature).slice(0, 8) + - '0000000000000000000000001234567890123456789012345678901234567891' + + data: '0x' + sha3(signature).slice(0, 8) + + '0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000000000000000000000000000000000000000000011' , to: address, from: address, @@ -531,14 +531,14 @@ describe('contract', function () { it('should explicitly estimateGas with optional params', function () { var provider = new FakeHttpProvider(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'send(address,uint256)'; var address = '0x1234567890123456789012345678901234567891'; provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_estimateGas'); assert.deepEqual(payload.params, [{ - data: '0x' + sha3(signature).slice(0, 8) + - '0000000000000000000000001234567890123456789012345678901234567891' + + data: '0x' + sha3(signature).slice(0, 8) + + '0000000000000000000000001234567890123456789012345678901234567891' + '0000000000000000000000000000000000000000000000000000000000000011' , to: address, from: address, @@ -555,19 +555,19 @@ describe('contract', function () { it('should call testArr method and properly parse result', function () { var provider = new FakeHttpProvider2(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'testArr(int[])'; var address = '0x1234567890123456789012345678901234567891'; provider.injectResultList([{ result: '0x0000000000000000000000000000000000000000000000000000000000000005' }]); - + provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_call'); assert.deepEqual(payload.params, [{ - data: '0x' + sha3(signature).slice(0, 8) + - '0000000000000000000000000000000000000000000000000000000000000020' + - '0000000000000000000000000000000000000000000000000000000000000001' + + data: '0x' + sha3(signature).slice(0, 8) + + '0000000000000000000000000000000000000000000000000000000000000020' + + '0000000000000000000000000000000000000000000000000000000000000001' + '0000000000000000000000000000000000000000000000000000000000000003', to: address }, @@ -580,10 +580,10 @@ describe('contract', function () { assert.deepEqual(new BigNumber(5), result); }); - + it('should call testArr method, properly parse result and return the result async', function (done) { var provider = new FakeHttpProvider2(); - var web3 = new Web3(provider); + var web3 = new Web3(provider); var signature = 'testArr(int[])'; var address = '0x1234567890123456789012345678901234567891'; provider.injectResultList([{ @@ -592,9 +592,9 @@ describe('contract', function () { provider.injectValidation(function (payload) { assert.equal(payload.method, 'eth_call'); assert.deepEqual(payload.params, [{ - data: '0x' + sha3(signature).slice(0, 8) + - '0000000000000000000000000000000000000000000000000000000000000020' + - '0000000000000000000000000000000000000000000000000000000000000001' + + data: '0x' + sha3(signature).slice(0, 8) + + '0000000000000000000000000000000000000000000000000000000000000020' + + '0000000000000000000000000000000000000000000000000000000000000001' + '0000000000000000000000000000000000000000000000000000000000000003', to: address },