fixed verification of signatures signed with eth_sign, closes #17
This commit is contained in:
parent
d9c6773185
commit
a9709f942a
|
@ -1 +1 @@
|
||||||
60606040523415600e57600080fd5b5b603680601c6000396000f30060606040525b600080fd00a165627a7a7230582055040070eecda16f7992555f728eac18e0652f23cefba6637af8a8384e1c5de90029
|
60606040523415600e57600080fd5b5b603680601c6000396000f30060606040525b600080fd00a165627a7a723058209ccf54929d065bb2c6b737f40dbe925c7268d38fa91d71817ee6528f47dfb2dd0029
|
|
@ -22,6 +22,7 @@
|
||||||
"name": "withdraw",
|
"name": "withdraw",
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
"type": "function"
|
"type": "function"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -47,6 +48,7 @@
|
||||||
"name": "reelect",
|
"name": "reelect",
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
"type": "function"
|
"type": "function"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -61,10 +63,12 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
"type": "constructor"
|
"type": "constructor"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"payable": true,
|
"payable": true,
|
||||||
|
"stateMutability": "payable",
|
||||||
"type": "fallback"
|
"type": "fallback"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -19,6 +19,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "view",
|
||||||
"type": "function"
|
"type": "function"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -40,6 +41,7 @@
|
||||||
"name": "deposit",
|
"name": "deposit",
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
"type": "function"
|
"type": "function"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -58,6 +60,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "view",
|
||||||
"type": "function"
|
"type": "function"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -75,6 +78,7 @@
|
||||||
"name": "submitSignature",
|
"name": "submitSignature",
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
"type": "function"
|
"type": "function"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -96,6 +100,7 @@
|
||||||
"name": "transfer",
|
"name": "transfer",
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
"type": "function"
|
"type": "function"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -110,6 +115,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"payable": false,
|
"payable": false,
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
"type": "constructor"
|
"type": "constructor"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,4 +1,4 @@
|
||||||
pragma solidity ^0.4.15;
|
pragma solidity ^0.4.16;
|
||||||
|
|
||||||
library Authorities {
|
library Authorities {
|
||||||
function contains (address[] self, address value) internal returns (bool) {
|
function contains (address[] self, address value) internal returns (bool) {
|
||||||
|
@ -40,7 +40,8 @@ contract EthereumBridge {
|
||||||
|
|
||||||
/// Multisig authority validation
|
/// Multisig authority validation
|
||||||
modifier allAuthorities (uint8[] v, bytes32[] r, bytes32[] s, bytes message) {
|
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);
|
var used = new address[](requiredSignatures);
|
||||||
|
|
||||||
require(requiredSignatures <= v.length);
|
require(requiredSignatures <= v.length);
|
||||||
|
|
Loading…
Reference in New Issue