tx · 2SxivbykZqMdXAdLak9czYKFm3JeVGDrXd57irtSEnfN

3NBLe4xzkgpMKGWL8QgqDkVnkxHnLsGsi3a:  -0.09000000 Waves

2021.07.23 17:47 [1626412] smart account 3NBLe4xzkgpMKGWL8QgqDkVnkxHnLsGsi3a > SELF 0.00000000 Waves

{ "type": 13, "id": "2SxivbykZqMdXAdLak9czYKFm3JeVGDrXd57irtSEnfN", "fee": 9000000, "feeAssetId": null, "timestamp": 1627051674668, "version": 2, "chainId": 84, "sender": "3NBLe4xzkgpMKGWL8QgqDkVnkxHnLsGsi3a", "senderPublicKey": "GrooFTfmnAwZPXYbL5faJSzKDpyALDvuhUU9V5ztzFxy", "proofs": [ "5EfHZFVxVCJ5rwHeQ3q8CYeE33qEh3SnxU3HqhvgyVu6UZewn6Wy4yiHvYuM3SPFijAVjujM1SxUgSp4vycY4Pr8" ], "script": "base64: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AAEAAAANcGFya2luZ1Nwb3RJZAQAAAAVcGFya2luZ1Nwb3RQYXlvdXRUaW1lCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAC19wYXlvdXRUaW1lBAAAAAVvd25lcgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAZfb3duZXIEAAAAEHBheWVkUGFya2luZ1Nwb3QJAAQbAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAZfcGF5ZWQEAAAAD2F2YWlsYWJsZVBheW91dAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAABBfYXZhaWxhYmxlUGF5b3V0BAAAAAtjdXJyZW50VGltZQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXADCQEAAAACIT0AAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAFb3duZXIJAAACAAAAAQIAAAArY2FsbGVyIGRvZXMgbm90IG1hdGNoIG93bmVyIG9mIHBhcmtpbmcgc3BvdAMJAABmAAAAAgUAAAAVcGFya2luZ1Nwb3RQYXlvdXRUaW1lCQAAaQAAAAIFAAAAC2N1cnJlbnRUaW1lAAAAAAAAAAPoCQAAAgAAAAECAAAAOnBheW91dCBjYW4gb25seSBoYXBwZW4gb25lIGhvdXIgYWZ0ZXIgcGFya2luZyBzcG90IGVuZHRpbWUDCQAAAAAAAAIFAAAAD2F2YWlsYWJsZVBheW91dAAAAAAAAAAAAAkAAAIAAAABAgAAAB9hdmFpbGFibGUgcGF5b3V0IGlzIDAsIHNraXBwaW5nCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAEF9hdmFpbGFibGVQYXlvdXQAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyBQAAAA9hdmFpbGFi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IGFjdGl2ZSBjb21wbGFpbnQsIHBsZWFzZSByZXNvbHZlIGl0IGZpcnN0AwkAAAAAAAACBQAAABVwYXllZFBhcmtpbmdTcG90U2xpY2UGCQAAAgAAAAECAAAALXNsaWNlIGhhcyBhbHJlYWR5IGJlZW4gcGF5ZWQsIGRlbnlpbmcgcGF5bWVudAMJAAAAAAAAAgUAAAAQcGF5ZWRQYXJraW5nU3BvdAYJAAACAAAAAQIAAAA6d2hvbGUgcGFya2luZyBzcG90IGhhcyBhbHJlYWR5IGJlZW4gcGF5ZWQsIGRlbnlpbmcgcGF5bWVudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAABBfYXZhaWxhYmxlUGF5b3V0CQAAZQAAAAIFAAAAD2F2YWlsYWJsZVBheW91dAUAAAAJc2xpY2VDb3N0CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAJc2xpY2VDb3N0BQAAAAR1bml0CQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAdfc2xpY2VfCQABpAAAAAEFAAAABXNsaWNlAgAAAAZfcGF5ZWQGBQAAAANuaWwAAAABaQEAAAAUYm9va1BhcmtpbmdTcG90U2xpY2UAAAAFAAAADXBhcmtpbmdTcG90SWQAAAAMZGVzaXJlZFNsaWNlAAAACXN0YXJ0VGltZQAAAAdlbmRUaW1lAAAABnJlbnRlcgQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAPYm9va2VkU3RhcnRUaW1lCQAAZQAAAAIFAAAACXN0YXJ0VGltZQkAAGoAAAACBQAAAAlzdGFydFRpbWUAAAAAAAAADhAEAAAADWJvb2tlZEVuZFRpbWUJAABlAAAAAgUAAAAHZW5kVGltZQkAAGoAAAACBQAAAAdlbmRUaW1lAAAAAAAAAA4QBAAAABRwYXJraW5nU3BvdFN0YXJ0VGltZQkBAAAAEUBleHRyTmF0aXZlKDEw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AAAJdG90YWxDb3N0BQAAAANuaWwDAwkAAAAAAAACBQAAAA9ib29rZWRTdGFydFRpbWUFAAAAFHBhcmtpbmdTcG90U3RhcnRUaW1lCQEAAAACIT0AAAACBQAAAA1ib29rZWRFbmRUaW1lBQAAABJwYXJraW5nU3BvdEVuZFRpbWUHCQAETgAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAHX3NsaWNlXwkAAaQAAAABBQAAAAxkZXNpcmVkU2xpY2UCAAAAB19yZW50ZXIFAAAABnJlbnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAHX3NsaWNlXwkAAaQAAAABBQAAAAxkZXNpcmVkU2xpY2UCAAAACl9zdGFydFRpbWUFAAAAD2Jvb2tlZFN0YXJ0VGltZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAHX3NsaWNlXwkAAaQAAAABBQAAAAxkZXNpcmVkU2xpY2UCAAAACF9lbmRUaW1lBQAAAA1ib29rZWRFbmRUaW1lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAABl9zbGljZQkAAGQAAAACBQAAAA1leGlzdGluZ1NsaWNlAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAEF9hdmFpbGFibGVQYXlvdXQJAABkAAAAAgUAAAAPYXZhaWxhYmxlUGF5b3V0BQAAAAl0b3RhbENvc3QFAAAAA25pbAkBAAAAFmNyZWF0ZVBhcmtpbmdTcG90U2xpY2UAAAAEBQAAAA1wYXJraW5nU3BvdElkBQAAAA1ib29rZWRFbmRUaW1lBQAAABJwYXJraW5nU3BvdEVuZFRpbWUJAABkAAAAAgUAAAANZXhpc3RpbmdTbGljZQAAAAAAAAAAAQMDCQAAAAAAAAIFAAAADWJvb2tlZEVuZFRpbWUFAAAAEnBhcmtpbmdTcG90RW5kVGltZQkBAAAAAiE9AAAAAgUAAAAPYm9va2VkU3RhcnRUaW1lBQAAABRwYXJraW5nU3BvdFN0YXJ0VGltZQcJAAROAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAdfc2xpY2VfCQABpAAAAAEFAAAADGRlc2lyZWRTbGljZQIAAAAHX3JlbnRlcgUAAAAGcmVudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAdfc2xpY2VfCQABpAAAAAEFAAAADGRlc2lyZWRTbGljZQIAAAAKX3N0YXJ0VGltZQUAAAAPYm9va2VkU3RhcnRUaW1lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAdfc2xpY2VfCQABpAAAAAEFAAAADGRlc2lyZWRTbGljZQIAAAAIX2VuZFRpbWUFAAAADWJvb2tlZEVuZFRpbWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAGX3NsaWNlCQAAZAAAAAIFAAAADWV4aXN0aW5nU2xpY2UAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAQX2F2YWlsYWJsZVBheW91dAkAAGQAAAACBQAAAA9hdmFpbGFibGVQYXlvdXQFAAAACXRvdGFsQ29zdAUAAAADbmlsCQEAAAAWY3JlYXRlUGFya2luZ1Nwb3RTbGljZQAAAAQFAAAADXBhcmtpbmdTcG90SWQFAAAAFHBhcmtpbmdTcG90U3RhcnRUaW1lBQAAAA9ib29rZWRTdGFydFRpbWUJAABkAAAAAgUAAAANZXhpc3RpbmdTbGljZQAAAAAAAAAAAQkABE4AAAACCQAETgAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAHX3NsaWNlXwkAAaQAAAABBQAAAAxkZXNpcmVkU2xpY2UCAAAAB19yZW50ZXIFAAAABnJlbnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAHX3NsaWNlXwkAAaQAAAABBQAAAAxkZXNpcmVkU2xpY2UCAAAACl9zdGFydFRpbWUFAAAAD2Jvb2tlZFN0YXJ0VGltZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAHX3NsaWNlXwkAAaQAAAABBQAAAAxkZXNpcmVkU2xpY2UCAAAACF9lbmRUaW1lBQAAAA1ib29rZWRFbmRUaW1lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAABl9zbGljZQkAAGQAAAACBQAAAA1leGlzdGluZ1NsaWNlAAAAAAAAAAACCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAEF9hdmFpbGFibGVQYXlvdXQJAABkAAAAAgUAAAAPYXZhaWxhYmxlUGF5b3V0BQAAAAl0b3RhbENvc3QFAAAAA25pbAkBAAAAFmNyZWF0ZVBhcmtpbmdTcG90U2xpY2UAAAAEBQAAAA1wYXJraW5nU3BvdElkBQAAABRwYXJraW5nU3BvdFN0YXJ0VGltZQUAAAAPYm9va2VkU3RhcnRUaW1lCQAAZAAAAAIFAAAADWV4aXN0aW5nU2xpY2UAAAAAAAAAAAEJAQAAABZjcmVhdGVQYXJraW5nU3BvdFNsaWNlAAAABAUAAAANcGFya2luZ1Nwb3RJZAUAAAANYm9va2VkRW5kVGltZQUAAAAScGFya2luZ1Nwb3RFbmRUaW1lCQAAZAAAAAIFAAAADWV4aXN0aW5nU2xpY2UAAAAAAAAAAAIAAAABaQEAAAALdXBsb2FkSW1hZ2UAAAAEAAAADXBhcmtpbmdTcG90SWQAAAAFaW5kZXgAAAAFY2h1bmsAAAAObnVtYmVyT2ZDaHVua3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAB19jaHVua18JAAGkAAAAAQUAAAAFaW5kZXgFAAAABWNodW5rCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAEV9udW1iZXJfb2ZfY2h1bmtzBQAAAA5udW1iZXJPZkNodW5rcwUAAAADbmlsAAAAAWkBAAAADWZpbGVDb21wbGFpbnQAAAADAAAADXBhcmtpbmdTcG90SWQAAAAFc2xpY2UAAAANY29tcGxhaW50VGV4dAQAAAAUcGFya2luZ1Nwb3RTdGFydFRpbWUJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAB19zbGljZV8JAAGkAAAAAQUAAAAFc2xpY2UCAAAACl9zdGFydFRpbWUEAAAAEnBhcmtpbmdTcG90RW5kVGltZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAHX3NsaWNlXwkAAaQAAAABBQAAAAVzbGljZQIAAAAIX2VuZFRpbWUEAAAAC2Nvc3RQZXJIb3VyCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAABV9jb3N0BAAAAAlzbGljZUNvc3QJAABpAAAAAgkAAGgAAAACBQAAAAtjb3N0UGVySG91cgkAAGUAAAACBQAAABJwYXJraW5nU3BvdEVuZFRpbWUFAAAAFHBhcmtpbmdTcG90U3RhcnRUaW1lAAAAAAAAAA4QBAAAABVwYXllZFBhcmtpbmdTcG90U2xpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUxKQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAB19zbGljZV8JAAGkAAAAAQUAAAAFc2xpY2UCAAAABl9wYXllZAQAAAAPYXZhaWxhYmxlUGF5b3V0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAEF9hdmFpbGFibGVQYXlvdXQEAAAADWJsb2NrZWRQYXlvdXQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAPX2Jsb2Fja2VkUGF5b3V0BAAAAAtjdXJyZW50VGltZQgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAEAAAABnJlbnRlcgkABB0AAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAdfc2xpY2VfCQABpAAAAAEFAAAABXNsaWNlAgAAAAdfcmVudGVyBAAAAAljb21wbGFpbnQJAAQdAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAHX3NsaWNlXwkAAaQAAAABBQAAAAVzbGljZQIAAAAKX2NvbXBsYWludAMJAQAAAAIhPQAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAAAZyZW50ZXIJAAACAAAAAQIAAAAyY2FsbGVyIGRvZXMgbm90IG1hdGNoIHJlbnRlciBvZiBwYXJraW5nIHNwb3Qgc2xpY2UDCQAAZgAAAAIJAABpAAAAAgUAAAALY3VycmVudFRpbWUAAAAAAAAAA+gJAABkAAAAAgUAAAAScGFya2luZ1Nwb3RFbmRUaW1lAAAAAAAAAA4QCQAAAgAAAAECAAAATnlvdSBjYW4gb25seSBmaWxlIGEgY29tcGxhaW50IHVudGlsIG9uZSBob3VyIGFmdGVyIHRoZSBwYXJraW5nIHNwb3Qgc2xpY2UgZW5kcwMJAQAAAAIhPQAAAAIFAAAACWNvbXBsYWludAUAAAAEdW5pdAkAAAIAAAABAgAAAD10aGVyZSBpcyBhbHJlYWR5IGFuIGFjdGl2ZSBjb21wbGFpbnQsIHBsZWFzZSByZXNvbHZlIGl0IGZpcnN0CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAB19zbGljZV8JAAGkAAAAAQUAAAAFc2xpY2UCAAAACl9jb21wbGFpbnQFAAAADWNvbXBsYWludFRleHQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAQX2F2YWlsYWJsZVBheW91dAkAAGUAAAACBQAAAA9hdmFpbGFibGVQYXlvdXQFAAAACXNsaWNlQ29zdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAA5fYmxvY2tlZFBheW91dAkAAGQAAAACBQAAAA1ibG9ja2VkUGF5b3V0BQAAAAlzbGljZUNvc3QFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5uL2H9Q==", "height": 1626412, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: E9Ji2k8n14WG5WpuZaQbcQE8LayQsjwZvz84cxACptu7 Next: 9ytV1gjpUssSsQ4B8XGf62QntwXLT4Ze3zNxUQAYSN57 Diff:
OldNewDifferences
126126 then throw("you can only file a complaint until one hour after the parking spot slice ends")
127127 else if ((complaint != unit))
128128 then throw("there is already an active complaint, please resolve it first")
129- else [StringEntry(((parkingSpotId + "_slice_") + toString(slice)), complaintText), IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout - sliceCost)), IntegerEntry((parkingSpotId + "_blockedPayout"), (blockedPayout + sliceCost))]
129+ else [StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_complaint"), complaintText), IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout - sliceCost)), IntegerEntry((parkingSpotId + "_blockedPayout"), (blockedPayout + sliceCost))]
130130 }
131131
132132
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func createParkingSpotSlice (parkingSpotId,startTime,endTime,slice) = [IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"), startTime), IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_endTime"), endTime), BooleanEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_payed"), false)]
55
66
77 @Callable(i)
88 func createParkingSpot (lat,long,startTime,endTime,cost,description) = {
99 let roundedStartTime = (startTime - (startTime % 3600))
1010 let roundedEndTime = (endTime - (endTime % 3600))
1111 ([StringEntry((toBase58String(i.transactionId) + "_owner"), toString(i.caller)), StringEntry((toBase58String(i.transactionId) + "_lat"), lat), StringEntry((toBase58String(i.transactionId) + "_long"), long), IntegerEntry((toBase58String(i.transactionId) + "_cost"), cost), IntegerEntry((toBase58String(i.transactionId) + "_slice"), 0), IntegerEntry((toBase58String(i.transactionId) + "_payoutTime"), (roundedEndTime + 3600)), IntegerEntry((toBase58String(i.transactionId) + "_availablePayout"), 0), IntegerEntry((toBase58String(i.transactionId) + "_blockedPayout"), 0), StringEntry((toBase58String(i.transactionId) + "_description"), description)] ++ createParkingSpotSlice(toBase58String(i.transactionId), roundedStartTime, roundedEndTime, 0))
1212 }
1313
1414
1515
1616 @Callable(i)
1717 func payoutParkingSpot (parkingSpotId) = {
1818 let parkingSpotPayoutTime = getIntegerValue(this, (parkingSpotId + "_payoutTime"))
1919 let owner = getStringValue(this, (parkingSpotId + "_owner"))
2020 let payedParkingSpot = getBoolean(this, (parkingSpotId + "_payed"))
2121 let availablePayout = getIntegerValue(this, (parkingSpotId + "_availablePayout"))
2222 let currentTime = lastBlock.timestamp
2323 if ((toString(i.caller) != owner))
2424 then throw("caller does not match owner of parking spot")
2525 else if ((parkingSpotPayoutTime > (currentTime / 1000)))
2626 then throw("payout can only happen one hour after parking spot endtime")
2727 else if ((availablePayout == 0))
2828 then throw("available payout is 0, skipping")
2929 else [IntegerEntry((parkingSpotId + "_availablePayout"), 0), ScriptTransfer(i.caller, availablePayout, unit), BooleanEntry((parkingSpotId + "_payed"), true)]
3030 }
3131
3232
3333
3434 @Callable(i)
3535 func payoutParkingSpotSlice (parkingSpotId,slice) = {
3636 let parkingSpotStartTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"))
3737 let parkingSpotEndTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_endTime"))
3838 let parkingSpotPayoutTime = getIntegerValue(this, (parkingSpotId + "_payoutTime"))
3939 let costPerHour = getIntegerValue(this, (parkingSpotId + "_cost"))
4040 let sliceCost = ((costPerHour * (parkingSpotEndTime - parkingSpotStartTime)) / 3600)
4141 let owner = getStringValue(this, (parkingSpotId + "_owner"))
4242 let complaint = getString(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_complaint"))
4343 let payedParkingSpotSlice = getBooleanValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_payed"))
4444 let payedParkingSpot = getBoolean(this, (parkingSpotId + "_payed"))
4545 let availablePayout = getIntegerValue(this, (parkingSpotId + "_availablePayout"))
4646 let currentTime = lastBlock.timestamp
4747 if ((toString(i.caller) != owner))
4848 then throw("caller does not match owner of parking spot")
4949 else if (((currentTime / 1000) > parkingSpotPayoutTime))
5050 then throw("parking spot payout time is due, please cash out all slices at once")
5151 else if (((parkingSpotEndTime + 3600) > (currentTime / 1000)))
5252 then throw("you have to wait one hour, until you can receive the payment for this slice")
5353 else if ((complaint != unit))
5454 then throw("there is an active complaint, please resolve it first")
5555 else if ((payedParkingSpotSlice == true))
5656 then throw("slice has already been payed, denying payment")
5757 else if ((payedParkingSpot == true))
5858 then throw("whole parking spot has already been payed, denying payment")
5959 else [IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout - sliceCost)), ScriptTransfer(i.caller, sliceCost, unit), BooleanEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_payed"), true)]
6060 }
6161
6262
6363
6464 @Callable(i)
6565 func bookParkingSpotSlice (parkingSpotId,desiredSlice,startTime,endTime,renter) = {
6666 let payment = value(i.payments[0])
6767 let bookedStartTime = (startTime - (startTime % 3600))
6868 let bookedEndTime = (endTime - (endTime % 3600))
6969 let parkingSpotStartTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_startTime"))
7070 let parkingSpotEndTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_endTime"))
7171 let existingSlice = getIntegerValue(this, (parkingSpotId + "_slice"))
7272 let costPerHour = getIntegerValue(this, (parkingSpotId + "_cost"))
7373 let totalCost = ((costPerHour * (bookedEndTime - bookedStartTime)) / 3600)
7474 let availablePayout = getIntegerValue(this, (parkingSpotId + "_availablePayout"))
7575 let existingRenter = getString(this, (((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_renter"))
7676 let currentTime = (lastBlock.timestamp / 1000)
7777 if (!(isDefined(payment)))
7878 then throw("no payment defined")
7979 else if ((payment.assetId != unit))
8080 then throw("payment should be in waves")
8181 else if ((payment.amount != totalCost))
8282 then throw((((("payment does not match cost, got '" + toString(payment.amount)) + "' Waves, excpected: '") + toString(totalCost)) + "' Waves."))
8383 else if (if ((parkingSpotStartTime > bookedStartTime))
8484 then true
8585 else (bookedEndTime > parkingSpotEndTime))
8686 then throw("time is out of range for parking spot")
8787 else if ((existingRenter != unit))
8888 then throw("parking spot has already been booked")
8989 else if (if ((bookedStartTime == parkingSpotStartTime))
9090 then (bookedEndTime == parkingSpotEndTime)
9191 else false)
9292 then [StringEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_renter"), renter), IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout + totalCost))]
9393 else if (if ((bookedStartTime == parkingSpotStartTime))
9494 then (bookedEndTime != parkingSpotEndTime)
9595 else false)
9696 then ([StringEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_renter"), renter), IntegerEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_startTime"), bookedStartTime), IntegerEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_endTime"), bookedEndTime), IntegerEntry((parkingSpotId + "_slice"), (existingSlice + 1)), IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout + totalCost))] ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (existingSlice + 1)))
9797 else if (if ((bookedEndTime == parkingSpotEndTime))
9898 then (bookedStartTime != parkingSpotStartTime)
9999 else false)
100100 then ([StringEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_renter"), renter), IntegerEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_startTime"), bookedStartTime), IntegerEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_endTime"), bookedEndTime), IntegerEntry((parkingSpotId + "_slice"), (existingSlice + 1)), IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout + totalCost))] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (existingSlice + 1)))
101101 else (([StringEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_renter"), renter), IntegerEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_startTime"), bookedStartTime), IntegerEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_endTime"), bookedEndTime), IntegerEntry((parkingSpotId + "_slice"), (existingSlice + 2)), IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout + totalCost))] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (existingSlice + 1))) ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (existingSlice + 2)))
102102 }
103103
104104
105105
106106 @Callable(i)
107107 func uploadImage (parkingSpotId,index,chunk,numberOfChunks) = [StringEntry(((parkingSpotId + "_chunk_") + toString(index)), chunk), IntegerEntry((parkingSpotId + "_number_of_chunks"), numberOfChunks)]
108108
109109
110110
111111 @Callable(i)
112112 func fileComplaint (parkingSpotId,slice,complaintText) = {
113113 let parkingSpotStartTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"))
114114 let parkingSpotEndTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_endTime"))
115115 let costPerHour = getIntegerValue(this, (parkingSpotId + "_cost"))
116116 let sliceCost = ((costPerHour * (parkingSpotEndTime - parkingSpotStartTime)) / 3600)
117117 let payedParkingSpotSlice = getBooleanValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_payed"))
118118 let availablePayout = getIntegerValue(this, (parkingSpotId + "_availablePayout"))
119119 let blockedPayout = getIntegerValue(this, (parkingSpotId + "_bloackedPayout"))
120120 let currentTime = lastBlock.timestamp
121121 let renter = getString(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_renter"))
122122 let complaint = getString(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_complaint"))
123123 if ((toString(i.caller) != renter))
124124 then throw("caller does not match renter of parking spot slice")
125125 else if (((currentTime / 1000) > (parkingSpotEndTime + 3600)))
126126 then throw("you can only file a complaint until one hour after the parking spot slice ends")
127127 else if ((complaint != unit))
128128 then throw("there is already an active complaint, please resolve it first")
129- else [StringEntry(((parkingSpotId + "_slice_") + toString(slice)), complaintText), IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout - sliceCost)), IntegerEntry((parkingSpotId + "_blockedPayout"), (blockedPayout + sliceCost))]
129+ else [StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_complaint"), complaintText), IntegerEntry((parkingSpotId + "_availablePayout"), (availablePayout - sliceCost)), IntegerEntry((parkingSpotId + "_blockedPayout"), (blockedPayout + sliceCost))]
130130 }
131131
132132
133133 @Verifier(tx)
134134 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
135135

github/deemru/w8io/169f3d6 
42.25 ms