tx · 9xuPmQTdiayHzSVrQr5ZyEMFCoAiRsTxYv6kMo8g9sGh

3MtedHmiPBsfdFX9kMFg2H9CgU8YxX6xKQz:  -0.01000000 Waves

2021.12.06 17:59 [1822541] smart account 3MtedHmiPBsfdFX9kMFg2H9CgU8YxX6xKQz > SELF 0.00000000 Waves

{ "type": 13, "id": "9xuPmQTdiayHzSVrQr5ZyEMFCoAiRsTxYv6kMo8g9sGh", "fee": 1000000, "feeAssetId": null, "timestamp": 1638802795848, "version": 2, "chainId": 84, "sender": "3MtedHmiPBsfdFX9kMFg2H9CgU8YxX6xKQz", "senderPublicKey": "E5EiTj3NSnahLUtXSvL7Z9y8jisfpCiMEXMtUhjtfwjb", "proofs": [ "5HAzT7nLLLEzYzxrQjPc2Y8EpZncfgFsaFXNoxv2BcFdPnfkgkfA7XXtCS9xr6QzWKEoG6JETtP99oJM7JmAYEC9" ], "script": "base64:AAIFAAAAAAAAAAkIAhIDCgEIEgAAAAACAQAAAAx3cml0ZUludGVnZXIAAAACAAAAA2tleQAAAAxpbnRlZ2VyVmFsdWUJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAANrZXkFAAAADGludGVnZXJWYWx1ZQEAAAALd3JpdGVTdHJpbmcAAAACAAAAA2tleQAAAAtzdHJpbmdWYWx1ZQkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAADa2V5BQAAAAtzdHJpbmdWYWx1ZQAAAAIAAAABaQEAAAAJYnV5VGlja2V0AAAAAQAAAAdldmVudElkBAAAAA9wdWJsaWNLZXlDYWxsZXIJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAVhc3NldAkABEIAAAAFAgAAAAtUZXN0IFRpY2tldAIAAAAZTkZULVRpY2tldGluZyB0ZXN0IHRpY2tldAAAAAAAAAAAAQAAAAAAAAAAAAcEAAAAB3Rva2VuSWQJAAJYAAAAAQkABDgAAAABBQAAAAVhc3NldAkABEwAAAACBQAAAAVhc3NldAkABEwAAAACCQEAAAALd3JpdGVTdHJpbmcAAAACCQABLAAAAAIFAAAAB3Rva2VuSWQCAAAACl9QdWJsaWNLZXkFAAAAD3B1YmxpY0tleUNhbGxlcgkABEwAAAACCQEAAAALd3JpdGVTdHJpbmcAAAACCQABLAAAAAIFAAAAB3Rva2VuSWQCAAAACF9FdmVudElkBQAAAAdldmVudElkCQAETAAAAAIJAQAAAAt3cml0ZVN0cmluZwAAAAIJAAEsAAAAAgUAAAAHdG9rZW5JZAIAAAAHX1N0YXR1cwIAAAAIaW5hY3RpdmUJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABCQACWQAAAAEFAAAAB3Rva2VuSWQFAAAAA25pbAAAAAFpAQAAAAdjaGVja0luAAAAAAMJAABmAAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAHYXNzZXRJZAQAAAADdG1wCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAckbWF0Y2gwBQAAAAN0bXADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACkJ5dGVWZWN0b3IEAAAAAXQFAAAAByRtYXRjaDAFAAAAAXQJAAACAAAAAQIAAAAOcGFyc2luZyBmYWlsZWQEAAAABnN0YXR1cwkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTgpAAAAAQkAASwAAAACCQACWAAAAAEFAAAAB2Fzc2V0SWQCAAAAB19TdGF0dXMCAAAAAAMJAQAAAAIhPQAAAAIFAAAABnN0YXR1cwIAAAAAAwkAAAAAAAACBQAAAAZzdGF0dXMCAAAACGluYWN0aXZlCQAETAAAAAIJAQAAAAt3cml0ZVN0cmluZwAAAAIJAAEsAAAAAgkAAlgAAAABBQAAAAdhc3NldElkAgAAAAdfU3RhdHVzAgAAAAljaGVja2VkSW4JAARMAAAAAgkBAAAAC3dyaXRlU3RyaW5nAAAAAgkAASwAAAACCQACWAAAAAEFAAAAB2Fzc2V0SWQCAAAABV9UeElkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAkAAAIAAAABAgAAABpUaWNrZXQgYWxyZWFkeSBjaGVja2VkLWluIQkAAAIAAAABAgAAABBTdGF0dXMgaXMgZW1wdHkhCQAAAgAAAAECAAAAE05vIHBheW1lbnQgYXR0YWNoZWQAAAAADZdOJA==", "height": 1822541, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 336tgyBVxMT21zf2r3oYSgqA97qR3P7hmntPD9Aa2EPv Next: 5qR8zPRdnRUuv4SokDfqYLQwuXZMu2xobgPo3SEivhru Diff:
OldNewDifferences
1616 }
1717
1818
19+
20+@Callable(i)
21+func checkIn () = if ((size(i.payments) > 0))
22+ then {
23+ let assetId = {
24+ let tmp = i.payments[0].assetId
25+ match tmp {
26+ case t: ByteVector =>
27+ t
28+ case _ =>
29+ throw("parsing failed")
30+ }
31+ }
32+ let status = valueOrElse(getStringValue((toBase58String(assetId) + "_Status")), "")
33+ if ((status != ""))
34+ then if ((status == "inactive"))
35+ then [writeString((toBase58String(assetId) + "_Status"), "checkedIn"), writeString((toBase58String(assetId) + "_TxId"), toBase58String(i.transactionId))]
36+ else throw("Ticket already checked-in!")
37+ else throw("Status is empty!")
38+ }
39+ else throw("No payment attached")
40+
41+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func writeInteger (key,integerValue) = IntegerEntry(key, integerValue)
55
66
77 func writeString (key,stringValue) = StringEntry(key, stringValue)
88
99
1010 @Callable(i)
1111 func buyTicket (eventId) = {
1212 let publicKeyCaller = toBase58String(i.callerPublicKey)
1313 let asset = Issue("Test Ticket", "NFT-Ticketing test ticket", 1, 0, false)
1414 let tokenId = toBase58String(calculateAssetId(asset))
1515 [asset, writeString((tokenId + "_PublicKey"), publicKeyCaller), writeString((tokenId + "_EventId"), eventId), writeString((tokenId + "_Status"), "inactive"), ScriptTransfer(i.caller, 1, fromBase58String(tokenId))]
1616 }
1717
1818
19+
20+@Callable(i)
21+func checkIn () = if ((size(i.payments) > 0))
22+ then {
23+ let assetId = {
24+ let tmp = i.payments[0].assetId
25+ match tmp {
26+ case t: ByteVector =>
27+ t
28+ case _ =>
29+ throw("parsing failed")
30+ }
31+ }
32+ let status = valueOrElse(getStringValue((toBase58String(assetId) + "_Status")), "")
33+ if ((status != ""))
34+ then if ((status == "inactive"))
35+ then [writeString((toBase58String(assetId) + "_Status"), "checkedIn"), writeString((toBase58String(assetId) + "_TxId"), toBase58String(i.transactionId))]
36+ else throw("Ticket already checked-in!")
37+ else throw("Status is empty!")
38+ }
39+ else throw("No payment attached")
40+
41+

github/deemru/w8io/169f3d6 
22.53 ms