Skip to content

Commit

Permalink
Change to webpack
Browse files Browse the repository at this point in the history
  • Loading branch information
wilmveel committed May 6, 2016
1 parent 7b6f853 commit 6e357c8
Show file tree
Hide file tree
Showing 21 changed files with 435 additions and 191 deletions.
12 changes: 10 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
{
"name": "ethereumjs-tx-test",
"name": "ethereum-auth",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"main": "./src/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"angular": "^1.5.5",
"angular-animate": "^1.5.5",
"angular-aria": "^1.5.5",
"angular-material": "^1.0.8",
"angular-messages": "^1.5.5",
"angular-mocks": "^1.5.5",
"angular-route": "^1.5.5",
"angular-sanitize": "^1.5.5",
"ethereumjs-tx": "^1.1.1",
"ethereumjs-util": "^4.3.0",
"express": "^4.13.4",
Expand Down
14 changes: 4 additions & 10 deletions src/contracts.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
var fs = require('fs');

require.extensions['.sol'] = function (module, filename) {
module.exports = fs.readFileSync(filename, 'utf8');
};


var contracts = {
app: require('./contracts/App.sol'),
user: require('./contracts/User.sol'),
//app: require('./contracts/App.sol'),
party: require('./contracts/Party.sol'),
grant: require('./contracts/Grant.sol'),
delegate: require('./contracts/Delegate.sol'),
passwordDelegate: require('./contracts/PasswordDelegate.sol'),
bank: require('./contracts/Bank.sol')
//bank: require('./contracts/Bank.sol')
};

var all = ""
Expand Down
4 changes: 0 additions & 4 deletions src/contracts/App.sol

This file was deleted.

39 changes: 39 additions & 0 deletions src/contracts/ApplicationDelegate.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
contract ApplicationDelegate{

address user;

bytes32 private salt;
bytes32 private challenge;
bytes20 private response;

event error(string msg);
event success(string msg);


function PasswordDelegate(address _user, bytes20 _response, bytes32 _salt){
user = _user;
response = _response;
salt = _salt;
challenge = sha3(now);
}

function getSalt() constant returns(bytes32){
return salt;
}

function getChallenge() constant returns(bytes32){
return challenge;
}

function getResponse() constant returns(bytes20){
return response;
}

function authorize(uint8 v, bytes32 r, bytes32 s, address grant) {
if(bytes20(ecrecover(challenge, v, r, s)) != response) return error('Incorrect password');
User(user).authorize(grant);
challenge = sha3(challenge);
return success('Authentication successfull');
}

}
8 changes: 8 additions & 0 deletions src/contracts/Delegate.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
contract Delegate{

event error();
event success();

function authorize(uint8 v, bytes32 r, bytes32 s, address party, address grant){}

}
39 changes: 39 additions & 0 deletions src/contracts/FacebookDelegate.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
contract FacebookDelegate{

address user;

bytes32 private salt;
bytes32 private challenge;
bytes20 private response;

event error(string msg);
event success(string msg);


function PasswordDelegate(address _user, bytes20 _response, bytes32 _salt){
user = _user;
response = _response;
salt = _salt;
challenge = sha3(now);
}

function getSalt() constant returns(bytes32){
return salt;
}

function getChallenge() constant returns(bytes32){
return challenge;
}

function getResponse() constant returns(bytes20){
return response;
}

function authorize(uint8 v, bytes32 r, bytes32 s, address grant) {
if(bytes20(ecrecover(challenge, v, r, s)) != response) return error('Incorrect password');
User(user).authorize(grant);
challenge = sha3(challenge);
return success('Authentication successfull');
}

}
25 changes: 17 additions & 8 deletions src/contracts/Grant.sol
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
contract Grant {

address app;
address user;
address client;
address owner;

function Grant() {
app = msg.sender;
function Grant(address _client) {
client = _client;
}

/*
* authorize the grant contract
* this can only be done once
*/
function authorize() {
user = msg.sender;
if(msg.sender != owner) throw;
owner = msg.sender;
}

function state() constant returns (address b, address a){
a = app;
b = user;
/*
* revoke the grant contract
* this can be done by the client or owner
*/
function revoke() {
if(msg.sender != client && msg.sender != owner) throw;
suicide(msg.sender);
}

}
37 changes: 37 additions & 0 deletions src/contracts/Party.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
contract Party {

mapping (address => bool) delegates;

/*
* constructor set sender as first delegate
*/
function Party () {
delegates[msg.sender] = true;
}

/*
* authorize contract of type grant
*/
function authorize (address grant) {
if(!delegates[msg.sender]) throw;
Grant(grant).authorize();
}

/*
* enroll new address as delegate to the contract
*/
function enroll (address delegate) {
if(!delegates[msg.sender]) throw;
delegates[delegate] = true;
}

/*
* abandon a delegate from the contract
*/
function abandon (address delegate) {
if(!delegates[msg.sender]) throw;
if(!delegates[delegate]) throw;
delete delegates[delegate];
}

}
29 changes: 13 additions & 16 deletions src/contracts/PasswordDelegate.sol
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
contract PasswordDelegate{

address user;
contract PasswordDelegate is Delegate{

bytes32 private salt;
bytes32 private challenge;
bytes20 private response;

event error(string msg);
event success(string msg);


function PasswordDelegate(address _user, bytes20 _response, bytes32 _salt){
user = _user;
function PasswordDelegate(bytes20 _response, bytes32 _salt){
response = _response;
salt = _salt;
challenge = sha3(now);
challenge = sha3(_salt);
}

function getSalt() constant returns(bytes32){
Expand All @@ -25,15 +18,19 @@ contract PasswordDelegate{
return challenge;
}

function getResponse() constant returns(bytes20){
function getResponse() constant returns(bytes20){
return response;
}

function authorize(uint8 v, bytes32 r, bytes32 s, address grant) {
if(bytes20(ecrecover(challenge, v, r, s)) != response) return error('Incorrect password');
User(user).authorize(grant);
challenge = sha3(challenge);
return success('Authentication successfull');
function authorize(uint8 v, bytes32 r, bytes32 s, address party, address grant) {
if(!verify(v, r, s)) return error();
Party(party).authorize(grant);
return success();
}

function verify(uint8 v, bytes32 r, bytes32 s) returns (bool) {
var result = (bytes20(ecrecover(challenge, v, r, s)) == response);
challenge = sha3(challenge);
return result;
}
}
27 changes: 0 additions & 27 deletions src/contracts/User.sol

This file was deleted.

28 changes: 5 additions & 23 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,5 @@
var Web3 = require('web3');
var web3 = new Web3();

var defaultProvider = new web3.providers.HttpProvider("http://128.199.53.68:8545")

web3.setProvider(defaultProvider);
web3.eth.defaultAccount = web3.eth.coinbase;

var source = "contract test { function multiply(uint a) constant returns(uint d) {return a * 7;}}";

var compiled = web3.eth.compile.solidity(source);
var abi = compiled.test.info.abiDefinition;
var code = compiled.test.code;

function createContract(callback){
web3.eth.contract(abi).new({
from: web3.eth.coinbase,
gas: 500000,
data: code
}, callback);
}

module.exports = createContract;
module.exports = {
contracts: require('./contracts'),
services: require('./services'),
jwt: require('./jwt')
};
3 changes: 3 additions & 0 deletions src/services.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
passwordDelegateServices: require('./services/passwordDelegateServices')
};
Loading

0 comments on commit 6e357c8

Please sign in to comment.