tx · 2FkE548WTBBAkDWGGa5d9Rfgs81tYX3GmRvsRQmyRLZG 3N2wcNfEWihUVJV2S6jKwcw3QDupKgXPBnp: -0.01400000 Waves 2021.03.13 11:55 [1435704] smart account 3N2wcNfEWihUVJV2S6jKwcw3QDupKgXPBnp > SELF 0.00000000 Waves
{ "type": 13, "id": "2FkE548WTBBAkDWGGa5d9Rfgs81tYX3GmRvsRQmyRLZG", "fee": 1400000, "feeAssetId": null, "timestamp": 1615625716768, "version": 1, "sender": "3N2wcNfEWihUVJV2S6jKwcw3QDupKgXPBnp", "senderPublicKey": "2Ek8QRiW2SC3s4ZC79pXUmvJbmqU6agaNsjN2wmnzmSs", "proofs": [ "3Et6c1gRiFCwsWpHzob1xAyfzH1iTEjD1R5W4Q6dwXyXdZ4Au5nWtMKETN7rdC9iVbkoAnP6Doo2mpBZZ96P8tbA" ], "script": "base64:AAIEAAAAAAAAAAgIAhIECgIIAQAAAAcAAAAAEWtVc2VyUG9vbFZvdGVTV09QAgAAAAVfdm90ZQAAAAASa1VzZXJUb3RhbFZvdGVTV09QAgAAABVfdXNlcl90b3RhbF9TV09QX3ZvdGUAAAAADWtQb29sVm90ZVNXT1ACAAAACl92b3RlX1NXT1AAAAAADmtUb3RhbFZvdGVTV09QAgAAAA90b3RhbF92b3RlX1NXT1AAAAAAB2dvdkFkZHIJAQAAAAdBZGRyZXNzAAAAAQEAAAAaAVQTpUX1edzu1C+kk914p42uKvNrLVgR210BAAAAFGlzQ2FsbGVySW5Hb3Zlcm5hbmNlAAAAAQAAAAR1c2VyAwMJAABmAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAdnb3ZBZGRyCQABLAAAAAIJAAQlAAAAAQUAAAAEdXNlcgIAAAAMX1NXT1BfYW1vdW50AAAAAAAAAAAAAAAAAAAAAAAABgkAAGYAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkABCUAAAABBQAAAAR1c2VyBQAAABJrVXNlclRvdGFsVm90ZVNXT1AAAAAAAAAAAAAAAAAAAAAAAAAGBwEAAAASaXNQb29sSW5Hb3Zlcm5hbmNlAAAAAQAAAAtwb29sQWRkcmVzcwMJAABmAAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAdnb3ZBZGRyCQABLAAAAAIFAAAAC3Bvb2xBZGRyZXNzAgAAAAxfc3RhcnRIZWlnaHQAAAAAAAAAAAAAAAAAAAAAAAAGBwAAAAEAAAABaQEAAAAOdm90ZVBvb2xXZWlnaHQAAAACAAAAC3Bvb2xBZGRyZXNzAAAAD3Bvb2xWb3RlU1dPUE5ldwMJAQAAAAEhAAAAAQkBAAAAFGlzQ2FsbGVySW5Hb3Zlcm5hbmNlAAAAAQgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAAKlRoaXMgYWRkcmVzcyBoYXMgMCBTV09QIGluIEdvdmVybmFuY2UgZEFwcAMJAQAAAAEhAAAAAQkBAAAAEmlzUG9vbEluR292ZXJuYW5jZQAAAAEFAAAAC3Bvb2xBZGRyZXNzCQAAAgAAAAECAAAAMFRoaXMgcG9vbCBoYXMgbm8gX3N0YXJ0SGVpZ2h0IGluIEdvdmVybmFuY2UgZEFwcAQAAAATdXNlclRvdGFsVm90ZVdlaWdodAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBQAAABJrVXNlclRvdGFsVm90ZVNXT1AAAAAAAAAAAAAEAAAAEnVzZXJQb29sVm90ZVdlaWdodAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa1VzZXJQb29sVm90ZVNXT1ACAAAAAV8FAAAAC3Bvb2xBZGRyZXNzAAAAAAAAAAAABAAAAAxwb29sVm90ZVNXT1AJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAtwb29sQWRkcmVzcwUAAAANa1Bvb2xWb3RlU1dPUAAAAAAAAAAAAAQAAAANdG90YWxWb3RlU1dPUAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAA5rVG90YWxWb3RlU1dPUAAAAAAAAAAAAAQAAAAUdXNlclNXT1BpbkdvdmVybmFuY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAB2dvdkFkZHIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXICAAAADF9TV09QX2Ftb3VudAQAAAAScG9vbFZvdGVXZWlnaHREaWZmCQAAZQAAAAIFAAAAD3Bvb2xWb3RlU1dPUE5ldwUAAAASdXNlclBvb2xWb3RlV2VpZ2h0BAAAABR1c2VyVG90YWxWb3RlU1dPUE5ldwkAAGQAAAACBQAAABN1c2VyVG90YWxWb3RlV2VpZ2h0BQAAABJwb29sVm90ZVdlaWdodERpZmYEAAAAD3Bvb2xWb3RlU1dPUG5ldwkAAGQAAAACBQAAAAxwb29sVm90ZVNXT1AFAAAAEnBvb2xWb3RlV2VpZ2h0RGlmZgQAAAAQdG90YWxWb3RlU1dPUG5ldwkAAGQAAAACBQAAAAxwb29sVm90ZVNXT1AFAAAAEnBvb2xWb3RlV2VpZ2h0RGlmZgMJAABmAAAAAgUAAAAUdXNlclNXT1BpbkdvdmVybmFuY2UFAAAAFHVzZXJUb3RhbFZvdGVTV09QTmV3CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkABCUAAAABBQAAAAR0aGlzAgAAAAUgaGFzIAkAAaQAAAABBQAAABR1c2VyU1dPUGluR292ZXJuYW5jZQIAAAAnU1dPUCBpbiBnb3Zlcm5hbmNlLiBOZXcgU1dPUCBpbiB2b3RpbmcgCQABpAAAAAEFAAAAFHVzZXJUb3RhbFZvdGVTV09QTmV3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAARa1VzZXJQb29sVm90ZVNXT1ACAAAAAV8FAAAAC3Bvb2xBZGRyZXNzBQAAAA9wb29sVm90ZVNXT1BOZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAAEmtVc2VyVG90YWxWb3RlU1dPUAUAAAAUdXNlclRvdGFsVm90ZVNXT1BOZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAALcG9vbEFkZHJlc3MFAAAADWtQb29sVm90ZVNXT1AFAAAAD3Bvb2xWb3RlU1dPUG5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOa1RvdGFsVm90ZVNXT1AFAAAAEHRvdGFsVm90ZVNXT1BuZXcFAAAAA25pbAAAAAB+M4iz", "chainId": 84, "height": 1435704, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 5QSWyRyEcsk7YJuDqhP7isHa1DCcUYV5askUkMLVfsH5 Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 4 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let kUserPoolVoteSWOP = "_vote" | |
5 | + | ||
6 | + | let kUserTotalVoteSWOP = "_user_total_SWOP_vote" | |
7 | + | ||
8 | + | let kPoolVoteSWOP = "_vote_SWOP" | |
9 | + | ||
10 | + | let kTotalVoteSWOP = "total_vote_SWOP" | |
11 | + | ||
12 | + | let govAddr = Address(base58'3MqhxbxHEMtp2Rwy1gUb6cPSJHQepdap1Yp') | |
13 | + | ||
14 | + | func isCallerInGovernance (user) = if (if ((valueOrElse(getInteger(govAddr, (toString(user) + "_SWOP_amount")), 0) > 0)) | |
15 | + | then true | |
16 | + | else (valueOrElse(getInteger(this, (toString(user) + kUserTotalVoteSWOP)), 0) > 0)) | |
17 | + | then true | |
18 | + | else false | |
19 | + | ||
20 | + | ||
21 | + | func isPoolInGovernance (poolAddress) = if ((valueOrElse(getInteger(govAddr, (poolAddress + "_startHeight")), 0) > 0)) | |
22 | + | then true | |
23 | + | else false | |
24 | + | ||
25 | + | ||
26 | + | @Callable(i) | |
27 | + | func votePoolWeight (poolAddress,poolVoteSWOPNew) = if (!(isCallerInGovernance(i.caller))) | |
28 | + | then throw("This address has 0 SWOP in Governance dApp") | |
29 | + | else if (!(isPoolInGovernance(poolAddress))) | |
30 | + | then throw("This pool has no _startHeight in Governance dApp") | |
31 | + | else { | |
32 | + | let userTotalVoteWeight = valueOrElse(getInteger(this, (toString(i.caller) + kUserTotalVoteSWOP)), 0) | |
33 | + | let userPoolVoteWeight = valueOrElse(getInteger(this, (((toString(i.caller) + kUserPoolVoteSWOP) + "_") + poolAddress)), 0) | |
34 | + | let poolVoteSWOP = valueOrElse(getInteger(this, (poolAddress + kPoolVoteSWOP)), 0) | |
35 | + | let totalVoteSWOP = valueOrElse(getInteger(this, kTotalVoteSWOP), 0) | |
36 | + | let userSWOPinGovernance = getIntegerValue(govAddr, (toString(i.caller) + "_SWOP_amount")) | |
37 | + | let poolVoteWeightDiff = (poolVoteSWOPNew - userPoolVoteWeight) | |
38 | + | let userTotalVoteSWOPNew = (userTotalVoteWeight + poolVoteWeightDiff) | |
39 | + | let poolVoteSWOPnew = (poolVoteSWOP + poolVoteWeightDiff) | |
40 | + | let totalVoteSWOPnew = (poolVoteSWOP + poolVoteWeightDiff) | |
41 | + | if ((userSWOPinGovernance > userTotalVoteSWOPNew)) | |
42 | + | then throw(((((toString(this) + " has ") + toString(userSWOPinGovernance)) + "SWOP in governance. New SWOP in voting ") + toString(userTotalVoteSWOPNew))) | |
43 | + | else [IntegerEntry((((toString(i.caller) + kUserPoolVoteSWOP) + "_") + poolAddress), poolVoteSWOPNew), IntegerEntry((toString(i.caller) + kUserTotalVoteSWOP), userTotalVoteSWOPNew), IntegerEntry((poolAddress + kPoolVoteSWOP), poolVoteSWOPnew), IntegerEntry(kTotalVoteSWOP, totalVoteSWOPnew)] | |
44 | + | } | |
45 | + | ||
46 | + |
github/deemru/w8io/169f3d6 20.11 ms ◑