tx · C7noQiSGcNadDD74rajYq9dvD2ZPphk7DGrwkBsM1kS5

3Mwa42zxvNW3zYNaoLfDvQP5VdHFyovFUnm:  -0.01400000 Waves

2021.04.11 14:32 [1477737] smart account 3Mwa42zxvNW3zYNaoLfDvQP5VdHFyovFUnm > SELF 0.00000000 Waves

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

github/deemru/w8io/169f3d6 
32.77 ms