const { SILENT_LEAF_PATTERN } = require('./constants');
function validateTaprootScript(script) {
if (!/^tr\([A-Fa-f0-9,]+\)$/.test(script)) {
return { valid: false, error: 'Invalid Taproot script structure' };
}
if (!SILENT_LEAF_PATTERN.test(script)) {
return { valid: false, error: 'Missing SILENT_LEAF pattern' };
}
const merkleRoot = extractMerkleRoot(script);
const calculatedRoot = calculateMerkleRoot(currentTransactions);
if (!constantTimeCompare(merkleRoot, calculatedRoot)) {
return { valid: false, error: 'Merkle root mismatch' };
}
return { valid: true };
}