<oembed><type>rich</type><version>1.0</version><author_name>npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h</author_name><author_url>https://nostr.ae/npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-04-20&#xA;📝 Original message:On Wed, Apr 20, 2022 at 08:05:36PM +0300, Nadav Ivgi via bitcoin-dev wrote:&#xA;&gt; &gt; I didn&#39;t think DROP/1 is necessary here? Doesn&#39;t leaving the 32 byte hash&#xA;&gt; on the stack evaluate as true?&#xA;&gt; Not with Taproot&#39;s CLEANSTACK rule. &#xA;&#xA;The CLEANSTACK rule is the same for segwit and tapscript though? &#xA;&#xA;For p2wsh/BIP 141 it&#39;s &#34;The script must not fail, and result in exactly&#xA;a single TRUE on the stack.&#34; and for tapscript/BIP 342, it&#39;s &#34;If the&#xA;execution results in anything but exactly one element on the stack which&#xA;evaluates to true with CastToBool(), fail.&#34;&#xA;&#xA;CastToBool/TRUE is anything that&#39;s not false, false is zero (ie, any&#xA;string of 0x00 bytes) or negative zero (a string of 0x00 bytes but with&#xA;the high byte being 0x80).&#xA;&#xA;Taproot has the MINIMALIF rule that means you have to use exactly 1 or 0&#xA;as the input to IF, but I don&#39;t think that&#39;s relevant for CTV.&#xA;&#xA;Cheers,&#xA;aj</html></oembed>