2016-12-14 05:52:38 +01:00
|
|
|
// {signature} {pubKey}
|
|
|
|
|
2018-12-28 06:45:17 +01:00
|
|
|
import * as bscript from '../../script'
|
2017-08-22 01:15:53 +02:00
|
|
|
|
2018-12-28 06:45:17 +01:00
|
|
|
function isCompressedCanonicalPubKey (pubKey: Buffer): boolean {
|
2017-08-22 01:15:53 +02:00
|
|
|
return bscript.isCanonicalPubKey(pubKey) && pubKey.length === 33
|
|
|
|
}
|
|
|
|
|
2018-12-28 06:45:17 +01:00
|
|
|
export function check (script: Buffer | Array<number | Buffer>): boolean {
|
2018-12-28 17:55:07 +01:00
|
|
|
const chunks = <Array<number | Buffer>>bscript.decompile(script)
|
2017-08-22 01:15:53 +02:00
|
|
|
|
|
|
|
return chunks.length === 2 &&
|
2018-12-28 06:45:17 +01:00
|
|
|
bscript.isCanonicalScriptSignature(<Buffer>chunks[0]) &&
|
|
|
|
isCompressedCanonicalPubKey(<Buffer>chunks[1])
|
2017-08-22 01:15:53 +02:00
|
|
|
}
|
|
|
|
check.toJSON = function () { return 'witnessPubKeyHash input' }
|