tx · qCm2Mrx27K9cz51BbhQKPj18HnBtRXzuXB2dAEXiGPn

3MtedHmiPBsfdFX9kMFg2H9CgU8YxX6xKQz:  -0.01000000 Waves

2021.12.20 16:07 [1842619] smart account 3MtedHmiPBsfdFX9kMFg2H9CgU8YxX6xKQz > SELF 0.00000000 Waves

{ "type": 13, "id": "qCm2Mrx27K9cz51BbhQKPj18HnBtRXzuXB2dAEXiGPn", "fee": 1000000, "feeAssetId": null, "timestamp": 1640005640825, "version": 2, "chainId": 84, "sender": "3MtedHmiPBsfdFX9kMFg2H9CgU8YxX6xKQz", "senderPublicKey": "E5EiTj3NSnahLUtXSvL7Z9y8jisfpCiMEXMtUhjtfwjb", "proofs": [ "14UcomV93x2KBCt7Y3TE2offarf9tZE39mqL7YJZxYMcUPe9JdNsz8ytkBqSft74GcB6pj344qN5gWdwkaCeBnS" ], "script": "base64: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", "height": 1842619, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5qR8zPRdnRUuv4SokDfqYLQwuXZMu2xobgPo3SEivhru Next: HxHD8JaPYfSFNB8eanYzEfNw45ihHYCSMYMiFCDxtvZc Diff:
OldNewDifferences
3232 let status = valueOrElse(getStringValue((toBase58String(assetId) + "_Status")), "")
3333 if ((status != ""))
3434 then if ((status == "inactive"))
35- then [writeString((toBase58String(assetId) + "_Status"), "checkedIn"), writeString((toBase58String(assetId) + "_TxId"), toBase58String(i.transactionId))]
35+ then [writeString(((toBase58String(i.caller.bytes) + "_") + toBase58String(assetId)), toBase58String(assetId)), writeString((toBase58String(assetId) + "_Status"), "checkedIn"), writeString((toBase58String(assetId) + "_TxId"), toBase58String(i.transactionId))]
3636 else throw("Ticket already checked-in!")
3737 else throw("Status is empty!")
3838 }
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
1919
2020 @Callable(i)
2121 func checkIn () = if ((size(i.payments) > 0))
2222 then {
2323 let assetId = {
2424 let tmp = i.payments[0].assetId
2525 match tmp {
2626 case t: ByteVector =>
2727 t
2828 case _ =>
2929 throw("parsing failed")
3030 }
3131 }
3232 let status = valueOrElse(getStringValue((toBase58String(assetId) + "_Status")), "")
3333 if ((status != ""))
3434 then if ((status == "inactive"))
35- then [writeString((toBase58String(assetId) + "_Status"), "checkedIn"), writeString((toBase58String(assetId) + "_TxId"), toBase58String(i.transactionId))]
35+ then [writeString(((toBase58String(i.caller.bytes) + "_") + toBase58String(assetId)), toBase58String(assetId)), writeString((toBase58String(assetId) + "_Status"), "checkedIn"), writeString((toBase58String(assetId) + "_TxId"), toBase58String(i.transactionId))]
3636 else throw("Ticket already checked-in!")
3737 else throw("Status is empty!")
3838 }
3939 else throw("No payment attached")
4040
4141
4242
4343 @Callable(i)
4444 func changeStatus (nftId) = {
4545 let status = valueOrElse(getStringValue((nftId + "_Status")), "")
4646 if (if ((status == "checkedIn"))
4747 then true
4848 else (status == "notRedeemed"))
4949 then [writeString((nftId + "_Status"), "redeemed")]
5050 else throw("No valid status!")
5151 }
5252
5353

github/deemru/w8io/169f3d6 
38.20 ms