implement Script.buildPublicKeyHashOut()
This commit is contained in:
parent
163925c754
commit
b87e687fd9
|
@ -3,6 +3,8 @@
|
|||
var BufferReader = require('./encoding/bufferreader');
|
||||
var BufferWriter = require('./encoding/bufferwriter');
|
||||
var Opcode = require('./opcode');
|
||||
var Address = require('./address');
|
||||
var PublicKey = require('./publickey');
|
||||
|
||||
var Script = function Script(from) {
|
||||
if (!(this instanceof Script)) {
|
||||
|
@ -445,8 +447,16 @@ Script.buildMultisigOut = function(pubkeys, m) {
|
|||
* address or public key
|
||||
*/
|
||||
Script.buildPublicKeyHashOut = function(to) {
|
||||
console.log(to);
|
||||
return new Script();
|
||||
if (to instanceof PublicKey) {
|
||||
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 s = Script.buildPublicKeyHashOut(address);
|
||||
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);
|
||||
});
|
||||
it('should create script from testnet address', function() {
|
||||
var address = Address.fromString('mxRN6AQJaDi5R6KmvMaEmZGe3n5ScV9u33');
|
||||
var s = Script.buildPublicKeyHashOut(address);
|
||||
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);
|
||||
});
|
||||
it('should create script from public key', function() {
|
||||
var pubkey = new PublicKey('022df8750480ad5b26950b25c7ba79d3e37d75f640f8e5d9bcd5b150a0f85014da');
|
||||
var s = Script.buildPublicKeyHashOut(pubkey);
|
||||
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);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue