tx · ABdxTLsoFNu7X7gGWvQiFB1YaWr7WJWGNgq39jEnhxVq 3N7pxeiRGQcKGQrQqicxXG6vMPhJ525NQG3: -0.01000000 Waves 2022.03.03 18:03 [1947947] smart account 3N7pxeiRGQcKGQrQqicxXG6vMPhJ525NQG3 > SELF 0.00000000 Waves
{ "type": 13, "id": "ABdxTLsoFNu7X7gGWvQiFB1YaWr7WJWGNgq39jEnhxVq", "fee": 1000000, "feeAssetId": null, "timestamp": 1646319819111, "version": 2, "chainId": 84, "sender": "3N7pxeiRGQcKGQrQqicxXG6vMPhJ525NQG3", "senderPublicKey": "A5n4FVGd7NYd7eGpGVAUyEbSYtykfNmwEy19DBUcitFR", "proofs": [ "oHxTj3BeEzrz2zehrRMSMy7xZaWGdc13M8Fhqdrsin6d1gf2WMzndMobS5Cas1g27FRk6gmmF2dxNuYN5sZrQq5" ], "script": "base64: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ZXRJbnRlZ2VyT3JGYWlsAAAAAQUAAAARa2V5Vm90aW5nRHVyYXRpb24AAAAAFXZvdGVCZWZvcmVFbGltaW5hdGlvbgkBAAAAEGdldEludGVnZXJPckZhaWwAAAABBQAAABhrZXlWb3RlQmVmb3JlRWxpbWluYXRpb24AAAAAC3N0YXJ0SGVpZ2h0CQEAAAAQZ2V0SW50ZWdlck9yRmFpbAAAAAEFAAAADmtleVN0YXJ0SGVpZ2h0AAAAAA1jdXJyZW50UGVyaW9kCQEAAAAQZ2V0SW50ZWdlck9yRmFpbAAAAAEFAAAAEGtleUN1cnJlbnRQZXJpb2QAAAAAEGJvb3N0aW5nQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABBQAAABNrZXlCb29zdGluZ0NvbnRyYWN0AAAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAQUAAAATa2V5RW1pc3Npb25Db250cmFjdAEAAAASZ2V0UGVyaW9kRW5kSGVpZ2h0AAAAAQAAAAZwZXJpb2QJAABkAAAAAgUAAAALc3RhcnRIZWlnaHQJAABoAAAAAgkAAGQAAAACBQAAAAZwZXJpb2QAAAAAAAAAAAEFAAAADnZvdGluZ0R1cmF0aW9uAQAAABlnZXRDdXJyZW50UGVyaW9kRW5kSGVpZ2h0AAAAAAkBAAAAEmdldFBlcmlvZEVuZEhlaWdodAAAAAEFAAAADWN1cnJlbnRQZXJpb2QBAAAAGGdldFVzZXJHd3hBbW91bnRBdEhlaWdodAAAAAIAAAALdXNlckFkZHJlc3MAAAAMdGFyZ2V0SGVpZ2h0BAAAAAlnd3hBbW91bnQJAAP8AAAABAUAAAAQYm9vc3RpbmdDb250cmFjdAIAAAAgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkJAARMAAAAAgUAAAALdXNlckFkZHJlc3MJAARMAAAAAgUAAAAMdGFyZ2V0SGVpZ2h0BQAAAANuaWwFAAAAA25pbAkBAAAABWFzSW50AAAAAQUAAAAJZ3d4QW1vdW50AQAAAAxjb250YWluc05vZGUAAAACAAAA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dHJpbmdFbnRyeQAAAAIFAAAAE2tleUVtaXNzaW9uQ29udHJhY3QFAAAAE2VtaXNzaW9uQ29udHJhY3RQcm0JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADGtleUZlZUFtb3VudAUAAAAMZmVlQW1vdW50UHJtCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADGtleVd4QXNzZXRJZAUAAAAMd3hBc3NldElkUHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABJrZXlWb3RpbmdUaHJlc2hvbGQFAAAAEnZvdGluZ1RocmVzaG9sZFBybQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARa2V5Vm90aW5nRHVyYXRpb24FAAAAEXZvdGluZ0R1cmF0aW9uUHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABhrZXlWb3RlQmVmb3JlRWxpbWluYXRpb24FAAAAGHZvdGVCZWZvcmVFbGltaW5hdGlvblBybQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOa2V5U3RhcnRIZWlnaHQFAAAADnN0YXJ0SGVpZ2h0UHJtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABBrZXlDdXJyZW50UGVyaW9kAAAAAAAAAAAABQAAAANuaWwFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAB3N1Z2dlc3QAAAACAAAAB2Fzc2V0SWQAAAAKYXNzZXRJbWFnZQQAAAAEaW5mbwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEJAAJZAAAAAQUAAAAHYXNzZXRJZAIAAAAQSW52YWxpZCBhc3NldCBJRAQAAAAHcGF5bWVudAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAGY2hlY2tzCQAETAAAAAIDCQAAAAAAAAIIBQAAAARpbmZvAAAABmlzc3VlcggFAAAAAWkAAAAGY2FsbGVyBgkAAAIAAAABAgAAAClBc3NldCBjYW4gb25seSBiZSBzdWdnZXN0ZWQgYnkgaXRzIGlzc3VlcgkABEwAAAACAwkAAAAAAAACCQEAAAAFdmFsdWUAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAAl3eEFzc2V0SWQGCQAAAgAAAAECAAAAEUludmFsaWQgZmVlIGFzc2V0CQAETAAAAAIDCQAAAAAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAJZmVlQW1vdW50BgkAAAIAAAABAgAAABJJbnZhbGlkIGZlZSBhbW91bnQFAAAAA25pbAMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MEAAAACmJ1cm5GZWVJbnYJAAP8AAAABAUAAAAQZW1pc3Npb25Db250cmFjdAIAAAAEYnVybgUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAAA25pbAMJAAAAAAAAAgUAAAAKYnVybkZlZUludgUAAAAKYnVybkZlZUludgQAAAAPYWRkQXNzZXRBY3Rpb25zCQEAAAAKaW5zZXJ0Tm9kZQAAAAIFAAAADmFzc2V0c0xpc3ROYW1lBQAAAAdhc3NldElkCQAFFAAAAAIJAARNAAAAAgUAAAAPYWRkQXNzZXRBY3Rpb25zCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAANa2V5QXNzZXRJbWFnZQAAAAEFAAAAB2Fzc2V0SWQFAAAACmFzc2V0SW1hZ2UFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAAR2b3RlAAAAAgAAAAdhc3NldElkAAAAB2luRmF2b3IEAAAACWVuZEhlaWdodAkAAGQAAAACBQAAAAtzdGFydEhlaWdodAUAAAAOdm90aW5nRHVyYXRpb24EAAAACmNoZWNrQXNzZXQDCQEAAAAMY29udGFpbnNOb2RlAAAAAgUAAAAOYXNzZXRzTGlzdE5hbWUFAAAAB2Fzc2V0SWQGCQAAAgAAAAECAAAADUludmFsaWQgYXNzZXQDCQAAAAAAAAIFAAAACmNoZWNrQXNzZXQFAAAACmNoZWNrQXNzZXQEAAAAC2NoZWNrSGVpZ2h0AwkAAGYAAAACBQAAAAllbmRIZWlnaHQFAAAABmhlaWdodAYJAAACAAAAAQIAAAA0Q3VycmVudCB2b3RpbmcgaXMgb3ZlciBidXQgcmVzdWx0cyBhcmUgbm90IGZpbmFsaXplZAMJAAAAAAAAAgUAAAALY2hlY2tIZWlnaHQFAAAAC2NoZWNrSGVpZ2h0BAAAAAt1c2VyQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADmd3eEFtb3VudEF0RW5kCQEAAAAYZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0AAAAAgUAAAALdXNlckFkZHJlc3MFAAAACWVuZEhlaWdodAQAAAATY2hlY2tHd3hBbW91bnRBdEVuZAMJAABmAAAAAgUAAAAOZ3d4QW1vdW50QXRFbmQAAAAAAAAAAAAGCQAAAgAAAAECAAAAKFlvdSdsbCBub3QgaGF2ZSBnV1ggYXQgdGhlIGVuZCBvZiB2b3RpbmcDCQAAAAAAAAIFAAAAE2NoZWNrR3d4QW1vdW50QXRFbmQFAAAAE2NoZWNrR3d4QW1vdW50QXRFbmQEAAAADXZvdGVzTGlzdE5hbWUJAQAAABBnZXRWb3Rlc0xpc3ROYW1lAAAAAQUAAAAHYXNzZXRJZAQAAAALdXNlclZvdGVLZXkJAQAAABNrZXlVc2VyVm90ZUJ5UGVyaW9kAAAAAwUAAAALdXNlckFkZHJlc3MFAAAAB2Fzc2V0SWQFAAAADWN1cnJlbnRQZXJpb2QEAAAADnVzZXJWb3RlT3JVbml0CQAEIgAAAAEFAAAAC3VzZXJWb3RlS2V5BAAAAA91c2VyVm90ZUFjdGlvbnMJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAALdXNlclZvdGVLZXkJAQAAAA5mb3JtYXRVc2VyVm90ZQAAAAIFAAAADmd3eEFtb3VudEF0RW5kBQAAAAdpbkZhdm9yBQAAAANuaWwEAAAAEHZvdGVzTGlzdEFjdGlvbnMDCQAAAAAAAAIFAAAADnVzZXJWb3RlT3JVbml0BQAAAAR1bml0CQEAAAAKaW5zZXJ0Tm9kZQAAAAIFAAAADXZvdGVzTGlzdE5hbWUFAAAAC3VzZXJBZGRyZXNzBQAAAANuaWwJAAUUAAAAAgkABE4AAAACBQAAABB2b3Rlc0xpc3RBY3Rpb25zBQAAAA91c2VyVm90ZUFjdGlvbnMFAAAABHVuaXQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAKY2FuY2VsVm90ZQAAAAEAAAAHYXNzZXRJZAQAAAALdXNlckFkZHJlc3MJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAA12b3Rlc0xpc3ROYW1lCQEAAAAQZ2V0Vm90ZXNMaXN0TmFtZQAAAAEFAAAAB2Fzc2V0SWQEAAAAC3VzZXJWb3RlS2V5CQEAAAATa2V5VXNlclZvdGVCeVBlcmlvZAAAAAMFAAAAC3VzZXJBZGRyZXNzBQAAAAdhc3NldElkBQAAAA1jdXJyZW50UGVyaW9kBAAAAA51c2VyVm90ZU9yVW5pdAkABCIAAAABBQAAAAt1c2VyVm90ZUtleQQAAAAJY2hlY2tWb3RlCQEAAAALdmFsdWVPckVsc2UAAAACCQAEIgAAAAEFAAAAC3VzZXJWb3RlS2V5AgAAABFOb3RoaW5nIHRvIGNhbmNlbAMJAAAAAAAAAgUAAAAJY2hlY2tWb3RlBQAAAAljaGVja1ZvdGUEAAAAEHZvdGVzTGlzdEFjdGlvbnMJAQAAAApkZWxldGVOb2RlAAAAAgUAAAANdm90ZXNMaXN0TmFtZQUAAAALdXNlckFkZHJlc3MEAAAAD3VzZXJWb3RlQWN0aW9ucwkABEwAAAACCQEAAAALRGVsZXRlRW50cnkAAAABBQAAAAt1c2VyVm90ZUtleQUAAAADbmlsCQAFFAAAAAIJAAROAAAAAgUAAAAQdm90ZXNMaXN0QWN0aW9ucwUAAAAPdXNlclZvdGVBY3Rpb25zBQAAAAR1bml0CQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAA5maW5hbGl6ZVZvdGluZwAAAAEAAAAHYXNzZXRJZAkABRQAAAACBQAAAANuaWwFAAAABHVuaXQAAAABaQEAAAASc2V0Vm90aW5nVGhyZXNob2xkAAAAAQAAAAxuZXdUaHJlc2hvbGQEAAAAC2NoZWNrQ2FsbGVyCQEAAAAIdGhpc09ubHkAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASa2V5Vm90aW5nVGhyZXNob2xkBQAAAAxuZXdUaHJlc2hvbGQFAAAAA25pbAUAAAAEdW5pdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAGc2V0RmVlAAAAAQAAAAZuZXdGZWUEAAAAC2NoZWNrQ2FsbGVyCQEAAAAIdGhpc09ubHkAAAABBQAAAAFpAwkAAAAAAAACBQAAAAtjaGVja0NhbGxlcgUAAAALY2hlY2tDYWxsZXIJAAUUAAAAAgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAMa2V5RmVlQW1vdW50BQAAAAZuZXdGZWUFAAAAA25pbAUAAAAEdW5pdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAbZ3d4QXZhaWxhYmxlRm9yVm90ZVJFQURPTkxZAAAAAQAAAAdhZGRyZXNzCQAFFAAAAAIFAAAAA25pbAUAAAAEdW5pdAAAAABeKwD7", "height": 1947947, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6BXxbAekpMYDP1RwLSeBovPvEJRdUsUNFJou2qjKaLWx Next: none Diff:
Old | New | Differences | |
---|---|---|---|
204 | 204 | then true | |
205 | 205 | else throw("Invalid start height")] | |
206 | 206 | if ((ay == ay)) | |
207 | - | then $Tuple2([StringEntry(m, aq), StringEntry(n, ar), IntegerEntry(f, as), StringEntry(g, at), IntegerEntry(h, au), IntegerEntry(i, av), IntegerEntry(j, | |
207 | + | then $Tuple2([StringEntry(m, aq), StringEntry(n, ar), IntegerEntry(f, as), StringEntry(g, at), IntegerEntry(h, au), IntegerEntry(i, av), IntegerEntry(j, aw), IntegerEntry(k, ax), IntegerEntry(l, 0)], unit) | |
208 | 208 | else throw("Strict value is not equal to itself.") | |
209 | 209 | } | |
210 | 210 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "__" | |
5 | 5 | ||
6 | 6 | func b (c) = { | |
7 | 7 | let d = c | |
8 | 8 | if ($isInstanceOf(d, "Int")) | |
9 | 9 | then { | |
10 | 10 | let e = d | |
11 | 11 | e | |
12 | 12 | } | |
13 | 13 | else throw("Failed to cast into Int") | |
14 | 14 | } | |
15 | 15 | ||
16 | 16 | ||
17 | 17 | let f = makeString(["%s", "fee"], a) | |
18 | 18 | ||
19 | 19 | let g = makeString(["%s", "wxAssetId"], a) | |
20 | 20 | ||
21 | 21 | let h = makeString(["%s", "votingThreshold"], a) | |
22 | 22 | ||
23 | 23 | let i = makeString(["%s", "epochLength"], a) | |
24 | 24 | ||
25 | 25 | let j = makeString(["%s", "voteBeforeElimination"], a) | |
26 | 26 | ||
27 | 27 | let k = makeString(["%s", "currentVotingHeightStart"], a) | |
28 | 28 | ||
29 | 29 | let l = makeString(["%s", "currentEpoch"], a) | |
30 | 30 | ||
31 | 31 | let m = makeString(["%s", "boostingContract"], a) | |
32 | 32 | ||
33 | 33 | let n = makeString(["%s", "emissionContract"], a) | |
34 | 34 | ||
35 | 35 | func o (p) = makeString(["%s", "assetImage"], a) | |
36 | 36 | ||
37 | 37 | ||
38 | 38 | let q = "__assets" | |
39 | 39 | ||
40 | 40 | func r (p) = ("%s__votes__" + p) | |
41 | 41 | ||
42 | 42 | ||
43 | 43 | func s (t) = makeString([("%s%s" + t), "head"], a) | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | func u (t) = makeString([("%s%s" + t), "size"], a) | |
47 | 47 | ||
48 | 48 | ||
49 | 49 | func v (t,w) = makeString([("%s%s%s" + t), w, "prev"], a) | |
50 | 50 | ||
51 | 51 | ||
52 | 52 | func x (t,w) = makeString([("%s%s%s" + t), w, "next"], a) | |
53 | 53 | ||
54 | 54 | ||
55 | 55 | func y (z,p,A) = makeString(["%s%d%s%s", "vru", toString(A), p, z], a) | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | func B (C,D) = { | |
59 | 59 | let E = if (D) | |
60 | 60 | then C | |
61 | 61 | else 0 | |
62 | 62 | let F = if (D) | |
63 | 63 | then 0 | |
64 | 64 | else C | |
65 | 65 | makeString(["%d%d", toString(E), toString(F)], a) | |
66 | 66 | } | |
67 | 67 | ||
68 | 68 | ||
69 | 69 | func G (H) = { | |
70 | 70 | let I = split(H, a) | |
71 | 71 | let J = 1 | |
72 | 72 | let K = 2 | |
73 | 73 | let E = parseIntValue(I[J]) | |
74 | 74 | let F = parseIntValue(I[K]) | |
75 | 75 | let D = if ((E > 0)) | |
76 | 76 | then (F == 0) | |
77 | 77 | else false | |
78 | 78 | let L = if ((E == 0)) | |
79 | 79 | then (F > 0) | |
80 | 80 | else false | |
81 | 81 | let M = if (if (D) | |
82 | 82 | then true | |
83 | 83 | else L) | |
84 | 84 | then true | |
85 | 85 | else throw("Invalid user vote value") | |
86 | 86 | if ((M == M)) | |
87 | 87 | then { | |
88 | 88 | let C = if (D) | |
89 | 89 | then E | |
90 | 90 | else F | |
91 | 91 | $Tuple2(C, D) | |
92 | 92 | } | |
93 | 93 | else throw("Strict value is not equal to itself.") | |
94 | 94 | } | |
95 | 95 | ||
96 | 96 | ||
97 | 97 | func N (O) = if ((O.caller == this)) | |
98 | 98 | then true | |
99 | 99 | else throw("Permission denied") | |
100 | 100 | ||
101 | 101 | ||
102 | 102 | func P (Q) = valueOrElse(getInteger(this, Q), 0) | |
103 | 103 | ||
104 | 104 | ||
105 | 105 | func R (Q) = valueOrErrorMessage(getInteger(this, Q), (Q + " is not defined")) | |
106 | 106 | ||
107 | 107 | ||
108 | 108 | func S (Q) = valueOrElse(getString(this, Q), "") | |
109 | 109 | ||
110 | 110 | ||
111 | 111 | func T (Q) = valueOrErrorMessage(getString(this, Q), (Q + " is not defined")) | |
112 | 112 | ||
113 | 113 | ||
114 | 114 | let U = R(f) | |
115 | 115 | ||
116 | 116 | let V = fromBase58String(T(g)) | |
117 | 117 | ||
118 | 118 | let W = R(h) | |
119 | 119 | ||
120 | 120 | let X = R(i) | |
121 | 121 | ||
122 | 122 | let Y = R(j) | |
123 | 123 | ||
124 | 124 | let Z = R(k) | |
125 | 125 | ||
126 | 126 | let aa = R(l) | |
127 | 127 | ||
128 | 128 | let ab = addressFromStringValue(T(m)) | |
129 | 129 | ||
130 | 130 | let ac = addressFromStringValue(T(n)) | |
131 | 131 | ||
132 | 132 | func ad (A) = (Z + ((A + 1) * X)) | |
133 | 133 | ||
134 | 134 | ||
135 | 135 | func ae () = ad(aa) | |
136 | 136 | ||
137 | 137 | ||
138 | 138 | func af (z,ag) = { | |
139 | 139 | let ah = invoke(ab, "getUserGwxAmountAtHeightREADONLY", [z, ag], nil) | |
140 | 140 | b(ah) | |
141 | 141 | } | |
142 | 142 | ||
143 | 143 | ||
144 | 144 | func ai (t,w) = { | |
145 | 145 | let aj = getString(this, s(t)) | |
146 | 146 | let ak = getString(this, v(t, w)) | |
147 | 147 | let al = getString(this, x(t, w)) | |
148 | 148 | if (if ((w == aj)) | |
149 | 149 | then true | |
150 | 150 | else (ak != unit)) | |
151 | 151 | then true | |
152 | 152 | else (al != unit) | |
153 | 153 | } | |
154 | 154 | ||
155 | 155 | ||
156 | 156 | func am (t,w) = { | |
157 | 157 | let aj = getString(this, s(t)) | |
158 | 158 | let an = valueOrElse(getInteger(this, u(t)), 0) | |
159 | 159 | let ao = if (!(ai(t, w))) | |
160 | 160 | then true | |
161 | 161 | else throw("Node exists") | |
162 | 162 | if ((ao == ao)) | |
163 | 163 | then (([IntegerEntry(u(t), (an + 1))] ++ (if (isDefined(aj)) | |
164 | 164 | then [StringEntry(x(t, w), value(aj)), StringEntry(v(t, value(aj)), w)] | |
165 | 165 | else nil)) ++ [StringEntry(s(t), w)]) | |
166 | 166 | else throw("Strict value is not equal to itself.") | |
167 | 167 | } | |
168 | 168 | ||
169 | 169 | ||
170 | 170 | func ap (t,w) = { | |
171 | 171 | let aj = getString(this, s(t)) | |
172 | 172 | let an = valueOrElse(getInteger(this, u(t)), 0) | |
173 | 173 | let ak = getString(this, v(t, w)) | |
174 | 174 | let al = getString(this, x(t, w)) | |
175 | 175 | ([IntegerEntry(u(t), (an - 1))] ++ (if (if (isDefined(ak)) | |
176 | 176 | then isDefined(al) | |
177 | 177 | else false) | |
178 | 178 | then [StringEntry(x(t, value(ak)), value(al)), StringEntry(v(t, value(al)), value(ak)), DeleteEntry(v(t, w)), DeleteEntry(x(t, w))] | |
179 | 179 | else if (isDefined(al)) | |
180 | 180 | then [StringEntry(s(t), value(al)), DeleteEntry(x(t, w)), DeleteEntry(v(t, value(al)))] | |
181 | 181 | else if (isDefined(ak)) | |
182 | 182 | then [DeleteEntry(v(t, w)), DeleteEntry(x(t, value(ak)))] | |
183 | 183 | else if ((w == aj)) | |
184 | 184 | then [DeleteEntry(s(t))] | |
185 | 185 | else throw("Invalid node"))) | |
186 | 186 | } | |
187 | 187 | ||
188 | 188 | ||
189 | 189 | @Callable(O) | |
190 | 190 | func constructor (aq,ar,as,at,au,av,aw,ax) = { | |
191 | 191 | let ay = [N(O), if (isDefined(addressFromString(aq))) | |
192 | 192 | then true | |
193 | 193 | else throw("Invalid boosting contract address"), if (isDefined(addressFromString(ar))) | |
194 | 194 | then true | |
195 | 195 | else throw("Invalid emission contract address"), if ((as >= 0)) | |
196 | 196 | then true | |
197 | 197 | else throw("Invalid fee amount"), if (isDefined(assetInfo(fromBase58String(at)))) | |
198 | 198 | then true | |
199 | 199 | else throw("Invalid WX asset ID"), if ((au >= 0)) | |
200 | 200 | then true | |
201 | 201 | else throw("Invalid voting threshold"), if ((av > 0)) | |
202 | 202 | then true | |
203 | 203 | else throw("Invalid voting duration"), if (((ax + av) > height)) | |
204 | 204 | then true | |
205 | 205 | else throw("Invalid start height")] | |
206 | 206 | if ((ay == ay)) | |
207 | - | then $Tuple2([StringEntry(m, aq), StringEntry(n, ar), IntegerEntry(f, as), StringEntry(g, at), IntegerEntry(h, au), IntegerEntry(i, av), IntegerEntry(j, | |
207 | + | then $Tuple2([StringEntry(m, aq), StringEntry(n, ar), IntegerEntry(f, as), StringEntry(g, at), IntegerEntry(h, au), IntegerEntry(i, av), IntegerEntry(j, aw), IntegerEntry(k, ax), IntegerEntry(l, 0)], unit) | |
208 | 208 | else throw("Strict value is not equal to itself.") | |
209 | 209 | } | |
210 | 210 | ||
211 | 211 | ||
212 | 212 | ||
213 | 213 | @Callable(O) | |
214 | 214 | func suggest (p,az) = { | |
215 | 215 | let aA = valueOrErrorMessage(assetInfo(fromBase58String(p)), "Invalid asset ID") | |
216 | 216 | let aB = value(O.payments[0]) | |
217 | 217 | let ay = [if ((aA.issuer == O.caller)) | |
218 | 218 | then true | |
219 | 219 | else throw("Asset can only be suggested by its issuer"), if ((value(aB.assetId) == V)) | |
220 | 220 | then true | |
221 | 221 | else throw("Invalid fee asset"), if ((aB.amount == U)) | |
222 | 222 | then true | |
223 | 223 | else throw("Invalid fee amount")] | |
224 | 224 | if ((ay == ay)) | |
225 | 225 | then { | |
226 | 226 | let aC = invoke(ac, "burn", nil, [AttachedPayment(aB.assetId, aB.amount)]) | |
227 | 227 | if ((aC == aC)) | |
228 | 228 | then { | |
229 | 229 | let aD = am(q, p) | |
230 | 230 | $Tuple2((aD :+ StringEntry(o(p), az)), unit) | |
231 | 231 | } | |
232 | 232 | else throw("Strict value is not equal to itself.") | |
233 | 233 | } | |
234 | 234 | else throw("Strict value is not equal to itself.") | |
235 | 235 | } | |
236 | 236 | ||
237 | 237 | ||
238 | 238 | ||
239 | 239 | @Callable(O) | |
240 | 240 | func vote (p,D) = { | |
241 | 241 | let aE = (Z + X) | |
242 | 242 | let aF = if (ai(q, p)) | |
243 | 243 | then true | |
244 | 244 | else throw("Invalid asset") | |
245 | 245 | if ((aF == aF)) | |
246 | 246 | then { | |
247 | 247 | let aG = if ((aE > height)) | |
248 | 248 | then true | |
249 | 249 | else throw("Current voting is over but results are not finalized") | |
250 | 250 | if ((aG == aG)) | |
251 | 251 | then { | |
252 | 252 | let z = toString(O.caller) | |
253 | 253 | let aH = af(z, aE) | |
254 | 254 | let aI = if ((aH > 0)) | |
255 | 255 | then true | |
256 | 256 | else throw("You'll not have gWX at the end of voting") | |
257 | 257 | if ((aI == aI)) | |
258 | 258 | then { | |
259 | 259 | let aJ = r(p) | |
260 | 260 | let aK = y(z, p, aa) | |
261 | 261 | let aL = getString(aK) | |
262 | 262 | let aM = [StringEntry(aK, B(aH, D))] | |
263 | 263 | let aN = if ((aL == unit)) | |
264 | 264 | then am(aJ, z) | |
265 | 265 | else nil | |
266 | 266 | $Tuple2((aN ++ aM), unit) | |
267 | 267 | } | |
268 | 268 | else throw("Strict value is not equal to itself.") | |
269 | 269 | } | |
270 | 270 | else throw("Strict value is not equal to itself.") | |
271 | 271 | } | |
272 | 272 | else throw("Strict value is not equal to itself.") | |
273 | 273 | } | |
274 | 274 | ||
275 | 275 | ||
276 | 276 | ||
277 | 277 | @Callable(O) | |
278 | 278 | func cancelVote (p) = { | |
279 | 279 | let z = toString(O.caller) | |
280 | 280 | let aJ = r(p) | |
281 | 281 | let aK = y(z, p, aa) | |
282 | 282 | let aL = getString(aK) | |
283 | 283 | let aO = valueOrElse(getString(aK), "Nothing to cancel") | |
284 | 284 | if ((aO == aO)) | |
285 | 285 | then { | |
286 | 286 | let aN = ap(aJ, z) | |
287 | 287 | let aM = [DeleteEntry(aK)] | |
288 | 288 | $Tuple2((aN ++ aM), unit) | |
289 | 289 | } | |
290 | 290 | else throw("Strict value is not equal to itself.") | |
291 | 291 | } | |
292 | 292 | ||
293 | 293 | ||
294 | 294 | ||
295 | 295 | @Callable(O) | |
296 | 296 | func finalizeVoting (p) = $Tuple2(nil, unit) | |
297 | 297 | ||
298 | 298 | ||
299 | 299 | ||
300 | 300 | @Callable(O) | |
301 | 301 | func setVotingThreshold (aP) = { | |
302 | 302 | let aQ = N(O) | |
303 | 303 | if ((aQ == aQ)) | |
304 | 304 | then $Tuple2([IntegerEntry(h, aP)], unit) | |
305 | 305 | else throw("Strict value is not equal to itself.") | |
306 | 306 | } | |
307 | 307 | ||
308 | 308 | ||
309 | 309 | ||
310 | 310 | @Callable(O) | |
311 | 311 | func setFee (aR) = { | |
312 | 312 | let aQ = N(O) | |
313 | 313 | if ((aQ == aQ)) | |
314 | 314 | then $Tuple2([IntegerEntry(f, aR)], unit) | |
315 | 315 | else throw("Strict value is not equal to itself.") | |
316 | 316 | } | |
317 | 317 | ||
318 | 318 | ||
319 | 319 | ||
320 | 320 | @Callable(O) | |
321 | 321 | func gwxAvailableForVoteREADONLY (aS) = $Tuple2(nil, unit) | |
322 | 322 | ||
323 | 323 |
github/deemru/w8io/169f3d6 60.64 ms ◑![]()