21 lines
584 B
TypeScript
21 lines
584 B
TypeScript
// {signature} {pubKey}
|
|
|
|
import { Stack } from '../../payments';
|
|
import * as bscript from '../../script';
|
|
|
|
function isCompressedCanonicalPubKey(pubKey: Buffer): boolean {
|
|
return bscript.isCanonicalPubKey(pubKey) && pubKey.length === 33;
|
|
}
|
|
|
|
export function check(script: Buffer | Stack): boolean {
|
|
const chunks = bscript.decompile(script) as Stack;
|
|
|
|
return (
|
|
chunks.length === 2 &&
|
|
bscript.isCanonicalScriptSignature(chunks[0] as Buffer) &&
|
|
isCompressedCanonicalPubKey(chunks[1] as Buffer)
|
|
);
|
|
}
|
|
check.toJSON = (): string => {
|
|
return 'witnessPubKeyHash input';
|
|
};
|