Files
openzeppelin-contracts/test/helpers/sign.js
Nicolás Venturo cea2a85a42 Remove Babel (#1074)
* Test helpers no longer rely on Babel.

* Behaviours are no longer imported.

* Removed Babel dependency.

* Fixed linter errors.
2018-07-18 19:37:16 -03:00

29 lines
936 B
JavaScript

const utils = require('ethereumjs-util');
/**
* Hash and add same prefix to the hash that ganache use.
* @param {string} message the plaintext/ascii/original message
* @return {string} the hash of the message, prefixed, and then hashed again
*/
function hashMessage (message) {
const messageHex = Buffer.from(utils.sha3(message).toString('hex'), 'hex');
const prefix = utils.toBuffer('\u0019Ethereum Signed Message:\n' + messageHex.length.toString());
return utils.bufferToHex(utils.sha3(Buffer.concat([prefix, messageHex])));
}
// signs message using web3 (auto-applies prefix)
function signMessage (signer, message = '', options = {}) {
return web3.eth.sign(signer, web3.sha3(message, options));
}
// signs hex string using web3 (auto-applies prefix)
function signHex (signer, message = '') {
return signMessage(signer, message, { encoding: 'hex' });
}
module.exports = {
hashMessage,
signMessage,
signHex,
};