Использование функции ecrecover - Solidity - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь проверить сообщение, я искал в StackOverflow и нашел функцию ecrecover. но когда я использую его, он возвращает адрес, отличный от того, что я ожидал.

function verify(bytes32 hash, uint8 v, bytes32 r, bytes32 s) constant returns(address) {
    bytes memory prefix = "\x19Ethereum Signed Message:\n32";
    bytes32 prefixedHash = keccak256(prefix, hash);
    return ecrecover(prefixedHash, v, r, s);
}

объект подписи:

{
message: 'a',
messageHash: '0x34f291c0b5f0c13c8f43e9d37c04094c22234da43f4040adb36654c98235b4b3',
v: '0x1b',
r: '0x944f8187c19a711259e32dd9ab0f005c97c9e2013c735f823d3ad34c7cd5030f',
s: '0x254607e8d32e8a0436c8d678fe7d3478c8858fd903e164c51f8a8595e723b7a7',
signature: '0x944f8187c19a711259e32dd9ab0f005c97c9e2013c735f823d3ad34c7cd5030f254607e8d32e8a0436c8d678fe7d3478c8858fd903e164c51f8a8595e723b7a71b' }

ввод: (я передаю его в remix-ide)

"0x34f291c0b5f0c13c8f43e9d37c04094c22234da43f4040adb36654c98235b4b3", 0x1b, "0x944f8187c19a711259e32dd9ab0f005c97c9e2013c735f823d3ad34c7cd5030f", "0x254607e8d32e8a0436c8d678fe7d3478c8858fd903e164c51f8a8595e723b7a7"

вывод: (неправильно)

0x5dd277a46b3ab8ce30735d82df5e6e8312bce7ef

Пожалуйста, помогите мне разобраться в проблемах. большое спасибо.

...