tx · 7juMp9cxW3aQCfDpbr6GQUTuCUJ8wmLJRu8PZSHX7aA1

3MsqcsQSU3FeyxcMjrRQHcM8pTGrHu8yyWX:  -0.01600000 Waves

2019.09.07 23:29 [666154] smart account 3MsqcsQSU3FeyxcMjrRQHcM8pTGrHu8yyWX > SELF 0.00000000 Waves

{ "type": 13, "id": "7juMp9cxW3aQCfDpbr6GQUTuCUJ8wmLJRu8PZSHX7aA1", "fee": 1600000, "feeAssetId": null, "timestamp": 1567887961405, "version": 1, "sender": "3MsqcsQSU3FeyxcMjrRQHcM8pTGrHu8yyWX", "senderPublicKey": "D1oc84fv4treBFDLvPS9vQdrs7A9HwTHxaeK9C7nHRTH", "proofs": [ "3VPEFM2qmAvc6fDTNUK9MToLzLb5VHSvksBkczFKwVCv1dQsnTWXuoKc1r9j6uAtzkx1kim68nzYvsxy6RMYDb58" ], "script": "base64:AAIDAAAAAAAAAAAAAAAAAAAAAgAAAAFpAQAAAAtjcmVhdGVPcmRlcgAAAAEAAAAFcHJpY2UEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkCQAAAgAAAAECAAAAIllvdSBuZWVkIHRvIHVzZSB0b2tlbklkLCBub3Qgd2F2ZXMEAAAACmN1cnJlbnRLZXkJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAHYXNzZXRJZAkAAlgAAAABCQEAAAAHZXh0cmFjdAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAAHdW5pcUtleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5AgAAAAFfBQAAAAdhc3NldElkAgAAAAFfCQABpAAAAAEFAAAABmhlaWdodAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAxhc3NldEFtb3VudF8FAAAAB3VuaXFLZXkIBQAAAANwbXQAAAAGYW1vdW50CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAC2Fzc2V0UHJpY2VfBQAAAAd1bmlxS2V5BQAAAAVwcmljZQUAAAADbmlsAAAAAWkBAAAACWJ1eVRpY2tldAAAAAEAAAAHdW5pcUtleQQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAAB2Fzc2V0SWQJAQAAAAdleHRyYWN0AAAAAQkAAZEAAAACCQAEtQAAAAIFAAAAB3VuaXFLZXkCAAAAAV8AAAAAAAAAAAIEAAAABXByaWNlBAAAAAckbWF0Y2gwCQAEGgAAAAIIBQAAAAFpAAAABmNhbGxlcgkAASwAAAACAgAAAAthc3NldFByaWNlXwUAAAAHdW5pcUtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFwBQAAAAckbWF0Y2gwBQAAAAFwAAAAAAAAAAAABAAAAA1jdXJyZW50QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIIBQAAAAFpAAAABmNhbGxlcgkAASwAAAACAgAAAAxhc3NldEFtb3VudF8FAAAAB3VuaXFLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAMJAABnAAAAAgAAAAAAAAAAAAUAAAANY3VycmVudEFtb3VudAkAAAIAAAABAgAAABpIYXZlIG5vdCBlbm91Z2ggb2YgdGlja2V0cwMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAVWW91IG5lZWQgdG8gdXNlIHdhdmVzAwkBAAAAAiE9AAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAABXByaWNlCQAAAgAAAAECAAAAIUNvdW50IG9mIHdhdmVzIGlzIG5vdCBtYXRjaCBwcmljZQkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIAAAAAAAAAAAEJAAGbAAAAAQUAAAAHYXNzZXRJZAUAAAADbmlsAAAAAOpQ1D0=", "chainId": 84, "height": 666154, "spentComplexity": 0 } View: original | compacted Prev: CK9rYNCQUkEfHUZnscJPpS58v6NGepGfGLTgmKDrUxSz Next: Gz1tDQwdrEYM9WS9UzzPSGGQddExef6j8WuD3kiogQWB Diff:
OldNewDifferences
1111 else {
1212 let currentKey = toBase58String(i.caller.bytes)
1313 let assetId = toBase58String(extract(pmt.assetId))
14- WriteSet([DataEntry(((((("assetAmount_" + currentKey) + "_") + assetId) + "_") + toString(height)), pmt.amount), DataEntry(((((("assetPrice_" + currentKey) + "_") + assetId) + "_") + toString(height)), price)])
14+ let uniqKey = ((((currentKey + "_") + assetId) + "_") + toString(height))
15+ WriteSet([DataEntry(("assetAmount_" + uniqKey), pmt.amount), DataEntry(("assetPrice_" + uniqKey), price)])
1516 }
17+ }
18+
19+
20+
21+@Callable(i)
22+func buyTicket (uniqKey) = {
23+ let pmt = extract(i.payment)
24+ let assetId = extract(split(uniqKey, "_")[2])
25+ let price = match getInteger(i.caller, ("assetPrice_" + uniqKey)) {
26+ case p: Int =>
27+ p
28+ case _ =>
29+ 0
30+ }
31+ let currentAmount = match getInteger(i.caller, ("assetAmount_" + uniqKey)) {
32+ case a: Int =>
33+ a
34+ case _ =>
35+ 0
36+ }
37+ if ((0 >= currentAmount))
38+ then throw("Have not enough of tickets")
39+ else if (isDefined(pmt.assetId))
40+ then throw("You need to use waves")
41+ else if ((pmt.amount != price))
42+ then throw("Count of waves is not match price")
43+ else TransferSet([ScriptTransfer(i.caller, 1, toBytes(assetId))])
1644 }
1745
1846
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func createOrder (price) = {
88 let pmt = extract(i.payment)
99 if (!(isDefined(pmt.assetId)))
1010 then throw("You need to use tokenId, not waves")
1111 else {
1212 let currentKey = toBase58String(i.caller.bytes)
1313 let assetId = toBase58String(extract(pmt.assetId))
14- WriteSet([DataEntry(((((("assetAmount_" + currentKey) + "_") + assetId) + "_") + toString(height)), pmt.amount), DataEntry(((((("assetPrice_" + currentKey) + "_") + assetId) + "_") + toString(height)), price)])
14+ let uniqKey = ((((currentKey + "_") + assetId) + "_") + toString(height))
15+ WriteSet([DataEntry(("assetAmount_" + uniqKey), pmt.amount), DataEntry(("assetPrice_" + uniqKey), price)])
1516 }
17+ }
18+
19+
20+
21+@Callable(i)
22+func buyTicket (uniqKey) = {
23+ let pmt = extract(i.payment)
24+ let assetId = extract(split(uniqKey, "_")[2])
25+ let price = match getInteger(i.caller, ("assetPrice_" + uniqKey)) {
26+ case p: Int =>
27+ p
28+ case _ =>
29+ 0
30+ }
31+ let currentAmount = match getInteger(i.caller, ("assetAmount_" + uniqKey)) {
32+ case a: Int =>
33+ a
34+ case _ =>
35+ 0
36+ }
37+ if ((0 >= currentAmount))
38+ then throw("Have not enough of tickets")
39+ else if (isDefined(pmt.assetId))
40+ then throw("You need to use waves")
41+ else if ((pmt.amount != price))
42+ then throw("Count of waves is not match price")
43+ else TransferSet([ScriptTransfer(i.caller, 1, toBytes(assetId))])
1644 }
1745
1846

github/deemru/w8io/03bedc9 
21.63 ms