fixed verification of signatures signed with eth_sign, closes #17

This commit is contained in:
debris 2017-08-25 18:29:29 +02:00
parent d9c6773185
commit a9709f942a
6 changed files with 16 additions and 5 deletions

View File

@ -1 +1 @@
60606040523415600e57600080fd5b5b603680601c6000396000f30060606040525b600080fd00a165627a7a7230582055040070eecda16f7992555f728eac18e0652f23cefba6637af8a8384e1c5de90029
60606040523415600e57600080fd5b5b603680601c6000396000f30060606040525b600080fd00a165627a7a723058209ccf54929d065bb2c6b737f40dbe925c7268d38fa91d71817ee6528f47dfb2dd0029

View File

@ -22,6 +22,7 @@
"name": "withdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
@ -47,6 +48,7 @@
"name": "reelect",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
@ -61,10 +63,12 @@
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{

File diff suppressed because one or more lines are too long

View File

@ -19,6 +19,7 @@
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
@ -40,6 +41,7 @@
"name": "deposit",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
@ -58,6 +60,7 @@
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
@ -75,6 +78,7 @@
"name": "submitSignature",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
@ -96,6 +100,7 @@
"name": "transfer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
@ -110,6 +115,7 @@
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
pragma solidity ^0.4.15;
pragma solidity ^0.4.16;
library Authorities {
function contains (address[] self, address value) internal returns (bool) {
@ -40,7 +40,8 @@ contract EthereumBridge {
/// Multisig authority validation
modifier allAuthorities (uint8[] v, bytes32[] r, bytes32[] s, bytes message) {
var hash = sha3(message);
bytes memory prefix = "\x19Ethereum Signed Message:\n";
var hash = sha3(prefix, message.length, message);
var used = new address[](requiredSignatures);
require(requiredSignatures <= v.length);