crypto-js integrated into project

This commit is contained in:
Marek Kotewicz 2015-05-16 17:03:27 +02:00
parent adf91dfe8f
commit d3205523e9
12 changed files with 3030 additions and 295 deletions

1477
dist/web3-light.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1479
dist/web3.js vendored

File diff suppressed because it is too large Load Diff

16
dist/web3.js.map vendored

File diff suppressed because one or more lines are too long

4
dist/web3.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -35,17 +35,9 @@ var utils = require('./utils/utils');
var formatters = require('./web3/formatters'); var formatters = require('./web3/formatters');
var RequestManager = require('./web3/requestmanager'); var RequestManager = require('./web3/requestmanager');
var c = require('./utils/config'); var c = require('./utils/config');
var Method = require('./web3/method');
var Property = require('./web3/property'); var Property = require('./web3/property');
var Batch = require('./web3/batch'); var Batch = require('./web3/batch');
var sha3 = require('./utils/sha3');
var web3Methods = [
new Method({
name: 'sha3',
call: 'web3_sha3',
params: 1
})
];
var web3Properties = [ var web3Properties = [
new Property({ new Property({
@ -130,6 +122,7 @@ web3.toBigNumber = utils.toBigNumber;
web3.toWei = utils.toWei; web3.toWei = utils.toWei;
web3.fromWei = utils.fromWei; web3.fromWei = utils.fromWei;
web3.isAddress = utils.isAddress; web3.isAddress = utils.isAddress;
web3.sha3 = sha3;
web3.createBatch = function () { web3.createBatch = function () {
return new Batch(); return new Batch();
}; };
@ -156,7 +149,6 @@ Object.defineProperty(web3.eth, 'defaultAccount', {
}); });
/// setups all api methods /// setups all api methods
setupMethods(web3, web3Methods);
setupProperties(web3, web3Properties); setupProperties(web3, web3Properties);
setupMethods(web3.net, net.methods); setupMethods(web3.net, net.methods);
setupProperties(web3.net, net.properties); setupProperties(web3.net, net.properties);

View File

@ -24,6 +24,7 @@ var utils = require('../utils/utils');
var coder = require('../solidity/coder'); var coder = require('../solidity/coder');
var web3 = require('../web3'); var web3 = require('../web3');
var formatters = require('./formatters'); var formatters = require('./formatters');
var sha3 = require('../utils/sha3');
/** /**
* This prototype should be used to create event filters * This prototype should be used to create event filters
@ -77,7 +78,7 @@ SolidityEvent.prototype.typeName = function () {
* @return {String} event signature * @return {String} event signature
*/ */
SolidityEvent.prototype.signature = function () { SolidityEvent.prototype.signature = function () {
return web3.sha3(web3.fromAscii(this._name)).slice(2); return sha3(this._name);
}; };
/** /**

View File

@ -23,6 +23,7 @@
var web3 = require('../web3'); var web3 = require('../web3');
var coder = require('../solidity/coder'); var coder = require('../solidity/coder');
var utils = require('../utils/utils'); var utils = require('../utils/utils');
var sha3 = require('../utils/sha3');
/** /**
* This prototype should be used to call/sendTransaction to solidity functions * This prototype should be used to call/sendTransaction to solidity functions
@ -69,7 +70,7 @@ SolidityFunction.prototype.toPayload = function (args) {
* @return {String} function signature * @return {String} function signature
*/ */
SolidityFunction.prototype.signature = function () { SolidityFunction.prototype.signature = function () {
return web3.sha3(web3.fromAscii(this._name)).slice(2, 10); return sha3(this._name).slice(0, 8);
}; };

View File

@ -58,10 +58,6 @@ describe('lib/web3/batch', function () {
var address = '0x0000000000000000000000000000000000000000'; var address = '0x0000000000000000000000000000000000000000';
var result = '0x126'; var result = '0x126';
var result2 = '0x0000000000000000000000000000000000000000000000000000000000000123'; var result2 = '0x0000000000000000000000000000000000000000000000000000000000000123';
var signature = '0x001122334455';
// TODO: fix this, maybe in browser sha3?
provider.injectResult(signature);
var counter = 0; var counter = 0;
var callback = function (err, r) { var callback = function (err, r) {

View File

@ -5,6 +5,7 @@ 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 desc = [{ var desc = [{
"name": "balance(address)", "name": "balance(address)",
@ -60,34 +61,28 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); // reset different polls web3.reset(); // reset different polls
var sha3 = '0x5131231231231231231231'; var signature = 'Changed(address,uint256,uint256,uint256)';
provider.injectResult(sha3);
var step = 0; var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 0) { if (step === 0) {
step = 1; step = 1;
assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'web3_sha3');
assert.equal(payload.params[0], web3.fromAscii('Changed(address,uint256,uint256,uint256)'));
} else if (step === 1) {
step = 2;
provider.injectResult(3); provider.injectResult(3);
assert.equal(payload.jsonrpc, '2.0'); assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'eth_newFilter'); assert.equal(payload.method, 'eth_newFilter');
assert.deepEqual(payload.params[0], { assert.deepEqual(payload.params[0], {
topics: [ topics: [
sha3, '0x' + sha3(signature),
'0x0000000000000000000000001234567890123456789012345678901234567890', '0x0000000000000000000000001234567890123456789012345678901234567890',
null null
], ],
address: '0x1234567890123456789012345678901234567890' address: '0x1234567890123456789012345678901234567890'
}); });
} else if (step === 2) { } else if (step === 1) {
step = 3; step = 2;
provider.injectResult([{ provider.injectResult([{
address: address, address: address,
topics: [ topics: [
sha3, '0x' + sha3(signature),
'0x0000000000000000000000001234567890123456789012345678901234567890', '0x0000000000000000000000001234567890123456789012345678901234567890',
'0x0000000000000000000000000000000000000000000000000000000000000001' '0x0000000000000000000000000000000000000000000000000000000000000001'
], ],
@ -97,11 +92,11 @@ describe('web3.eth.contract', function () {
}]); }]);
assert.equal(payload.jsonrpc, '2.0'); assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'eth_getFilterLogs'); assert.equal(payload.method, 'eth_getFilterLogs');
} else if (step === 3 && utils.isArray(payload)) { } else if (step === 2 && utils.isArray(payload)) {
provider.injectBatchResults([[{ provider.injectBatchResults([[{
address: address, address: address,
topics: [ topics: [
sha3, '0x' + sha3(signature),
'0x0000000000000000000000001234567890123456789012345678901234567890', '0x0000000000000000000000001234567890123456789012345678901234567890',
'0x0000000000000000000000000000000000000000000000000000000000000001' '0x0000000000000000000000000000000000000000000000000000000000000001'
], ],
@ -135,53 +130,37 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231'; provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)'
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResult(sha3);
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 0) {
step = 1;
assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'web3_sha3');
assert.equal(payload.params[0], web3.fromAscii('balance(address)'));
} else if (step === 1) {
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + '0000000000000000000000001234567890123456789012345678901234567890', data: '0x' + sha3(signature).slice(0, 8) + '0000000000000000000000001234567890123456789012345678901234567890',
to: address to: address
}, 'latest']); }, 'latest']);
}
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
contract.balance(address); var r = contract.balance(address);
assert.deepEqual(new BigNumber(0x32), r);
}); });
it('should sendTransaction to contract function', function () { it('should sendTransaction to contract function', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231'; var signature = 'send(address,uint256)';
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResult(sha3);
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 0) {
step = 1;
assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'web3_sha3');
assert.equal(payload.params[0], web3.fromAscii('send(address,uint256)'));
} else if (step === 1) {
assert.equal(payload.method, 'eth_sendTransaction'); assert.equal(payload.method, 'eth_sendTransaction');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567890' + '0000000000000000000000001234567890123456789012345678901234567890' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
to: address to: address
}]); }]);
}
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
@ -194,30 +173,23 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231'; provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)';
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResult(sha3);
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 0) {
step = 1;
assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'web3_sha3');
assert.equal(payload.params[0], web3.fromAscii('balance(address)'));
} else if (step === 1) {
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + '0000000000000000000000001234567890123456789012345678901234567890', data: '0x' + sha3(signature).slice(0, 8) + '0000000000000000000000001234567890123456789012345678901234567890',
to: address, to: address,
from: address, from: address,
gas: '0xc350' gas: '0xc350'
}, 'latest']); }, 'latest']);
}
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
contract.balance(address, {from: address, gas: 50000}); var r = contract.balance(address, {from: address, gas: 50000});
assert.deepEqual(new BigNumber(0x32), r);
}); });
@ -226,30 +198,23 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231'; provider.injectResult('0x0000000000000000000000000000000000000000000000000000000000000032');
var signature = 'balance(address)';
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResult(sha3);
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 0) {
step = 1;
assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'web3_sha3');
assert.equal(payload.params[0], web3.fromAscii('balance(address)'));
} else if (step === 1) {
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + '0000000000000000000000001234567890123456789012345678901234567890', data: '0x' + sha3(signature).slice(0, 8) + '0000000000000000000000001234567890123456789012345678901234567890',
to: address, to: address,
from: address, from: address,
gas: '0xc350' gas: '0xc350'
}, 'latest']); }, 'latest']);
}
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
contract.balance.call(address, {from: address, gas: 50000}); var r = contract.balance.call(address, {from: address, gas: 50000});
assert.deepEqual(new BigNumber(0x32), r);
}); });
@ -257,20 +222,12 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231'; var signature = 'send(address,uint256)';
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResult(sha3);
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 0) {
step = 1;
assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'web3_sha3');
assert.equal(payload.params[0], web3.fromAscii('send(address,uint256)'));
} else if (step === 1) {
assert.equal(payload.method, 'eth_sendTransaction'); assert.equal(payload.method, 'eth_sendTransaction');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567890' + '0000000000000000000000001234567890123456789012345678901234567890' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
to: address, to: address,
@ -279,7 +236,6 @@ describe('web3.eth.contract', function () {
gasPrice: '0xbb8', gasPrice: '0xbb8',
value: '0x2710' value: '0x2710'
}]); }]);
}
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
@ -291,20 +247,12 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231'; var signature = 'send(address,uint256)';
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResult(sha3);
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 0) {
step = 1;
assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'web3_sha3');
assert.equal(payload.params[0], web3.fromAscii('send(address,uint256)'));
} else if (step === 1) {
assert.equal(payload.method, 'eth_sendTransaction'); assert.equal(payload.method, 'eth_sendTransaction');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567890' + '0000000000000000000000001234567890123456789012345678901234567890' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
to: address, to: address,
@ -313,7 +261,6 @@ describe('web3.eth.contract', function () {
gasPrice: '0xbb8', gasPrice: '0xbb8',
value: '0x2710' value: '0x2710'
}]); }]);
}
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
@ -325,20 +272,12 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider(); var provider = new FakeHttpProvider();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231';
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResult(sha3); var signature = 'send(address,uint256)';
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 0) {
step = 1;
assert.equal(payload.jsonrpc, '2.0');
assert.equal(payload.method, 'web3_sha3');
assert.equal(payload.params[0], web3.fromAscii('send(address,uint256)'));
} else if (step === 1) {
assert.equal(payload.method, 'eth_sendTransaction'); assert.equal(payload.method, 'eth_sendTransaction');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000001234567890123456789012345678901234567890' + '0000000000000000000000001234567890123456789012345678901234567890' +
'0000000000000000000000000000000000000000000000000000000000000011' , '0000000000000000000000000000000000000000000000000000000000000011' ,
to: address, to: address,
@ -347,7 +286,6 @@ describe('web3.eth.contract', function () {
gasPrice: '0xbb8', gasPrice: '0xbb8',
value: '0x2710' value: '0x2710'
}]); }]);
}
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
@ -362,19 +300,16 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider2(); var provider = new FakeHttpProvider2();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231'; var signature = 'testArr(int[])';
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResultList([{ provider.injectResultList([{
result: sha3
}, {
result: '0x0000000000000000000000000000000000000000000000000000000000000005' result: '0x0000000000000000000000000000000000000000000000000000000000000005'
}]); }]);
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 1) { // getting sha3 is first
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000000000000000000000000000000000000000000020' + '0000000000000000000000000000000000000000000000000000000000000020' +
'0000000000000000000000000000000000000000000000000000000000000001' + '0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000003', '0000000000000000000000000000000000000000000000000000000000000003',
@ -382,8 +317,6 @@ describe('web3.eth.contract', function () {
}, },
'latest' 'latest'
]); ]);
}
step++;
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);
@ -396,19 +329,15 @@ describe('web3.eth.contract', function () {
var provider = new FakeHttpProvider2(); var provider = new FakeHttpProvider2();
web3.setProvider(provider); web3.setProvider(provider);
web3.reset(); web3.reset();
var sha3 = '0x5131231231231231231231'; var signature = 'testArr(int[])';
var address = '0x1234567890123456789012345678901234567890'; var address = '0x1234567890123456789012345678901234567890';
provider.injectResultList([{ provider.injectResultList([{
result: sha3
}, {
result: '0x0000000000000000000000000000000000000000000000000000000000000005' result: '0x0000000000000000000000000000000000000000000000000000000000000005'
}]); }]);
var step = 0;
provider.injectValidation(function (payload) { provider.injectValidation(function (payload) {
if (step === 1) { // getting sha3 is first
assert.equal(payload.method, 'eth_call'); assert.equal(payload.method, 'eth_call');
assert.deepEqual(payload.params, [{ assert.deepEqual(payload.params, [{
data: sha3.slice(0, 10) + data: '0x' + sha3(signature).slice(0, 8) +
'0000000000000000000000000000000000000000000000000000000000000020' + '0000000000000000000000000000000000000000000000000000000000000020' +
'0000000000000000000000000000000000000000000000000000000000000001' + '0000000000000000000000000000000000000000000000000000000000000001' +
'0000000000000000000000000000000000000000000000000000000000000003', '0000000000000000000000000000000000000000000000000000000000000003',
@ -416,8 +345,6 @@ describe('web3.eth.contract', function () {
}, },
'latest' 'latest'
]); ]);
}
step++;
}); });
var contract = web3.eth.contract(desc).at(address); var contract = web3.eth.contract(desc).at(address);

View File

@ -1,16 +1,16 @@
var BigNumber = require('bignumber.js'); //var BigNumber = require('bignumber.js');
var web3 = require('../index'); //var web3 = require('../index');
var testMethod = require('./helpers/test.method.js'); //var testMethod = require('./helpers/test.method.js');
var method = 'sha3'; //var method = 'sha3';
var tests = [{ //var tests = [{
args: ['myString'], //args: ['myString'],
formattedArgs: ['myString'], //formattedArgs: ['myString'],
result: '0x319319f831983198319881', //result: '0x319319f831983198319881',
formattedResult: '0x319319f831983198319881', //formattedResult: '0x319319f831983198319881',
call: 'web3_'+ method //call: 'web3_'+ method
}]; //}];
testMethod.runTests(null, method, tests); //testMethod.runTests(null, method, tests);