File tree 9 files changed +40
-22
lines changed
9 files changed +40
-22
lines changed Original file line number Diff line number Diff line change @@ -110,12 +110,7 @@ contract ClaimHolder is KeyHolder, ERC735 {
110
110
bytes32 sa;
111
111
uint8 va;
112
112
113
- bytes memory prefix = "\x19Ethereum Signed Message:\n32 " ; // prefix used by web3
114
113
bytes memory sig = claims[_claimId].signature;
115
- uint256 claimType = claims[_claimId].claimType;
116
- bytes32 claimData = claims[_claimId].data;
117
- bytes32 dataHash = keccak256 (address (this ), claimType, claimData);
118
- bytes32 prefixedHash = keccak256 (prefix, dataHash);
119
114
120
115
// Check the signature length
121
116
if (sig.length != 65 ) {
@@ -133,6 +128,9 @@ contract ClaimHolder is KeyHolder, ERC735 {
133
128
va += 27 ;
134
129
}
135
130
131
+ bytes32 dataHash = keccak256 (address (this ), claims[_claimId].claimType, claims[_claimId].data);
132
+ bytes32 prefixedHash = keccak256 ("\x19Ethereum Signed Message:\n32 " , dataHash);
133
+
136
134
return (prefixedHash, ra, sa, va);
137
135
}
138
136
Original file line number Diff line number Diff line change @@ -4,8 +4,8 @@ import './ClaimHolder.sol';
4
4
5
5
contract ClaimVerifier {
6
6
7
- event ClaimValid (ClaimHolder _identity , uint256 claimType );
8
- event ClaimInvalid (ClaimHolder _identity , uint256 claimType );
7
+ event ClaimValid (ClaimHolder _identity , uint256 claimType , bytes32 recoveredKey );
8
+ event ClaimInvalid (ClaimHolder _identity , uint256 claimType , bytes32 recoveredKey );
9
9
10
10
ClaimHolder public trustedClaimHolder;
11
11
@@ -35,10 +35,10 @@ contract ClaimVerifier {
35
35
36
36
// Does the trusted identifier have they key which signed the user's claim?
37
37
if (trustedClaimHolder.keyHasPurpose (hashedAddr, 3 )) {
38
- emit ClaimValid (_identity, claimType);
38
+ emit ClaimValid (_identity, claimType, hashedAddr );
39
39
return true ;
40
40
} else {
41
- emit ClaimInvalid (_identity, claimType);
41
+ emit ClaimInvalid (_identity, claimType, hashedAddr );
42
42
return false ;
43
43
}
44
44
}
Original file line number Diff line number Diff line change @@ -3,6 +3,11 @@ import Identity from '../contracts/Identity'
3
3
import ClaimHolder from '../contracts/ClaimHolder'
4
4
import ClaimVerifier from '../contracts/ClaimVerifier'
5
5
6
+ window . contracts = {
7
+ ClaimHolder : ( addr ) => new web3 . eth . Contract ( ClaimHolder . abi , addr ) ,
8
+ ClaimVerifier : ( addr ) => new web3 . eth . Contract ( ClaimVerifier . abi , addr ) ,
9
+ }
10
+
6
11
function lookup ( Types ) {
7
12
return function claimType ( id ) {
8
13
var type = Types . find ( t => t . id === id )
@@ -309,7 +314,9 @@ export function addClaim({
309
314
} )
310
315
311
316
dispatch ( sendTransaction ( tx , IdentityConstants . ADD_CLAIM , txData , ( ) => {
312
- dispatch ( getEvents ( 'ClaimHolder' , targetIdentity ) )
317
+ if ( web3 . eth . defaultAccount === targetIdentity ) {
318
+ dispatch ( getEvents ( 'ClaimHolder' , targetIdentity ) )
319
+ }
313
320
} ) )
314
321
}
315
322
}
@@ -335,7 +342,7 @@ export function removeClaim({ identity, claim }) {
335
342
336
343
function sendTransaction ( transaction , type , data , callback ) {
337
344
return async function ( dispatch ) {
338
- dispatch ( { type } )
345
+ dispatch ( { type, ... data } )
339
346
340
347
transaction
341
348
. on ( 'error' , error => {
Original file line number Diff line number Diff line change @@ -67,6 +67,7 @@ export function loadWallet(external) {
67
67
68
68
try {
69
69
if ( external ) {
70
+ web3 . setProvider ( state . network . browserProvider )
70
71
accounts = await web3 . eth . getAccounts ( )
71
72
72
73
balanceWei = await web3 . eth . getBalance ( accounts [ 0 ] )
@@ -83,6 +84,8 @@ export function loadWallet(external) {
83
84
return
84
85
}
85
86
87
+ web3 . setProvider ( state . network . provider )
88
+
86
89
// wallet.load is expensive, so cache private keys in sessionStorage
87
90
if ( window . sessionStorage . privateKeys ) {
88
91
JSON . parse ( window . sessionStorage . privateKeys ) . forEach ( key =>
@@ -129,10 +132,12 @@ export function selectAccount(address) {
129
132
130
133
try {
131
134
var account = web3 . eth . accounts . wallet [ address ]
135
+ web3 . eth . defaultAccount = address
132
136
133
137
dispatch ( {
134
138
type : WalletConstants . SELECT_ACCOUNT_SUCCESS ,
135
- account
139
+ account,
140
+ activeAddress : address
136
141
} )
137
142
} catch ( error ) {
138
143
dispatch ( { type : WalletConstants . SELECT_ACCOUNT_ERROR , error } )
Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change @@ -106,6 +106,11 @@ module.exports = {
106
106
"indexed" : false ,
107
107
"name" : "claimType" ,
108
108
"type" : "uint256"
109
+ } ,
110
+ {
111
+ "indexed" : false ,
112
+ "name" : "recoveredKey" ,
113
+ "type" : "bytes32"
109
114
}
110
115
] ,
111
116
"name" : "ClaimValid" ,
@@ -123,11 +128,16 @@ module.exports = {
123
128
"indexed" : false ,
124
129
"name" : "claimType" ,
125
130
"type" : "uint256"
131
+ } ,
132
+ {
133
+ "indexed" : false ,
134
+ "name" : "recoveredKey" ,
135
+ "type" : "bytes32"
126
136
}
127
137
] ,
128
138
"name" : "ClaimInvalid" ,
129
139
"type" : "event"
130
140
}
131
141
] ,
132
- "data" : "6060604052341561000f57600080fd5b6040516020806109bb83398101604052808051906020019091905050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506109408061007b6000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630382ad261461006757806336938354146100c1578063bcd68f4f14610116578063e6c1f9021461019c575b600080fd5b341561007257600080fd5b6100a7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506101f6565b604051808215151515815260200191505060405180910390f35b34156100cc57600080fd5b6100d4610545565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561012157600080fd5b61015a600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505061056a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101a757600080fd5b6101dc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106ac565b604051808215151515815260200191505060405180910390f35b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200192505050604051809103902092508873ffffffffffffffffffffffffffffffffffffffff1663c9100bcb846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060c060405180830381600087803b15156102f357600080fd5b5af1151561030057600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519050909150905050809650819750829850505050610344898461056a565b915081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401915050604051809103902090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d202158d8260036040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b151561043957600080fd5b5af1151561044657600080fd5b50505060405180519050156104c9577f5637aa6b77cde2de563765b75a65099af73d3bf22cb9d089a64a01777823208e8989604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a160019650610539565b7fc1e461cfcaa9ff5efbb053582a325fbfebec1d94ac7e9d9958ee7f74c2b6b5588989604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600096505b50505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000808773ffffffffffffffffffffffffffffffffffffffff1663a0ebcf61886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050608060405180830381600087803b15156105e957600080fd5b5af115156105f657600080fd5b5050506040518051906020018051906020018051906020018051905080955081965082975083985050505050600185838686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1151561069357600080fd5b5050602060405103519050809550505050505092915050565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200192505050604051809103902092508873ffffffffffffffffffffffffffffffffffffffff1663c9100bcb846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060c060405180830381600087803b15156107a957600080fd5b5af115156107b657600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190509091509050508096508197508298505050506107fa898461056a565b915081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401915050604051809103902090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d202158d8260036040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b15156108ef57600080fd5b5af115156108fc57600080fd5b505050604051805190509650505050505050929150505600a165627a7a723058204502563097e4e5dbe13264cc0f437745343f06d5acd4af7b1b4f42f1f162bfb40029"
142
+ "data" : "6060604052341561000f57600080fd5b6040516020806109db83398101604052808051906020019091905050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506109608061007b6000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630382ad261461006757806336938354146100c1578063bcd68f4f14610116578063e6c1f9021461019c575b600080fd5b341561007257600080fd5b6100a7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506101f6565b604051808215151515815260200191505060405180910390f35b34156100cc57600080fd5b6100d4610565565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561012157600080fd5b61015a600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080356000191690602001909190505061058a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101a757600080fd5b6101dc600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506106cc565b604051808215151515815260200191505060405180910390f35b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200192505050604051809103902092508873ffffffffffffffffffffffffffffffffffffffff1663c9100bcb846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060c060405180830381600087803b15156102f357600080fd5b5af1151561030057600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180519050909150905050809650819750829850505050610344898461058a565b915081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401915050604051809103902090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d202158d8260036040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b151561043957600080fd5b5af1151561044657600080fd5b50505060405180519050156104d9577f3d4de4d11a11373233ed38924ca212d8f7207c65836d87f9d8d4305d1792c713898983604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018260001916600019168152602001935050505060405180910390a160019650610559565b7fe40aa58a04374428c5b27d482e2afa1b57a4a05127c6606b6d3fcec4c8c7361a898983604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018260001916600019168152602001935050505060405180910390a1600096505b50505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000808773ffffffffffffffffffffffffffffffffffffffff1663a0ebcf61886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050608060405180830381600087803b151561060957600080fd5b5af1151561061657600080fd5b5050506040518051906020018051906020018051906020018051905080955081965082975083985050505050600185838686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115156106b357600080fd5b5050602060405103519050809550505050505092915050565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1688604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200192505050604051809103902092508873ffffffffffffffffffffffffffffffffffffffff1663c9100bcb846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180826000191660001916815260200191505060c060405180830381600087803b15156107c957600080fd5b5af115156107d657600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051905090915090505080965081975082985050505061081a898461058a565b915081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401915050604051809103902090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d202158d8260036040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050602060405180830381600087803b151561090f57600080fd5b5af1151561091c57600080fd5b505050604051805190509650505050505050929150505600a165627a7a723058208547e1bdf47239a8e13ee10bc58d6d9edcb0c6d6a20a76ca66a697aa96c15e540029"
133
143
}
Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change @@ -59,7 +59,7 @@ class Console extends Component {
59
59
60
60
const mapStateToProps = state => ( {
61
61
externalProvider : state . wallet . externalProvider ,
62
- browserHasProvider : state . network . browserHasProvider
62
+ browserHasProvider : state . network . browserProvider ? true : false
63
63
} )
64
64
65
65
const mapDispatchToProps = dispatch => ( {
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ const HOST = process.env.HOST || 'localhost'
6
6
let ipfsGateway = 'https://gateway.originprotocol.com' ,
7
7
ipfsRPC = 'https://gateway.originprotocol.com' ,
8
8
provider = 'https://rinkeby.infura.io' ,
9
- browserHasProvider = false
9
+ browserProvider = false
10
10
11
11
if ( process . env . NODE_ENV !== 'production' ) {
12
12
ipfsGateway = `http://${ HOST } :9090`
@@ -17,11 +17,9 @@ if (process.env.NODE_ENV !== 'production') {
17
17
if ( typeof window !== 'undefined' ) {
18
18
provider = window . sessionStorage . provider || provider
19
19
if ( window . web3 ) {
20
- browserHasProvider = true
20
+ browserProvider = web3 . currentProvider
21
21
}
22
- window . web3 = new Web3 (
23
- typeof web3 !== 'undefined' ? web3 . currentProvider : provider
24
- )
22
+ window . web3 = new Web3 ( provider )
25
23
}
26
24
27
25
const initialState = {
@@ -31,7 +29,7 @@ const initialState = {
31
29
account : null ,
32
30
status : 'disconnected' ,
33
31
34
- browserHasProvider ,
32
+ browserProvider ,
35
33
providers : Providers ,
36
34
provider,
37
35
You can’t perform that action at this time.
0 commit comments