cipher-ethereum
Version:
An Ethereum library used by Cipher Browser, a mobile Ethereum client
30 lines (28 loc) • 2.16 kB
JavaScript
;
var _Message = require('./Message');
var privateKey = Buffer.from('18aed7b31dea5e7d7e50c868b72efcb10e4e5b8060e9bb3cf30b6e2ca6b8471c', 'hex'); // publicKey: 03c2cf95f0cce3e633427a7c26037ad3b028a91d6d7da52799adcaea18c13b9d7d
var address = '0x3411cd4C838A3FEda31f0d24A958C801C4dB7d36';
describe('hash', function () {
test('works', function () {
var message = new _Message.Message(Buffer.from('hello world', 'utf8'));
expect(message.hash.toString('hex')).toBe('d9eba16ed0ecae432b71fe008c98cc872bb4cc214d3220a36f365326cf807d68');
message = new _Message.Message(Buffer.from('deadbeefcafebabe0123456789', 'hex'));
expect(message.hash.toString('hex')).toBe('aba82ee9ad6afdb9c75e1808cd351fc1e3a051079908d8106714e2a48c3e82a3');
});
});
describe('signMessage', function () {
test('signs a message', function () {
var message = new _Message.Message(Buffer.from('hello world', 'utf8'));
expect(message.sign(privateKey).toString('hex')).toBe('8bdf11df0aac429a57fcb7595d3f43ff1cd8063a3f93e76594273d728e7b2fc229e9b08ea19fdded04a2d8776a8901dd493437eeb35ea6239d4da0884bf1b2ef1c');
message = new _Message.Message(Buffer.from('deadbeefcafebabe0123456789', 'hex'));
expect(message.sign(privateKey).toString('hex')).toBe('c7660c7905ecb6202b30aaf6884bba78739f0c01b19365674ee6a80367e0cb8858c1931958132c24101c3e9d0d408fd26bb0cb03b2904712ba8d94c33eab36d91c');
});
});
describe('ecRecover', function () {
test('returns the address associated with the private key used for signing', function () {
var message = new _Message.Message(Buffer.from('hello world', 'utf8'));
expect(message.ecRecover(Buffer.from('8bdf11df0aac429a57fcb7595d3f43ff1cd8063a3f93e76594273d728e7b2fc229e9b08ea19fdded04a2d8776a8901dd493437eeb35ea6239d4da0884bf1b2ef1c', 'hex'))).toBe(address);
message = new _Message.Message(Buffer.from('deadbeefcafebabe0123456789', 'hex'));
expect(message.ecRecover(Buffer.from('c7660c7905ecb6202b30aaf6884bba78739f0c01b19365674ee6a80367e0cb8858c1931958132c24101c3e9d0d408fd26bb0cb03b2904712ba8d94c33eab36d91c', 'hex'))).toBe(address);
});
});