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:
Old | New | Differences | |
---|---|---|---|
16 | 16 | } | |
17 | 17 | ||
18 | 18 | ||
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 | + |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func writeInteger (key,integerValue) = IntegerEntry(key, integerValue) | |
5 | 5 | ||
6 | 6 | ||
7 | 7 | func writeString (key,stringValue) = StringEntry(key, stringValue) | |
8 | 8 | ||
9 | 9 | ||
10 | 10 | @Callable(i) | |
11 | 11 | func buyTicket (eventId) = { | |
12 | 12 | let publicKeyCaller = toBase58String(i.callerPublicKey) | |
13 | 13 | let asset = Issue("Test Ticket", "NFT-Ticketing test ticket", 1, 0, false) | |
14 | 14 | let tokenId = toBase58String(calculateAssetId(asset)) | |
15 | 15 | [asset, writeString((tokenId + "_PublicKey"), publicKeyCaller), writeString((tokenId + "_EventId"), eventId), writeString((tokenId + "_Status"), "inactive"), ScriptTransfer(i.caller, 1, fromBase58String(tokenId))] | |
16 | 16 | } | |
17 | 17 | ||
18 | 18 | ||
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 ◑![]()