1 | | - | {-# STDLIB_VERSION 6 #-} |
---|
2 | | - | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | | - | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | func a (b) = ("leaseAmt_" + b) |
---|
5 | | - | |
---|
6 | | - | |
---|
7 | | - | @Callable(c) |
---|
8 | | - | func reLease (d) = { |
---|
9 | | - | let b = toString(c.caller) |
---|
10 | | - | let e = if ((size(c.payments) == 0)) |
---|
11 | | - | then 0 |
---|
12 | | - | else if (if ((size(c.payments) == 1)) |
---|
13 | | - | then (c.payments[0].assetId == unit) |
---|
14 | | - | else false) |
---|
15 | | - | then c.payments[0].amount |
---|
16 | | - | else throw("Wrong payment") |
---|
17 | | - | let f = valueOrElse(getInteger(a(b)), 0) |
---|
18 | | - | let g = valueOrElse(getInteger("totalLeaseAmt"), 0) |
---|
19 | | - | let h = if ((e > 0)) |
---|
20 | | - | then (f + e) |
---|
21 | | - | else min([f, d]) |
---|
22 | | - | let i = (h - f) |
---|
23 | | - | let j = Lease(addressFromStringValue("3PnodeAddressHere"), (g + i)) |
---|
24 | | - | let k = getBinary("leaseId") |
---|
25 | | - | if (isDefined(k)) |
---|
26 | | - | then [LeaseCancel(value(k))] |
---|
27 | | - | else (nil ++ (if ((0 > i)) |
---|
28 | | - | then [ScriptTransfer(c.caller, -(i), unit)] |
---|
29 | | - | else (nil ++ [j, BinaryEntry("leaseId", calculateLeaseId(j)), IntegerEntry("totalLeaseAmt", (g + i)), IntegerEntry(a(b), h)]))) |
---|
30 | | - | } |
---|
31 | | - | |
---|
32 | | - | |
---|
33 | | - | @Verifier(l) |
---|
34 | | - | func m () = { |
---|
35 | | - | let n = l |
---|
36 | | - | sigVerify(l.bodyBytes, l.proofs[0], l.senderPublicKey) |
---|
37 | | - | } |
---|
38 | | - | |
---|
| 1 | + | {-# STDLIB_VERSION 2 #-} |
---|
| 2 | + | {-# CONTENT_TYPE EXPRESSION #-} |
---|
| 3 | + | let alicePubKey = base58'AgpdBVaBKiNq1p9j1MEc5K1J7gtdFtHPNMjkfFL4mfi2' |
---|
| 4 | + | let bobPubKey = base58'AgpdBVaBKiNq1p9j1MEc5K1J7gtdFtHPNMjkfFL4mfi2' |
---|
| 5 | + | let aliceSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], alicePubKey)) |
---|
| 6 | + | then 1 |
---|
| 7 | + | else 0 |
---|
| 8 | + | let bobSigned = if (sigVerify(tx.bodyBytes, tx.proofs[1], bobPubKey)) |
---|
| 9 | + | then 1 |
---|
| 10 | + | else 0 |
---|
| 11 | + | ((aliceSigned + bobSigned) >= 1) |
---|