tx · jQmnSQmj7HJqz929epWJVakj1Qrj5TyhyRJLoGnYmU3 3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk: -0.01500000 Waves 2021.06.04 18:50 [1555824] smart account 3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk > SELF 0.00000000 Waves
{ "type": 13, "id": "jQmnSQmj7HJqz929epWJVakj1Qrj5TyhyRJLoGnYmU3", "fee": 1500000, "feeAssetId": null, "timestamp": 1622821944417, "version": 2, "chainId": 84, "sender": "3N8nB5XeXcXTUDeiH6657UHa3wHa2rbZfDk", "senderPublicKey": "BfXK2ez9xjdgWtoFNsnaGPRFjHcFixy3UUrQ2iN8wVfX", "proofs": [ "44nN6XdNqnsTMtYc5AvnBiSZj76gNDxPPSgLxd4QYm7MakPjuB6PUeB8TWmz8vcbpkqw5gjuZ4qbXzCQwiEEgAEH" ], "script": "base64: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", "height": 1555824, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BSA9esCEXHMnRKDvhLYPjbdTaXjHwXkXWAPUzSZ6X6kR Next: PgGMoNfv4i55MHYkV7RT3VGANEhqHsrn9xzn9AhbYdg Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func createParkingSpotSlice (parkingSpotId,startTime,endTime,slice) = [IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"), startTime), IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_endTime"), endTime)] | |
5 | 5 | ||
6 | 6 | ||
7 | 7 | @Callable(i) | |
8 | 8 | func createParkingSpot (owner,lat,long,startTime,endTime,cost) = { | |
9 | 9 | let bookedStartTime = (startTime - (startTime % 3600)) | |
10 | 10 | let bookedEndTime = (endTime - (endTime % 3600)) | |
11 | 11 | ([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)] ++ createParkingSpotSlice(toBase64String(i.transactionId), bookedStartTime, bookedEndTime, 0)) | |
12 | 12 | } | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | ||
16 | 16 | @Callable(i) | |
17 | 17 | func bookParkingSpotSlice (parkingSpotId,slice,startTime,endTime,renter) = { | |
18 | 18 | let bookedStartTime = (startTime - (startTime % 3600)) | |
19 | 19 | let bookedEndTime = (startTime - (startTime % 3600)) | |
20 | 20 | let parkingSpotStartTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_startTime")) | |
21 | 21 | let parkingSpotEndTime = getIntegerValue(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_endTime")) | |
22 | 22 | if (if ((parkingSpotStartTime > bookedStartTime)) | |
23 | 23 | then true | |
24 | 24 | else ((bookedStartTime + 3600) > parkingSpotEndTime)) | |
25 | 25 | then throw("time is out of range for parking spot") | |
26 | 26 | else { | |
27 | 27 | let existingRenter = getString(this, (((parkingSpotId + "_slice_") + toString(slice)) + "_renter")) | |
28 | 28 | if ((existingRenter != unit)) | |
29 | 29 | then throw("parking spot has already been booked") | |
30 | 30 | else if (if ((bookedStartTime == parkingSpotStartTime)) | |
31 | 31 | then (bookedStartTime == parkingSpotEndTime) | |
32 | 32 | else false) | |
33 | 33 | then [StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter)] | |
34 | 34 | else if ((bookedStartTime == parkingSpotStartTime)) | |
35 | 35 | then ([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter), IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"), bookedStartTime), IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"), bookedEndTime), IntegerEntry((toBase58String(i.transactionId) + "_slice"), (slice + 1))] ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (slice + 1))) | |
36 | 36 | else if ((bookedEndTime == parkingSpotEndTime)) | |
37 | 37 | then ([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter), IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"), bookedStartTime), IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"), bookedEndTime), IntegerEntry((toBase58String(i.transactionId) + "_slice"), (slice + 1))] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (slice + 1))) | |
38 | 38 | else (([StringEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_renter"), renter), IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"), bookedStartTime), IntegerEntry((((parkingSpotId + "_slice_") + toString(slice)) + "_startTime"), bookedEndTime), IntegerEntry((toBase58String(i.transactionId) + "_slice"), (slice + 2))] ++ createParkingSpotSlice(parkingSpotId, parkingSpotStartTime, bookedStartTime, (slice + 1))) ++ createParkingSpotSlice(parkingSpotId, bookedEndTime, parkingSpotEndTime, (slice + 2))) | |
39 | 39 | } | |
40 | 40 | } | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | @Verifier(tx) | |
44 | 44 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
45 | 45 |
github/deemru/w8io/026f985 27.19 ms ◑