Script: add createPubKeyScriptPubKey
This commit is contained in:
parent
05d0baae7c
commit
08951be66f
3 changed files with 44 additions and 6 deletions
|
@ -268,6 +268,16 @@ Script.prototype.writeBytes = function(data) {
|
||||||
this.chunks.push(data)
|
this.chunks.push(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// {pubKey} OP_CHECKSIG
|
||||||
|
Script.createPubKeyScriptPubKey = function(pubKey) {
|
||||||
|
var script = new Script()
|
||||||
|
|
||||||
|
script.writeBytes(pubKey.toBuffer())
|
||||||
|
script.writeOp(opcodes.OP_CHECKSIG)
|
||||||
|
|
||||||
|
return script
|
||||||
|
}
|
||||||
|
|
||||||
// OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
|
// OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
|
||||||
Script.createPubKeyHashScriptPubKey = function(hash) {
|
Script.createPubKeyHashScriptPubKey = function(hash) {
|
||||||
var script = new Script()
|
var script = new Script()
|
||||||
|
@ -309,6 +319,13 @@ Script.createMultisigScriptPubKey = function(m, pubKeys) {
|
||||||
return script
|
return script
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// {signature}
|
||||||
|
Script.createPubKeyScriptSig = function(signature) {
|
||||||
|
var script = new Script()
|
||||||
|
script.writeBytes(signature)
|
||||||
|
return script
|
||||||
|
}
|
||||||
|
|
||||||
// {signature} {pubKey}
|
// {signature} {pubKey}
|
||||||
Script.createPubKeyHashScriptSig = function(signature, pubKey) {
|
Script.createPubKeyHashScriptSig = function(signature, pubKey) {
|
||||||
var script = new Script()
|
var script = new Script()
|
||||||
|
|
8
test/fixtures/script.json
vendored
8
test/fixtures/script.json
vendored
|
@ -1,5 +1,13 @@
|
||||||
{
|
{
|
||||||
"valid": [
|
"valid": [
|
||||||
|
{
|
||||||
|
"description": "pay-to-PubKey",
|
||||||
|
"hex": "21031f1e68f82112b373f0fe980b3a89d212d2b5c01fb51eb25acb8b4c4b4299ce95ac",
|
||||||
|
"type": "pubkey",
|
||||||
|
"hash": "26e645ab170255f2a0a82d29e48f35b14ae7c826",
|
||||||
|
"pubKey": "031f1e68f82112b373f0fe980b3a89d212d2b5c01fb51eb25acb8b4c4b4299ce95",
|
||||||
|
"scriptPubKey": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"description": "P2SH ScriptPubKey",
|
"description": "P2SH ScriptPubKey",
|
||||||
"hex": "a914e8c300c87986efa84c37c0519929019ef86eb5b487",
|
"hex": "a914e8c300c87986efa84c37c0519929019ef86eb5b487",
|
||||||
|
|
|
@ -70,21 +70,34 @@ describe('Script', function() {
|
||||||
|
|
||||||
describe('pay-to-pubKeyHash', function() {
|
describe('pay-to-pubKeyHash', function() {
|
||||||
it('matches the test data', function() {
|
it('matches the test data', function() {
|
||||||
|
// FIXME: bad
|
||||||
|
var f = fixtures.valid[2]
|
||||||
var address = Address.fromBase58Check('19E6FV3m3kEPoJD5Jz6dGKdKwTVvjsWUvu')
|
var address = Address.fromBase58Check('19E6FV3m3kEPoJD5Jz6dGKdKwTVvjsWUvu')
|
||||||
var script = Script.createPubKeyHashScriptPubKey(address.hash)
|
var script = Script.createPubKeyHashScriptPubKey(address.hash)
|
||||||
|
|
||||||
// FIXME: not good TDD
|
assert.equal(script.toHex(), f.hex)
|
||||||
assert.equal(script.toHex(), fixtures.valid[1].hex)
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('pay-to-pubkey', function() {
|
||||||
|
it('matches the test data', function() {
|
||||||
|
// FIXME: bad
|
||||||
|
var f = fixtures.valid[0]
|
||||||
|
var pubKey = ECPubKey.fromHex(f.pubKey)
|
||||||
|
var script = Script.createPubKeyScriptPubKey(pubKey)
|
||||||
|
|
||||||
|
assert.equal(script.toHex(), f.hex)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('pay-to-scriptHash', function() {
|
describe('pay-to-scriptHash', function() {
|
||||||
it('matches the test data', function() {
|
it('matches the test data', function() {
|
||||||
var hash = new Buffer('e8c300c87986efa84c37c0519929019ef86eb5b4', 'hex')
|
// FIXME: bad
|
||||||
var script = Script.createP2SHScriptPubKey(hash)
|
var f = fixtures.valid[1]
|
||||||
|
var address = Address.fromBase58Check('3NukJ6fYZJ5Kk8bPjycAnruZkE5Q7UW7i8')
|
||||||
|
var script = Script.createP2SHScriptPubKey(address.hash)
|
||||||
|
|
||||||
// FIXME: not good TDD
|
assert.equal(script.toHex(), f.hex)
|
||||||
assert.equal(script.toHex(), fixtures.valid[0].hex)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue