tx · DFYHaEJBitYpWA5xzEsX8CanzEACaw2t63Xp1fMLCBtg

3MpniGh4Ab64nzX6AXtoL5tzeC5EwSyHuaq:  -0.01400000 Waves

2022.01.11 02:08 [1873482] smart account 3MpniGh4Ab64nzX6AXtoL5tzeC5EwSyHuaq > SELF 0.00000000 Waves

{ "type": 13, "id": "DFYHaEJBitYpWA5xzEsX8CanzEACaw2t63Xp1fMLCBtg", "fee": 1400000, "feeAssetId": null, "timestamp": 1641856128256, "version": 2, "chainId": 84, "sender": "3MpniGh4Ab64nzX6AXtoL5tzeC5EwSyHuaq", "senderPublicKey": "HxF3FdYr3sD3ju9Y1wL4d5kmRtKJGhgSSYQkCyo78xGn", "proofs": [ "37KBWMC6xPD1tmej9Uh3ghXHFYyZYq9TuQaKdRHr37Nd2KjfL1N9STYwmRBZ3vLKkvuGzfeQrzYtutnD1cH5xaN5" ], "script": "base64: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", "height": 1873482, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FBqnYqzcxC2mDudFec3gJsqkbRatDSPat3S3EjNoDiTz Next: none Diff:
OldNewDifferences
44 let accountPubKey = base58'HxF3FdYr3sD3ju9Y1wL4d5kmRtKJGhgSSYQkCyo78xGn'
55
66 @Callable(i)
7-func purchase (name) = {
8- let payment = i.payments[0]
9- if (isDefined(name))
10- then if (isDefined(payment.assetId))
11- then throw("Only should pay in waves")
12- else {
13- let customerAddr = toBase58String(i.caller.bytes)
14- let price = match getInteger(this, (("item_" + name) + "_coupon_price")) {
15- case t: Int =>
16- t
17- case _ =>
18- 0
19- }
20- if ((price != 0))
21- then if ((payment.amount > price))
22- then throw(("payment cant be higher than price" + toString(price)))
23- else if ((price > payment.amount))
24- then throw(("payment cant be less than price: " + toString(price)))
25- else [StringEntry(((("status:purchase_item_" + name) + "_customer_") + customerAddr), "confirmed"), IntegerEntry(((("price:purchase_item_" + name) + "_customer_") + customerAddr), price)]
26- else throw("Please enter valid coupon name: A or B")
27- }
28- else throw("Coupon name should be present")
29- }
7+func purchase (name) = if ((size(i.payments) > 0))
8+ then {
9+ let payment = i.payments[0]
10+ if (isDefined(name))
11+ then if (isDefined(payment.assetId))
12+ then throw("Only should pay in waves")
13+ else {
14+ let customerAddr = toBase58String(i.caller.bytes)
15+ let price = match getInteger(this, (("item_" + name) + "_coupon_price")) {
16+ case t: Int =>
17+ t
18+ case _ =>
19+ 0
20+ }
21+ if ((price != 0))
22+ then if ((payment.amount > price))
23+ then throw(("payment cant be higher than price" + toString(price)))
24+ else if ((price > payment.amount))
25+ then throw(("payment cant be less than price: " + toString(price)))
26+ else [StringEntry(((("status:purchase_item_" + name) + "_customer_") + customerAddr), "confirmed"), IntegerEntry(((("price:purchase_item_" + name) + "_customer_") + customerAddr), price)]
27+ else throw("Please enter valid coupon name: A or B")
28+ }
29+ else throw("Coupon name should be present")
30+ }
31+ else throw("Please attach payment")
3032
3133
3234
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let accountPubKey = base58'HxF3FdYr3sD3ju9Y1wL4d5kmRtKJGhgSSYQkCyo78xGn'
55
66 @Callable(i)
7-func purchase (name) = {
8- let payment = i.payments[0]
9- if (isDefined(name))
10- then if (isDefined(payment.assetId))
11- then throw("Only should pay in waves")
12- else {
13- let customerAddr = toBase58String(i.caller.bytes)
14- let price = match getInteger(this, (("item_" + name) + "_coupon_price")) {
15- case t: Int =>
16- t
17- case _ =>
18- 0
19- }
20- if ((price != 0))
21- then if ((payment.amount > price))
22- then throw(("payment cant be higher than price" + toString(price)))
23- else if ((price > payment.amount))
24- then throw(("payment cant be less than price: " + toString(price)))
25- else [StringEntry(((("status:purchase_item_" + name) + "_customer_") + customerAddr), "confirmed"), IntegerEntry(((("price:purchase_item_" + name) + "_customer_") + customerAddr), price)]
26- else throw("Please enter valid coupon name: A or B")
27- }
28- else throw("Coupon name should be present")
29- }
7+func purchase (name) = if ((size(i.payments) > 0))
8+ then {
9+ let payment = i.payments[0]
10+ if (isDefined(name))
11+ then if (isDefined(payment.assetId))
12+ then throw("Only should pay in waves")
13+ else {
14+ let customerAddr = toBase58String(i.caller.bytes)
15+ let price = match getInteger(this, (("item_" + name) + "_coupon_price")) {
16+ case t: Int =>
17+ t
18+ case _ =>
19+ 0
20+ }
21+ if ((price != 0))
22+ then if ((payment.amount > price))
23+ then throw(("payment cant be higher than price" + toString(price)))
24+ else if ((price > payment.amount))
25+ then throw(("payment cant be less than price: " + toString(price)))
26+ else [StringEntry(((("status:purchase_item_" + name) + "_customer_") + customerAddr), "confirmed"), IntegerEntry(((("price:purchase_item_" + name) + "_customer_") + customerAddr), price)]
27+ else throw("Please enter valid coupon name: A or B")
28+ }
29+ else throw("Coupon name should be present")
30+ }
31+ else throw("Please attach payment")
3032
3133
3234
3335 @Callable(i)
3436 func setPrices () = if ((i.callerPublicKey == accountPubKey))
3537 then [IntegerEntry("item_A_coupon_price", 30000000), IntegerEntry("item_B_coupon_price", 40000000)]
3638 else throw("Only owner can set prices")
3739
3840
3941
4042 @Callable(i)
4143 func deleteEntry (key) = if ((i.callerPublicKey == accountPubKey))
4244 then [DeleteEntry(key)]
4345 else throw("Only owner can delete entries")
4446
4547
4648 @Verifier(tx)
4749 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
4850

github/deemru/w8io/169f3d6 
24.24 ms