tx · 2RTCA7ce4hGguWW1VfsS7BeVt2SRsFc3j6ELKb5q42XR

3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9:  -0.14000000 Waves

2022.06.07 12:18 [2085754] smart account 3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9 > SELF 0.00000000 Waves

{ "type": 13, "id": "2RTCA7ce4hGguWW1VfsS7BeVt2SRsFc3j6ELKb5q42XR", "fee": 14000000, "feeAssetId": null, "timestamp": 1654593510214, "version": 2, "chainId": 84, "sender": "3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9", "senderPublicKey": "D1X9WatF6ARMCmm3jC4Ex5Wd5VQ3LY8i1xbHNqeHqeAa", "proofs": [ "4SMX3ES8qWVoEP1DAuFWX4rN581Uw3dYHsjGBGeY3xNqSUEehbnk37bdzY2ni7f5M6k7GeqMZMq7kfYvvWH3CXtb", "4FiM7CixssnLRheZ6Kf1eg654SJZxLHmNuaf8APo15n5GtFHygUGdxCgewAR3FFjzoapc7a7ZBesjjmJWkHQA4j5" ], "script": "base64:AAIFAAAAAAAAAB8IAhIAEgQKAggIEgQKAggIEgMKAQQSAwoBCBIDCgEIAAAAFAAAAAAOa1Bvb2xzTGlzdE5hbWUCAAAABXBvb2xzAAAAAA9rUHJlZml4UG9vbE5hbWUCAAAABXBvb2xfAAAAABBrUHJlZml4UG9vbEluZGV4AgAAAAZpbmRleF8AAAAABWtQYWlyAgAAAAVwYWlyXwAAAAAJa0Fzc2V0SWRBAgAAAApBX2Fzc2V0X2lkAAAAAAlrQXNzZXRJZEICAAAACkJfYXNzZXRfaWQAAAAAH2tMYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMCAAAAIWxhdW5jaHBhZF9kYXRhX3RyYW5zYWN0aW9uX3N0YXR1cwAAAAANa0FkbWluUHViS2V5MQIAAAALYWRtaW5fcHViXzEAAAAADWtBZG1pblB1YktleTICAAAAC2FkbWluX3B1Yl8yAAAAAA1rQWRtaW5QdWJLZXkzAgAAAAthZG1pbl9wdWJfMwAAAAASa0FkbWluSW52b2tlUHViS2V5AgAAABBhZG1pbl9pbnZva2VfcHViAAAAABRrQWNoaWV2ZW1lbnRzV3JpdGVycwIAAAAUYWNoaWV2ZW1lbnRzX3dyaXRlcnMAAAAADGFkbWluUHViS2V5MQEAAAAg4qeMQDuGzRfmtEuH2+Whg6yuKqHsNy5eZQUT8rXs7wQAAAAADGFkbWluUHViS2V5MgEAAAAg6jisuQG1iDxyo54oPYHUGiJlERON346DjXz9V/GbEVkAAAAADGFkbWluUHViS2V5MwEAAAAgpzSWgrCjycddMmIBfztFJ08z6r82xAHPELd0cKonzG4AAAAAEWFkbWluUHViS2V5SW52b2tlAQAAACAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgAAAAAFcG9vbHMEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAAOa1Bvb2xzTGlzdE5hbWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAAGc3RyaW5nBQAAAAckbWF0Y2gwCQAEtQAAAAIFAAAABnN0cmluZwIAAAABLAQAAAAHbm90aGluZwUAAAAHJG1hdGNoMAUAAAADbmlsAQAAAAppc1NlbGZDYWxsAAAAAQAAAAFpAwkAAAAAAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMFAAAABHVuaXQJAAACAAAAAQIAAAAvT25seSB0aGUgT3JhY2xlIGl0c2VsZiBjYW4gaW52b2tlIHRoaXMgZnVuY3Rpb24BAAAAEmdldFBvb2xOYW1lSWZWYWxpZAAAAAEAAAAIcG9vbE5hbWUEAAAAD3VuZGVyc2NvcmVJbmRleAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABLMAAAACBQAAAAhwb29sTmFtZQIAAAABXwD//////////wQAAAATdW5kZXJzY29yZUxhc3RJbmRleAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABLcAAAACBQAAAAhwb29sTmFtZQIAAAABXwD//////////wQAAAATaGFzU2luZ2xlVW5kZXJzY29yZQMDCQAAAAAAAAIFAAAAD3VuZGVyc2NvcmVJbmRleAUAAAATdW5kZXJzY29yZUxhc3RJbmRleAkAAGYAAAACBQAAAA91bmRlcnNjb3JlSW5kZXgAAAAAAAAAAAAHCQEAAAACIT0AAAACBQAAAA91bmRlcnNjb3JlSW5kZXgJAABlAAAAAgkAATEAAAABBQAAAAhwb29sTmFtZQAAAAAAAAAAAQcDBQAAABNoYXNTaW5nbGVVbmRlcnNjb3JlBQAAAAhwb29sTmFtZQkAAAIAAAABAgAAAE5Qb29sIG5hbWUgbXVzdCBjb25zaXN0IG9mIHR3byBhc3NldCBuYW1lcyBzZXBhcmF0ZWQgYnkgYW4gdW5kZXJzY29yZSBjaGFyYWN0ZXIBAAAAEWdldEFkZHJlc3NJZlZhbGlkAAAAAQAAAAdhZGRyZXNzCQAEJQAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAdhZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAANQ2FuJ3QgcGFyc2UgIgUAAAAHYWRkcmVzcwIAAAAMIiBhcyBhZGRyZXNzAAAABgAAAAFpAQAAAAhzZXRBZG1pbgAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAAAppc1NlbGZDYWxsAAAAAQUAAAABaQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA1rQWRtaW5QdWJLZXkxCQACWAAAAAEFAAAADGFkbWluUHViS2V5MQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA1rQWRtaW5QdWJLZXkyCQACWAAAAAEFAAAADGFkbWluUHViS2V5MgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA1rQWRtaW5QdWJLZXkzCQACWAAAAAEFAAAADGFkbWluUHViS2V5MwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAABJrQWRtaW5JbnZva2VQdWJLZXkJAAJYAAAAAQUAAAARYWRtaW5QdWJLZXlJbnZva2UFAAAAA25pbAAAAAFpAQAAAAdhZGRQb29sAAAAAgAAAAtwb29sQWRkcmVzcwAAAAhwb29sTmFtZQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAACmlzU2VsZkNhbGwAAAABBQAAAAFpBAAAABB2YWxpZGF0ZWRBZGRyZXNzCQEAAAARZ2V0QWRkcmVzc0lmVmFsaWQAAAABBQAAAAtwb29sQWRkcmVzcwQAAAAHa2V5TmFtZQkAASwAAAACBQAAAA9rUHJlZml4UG9vbE5hbWUFAAAAEHZhbGlkYXRlZEFkZHJlc3MEAAAACGtleUluZGV4CQABLAAAAAIFAAAAEGtQcmVmaXhQb29sSW5kZXgFAAAAEHZhbGlkYXRlZEFkZHJlc3MEAAAACGFzc2V0SWRBCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgkBAAAABXZhbHVlAAAAAQkABCYAAAABBQAAAAtwb29sQWRkcmVzcwUAAAAJa0Fzc2V0SWRBAgAAABdBc3NldCBpZCBBIGlzIGluY29ycmVjdAQAAAAIYXNzZXRJZEIJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACCQEAAAAFdmFsdWUAAAABCQAEJgAAAAEFAAAAC3Bvb2xBZGRyZXNzBQAAAAlrQXNzZXRJZEICAAAAF0Fzc2V0IGlkIEIgaXMgaW5jb3JyZWN0BAAAABhwb3NzaWJseUFscmVhZHlBZGRlZFBvb2wJAAQdAAAAAgUAAAAEdGhpcwUAAAAHa2V5TmFtZQMJAQAAAAlpc0RlZmluZWQAAAABBQAAABhwb3NzaWJseUFscmVhZHlBZGRlZFBvb2wJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABNQb29sIHdpdGggYWRkcmVzcyAiBQAAABB2YWxpZGF0ZWRBZGRyZXNzAgAAACAiIGlzIGFscmVhZHkgZGVmaW5lZCB3aXRoIG5hbWUgIgkBAAAABXZhbHVlAAAAAQUAAAAYcG9zc2libHlBbHJlYWR5QWRkZWRQb29sAgAAAAEiCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAAhrZXlJbmRleAkAAZAAAAABBQAAAAVwb29scwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAAdrZXlOYW1lCQEAAAASZ2V0UG9vbE5hbWVJZlZhbGlkAAAAAQUAAAAIcG9vbE5hbWUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAFa1BhaXIFAAAACGFzc2V0SWRBAgAAAAFfBQAAAAhhc3NldElkQgUAAAALcG9vbEFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAOa1Bvb2xzTGlzdE5hbWUJAAS5AAAAAgkABE0AAAACBQAAAAVwb29scwUAAAAQdmFsaWRhdGVkQWRkcmVzcwIAAAABLAUAAAADbmlsAAAAAWkBAAAACnJlbmFtZVBvb2wAAAACAAAAC3Bvb2xBZGRyZXNzAAAAC25ld1Bvb2xOYW1lCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAKaXNTZWxmQ2FsbAAAAAEFAAAAAWkEAAAAEHZhbGlkYXRlZEFkZHJlc3MJAQAAABFnZXRBZGRyZXNzSWZWYWxpZAAAAAEFAAAAC3Bvb2xBZGRyZXNzBAAAAAdrZXlOYW1lCQABLAAAAAIFAAAAD2tQcmVmaXhQb29sTmFtZQUAAAAQdmFsaWRhdGVkQWRkcmVzcwQAAAAYcG9zc2libHlBbHJlYWR5QWRkZWRQb29sCQAEHQAAAAIFAAAABHRoaXMFAAAAB2tleU5hbWUDCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAYcG9zc2libHlBbHJlYWR5QWRkZWRQb29sCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAA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AAckbWF0Y2gwAgAAABZMZWFzZUNhbmNlbFRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAQTGVhc2VUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAEElzc3VlVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABpVcGRhdGVBc3NldEluZm9UcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9CdXJuVHJhbnNhY3Rpb24GCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAElJlaXNzdWVUcmFuc2FjdGlvbgUAAAANc2lnbmVkQnlBZG1pbgkAAAIAAAABAgAAAAtNYXRjaCBlcnJvctHcgDs=", "height": 2085754, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HL89nzomh7ctoMnL7kJvWs5YmkzYz9sHAAJX3Q6y5sVc Next: 37TExifogww359RfURTGDrep7n1gNyn53g5hGEQsSndX Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "active"
4+let a = "pools"
55
6-let b = "shutdown_cause"
6+let b = "pool_"
77
8-let c = "last_interest"
8+let c = "index_"
99
10-let d = "_last_interest"
10+let d = "pair_"
1111
12-let e = "_SWOP_amount"
12+let e = "A_asset_id"
1313
14-let f = "_getBackHeight"
14+let f = "B_asset_id"
1515
16-let g = "total_SWOP_amount"
16+let g = "launchpad_data_transaction_status"
1717
18-let h = "_user_total_SWOP_vote"
18+let h = "admin_pub_1"
1919
20-let i = "_SWOP_option_amount"
20+let i = "admin_pub_2"
2121
22-let j = "total_SWOP_option_amount"
22+let j = "admin_pub_3"
2323
24-let k = "_SWOP_claimed_amount"
24+let k = "admin_invoke_pub"
2525
26-let l = "_SWOP_last_claimed_amount"
26+let l = "achievements_writers"
2727
28-let m = "vote_name"
28+let m = base58'GFmKZ2naZFRoCvNbwKAQVGmLb1uBeWGDgFabdGBuZiuy'
2929
30-let n = "_option_name"
30+let n = base58'GmJXRyhRA79g8yUGgKBAVdnFfQFDMjQG98b1MmLDh5kk'
3131
32-let o = "_startHeight"
32+let o = base58'CFhbV6h41hVjbGHudGtS3fYUv7QAKRxFQzKNtx4B5PqP'
3333
34-let p = "_vote_duration"
34+let p = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
3535
36-let q = "_current_pool_fraction_reward"
37-
38-let r = "_previous_pool_fraction_reward"
39-
40-let s = "_pool_reward_update_height"
41-
42-let t = "total_reward_per_block_current"
43-
44-let u = "total_reward_per_block_previous"
45-
46-let v = "reward_update_height"
47-
48-let w = "reward_update_height_first_pagination"
49-
50-let x = "_vote_no"
51-
52-let y = "_vote_yes"
53-
54-let z = "max_amount_voting"
55-
56-let A = "_status"
57-
58-let B = "_finish_height"
59-
60-let C = "voting_active_cell_1"
61-
62-let D = "voting_active_cell_2"
63-
64-let E = "voting_active_cell_3"
65-
66-let F = "sum_reward_current"
67-
68-let G = "_bought_tickets"
69-
70-let H = "_swop_per_ticket"
71-
72-let I = "launchpad_active_id"
73-
74-let J = "_duration"
75-
76-let K = "_start_height"
77-
78-let L = "start_height"
79-
80-let M = "base_period"
81-
82-let N = "period_length"
83-
84-let O = "_user_total_struc"
85-
86-let P = "_freeze_swop_duration"
87-
88-let Q = "SWOP_id"
89-
90-let R = "airdrop_fee"
91-
92-let S = "admin_pub_1"
93-
94-let T = "admin_pub_2"
95-
96-let U = "admin_pub_3"
97-
98-let V = "money_box_pub_key"
99-
100-let W = "farming_address"
101-
102-let X = "voting_address"
103-
104-let Y = "voting_new_pool_address"
105-
106-let Z = "launchpad_address"
107-
108-let aa = "airdrop_fee_money_box"
109-
110-let ab = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
111-
112-func ac (ad) = {
113- let ae = getString(ab, ad)
114- if ($isInstanceOf(ae, "String"))
36+let q = {
37+ let r = getString(this, a)
38+ if ($isInstanceOf(r, "String"))
11539 then {
116- let af = ae
117- fromBase58String(af)
40+ let s = r
41+ split(s, ",")
11842 }
11943 else {
120- let ag = ae
121- throw((ad + "is empty"))
44+ let t = r
45+ nil
12246 }
12347 }
12448
125-
126-let ah = ac(S)
127-
128-let ai = ac(T)
129-
130-let aj = ac(U)
131-
132-let ak = ac(V)
133-
134-let al = Address(ac(W))
135-
136-let am = Address(ac(X))
137-
138-let an = Address(ac(Y))
139-
140-let ao = Address(ac(Z))
141-
142-let ap = Address(ac(aa))
143-
144-let aq = fromBase58String(getStringValue(al, Q))
145-
146-let ar = 100000000
147-
148-let as = 10000000000
149-
150-let at = valueOrErrorMessage(getInteger(am, M), "Empty kBasePeriod at voting contract")
151-
152-let au = valueOrErrorMessage(getInteger(am, L), "Empty kStartHeight at voting contract")
153-
154-let av = valueOrErrorMessage(getInteger(am, N), "Empty kPeriodLength at voting contract")
155-
156-let aw = valueOrElse(getString(an, C), "")
157-
158-let ax = valueOrElse(getString(an, D), "")
159-
160-let ay = valueOrElse(getString(an, E), "")
161-
162-let az = valueOrElse(getBoolean(this, a), true)
163-
164-let aA = getIntegerValue(ab, R)
165-
166-let aB = (at + ((height - au) / av))
167-
168-func aC (aD) = [BooleanEntry(a, false), StringEntry(b, aD)]
49+func u (v) = if ((v.caller == this))
50+ then unit
51+ else throw("Only the Oracle itself can invoke this function")
16952
17053
171-func aE () = throw("Not enough SWOP: userSWOPLocked - userTotalVoteAmount < voteSWOPAmount")
172-
173-
174-func aF () = valueOrElse(getInteger(this, c), 0)
175-
176-
177-func aG (aH) = valueOrElse(getInteger(this, (toString(aH) + e)), 0)
178-
179-
180-func aI (aH) = valueOrElse(getInteger(this, (toString(aH) + k)), 0)
181-
182-
183-func aJ (aH) = valueOrElse(getInteger(am, (toString(aH) + h)), 0)
184-
185-
186-func aK (aH,aL) = {
187- let aM = aG(aH)
188- let aN = getInteger(this, (toString(aH) + d))
189- let aO = {
190- let ae = aN
191- if ($isInstanceOf(ae, "Int"))
192- then {
193- let aN = ae
194- aN
195- }
196- else aL
197- }
198- $Tuple2(aO, aM)
54+func w (x) = {
55+ let y = valueOrElse(indexOf(x, "_"), -1)
56+ let z = valueOrElse(lastIndexOf(x, "_"), -1)
57+ let A = if (if ((y == z))
58+ then (y > 0)
59+ else false)
60+ then (y != (size(x) - 1))
61+ else false
62+ if (A)
63+ then x
64+ else throw("Pool name must consist of two asset names separated by an underscore character")
19965 }
20066
20167
202-func aP (aQ,aH) = {
203- let aR = valueOrElse(getInteger(an, aQ), -1)
204- let aS = valueOrElse(getInteger(an, (toString(aR) + B)), 0)
205- let aT = valueOrElse(getBoolean(an, (toString(aR) + A)), true)
206- let aU = height
207- if ((0 > aR))
208- then 0
209- else if (!(aT))
210- then 0
211- else if ((aS > aU))
212- then (valueOrElse(getInteger(an, (((toString(aH) + "_") + toString(aR)) + y)), 0) + valueOrElse(getInteger(an, (((toString(aH) + "_") + toString(aR)) + x)), 0))
213- else 0
214- }
68+func B (C) = toString(valueOrErrorMessage(addressFromString(C), (("Can't parse \"" + C) + "\" as address")))
21569
21670
217-func aV (aH) = {
218- let aW = [aP(aw, aH), aP(ax, aH), aP(ay, aH)]
219- max(aW)
220- }
221-
222-
223-func aX (aH) = {
224- let aY = toString(valueOrElse(getInteger(ao, I), 0))
225- if ((aY == "0"))
226- then 0
227- else {
228- let aZ = valueOrElse(getInteger(ao, (aY + K)), 0)
229- let ba = valueOrElse(getInteger(ao, (aY + J)), 0)
230- let bb = valueOrElse(getInteger(ao, (aY + P)), 0)
231- let bc = ((aZ + ba) + bb)
232- if ((height > bc))
233- then 0
234- else {
235- let bd = valueOrElse(getInteger(ao, (((toString(aH) + "_") + aY) + G)), 0)
236- let be = valueOrElse(getInteger(ao, (aY + H)), 0)
237- (bd * be)
238- }
239- }
240- }
241-
242-
243-func bf () = valueOrElse(getInteger(this, g), 0)
244-
245-
246-func bg (aH) = {
247- let bh = if (isDefined(getString(am, (toString(aH) + O))))
248- then {
249- let bi = split(valueOrErrorMessage(getString(am, (toString(aH) + O)), "Empty kUserTotalStruc"), "_")
250- $Tuple3(parseIntValue(bi[0]), parseIntValue(bi[1]), parseIntValue(bi[2]))
251- }
252- else {
253- let bj = valueOrElse(getInteger(am, (toString(aH) + h)), 0)
254- $Tuple3(bj, 0, aB)
255- }
256- let bk = bh._1
257- let bl = bh._2
258- let bm = bh._3
259- let bn = if ((bm == aB))
260- then bl
261- else 0
262- $Tuple2(bk, bn)
263- }
264-
265-
266-func bo (aH) = valueOrElse(getInteger(this, (toString(aH) + i)), 0)
267-
268-
269-func bp (bq) = valueOrElse(getInteger(this, (bq + o)), 0)
270-
271-
272-func br (aQ) = valueOrElse(getInteger(this, (aQ + s)), 0)
273-
274-
275-func bs (aQ) = isDefined(getInteger(this, (aQ + s)))
276-
277-
278-func bt (aQ) = valueOrElse(getInteger(this, (aQ + q)), 0)
279-
280-
281-func bu (aQ) = valueOrElse(getInteger(this, (aQ + r)), 0)
282-
283-
284-func bv (aH,bq,bw) = {
285- let bx = getInteger(this, (((bq + bw) + toString(aH)) + i))
286- let by = {
287- let ae = bx
288- if ($isInstanceOf(ae, "Int"))
289- then {
290- let by = ae
291- by
292- }
293- else if ($isInstanceOf(ae, "Unit"))
294- then {
295- let by = ae
296- 0
297- }
298- else throw("Match error")
299- }
300- valueOrErrorMessage(by, (((("No data on the key: " + bq) + bw) + toString(aH)) + i))
301- }
302-
303-
304-func bz (bq) = valueOrErrorMessage(getInteger(this, (bq + p)), (("No data on the key: " + bq) + p))
305-
306-
307-func bA (bq,bw) = {
308- let bB = getInteger(this, ((bq + bw) + j))
309- let bC = {
310- let ae = bB
311- if ($isInstanceOf(ae, "Int"))
312- then {
313- let bC = ae
314- bC
315- }
316- else if ($isInstanceOf(ae, "Unit"))
317- then {
318- let bC = ae
319- 0
320- }
321- else throw("Match error")
322- }
323- bC
324- }
325-
326-
327-func bD (bq,bw,aH,bE) = {
328- let ad = ((((((bq + "_") + bw) + "_") + toString(aH)) + "_") + toString(bE))
329- valueOrErrorMessage(getInteger(this, ad), ("No data on the key: " + ad))
330- }
331-
332-
333-func bF (bG) = {
334- let aL = aF()
335- let bH = aK(bG, aL)
336- let aN = bH._1
337- let bI = bH._2
338- let bJ = fraction(bI, (aL - aN), ar)
339- let bK = aL
340- $Tuple2(bK, bJ)
341- }
342-
343-
344-@Callable(bL)
345-func airDrop () = if (!(az))
346- then throw("DApp is inactive at this moment")
347- else {
348- let bM = $Tuple2(bL.payments[0].amount, bL.payments[0].assetId)
349- let bN = bM._1
350- let bO = bM._2
351- if ((bO != aq))
352- then throw("Incorrect pmtAssetId")
353- else {
354- let bP = fraction(bN, aA, 100, CEILING)
355- let bQ = bf()
356- let aL = aF()
357- let bR = (aL + fraction((bN - bP), ar, bQ))
358-[IntegerEntry(c, bR), ScriptTransfer(ap, bP, aq)]
359- }
360- }
71+@Callable(v)
72+func setAdmin () = valueOrElse(u(v), [StringEntry(h, toBase58String(m)), StringEntry(i, toBase58String(n)), StringEntry(j, toBase58String(o)), StringEntry(k, toBase58String(p))])
36173
36274
36375
364-@Callable(bL)
365-func lockSWOP () = if (!(az))
366- then throw("DApp is inactive at this moment")
367- else {
368- let bS = $Tuple2(bL.payments[0].amount, bL.payments[0].assetId)
369- let bN = bS._1
370- let bO = bS._2
371- if ((bO != aq))
372- then throw("Incorrect pmtAssetId")
373- else {
374- let aL = aF()
375- let bT = aK(bL.caller, aL)
376- let aN = bT._1
377- let bI = bT._2
378- let bJ = fraction(bI, (aL - aN), ar)
379- let bU = ((bI + bN) + bJ)
380- let bK = aL
381- let bQ = bf()
382- let bV = ((bQ + bN) + bJ)
383- let bW = aI(bL.caller)
384- let bX = (bW + bJ)
385-[IntegerEntry((toString(bL.caller) + d), bK), IntegerEntry((toString(bL.caller) + e), bU), IntegerEntry(g, bV), IntegerEntry((toString(bL.caller) + k), bX), IntegerEntry((toString(bL.caller) + l), bJ)]
386- }
387- }
76+@Callable(v)
77+func addPool (D,x) = valueOrElse(u(v), {
78+ let E = B(D)
79+ let F = (b + E)
80+ let G = (c + E)
81+ let H = valueOrErrorMessage(getString(value(addressFromString(D)), e), "Asset id A is incorrect")
82+ let I = valueOrErrorMessage(getString(value(addressFromString(D)), f), "Asset id B is incorrect")
83+ let J = getString(this, F)
84+ if (isDefined(J))
85+ then throw((((("Pool with address \"" + E) + "\" is already defined with name \"") + value(J)) + "\""))
86+ else [IntegerEntry(G, size(q)), StringEntry(F, w(x)), StringEntry((((d + H) + "_") + I), D), StringEntry(a, makeString((q :+ E), ","))]
87+ })
38888
38989
39090
391-@Callable(bL)
392-func withdrawSWOP (bY) = if (!(az))
393- then throw("DApp is inactive at this moment")
394- else if ((0 >= bY))
395- then throw("withdrawAmount <= 0")
396- else {
397- let bQ = bf()
398- let bI = aG(bL.caller)
399- let bZ = bF(bL.caller)
400- let bK = bZ._1
401- let bJ = bZ._2
402- let ca = bg(bL.caller)
403- let cb = ca._1
404- let cc = ca._2
405- let cd = aV(bL.caller)
406- let ce = aX(bL.caller)
407- if (if (if ((0 > cc))
408- then true
409- else (0 > cb))
410- then true
411- else (0 > cd))
412- then throw("userUnvoteAmount < 0 || userVoteAmount < 0 || userVoteAmountForNewPool < 0")
413- else {
414- let cf = (bI - max([cd, (cb + cc), ce]))
415- if ((bY > cf))
416- then throw("withdrawAmount > availableToUnstake")
417- else {
418- let bV = ((bQ + bJ) - bY)
419- let cg = ((bI + bJ) - bY)
420- let bW = aI(bL.caller)
421- let bX = (bW + bJ)
422-[IntegerEntry((toString(bL.caller) + d), bK), IntegerEntry((toString(bL.caller) + e), cg), IntegerEntry(g, bV), ScriptTransfer(bL.caller, bY, aq), IntegerEntry((toString(bL.caller) + k), bX), IntegerEntry((toString(bL.caller) + l), bJ)]
423- }
424- }
425- }
91+@Callable(v)
92+func renamePool (D,K) = valueOrElse(u(v), {
93+ let E = B(D)
94+ let F = (b + E)
95+ let J = getString(this, F)
96+ if (isDefined(J))
97+ then [StringEntry(F, w(K))]
98+ else throw((("Pool with address \"" + E) + "\" has not yet been added"))
99+ })
426100
427101
428102
429-@Callable(bL)
430-func claimAndWithdrawSWOP () = if (!(az))
431- then throw("DApp is inactive at this moment")
432- else {
433- let aL = aF()
434- let ch = bF(bL.caller)
435- let bK = ch._1
436- let bJ = ch._2
437- let bW = aI(bL.caller)
438- let bX = (bW + bJ)
439- if ((bJ == 0))
440- then throw("You have 0 available SWOP")
441- else [IntegerEntry((toString(bL.caller) + d), bK), IntegerEntry((toString(bL.caller) + k), bX), IntegerEntry((toString(bL.caller) + l), bJ), ScriptTransfer(bL.caller, bJ, aq)]
442- }
103+@Callable(v)
104+func launchpadDataTransactionStatus (L) = valueOrElse(u(v), [BooleanEntry(g, L)])
443105
444106
445107
446-@Callable(bL)
447-func claimAndStakeSWOP () = if (!(az))
448- then throw("DApp is inactive at this moment")
449- else {
450- let bQ = bf()
451- let bI = aG(bL.caller)
452- let aL = aF()
453- let ci = bF(bL.caller)
454- let bK = ci._1
455- let bJ = ci._2
456- let bU = (bI + bJ)
457- let bV = (bQ + bJ)
458- let bW = aI(bL.caller)
459- let bX = (bW + bJ)
460- if ((bJ == 0))
461- then throw("You have 0 available SWOP")
462- else [IntegerEntry((toString(bL.caller) + d), bK), IntegerEntry(g, bV), IntegerEntry((toString(bL.caller) + e), bU), IntegerEntry((toString(bL.caller) + k), bX), IntegerEntry((toString(bL.caller) + l), bJ)]
463- }
108+@Callable(v)
109+func addAchievementsWriter (C) = valueOrElse(u(v), {
110+ let M = valueOrElse(getString(this, l), "")
111+ let N = if ((M == ""))
112+ then nil
113+ else split(M, ",")
114+[StringEntry(l, makeString((N :+ C), ","))]
115+ })
464116
465117
466118
467-@Callable(bL)
468-func updateWeights (cj,ck,cl,cm) = if (!(az))
469- then throw("DApp is inactive at this moment")
470- else {
471- let cn = 10
472- let co = valueOrElse(getInteger(this, v), 0)
473- if (!(containsElement([ah, ai, aj, ak], bL.callerPublicKey)))
474- then throw("Only admin can call this function")
475- else if ((size(cj) > cn))
476- then throw(("Max amount of pool is " + toString(cn)))
477- else if ((co >= cl))
478- then throw("rewardUpdateHeight <= totalRewardUpdateHeight")
479- else if ((height >= cl))
480- then throw("height >= rewardUpdateHeight")
481- else if ((0 >= cl))
482- then throw("0 >= rewardUpdateHeight ")
483- else {
484- func cp (cq,cr) = (cq + cr)
485-
486- func cs (ct,aQ) = {
487- let cu = br(aQ)
488- if (if (!(bs(aQ)))
489- then true
490- else if ((cl != cu))
491- then (cu == co)
492- else false)
493- then {
494- let cv = bt(aQ)
495-IntegerEntry((aQ + r), cv) :: ct
496- }
497- else {
498- let cv = bu(aQ)
499-IntegerEntry((aQ + r), cv) :: ct
500- }
501- }
502-
503- func cw (ct,aQ) = {
504- let cx = value(indexOf(cj, aQ))
505- let cv = ck[cx]
506- if ((0 > cv))
507- then throw("PoolReward < 0")
508- else IntegerEntry((aQ + q), cv) :: ct
509- }
510-
511- func cy (ct,aQ) = {
512- let cz = cl
513-IntegerEntry((aQ + s), cz) :: ct
514- }
515-
516- func cA (cB,cm) = if ((cm == 0))
517- then if ((cB > as))
518- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(cm)) + " ") + toString(cB)))
519- else $Tuple2([IntegerEntry(F, cB)], [IntegerEntry(w, cl)])
520- else if ((cm == 1))
521- then {
522- let cC = valueOrElse(getInteger(this, F), 0)
523- let cD = valueOrElse(getInteger(this, w), 0)
524- if (((cB + cC) > as))
525- then throw(((("sumRewardPrevious > totalVoteShare or sumRewardCurrent > totalVoteShare - " + toString(cm)) + " ") + toString((cB + cC))))
526- else if ((cD != cl))
527- then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
528- else $Tuple2([IntegerEntry(F, (cB + cC))], nil)
529- }
530- else if ((cm == 2))
531- then {
532- let cE = (valueOrElse(getInteger(this, F), 0) + cB)
533- let cD = valueOrElse(getInteger(this, w), 0)
534- if ((cE != as))
535- then throw("sumRewardPrevious != totalVoteShare or sumRewardCurrent != totalVoteShare")
536- else if ((cD != cl))
537- then throw("current rewardUpdateHeight != rewardUpdateHeightFirstPaginationEntry")
538- else $Tuple2([IntegerEntry(F, cE)], nil)
539- }
540- else throw("Incorrect pagination")
541-
542- let cF = {
543- let cG = cj
544- let cH = size(cG)
545- let cI = nil
546- func cJ (cK,cL) = if ((cL >= cH))
547- then cK
548- else cs(cK, cG[cL])
549-
550- func cM (cK,cL) = if ((cL >= cH))
551- then cK
552- else throw("List size exceeds 10")
553-
554- cM(cJ(cJ(cJ(cJ(cJ(cJ(cJ(cJ(cJ(cJ(cI, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
555- }
556- let cN = {
557- let cG = cj
558- let cH = size(cG)
559- let cI = nil
560- func cO (cK,cL) = if ((cL >= cH))
561- then cK
562- else cw(cK, cG[cL])
563-
564- func cP (cK,cL) = if ((cL >= cH))
565- then cK
566- else throw("List size exceeds 10")
567-
568- cP(cO(cO(cO(cO(cO(cO(cO(cO(cO(cO(cI, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
569- }
570- let cQ = {
571- let cG = cj
572- let cH = size(cG)
573- let cI = nil
574- func cR (cK,cL) = if ((cL >= cH))
575- then cK
576- else cy(cK, cG[cL])
577-
578- func cS (cK,cL) = if ((cL >= cH))
579- then cK
580- else throw("List size exceeds 10")
581-
582- cS(cR(cR(cR(cR(cR(cR(cR(cR(cR(cR(cI, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
583- }
584- let cT = {
585- let cG = ck
586- let cH = size(cG)
587- let cI = 0
588- func cU (cK,cL) = if ((cL >= cH))
589- then cK
590- else cp(cK, cG[cL])
591-
592- func cV (cK,cL) = if ((cL >= cH))
593- then cK
594- else throw("List size exceeds 10")
595-
596- cV(cU(cU(cU(cU(cU(cU(cU(cU(cU(cU(cI, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
597- }
598- let cW = cA(cT, cm)
599- let cX = cW._1
600- let cD = cW._2
601- let cY = if ((cm == 2))
602- then [IntegerEntry(v, cl)]
603- else nil
604- if ((height > cl))
605- then throw("rewardUpdateHeight < height")
606- else (((((cF ++ cN) ++ cQ) ++ cX) ++ cY) ++ cD)
607- }
608- }
119+@Callable(v)
120+func removeAchievementsWriter (C) = valueOrElse(u(v), {
121+ let M = split(valueOrElse(getString(this, l), ""), ",")
122+ let O = valueOrErrorMessage(indexOf(M, C), "Can't find address in the list")
123+[StringEntry(l, makeString(removeByIndex(M, O), ","))]
124+ })
609125
610126
611-
612-@Callable(bL)
613-func shutdown () = if (!(az))
614- then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, b), "the cause wasn't specified")))
615- else if (!(containsElement([ah, ai, aj], bL.callerPublicKey)))
616- then throw("Only admin can call this function")
617- else aC("Paused by admin")
618-
619-
620-
621-@Callable(bL)
622-func activate () = if (az)
623- then throw("DApp is already active")
624- else if (!(containsElement([ah, ai, aj], bL.callerPublicKey)))
625- then throw("Only admin can call this function")
626- else [BooleanEntry(a, true), DeleteEntry(b)]
627-
628-
629-@Verifier(cZ)
630-func da () = {
631- let db = if (sigVerify(cZ.bodyBytes, cZ.proofs[0], ah))
127+@Verifier(P)
128+func Q () = {
129+ let R = if (sigVerify(P.bodyBytes, P.proofs[0], m))
632130 then 1
633131 else 0
634- let dc = if (sigVerify(cZ.bodyBytes, cZ.proofs[1], ai))
132+ let S = if (sigVerify(P.bodyBytes, P.proofs[1], n))
635133 then 1
636134 else 0
637- let dd = if (sigVerify(cZ.bodyBytes, cZ.proofs[2], aj))
135+ let T = if (sigVerify(P.bodyBytes, P.proofs[2], o))
638136 then 1
639137 else 0
640- (((db + dc) + dd) >= 2)
138+ let U = (((R + S) + T) >= 2)
139+ let V = (((R + S) + T) >= 1)
140+ let r = P
141+ if ($isInstanceOf(r, "InvokeScriptTransaction"))
142+ then {
143+ let W = r
144+ let X = if ((W.dApp == this))
145+ then containsElement(["renamePool"], W.function)
146+ else false
147+ let Y = if ((W.dApp == this))
148+ then containsElement(["setAdmin"], W.function)
149+ else false
150+ let Z = if ((W.dApp == this))
151+ then containsElement(["addPool"], W.function)
152+ else false
153+ let aa = if ((W.dApp == this))
154+ then containsElement(["launchpadDataTransactionStatus"], W.function)
155+ else false
156+ let ab = if ((W.dApp == this))
157+ then containsElement(["addAchievementsWriter"], W.function)
158+ else false
159+ let ac = if ((W.dApp == this))
160+ then containsElement(["removeAchievementsWriter"], W.function)
161+ else false
162+ if (if (if (if (if (if (if (U)
163+ then (size(W.payments) == 0)
164+ else false)
165+ then X
166+ else false)
167+ then true
168+ else if (if (V)
169+ then (size(W.payments) == 0)
170+ else false)
171+ then Z
172+ else false)
173+ then true
174+ else if (if (U)
175+ then (size(W.payments) == 0)
176+ else false)
177+ then Y
178+ else false)
179+ then true
180+ else if (if (U)
181+ then (size(W.payments) == 0)
182+ else false)
183+ then aa
184+ else false)
185+ then true
186+ else if (if (U)
187+ then (size(W.payments) == 0)
188+ else false)
189+ then ab
190+ else false)
191+ then true
192+ else if (if (U)
193+ then (size(W.payments) == 0)
194+ else false)
195+ then ac
196+ else false
197+ }
198+ else if (if ($isInstanceOf(r, "Order"))
199+ then true
200+ else if ($isInstanceOf(r, "DataTransaction"))
201+ then true
202+ else if ($isInstanceOf(r, "SponsorFeeTransaction"))
203+ then true
204+ else if ($isInstanceOf(r, "SetScriptTransaction"))
205+ then true
206+ else if ($isInstanceOf(r, "CreateAliasTransaction"))
207+ then true
208+ else if ($isInstanceOf(r, "LeaseCancelTransaction"))
209+ then true
210+ else if ($isInstanceOf(r, "LeaseTransaction"))
211+ then true
212+ else if ($isInstanceOf(r, "IssueTransaction"))
213+ then true
214+ else if ($isInstanceOf(r, "UpdateAssetInfoTransaction"))
215+ then true
216+ else if ($isInstanceOf(r, "InvokeScriptTransaction"))
217+ then true
218+ else if ($isInstanceOf(r, "SetAssetScriptTransaction"))
219+ then true
220+ else if ($isInstanceOf(r, "TransferTransaction"))
221+ then true
222+ else if ($isInstanceOf(r, "ExchangeTransaction"))
223+ then true
224+ else if ($isInstanceOf(r, "MassTransferTransaction"))
225+ then true
226+ else if ($isInstanceOf(r, "BurnTransaction"))
227+ then true
228+ else $isInstanceOf(r, "ReissueTransaction"))
229+ then U
230+ else throw("Match error")
641231 }
642232

github/deemru/w8io/169f3d6 
116.92 ms