tx · EVJeaRGk2C6CETs16UuECaUffPFVkYXb6AAadYF6pCM6

3NBdqVGWfdqV3UJ8S1xsz5qoBRGTEsLioLf:  -0.01400000 Waves

2020.03.09 19:55 [901852] smart account 3NBdqVGWfdqV3UJ8S1xsz5qoBRGTEsLioLf > SELF 0.00000000 Waves

{ "type": 13, "id": "EVJeaRGk2C6CETs16UuECaUffPFVkYXb6AAadYF6pCM6", "fee": 1400000, "feeAssetId": null, "timestamp": 1583773002576, "version": 1, "sender": "3NBdqVGWfdqV3UJ8S1xsz5qoBRGTEsLioLf", "senderPublicKey": "3LEuAZxU2NYqTtbUBJLs5XaFQ8z781ENmxbLvFXZy33D", "proofs": [ "H9B1uZKgRi589hsVHDKtU9KaTag5Vq3MBQHxCQwm7wnXEf3NV1iXVB46zcpGymca1GHqJeaELo8EomtpGU8yq32" ], "script": "base64:AAIDAAAAAAAAAC4IARIHCgUIAQgBARIECgIIARIDCgEIEgQKAggBEgQKAggBEgQKAggBEgQKAggBAAAAHQAAAAAOa2V5RXZlbnRQcmVmaXgCAAAABmV2ZW50XwAAAAASa2V5RXZlbnREYXRhUHJlZml4AgAAAAVkYXRhXwAAAAATa2V5RXZlbnRQcmljZVByZWZpeAIAAAAGcHJpY2VfAAAAABJrZXlFdmVudERhdGVQcmVmaXgCAAAABWRhdGVfAAAAABBrZXlFdmVudEF0dGVuZGVlAgAAAAlhdHRlbmRlZV8AAAAAGWtleUV2ZW50QXR0ZW5kZWVWYWxpZGF0b3ICAAAABHZhbF8AAAAAGGtleVByb2R1Y2VyQmFsYW5jZVByZWZpeAIAAAAIYmFsYW5jZV8AAAAAGmtleUV2ZW50QW1vdW50VGlja2V0UHJlZml4AgAAAA5hbW91bnRUaWNrZXRzXwAAAAAWa2V5RXZlbnRDYW5jZWxlZFByZWZpeAIAAAAJY2FuY2VsZWRfAAAAAAROT05FAgAAAARub25lAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAADGdldEJvb2xCeUtleQAAAAEAAAADa2V5BAAAAARib29sBAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcFAAAABGJvb2wBAAAAC2dldEV2ZW50S2V5AAAAAgAAAAhwcm9kdWNlcgAAAAV0aXRsZQkAASwAAAACBQAAAA5rZXlFdmVudFByZWZpeAkAAlgAAAABCQAB9wAAAAEJAAGbAAAAAQkAASwAAAACBQAAAAhwcm9kdWNlcgUAAAAFdGl0bGUBAAAAD2dldEV2ZW50RGF0YUtleQAAAAEAAAAFZXZlbnQJAAEsAAAAAgUAAAASa2V5RXZlbnREYXRhUHJlZml4BQAAAAVldmVudAEAAAAQZ2V0RXZlbnRQcmljZUtleQAAAAEAAAAFZXZlbnQJAAEsAAAAAgUAAAATa2V5RXZlbnRQcmljZVByZWZpeAUAAAAFZXZlbnQBAAAAD2dldEV2ZW50RGF0ZUtleQAAAAEAAAAFZXZlbnQJAAEsAAAAAgUAAAASa2V5RXZlbnREYXRlUHJlZml4BQAAAAVldmVudAEAAAATZ2V0RXZlbnRBdHRlbmRlZUtleQAAAAIAAAAEdXNlcgAAAAVldmVudAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAQa2V5RXZlbnRBdHRlbmRlZQUAAAAEdXNlcgIAAAABXwUAAAAFZXZlbnQBAAAAFWdldFByb2R1Y2VyQmFsYW5jZUtleQAAAAEAAAAHYWNjb3VudAkAASwAAAACBQAAABhrZXlQcm9kdWNlckJhbGFuY2VQcmVmaXgFAAAAB2FjY291bnQBAAAAGGdldEV2ZW50QW1vdW50VGlja2V0c0tleQAAAAEAAAAFZXZlbnQJAAEsAAAAAgUAAAAaa2V5RXZlbnRBbW91bnRUaWNrZXRQcmVmaXgFAAAABWV2ZW50AQAAABNnZXRFdmVudENhbmNlbGVkS2V5AAAAAQAAAAVldmVudAkAASwAAAACBQAAABZrZXlFdmVudENhbmNlbGVkUHJlZml4BQAAAAVldmVudAEAAAARZ2V0RXZlbnRWYWx1ZUJ5SWQAAAABAAAABGl0ZW0JAQAAAAtnZXRTdHJCeUtleQAAAAEFAAAABGl0ZW0BAAAADWdldEV2ZW50VmFsdWUAAAACAAAACHByb2R1Y2VyAAAABXRpdGxlCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAALZ2V0RXZlbnRLZXkAAAACBQAAAAhwcm9kdWNlcgUAAAAFdGl0bGUBAAAAEmdldEV2ZW50UHJpY2VWYWx1ZQAAAAEAAAAFZXZlbnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABBnZXRFdmVudFByaWNlS2V5AAAAAQUAAAAFZXZlbnQBAAAAEWdldEV2ZW50RGF0ZVZhbHVlAAAAAQAAAAVldmVudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEV2ZW50RGF0ZUtleQAAAAEFAAAABWV2ZW50AQAAABVnZXRFdmVudEF0dGVuZGVlVmFsdWUAAAACAAAABHVzZXIAAAAFZXZlbnQJAQAAAA5nZXROdW1iZXJCeUtleQAAAAEJAQAAABNnZXRFdmVudEF0dGVuZGVlS2V5AAAAAgUAAAAEdXNlcgUAAAAFZXZlbnQBAAAAF2dldFByb2R1Y2VyQmFsYW5jZVZhbHVlAAAAAQAAAAdhY2NvdW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAVZ2V0UHJvZHVjZXJCYWxhbmNlS2V5AAAAAQUAAAAHYWNjb3VudAEAAAAaZ2V0RXZlbnRBbW91bnRUaWNrZXRzVmFsdWUAAAABAAAABWV2ZW50CQEAAAAOZ2V0TnVtYmVyQnlLZXkAAAABCQEAAAAYZ2V0RXZlbnRBbW91bnRUaWNrZXRzS2V5AAAAAQUAAAAFZXZlbnQBAAAAFWdldEV2ZW50Q2FuY2VsZWRWYWx1ZQAAAAEAAAAFZXZlbnQJAQAAAAxnZXRCb29sQnlLZXkAAAABCQEAAAATZ2V0RXZlbnRDYW5jZWxlZEtleQAAAAEFAAAABWV2ZW50AAAABwAAAAFpAQAAAAtjcmVhdGVFdmVudAAAAAUAAAAFdGl0bGUAAAAFcHJpY2UAAAAEZGF0YQAAAARkYXRlAAAADWFtb3VudFRpY2tldHMEAAAAD3Byb2R1Y2VyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAVldmVudAkBAAAAC2dldEV2ZW50S2V5AAAAAgUAAAAPcHJvZHVjZXJBZGRyZXNzBQAAAAV0aXRsZQMJAABmAAAAAgAAAAAAAAAAAAUAAAAFcHJpY2UJAAACAAAAAQIAAAAYUHJpY2UgY2Fubm90IGJlIG5lZ2F0aXZlAwkBAAAAAiE9AAAAAgkBAAAADWdldEV2ZW50VmFsdWUAAAACBQAAAA9wcm9kdWNlckFkZHJlc3MFAAAABXRp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AAIAAAABAgAAAE9UaGlzIGV2ZW50IHdhcyBjYW5jZWxlZC4gWW91IGNhbiByZWRlZW0geW91ciB0aWNrZXQgdXNpbmcgcmVmdW5kVGlja2V0IGZ1bmN0aW9uCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAATZ2V0RXZlbnRBdHRlbmRlZUtleQAAAAIFAAAABWV2ZW50BQAAAA9hdHRlbmRlZUFkZHJlc3MJAABlAAAAAgkBAAAAFWdldEV2ZW50QXR0ZW5kZWVWYWx1ZQAAAAIFAAAABWV2ZW50BQAAAA9hdHRlbmRlZUFkZHJlc3MFAAAABmFtb3VudAUAAAADbmlsAAAAAWkBAAAAC2NhbmNlbEV2ZW50AAAAAgAAAAVldmVudAAAAAdkYXRlTm93BAAAAA9wcm9kdWNlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwMJAQAAAAIhPQAAAAIJAQAAABFnZXRFdmVudFZhbHVlQnlJZAAAAAEFAAAABWV2ZW50BQAAAA9wcm9kdWNlckFkZHJlc3MJAAACAAAAAQIAAAAjWW91IGhhdmUgbm90IGNyZWF0ZWQgYW55IEV2ZW50IHlldCEDCQAAZwAAAAIFAAAAB2RhdGVOb3cJAQAAABFnZXRFdmVudERhdGVWYWx1ZQAAAAEFAAAABWV2ZW50CQAAAgAAAAECAAAAH1RoaXMgZXZlbnQgaGFzIGFscmVhZHkgaGFwcGVuZWQDCQEAAAAVZ2V0RXZlbnRDYW5jZWxlZFZhbHVlAAAAAQUAAAAFZXZlbnQJAAACAAAAAQIAAAAfVGhpcyBldmVudCB3YXMgYWxyZWFkeSBjYW5jZWxlZAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAE2dldEV2ZW50Q2FuY2VsZWRLZXkAAAABBQAAAAVldmVudAYFAAAAA25pbAAAAAFpAQAAAAxyZWZ1bmRUaWNrZXQAAAACAAAABWV2ZW50AAAABmFtb3VudAQAAAAPYXR0ZW5kZWVBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQAAZwAAAAIAAAAAAAAAAAAJAQAAABVnZXRFdmVudEF0dGVuZGVlVmFsdWUAAAACBQAAAAVldmVudAUAAAAPYXR0ZW5kZWVBZGRyZXNzCQAAAgAAAAECAAAAL1lvdSBoYXZlIG5vIHJlZ2lzdGVyZWQgdGlja2V0IHdpdGggdGhpcyBhZGRyZXNzCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAE2dldEV2ZW50QXR0ZW5kZWVLZXkAAAACBQAAAAVldmVudAUAAAAPYXR0ZW5kZWVBZGRyZXNzCQAAZQAAAAIJAQAAABVnZXRFdmVudEF0dGVuZGVlVmFsdWUAAAACBQAAAAVldmVudAUAAAAPYXR0ZW5kZWVBZGRyZXNzBQAAAAZhbW91bnQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAD2F0dGVuZGVlQWRkcmVzcwkAAGgAAAACBQAAAAZhbW91bnQJAQAAABVnZXRFdmVudEF0dGVuZGVlVmFsdWUAAAACBQAAAAVldmVudAUAAAAPYXR0ZW5kZWVBZGRyZXNzBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAId2l0aGRyYXcAAAACAAAABWV2ZW50AAAAB2RhdGVOb3cEAAAAD3Byb2R1Y2VyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAdiYWxhbmNlCQEAAAAXZ2V0UHJvZHVjZXJCYWxhbmNlVmFsdWUAAAABBQAAAA9wcm9kdWNlckFkZHJlc3MDCQAAZwAAAAIAAAAAAAAAAAAFAAAAB2JhbGFuY2UJAAACAAAAAQIAAAAUSW5zdWZmaWNpZW50IGJhbGFuY2UDCQAAZwAAAAIJAQAAABFnZXRFdmVudERhdGVWYWx1ZQAAAAEFAAAABWV2ZW50BQAAAAdkYXRlTm93CQAAAgAAAAECAAAARUV2ZW50IGhhcyBub3QgeWV0IHRha2VuIHBsYWNlLiBXaXRoZHJhdyBmdW5kcyB3aGVuIGV2ZW50IHRha2VzIHBsYWNlLgMJAQAAABVnZXRFdmVudENhbmNlbGVkVmFsdWUAAAABBQAAAAVldmVudAkAAAIAAAABAgAAABdFdmVudCBoYXMgYmVlbiBjYW5jZWxlZAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABVnZXRQcm9kdWNlckJhbGFuY2VLZXkAAAABBQAAAA9wcm9kdWNlckFkZHJlc3MAAAAAAAAAAAAFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAAD3Byb2R1Y2VyQWRkcmVzcwUAAAAHYmFsYW5jZQUAAAAEdW5pdAUAAAADbmlsAAAAAD8pMg8=", "chainId": 84, "height": 901852, "spentComplexity": 0 } View: original | compacted Prev: J5W7afC5QwEnQWWHBmDJyJAhAo3C3m4xTfrjKf8wAr2y Next: HaHUu2QuTtxHkiZ9FWFnCox3jw4EhfANbirMCzM714Q2 Diff:
OldNewDifferences
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)))
131- then throw(((("You send too much money. You sent: " + toString(pmt.amount)) + ". Expected: ") + toString((amount * price))))
131+ 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))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let keyEventPrefix = "event_"
55
66 let keyEventDataPrefix = "data_"
77
88 let keyEventPricePrefix = "price_"
99
1010 let keyEventDatePrefix = "date_"
1111
1212 let keyEventAttendee = "attendee_"
1313
1414 let keyEventAttendeeValidator = "val_"
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 }
3131 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) = (((keyEventAttendee + 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)))
131- then throw(((("You send too much money. You sent: " + toString(pmt.amount)) + ". Expected: ") + toString((amount * price))))
131+ 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 WriteSet([DataEntry(getEventAttendeeKey(userAddress, event), (getEventAttendeeValue(userAddress, event) + amount)), DataEntry(getProducerBalanceKey(supplierAddress), (getProducerBalanceValue(supplierAddress) + pmt.amount)), DataEntry(getEventAmountTicketsKey(event), (getEventAmountTicketsValue(event) - 1))])
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,amount) = {
159159 let attendeeAddress = toBase58String(i.caller.bytes)
160160 if ((0 >= getEventAttendeeValue(event, attendeeAddress)))
161161 then throw("You have no registered ticket with this address")
162162 else if (getEventCanceledValue(event))
163163 then throw("This event was canceled. You can redeem your ticket using refundTicket function")
164164 else WriteSet([DataEntry(getEventAttendeeKey(event, attendeeAddress), (getEventAttendeeValue(event, attendeeAddress) - amount))])
165165 }
166166
167167
168168
169169 @Callable(i)
170170 func cancelEvent (event,dateNow) = {
171171 let producerAddress = toBase58String(i.caller.bytes)
172172 if ((getEventValueById(event) != producerAddress))
173173 then throw("You have not created any Event yet!")
174174 else if ((dateNow >= getEventDateValue(event)))
175175 then throw("This event has already happened")
176176 else if (getEventCanceledValue(event))
177177 then throw("This event was already canceled")
178178 else WriteSet([DataEntry(getEventCanceledKey(event), true)])
179179 }
180180
181181
182182
183183 @Callable(i)
184184 func refundTicket (event,amount) = {
185185 let attendeeAddress = toBase58String(i.caller.bytes)
186186 if ((0 >= getEventAttendeeValue(event, attendeeAddress)))
187187 then throw("You have no registered ticket with this address")
188188 else ScriptResult(WriteSet([DataEntry(getEventAttendeeKey(event, attendeeAddress), (getEventAttendeeValue(event, attendeeAddress) - amount))]), TransferSet([ScriptTransfer(addressFromStringValue(attendeeAddress), (amount * getEventAttendeeValue(event, attendeeAddress)), unit)]))
189189 }
190190
191191
192192
193193 @Callable(i)
194194 func withdraw (event,dateNow) = {
195195 let producerAddress = toBase58String(i.caller.bytes)
196196 let balance = getProducerBalanceValue(producerAddress)
197197 if ((0 >= balance))
198198 then throw("Insufficient balance")
199199 else if ((getEventDateValue(event) >= dateNow))
200200 then throw("Event has not yet taken place. Withdraw funds when event takes place.")
201201 else if (getEventCanceledValue(event))
202202 then throw("Event has been canceled")
203203 else ScriptResult(WriteSet([DataEntry(getProducerBalanceKey(producerAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(producerAddress), balance, unit)]))
204204 }
205205
206206

github/deemru/w8io/873ac7e 
43.16 ms