2024.04.20 00:28 [3070222] smart account 3NCPdPnLkaFuqq7Mvni1dr9G1u1gqwvVGUr > SELF 0.00000000 Waves
{ "type": 13, "id": "65jrXBzuBMvNwCDa46SBibjLGNM57bbXU6pLwcnVZkwa", "fee": 200000, "feeAssetId": null, "timestamp": 1713562178063, "version": 1, "sender": "3NCPdPnLkaFuqq7Mvni1dr9G1u1gqwvVGUr", "senderPublicKey": "2aHPpzkUniSJwBK7Lj2qiPnW9HN26KFcbdW6igZh1wA3", "proofs": [ "27vt9wpKt7PXeUeygeCDnbvqx9rLsR5J9Kw3LjqKdLuVqbD7Q4PTAMfEUgm9YKJAUVxfhYTwAD8wVrjgS3Z6xS84" ], "script": "base64:BgIECAISAAIABkhFSUdIVAUGaGVpZ2h0ABJsMm1wU3Rha2luZ0FkZHJlc3MJAQdBZGRyZXNzAQEaAVT3yNgyvRsCzHKoowop8elLl5bDoz4gLSQBAWkBCmZpbGxQZXJpb2QABA5wZXJpb2RPZmZzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBRJsMm1wU3Rha2luZ0FkZHJlc3MCDCVzX19vZmZzZXRJZAAABAxwZXJpb2RMZW5ndGgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSbDJtcFN0YWtpbmdBZGRyZXNzAhAlc19fb2Zmc2V0SGVpZ2h0AJBOBBJwZXJpb2RPZmZzZXRIZWlnaHQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUSbDJtcFN0YWtpbmdBZGRyZXNzAhAlc19fcGVyaW9kTGVuZ3RoAP///////////wEDCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEJAAIBAgdub3QgeWV0BA9jdXJyZW50UGVyaW9kSWQDAwkAZgIFBkhFSUdIVAUScGVyaW9kT2Zmc2V0SGVpZ2h0CQECIT0CBRJwZXJpb2RPZmZzZXRIZWlnaHQA////////////AQcJAGQCCQBpAgkAZQIFBkhFSUdIVAUScGVyaW9kT2Zmc2V0SGVpZ2h0BQxwZXJpb2RMZW5ndGgFDnBlcmlvZE9mZnNldElkCQCWAwEJAMwIAgAACQDMCAIJAGUCBQ5wZXJpb2RPZmZzZXRJZAABBQNuaWwEE2N1cnJlbnRQZXJpb2RIZWlnaHQDAwkAAAIFEnBlcmlvZE9mZnNldEhlaWdodAD///////////8BBgMJAAACBQ9jdXJyZW50UGVyaW9kSWQAAAkAZgIFEnBlcmlvZE9mZnNldEhlaWdodAUGSEVJR0hUBwAACQBkAgUScGVyaW9kT2Zmc2V0SGVpZ2h0CQBoAgkAZQIFD2N1cnJlbnRQZXJpb2RJZAUOcGVyaW9kT2Zmc2V0SWQFDHBlcmlvZExlbmd0aAQQbmV4dFBlcmlvZEhlaWdodAMDCQAAAgUScGVyaW9kT2Zmc2V0SGVpZ2h0AP///////////wEGAwkAAAIFD2N1cnJlbnRQZXJpb2RJZAAACQBmAgUScGVyaW9kT2Zmc2V0SGVpZ2h0BQZIRUlHSFQHAAAJAGQCBRNjdXJyZW50UGVyaW9kSGVpZ2h0BQxwZXJpb2RMZW5ndGgEEmxhc3RTdG9yZWRQZXJpb2RJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAgxsYXN0UGVyaW9kSWQAAAQDa2V5CQCsAgIJAKwCAgkArAICAgdwZXJpb2RfCQCkAwEFE2N1cnJlbnRQZXJpb2RIZWlnaHQCAV8JAKQDAQkAZQIFEG5leHRQZXJpb2RIZWlnaHQAAQQVY3VycmVudFN0b3JlZFBlcmlvZElkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQD///////////8BAwkBAiE9AgUVY3VycmVudFN0b3JlZFBlcmlvZElkAP///////////wEJAAIBAg5hbHJlYWR5IHN0b3JlZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUDa2V5BRJsYXN0U3RvcmVkUGVyaW9kSWQJAMwIAgkBDEludGVnZXJFbnRyeQICDGxhc3RQZXJpb2RJZAkAZAIFEmxhc3RTdG9yZWRQZXJpb2RJZAABBQNuaWwAQ5chBw==", "chainId": 84, "height": 3070222, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: GNcjR8A4LSYwNYs3sS3eAyzkw5qwNoMUpb3mp8WHtfqp Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let HEIGHT = height | |
5 | + | ||
6 | + | let l2mpStakingAddress = Address(base58'3NCWFHDzdPHZC6636ZkMLNDup9mjpbTLs7h') | |
7 | + | ||
8 | + | @Callable(i) | |
9 | + | func fillPeriod () = { | |
10 | + | let periodOffsetId = valueOrElse(getInteger(l2mpStakingAddress, "%s__offsetId"), 0) | |
11 | + | let periodLength = valueOrElse(getInteger(l2mpStakingAddress, "%s__offsetHeight"), 10000) | |
12 | + | let periodOffsetHeight = valueOrElse(getInteger(l2mpStakingAddress, "%s__periodLength"), -1) | |
13 | + | if ((periodOffsetHeight == -1)) | |
14 | + | then throw("not yet") | |
15 | + | else { | |
16 | + | let currentPeriodId = if (if ((HEIGHT > periodOffsetHeight)) | |
17 | + | then (periodOffsetHeight != -1) | |
18 | + | else false) | |
19 | + | then (((HEIGHT - periodOffsetHeight) / periodLength) + periodOffsetId) | |
20 | + | else max([0, (periodOffsetId - 1)]) | |
21 | + | let currentPeriodHeight = if (if ((periodOffsetHeight == -1)) | |
22 | + | then true | |
23 | + | else if ((currentPeriodId == 0)) | |
24 | + | then (periodOffsetHeight > HEIGHT) | |
25 | + | else false) | |
26 | + | then 0 | |
27 | + | else (periodOffsetHeight + ((currentPeriodId - periodOffsetId) * periodLength)) | |
28 | + | let nextPeriodHeight = if (if ((periodOffsetHeight == -1)) | |
29 | + | then true | |
30 | + | else if ((currentPeriodId == 0)) | |
31 | + | then (periodOffsetHeight > HEIGHT) | |
32 | + | else false) | |
33 | + | then 0 | |
34 | + | else (currentPeriodHeight + periodLength) | |
35 | + | let lastStoredPeriodId = valueOrElse(getInteger(this, "lastPeriodId"), 0) | |
36 | + | let key = ((("period_" + toString(currentPeriodHeight)) + "_") + toString((nextPeriodHeight - 1))) | |
37 | + | let currentStoredPeriodId = valueOrElse(getInteger(this, key), -1) | |
38 | + | if ((currentStoredPeriodId != -1)) | |
39 | + | then throw("already stored") | |
40 | + | else [IntegerEntry(key, lastStoredPeriodId), IntegerEntry("lastPeriodId", (lastStoredPeriodId + 1))] | |
41 | + | } | |
42 | + | } | |
43 | + | ||
44 | + |
github/deemru/w8io/786bc32 12.08 ms ◑