tx · s29KDqgCQT4zQAC4ZjHDqppWfiMyLLjZkRfgc3mGucP

3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph:  -0.01400000 Waves

2021.11.07 22:13 [1780999] smart account 3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph > SELF 0.00000000 Waves

{ "type": 13, "id": "s29KDqgCQT4zQAC4ZjHDqppWfiMyLLjZkRfgc3mGucP", "fee": 1400000, "feeAssetId": null, "timestamp": 1636312425668, "version": 2, "chainId": 84, "sender": "3N61Cvq5XcnPk9rxpy2Rnp3bSr4syNGUJph", "senderPublicKey": "G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD", "proofs": [ "3C37yM1WNN7SSv4jP9Y5e9SoymDxMfPnepa4fdUVYb3MMGHGJoUcEQW29ao66jVJAejdhU8nMgVSeTAqBos5V3gH" ], "script": "base64:AAIFAAAAAAAAACEIAhIAEgYKBBgYGBESBgoECAgBARIAEgMKAQgSBAoCCAEAAAAGAAAAAApkZXBvc2l0RmVlAAAAAAAAAAPoAAAAAA1jb250cm9sbGVyRmVlAAAAAAAAACcQAAAAAAtwbGF0Zm9ybUZlZQAAAAAAAAAnEAAAAAAMYWRtaW5QdWJLZXkxAQAAACDgkMh3M2mpU305XK7y5b9J+9C9m7ycRhB7Y2h8D+QzGgAAAAAMYWRtaW5QdWJLZXkyAQAAACDgkMh3M2mpU305XK7y5b9J+9C9m7ycRhB7Y2h8D+QzGgAAAAAMYWRtaW5QdWJLZXkzAQAAACDgkMh3M2mpU305XK7y5b9J+9C9m7ycRhB7Y2h8D+QzGgAAAAYAAAACYTgBAAAABGluaXQAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAADEzUFBIN3g3aXFvYlc1eml5aVJDaWMxOXJRcUtyNm5QWWFLMV9hc3NldF9iYWxhbmNlAAAAAAAAbdStBQAAAANuaWwAAAABaQEAAAAIYWRkUG9vbHMAAAAEAAAABXBvb2xzAAAAD2xpcXVpZGl0eVRva2VucwAAAA1zZXJ2aWNlVG9rZW5zAAAAFmxpcXVpZGl0eVRva2VuRGVjaW1hbHMDCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgkABEwAAAACBQAAAAxhZG1pblB1YktleTEJAARMAAAAAgUAAAAMYWRtaW5QdWJLZXkyCQAETAAAAAIFAAAADGFkbWluUHViS2V5MwUAAAADbmlsCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkKAQAAABBnZW5lcmF0ZVBvb2xLZXlzAAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wCAAAADl9hc3NldF9iYWxhbmNlAAAAAAAAAAAABQAAAAthY2N1bXVsYXRlZAoBAAAAHmdlbmVyYXRlUG9vbExpcXVpZGl0eVRva2VuS2V5cwAAAAIAAAALYWNjdW11bGF0ZWQAAAAEcG9vbAQAAAAJcG9vbEluZGV4CQEAAAAFdmFsdWUAAAABCQAETwAAAAIFAAAABXBvb2xzBQAAAARwb29sBAAAAA5saXF1aWRpdHlUb2tlbgkAAZEAAAACBQAAAA9saXF1aWRpdHlUb2tlbnMFAAAACXBvb2xJbmRleAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAEF9saXF1aWRpdHlfdG9rZW4FAAAADmxpcXVpZGl0eVRva2VuBQAAAAthY2N1bXVsYXRlZAoBAAAAHGdlbmVyYXRlUG9vbFNlcnZpY2VUb2tlbktleXMAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAVwb29scwUAAAAEcG9vbAQAAAAObGlxdWlkaXR5VG9rZW4JAAGRAAAAAgUAAAANc2VydmljZVRva2VucwUAAAAJcG9vbEluZGV4CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAEcG9vbAIAAAAOX3NlcnZpY2VfdG9rZW4FAAAADmxpcXVpZGl0eVRva2VuBQAAAAthY2N1bXVsYXRlZAoBAAAAJWdlbmVyYXRlUG9vbExpcXVpZGl0eVRva2VuRGVjaW1hbEtleXMAAAACAAAAC2FjY3VtdWxhdGVkAAAABHBvb2wEAAAACXBvb2xJbmRleAkBAAAABXZhbHVlAAAAAQkABE8AAAACBQAAAAVwb29scwUAAAAEcG9vbAQAAAAObGlxdWlkaXR5VG9rZW4JAAGRAAAAAgUAAAAWbGlxdWlkaXR5VG9rZW5EZWNpbWFscwUAAAAJcG9vbEluZGV4CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wCAAAADl9zZXJ2aWNlX3Rva2VuBQAAAA5saXF1aWRpdHlUb2tlbgUAAAALYWNjdW11bGF0ZWQKAQAAABZnZW5lcmF0ZVBvb2xBY3RpdmVLZXlzAAAAAgAAAAthY2N1bXVsYXRlZAAAAARwb29sCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIFAAAABHBvb2wCAAAAB19hY3RpdmUGBQAAAAthY2N1bXVsYXRlZAQAAAAPcG9vbEJhbGFuY2VLZXlzCgAAAAACJGwFAAAABXBvb2xz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ckFtb3VudAUAAAAUdXNlckFtb3VudFdpdGhvdXRGZWUJAARMAAAAAgkBAAAAB1JlaXNzdWUAAAADCQACWQAAAAEFAAAAEGRBcHBBc3NldEFkZHJlc3MFAAAAFHVzZXJBbW91bnRXaXRob3V0RmVlBgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAFHVzZXJBbW91bnRXaXRob3V0RmVlCQACWQAAAAEFAAAAEGRBcHBBc3NldEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADXBvb2xBbW91bnRLZXkFAAAADW5ld1Bvb2xBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEXVzZXJQb29sQW1vdW50S2V5BQAAABFuZXdVc2VyUG9vbEFtb3VudAUAAAADbmlsAAAAAWkBAAAACHdpdGhkcmF3AAAAAgAAAARwb29sAAAACnVzZXJFYXJuZWQEAAAABmFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50BAAAAAdhc3NldElkCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAA1wb29sQW1vdW50S2V5CQABLAAAAAIFAAAABHBvb2wCAAAADl9hc3NldF9iYWxhbmNlBAAAAAt1c2VyQWRkcmVzcwkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAAEXVzZXJQb29sQW1vdW50S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfBQAAAAt1c2VyQWRkcmVzcwIAAAAOX2Fzc2V0X2JhbGFuY2UEAAAAEXVzZXJQb29sRWFybmVkS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAARwb29sAgAAAAFfBQAAAAt1c2VyQWRkcmVzcwIAAAAHX2Vhcm5lZAQAAAAKcG9vbEFtb3VudAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAANcG9vbEFtb3VudEtleQQAAAAKdXNlckFtb3VudAQAAAAHJG1hdGNoMAkABB8AAAABBQAAABF1c2VyUG9vbEFtb3VudEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAQAAAAHbm90aGluZwUAAAAHJG1hdGNoMAAAAAAAAAAAAAQAAAAQdXNlckVhcm5lZEJlZm9yZQQAAAAHJG1hdGNoMAkABB8AAAABBQAAABF1c2VyUG9vbEVhcm5lZEtleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAANpbnQFAAAAByRtYXRjaDAFAAAAA2ludAQAAAAHbm90aGluZwUAAAAHJG1hdGNoMAAAAAAAAAAAAAQAAAAVbGlxdWlkdXR5QXNzZXRBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA1MykAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABHBvb2wCAAAAEF9saXF1aWRpdHlfdG9rZW4EAAAAFWxpcXVpZGl0eVRva2VuRGVjaW1hbAQAAAAHJG1hdGNoMAkAA+wAAAABCQACWQAAAAEFAAAAFWxpcXVpZHV0eUFzc2V0QWRkcmVzcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFQXNzZXQEAAAABWFzc2V0BQAAAAckbWF0Y2gwCAUAAAAFYXNzZXQAAAAIZGVjaW1hbHMJAAACAAAAAQIAAAAQQ2FuJ3QgZmluZCBhc3NldAQAAAAQZEFwcEFzc2V0QWRkcmVzcwkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAARwb29sAgAAAA5fc2VydmljZV90b2tlbgQAAAAPdXNlckVhcm5lZFRvdGFsCQAAZAAAAAIFAAAACnVzZXJFYXJuZWQFAAAAEHVzZXJFYXJuZWRCZWZvcmUEAAAAEGFtb3VudFdpdGhvdXRGZWUJAABlAAAAAgkAAGUAAAACBQAAAAZhbW91bnQJAQAAAAhmcmFjdGlvbgAAAAQFAAAABmFtb3VudAAAAAAAAAAAAQUAAAALcGxhdGZvcm1GZWUFAAAABkhBTEZVUAkBAAAACGZyYWN0aW9uAAAABAUAAAAGYW1vdW50AAAAAAAAAAABBQAAAA1jb250cm9sbGVyRmVlBQAAAAZIQUxGVVAEAAAADW5ld1Bvb2xBbW91bnQJAABlAAAAAgUAAAAKcG9vbEFtb3VudAUAAAAQYW1vdW50V2l0aG91dEZlZQMJAABnAAAAAgUAAAAKdXNlckFtb3VudAUAAAAGYW1vdW50BAAAABFuZXdVc2VyUG9vbEFtb3VudAkAAGUAAAACBQAAAAp1c2VyQW1vdW50BQAAABBhbW91bnRXaXRob3V0RmVlCQAETAAAAAIJAQAAAARCdXJuAAAAAgkAAlkAAAABBQAAABBkQXBwQXNzZXRBZGRyZXNzBQAAABBhbW91bnRXaXRob3V0RmVlCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAQYW1vdW50V2l0aG91dEZlZQkAAlkAAAABBQAAABVsaXF1aWR1dHlBc3NldEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAADXBvb2xBbW91bnRLZXkFAAAADW5ld1Bvb2xBbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEXVzZXJQb29sQW1vdW50S2V5BQAAABFuZXdVc2VyUG9vbEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAARdXNlclBvb2xFYXJuZWRLZXkFAAAAD3VzZXJFYXJuZWRUb3RhbAUAAAADbmlsCQAAAgAAAAECAAAAJllvdSBoYXZlIG5vdCBzdWNoIGJhbGFuY2UgZm9yIHdpdGhkcmF3AAAAAQAAAAJiNgEAAAACYjcAAAAACQAB9AAAAAMIBQAAAAJiNgAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAmI2AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAmI2AAAAD3NlbmRlclB1YmxpY0tlebt1vLE=", "height": 1780999, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8SmbJrz5LnovNbwHYWWhYqYoD7xpbueH2vg83GHXRsS1 Next: 3e9t4msHvrXRpz7AuNWH3RhouAMEKHZw6Q6fw2sr2t9h Diff:
OldNewDifferences
1919
2020
2121 @Callable(h)
22-func addPools (i,j,k,l) = {
23- func m (n,o) = IntegerEntry((o + "_asset_balance"), 0) :: n
22+func addPools (i,j,k,l) = if (containsElement([d, e, f], h.callerPublicKey))
23+ then {
24+ func m (n,o) = IntegerEntry((o + "_asset_balance"), 0) :: n
2425
25- func p (n,o) = {
26- let q = value(indexOf(i, o))
27- let r = j[q]
26+ func p (n,o) = {
27+ let q = value(indexOf(i, o))
28+ let r = j[q]
2829 StringEntry((o + "_liquidity_token"), r) :: n
30+ }
31+
32+ func s (n,o) = {
33+ let q = value(indexOf(i, o))
34+ let r = k[q]
35+StringEntry((o + "_service_token"), r) :: n
36+ }
37+
38+ func t (n,o) = {
39+ let q = value(indexOf(i, o))
40+ let r = l[q]
41+IntegerEntry((o + "_service_token"), r) :: n
42+ }
43+
44+ func u (n,o) = BooleanEntry((o + "_active"), true) :: n
45+
46+ let v = {
47+ let w = i
48+ let x = size(w)
49+ let y = nil
50+ func z (A,B) = if ((B >= x))
51+ then A
52+ else m(A, w[B])
53+
54+ func C (A,B) = if ((B >= x))
55+ then A
56+ else throw("List size exceeds 20")
57+
58+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
59+ }
60+ let D = {
61+ let w = i
62+ let x = size(w)
63+ let y = nil
64+ func z (A,B) = if ((B >= x))
65+ then A
66+ else p(A, w[B])
67+
68+ func C (A,B) = if ((B >= x))
69+ then A
70+ else throw("List size exceeds 20")
71+
72+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
73+ }
74+ let E = {
75+ let w = i
76+ let x = size(w)
77+ let y = nil
78+ func z (A,B) = if ((B >= x))
79+ then A
80+ else s(A, w[B])
81+
82+ func C (A,B) = if ((B >= x))
83+ then A
84+ else throw("List size exceeds 20")
85+
86+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
87+ }
88+ let F = {
89+ let w = i
90+ let x = size(w)
91+ let y = nil
92+ func z (A,B) = if ((B >= x))
93+ then A
94+ else t(A, w[B])
95+
96+ func C (A,B) = if ((B >= x))
97+ then A
98+ else throw("List size exceeds 20")
99+
100+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
101+ }
102+ let G = {
103+ let w = i
104+ let x = size(w)
105+ let y = nil
106+ func z (A,B) = if ((B >= x))
107+ then A
108+ else u(A, w[B])
109+
110+ func C (A,B) = if ((B >= x))
111+ then A
112+ else throw("List size exceeds 20")
113+
114+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
115+ }
116+ ((((v ++ D) ++ E) ++ F) ++ G)
29117 }
30-
31- func s (n,o) = {
32- let q = value(indexOf(i, o))
33- let r = k[q]
34-StringEntry((o + "_service_token"), r) :: n
35- }
36-
37- func t (n,o) = {
38- let q = value(indexOf(i, o))
39- let r = l[q]
40-IntegerEntry((o + "_service_token"), r) :: n
41- }
42-
43- func u (n,o) = BooleanEntry((o + "_active"), true) :: n
44-
45- let v = {
46- let w = i
47- let x = size(w)
48- let y = nil
49- func z (A,B) = if ((B >= x))
50- then A
51- else m(A, w[B])
52-
53- func C (A,B) = if ((B >= x))
54- then A
55- else throw("List size exceeds 20")
56-
57- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
58- }
59- let D = {
60- let w = i
61- let x = size(w)
62- let y = nil
63- func z (A,B) = if ((B >= x))
64- then A
65- else p(A, w[B])
66-
67- func C (A,B) = if ((B >= x))
68- then A
69- else throw("List size exceeds 20")
70-
71- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
72- }
73- let E = {
74- let w = i
75- let x = size(w)
76- let y = nil
77- func z (A,B) = if ((B >= x))
78- then A
79- else s(A, w[B])
80-
81- func C (A,B) = if ((B >= x))
82- then A
83- else throw("List size exceeds 20")
84-
85- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
86- }
87- let F = {
88- let w = i
89- let x = size(w)
90- let y = nil
91- func z (A,B) = if ((B >= x))
92- then A
93- else t(A, w[B])
94-
95- func C (A,B) = if ((B >= x))
96- then A
97- else throw("List size exceeds 20")
98-
99- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
100- }
101- let G = {
102- let w = i
103- let x = size(w)
104- let y = nil
105- func z (A,B) = if ((B >= x))
106- then A
107- else u(A, w[B])
108-
109- func C (A,B) = if ((B >= x))
110- then A
111- else throw("List size exceeds 20")
112-
113- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
114- }
115- ((((v ++ D) ++ E) ++ F) ++ G)
116- }
118+ else throw("Only admin can call this function")
117119
118120
119121
140142 let P = (o + "_asset_balance")
141143 let Q = toString(h.caller)
142144 let R = (((o + "_") + Q) + "_asset_balance")
143- let S = getStringValue(this, (o + "_service_token"))
144- let T = getIntegerValue(this, P)
145- let U = {
146- let V = getInteger(R)
147- if ($isInstanceOf(V, "Int"))
145+ let S = {
146+ let T = getString((o + "_service_token"))
147+ if ($isInstanceOf(T, "String"))
148148 then {
149- let W = V
150- W
149+ let U = T
150+ U
151151 }
152152 else {
153- let X = V
153+ let V = T
154+ throw("You try to exchange on unsupported pool")
155+ }
156+ }
157+ let W = getIntegerValue(this, P)
158+ let X = {
159+ let T = getInteger(R)
160+ if ($isInstanceOf(T, "Int"))
161+ then {
162+ let Y = T
163+ Y
164+ }
165+ else {
166+ let V = T
154167 0
155168 }
156169 }
157- let Y = (T + N)
158- let Z = ((N - fraction(N, 1, a, HALFUP)) - fraction(N, 1, b, HALFUP))
159- let aa = (U + Z)
160-[Reissue(fromBase58String(S), Z, true), ScriptTransfer(h.caller, Z, fromBase58String(S)), IntegerEntry(P, Y), IntegerEntry(R, aa)]
170+ let Z = (W + N)
171+ let aa = ((N - fraction(N, 1, a, HALFUP)) - fraction(N, 1, b, HALFUP))
172+ let ab = (X + aa)
173+[Reissue(fromBase58String(S), aa, true), ScriptTransfer(h.caller, aa, fromBase58String(S)), IntegerEntry(P, Z), IntegerEntry(R, ab)]
161174 }
162175
163176
164177
165178 @Callable(h)
166-func withdraw (o,ab) = {
179+func withdraw (o,ac) = {
167180 let N = h.payments[0].amount
168181 let O = h.payments[0].assetId
169182 let P = (o + "_asset_balance")
170183 let Q = toString(h.caller)
171184 let R = (((o + "_") + Q) + "_asset_balance")
172- let ac = (((o + "_") + Q) + "_earned")
173- let T = getIntegerValue(this, P)
174- let U = {
175- let V = getInteger(R)
176- if ($isInstanceOf(V, "Int"))
185+ let ad = (((o + "_") + Q) + "_earned")
186+ let W = getIntegerValue(this, P)
187+ let X = {
188+ let T = getInteger(R)
189+ if ($isInstanceOf(T, "Int"))
177190 then {
178- let W = V
179- W
191+ let Y = T
192+ Y
180193 }
181194 else {
182- let X = V
195+ let V = T
183196 0
184197 }
185198 }
186- let ad = {
187- let V = getInteger(ac)
188- if ($isInstanceOf(V, "Int"))
199+ let ae = {
200+ let T = getInteger(ad)
201+ if ($isInstanceOf(T, "Int"))
189202 then {
190- let W = V
191- W
203+ let Y = T
204+ Y
192205 }
193206 else {
194- let X = V
207+ let V = T
195208 0
196209 }
197210 }
198- let ae = getStringValue(this, (o + "_liquidity_token"))
199- let af = {
200- let V = assetInfo(fromBase58String(ae))
201- if ($isInstanceOf(V, "Asset"))
211+ let af = getStringValue(this, (o + "_liquidity_token"))
212+ let ag = {
213+ let T = assetInfo(fromBase58String(af))
214+ if ($isInstanceOf(T, "Asset"))
202215 then {
203- let ag = V
204- ag.decimals
216+ let ah = T
217+ ah.decimals
205218 }
206219 else throw("Can't find asset")
207220 }
208221 let S = getStringValue(this, (o + "_service_token"))
209- let ah = (ab + ad)
210- let ai = ((N - fraction(N, 1, c, HALFUP)) - fraction(N, 1, b, HALFUP))
211- let Y = (T - ai)
212- if ((U >= N))
222+ let ai = (ac + ae)
223+ let aj = ((N - fraction(N, 1, c, HALFUP)) - fraction(N, 1, b, HALFUP))
224+ let Z = (W - aj)
225+ if ((X >= N))
213226 then {
214- let aa = (U - ai)
215-[Burn(fromBase58String(S), ai), ScriptTransfer(h.caller, ai, fromBase58String(ae)), IntegerEntry(P, Y), IntegerEntry(R, aa), IntegerEntry(ac, ah)]
227+ let ab = (X - aj)
228+[Burn(fromBase58String(S), aj), ScriptTransfer(h.caller, aj, fromBase58String(af)), IntegerEntry(P, Z), IntegerEntry(R, ab), IntegerEntry(ad, ai)]
216229 }
217230 else throw("You have not such balance for withdraw")
218231 }
219232
220233
221-@Verifier(aj)
222-func ak () = sigVerify(aj.bodyBytes, aj.proofs[0], aj.senderPublicKey)
234+@Verifier(ak)
235+func al () = sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey)
223236
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000
55
66 let b = 10000
77
88 let c = 10000
99
1010 let d = base58'G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD'
1111
1212 let e = base58'G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD'
1313
1414 let f = base58'G7cNXePvAHUHmZfXa1eHnvFeH6DuykPC5wm9v9djTKgD'
1515
1616 @Callable(g)
1717 func init () = [IntegerEntry("3PPH7x7iqobW5ziyiRCic19rQqKr6nPYaK1_asset_balance", 7197869)]
1818
1919
2020
2121 @Callable(h)
22-func addPools (i,j,k,l) = {
23- func m (n,o) = IntegerEntry((o + "_asset_balance"), 0) :: n
22+func addPools (i,j,k,l) = if (containsElement([d, e, f], h.callerPublicKey))
23+ then {
24+ func m (n,o) = IntegerEntry((o + "_asset_balance"), 0) :: n
2425
25- func p (n,o) = {
26- let q = value(indexOf(i, o))
27- let r = j[q]
26+ func p (n,o) = {
27+ let q = value(indexOf(i, o))
28+ let r = j[q]
2829 StringEntry((o + "_liquidity_token"), r) :: n
30+ }
31+
32+ func s (n,o) = {
33+ let q = value(indexOf(i, o))
34+ let r = k[q]
35+StringEntry((o + "_service_token"), r) :: n
36+ }
37+
38+ func t (n,o) = {
39+ let q = value(indexOf(i, o))
40+ let r = l[q]
41+IntegerEntry((o + "_service_token"), r) :: n
42+ }
43+
44+ func u (n,o) = BooleanEntry((o + "_active"), true) :: n
45+
46+ let v = {
47+ let w = i
48+ let x = size(w)
49+ let y = nil
50+ func z (A,B) = if ((B >= x))
51+ then A
52+ else m(A, w[B])
53+
54+ func C (A,B) = if ((B >= x))
55+ then A
56+ else throw("List size exceeds 20")
57+
58+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
59+ }
60+ let D = {
61+ let w = i
62+ let x = size(w)
63+ let y = nil
64+ func z (A,B) = if ((B >= x))
65+ then A
66+ else p(A, w[B])
67+
68+ func C (A,B) = if ((B >= x))
69+ then A
70+ else throw("List size exceeds 20")
71+
72+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
73+ }
74+ let E = {
75+ let w = i
76+ let x = size(w)
77+ let y = nil
78+ func z (A,B) = if ((B >= x))
79+ then A
80+ else s(A, w[B])
81+
82+ func C (A,B) = if ((B >= x))
83+ then A
84+ else throw("List size exceeds 20")
85+
86+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
87+ }
88+ let F = {
89+ let w = i
90+ let x = size(w)
91+ let y = nil
92+ func z (A,B) = if ((B >= x))
93+ then A
94+ else t(A, w[B])
95+
96+ func C (A,B) = if ((B >= x))
97+ then A
98+ else throw("List size exceeds 20")
99+
100+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
101+ }
102+ let G = {
103+ let w = i
104+ let x = size(w)
105+ let y = nil
106+ func z (A,B) = if ((B >= x))
107+ then A
108+ else u(A, w[B])
109+
110+ func C (A,B) = if ((B >= x))
111+ then A
112+ else throw("List size exceeds 20")
113+
114+ C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
115+ }
116+ ((((v ++ D) ++ E) ++ F) ++ G)
29117 }
30-
31- func s (n,o) = {
32- let q = value(indexOf(i, o))
33- let r = k[q]
34-StringEntry((o + "_service_token"), r) :: n
35- }
36-
37- func t (n,o) = {
38- let q = value(indexOf(i, o))
39- let r = l[q]
40-IntegerEntry((o + "_service_token"), r) :: n
41- }
42-
43- func u (n,o) = BooleanEntry((o + "_active"), true) :: n
44-
45- let v = {
46- let w = i
47- let x = size(w)
48- let y = nil
49- func z (A,B) = if ((B >= x))
50- then A
51- else m(A, w[B])
52-
53- func C (A,B) = if ((B >= x))
54- then A
55- else throw("List size exceeds 20")
56-
57- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
58- }
59- let D = {
60- let w = i
61- let x = size(w)
62- let y = nil
63- func z (A,B) = if ((B >= x))
64- then A
65- else p(A, w[B])
66-
67- func C (A,B) = if ((B >= x))
68- then A
69- else throw("List size exceeds 20")
70-
71- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
72- }
73- let E = {
74- let w = i
75- let x = size(w)
76- let y = nil
77- func z (A,B) = if ((B >= x))
78- then A
79- else s(A, w[B])
80-
81- func C (A,B) = if ((B >= x))
82- then A
83- else throw("List size exceeds 20")
84-
85- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
86- }
87- let F = {
88- let w = i
89- let x = size(w)
90- let y = nil
91- func z (A,B) = if ((B >= x))
92- then A
93- else t(A, w[B])
94-
95- func C (A,B) = if ((B >= x))
96- then A
97- else throw("List size exceeds 20")
98-
99- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
100- }
101- let G = {
102- let w = i
103- let x = size(w)
104- let y = nil
105- func z (A,B) = if ((B >= x))
106- then A
107- else u(A, w[B])
108-
109- func C (A,B) = if ((B >= x))
110- then A
111- else throw("List size exceeds 20")
112-
113- C(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(z(y, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20)
114- }
115- ((((v ++ D) ++ E) ++ F) ++ G)
116- }
118+ else throw("Only admin can call this function")
117119
118120
119121
120122 @Callable(h)
121123 func issueToken (H,I,J,K) = if (containsElement([d, e, f], h.callerPublicKey))
122124 then [Issue(H, I, J, K, true, unit, 0)]
123125 else throw("Only admin can call this function")
124126
125127
126128
127129 @Callable(g)
128130 func call () = {
129131 let L = Issue("Asset107112021", "Asset from dApp 1", 100000, 2, true, unit, 0)
130132 let M = Issue("Asset207112021", "Asset from dApp 2", 100000, 2, true, unit, 0)
131133 [M, L]
132134 }
133135
134136
135137
136138 @Callable(h)
137139 func deposit (o) = {
138140 let N = h.payments[0].amount
139141 let O = h.payments[0].assetId
140142 let P = (o + "_asset_balance")
141143 let Q = toString(h.caller)
142144 let R = (((o + "_") + Q) + "_asset_balance")
143- let S = getStringValue(this, (o + "_service_token"))
144- let T = getIntegerValue(this, P)
145- let U = {
146- let V = getInteger(R)
147- if ($isInstanceOf(V, "Int"))
145+ let S = {
146+ let T = getString((o + "_service_token"))
147+ if ($isInstanceOf(T, "String"))
148148 then {
149- let W = V
150- W
149+ let U = T
150+ U
151151 }
152152 else {
153- let X = V
153+ let V = T
154+ throw("You try to exchange on unsupported pool")
155+ }
156+ }
157+ let W = getIntegerValue(this, P)
158+ let X = {
159+ let T = getInteger(R)
160+ if ($isInstanceOf(T, "Int"))
161+ then {
162+ let Y = T
163+ Y
164+ }
165+ else {
166+ let V = T
154167 0
155168 }
156169 }
157- let Y = (T + N)
158- let Z = ((N - fraction(N, 1, a, HALFUP)) - fraction(N, 1, b, HALFUP))
159- let aa = (U + Z)
160-[Reissue(fromBase58String(S), Z, true), ScriptTransfer(h.caller, Z, fromBase58String(S)), IntegerEntry(P, Y), IntegerEntry(R, aa)]
170+ let Z = (W + N)
171+ let aa = ((N - fraction(N, 1, a, HALFUP)) - fraction(N, 1, b, HALFUP))
172+ let ab = (X + aa)
173+[Reissue(fromBase58String(S), aa, true), ScriptTransfer(h.caller, aa, fromBase58String(S)), IntegerEntry(P, Z), IntegerEntry(R, ab)]
161174 }
162175
163176
164177
165178 @Callable(h)
166-func withdraw (o,ab) = {
179+func withdraw (o,ac) = {
167180 let N = h.payments[0].amount
168181 let O = h.payments[0].assetId
169182 let P = (o + "_asset_balance")
170183 let Q = toString(h.caller)
171184 let R = (((o + "_") + Q) + "_asset_balance")
172- let ac = (((o + "_") + Q) + "_earned")
173- let T = getIntegerValue(this, P)
174- let U = {
175- let V = getInteger(R)
176- if ($isInstanceOf(V, "Int"))
185+ let ad = (((o + "_") + Q) + "_earned")
186+ let W = getIntegerValue(this, P)
187+ let X = {
188+ let T = getInteger(R)
189+ if ($isInstanceOf(T, "Int"))
177190 then {
178- let W = V
179- W
191+ let Y = T
192+ Y
180193 }
181194 else {
182- let X = V
195+ let V = T
183196 0
184197 }
185198 }
186- let ad = {
187- let V = getInteger(ac)
188- if ($isInstanceOf(V, "Int"))
199+ let ae = {
200+ let T = getInteger(ad)
201+ if ($isInstanceOf(T, "Int"))
189202 then {
190- let W = V
191- W
203+ let Y = T
204+ Y
192205 }
193206 else {
194- let X = V
207+ let V = T
195208 0
196209 }
197210 }
198- let ae = getStringValue(this, (o + "_liquidity_token"))
199- let af = {
200- let V = assetInfo(fromBase58String(ae))
201- if ($isInstanceOf(V, "Asset"))
211+ let af = getStringValue(this, (o + "_liquidity_token"))
212+ let ag = {
213+ let T = assetInfo(fromBase58String(af))
214+ if ($isInstanceOf(T, "Asset"))
202215 then {
203- let ag = V
204- ag.decimals
216+ let ah = T
217+ ah.decimals
205218 }
206219 else throw("Can't find asset")
207220 }
208221 let S = getStringValue(this, (o + "_service_token"))
209- let ah = (ab + ad)
210- let ai = ((N - fraction(N, 1, c, HALFUP)) - fraction(N, 1, b, HALFUP))
211- let Y = (T - ai)
212- if ((U >= N))
222+ let ai = (ac + ae)
223+ let aj = ((N - fraction(N, 1, c, HALFUP)) - fraction(N, 1, b, HALFUP))
224+ let Z = (W - aj)
225+ if ((X >= N))
213226 then {
214- let aa = (U - ai)
215-[Burn(fromBase58String(S), ai), ScriptTransfer(h.caller, ai, fromBase58String(ae)), IntegerEntry(P, Y), IntegerEntry(R, aa), IntegerEntry(ac, ah)]
227+ let ab = (X - aj)
228+[Burn(fromBase58String(S), aj), ScriptTransfer(h.caller, aj, fromBase58String(af)), IntegerEntry(P, Z), IntegerEntry(R, ab), IntegerEntry(ad, ai)]
216229 }
217230 else throw("You have not such balance for withdraw")
218231 }
219232
220233
221-@Verifier(aj)
222-func ak () = sigVerify(aj.bodyBytes, aj.proofs[0], aj.senderPublicKey)
234+@Verifier(ak)
235+func al () = sigVerify(ak.bodyBytes, ak.proofs[0], ak.senderPublicKey)
223236

github/deemru/w8io/169f3d6 
52.70 ms