tx · 8LX6Z6mcnEsFq8ZpSh2aPhyGDo8NManaFmc6w5146yD5

3N2Q9TfYZcenz5a3on97GLEAasz21EkKMAa:  -0.01400000 Waves

2021.11.17 18:59 [1795250] smart account 3N2Q9TfYZcenz5a3on97GLEAasz21EkKMAa > SELF 0.00000000 Waves

{ "type": 13, "id": "8LX6Z6mcnEsFq8ZpSh2aPhyGDo8NManaFmc6w5146yD5", "fee": 1400000, "feeAssetId": null, "timestamp": 1637164798321, "version": 2, "chainId": 84, "sender": "3N2Q9TfYZcenz5a3on97GLEAasz21EkKMAa", "senderPublicKey": "7xnAFC7PqCyLRjzmjyaTmSK7H1bEBfSx6qnj7JBj6XJe", "proofs": [ "31yeS7xEDmNuGJt9qLHmhPmNTFEVBUL2beyf6WU4RAaX9ckBwzNjpWrcjVfGGu6wA2gvgsZtiBXT5o8rLtKy8gDx" ], "script": "base64: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", "height": 1795250, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AJPffQNZA4DYJk2cX3KHiaZem7wrmy4CVaV1Xwebwtun Next: JDH7UDHE9VE5ZfLegcztk1VU9whE6ec2q6GkZS6aoYzK Diff:
OldNewDifferences
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ownerPublicKey = base58'7xnAFC7PqCyLRjzmjyaTmSK7H1bEBfSx6qnj7JBj6XJe'
5+
6+let pubKeyAlice = base58'GJvQeBDAzLZepewd7B4tjh4xxDTZ3jJjGAgLu61GpiEp'
7+
8+let pubKeyBob = base58'4gZSiHTXLqvVnQHqBYUXzF6WzhsRjKtmrDsE16qzqhwY'
9+
10+let pubKeyCooper = base58'9aM8SJLh6kk8WtQgpXNSsyER2AhHSuTc84bAyuKGcmtR'
511
612 @Callable(i)
713 func purchase () = {
2834
2935
3036 @Verifier(tx)
31-func verify () = match tx {
32- case d: SetScriptTransaction =>
33- sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
34- case d: DataTransaction =>
35- true
36- case _ =>
37- false
38-}
37+func verify () = {
38+ let a = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyAlice))
39+ then true
40+ else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyAlice))
41+ then true
42+ else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyAlice))
43+ then 1
44+ else 0
45+ let b = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyBob))
46+ then true
47+ else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyBob))
48+ then true
49+ else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyBob))
50+ then 1
51+ else 0
52+ let c = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyCooper))
53+ then true
54+ else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyCooper))
55+ then 1
56+ else 0
57+ match tx {
58+ case d: SetScriptTransaction =>
59+ sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
60+ case d: DataTransaction =>
61+ true
62+ case _ =>
63+ (((a + b) + c) >= 2)
64+ }
65+ }
3966
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ownerPublicKey = base58'7xnAFC7PqCyLRjzmjyaTmSK7H1bEBfSx6qnj7JBj6XJe'
5+
6+let pubKeyAlice = base58'GJvQeBDAzLZepewd7B4tjh4xxDTZ3jJjGAgLu61GpiEp'
7+
8+let pubKeyBob = base58'4gZSiHTXLqvVnQHqBYUXzF6WzhsRjKtmrDsE16qzqhwY'
9+
10+let pubKeyCooper = base58'9aM8SJLh6kk8WtQgpXNSsyER2AhHSuTc84bAyuKGcmtR'
511
612 @Callable(i)
713 func purchase () = {
814 let pmt = if ((size(i.payments) == 1))
915 then i.payments[0]
1016 else throw("Attached payment is required")
1117 if (isDefined(pmt.assetId))
1218 then throw("can use WAVES only as the moment")
1319 else {
1420 let customerAddress = toBase58String(i.caller.bytes)
1521 let price = match getInteger(this, "item_A_coupon_price") {
1622 case a: Int =>
1723 a
1824 case _ =>
1925 0
2026 }
2127 if ((price > pmt.amount))
2228 then throw("purchase amoun cannot be less than item price")
2329 else if ((pmt.amount > price))
2430 then throw("purchase amoun cannot be higher than item price")
2531 else [StringEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), IntegerEntry(("price:purchase_item_A_customer_" + customerAddress), price)]
2632 }
2733 }
2834
2935
3036 @Verifier(tx)
31-func verify () = match tx {
32- case d: SetScriptTransaction =>
33- sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
34- case d: DataTransaction =>
35- true
36- case _ =>
37- false
38-}
37+func verify () = {
38+ let a = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyAlice))
39+ then true
40+ else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyAlice))
41+ then true
42+ else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyAlice))
43+ then 1
44+ else 0
45+ let b = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyBob))
46+ then true
47+ else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyBob))
48+ then true
49+ else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyBob))
50+ then 1
51+ else 0
52+ let c = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyCooper))
53+ then true
54+ else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyCooper))
55+ then 1
56+ else 0
57+ match tx {
58+ case d: SetScriptTransaction =>
59+ sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
60+ case d: DataTransaction =>
61+ true
62+ case _ =>
63+ (((a + b) + c) >= 2)
64+ }
65+ }
3966

github/deemru/w8io/169f3d6 
55.18 ms