Add clause guard to IR and use it for complex clauses
This commit is contained in:
@@ -47,12 +47,7 @@ pub fn who(a: ByteArray) -> ByteArray {
|
||||
}
|
||||
|
||||
pub type Datum {
|
||||
Offer {
|
||||
price: Int,
|
||||
asset_class: ByteArray,
|
||||
thing: Int,
|
||||
other_thing: Redeemer,
|
||||
}
|
||||
Offer { prices: List(Int), asset_class: ByteArray, other_thing: Redeemer }
|
||||
Sell
|
||||
Hold(Int)
|
||||
}
|
||||
@@ -60,16 +55,29 @@ pub type Datum {
|
||||
pub fn spend(datum: Datum, _rdmr: Nil, _ctx: Nil) -> Bool {
|
||||
when datum is {
|
||||
Sell -> sample.eqIntPlusOne(sample.incrementor(0, 8), 9)
|
||||
Offer {
|
||||
prices: p,
|
||||
asset_class: ac,
|
||||
other_thing: Redeemer {
|
||||
other_thing: Redeemer { signer: nested_signer, amount, .. },
|
||||
..
|
||||
},
|
||||
} -> True
|
||||
_ -> False
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// let Redeemer{ signer, amount: amount2, other_thing: Redeemer{ signer: nested_signer, ..}} = datum
|
||||
// True
|
||||
// when datum is {
|
||||
// Offer{ price: p, asset_class: ac, thing: thing, other_thing: Redeemer{ other_thing: Redeemer{ signer: nested_signer, amount: amount, ..}, .. } } -> True
|
||||
// _ -> False
|
||||
// }
|
||||
}
|
||||
|
||||
// let Redeemer{ signer, amount: amount2, other_thing: Redeemer{ signer: nested_signer, ..}} = datum
|
||||
// True
|
||||
// when datum is {
|
||||
// Offer{ price: p, asset_class: ac, thing: thing, other_thing: Redeemer{ other_thing: Redeemer{ signer: nested_signer, amount: amount, ..}, .. } } -> True
|
||||
// _ -> False
|
||||
// }
|
||||
// Offer{ prices, other_thing: thing, .. } -> {
|
||||
// when prices is {
|
||||
// [] -> True
|
||||
// [1] -> False
|
||||
// [a, b] -> True
|
||||
// [a, b, ..c] -> False
|
||||
// }
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user