tx · FeoK6j3AbyhjTQX1Qax8CkyRK3G7tb5p5W6E63hSaJK1

3Mug9m592faZHrJqG2c2q1EGkZ3MEeX8xB2:  -0.05000000 Waves

2019.08.29 14:19 [652432] smart account 3Mug9m592faZHrJqG2c2q1EGkZ3MEeX8xB2 > SELF 0.00000000 Waves

{ "type": 13, "id": "FeoK6j3AbyhjTQX1Qax8CkyRK3G7tb5p5W6E63hSaJK1", "fee": 5000000, "feeAssetId": null, "timestamp": 1567077527072, "version": 1, "sender": "3Mug9m592faZHrJqG2c2q1EGkZ3MEeX8xB2", "senderPublicKey": "HwcKpWc8w2qMgyLzmyTm6MDfsuVLCMS6ULASN6dWnwdk", "proofs": [ "5GktLzWq8gn9K3h5n8Hy3XQ2pfvnfJM5fojBDexZkx7HfN1iR817qqqAHYNyxhse9S6oom64ySwLJFug6bUV2u9a" ], "script": "base64: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", "chainId": 84, "height": 652432, "spentComplexity": 0 } View: original | compacted Prev: 8udspdiQrRZMeGGcZv9avvqPfxFXjvby8n43M4vGyc6t Next: afYLkD5ZpcKC7JVstpu11g8caJNLrDSMR1KP5CzZ7vY Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let alicePublicKey = base58'6E6ogeeCpxu9SkEFhggJqUD7fCCQrW8rmAaCLNKzNiXK'
5+
6+let bobPublicKey = base58'GNuHLNfdrBQFcKg3AwDj1fwFdrtuxDna2T8EZCxJA2Z6'
7+
8+let cooperPublicKey = base58'HwcKpWc8w2qMgyLzmyTm6MDfsuVLCMS6ULASN6dWnwdk'
49
510
6-@Callable(i)
7-func purchase () = {
8- let pmt = extract(i.payment)
9- if (isDefined(pmt.assetId))
10- then throw("can use Waves only at the moment")
11- else {
12- let customerAddress = toBase58String(i.caller.bytes)
13- let price = match getInteger(this, "item_A_coupon_price") {
14- case a: Int =>
15- a
16- case _ =>
17- 0
18- }
19- if ((price > pmt.amount))
20- then throw("purchase amount connot be less than item price")
21- else if ((pmt.amount > price))
22- then throw("purchase amount cannot be higher than item price")
23- else WriteSet([DataEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), DataEntry(("price:purchase_item_A_customer_" + customerAddress), price)])
24- }
11+@Verifier(tx)
12+func verify () = {
13+ let alice1 = sigVerify(tx.bodyBytes, tx.proofs[0], alicePublicKey)
14+ let alice2 = sigVerify(tx.bodyBytes, tx.proofs[1], alicePublicKey)
15+ let alice3 = sigVerify(tx.bodyBytes, tx.proofs[2], alicePublicKey)
16+ let bob1 = sigVerify(tx.bodyBytes, tx.proofs[0], bobPublicKey)
17+ let bob2 = sigVerify(tx.bodyBytes, tx.proofs[1], bobPublicKey)
18+ let bob3 = sigVerify(tx.bodyBytes, tx.proofs[2], bobPublicKey)
19+ let cooper1 = sigVerify(tx.bodyBytes, tx.proofs[0], cooperPublicKey)
20+ let cooper2 = sigVerify(tx.bodyBytes, tx.proofs[1], cooperPublicKey)
21+ let cooper3 = sigVerify(tx.bodyBytes, tx.proofs[2], cooperPublicKey)
22+ let aliceAndBob = if (if (if (if (if (if (alice1)
23+ then bob2
24+ else false)
25+ then true
26+ else if (alice1)
27+ then bob3
28+ else false)
29+ then true
30+ else if (alice2)
31+ then bob1
32+ else false)
33+ then true
34+ else if (alice2)
35+ then bob3
36+ else false)
37+ then true
38+ else if (alice3)
39+ then bob1
40+ else false)
41+ then true
42+ else if (alice3)
43+ then bob2
44+ else false
45+ let aliceAndCooper = if (if (if (if (if (if (alice1)
46+ then cooper2
47+ else false)
48+ then true
49+ else if (alice1)
50+ then cooper3
51+ else false)
52+ then true
53+ else if (alice2)
54+ then cooper1
55+ else false)
56+ then true
57+ else if (alice2)
58+ then cooper3
59+ else false)
60+ then true
61+ else if (alice3)
62+ then cooper1
63+ else false)
64+ then true
65+ else if (alice3)
66+ then cooper2
67+ else false
68+ let bobeAndCooper = if (if (if (if (if (if (cooper1)
69+ then bob2
70+ else false)
71+ then true
72+ else if (cooper1)
73+ then bob3
74+ else false)
75+ then true
76+ else if (cooper2)
77+ then bob1
78+ else false)
79+ then true
80+ else if (cooper2)
81+ then bob3
82+ else false)
83+ then true
84+ else if (cooper3)
85+ then bob1
86+ else false)
87+ then true
88+ else if (cooper3)
89+ then bob2
90+ else false
91+ match tx {
92+ case _ =>
93+ if (if (aliceAndBob)
94+ then true
95+ else aliceAndCooper)
96+ then true
97+ else bobeAndCooper
2598 }
26-
99+ }
27100

github/deemru/w8io/3ef1775 
45.38 ms