tx · YcqJLniQhvZGrEiYa89F1V1JWKHD5EKf2XM9VAJ9y5U 3N4TGEHbF4JJh8S2trWJVr7SpGAkKfKeA5x: -0.01400000 Waves 2021.04.11 14:32 [1477737] smart account 3N4TGEHbF4JJh8S2trWJVr7SpGAkKfKeA5x > SELF 0.00000000 Waves
{ "type": 13, "id": "YcqJLniQhvZGrEiYa89F1V1JWKHD5EKf2XM9VAJ9y5U", "fee": 1400000, "feeAssetId": null, "timestamp": 1618140775166, "version": 1, "sender": "3N4TGEHbF4JJh8S2trWJVr7SpGAkKfKeA5x", "senderPublicKey": "3p3cLanjGgZiLg4nzCGMznsdYX2AvQ8npo7eXpNbJ3UE", "proofs": [ "dcdjpACnphkb9kWxnLC2d3gPxmVehm8NYTh9JD41Hji5xohi7kj476f37afB9BSFPQkFNZPK8zPSkf1VPkLYrYv" ], "script": "base64:AAIEAAAAAAAAAAgIAhIECgIIAQAAAB0AAAAADGFkbWluUHViS2V5MQEAAAAgugnXO4lZpNFdoP/xuzPQquE5aQ/L4r2R1jvuT16o4BMAAAAADGFkbWluUHViS2V5MgEAAAAgwpFEmbPSsLQNIqWRWL2IvKE3uwjL/92M5pTvWxYOfkAAAAAADGFkbWluUHViS2V5MwEAAAAgjh4XLnixBzv0SE56Myhgdih3/JnlkjCjIMLPqKvpDlUAAAAAEWtVc2VyUG9vbFZvdGVTV09QAgAAAAVfdm90ZQAAAAATa1VzZXJQb29sQWN0aXZlU1dPUAIAAAAMX2FjdGl2ZV92b3RlAAAAABNrVXNlclBvb2xGcmVlemVTV09QAgAAAAxfZnJlZXplX3ZvdGUAAAAAEmtVc2VyVG90YWxWb3RlU1dPUAIAAAAVX3VzZXJfdG90YWxfU1dPUF92b3RlAAAAABNrVXNlclBvb2xWb3RlUGVyaW9kAgAAAAdfcGVyaW9kAAAAAAxrVXNlclVudm90ZWQCAAAACF91bnZvdGVkAAAAABJrVXNlclVudm90ZWRQZXJpb2QCAAAAD191bnZvdGVkX3BlcmlvZAAAAAANa1Bvb2xWb3RlU1dPUAIAAAAKX3ZvdGVfU1dPUAAAAAAPa1Bvb2xBY3RpdmVTV09QAgAAABFfYWN0aXZlX3ZvdGVfU1dPUAAAAAAPa1Bvb2xGcmVlemVTV09QAgAAABFfdm90ZV9TV09QX2ZyZWV6ZQAAAAALa1Bvb2xQZXJpb2QCAAAADF9wb29sX3BlcmlvZAAAAAAOa1RvdGFsVm90ZVNXT1ACAAAAD3RvdGFsX3ZvdGVfU1dPUAAAAAAQa1RvdGFsQWN0aXZlU1dPUAIAAAAWdG90YWxfYWN0aXZlX3ZvdGVfU1dPUAAAAAAQa1RvdGFsRnJlZXplU1dPUAIAAAAWdG90YWxfdm90ZV9TV09QX2ZyZWV6ZQAAAAAMa1RvdGFsUGVyaW9kAgAAABF0b3RhbF9wb29sX3BlcmlvZAAAAAAKYmFzZVBlcmlvZAAAAAAAAAAAAAAAAAALc3RhcnRIZWlnaHQJAABlAAAAAgAAAAAAABaMWAAAAAAAAAAnEAAAAAAMcGVyaW9kTGVuZ3RoAAAAAAAAACd2AAAAAAZzY2FsZTgAAAAAAAX14QAAAAAAEGR1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AAAAAAAAAAQAAAAPdG90YWxGcmVlemVTV09QCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEGtUb3RhbEZyZWV6ZVNXT1AAAAAAAAAAAAAEAAAAC3RvdGFsUGVyaW9kCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAADGtUb3RhbFBlcmlvZAAAAAAAAAAAAAQAAAAQcG9vbFZvdGVEaWZmU1dPUAkAAGUAAAACBQAAABN1c2VyUG9vbFZvdGVTV09QbmV3BQAAABB1c2VyUG9vbFZvdGVTV09QBAAAABR1c2VyVG90YWxWb3RlU1dPUG5ldwkAAGQAAAACBQAAAA10b3RhbFZvdGVTV09QBQAAABBwb29sVm90ZURpZmZTV09QAwkBAAAAASEAAAABCQEAAAAUaXNDYWxsZXJJbkdvdmVybmFuY2UAAAABCAUAAAABaQAAAAZjYWxsZXIJAAACAAAAAQIAAAAqVGhpcyBhZGRyZXNzIGhhcyAwIFNXT1AgaW4gR292ZXJuYW5jZSBkQXBwAwkAAGYAAAACBQAAABR1c2VyVG90YWxWb3RlU1dPUG5ldwUAAAAUdXNlclNXT1BpbkdvdmVybmFuY2UJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEFAAAABHRoaXMCAAAABSBoYXMgCQABpAAAAAEFAAAAFHVzZXJTV09QaW5Hb3Zlcm5hbmNlAgAAACggU1dPUCBpbiBnb3Zlcm5hbmNlLiBOZXcgU1dPUCBpbiB2b3RpbmcgCQABpAAAAAEFAAAAFHVzZXJUb3RhbFZvdGVTV09QbmV3AwkAAGcAAAACBQAAABN1c2VyUG9vbFZvdGVTV09QbmV3BQAAABB1c2VyUG9vbFZvdGVTV09QBAAAAARjb2VmCQEAAAAKdm90aW5nQ29lZgAAAAAEAAAAGXVzZXJQb29sQWN0aXZlVm90ZVNXT1BuZXcDCQAAAAAAAAIFAAAAEnVzZXJQb29sVm90ZVBlcmlvZAUAAAAKY3VyclBlcmlvZAkAAGQAAAACBQAAABZ1c2VyUG9vbEFjdGl2ZVZvdGVTV09QCQAAaQAAAAIJAABoAAAAAgUAAAAQcG9vbFZvdGVEaWZm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bEFkZHJlc3MFAAAAD2tQb29sQWN0aXZlU1dPUAUAAAARcG9vbEFjdGl2ZVNXT1BuZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAALcG9vbEFkZHJlc3MFAAAAD2tQb29sRnJlZXplU1dPUAUAAAARcG9vbEZyZWV6ZVNXT1BuZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAALcG9vbEFkZHJlc3MFAAAADWtQb29sVm90ZVNXT1AFAAAAD3Bvb2xWb3RlU1dPUG5ldwUAAAADbmlsBAAAABB0b3RhbFZvdGVTV09QbmV3CQAAZAAAAAIFAAAADXRvdGFsVm90ZVNXT1AFAAAAEHBvb2xWb3RlRGlmZlNXT1AEAAAAEnRvdGFsQWN0aXZlU1dPUG5ldwMJAAAAAAAAAgUAAAALdG90YWxQZXJpb2QFAAAACmN1cnJQZXJpb2QJAABkAAAAAgUAAAAPdG90YWxBY3RpdmVTV09QCQAAaQAAAAIJAABoAAAAAgUAAAAQcG9vbFZvdGVEaWZmU1dPUAUAAAAEY29lZgUAAAAGc2NhbGU4CQAAZAAAAAIFAAAADXRvdGFsVm90ZVNXT1AJAABpAAAAAgkAAGgAAAACBQAAABBwb29sVm90ZURpZmZTV09QBQAAAARjb2VmBQAAAAZzY2FsZTgEAAAAEnRvdGFsRnJlZXplU1dPUG5ldwMJAAAAAAAAAgUAAAAKcG9vbFBlcmlvZAUAAAAKY3VyclBlcmlvZAUAAAAPdG90YWxGcmVlemVTV09QBQAAAA10b3RhbFZvdGVTV09QBAAAAAp0b3RhbEVudHJ5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrVG90YWxQZXJpb2QFAAAACmN1cnJQZXJpb2QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEGtUb3RhbEFjdGl2ZVNXT1AFAAAAEXBvb2xBY3RpdmVTV09QbmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBrVG90YWxGcmVlemVTV09QBQAAABFwb29sRnJlZXplU1dPUG5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOa1RvdGFsVm90ZVNXT1AFAAAAD3Bvb2xWb3RlU1dPUG5ldwUAAAADbmlsCQAETgAAAAIJAAROAAAAAgUAAAAJdXNlckVudHJ5BQAAAAlwb29sRW50cnkFAAAACnRvdGFsRW50cnkEAAAADnJlbW92ZVBvb2xWb3RlCQEAAAABLQAAAAEFAAAAEHBvb2xWb3RlRGlmZlNXT1AEAAAAFXVzZXJQb29sRnJlZXplU1dPUG5ldwMJAAAAAAAAAgUAAAASdXNlclBvb2xWb3RlUGVyaW9kBQAAAApjdXJyUGVyaW9kCQABlwAAAAEJAARMAAAAAgUAAAASdXNlclBvb2xGcmVlemVTV09QCQAETAAAAAIFAAAAE3VzZXJQb29sVm90ZVNXT1BuZXcFAAAAA25pbAUAAAATdXNlclBvb2xWb3RlU1dPUG5ldwQAAAAZdXNlclBvb2xBY3RpdmVWb3RlU1dPUG5ldwMJAAAAAAAAAgkAAGUAAAACBQAAABB1c2VyUG9vbFZvdGVTV09QBQAAABJ1c2VyUG9vbEZyZWV6ZVNXT1AAAAAAAAAAAAAAAAAAAAAAAAAJAABkAAAAAgUAAAAVdXNlclBvb2xGcmVlemVTV09QbmV3CQAAaQAAAAIJAABoAAAAAgkAAGUAAAACBQAAABZ1c2VyUG9vbEFjdGl2ZVZvdGVTV09QBQAAABJ1c2VyUG9vbEZyZWV6ZVNXT1AJAABlAAAAAgUAAAATdXNlclBvb2xWb3RlU1dPUG5ldwUAAAAVdXNlclBvb2xGcmVlemVTV09QbmV3CQAAZQAAAAIFAAAAEHVzZXJQb29sVm90ZVNXT1AFAAAAEnVzZXJQb29sRnJlZXplU1dPUAQAAAAKbmV3VW52b3RlZAkAAZYAAAABCQAETAAAAAIAAAAAAAAAAAAJAARMAAAAAgkAAGUAAAACBQAAAA5yZW1vdmVQb29sVm90ZQMJAAAAAAAAAgUAAAARdXNlclVudm90ZWRQZXJpb2QFAAAACmN1cnJQZXJpb2QJAABlAAAAAgUAAAAQdXNlclBvb2xWb3RlU1dPUAUAAAASdXNlclBvb2xGcmVlemVTV09QAAAAAAAAAAAABQAAAANuaWwEAAAADnVzZXJVbnZvdGVkTmV3AwkAAAAAAAACBQAAABF1c2VyVW52b3RlZFBlcmlvZAUAAAAKY3VyclBlcmlvZAUAAAALdXNlclVudm90ZWQJAABkAAAAAgAAAAAAAAAAAAUAAAAKbmV3VW52b3RlZAQAAAAUdXNlclVudm90ZWRQZXJpb2ROZXcDCQAAZgAAAAIFAAAACm5ld1Vudm90ZWQAAAAAAAAAAAAFAAAACmN1cnJQZXJpb2QFAAAAEXVzZXJVbnZvdGVkUGVyaW9kBAAAAAl1c2VyRW50cnkJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfBQAAAAtwb29sQWRkcmVzcwUAAAATa1VzZXJQb29sVm90ZVBlcmlvZAUAAAAKY3VyclBlcmlvZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8FAAAAC3Bvb2xBZGRyZXNzBQAAABNrVXNlclBvb2xGcmVlemVTV09QBQAAABV1c2VyUG9vbEZyZWV6ZVNXT1BuZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfBQAAAAtwb29sQWRkcmVzcwUAAAATa1VzZXJQb29sQWN0aXZlU1dPUAUAAAAZdXNlclBvb2xBY3RpdmVWb3RlU1dPUG5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8FAAAAC3Bvb2xBZGRyZXNzBQAAABFrVXNlclBvb2xWb3RlU1dPUAUAAAATdXNlclBvb2xWb3RlU1dPUG5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAAAV8FAAAAC3Bvb2xBZGRyZXNzBQAAABJrVXNlclRvdGFsVm90ZVNXT1AFAAAAFHVzZXJUb3RhbFZvdGVTV09QbmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgIAAAABXwUAAAALcG9vbEFkZHJlc3MFAAAADGtVc2VyVW52b3RlZAUAAAAOdXNlclVudm90ZWROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyAgAAAAFfBQAAAAtwb29sQWRkcmVzcwUAAAASa1VzZXJVbnZvdGVkUGVyaW9kBQAAABF1c2VyVW52b3RlZFBlcmlvZAUAAAADbmlsBAAAAA9wb29sVm90ZVNXT1BuZXcJAABlAAAAAgUAAAAMcG9vbFZvdGVTV09QBQAAAA5yZW1vdmVQb29sVm90ZQQAAAARcG9vbEZyZWV6ZVNXT1BuZXcDCQAAAAAAAAIFAAAACnBvb2xQZXJpb2QFAAAACmN1cnJQZXJpb2QJAAGXAAAAAQkABEwAAAACBQAAAA5wb29sRnJlZXplU1dPUAkABEwAAAACBQAAAA9wb29sVm90ZVNXT1BuZXcFAAAAA25pbAUAAAAPcG9vbFZvdGVTV09QbmV3BAAAABVwb29sQWN0aXZlVm90ZVNXT1BuZXcDCQAAAAAAAAIJAABlAAAAAgUAAAAMcG9vbFZvdGVTV09QBQAAAA5wb29sRnJlZXplU1dPUAAAAAAAAAAAAAAAAAAAAAAAAAkAAGQAAAACBQAAABFwb29sRnJlZXplU1dPUG5ldwkAAGkAAAACCQAAaAAAAAIJAABlAAAAAgUAAAAOcG9vbEFjdGl2ZVNXT1AFAAAADnBvb2xGcmVlemVTV09QCQAAZQAAAAIFAAAAD3Bvb2xWb3RlU1dPUG5ldwUAAAARcG9vbEZyZWV6ZVNXT1BuZXcJAABlAAAAAgUAAAAMcG9vbFZvdGVTV09QBQAAAA5wb29sRnJlZXplU1dPUAQAAAAJcG9vbEVudHJ5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAAC3Bvb2xBZGRyZXNzBQAAAAtrUG9vbFBlcmlvZAUAAAAKY3VyclBlcmlvZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAtwb29sQWRkcmVzcwUAAAAPa1Bvb2xGcmVlemVTV09QBQAAABFwb29sRnJlZXplU1dPUG5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAtwb29sQWRkcmVzcwUAAAAPa1Bvb2xBY3RpdmVTV09QBQAAABVwb29sQWN0aXZlVm90ZVNXT1BuZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAALcG9vbEFkZHJlc3MFAAAADWtQb29sVm90ZVNXT1AFAAAAD3Bvb2xWb3RlU1dPUG5ldwUAAAADbmlsBAAAABB0b3RhbFZvdGVTV09QbmV3CQAAZQAAAAIFAAAADXRvdGFsVm90ZVNXT1AFAAAADnJlbW92ZVBvb2xWb3RlBAAAABJ0b3RhbEZyZWV6ZVNXT1BuZXcDCQAAAAAAAAIFAAAAC3RvdGFsUGVyaW9kBQAAAApjdXJyUGVyaW9kCQABlwAAAAEJAARMAAAAAgUAAAAPdG90YWxGcmVlemVTV09QCQAETAAAAAIFAAAAEHRvdGFsVm90ZVNXT1BuZXcFAAAAA25pbAUAAAAQdG90YWxWb3RlU1dPUG5ldwQAAAAWdG90YWxBY3RpdmVWb3RlU1dPUG5ldwMJAAAAAAAAAgkAAGUAAAACBQAAAA10b3RhbFZvdGVTV09QBQAAAA90b3RhbEZyZWV6ZVNXT1AAAAAAAAAAAAAAAAAAAAAAAAAJAABkAAAAAgUAAAASdG90YWxGcmVlemVTV09QbmV3CQAAaQAAAAIJAABoAAAAAgkAAGUAAAACBQAAAA90b3RhbEFjdGl2ZVNXT1AFAAAAD3RvdGFsRnJlZXplU1dPUAkAAGUAAAACBQAAABB0b3RhbFZvdGVTV09QbmV3BQAAABJ0b3RhbEZyZWV6ZVNXT1BuZXcJAABlAAAAAgUAAAANdG90YWxWb3RlU1dPUAUAAAAPdG90YWxGcmVlemVTV09QBAAAAAp0b3RhbEVudHJ5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAxrVG90YWxQZXJpb2QFAAAACmN1cnJQZXJpb2QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEGtUb3RhbEZyZWV6ZVNXT1AFAAAAEnRvdGFsRnJlZXplU1dPUG5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAQa1RvdGFsQWN0aXZlU1dPUAUAAAAWdG90YWxBY3RpdmVWb3RlU1dPUG5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOa1RvdGFsVm90ZVNXT1AFAAAAEHRvdGFsVm90ZVNXT1BuZXcFAAAAA25pbAkABE4AAAACCQAETgAAAAIFAAAACXVzZXJFbnRyeQUAAAAJcG9vbEVudHJ5BQAAAAp0b3RhbEVudHJ5AAAAAI4tN44=", "chainId": 84, "height": 1477737, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3wJWu1gFfFgpbEV459wMvjLTnAXFAMwNmLkZENR2bKkM Next: none Diff:
Old | New | Differences | |
---|---|---|---|
67 | 67 | let votingDuration = (height - (startHeight + (currPeriod * periodLength))) | |
68 | 68 | if ((durationFullVote > votingDuration)) | |
69 | 69 | then scale8 | |
70 | - | else (scale8 - (( | |
70 | + | else (scale8 - ((votingDuration * scale8) / periodLength)) | |
71 | 71 | } | |
72 | 72 | ||
73 | 73 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let adminPubKey1 = base58'DXDY2itiEcYBtGkVLnkpHtDFyWQUkoLJz79uJ7ECbMrA' | |
5 | 5 | ||
6 | 6 | let adminPubKey2 = base58'E6Wa1SGoktYcjHjsKrvjMiqJY3SWmGKcD8Q5L8kxSPS7' | |
7 | 7 | ||
8 | 8 | let adminPubKey3 = base58'AZmWJtuy4GeVrMmJH4hfFBRApe1StvhJSk4jcbT6bArQ' | |
9 | 9 | ||
10 | 10 | let kUserPoolVoteSWOP = "_vote" | |
11 | 11 | ||
12 | 12 | let kUserPoolActiveSWOP = "_active_vote" | |
13 | 13 | ||
14 | 14 | let kUserPoolFreezeSWOP = "_freeze_vote" | |
15 | 15 | ||
16 | 16 | let kUserTotalVoteSWOP = "_user_total_SWOP_vote" | |
17 | 17 | ||
18 | 18 | let kUserPoolVotePeriod = "_period" | |
19 | 19 | ||
20 | 20 | let kUserUnvoted = "_unvoted" | |
21 | 21 | ||
22 | 22 | let kUserUnvotedPeriod = "_unvoted_period" | |
23 | 23 | ||
24 | 24 | let kPoolVoteSWOP = "_vote_SWOP" | |
25 | 25 | ||
26 | 26 | let kPoolActiveSWOP = "_active_vote_SWOP" | |
27 | 27 | ||
28 | 28 | let kPoolFreezeSWOP = "_vote_SWOP_freeze" | |
29 | 29 | ||
30 | 30 | let kPoolPeriod = "_pool_period" | |
31 | 31 | ||
32 | 32 | let kTotalVoteSWOP = "total_vote_SWOP" | |
33 | 33 | ||
34 | 34 | let kTotalActiveSWOP = "total_active_vote_SWOP" | |
35 | 35 | ||
36 | 36 | let kTotalFreezeSWOP = "total_vote_SWOP_freeze" | |
37 | 37 | ||
38 | 38 | let kTotalPeriod = "total_pool_period" | |
39 | 39 | ||
40 | 40 | let basePeriod = 0 | |
41 | 41 | ||
42 | 42 | let startHeight = (1477720 - 10000) | |
43 | 43 | ||
44 | 44 | let periodLength = 10102 | |
45 | 45 | ||
46 | 46 | let scale8 = 100000000 | |
47 | 47 | ||
48 | 48 | let durationFullVote = 2880 | |
49 | 49 | ||
50 | 50 | let minVoteCoeff = 25000000 | |
51 | 51 | ||
52 | 52 | let govAddr = Address(base58'3N8gfDJc5N53ePx2qBn3oQXbnhbz3Z7WFNj') | |
53 | 53 | ||
54 | 54 | let currPeriod = (basePeriod + ((height - startHeight) / periodLength)) | |
55 | 55 | ||
56 | 56 | func isCallerInGovernance (user) = if (if ((valueOrElse(getInteger(govAddr, (toString(user) + "_SWOP_amount")), 0) > 0)) | |
57 | 57 | then true | |
58 | 58 | else (valueOrElse(getInteger(this, (toString(user) + kUserTotalVoteSWOP)), 0) > 0)) | |
59 | 59 | then true | |
60 | 60 | else false | |
61 | 61 | ||
62 | 62 | ||
63 | 63 | func isPoolInGovernance (poolAddress) = isDefined(getInteger(govAddr, (poolAddress + "_current_pool_fraction_reward"))) | |
64 | 64 | ||
65 | 65 | ||
66 | 66 | func votingCoef () = { | |
67 | 67 | let votingDuration = (height - (startHeight + (currPeriod * periodLength))) | |
68 | 68 | if ((durationFullVote > votingDuration)) | |
69 | 69 | then scale8 | |
70 | - | else (scale8 - (( | |
70 | + | else (scale8 - ((votingDuration * scale8) / periodLength)) | |
71 | 71 | } | |
72 | 72 | ||
73 | 73 | ||
74 | 74 | @Callable(i) | |
75 | 75 | func votePoolWeight (poolAddress,userPoolVoteSWOPnew) = { | |
76 | 76 | let userTotalVoteSWOP = valueOrElse(getInteger(this, (toString(i.caller) + kUserTotalVoteSWOP)), 0) | |
77 | 77 | let userPoolVoteSWOP = valueOrElse(getInteger(this, (((toString(i.caller) + "_") + poolAddress) + kUserPoolVoteSWOP)), 0) | |
78 | 78 | let userPoolVotePeriod = valueOrElse(getInteger(this, (((toString(i.caller) + "_") + poolAddress) + kUserPoolVotePeriod)), 0) | |
79 | 79 | let userPoolActiveVoteSWOP = valueOrElse(getInteger(this, (((toString(i.caller) + "_") + poolAddress) + kUserPoolActiveSWOP)), 0) | |
80 | 80 | let userPoolFreezeSWOP = valueOrElse(getInteger(this, (((toString(i.caller) + "_") + poolAddress) + kUserPoolFreezeSWOP)), 0) | |
81 | 81 | let userUnvoted = valueOrElse(getInteger(this, ((toString(i.caller) + "_") + kUserUnvoted)), 0) | |
82 | 82 | let userUnvotedPeriod = valueOrElse(getInteger(this, ((toString(i.caller) + "_") + kUserUnvotedPeriod)), 0) | |
83 | 83 | let userSWOPinGovernance = getIntegerValue(govAddr, (toString(i.caller) + "_SWOP_amount")) | |
84 | 84 | let poolVoteSWOP = valueOrElse(getInteger(this, (poolAddress + kPoolVoteSWOP)), 0) | |
85 | 85 | let poolActiveSWOP = valueOrElse(getInteger(this, (poolAddress + kPoolActiveSWOP)), 0) | |
86 | 86 | let poolFreezeSWOP = valueOrElse(getInteger(this, (poolAddress + kPoolFreezeSWOP)), 0) | |
87 | 87 | let poolPeriod = valueOrElse(getInteger(this, (poolAddress + kPoolPeriod)), 0) | |
88 | 88 | let totalVoteSWOP = valueOrElse(getInteger(this, kTotalVoteSWOP), 0) | |
89 | 89 | let totalActiveSWOP = valueOrElse(getInteger(this, kTotalActiveSWOP), 0) | |
90 | 90 | let totalFreezeSWOP = valueOrElse(getInteger(this, kTotalFreezeSWOP), 0) | |
91 | 91 | let totalPeriod = valueOrElse(getInteger(this, kTotalPeriod), 0) | |
92 | 92 | let poolVoteDiffSWOP = (userPoolVoteSWOPnew - userPoolVoteSWOP) | |
93 | 93 | let userTotalVoteSWOPnew = (totalVoteSWOP + poolVoteDiffSWOP) | |
94 | 94 | if (!(isCallerInGovernance(i.caller))) | |
95 | 95 | then throw("This address has 0 SWOP in Governance dApp") | |
96 | 96 | else if ((userTotalVoteSWOPnew > userSWOPinGovernance)) | |
97 | 97 | then throw(((((toString(this) + " has ") + toString(userSWOPinGovernance)) + " SWOP in governance. New SWOP in voting ") + toString(userTotalVoteSWOPnew))) | |
98 | 98 | else if ((userPoolVoteSWOPnew >= userPoolVoteSWOP)) | |
99 | 99 | then { | |
100 | 100 | let coef = votingCoef() | |
101 | 101 | let userPoolActiveVoteSWOPnew = if ((userPoolVotePeriod == currPeriod)) | |
102 | 102 | then (userPoolActiveVoteSWOP + ((poolVoteDiffSWOP * coef) / scale8)) | |
103 | 103 | else (userPoolVoteSWOP + ((poolVoteDiffSWOP * coef) / scale8)) | |
104 | 104 | let userPoolFreezeSWOPnew = if ((userPoolVotePeriod == currPeriod)) | |
105 | 105 | then userPoolFreezeSWOP | |
106 | 106 | else userPoolVoteSWOP | |
107 | 107 | let userUnvotedNew = if ((userUnvoted == currPeriod)) | |
108 | 108 | then userUnvoted | |
109 | 109 | else max([0, (userUnvoted - poolVoteDiffSWOP)]) | |
110 | 110 | let userEntry = [IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserPoolVotePeriod), currPeriod), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserPoolActiveSWOP), userPoolActiveVoteSWOPnew), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserPoolFreezeSWOP), userPoolFreezeSWOPnew), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserPoolVoteSWOP), userPoolVoteSWOPnew), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserTotalVoteSWOP), userTotalVoteSWOPnew), IntegerEntry(((toString(i.caller) + "_") + kUserUnvoted), userUnvotedNew)] | |
111 | 111 | let poolVoteSWOPnew = (poolVoteSWOP + poolVoteDiffSWOP) | |
112 | 112 | let poolActiveSWOPnew = if ((poolPeriod == currPeriod)) | |
113 | 113 | then (poolActiveSWOP + ((poolVoteDiffSWOP * coef) / scale8)) | |
114 | 114 | else (poolVoteSWOP + ((poolVoteDiffSWOP * coef) / scale8)) | |
115 | 115 | let poolFreezeSWOPnew = if ((poolPeriod == currPeriod)) | |
116 | 116 | then poolFreezeSWOP | |
117 | 117 | else poolVoteSWOP | |
118 | 118 | let poolEntry = [IntegerEntry((poolAddress + kPoolPeriod), currPeriod), IntegerEntry((poolAddress + kPoolActiveSWOP), poolActiveSWOPnew), IntegerEntry((poolAddress + kPoolFreezeSWOP), poolFreezeSWOPnew), IntegerEntry((poolAddress + kPoolVoteSWOP), poolVoteSWOPnew)] | |
119 | 119 | let totalVoteSWOPnew = (totalVoteSWOP + poolVoteDiffSWOP) | |
120 | 120 | let totalActiveSWOPnew = if ((totalPeriod == currPeriod)) | |
121 | 121 | then (totalActiveSWOP + ((poolVoteDiffSWOP * coef) / scale8)) | |
122 | 122 | else (totalVoteSWOP + ((poolVoteDiffSWOP * coef) / scale8)) | |
123 | 123 | let totalFreezeSWOPnew = if ((poolPeriod == currPeriod)) | |
124 | 124 | then totalFreezeSWOP | |
125 | 125 | else totalVoteSWOP | |
126 | 126 | let totalEntry = [IntegerEntry(kTotalPeriod, currPeriod), IntegerEntry(kTotalActiveSWOP, poolActiveSWOPnew), IntegerEntry(kTotalFreezeSWOP, poolFreezeSWOPnew), IntegerEntry(kTotalVoteSWOP, poolVoteSWOPnew)] | |
127 | 127 | ((userEntry ++ poolEntry) ++ totalEntry) | |
128 | 128 | } | |
129 | 129 | else { | |
130 | 130 | let removePoolVote = -(poolVoteDiffSWOP) | |
131 | 131 | let userPoolFreezeSWOPnew = if ((userPoolVotePeriod == currPeriod)) | |
132 | 132 | then min([userPoolFreezeSWOP, userPoolVoteSWOPnew]) | |
133 | 133 | else userPoolVoteSWOPnew | |
134 | 134 | let userPoolActiveVoteSWOPnew = if (((userPoolVoteSWOP - userPoolFreezeSWOP) == 0)) | |
135 | 135 | then 0 | |
136 | 136 | else (userPoolFreezeSWOPnew + (((userPoolActiveVoteSWOP - userPoolFreezeSWOP) * (userPoolVoteSWOPnew - userPoolFreezeSWOPnew)) / (userPoolVoteSWOP - userPoolFreezeSWOP))) | |
137 | 137 | let newUnvoted = max([0, (removePoolVote - (if ((userUnvotedPeriod == currPeriod)) | |
138 | 138 | then (userPoolVoteSWOP - userPoolFreezeSWOP) | |
139 | 139 | else 0))]) | |
140 | 140 | let userUnvotedNew = if ((userUnvotedPeriod == currPeriod)) | |
141 | 141 | then userUnvoted | |
142 | 142 | else (0 + newUnvoted) | |
143 | 143 | let userUnvotedPeriodNew = if ((newUnvoted > 0)) | |
144 | 144 | then currPeriod | |
145 | 145 | else userUnvotedPeriod | |
146 | 146 | let userEntry = [IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserPoolVotePeriod), currPeriod), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserPoolFreezeSWOP), userPoolFreezeSWOPnew), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserPoolActiveSWOP), userPoolActiveVoteSWOPnew), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserPoolVoteSWOP), userPoolVoteSWOPnew), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserTotalVoteSWOP), userTotalVoteSWOPnew), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserUnvoted), userUnvotedNew), IntegerEntry((((toString(i.caller) + "_") + poolAddress) + kUserUnvotedPeriod), userUnvotedPeriod)] | |
147 | 147 | let poolVoteSWOPnew = (poolVoteSWOP - removePoolVote) | |
148 | 148 | let poolFreezeSWOPnew = if ((poolPeriod == currPeriod)) | |
149 | 149 | then min([poolFreezeSWOP, poolVoteSWOPnew]) | |
150 | 150 | else poolVoteSWOPnew | |
151 | 151 | let poolActiveVoteSWOPnew = if (((poolVoteSWOP - poolFreezeSWOP) == 0)) | |
152 | 152 | then 0 | |
153 | 153 | else (poolFreezeSWOPnew + (((poolActiveSWOP - poolFreezeSWOP) * (poolVoteSWOPnew - poolFreezeSWOPnew)) / (poolVoteSWOP - poolFreezeSWOP))) | |
154 | 154 | let poolEntry = [IntegerEntry((poolAddress + kPoolPeriod), currPeriod), IntegerEntry((poolAddress + kPoolFreezeSWOP), poolFreezeSWOPnew), IntegerEntry((poolAddress + kPoolActiveSWOP), poolActiveVoteSWOPnew), IntegerEntry((poolAddress + kPoolVoteSWOP), poolVoteSWOPnew)] | |
155 | 155 | let totalVoteSWOPnew = (totalVoteSWOP - removePoolVote) | |
156 | 156 | let totalFreezeSWOPnew = if ((totalPeriod == currPeriod)) | |
157 | 157 | then min([totalFreezeSWOP, totalVoteSWOPnew]) | |
158 | 158 | else totalVoteSWOPnew | |
159 | 159 | let totalActiveVoteSWOPnew = if (((totalVoteSWOP - totalFreezeSWOP) == 0)) | |
160 | 160 | then 0 | |
161 | 161 | else (totalFreezeSWOPnew + (((totalActiveSWOP - totalFreezeSWOP) * (totalVoteSWOPnew - totalFreezeSWOPnew)) / (totalVoteSWOP - totalFreezeSWOP))) | |
162 | 162 | let totalEntry = [IntegerEntry(kTotalPeriod, currPeriod), IntegerEntry(kTotalFreezeSWOP, totalFreezeSWOPnew), IntegerEntry(kTotalActiveSWOP, totalActiveVoteSWOPnew), IntegerEntry(kTotalVoteSWOP, totalVoteSWOPnew)] | |
163 | 163 | ((userEntry ++ poolEntry) ++ totalEntry) | |
164 | 164 | } | |
165 | 165 | } | |
166 | 166 | ||
167 | 167 |
github/deemru/w8io/169f3d6 59.35 ms ◑