Merge pull request #6 from thofmann/master
Add some standard methods to Message
This commit is contained in:
commit
7969e1a7c7
|
@ -8,6 +8,7 @@ var BufferWriter = bitcore.encoding.BufferWriter;
|
||||||
var ECDSA = bitcore.crypto.ECDSA;
|
var ECDSA = bitcore.crypto.ECDSA;
|
||||||
var Signature = bitcore.crypto.Signature;
|
var Signature = bitcore.crypto.Signature;
|
||||||
var sha256sha256 = bitcore.crypto.Hash.sha256sha256;
|
var sha256sha256 = bitcore.crypto.Hash.sha256sha256;
|
||||||
|
var JSUtil = bitcore.util.js;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Will construct a new message to sign and verify.
|
* Will construct a new message to sign and verify.
|
||||||
|
@ -107,5 +108,61 @@ Message.prototype.verify = function verify(bitcoinAddress, signatureString) {
|
||||||
return this._verify(publicKey, signature);
|
return this._verify(publicKey, signature);
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = Message;
|
/**
|
||||||
|
* Instantiate a message from a message string
|
||||||
|
*
|
||||||
|
* @param {String} str - A string of the message
|
||||||
|
* @returns {Message} A new instance of a Message
|
||||||
|
*/
|
||||||
|
Message.fromString = function(str) {
|
||||||
|
return new Message(str);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiate a message from JSON
|
||||||
|
*
|
||||||
|
* @param {String} json - An JSON string or Object with keys: message
|
||||||
|
* @returns {Message} A new instance of a Message
|
||||||
|
*/
|
||||||
|
Message.fromJSON = function fromJSON(json) {
|
||||||
|
if (JSUtil.isValidJSON(json)) {
|
||||||
|
json = JSON.parse(json);
|
||||||
|
}
|
||||||
|
return new Message(json.message);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {Object} A plain object with the message information
|
||||||
|
*/
|
||||||
|
Message.prototype.toObject = function toObject() {
|
||||||
|
return {
|
||||||
|
message: this.message
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns {String} A JSON representation of the message information
|
||||||
|
*/
|
||||||
|
Message.prototype.toJSON = function toJSON() {
|
||||||
|
return JSON.stringify(this.toObject());
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will return a the string representation of the message
|
||||||
|
*
|
||||||
|
* @returns {String} Message
|
||||||
|
*/
|
||||||
|
Message.prototype.toString = function() {
|
||||||
|
return this.message;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will return a string formatted for the console
|
||||||
|
*
|
||||||
|
* @returns {String} Message
|
||||||
|
*/
|
||||||
|
Message.prototype.inspect = function() {
|
||||||
|
return '<Message: ' + this.toString() + '>';
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = Message;
|
||||||
|
|
|
@ -104,4 +104,47 @@ describe('Message', function() {
|
||||||
verified.should.equal(true);
|
verified.should.equal(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#json', function() {
|
||||||
|
|
||||||
|
it('roundtrip to-from-to', function() {
|
||||||
|
var json = new Message(text).toJSON();
|
||||||
|
var message = Message.fromJSON(json);
|
||||||
|
message.toString().should.equal(text);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('checks that the string parameter is valid JSON', function() {
|
||||||
|
expect(function() {
|
||||||
|
return Message.fromJSON('¹');
|
||||||
|
}).to.throw();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#toString', function() {
|
||||||
|
|
||||||
|
it('message string', function() {
|
||||||
|
var message = new Message(text);
|
||||||
|
message.toString().should.equal(text);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('roundtrip to-from-to', function() {
|
||||||
|
var str = new Message(text).toString();
|
||||||
|
var message = Message.fromString(str);
|
||||||
|
message.toString().should.equal(text);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#inspect', function() {
|
||||||
|
|
||||||
|
it('should output formatted output correctly', function() {
|
||||||
|
var message = new Message(text);
|
||||||
|
var output = '<Message: '+text+'>';
|
||||||
|
message.inspect().should.equal(output);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue