tx · GGUV1k8YnYVvAuR8cfCFrAp2waXGyYcgmJiNcCesrEfg

3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk:  -0.01500000 Waves

2021.06.07 21:32 [1560301] smart account 3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk > SELF 0.00000000 Waves

{ "type": 13, "id": "GGUV1k8YnYVvAuR8cfCFrAp2waXGyYcgmJiNcCesrEfg", "fee": 1500000, "feeAssetId": null, "timestamp": 1623090787832, "version": 2, "chainId": 84, "sender": "3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk", "senderPublicKey": "BfXK2ez9xjdgWtoFNsnaGPRFjHcFixy3UUrQ2iN8wVfX", "proofs": [ "UKjLQ2tkxwBZiVcxgf3qEJVWYYMjrzpc9gd5GQ4Qr8J5fwLY6hCKB4nvn2CkhrHUepuKMqeCtYFfUUxJFpRcJfi" ], "script": "base64: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AAAAA25pbAkBAAAAFmNyZWF0ZVBhcmtpbmdTcG90U2xpY2UAAAAEBQAAAA1wYXJraW5nU3BvdElkBQAAAA1ib29rZWRFbmRUaW1lBQAAABJwYXJraW5nU3BvdEVuZFRpbWUJAABkAAAAAgUAAAANZXhpc3RpbmdTbGljZQAAAAAAAAAAAQMDCQAAAAAAAAIFAAAADWJvb2tlZEVuZFRpbWUFAAAAEnBhcmtpbmdTcG90RW5kVGltZQkBAAAAAiE9AAAAAgUAAAAPYm9va2VkU3RhcnRUaW1lBQAAABRwYXJraW5nU3BvdFN0YXJ0VGltZQcJAAROAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAdfc2xpY2VfCQABpAAAAAEFAAAADGRlc2lyZWRTbGljZQIAAAAHX3JlbnRlcgUAAAAGcmVudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAdfc2xpY2VfCQABpAAAAAEFAAAADGRlc2lyZWRTbGljZQIAAAAKX3N0YXJ0VGltZQUAAAAPYm9va2VkU3RhcnRUaW1lCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAdfc2xpY2VfCQABpAAAAAEFAAAADGRlc2lyZWRTbGljZQIAAAAIX2VuZFRpbWUFAAAADWJvb2tlZEVuZFRpbWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAANcGFya2luZ1Nwb3RJZAIAAAAGX3NsaWNlCQAAZAAAAAIFAAAADWV4aXN0aW5nU2xpY2UAAAAAAAAAAAEFAAAAA25pbAkBAAAAFmNyZWF0ZVBhcmtpbmdTcG90U2xpY2UAAAAEBQAAAA1wYXJraW5nU3BvdElkBQAAABRwYXJraW5nU3BvdFN0YXJ0VGltZQUAAAAPYm9va2VkU3RhcnRUaW1lCQAAZAAAAAIFAAAADWV4aXN0aW5nU2xpY2UAAAAAAAAAAAEJAAROAAAAAgkABE4AAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAB19zbGljZV8JAAGkAAAAAQUAAAAMZGVzaXJlZFNsaWNlAgAAAAdfcmVudGVyBQAAAAZyZW50ZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAB19zbGljZV8JAAGkAAAAAQUAAAAMZGVzaXJlZFNsaWNlAgAAAApfc3RhcnRUaW1lBQAAAA9ib29rZWRTdGFydFRpbWUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADXBhcmtpbmdTcG90SWQCAAAAB19zbGljZV8JAAGkAAAAAQUAAAAMZGVzaXJlZFNsaWNlAgAAAAhfZW5kVGltZQUAAAANYm9va2VkRW5kVGltZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAA1wYXJraW5nU3BvdElkAgAAAAZfc2xpY2UJAABkAAAAAgUAAAANZXhpc3RpbmdTbGljZQAAAAAAAAAAAgUAAAADbmlsCQEAAAAWY3JlYXRlUGFya2luZ1Nwb3RTbGljZQAAAAQFAAAADXBhcmtpbmdTcG90SWQFAAAAFHBhcmtpbmdTcG90U3RhcnRUaW1lBQAAAA9ib29rZWRTdGFydFRpbWUJAABkAAAAAgUAAAANZXhpc3RpbmdTbGljZQAAAAAAAAAAAQkBAAAAFmNyZWF0ZVBhcmtpbmdTcG90U2xpY2UAAAAEBQAAAA1wYXJraW5nU3BvdElkBQAAAA1ib29rZWRFbmRUaW1lBQAAABJwYXJraW5nU3BvdEVuZFRpbWUJAABkAAAAAgUAAAANZXhpc3RpbmdTbGljZQAAAAAAAAAAAgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V50PKmZw==", "height": 1560301, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9jadiwQiokxWMfw2cPm6FbcTeCFEQdYnHcFbz3nKVWeC Next: C7ip7iFcfjC5H7nxCuixXnCMHHCFshWXew39VTpiWJUh Diff:
OldNewDifferences
1717 func bookParkingSpotSlice (parkingSpotId,desiredSlice,startTime,endTime,renter) = {
1818 let payment = i.payments[0]
1919 let cost = getIntegerValue(this, (parkingSpotId + "_cost"))
20- if (isDefined(payment.assetId))
20+ if ((payment.assetId == unit))
2121 then throw("payment should be in waves")
2222 else if ((payment.amount != cost))
2323 then throw(((("payment is less than required, sent: " + toString(cost)) + " , required: ") + toString(cost)))
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)]
55
66
77 @Callable(i)
88 func createParkingSpot (owner,lat,long,startTime,endTime,cost) = {
99 let roundedStartTime = (startTime - (startTime % 3600))
1010 let roundedEndTime = (endTime - (endTime % 3600))
1111 ([StringEntry((toBase58String(i.transactionId) + "_owner"), owner), StringEntry((toBase58String(i.transactionId) + "_lat"), lat), StringEntry((toBase58String(i.transactionId) + "_long"), long), IntegerEntry((toBase58String(i.transactionId) + "_cost"), cost), IntegerEntry((toBase58String(i.transactionId) + "_slice"), 0)] ++ createParkingSpotSlice(toBase58String(i.transactionId), roundedStartTime, roundedEndTime, 0))
1212 }
1313
1414
1515
1616 @Callable(i)
1717 func bookParkingSpotSlice (parkingSpotId,desiredSlice,startTime,endTime,renter) = {
1818 let payment = i.payments[0]
1919 let cost = getIntegerValue(this, (parkingSpotId + "_cost"))
20- if (isDefined(payment.assetId))
20+ if ((payment.assetId == unit))
2121 then throw("payment should be in waves")
2222 else if ((payment.amount != cost))
2323 then throw(((("payment is less than required, sent: " + toString(cost)) + " , required: ") + toString(cost)))
2424 else {
2525 let bookedStartTime = (startTime - (startTime % 3600))
2626 let bookedEndTime = (endTime - (endTime % 3600))
2727 let parkingSpotStartTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_startTime"))
2828 let parkingSpotEndTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_endTime"))
2929 let existingSlice = getIntegerValue(this, (parkingSpotId + "_slice"))
3030 if (if ((parkingSpotStartTime > bookedStartTime))
3131 then true
3232 else (bookedEndTime > parkingSpotEndTime))
3333 then throw("time is out of range for parking spot")
3434 else {
3535 let existingRenter = getString(this, (((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_renter"))
3636 if ((existingRenter != unit))
3737 then throw("parking spot has already been booked")
3838 else if (if ((bookedStartTime == parkingSpotStartTime))
3939 then (bookedEndTime == parkingSpotEndTime)
4040 else false)
4141 then [StringEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_renter"), renter), IntegerEntry((((parkingSpotId + "_slice_") + toString(desiredSlice)) + "_slicetest0"), desiredSlice)]
4242 else if (if ((bookedStartTime == parkingSpotStartTime))
4343 then (bookedEndTime != parkingSpotEndTime)
4444 else false)
4545 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))] ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (existingSlice + 1)))
4646 else if (if ((bookedEndTime == parkingSpotEndTime))
4747 then (bookedStartTime != parkingSpotStartTime)
4848 else false)
4949 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))] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (existingSlice + 1)))
5050 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))] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (existingSlice + 1))) ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (existingSlice + 2)))
5151 }
5252 }
5353 }
5454
5555
5656 @Verifier(tx)
5757 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
5858

github/deemru/w8io/026f985 
34.52 ms