bitcoinjs / bitcoinjs-lib

A javascript Bitcoin library for node.js and browsers.
MIT License
5.68k stars 2.1k forks source link

TypeError: Cannot read property 'toBuffer' of undefined #1168

Closed NoR3s closed 6 years ago

NoR3s commented 6 years ago

Im getting typeError: Cannot read property 'toBuffer' of undefined everytime i want to sign a message

im using bitcoinjs-lib 4.0.1 version and bitcoinjs-message version is 2.0.0.

The code im using


var bitcoinMessage = require('bitcoinjs-message')

var keyPair = bitcoin.ECPair.fromWIF('5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss')
var privateKey = keyPair.d.toBuffer(32)
var message = 'This is an example of a signed message.'

var signature = bitcoinMessage.sign(message, privateKey, keyPair.compressed)
console.log(signature.toString('base64'))

console.log(bitcoinMessage.verify(message, address, signature))
junderw commented 6 years ago

change var privateKey = keyPair.d.toBuffer(32)

to var privateKey = keyPair.__d

dcousens commented 6 years ago

@junderw noooooooooooooooooooo.

@NoR3s please use the new .privateKey property for the Buffer private key. The internal bn.js instance is internal, and not to be used by the public.

var privateKey = keyPair.privateKey