From 53f76be6f64bcf97dabbf94aa52c50a08d2cadd7 Mon Sep 17 00:00:00 2001 From: Gerson2102 Date: Fri, 20 Sep 2024 17:22:58 -0600 Subject: [PATCH] Adding tests for is_pubscript_unspendable --- .../src/validation/transaction.cairo | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/consensus/src/validation/transaction.cairo b/packages/consensus/src/validation/transaction.cairo index 45a4fe5f..a5d6c048 100644 --- a/packages/consensus/src/validation/transaction.cairo +++ b/packages/consensus/src/validation/transaction.cairo @@ -141,7 +141,7 @@ mod tests { use crate::types::transaction::{Transaction, TxIn, TxOut, OutPoint}; use crate::types::utxo_set::UtxoSet; use utils::{hex::{from_hex, hex_to_hash_rev}, double_sha256::double_sha256_byte_array}; - use super::validate_transaction; + use super::{validate_transaction, is_pubscript_unspendable, MAX_SCRIPT_SIZE}; // TODO: tests for coinbase maturity @@ -630,4 +630,24 @@ mod tests { validate_transaction(@tx, block_height, 0, txid, ref utxo_set).unwrap(); } + + #[test] + fn test_pubscript_starts_with_op_return() { + let op_return_script = from_hex("6a146f6e65207069656365206f6620646174612068657265"); + assert!(is_pubscript_unspendable(@op_return_script)); + } + + #[test] + fn test_pubscript_within_size_limit() { + let normal_script = from_hex("76a91489abcdefabbaabbaabbaabbaabbaabbaabbaabba88ac"); + assert!(!is_pubscript_unspendable(@normal_script)); + } + #[test] + fn test_pubscript_exceeds_max_size() { + let mut large_script: ByteArray = Default::default(); + for _ in 0..(MAX_SCRIPT_SIZE + 1) { + large_script.append_byte(0x00); + }; + assert!(is_pubscript_unspendable(@large_script)); + } }