tx · 2qttdA8FW2zeUWqJu5FiAWrqsYNQuDR4cMy6C5mmdedD 3MzgLbskN82suZgkmqTvzQxDtZfjQfX1DLp: -0.00100000 Waves 2024.11.11 04:12 [3366109] smart account 3MzgLbskN82suZgkmqTvzQxDtZfjQfX1DLp > SELF 0.00000000 Waves
{ "type": 13, "id": "2qttdA8FW2zeUWqJu5FiAWrqsYNQuDR4cMy6C5mmdedD", "fee": 100000, "feeAssetId": null, "timestamp": 1731287590162, "version": 1, "sender": "3MzgLbskN82suZgkmqTvzQxDtZfjQfX1DLp", "senderPublicKey": "B5p5JF1Hn7k2YwGxQxgFre8bM5pd7N2c6wPdyKdLzzd6", "proofs": [ "4RS6z6rACMJ5z7Jv7xBTbgX3PJjJTxVyQDQg9WWNVFjctYSrMCYmCGmBf6CZGWjkQK5bToMDtAVD7VAqvhRPxac" ], "script": "base64:CAIHCAISAwoBCAABAWkBGGNoZWNrQW5kSW5jcmVtZW50Q291bnRlcgEIZnVuY05hbWUECWhvdXJseUtleQkArAICBQhmdW5jTmFtZQIOX2hvdXJseVR4Q291bnQECGRhaWx5S2V5CQCsAgIFCGZ1bmNOYW1lAg1fZGFpbHlUeENvdW50BA1ob3VybHlUeENvdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFCWhvdXJseUtleQMJAAECBQckbWF0Y2gwAgNJbnQEAWEFByRtYXRjaDAFAWEAAAQMZGFpbHlUeENvdW50BAckbWF0Y2gwCQCaCAIFBHRoaXMFCGRhaWx5S2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAABAtob3VybHlMaW1pdABkBApkYWlseUxpbWl0AMgBAwkAZwIFDWhvdXJseVR4Q291bnQFC2hvdXJseUxpbWl0CQACAQIVSG91cmx5IGxpbWl0IGV4Y2VlZGVkAwkAZwIFDGRhaWx5VHhDb3VudAUKZGFpbHlMaW1pdAkAAgECFERhaWx5IGxpbWl0IGV4Y2VlZGVkBA5uZXdIb3VybHlDb3VudAkAZAIFDWhvdXJseVR4Q291bnQAAQQNbmV3RGFpbHlDb3VudAkAZAIFDGRhaWx5VHhDb3VudAABBA11cGRhdGVSZXN1bHRzCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQlob3VybHlLZXkFDm5ld0hvdXJseUNvdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQhkYWlseUtleQUNbmV3RGFpbHlDb3VudAkAzAgCCQEMQm9vbGVhbkVudHJ5AgIYY2hlY2tBbmRJbmNyZW1lbnRDb3VudGVyBgUDbmlsBAtjaGVja0hvdXJseQkAmggCBQR0aGlzBQlob3VybHlLZXkECmNoZWNrRGFpbHkJAJoIAgUEdGhpcwUIZGFpbHlLZXkEByRtYXRjaDAFC2NoZWNrSG91cmx5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAQHJG1hdGNoMQUKY2hlY2tEYWlseQMJAAECBQckbWF0Y2gxAgNJbnQEAWIFByRtYXRjaDEDAwkAAAIFAWEFDm5ld0hvdXJseUNvdW50CQAAAgUBYgUNbmV3RGFpbHlDb3VudAcFDXVwZGF0ZVJlc3VsdHMJAAIBAhJEYXRhIHVwZGF0ZSBmYWlsZWQJAAIBAhlGYWlsZWQgdG8gZ2V0IGRhaWx5IGNvdW50CQACAQIaRmFpbGVkIHRvIGdldCBob3VybHkgY291bnQAe2Z13g==", "chainId": 84, "height": 3366109, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5SX2a6whCeTiSWiFwFXefmbT8w4cnU9Rrt5RnGWVAL19 Next: 6aLMzw8QnK8tXCmDdAWjHbJB38jttvpeRFViZYRv6ij7 Diff:
Old | New | Differences | |
---|---|---|---|
19 | 19 | case _ => | |
20 | 20 | 0 | |
21 | 21 | } | |
22 | - | let hourlyLimit = | |
23 | - | let dailyLimit = | |
22 | + | let hourlyLimit = 100 | |
23 | + | let dailyLimit = 200 | |
24 | 24 | if ((hourlyTxCount >= hourlyLimit)) | |
25 | 25 | then throw("Hourly limit exceeded") | |
26 | 26 | else if ((dailyTxCount >= dailyLimit)) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 8 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | ||
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func checkAndIncrementCounter (funcName) = { | |
8 | 8 | let hourlyKey = (funcName + "_hourlyTxCount") | |
9 | 9 | let dailyKey = (funcName + "_dailyTxCount") | |
10 | 10 | let hourlyTxCount = match getInteger(this, hourlyKey) { | |
11 | 11 | case a: Int => | |
12 | 12 | a | |
13 | 13 | case _ => | |
14 | 14 | 0 | |
15 | 15 | } | |
16 | 16 | let dailyTxCount = match getInteger(this, dailyKey) { | |
17 | 17 | case a: Int => | |
18 | 18 | a | |
19 | 19 | case _ => | |
20 | 20 | 0 | |
21 | 21 | } | |
22 | - | let hourlyLimit = | |
23 | - | let dailyLimit = | |
22 | + | let hourlyLimit = 100 | |
23 | + | let dailyLimit = 200 | |
24 | 24 | if ((hourlyTxCount >= hourlyLimit)) | |
25 | 25 | then throw("Hourly limit exceeded") | |
26 | 26 | else if ((dailyTxCount >= dailyLimit)) | |
27 | 27 | then throw("Daily limit exceeded") | |
28 | 28 | else { | |
29 | 29 | let newHourlyCount = (hourlyTxCount + 1) | |
30 | 30 | let newDailyCount = (dailyTxCount + 1) | |
31 | 31 | let updateResults = [IntegerEntry(hourlyKey, newHourlyCount), IntegerEntry(dailyKey, newDailyCount), BooleanEntry("checkAndIncrementCounter", true)] | |
32 | 32 | let checkHourly = getInteger(this, hourlyKey) | |
33 | 33 | let checkDaily = getInteger(this, dailyKey) | |
34 | 34 | match checkHourly { | |
35 | 35 | case a: Int => | |
36 | 36 | match checkDaily { | |
37 | 37 | case b: Int => | |
38 | 38 | if (if ((a == newHourlyCount)) | |
39 | 39 | then (b == newDailyCount) | |
40 | 40 | else false) | |
41 | 41 | then updateResults | |
42 | 42 | else throw("Data update failed") | |
43 | 43 | case _ => | |
44 | 44 | throw("Failed to get daily count") | |
45 | 45 | } | |
46 | 46 | case _ => | |
47 | 47 | throw("Failed to get hourly count") | |
48 | 48 | } | |
49 | 49 | } | |
50 | 50 | } | |
51 | 51 | ||
52 | 52 |
github/deemru/w8io/026f985 15.18 ms ◑