implement Script.buildPublicKeyHashOut()
This commit is contained in:
parent
163925c754
commit
b87e687fd9
@ -3,6 +3,8 @@
|
|||||||
var BufferReader = require('./encoding/bufferreader');
|
var BufferReader = require('./encoding/bufferreader');
|
||||||
var BufferWriter = require('./encoding/bufferwriter');
|
var BufferWriter = require('./encoding/bufferwriter');
|
||||||
var Opcode = require('./opcode');
|
var Opcode = require('./opcode');
|
||||||
|
var Address = require('./address');
|
||||||
|
var PublicKey = require('./publickey');
|
||||||
|
|
||||||
var Script = function Script(from) {
|
var Script = function Script(from) {
|
||||||
if (!(this instanceof Script)) {
|
if (!(this instanceof Script)) {
|
||||||
@ -445,8 +447,16 @@ Script.buildMultisigOut = function(pubkeys, m) {
|
|||||||
* address or public key
|
* address or public key
|
||||||
*/
|
*/
|
||||||
Script.buildPublicKeyHashOut = function(to) {
|
Script.buildPublicKeyHashOut = function(to) {
|
||||||
console.log(to);
|
if (to instanceof PublicKey) {
|
||||||
return new Script();
|
to = to.toAddress();
|
||||||
|
}
|
||||||
|
var s = new Script();
|
||||||
|
s.add(Opcode('OP_DUP'))
|
||||||
|
.add(Opcode('OP_HASH160'))
|
||||||
|
.add(to.hashBuffer)
|
||||||
|
.add(Opcode('OP_EQUALVERIFY'))
|
||||||
|
.add(Opcode('OP_CHECKSIG'));
|
||||||
|
return s;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -404,21 +404,21 @@ describe('Script', function() {
|
|||||||
var address = Address.fromString('1NaTVwXDDUJaXDQajoa9MqHhz4uTxtgK14');
|
var address = Address.fromString('1NaTVwXDDUJaXDQajoa9MqHhz4uTxtgK14');
|
||||||
var s = Script.buildPublicKeyHashOut(address);
|
var s = Script.buildPublicKeyHashOut(address);
|
||||||
should.exist(s);
|
should.exist(s);
|
||||||
s.toString().should.equal('OP_DUP OP_HASH160 ecae7d092947b7ee4998e254aa48900d26d2ce1d OP_EQUALVERIFY OP_CHECKSIG');
|
s.toString().should.equal('OP_DUP OP_HASH160 20 0xecae7d092947b7ee4998e254aa48900d26d2ce1d OP_EQUALVERIFY OP_CHECKSIG');
|
||||||
s.isPublicKeyHashOut().should.equal(true);
|
s.isPublicKeyHashOut().should.equal(true);
|
||||||
});
|
});
|
||||||
it('should create script from testnet address', function() {
|
it('should create script from testnet address', function() {
|
||||||
var address = Address.fromString('mxRN6AQJaDi5R6KmvMaEmZGe3n5ScV9u33');
|
var address = Address.fromString('mxRN6AQJaDi5R6KmvMaEmZGe3n5ScV9u33');
|
||||||
var s = Script.buildPublicKeyHashOut(address);
|
var s = Script.buildPublicKeyHashOut(address);
|
||||||
should.exist(s);
|
should.exist(s);
|
||||||
s.toString().should.equal('OP_DUP OP_HASH160 b96b816f378babb1fe585b7be7a2cd16eb99b3e4 OP_EQUALVERIFY OP_CHECKSIG');
|
s.toString().should.equal('OP_DUP OP_HASH160 20 0xb96b816f378babb1fe585b7be7a2cd16eb99b3e4 OP_EQUALVERIFY OP_CHECKSIG');
|
||||||
s.isPublicKeyHashOut().should.equal(true);
|
s.isPublicKeyHashOut().should.equal(true);
|
||||||
});
|
});
|
||||||
it('should create script from public key', function() {
|
it('should create script from public key', function() {
|
||||||
var pubkey = new PublicKey('022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da');
|
var pubkey = new PublicKey('022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da');
|
||||||
var s = Script.buildPublicKeyHashOut(pubkey);
|
var s = Script.buildPublicKeyHashOut(pubkey);
|
||||||
should.exist(s);
|
should.exist(s);
|
||||||
s.toString().should.equal('OP_DUP OP_HASH160 9674af7395592ec5d91573aa8d6557de55f60147 OP_EQUALVERIFY OP_CHECKSIG');
|
s.toString().should.equal('OP_DUP OP_HASH160 20 0x9674af7395592ec5d91573aa8d6557de55f60147 OP_EQUALVERIFY OP_CHECKSIG');
|
||||||
s.isPublicKeyHashOut().should.equal(true);
|
s.isPublicKeyHashOut().should.equal(true);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user