-
-
Save hudhaifahz/118d7436b71bfe9abf71bcee40c35ff4 to your computer and use it in GitHub Desktop.
Truffle console commands - Learning how to sign a message using a private key and restore the address from hashed message
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var ethUtil = require('ethereumjs-util') | |
var data = 'Hello World!' | |
var message = new Buffer(data) | |
var msgHash = ethUtil.hashPersonalMessage(message) | |
// privateKey = 0xc87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3 | |
// publicKey = 0x627306090abaB3A6e1400e9345bC60c78a8BEf57 | |
var privateKey = new Buffer('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3', "hex") | |
var sig = ethUtil.ecsign(msgHash, privateKey) | |
var publicKey = ethUtil.ecrecover(msgHash, sig.v, sig.r, sig.s) | |
var sender = ethUtil.publicToAddress(publicKey) | |
console.log('publicKey = ', sender.toString('hex')) | |
var Web3 = require('web3'); | |
var web3 = new Web3(); | |
var ethUtil = require('ethereumjs-util'); | |
// Private Key | |
var pKey = "c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3" | |
var pKeyx = new Buffer(pKey, "hex") | |
// Shared Message | |
var message = 'Hello World!' | |
var messageHash = web3.utils.sha3(message) | |
var messageHashx = new Buffer(messageHash.replace("0x", ""), "hex") | |
// Signed Hash | |
var signedMessage = ethUtil.ecsign(messageHashx, pKeyx) | |
var signedHash = ethUtil.toRpcSig(signedMessage.v, signedMessage.r, signedMessage.s).toString("hex") | |
console.log('signedHash = ', signedHash) | |
// Recover Address | |
var sigDecoded = ethUtil.fromRpcSig(signedHash) | |
var recoveredPub = ethUtil.ecrecover(messageHashx, sigDecoded.v, sigDecoded.r, sigDecoded.s) | |
var recoveredAddress = ethUtil.pubToAddress(recoveredPub).toString("hex") | |
console.log('recoveredAddress = ', recoveredAddress) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment