add witnessPubKeyHash compressed policy
This commit is contained in:
parent
5057d8d1ba
commit
3ffac6cd39
2 changed files with 43 additions and 7 deletions
|
@ -1,7 +1,6 @@
|
||||||
// {signature} {pubKey}
|
// {signature} {pubKey}
|
||||||
|
|
||||||
var bscript = require('../../script')
|
var bscript = require('../../script')
|
||||||
var types = require('../../types')
|
|
||||||
var typeforce = require('typeforce')
|
var typeforce = require('typeforce')
|
||||||
|
|
||||||
function check (script) {
|
function check (script) {
|
||||||
|
@ -15,9 +14,11 @@ check.toJSON = function () { return 'pubKeyHash input' }
|
||||||
|
|
||||||
function encodeStack (signature, pubKey) {
|
function encodeStack (signature, pubKey) {
|
||||||
typeforce({
|
typeforce({
|
||||||
signature: types.Buffer, pubKey: types.Buffer
|
signature: bscript.isCanonicalSignature,
|
||||||
|
pubKey: bscript.isCanonicalPubKey
|
||||||
}, {
|
}, {
|
||||||
signature: signature, pubKey: pubKey
|
signature: signature,
|
||||||
|
pubKey: pubKey
|
||||||
})
|
})
|
||||||
|
|
||||||
return [signature, pubKey]
|
return [signature, pubKey]
|
||||||
|
|
|
@ -1,9 +1,44 @@
|
||||||
// {signature} {pubKey}
|
// {signature} {pubKey}
|
||||||
|
|
||||||
var pkh = require('../pubkeyhash/input')
|
var bscript = require('../../script')
|
||||||
|
var typeforce = require('typeforce')
|
||||||
|
|
||||||
|
function isCompressedCanonicalPubKey (pubKey) {
|
||||||
|
return bscript.isCanonicalPubKey(pubKey) && pubKey.length === 33
|
||||||
|
}
|
||||||
|
|
||||||
|
function check (script) {
|
||||||
|
var chunks = bscript.decompile(script)
|
||||||
|
|
||||||
|
return chunks.length === 2 &&
|
||||||
|
bscript.isCanonicalSignature(chunks[0]) &&
|
||||||
|
isCompressedCanonicalPubKey(chunks[1])
|
||||||
|
}
|
||||||
|
check.toJSON = function () { return 'witnessPubKeyHash input' }
|
||||||
|
|
||||||
|
function encodeStack (signature, pubKey) {
|
||||||
|
typeforce({
|
||||||
|
signature: bscript.isCanonicalSignature,
|
||||||
|
pubKey: isCompressedCanonicalPubKey
|
||||||
|
}, {
|
||||||
|
signature: signature,
|
||||||
|
pubKey: pubKey
|
||||||
|
})
|
||||||
|
|
||||||
|
return [signature, pubKey]
|
||||||
|
}
|
||||||
|
|
||||||
|
function decodeStack (stack) {
|
||||||
|
typeforce(check, stack)
|
||||||
|
|
||||||
|
return {
|
||||||
|
signature: stack[0],
|
||||||
|
pubKey: stack[1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
check: pkh.check,
|
check: check,
|
||||||
decodeStack: pkh.decodeStack,
|
decodeStack: decodeStack,
|
||||||
encodeStack: pkh.encodeStack
|
encodeStack: encodeStack
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue