Yes, although it's a functionality of Bitcoin Script generally, not OP_CSV in particular. Bitcoin Script allows you to use nested IF statements, and enforce whatever different conditions you want in each branch.Here's your contract in Ivy:contract MultiCSV(bob: PublicKey,carol: PublicKey,bobDelay: Duration,carolDelay: Duration,val: Value) {clause bobSpend(sig: Signature) {verify checkSig(bob, sig)verify older(bobDelay)unlock val}clause carolSpend(sig: Signature) {verify checkSig(carol, sig)verify older(carolDelay)unlock val}clause bothSpend(bobSig: Signature, carolSig: Signature) {verify checkMultiSig([bob, carol], [bobSig, carolSig])unlock val}}It compiles to the following Bitcoin Script:PUSH(carolKey) PUSH(bobKey) 2 PICK 2 EQUAL IF ROT DROP 0 4 ROLL 4 ROLL 2 2ROT 2 CHECKMULTISIG ELSE ROT IF DROP CHECKSIGVERIFY PUSH(carolDelay) CHECKSEQUENCEVERIFY DROP 1 ELSE NIP CHECKSIGVERIFY PUSH(bobDelay) CHECKSEQUENCEVERIFY DROP 1 ENDIF ENDIFOn Tue, Feb 20, 2018 at 5:32 PM Praveen Baratam via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org > wrote:Hello Everybody,I need a little clarity about how OP_CHECKSEQUENCEVERIFY (CSV) works in transactions.Can I use multiple CSV end points as depicted in the figure below? I basically want to allow different conditions at different delays.I just want to know if OP_CHECKSEQUENCEVERIFY can be used to achieve the above.Thank you.Praveenᐧ_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin- dev