tx · 7AHHT3XXpje6pfzqQLGsDR2wQHWDUgxkH36ajRVLms2c

3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk:  -0.01500000 Waves

2021.06.04 18:29 [1555802] smart account 3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk > SELF 0.00000000 Waves

{ "type": 13, "id": "7AHHT3XXpje6pfzqQLGsDR2wQHWDUgxkH36ajRVLms2c", "fee": 1500000, "feeAssetId": null, "timestamp": 1622820583821, "version": 2, "chainId": 84, "sender": "3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk", "senderPublicKey": "BfXK2ez9xjdgWtoFNsnaGPRFjHcFixy3UUrQ2iN8wVfX", "proofs": [ "4nJvvw8uFpBvqjBnRmjEPxjGLmPmcHvqWU1FGra1BgXyJUB6x5xFj5NSV1i9jvCEQCph7tp2rZvTsmswEw5rJs6i" ], "script": "base64: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", "height": 1555802, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2muLREsdsNEzCcWV3TmizEMrKD2DrZhhQJkoKh9R19J3 Next: 5TxjzkFww5CU9Uiqtggwwj6RcrRUrbKQh26ZbedTpcDu Diff:
OldNewDifferences
66
77 @Callable(i)
88 func createParkingSpot (owner,lat,long,startTime,endTime,cost) = {
9- let roundedStartTime = (startTime - (startTime % 3600))
10- let roundedEndTime = (endTime - (endTime % 3600))
11- let data = createParkingSpotSlice(toBase64String(i.transactionId), roundedStartTime, roundedEndTime, 0)
9+ let bookedStartTime = (startTime - (startTime % 3600))
10+ let bookedEndTime = (endTime - (endTime % 3600))
11+ let data = createParkingSpotSlice(toBase64String(i.transactionId), bookedStartTime, bookedEndTime, 0)
1212 ([StringEntry((toBase58String(i.transactionId) + "_owner"), owner), IntegerEntry((toBase58String(i.transactionId) + "_lat"), lat), IntegerEntry((toBase58String(i.transactionId) + "_long"), long), IntegerEntry((toBase58String(i.transactionId) + "_cost"), cost), IntegerEntry((toBase58String(i.transactionId) + "_slice"), 0)] ++ data)
1313 }
1414
1515
1616
1717 @Callable(i)
18-func rentParkingSpotEfficient (parkingSpotId,slice,startTime,endTime,renter) = {
19- let roundedStartTime = (startTime - (startTime % 3600))
20- let roundedEndTime = (startTime - (startTime % 3600))
18+func bookParkingSpotSlice (parkingSpotId,slice,startTime,endTime,renter) = {
19+ let bookedStartTime = (startTime - (startTime % 3600))
20+ let bookedEndTime = (startTime - (startTime % 3600))
2121 let parkingSpotStartTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"))
2222 let parkingSpotEndTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_endTime"))
23- if (if ((parkingSpotStartTime > roundedStartTime))
23+ if (if ((parkingSpotStartTime > bookedStartTime))
2424 then true
25- else ((roundedStartTime + 3600) > parkingSpotEndTime))
25+ else ((bookedStartTime + 3600) > parkingSpotEndTime))
2626 then throw("time is out of range for parking spot")
2727 else {
2828 let existingRenter = getString(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_renter"))
2929 if ((existingRenter != unit))
3030 then throw("parking spot has already been booked")
31- else if (if ((roundedStartTime == parkingSpotStartTime))
32- then (roundedStartTime == parkingSpotEndTime)
31+ else if (if ((bookedStartTime == parkingSpotStartTime))
32+ then (bookedStartTime == parkingSpotEndTime)
3333 else false)
3434 then [StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)]
35- else if ((roundedStartTime == parkingSpotStartTime))
36- then ([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] ++ createParkingSpotSlice(parkingSpotId, roundedEndTime, parkingSpotEndTime, (slice + 1)))
37- else if ((roundedEndTime == parkingSpotEndTime))
38- then [StringEntry((((parkingSpotId + "_") + toString(roundedStartTime)) + "_booked"), renter)]
39- else [StringEntry((((parkingSpotId + "_") + toString(roundedStartTime)) + "_booked"), renter)]
40- }
41- }
42-
43-
44-
45-@Callable(i)
46-func rentParkingSpot (parkingSpotId,startTime,renter) = {
47- let roundedStartTime = (startTime - (startTime % 3600))
48- let parkingSpotStartTime = getIntegerValue(this, (parkingSpotId + "_startTime"))
49- let parkingSpotEndTime = getIntegerValue(this, (parkingSpotId + "_endTime"))
50- if (if ((parkingSpotStartTime > roundedStartTime))
51- then true
52- else ((roundedStartTime + 3600) > parkingSpotEndTime))
53- then throw("time is out of range for parking spot")
54- else {
55- let bookingEntry = getString(this, (((parkingSpotId + "_") + toString(roundedStartTime)) + "_booked"))
56- if ((bookingEntry != unit))
57- then throw("timeslot has already been booked")
58- else [StringEntry((((parkingSpotId + "_") + toString(roundedStartTime)) + "_booked"), renter)]
35+ else if ((bookedStartTime == parkingSpotStartTime))
36+ then ([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (slice + 1)))
37+ else if ((bookedEndTime == parkingSpotEndTime))
38+ then ([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (slice + 1)))
39+ else (([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (slice + 1))) ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (slice + 2)))
5940 }
6041 }
6142
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) = {
9- let roundedStartTime = (startTime - (startTime % 3600))
10- let roundedEndTime = (endTime - (endTime % 3600))
11- let data = createParkingSpotSlice(toBase64String(i.transactionId), roundedStartTime, roundedEndTime, 0)
9+ let bookedStartTime = (startTime - (startTime % 3600))
10+ let bookedEndTime = (endTime - (endTime % 3600))
11+ let data = createParkingSpotSlice(toBase64String(i.transactionId), bookedStartTime, bookedEndTime, 0)
1212 ([StringEntry((toBase58String(i.transactionId) + "_owner"), owner), IntegerEntry((toBase58String(i.transactionId) + "_lat"), lat), IntegerEntry((toBase58String(i.transactionId) + "_long"), long), IntegerEntry((toBase58String(i.transactionId) + "_cost"), cost), IntegerEntry((toBase58String(i.transactionId) + "_slice"), 0)] ++ data)
1313 }
1414
1515
1616
1717 @Callable(i)
18-func rentParkingSpotEfficient (parkingSpotId,slice,startTime,endTime,renter) = {
19- let roundedStartTime = (startTime - (startTime % 3600))
20- let roundedEndTime = (startTime - (startTime % 3600))
18+func bookParkingSpotSlice (parkingSpotId,slice,startTime,endTime,renter) = {
19+ let bookedStartTime = (startTime - (startTime % 3600))
20+ let bookedEndTime = (startTime - (startTime % 3600))
2121 let parkingSpotStartTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"))
2222 let parkingSpotEndTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_endTime"))
23- if (if ((parkingSpotStartTime > roundedStartTime))
23+ if (if ((parkingSpotStartTime > bookedStartTime))
2424 then true
25- else ((roundedStartTime + 3600) > parkingSpotEndTime))
25+ else ((bookedStartTime + 3600) > parkingSpotEndTime))
2626 then throw("time is out of range for parking spot")
2727 else {
2828 let existingRenter = getString(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_renter"))
2929 if ((existingRenter != unit))
3030 then throw("parking spot has already been booked")
31- else if (if ((roundedStartTime == parkingSpotStartTime))
32- then (roundedStartTime == parkingSpotEndTime)
31+ else if (if ((bookedStartTime == parkingSpotStartTime))
32+ then (bookedStartTime == parkingSpotEndTime)
3333 else false)
3434 then [StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)]
35- else if ((roundedStartTime == parkingSpotStartTime))
36- then ([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] ++ createParkingSpotSlice(parkingSpotId, roundedEndTime, parkingSpotEndTime, (slice + 1)))
37- else if ((roundedEndTime == parkingSpotEndTime))
38- then [StringEntry((((parkingSpotId + "_") + toString(roundedStartTime)) + "_booked"), renter)]
39- else [StringEntry((((parkingSpotId + "_") + toString(roundedStartTime)) + "_booked"), renter)]
40- }
41- }
42-
43-
44-
45-@Callable(i)
46-func rentParkingSpot (parkingSpotId,startTime,renter) = {
47- let roundedStartTime = (startTime - (startTime % 3600))
48- let parkingSpotStartTime = getIntegerValue(this, (parkingSpotId + "_startTime"))
49- let parkingSpotEndTime = getIntegerValue(this, (parkingSpotId + "_endTime"))
50- if (if ((parkingSpotStartTime > roundedStartTime))
51- then true
52- else ((roundedStartTime + 3600) > parkingSpotEndTime))
53- then throw("time is out of range for parking spot")
54- else {
55- let bookingEntry = getString(this, (((parkingSpotId + "_") + toString(roundedStartTime)) + "_booked"))
56- if ((bookingEntry != unit))
57- then throw("timeslot has already been booked")
58- else [StringEntry((((parkingSpotId + "_") + toString(roundedStartTime)) + "_booked"), renter)]
35+ else if ((bookedStartTime == parkingSpotStartTime))
36+ then ([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (slice + 1)))
37+ else if ((bookedEndTime == parkingSpotEndTime))
38+ then ([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (slice + 1)))
39+ else (([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (slice + 1))) ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (slice + 2)))
5940 }
6041 }
6142
6243
6344 @Verifier(tx)
6445 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
6546

github/deemru/w8io/169f3d6 
43.96 ms