tx · CufbSjViE4J9knqYH1nCYbgRgp6znuSrQ8JnGJxQd1Ya

3N2Q9TfYZcenz5a3on97GLEAasz21EkKMAa:  -0.01400000 Waves

2021.11.17 19:25 [1795275] smart account 3N2Q9TfYZcenz5a3on97GLEAasz21EkKMAa > SELF 0.00000000 Waves

{ "type": 13, "id": "CufbSjViE4J9knqYH1nCYbgRgp6znuSrQ8JnGJxQd1Ya", "fee": 1400000, "feeAssetId": null, "timestamp": 1637166356379, "version": 2, "chainId": 84, "sender": "3N2Q9TfYZcenz5a3on97GLEAasz21EkKMAa", "senderPublicKey": "7xnAFC7PqCyLRjzmjyaTmSK7H1bEBfSx6qnj7JBj6XJe", "proofs": [ "4Y1oTWMRukBuQtr8heCg6mNrLGBkPkGjicGzF8rEWkxoqX1QzVFy58tvf8LLtmpeDEXjd4PXjXT27QDDiuydddqx" ], "script": "base64:AAIDAAAAAAAAAAIIAQAAAAQAAAAADm93bmVyUHVibGljS2V5AQAAACDjdpDZfYgrrg/nUfr50oct2OmioeaKZBuTxnblcq31bQAAAAALcHViS2V5QWxpY2UBAAAAION2kNl9iCuuD+dR+vnShy3Y6aKh5opkG5PGduVyrfVtAAAAAAlwdWJLZXlCb2IBAAAAIDa1ZWaZ73UPtag5GYsmJe7WHHxEAiUv7UsND2rGs9BLAAAAAAxwdWJLZXlDb29wZXIBAAAAIH9oa9B9vtha1Ue3FdhREE8cTHF3Oh6dSIGmqljCxUx+AAAAAAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAC3NpZ25lZEFsaWNlAwMDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAALcHViS2V5QWxpY2UGCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAALcHViS2V5QWxpY2UGCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAALcHViS2V5QWxpY2UAAAAAAAAAAAEAAAAAAAAAAAAEAAAACXNpZ25lZEJvYgMDAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAACXB1YktleUJvYgYJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAlwdWJLZXlCb2IGCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAJcHViS2V5Qm9iAAAAAAAAAAABAAAAAAAAAAAABAAAAAxzaWduZWRDb29wZXIDAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAADHB1YktleUNvb3BlcgYJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAxwdWJLZXlDb29wZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABRTZXRTY3JpcHRUcmFuc2FjdGlvbgQAAAABZAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAADm93bmVyUHVibGljS2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAAWQFAAAAByRtYXRjaDAGCQAAZwAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAtzaWduZWRBbGljZQUAAAAJc2lnbmVkQm9iBQAAAAxzaWduZWRDb29wZXIAAAAAAAAAAALhtNA0", "height": 1795275, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: B3ZyXeDYXmfQdoAPiHgyRMe3QeL5xfCpo14aTCNEcA9u Next: none Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let ownerPublicKey = base58'7xnAFC7PqCyLRjzmjyaTmSK7H1bEBfSx6qnj7JBj6XJe'
4+let ownerPublicKey = base58'GJvQeBDAzLZepewd7B4tjh4xxDTZ3jJjGAgLu61GpiEp'
55
66 let pubKeyAlice = base58'GJvQeBDAzLZepewd7B4tjh4xxDTZ3jJjGAgLu61GpiEp'
77
88 let pubKeyBob = base58'4gZSiHTXLqvVnQHqBYUXzF6WzhsRjKtmrDsE16qzqhwY'
99
1010 let pubKeyCooper = base58'9aM8SJLh6kk8WtQgpXNSsyER2AhHSuTc84bAyuKGcmtR'
11-
12-@Callable(i)
13-func purchase () = {
14- let pmt = if ((size(i.payments) == 1))
15- then i.payments[0]
16- else throw("Attached payment is required")
17- if (isDefined(pmt.assetId))
18- then throw("can use WAVES only as the moment")
19- else {
20- let customerAddress = toBase58String(i.caller.bytes)
21- let price = match getInteger(this, "item_A_coupon_price") {
22- case a: Int =>
23- a
24- case _ =>
25- 0
26- }
27- if ((price > pmt.amount))
28- then throw("purchase amoun cannot be less than item price")
29- else if ((pmt.amount > price))
30- then throw("purchase amoun cannot be higher than item price")
31- else [StringEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), IntegerEntry(("price:purchase_item_A_customer_" + customerAddress), price)]
32- }
33- }
3411
3512
3613 @Verifier(tx)
4926 else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyBob))
5027 then 1
5128 else 0
52- let signedCooper = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey))
29+ let signedCooper = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyCooper))
5330 then true
54- else sigVerify(tx.bodyBytes, tx.proofs[1], ownerPublicKey))
31+ else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyCooper))
5532 then 1
5633 else 0
5734 match tx {
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let ownerPublicKey = base58'7xnAFC7PqCyLRjzmjyaTmSK7H1bEBfSx6qnj7JBj6XJe'
4+let ownerPublicKey = base58'GJvQeBDAzLZepewd7B4tjh4xxDTZ3jJjGAgLu61GpiEp'
55
66 let pubKeyAlice = base58'GJvQeBDAzLZepewd7B4tjh4xxDTZ3jJjGAgLu61GpiEp'
77
88 let pubKeyBob = base58'4gZSiHTXLqvVnQHqBYUXzF6WzhsRjKtmrDsE16qzqhwY'
99
1010 let pubKeyCooper = base58'9aM8SJLh6kk8WtQgpXNSsyER2AhHSuTc84bAyuKGcmtR'
11-
12-@Callable(i)
13-func purchase () = {
14- let pmt = if ((size(i.payments) == 1))
15- then i.payments[0]
16- else throw("Attached payment is required")
17- if (isDefined(pmt.assetId))
18- then throw("can use WAVES only as the moment")
19- else {
20- let customerAddress = toBase58String(i.caller.bytes)
21- let price = match getInteger(this, "item_A_coupon_price") {
22- case a: Int =>
23- a
24- case _ =>
25- 0
26- }
27- if ((price > pmt.amount))
28- then throw("purchase amoun cannot be less than item price")
29- else if ((pmt.amount > price))
30- then throw("purchase amoun cannot be higher than item price")
31- else [StringEntry(("status:purchase_item_A_customer_" + customerAddress), "confirmed"), IntegerEntry(("price:purchase_item_A_customer_" + customerAddress), price)]
32- }
33- }
3411
3512
3613 @Verifier(tx)
3714 func verify () = {
3815 let signedAlice = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyAlice))
3916 then true
4017 else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyAlice))
4118 then true
4219 else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyAlice))
4320 then 1
4421 else 0
4522 let signedBob = if (if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyBob))
4623 then true
4724 else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyBob))
4825 then true
4926 else sigVerify(tx.bodyBytes, tx.proofs[2], pubKeyBob))
5027 then 1
5128 else 0
52- let signedCooper = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey))
29+ let signedCooper = if (if (sigVerify(tx.bodyBytes, tx.proofs[0], pubKeyCooper))
5330 then true
54- else sigVerify(tx.bodyBytes, tx.proofs[1], ownerPublicKey))
31+ else sigVerify(tx.bodyBytes, tx.proofs[1], pubKeyCooper))
5532 then 1
5633 else 0
5734 match tx {
5835 case d: SetScriptTransaction =>
5936 sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey)
6037 case d: DataTransaction =>
6138 true
6239 case _ =>
6340 (((signedAlice + signedBob) + signedCooper) >= 2)
6441 }
6542 }
6643

github/deemru/w8io/169f3d6 
470.27 ms