tx · 48LzkiDuqJDJvVChEp6wHmHUABsxRmHpDysVMaYUFJ4g

3NBdqVGWfdqV3UJ8S1xsz5qoBRGTEsLioLf:  -0.01400000 Waves

2020.03.11 23:18 [904961] smart account 3NBdqVGWfdqV3UJ8S1xsz5qoBRGTEsLioLf > SELF 0.00000000 Waves

{ "type": 13, "id": "48LzkiDuqJDJvVChEp6wHmHUABsxRmHpDysVMaYUFJ4g", "fee": 1400000, "feeAssetId": null, "timestamp": 1583957889028, "version": 1, "sender": "3NBdqVGWfdqV3UJ8S1xsz5qoBRGTEsLioLf", "senderPublicKey": "3LEuAZxU2NYqTtbUBJLs5XaFQ8z781ENmxbLvFXZy33D", "proofs": [ "5XWojhPZSJyn2L3bTRXNT1vgxQ5nnBN8VZLqWCSF7WaB1oZJb4N1w8mxYkSFeh1E9HusUxLA2wpiEh1QH9GNW8LD" ], "script": "base64:AAIDAAAAAAAAAC8IARIHCgUIAQgBARIECgIIARIDCgEIEgUKAwgIARIECgIIARIECgIIARIECgIIAQAAAB0AAAAAB2FkZHJlc3MCAAAAIzNOQmRxVkdXZmRxVjNVSjhTMXhzejVxb0JSR1RFc0xpb0xmAAAAAA5rZXlFdmVudFByZWZpeAIAAAAGZXZlbnRfAAAAABJrZXlFdmVudERhdGFQcmVmaXgCAAAABWRhdGFfAAAAABNrZXlFdmVudFByaWNlUHJlZml4AgAAAAZwcmljZV8AAAAAEmtleUV2ZW50RGF0ZVByZWZpeAIAAAAFZGF0ZV8AAAAAFmtleUV2ZW50QXR0ZW5kZWVQcmVmaXgCAAAACWF0dGVuZGVlXwAAAAAYa2V5UHJvZHVjZXJCYWxhbmNlUHJlZml4AgAAAAhiYWxhbmNlXwAAAAAaa2V5RXZlbnRBbW91bnRUaWNrZXRQcmVmaXgCAAAADmFtb3VudFRpY2tldHNfAAAAABZrZXlFdmVudENhbmNlbGVkUHJlZml4AgAAAAljYW5jZWxlZF8AAAAABE5PTkUCAAAABG5vbmUBAAAADmdldE51bWJlckJ5S2V5AAAAAQAAAANrZXkEAAAAA251bQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAUAAAADbnVtAQAAAAtnZXRTdHJCeUtleQAAAAEAAAADa2V5BAAAAANzdHIEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEFAAAABE5PTkUFAAAAA3N0cgEAAAAMZ2V0Qm9vbEJ5S2V5AAAAAQAAAANrZXkEAAAABGJvb2wEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwUAAAAEYm9vbAEAAAALZ2V0RXZlbnRLZXkAAAACAAAACHByb2R1Y2VyAAAABXRpdGxlCQABLAAAAAIFAAAADmtleUV2ZW50UHJlZml4CQACWAAAAAEJAAH3AAAAAQkAAZsAAAABCQABLAAAAAIFAAAACHByb2R1Y2VyBQAAAAV0aXRsZQEAAAAPZ2V0RXZlbnREYXRhS2V5AAAAAQAAAAVldmVudAkAASwAAAACBQAAABJrZXlFdmVudERhdGFQcmVmaXgFAAAABWV2ZW50AQAAABBnZXRFdmVudFByaWNlS2V5AAAAAQAAAAVldmVudAkAASwAAAACBQAAABNrZXlFdmVudFByaWNlUHJlZml4BQAAAAVldmVudAEAAAAPZ2V0RXZlbnREYXRlS2V5AAAAAQAAAAVldmVudAkAASwAAAACBQAAABJrZXlFdmVudERhdGVQcmVmaXgFAAAABWV2ZW50AQAAABNnZXRFdmVudEF0dGVuZGVlS2V5AAAAAgAAAAR1c2VyAAAABWV2ZW50CQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAABZrZXlFdmVudEF0dGVuZGVlUHJlZml4BQAAAAR1c2VyAgAAAAFfBQAAAAVldmVudAEAAAAVZ2V0UHJvZHVjZXJCYWxhbmNlS2V5AAAAAQAAAAdhY2NvdW50CQABLAAAAAIFAAAAGGtleVByb2R1Y2VyQmFsYW5jZVByZWZpeAUAAAAHYWNjb3VudAEAAAAYZ2V0RXZlbnRBbW91bnRUaWNrZXRzS2V5AAAAAQAAAAVldmVudAkAASwAAAACBQAAABprZXlFdmVudEFtb3VudFRpY2tldFByZWZpeAUAAAAFZXZlbnQBAAAAE2dldEV2ZW50Q2FuY2VsZWRLZXkAAAABAAAABWV2ZW50CQABLAAAAAIFAAAAFmtleUV2ZW50Q2FuY2VsZWRQcmVmaXgFAAAABWV2ZW50AQAAABFnZXRFdmVudFZhbHVlQnlJZAAAAAEAAAAEaXRlbQkBAAAAC2dldFN0ckJ5S2V5AAAAAQUAAAAEaXRlbQEAAAANZ2V0RXZlbnRWYWx1ZQAAAAIAAAAIcHJvZHVjZXIAAAAFdGl0bGUJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAAAtnZXRFdmVudEtleQAAAAIFAAAACHByb2R1Y2VyBQAAAAV0aXRsZQEAAAASZ2V0RXZlbnRQcmljZVZhbHVlAAAAAQAAAAVldmVudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEGdldEV2ZW50UHJpY2VLZXkAAAABBQAAAAVldmVudAEAAAARZ2V0RXZlbnREYXRlVmFsdWUAAAABAAAABWV2ZW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAPZ2V0RXZlbnREYXRlS2V5AAAAAQUAAAAFZXZlbnQBAAAAFWdldEV2ZW50QXR0ZW5kZWVWYWx1ZQAAAAIAAAAEdXNlcgAAAAVldmVudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAE2dldEV2ZW50QXR0ZW5kZWVLZXkAAAACBQAAAAR1c2VyBQAAAAVldmVudAEAAAAXZ2V0UHJvZHVjZXJCYWxhbmNlVmFsdWUAAAABAAAAB2FjY291bnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABVnZXRQcm9kdWNlckJhbGFuY2VLZXkAAAABBQAAAAdhY2NvdW50AQAAABpnZXRFdmVudEFtb3VudFRpY2tldHNWYWx1ZQAAAAEAAAAFZXZlbnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABhnZXRFdmVudEFtb3VudFRpY2tldHNLZXkAAAABBQAAAAVldmVudAEAAAAVZ2V0RXZlbnRDYW5jZWxlZFZhbHVlAAAAAQAAAAVldmVudAkBAAAADGdldEJvb2xCeUtleQAAAAEJAQAAABNnZXRFdmVudENhbmNlbGVkS2V5AAAAAQUAAAAFZXZlbnQAAAAHAAAAAWkBAAAAC2NyZWF0ZUV2ZW50AAAABQAAAAV0aXRsZQAAAAVwcmljZQAAAARkYXRhAAAABGRhdGUAAAANYW1vdW50VGlja2V0cwQAAAAPcHJvZHVjZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABWV2ZW50CQEAAAALZ2V0RXZlbnRLZXkAAAACBQAAAA9wcm9kdWNlckFkZHJlc3MFAAAABXRpdGxlAwkAAGYAAAACAAAAAAAAAAAABQAAAAVwcmljZQkAAAIAAAABAgAAABhQcmljZSBjYW5ub3QgYmUgbmVnYXRpdmUDCQEAAAACIT0AAAACCQEAAAANZ2V0RXZlbnRWYWx1ZQAAAAIF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AAIJAQAAABdnZXRQcm9kdWNlckJhbGFuY2VWYWx1ZQAAAAEFAAAAD3N1cHBsaWVyQWRkcmVzcwgFAAAAA3BtdAAAAAZhbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABhnZXRFdmVudEFtb3VudFRpY2tldHNLZXkAAAABBQAAAAVldmVudAkAAGUAAAACCQEAAAAaZ2V0RXZlbnRBbW91bnRUaWNrZXRzVmFsdWUAAAABBQAAAAVldmVudAUAAAAGYW1vdW50BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAAdhZGRyZXNzCAUAAAADcG10AAAABmFtb3VudAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAADWVuZFRpY2tldFNhbGUAAAABAAAABXRpdGxlBAAAAA9wcm9kdWNlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAFZXZlbnQJAQAAAAtnZXRFdmVudEtleQAAAAIFAAAAD3Byb2R1Y2VyQWRkcmVzcwUAAAAFdGl0bGUDCQEAAAACIT0AAAACCQEAAAARZ2V0RXZlbnRWYWx1ZUJ5SWQAAAABBQAAAAVldmVudAUAAAAPcHJvZHVjZXJBZGRyZXNzCQAAAgAAAAECAAAAI1lvdSBoYXZlIG5vdCBjcmVhdGVkIGFueSBFdmVudCB5ZXQhAwkBAAAAFWdldEV2ZW50Q2FuY2VsZWRWYWx1ZQAAAAEFAAAABWV2ZW50CQAAAgAAAAECAAAAF1RoaXMgZXZlbnQgd2FzIGNhbmNlbGVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAYZ2V0RXZlbnRBbW91bnRUaWNrZXRzS2V5AAAAAQUAAAAFZXZlbnQAAAAAAAAAAAAFAAAAA25pbAAAAAFpAQAAAAdjaGVja2luAAAAAwAAAAVldmVudAAAAA9hdHRlbmRlZUFkZHJlc3MAAAAGYW1vdW50BAAAAA9wcm9kdWNlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwMJAQAAABVnZXRFdmVudENhbmNlbGVkVmFsdWUAAAABBQAAAAVldmVudAkAAAIAAAABAgAAAE9UaGlzIGV2ZW50IHdhcyBjYW5jZWxlZC4gWW91IGNhbiByZWRlZW0geW91ciB0aWNrZXQgdXNpbmcgcmVmdW5kVGlja2V0IGZ1bmN0aW9uAwkBAAAAAiE9AAAAAgkBAAAAEWdldEV2ZW50VmFsdWVCeUlkAAAAAQUAAAAFZXZlbnQFAAAAD3Byb2R1Y2VyQWRkcmVzcwkAAAIAAAABAgAAACNZb3UgaGF2ZSBub3QgY3JlYXRlZCBhbnkgRXZlbnQgeWV0IQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAE2dldEV2ZW50QXR0ZW5kZWVLZXkAAAACBQAAAA9hdHRlbmRlZUFkZHJlc3MFAAAABWV2ZW50CQAAZQAAAAIJAQAAABVnZXRFdmVudEF0dGVuZGVlVmFsdWUAAAACBQAAAA9hdHRlbmRlZUFkZHJlc3MFAAAABWV2ZW50BQAAAAZhbW91bnQFAAAAA25pbAAAAAFpAQAAAAtjYW5jZWxFdmVudAAAAAIAAAAFZXZlbnQAAAAHZGF0ZU5vdwQAAAAPcHJvZHVjZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAACIT0AAAACCQEAAAARZ2V0RXZlbnRWYWx1ZUJ5SWQAAAABBQAAAAVldmVudAUAAAAPcHJvZHVjZXJBZGRyZXNzCQAAAgAAAAECAAAAI1lvdSBoYXZlIG5vdCBjcmVhdGVkIGFueSBFdmVudCB5ZXQhAwkAAGcAAAACBQAAAAdkYXRlTm93CQEAAAARZ2V0RXZlbnREYXRlVmFsdWUAAAABBQAAAAVldmVudAkAAAIAAAABAgAAAB9UaGlzIGV2ZW50IGhhcyBhbHJlYWR5IGhhcHBlbmVkAwkBAAAAFWdldEV2ZW50Q2FuY2VsZWRWYWx1ZQAAAAEFAAAABWV2ZW50CQAAAgAAAAECAAAAH1RoaXMgZXZlbnQgd2FzIGFscmVhZHkgY2FuY2VsZWQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABNnZXRFdmVudENhbmNlbGVkS2V5AAAAAQUAAAAFZXZlbnQGBQAAAANuaWwAAAABaQEAAAAMcmVmdW5kVGlja2V0AAAAAgAAAAVldmVudAAAAAZhbW91bnQEAAAAD2F0dGVuZGVlQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzAwkAAGcAAAACAAAAAAAAAAAACQEAAAAVZ2V0RXZlbnRBdHRlbmRlZVZhbHVlAAAAAgUAAAAPYXR0ZW5kZWVBZGRyZXNzBQAAAAVldmVudAkAAAIAAAABAgAAAC9Zb3UgaGF2ZSBubyByZWdpc3RlcmVkIHRpY2tldCB3aXRoIHRoaXMgYWRkcmVzcwkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABNnZXRFdmVudEF0dGVuZGVlS2V5AAAAAgUAAAAPYXR0ZW5kZWVBZGRyZXNzBQAAAAVldmVudAkAAGUAAAACCQEAAAAVZ2V0RXZlbnRBdHRlbmRlZVZhbHVlAAAAAgUAAAAPYXR0ZW5kZWVBZGRyZXNzBQAAAAVldmVudAUAAAAGYW1vdW50BQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAA9hdHRlbmRlZUFkZHJlc3MJAABoAAAAAgUAAAAGYW1vdW50CQEAAAAVZ2V0RXZlbnRBdHRlbmRlZVZhbHVlAAAAAgUAAAAPYXR0ZW5kZWVBZGRyZXNzBQAAAAVldmVudAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAAVldmVudAAAAAdkYXRlTm93BAAAAA9wcm9kdWNlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAHYmFsYW5jZQkBAAAAF2dldFByb2R1Y2VyQmFsYW5jZVZhbHVlAAAAAQUAAAAPcHJvZHVjZXJBZGRyZXNzAwkAAGcAAAACAAAAAAAAAAAABQAAAAdiYWxhbmNlCQAAAgAAAAECAAAAFEluc3VmZmljaWVudCBiYWxhbmNlAwkAAGcAAAACCQEAAAARZ2V0RXZlbnREYXRlVmFsdWUAAAABBQAAAAVldmVudAUAAAAHZGF0ZU5vdwkAAAIAAAABAgAAAEVFdmVudCBoYXMgbm90IHlldCB0YWtlbiBwbGFjZS4gV2l0aGRyYXcgZnVuZHMgd2hlbiBldmVudCB0YWtlcyBwbGFjZS4DCQEAAAAVZ2V0RXZlbnRDYW5jZWxlZFZhbHVlAAAAAQUAAAAFZXZlbnQJAAACAAAAAQIAAAAXRXZlbnQgaGFzIGJlZW4gY2FuY2VsZWQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAAVZ2V0UHJvZHVjZXJCYWxhbmNlS2V5AAAAAQUAAAAPcHJvZHVjZXJBZGRyZXNzAAAAAAAAAAAABQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAA9wcm9kdWNlckFkZHJlc3MFAAAAB2JhbGFuY2UFAAAABHVuaXQFAAAAA25pbAAAAAC31aBn", "chainId": 84, "height": 904961, "spentComplexity": 0 } View: original | compacted Prev: 5bThoF1DGKaVg97juyZwLBvs6TuSuPoSjfi7XepRDVSu Next: C6FxLpVsqjo4MwvV96YyiRYqP7pNDBTSgvza75L6D4V Diff:
OldNewDifferences
2828 case _ =>
2929 0
3030 }
31- getIntegerValue(this, key)
31+ num
3232 }
3333
3434
157157 @Callable(i)
158158 func checkin (event,attendeeAddress,amount) = {
159159 let producerAddress = toBase58String(i.caller.bytes)
160- if ((amount >= getEventAttendeeValue(attendeeAddress, event)))
161- then throw("You don't have enough registered ticket with this address. ")
162- else if (getEventCanceledValue(event))
163- then throw("This event was canceled. You can redeem your ticket using refundTicket function")
164- else if ((getEventValueById(event) != producerAddress))
165- then throw("You have not created any Event yet!")
166- else WriteSet([DataEntry(getEventAttendeeKey(attendeeAddress, event), (getEventAttendeeValue(attendeeAddress, event) - amount))])
160+ if (getEventCanceledValue(event))
161+ then throw("This event was canceled. You can redeem your ticket using refundTicket function")
162+ else if ((getEventValueById(event) != producerAddress))
163+ then throw("You have not created any Event yet!")
164+ else WriteSet([DataEntry(getEventAttendeeKey(attendeeAddress, event), (getEventAttendeeValue(attendeeAddress, event) - amount))])
167165 }
168166
169167
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let address = "3NBdqVGWfdqV3UJ8S1xsz5qoBRGTEsLioLf"
55
66 let keyEventPrefix = "event_"
77
88 let keyEventDataPrefix = "data_"
99
1010 let keyEventPricePrefix = "price_"
1111
1212 let keyEventDatePrefix = "date_"
1313
1414 let keyEventAttendeePrefix = "attendee_"
1515
1616 let keyProducerBalancePrefix = "balance_"
1717
1818 let keyEventAmountTicketPrefix = "amountTickets_"
1919
2020 let keyEventCanceledPrefix = "canceled_"
2121
2222 let NONE = "none"
2323
2424 func getNumberByKey (key) = {
2525 let num = match getInteger(this, key) {
2626 case a: Int =>
2727 a
2828 case _ =>
2929 0
3030 }
31- getIntegerValue(this, key)
31+ num
3232 }
3333
3434
3535 func getStrByKey (key) = {
3636 let str = match getString(this, key) {
3737 case a: String =>
3838 a
3939 case _ =>
4040 NONE
4141 }
4242 str
4343 }
4444
4545
4646 func getBoolByKey (key) = {
4747 let bool = match getBoolean(this, key) {
4848 case a: Boolean =>
4949 a
5050 case _ =>
5151 false
5252 }
5353 bool
5454 }
5555
5656
5757 func getEventKey (producer,title) = (keyEventPrefix + toBase58String(sha256(toBytes((producer + title)))))
5858
5959
6060 func getEventDataKey (event) = (keyEventDataPrefix + event)
6161
6262
6363 func getEventPriceKey (event) = (keyEventPricePrefix + event)
6464
6565
6666 func getEventDateKey (event) = (keyEventDatePrefix + event)
6767
6868
6969 func getEventAttendeeKey (user,event) = (((keyEventAttendeePrefix + user) + "_") + event)
7070
7171
7272 func getProducerBalanceKey (account) = (keyProducerBalancePrefix + account)
7373
7474
7575 func getEventAmountTicketsKey (event) = (keyEventAmountTicketPrefix + event)
7676
7777
7878 func getEventCanceledKey (event) = (keyEventCanceledPrefix + event)
7979
8080
8181 func getEventValueById (item) = getStrByKey(item)
8282
8383
8484 func getEventValue (producer,title) = getStrByKey(getEventKey(producer, title))
8585
8686
8787 func getEventPriceValue (event) = getNumberByKey(getEventPriceKey(event))
8888
8989
9090 func getEventDateValue (event) = getNumberByKey(getEventDateKey(event))
9191
9292
9393 func getEventAttendeeValue (user,event) = getNumberByKey(getEventAttendeeKey(user, event))
9494
9595
9696 func getProducerBalanceValue (account) = getNumberByKey(getProducerBalanceKey(account))
9797
9898
9999 func getEventAmountTicketsValue (event) = getNumberByKey(getEventAmountTicketsKey(event))
100100
101101
102102 func getEventCanceledValue (event) = getBoolByKey(getEventCanceledKey(event))
103103
104104
105105 @Callable(i)
106106 func createEvent (title,price,data,date,amountTickets) = {
107107 let producerAddress = toBase58String(i.caller.bytes)
108108 let event = getEventKey(producerAddress, title)
109109 if ((0 > price))
110110 then throw("Price cannot be negative")
111111 else if ((getEventValue(producerAddress, title) != NONE))
112112 then throw("The event already exist")
113113 else WriteSet([DataEntry(getEventKey(producerAddress, title), producerAddress), DataEntry(getEventPriceKey(event), price), DataEntry(getEventDataKey(event), data), DataEntry(getEventDateKey(event), date), DataEntry(getEventAmountTicketsKey(event), amountTickets)])
114114 }
115115
116116
117117
118118 @Callable(i)
119119 func purchase (event,amount) = {
120120 let pmt = extract(i.payment)
121121 if (isDefined(pmt.assetId))
122122 then throw("can use WAVES only at the moment")
123123 else {
124124 let userAddress = toBase58String(i.caller.bytes)
125125 let price = getEventPriceValue(event)
126126 let supplierAddress = getEventValueById(event)
127127 let amountTicket = getEventAmountTicketsValue(event)
128128 if (((price * amount) > pmt.amount))
129129 then throw(((("You did not send enough money. You sent: " + toString(pmt.amount)) + ". Expected: ") + toString((amount * price))))
130130 else if ((pmt.amount > (price * amount)))
131131 then throw(((("You send too much money. You sent: " + toString(pmt.amount)) + ". Expected price: ") + toString(price)))
132132 else if ((supplierAddress == NONE))
133133 then throw("supplier does not exist")
134134 else if ((0 >= amountTicket))
135135 then throw("No tickets left")
136136 else if (getEventCanceledValue(event))
137137 then throw("This event was canceled")
138138 else ScriptResult(WriteSet([DataEntry(getEventAttendeeKey(userAddress, event), (getEventAttendeeValue(userAddress, event) + amount)), DataEntry(getProducerBalanceKey(supplierAddress), (getProducerBalanceValue(supplierAddress) + pmt.amount)), DataEntry(getEventAmountTicketsKey(event), (getEventAmountTicketsValue(event) - amount))]), TransferSet([ScriptTransfer(addressFromStringValue(address), pmt.amount, unit)]))
139139 }
140140 }
141141
142142
143143
144144 @Callable(i)
145145 func endTicketSale (title) = {
146146 let producerAddress = toBase58String(i.caller.bytes)
147147 let event = getEventKey(producerAddress, title)
148148 if ((getEventValueById(event) != producerAddress))
149149 then throw("You have not created any Event yet!")
150150 else if (getEventCanceledValue(event))
151151 then throw("This event was canceled")
152152 else WriteSet([DataEntry(getEventAmountTicketsKey(event), 0)])
153153 }
154154
155155
156156
157157 @Callable(i)
158158 func checkin (event,attendeeAddress,amount) = {
159159 let producerAddress = toBase58String(i.caller.bytes)
160- if ((amount >= getEventAttendeeValue(attendeeAddress, event)))
161- then throw("You don't have enough registered ticket with this address. ")
162- else if (getEventCanceledValue(event))
163- then throw("This event was canceled. You can redeem your ticket using refundTicket function")
164- else if ((getEventValueById(event) != producerAddress))
165- then throw("You have not created any Event yet!")
166- else WriteSet([DataEntry(getEventAttendeeKey(attendeeAddress, event), (getEventAttendeeValue(attendeeAddress, event) - amount))])
160+ if (getEventCanceledValue(event))
161+ then throw("This event was canceled. You can redeem your ticket using refundTicket function")
162+ else if ((getEventValueById(event) != producerAddress))
163+ then throw("You have not created any Event yet!")
164+ else WriteSet([DataEntry(getEventAttendeeKey(attendeeAddress, event), (getEventAttendeeValue(attendeeAddress, event) - amount))])
167165 }
168166
169167
170168
171169 @Callable(i)
172170 func cancelEvent (event,dateNow) = {
173171 let producerAddress = toBase58String(i.caller.bytes)
174172 if ((getEventValueById(event) != producerAddress))
175173 then throw("You have not created any Event yet!")
176174 else if ((dateNow >= getEventDateValue(event)))
177175 then throw("This event has already happened")
178176 else if (getEventCanceledValue(event))
179177 then throw("This event was already canceled")
180178 else WriteSet([DataEntry(getEventCanceledKey(event), true)])
181179 }
182180
183181
184182
185183 @Callable(i)
186184 func refundTicket (event,amount) = {
187185 let attendeeAddress = toBase58String(i.caller.bytes)
188186 if ((0 >= getEventAttendeeValue(attendeeAddress, event)))
189187 then throw("You have no registered ticket with this address")
190188 else ScriptResult(WriteSet([DataEntry(getEventAttendeeKey(attendeeAddress, event), (getEventAttendeeValue(attendeeAddress, event) - amount))]), TransferSet([ScriptTransfer(addressFromStringValue(attendeeAddress), (amount * getEventAttendeeValue(attendeeAddress, event)), unit)]))
191189 }
192190
193191
194192
195193 @Callable(i)
196194 func withdraw (event,dateNow) = {
197195 let producerAddress = toBase58String(i.caller.bytes)
198196 let balance = getProducerBalanceValue(producerAddress)
199197 if ((0 >= balance))
200198 then throw("Insufficient balance")
201199 else if ((getEventDateValue(event) >= dateNow))
202200 then throw("Event has not yet taken place. Withdraw funds when event takes place.")
203201 else if (getEventCanceledValue(event))
204202 then throw("Event has been canceled")
205203 else ScriptResult(WriteSet([DataEntry(getProducerBalanceKey(producerAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(producerAddress), balance, unit)]))
206204 }
207205
208206

github/deemru/w8io/873ac7e 
45.18 ms