tx · jsupw7HNM16HghuxVRZ6ByGuFsj1qwanVSqxhtUgriZ

3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv:  -0.02200000 Waves

2022.11.02 15:26 [2299490] smart account 3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv > SELF 0.00000000 Waves

{ "type": 13, "id": "jsupw7HNM16HghuxVRZ6ByGuFsj1qwanVSqxhtUgriZ", "fee": 2200000, "feeAssetId": null, "timestamp": 1667392010226, "version": 1, "sender": "3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv", "senderPublicKey": "39YkRD2qWXTcdNBr4CbDnm8g8SAB2FKVaDeGYahcFHHx", "proofs": [ "2vwJwMwCQGkKc8VEHsn2bS25J8Fp8cG95xE7hbFo68Z3Vx4Cr3qsfVgFz9JbDDfcUfU7U2kW9kw8GMP96uXt66zw" ], "script": "base64:AAIFAAAAAAAADTAIAhIJCgcBAQEBAQgBEgASBAoCCAgSBAoCCAgSBAoCCAgSAwoBCBIAIg9nZXRTdHJpbmdPckZhaWwiA2tleSIDU0VQIghCVUZTQ0FMRSIGc2NhbGU4Igh0aHJvd0VyciIDbXNnIh1jb252ZXJ0UHJpY2VBc3NldEludG9JZG9Bc3NldCIQcHJpY2VBc3NldEFtb3VudCIOcHJpY2VBc3NldE1VTFQiBXByaWNlIglwcmljZU1VTFQiDGlkb0Fzc2V0TVVMVCIPYlByaWNlQXNzZXRNVUxUIg1iSWRvQXNzZXRNVUxUIg5iUHJpY2VBc3NldEJVRiIPYkFtb3VudEFzc2V0QlVGIg5JZHhDZmdJZG9TdGFydCIRSWR4Q2ZnSWRvRHVyYXRpb24iEElkeENmZ0NsYWltU3RhcnQiE0lkeENmZ0NsYWltRHVyYXRpb24iC0lkeENmZ1ByaWNlIg9JZHhDZmdQcmljZU11bHQiEElkeENmZ0lkb0Fzc2V0SWQiEklkeENmZ0lkb0Fzc2V0TXVsdCISSWR4Q2ZnUHJpY2VBc3NldElkIhRJZHhDZmdQcmljZUFzc2V0TXVsdCIVSWR4Q2ZnTWluSW52ZXN0QW1vdW50Ig1mcm9tYXRDb25maWdTIghpZG9TdGFydCILaWRvRHVyYXRpb24iCmNsYWltU3RhcnQiDWNsYWltRHVyYXRpb24iCXByaWNlTXVsdCIMaWRvQXNzZXRJZDU4IgxpZG9Bc3NldE11bHQiDnByaWNlQXNzZXRJZDU4Ig5wcmljZUFzc2V0TXVsdCIPbWluSW52ZXN0QW1vdW50IhN0b3RhbElkb0Fzc2V0VG9TZWxsIgxmcm9tYXRDb25maWciEUlkeEludlRvdGFsQW1vdW50IhVJZHhJbnZSZW1haW5pbmdBbW91bnQiHUlkeEludkNsYWltZWRQcmljZUFzc2V0QW1vdW50IhtJZHhJbnZDbGFpbWVkSWRvQXNzZXRBbW91bnQiF0lkeEludkxhc3RDbGFpbWVkSGVpZ2h0Ig9mb3JtYXRJbnZlc3RvclMiC3RvdGFsQW1vdW50Ig9yZW1haW5pbmdBbW91bnQiF2NsYWltZWRQcmljZUFzc2V0QW1vdW50IhVjbGFpbWVkSWRvQXNzZXRBbW91bnQiEWxhc3RDbGFpbWVkSGVpZ2h0Ig5mb3JtYXRJbnZlc3RvciITZm9ybWF0SGlzdG9yeVJlY29yZCIOaWRvQXNzZXRBbW91bnQiCWtleUNvbmZpZyILa2V5SW52ZXN0b3IiC3VzZXJBZGRyZXNzIglrZXlUb3RhbHMiGWtleU9wZXJhdGlvbkhpc3RvcnlSZWNvcmQiBHR5cGUiBnR4SWQ1OCIUa2V5VVNETkNsYWltRGlzYWJsZWQiFWtleVVTRE5DbGFpbUVuZEhlaWdodCIPa2V5UGVyaW9kTGVuZ3RoIhBrZXlDdXJybmV0UGVyaW9kIhRrZXlQZXJpb2RTdGFydEhlaWdodCIJcGVyaW9kTnVtIhJrZXlQZXJpb2RFbmRIZWlnaHQiH2tleVVzZHRQcmljZUFzc2V0QWxsb3dhYmxlUmF0aW8iF2tleVRvdGFsUGVyaW9kQWxsb3dhbmNlIgdhc3NldElkIhZrZXlVc2VyUGVyaW9kQWxsb3dhbmNlIh5rZXlQZXJpb2RUb3RhbEF2YWlsYWJsZVRvQ2xhaW0iHWtleVBlcmlvZFVzZXJBdmFpbGFibGVUb0NsYWltIhtrZXlVc2R0UHJpY2VBc3NldFN0YWJsZVBvb2wiDmtleVVzZHRBc3NldElkIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIPcmVhZENvbmZpZ0FycmF5IiNyZWFkVG90YWxzQXJyYXlPckRlZmF1bHRCeUN1c3RvbUtleSIJY3VzdG9tS2V5IhhyZWFkVG90YWxzQXJyYXlPckRlZmF1bHQiGnJlYWRJbnZlc3RvckFycmF5T3JEZWZhdWx0IhdyZWFkSW52ZXN0b3JBcnJheU9yRmFpbCIVSWR4RGlmZlRvdGFsSW5jcmVtZW50IiRJZHhEaWZmUmVtYWluaW5nUHJpY2VBbW91bnRJbmNyZW1lbnQiIklkeERpZmZDbGFpbWVkUHJpY2VBbW91bnRJbmNyZW1lbnQiJUlkeERpZmZDbGFpbWVkSWRvQXNzZXRBbW91bnRJbmNyZW1lbnQiC1RvdGFsc0VudHJ5IglvcmlnQXJyYXkiDWluY3JlbWVudERpZmYiFG5ld0xhc3RDbGFpbWVkSGVpZ2h0Ig5uZXdUb3RhbEFtb3VudCISbmV3UmVtYWluaW5nQW1vdW50IhpuZXdDbGFpbWVkUHJpY2VBc3NldEFtb3VudCIYbmV3Q2xhaW1lZElkb0Fzc2V0QW1vdW50IhtJbnZlc3RPcGVyYXRpb25IaXN0b3J5RW50cnkiBHR4SWQiGkNsYWltT3BlcmF0aW9uSGlzdG9yeUVudHJ5Ig1pbnRlcm5hbENsYWltIhBjbGFpbWVkQXNzZXRJZDU4IghjZmdBcnJheSIIY2xhaW1FbmQiCmlkb0Fzc2V0SWQiDHByaWNlQXNzZXRJZCINdXNlckFkZHJlc3M1OCIPb3JpZ0ludmVzdEFycmF5IhFpbnZlc3RUb3RhbEFtb3VudCIaaW52ZXN0TGFzdENsYWltZWRIZWlnaHRUTVAiF2ludmVzdExhc3RDbGFpbWVkSGVpZ2h0IhRuZXdDbGFpbVBlcmlvZEhlaWdodCIOY2xhaW1pbmdCbG9ja3MiGXRvdGFsVXNlckF2YWlsYWJsZVRvQ2xhaW0iFmNsYWltaW5nSWRvQXNzZXRBbW91bnQiBmlzVVNETiITaXNVU0ROQ2xhaW1EaXNhYmxlZCIQaXNVU0ROQ2xhaW1FbmRlZCIHJG1hdGNoMCIDZW5kIgZjaGVja3MiHnRvdGFsUGVyaW9kUHJpY2VBc3NldEFsbG93YW5jZSIddXNlclBlcmlvZFByaWNlQXNzZXRBbGxvd2FuY2UiDWN1cnJlbnRQZXJpb2QiG3BlcmlvZFRvdGFsQXZhaWxhYmxlVG9DbGFpbSIacGVyaW9kVXNlckF2YWlsYWJsZVRvQ2xhaW0iIWF2YWlsYWJsZUNsYWltaW5nUHJpY2VBc3NldEFtb3VudCIcdXNkdFByaWNlQXNzZXRBbGxvd2FibGVSYXRpbyIccHV0T25lVGtuVjJQcmljZUFzc2VzdEFtb3VudCINJHQwMTE2OTMxMTk0NSIBQCIFYm9udXMiCWZlZUFtb3VudCIIbHBBbW91bnQiC3VzZHRBc3NldElkIg0kdDAxMjAzNDEyMjUyIhRnZXRPbmVUa25WMkZlZUFtb3VudCIKdXNkdEFtb3VudCIaY3VycmVudFVzZHRQcmljZUFzc2V0UmF0aW8iE2VuZFBlcmlvZEJsb2Nrc0xlZnQiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgttdXN0TWFuYWdlciIBaSICcGQiAnBrIgZpZG9FbmQiA3BtdCIMaWRvQXNzZXRJbmZvIg5wcmljZUFzc2V0SW5mbyIPb3JpZ1RvdGFsc0FycmF5Igp0b3RhbHNEaWZmIg5taW5JdmVzdEFtb3VudCIKcG10QXNzZXRJZCIJcG10QW1vdW50IhFvcmlnSW52ZXN0b3JBcnJheSITbmV3UHJpY2VUb3RhbEFtb3VudCIWcmVxdWlyZWRJZG9Bc3NldEFtb3VudCIPY2FsbGVyQWRkcmVzczU4IhBjbGFpbVJlc3VsdFR1cGxlIglvdXRBbW91bnQiCm91dEFzc2V0SWQiFWF2YWlsYWJsZVRvQ2xhaW1BcnJheSIfcGVyaW9kQXZhaWxhYmxlSWRvQW1vdW50VG9DbGFpbSIlcGVyaW9kQXZhaWxhYmxlVXNlclByaWNlQW1vdW50VG9DbGFpbSImcGVyaW9kQXZhaWxhYmxlVG90YWxQcmljZUFtb3VudFRvQ2xhaW0iGmNsYWltZWRQcmljZUFtb3VudEZyb21EaWZmIh1jbGFpbWVkSWRvQXNzZXRBbW91bnRGcm9tRGlmZiIbYXZhaWxhYmxlUHJpY2VBbW91bnRUb0NsYWltIhlhdmFpbGFibGVJZG9BbW91bnRUb0NsYWltIhZjdXJyZW50UHJpY2VBc3NldFJhdGlvIhJlbmRQcmlvZEJsb2Nrc0xlZnQiDHJlc3VsdFN0cmluZyIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiC2NoZWNrQ2FsbGVyIhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5AAAAPgEAAAABYQAAAAEAAAABYgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEIgAAAAEFAAAAAWIJAAEsAAAAAgkAASwAAAACAgAAAA9tYW5kYXRvcnkgdGhpcy4FAAAAAWICAAAADyBpcyBub3QgZGVmaW5lZAAAAAABYwIAAAACX18AAAAAAWQJAAE2AAAAAQAN4Lazp2QAAAAAAAABZQAAAAAABfXhAAEAAAABZgAAAAEAAAABZwkAAAIAAAABCQAEuQAAAAIJAARMAAAA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", "chainId": 84, "height": 2299490, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4paTBxWxwpwajZrd6iCyaVxDk6kgYSyxf1n8wBYRoQYD Next: 7npvjwSRh6LG5mXgESqSSetbVn28p92CmpgdhvJHSmFM Diff:
OldNewDifferences
88
99 let d = toBigInt(1000000000000000000)
1010
11-func e (f,g,h,i,j) = {
12- let k = toBigInt(g)
13- let l = toBigInt(j)
14- let m = fraction(toBigInt(f), d, k)
15- let n = fraction(m, toBigInt(i), toBigInt(h))
16- toInt(fraction(n, toBigInt(j), d))
11+let e = 100000000
12+
13+func f (g) = throw(makeString(["ido.ride:", g], " "))
14+
15+
16+func h (i,j,k,l,m) = {
17+ let n = toBigInt(j)
18+ let o = toBigInt(m)
19+ let p = fraction(toBigInt(i), d, n)
20+ let q = fraction(p, toBigInt(l), toBigInt(k))
21+ toInt(fraction(q, toBigInt(m), d))
1722 }
1823
1924
20-let o = 1
25+let r = 1
2126
22-let p = 2
27+let s = 2
2328
24-let q = 3
29+let t = 3
2530
26-let r = 4
31+let u = 4
2732
28-let s = 5
33+let v = 5
2934
30-let t = 6
35+let w = 6
3136
32-let u = 7
37+let x = 7
3338
34-let v = 8
39+let y = 8
3540
36-let w = 9
41+let z = 9
3742
38-let x = 10
43+let A = 10
3944
40-let y = 11
45+let B = 11
4146
42-func z (A,B,C,D,h,E,F,G,H,I,J,K) = makeString(["%d%d%d%d%d%d%s%d%s%d%d%d", A, B, C, D, h, E, F, G, H, I, J, K], c)
47+func C (D,E,F,G,k,H,I,J,K,L,M,N) = makeString(["%d%d%d%d%d%d%s%d%s%d%d%d", D, E, F, G, k, H, I, J, K, L, M, N], c)
4348
4449
45-func L (A,B,C,D,h,E,F,G,H,I,J,K) = z(toString(A), toString(B), toString(C), toString(D), toString(h), toString(E), F, toString(G), H, toString(I), toString(J), toString(K))
50+func O (D,E,F,G,k,H,I,J,K,L,M,N) = C(toString(D), toString(E), toString(F), toString(G), toString(k), toString(H), I, toString(J), K, toString(L), toString(M), toString(N))
4651
4752
48-let M = 1
53+let P = 1
4954
50-let N = 2
55+let Q = 2
5156
52-let O = 3
57+let R = 3
5358
54-let P = 4
59+let S = 4
5560
56-let Q = 5
61+let T = 5
5762
58-func R (S,T,U,V,W) = makeString(["%d%d%d%d%d", S, T, U, V, W], c)
63+func U (V,W,X,Y,Z) = makeString(["%d%d%d%d%d", V, W, X, Y, Z], c)
5964
6065
61-func X (S,T,U,V,W) = R(toString(S), toString(T), toString(U), toString(V), toString(W))
66+func aa (V,W,X,Y,Z) = U(toString(V), toString(W), toString(X), toString(Y), toString(Z))
6267
6368
64-func Y (f,Z) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(f), toString(Z)], c)
69+func ab (i,ac) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(i), toString(ac)], c)
6570
6671
67-func aa () = "%s__config"
72+func ad () = "%s__config"
6873
6974
70-func ab (ac) = ("%s__" + ac)
75+func ae (af) = ("%s__" + af)
7176
7277
73-func ad () = "%s__totals"
78+func ag () = "%s__totals"
7479
7580
76-func ae (af,ac,ag) = makeString(["%s%s%s%s__history", af, ac, ag], c)
81+func ah (ai,af,aj) = makeString(["%s%s%s%s__history", ai, af, aj], c)
7782
7883
79-func ah () = "%s__usdnClaimDisabled"
84+func ak () = "%s__usdnClaimDisabled"
8085
8186
82-func ai () = "%s__usdnClaimEndHeight"
87+func al () = "%s__usdnClaimEndHeight"
8388
8489
85-func aj () = "%s__managerPublicKey"
90+func am () = makeString(["%s", "periodLength"], c)
8691
8792
88-func ak () = "%s__pendingManagerPublicKey"
93+func an () = makeString(["%s", "currentPeriod"], c)
8994
9095
91-func al () = split(a(aa()), c)
96+func ao (ap) = makeString(["%s%s", "periodStartHeight", toString(ap)], c)
9297
9398
94-func am (an) = split(valueOrElse(getString(an), R("0", "0", "0", "0", "0")), c)
99+func aq (ap) = makeString(["%s%s", "periodEndHeight", toString(ap)], c)
95100
96101
97-func ao () = am(ad())
102+func ar () = makeString(["%s", "usdtPriceAssetAllowableRatio"], c)
98103
99104
100-func ap (ac) = am(ab(ac))
105+func as (at) = makeString(["%s%s", "totalPeriodAllowance", at], c)
101106
102107
103-func aq (ac) = split(a(ab(ac)), c)
108+func au (at) = makeString(["%s%s", "userPeriodAllowance", at], c)
104109
105110
106-let ar = 0
111+func av (at,ap) = makeString(["%s%s%s", "periodTotalAvailableToClaim", at, toString(ap)], c)
107112
108-let as = 1
109113
110-let at = 2
114+func aw (at,ap,af) = makeString(["%s%s%s%s", "periodUserAvailableToClaim", at, toString(ap), af], c)
111115
112-let au = 3
113116
114-func av (b,aw,ax,ay) = {
115- let S = parseIntValue(aw[M])
116- let T = parseIntValue(aw[N])
117- let U = parseIntValue(aw[O])
118- let V = parseIntValue(aw[P])
119- let W = parseIntValue(aw[Q])
120- let az = (S + ax[ar])
121- let aA = (T + ax[as])
122- let aB = (U + ax[at])
123- let aC = (V + ax[au])
124- if ((0 > aA))
117+func ax () = makeString(["%s", "usdtPriceAssetStablePool"], c)
118+
119+
120+func ay () = makeString(["%s", "usdtAssetId"], c)
121+
122+
123+func az () = "%s__managerPublicKey"
124+
125+
126+func aA () = "%s__pendingManagerPublicKey"
127+
128+
129+func aB () = split(a(ad()), c)
130+
131+
132+func aC (aD) = split(valueOrElse(getString(aD), U("0", "0", "0", "0", "0")), c)
133+
134+
135+func aE () = aC(ag())
136+
137+
138+func aF (af) = aC(ae(af))
139+
140+
141+func aG (af) = split(a(ae(af)), c)
142+
143+
144+let aH = 0
145+
146+let aI = 1
147+
148+let aJ = 2
149+
150+let aK = 3
151+
152+func aL (b,aM,aN,aO) = {
153+ let V = parseIntValue(aM[P])
154+ let W = parseIntValue(aM[Q])
155+ let X = parseIntValue(aM[R])
156+ let Y = parseIntValue(aM[S])
157+ let Z = parseIntValue(aM[T])
158+ let aP = (V + aN[aH])
159+ let aQ = (W + aN[aI])
160+ let aR = (X + aN[aJ])
161+ let aS = (Y + aN[aK])
162+ if ((0 > aQ))
125163 then throw("invalid math")
126- else StringEntry(b, X(az, aA, aB, aC, ay))
164+ else StringEntry(b, aa(aP, aQ, aR, aS, aO))
127165 }
128166
129167
130-func aD (ac,f,Z,aE) = StringEntry(ae("invest", ac, toBase58String(aE)), Y(f, Z))
168+func aT (af,i,ac,aU) = StringEntry(ah("invest", af, toBase58String(aU)), ab(i, ac))
131169
132170
133-func aF (ac,f,Z,aE) = StringEntry(ae("claim", ac, toBase58String(aE)), Y(f, Z))
171+func aV (af,i,ac,aU) = StringEntry(ah("claim", af, toBase58String(aU)), ab(i, ac))
134172
135173
136-func aG (aH,ac,aE) = {
137- let aI = al()
138- let C = parseIntValue(aI[q])
139- let D = parseIntValue(aI[r])
140- let aJ = (C + D)
141- let h = parseIntValue(aI[s])
142- let E = parseIntValue(aI[t])
143- let F = aI[u]
144- let aK = fromBase58String(F)
145- let G = parseIntValue(aI[v])
146- let H = aI[w]
147- let aL = fromBase58String(H)
148- let I = parseIntValue(aI[x])
149- let aM = toString(ac)
150- let aN = aq(aM)
151- let aO = parseIntValue(aN[M])
152- let aP = parseIntValue(aN[Q])
153- let aQ = if ((C >= aP))
154- then C
155- else aP
156- let aR = if ((height > aJ))
157- then aJ
158- else if ((C > height))
159- then C
174+func aW (aX,af,aU) = {
175+ let aY = aB()
176+ let F = parseIntValue(aY[t])
177+ let G = parseIntValue(aY[u])
178+ let aZ = (F + G)
179+ let k = parseIntValue(aY[v])
180+ let H = parseIntValue(aY[w])
181+ let I = aY[x]
182+ let ba = fromBase58String(I)
183+ let J = parseIntValue(aY[y])
184+ let K = aY[z]
185+ let bb = fromBase58String(K)
186+ let L = parseIntValue(aY[A])
187+ let bc = toString(af)
188+ let bd = aG(bc)
189+ let be = parseIntValue(bd[P])
190+ let bf = parseIntValue(bd[T])
191+ let bg = if ((F >= bf))
192+ then F
193+ else bf
194+ let bh = if ((height > aZ))
195+ then aZ
196+ else if ((F > height))
197+ then F
160198 else height
161- let aS = (aR - aQ)
162- let aT = fraction(aO, aS, D)
163- let aU = e(aT, I, h, E, G)
164- let aV = (aH == H)
165- let aW = valueOrElse(getBoolean(ah()), false)
166- let aX = {
167- let aY = getInteger(ai())
168- if ($isInstanceOf(aY, "Int"))
199+ let bi = (bh - bg)
200+ let bj = fraction(be, bi, G)
201+ let bk = h(bj, L, k, H, J)
202+ let bl = (aX == K)
203+ let bm = valueOrElse(getBoolean(ak()), false)
204+ let bn = {
205+ let bo = getInteger(al())
206+ if ($isInstanceOf(bo, "Int"))
169207 then {
170- let aZ = aY
171- (height > aZ)
208+ let bp = bo
209+ (height > bp)
172210 }
173- else if ($isInstanceOf(aY, "Unit"))
211+ else if ($isInstanceOf(bo, "Unit"))
174212 then false
175213 else throw("Match error")
176214 }
177- let ba = [if (!(if (aV)
178- then aW
215+ let bq = [if (!(if (bl)
216+ then bm
179217 else false))
180218 then true
181- else throw("USDN claim is disabled"), if (!(if (aV)
182- then aX
219+ else f("USDN claim is disabled"), if (!(if (bl)
220+ then bn
183221 else false))
184222 then true
185- else throw("USDN claim is ended")]
186- if ((ba == ba))
187- then if ((aH == H))
188- then $Tuple6([0, -(aT), aT, 0], aT, aL, aN, aR, [aT, aU])
189- else if ((aH == F))
190- then $Tuple6([0, -(aT), 0, aU], aU, aK, aN, aR, [aT, aU])
191- else throw(("unsupported assetId: " + aH))
223+ else f("USDN claim is ended")]
224+ if ((bq == bq))
225+ then {
226+ let br = value(getInteger(as(K)))
227+ let bs = value(getInteger(au(K)))
228+ let bt = valueOrElse(getInteger(an()), 0)
229+ let bu = valueOrElse(getInteger(av(K, bt)), br)
230+ let bv = valueOrElse(getInteger(aw(K, bt, bc)), bs)
231+ let bw = min([bj, bu, bv])
232+ let bx = value(getInteger(ar()))
233+ let by = e
234+ let bz = {
235+ let bA = invoke(addressFromStringValue(value(getString(ax()))), "putOneTknV2WithoutTakeFeeREADONLY", [by, bb], nil)
236+ if ($isInstanceOf(bA, "(Int, Int, Int)"))
237+ then bA
238+ else throw("Couldn't cast Any to (Int, Int, Int)")
239+ }
240+ if ((bz == bz))
241+ then {
242+ let bB = bz._3
243+ let bC = bz._2
244+ let bD = bz._1
245+ let bE = value(fromBase58String(value(getString(ay()))))
246+ let bF = {
247+ let bA = invoke(addressFromStringValue(value(getString(ax()))), "getOneTknV2READONLY", [bE, bD], nil)
248+ if ($isInstanceOf(bA, "(Int, Int)"))
249+ then bA
250+ else throw("Couldn't cast Any to (Int, Int)")
251+ }
252+ if ((bF == bF))
253+ then {
254+ let bG = bF._2
255+ let bH = bF._1
256+ let bI = fraction(bH, by, e)
257+ let bJ = (valueOrElse(getInteger(aq(bt)), aZ) - height)
258+ if ((aX == K))
259+ then $Tuple6([0, -(bw), bw, 0], bw, bb, bd, bh, [bj, bk, bw, bu, bx, bI, bJ])
260+ else if ((aX == I))
261+ then $Tuple6([0, -(bw), 0, bw], bk, ba, bd, bh, [bj, bk, bw, bu, bI, bx])
262+ else f(makeString(["unsupported assetId:", aX], " "))
263+ }
264+ else throw("Strict value is not equal to itself.")
265+ }
266+ else throw("Strict value is not equal to itself.")
267+ }
192268 else throw("Strict value is not equal to itself.")
193269 }
194270
195271
196-func bb () = {
197- let aY = getString(aj())
198- if ($isInstanceOf(aY, "String"))
272+func bK () = {
273+ let bo = getString(az())
274+ if ($isInstanceOf(bo, "String"))
199275 then {
200- let bc = aY
201- fromBase58String(bc)
276+ let bL = bo
277+ fromBase58String(bL)
202278 }
203- else if ($isInstanceOf(aY, "Unit"))
279+ else if ($isInstanceOf(bo, "Unit"))
204280 then unit
205281 else throw("Match error")
206282 }
207283
208284
209-func bd () = {
210- let aY = getString(ak())
211- if ($isInstanceOf(aY, "String"))
285+func bM () = {
286+ let bo = getString(aA())
287+ if ($isInstanceOf(bo, "String"))
212288 then {
213- let bc = aY
214- fromBase58String(bc)
289+ let bL = bo
290+ fromBase58String(bL)
215291 }
216- else if ($isInstanceOf(aY, "Unit"))
292+ else if ($isInstanceOf(bo, "Unit"))
217293 then unit
218294 else throw("Match error")
219295 }
220296
221297
222-func be (bf) = {
223- let bg = throw("Permission denied")
224- let aY = bb()
225- if ($isInstanceOf(aY, "ByteVector"))
298+func bN (bO) = {
299+ let bP = throw("Permission denied")
300+ let bo = bK()
301+ if ($isInstanceOf(bo, "ByteVector"))
226302 then {
227- let bh = aY
228- if ((bf.callerPublicKey == bh))
303+ let bQ = bo
304+ if ((bO.callerPublicKey == bQ))
229305 then true
230- else bg
306+ else bP
231307 }
232- else if ($isInstanceOf(aY, "Unit"))
233- then if ((bf.caller == this))
308+ else if ($isInstanceOf(bo, "Unit"))
309+ then if ((bO.caller == this))
234310 then true
235- else bg
311+ else bP
236312 else throw("Match error")
237313 }
238314
239315
240-@Callable(bf)
241-func constructor (A,B,C,D,h,H,J) = {
242- let E = ((100 * 1000) * 1000)
243- let bi = (A + B)
244- if (isDefined(getString(aa())))
316+@Callable(bO)
317+func constructor (D,E,F,G,k,K,M) = {
318+ let H = ((100 * 1000) * 1000)
319+ let bR = (D + E)
320+ if (isDefined(getString(ad())))
245321 then throw("already initialized")
246- else if (("3N4nTJ5sSp5X5ChS2bBBmwNMn1eeRzT1FoP" != toString(bf.caller)))
322+ else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(bO.caller)))
247323 then throw("not authorized")
248- else if ((size(bf.payments) != 1))
324+ else if ((size(bO.payments) != 1))
249325 then throw("exactly 1 payment must be attached")
250- else if ((bi >= C))
326+ else if ((bR >= F))
251327 then throw("claimStart must be greater than idoEnd")
252328 else {
253- let bj = value(bf.payments[0])
254- let aK = value(bj.assetId)
255- let bk = valueOrErrorMessage(assetInfo(aK), "fail to load ido asset info")
256- let F = toBase58String(aK)
257- let G = pow(10, 0, bk.decimals, 0, 0, DOWN)
258- let aL = fromBase58String(H)
259- let bl = valueOrErrorMessage(assetInfo(aL), "fail to load price asset info")
260- let I = pow(10, 0, bl.decimals, 0, 0, DOWN)
261- let bm = ao()
262- let bn = [0, 0, 0, 0]
263-[StringEntry(aa(), L(A, B, C, D, h, E, F, G, H, I, J, bj.amount)), av(ad(), bm, bn, C)]
329+ let bS = value(bO.payments[0])
330+ let ba = value(bS.assetId)
331+ let bT = valueOrErrorMessage(assetInfo(ba), "fail to load ido asset info")
332+ let I = toBase58String(ba)
333+ let J = pow(10, 0, bT.decimals, 0, 0, DOWN)
334+ let bb = fromBase58String(K)
335+ let bU = valueOrErrorMessage(assetInfo(bb), "fail to load price asset info")
336+ let L = pow(10, 0, bU.decimals, 0, 0, DOWN)
337+ let bV = aE()
338+ let bW = [0, 0, 0, 0]
339+[StringEntry(ad(), O(D, E, F, G, k, H, I, J, K, L, M, bS.amount)), aL(ag(), bV, bW, F)]
264340 }
265341 }
266342
267343
268344
269-@Callable(bf)
345+@Callable(bO)
270346 func invest () = {
271- let aI = al()
272- let A = parseIntValue(aI[o])
273- let B = parseIntValue(aI[p])
274- let bi = (A + B)
275- let C = parseIntValue(aI[q])
276- let D = parseIntValue(aI[r])
277- let h = parseIntValue(aI[s])
278- let E = parseIntValue(aI[t])
279- let F = aI[u]
280- let aK = fromBase58String(F)
281- let G = parseIntValue(aI[v])
282- let H = aI[w]
283- let aL = fromBase58String(H)
284- let I = parseIntValue(aI[x])
285- let bo = parseIntValue(aI[y])
286- let ac = toString(bf.caller)
287- if ((A > height))
347+ let aY = aB()
348+ let D = parseIntValue(aY[r])
349+ let E = parseIntValue(aY[s])
350+ let bR = (D + E)
351+ let F = parseIntValue(aY[t])
352+ let G = parseIntValue(aY[u])
353+ let k = parseIntValue(aY[v])
354+ let H = parseIntValue(aY[w])
355+ let I = aY[x]
356+ let ba = fromBase58String(I)
357+ let J = parseIntValue(aY[y])
358+ let K = aY[z]
359+ let bb = fromBase58String(K)
360+ let L = parseIntValue(aY[A])
361+ let bX = parseIntValue(aY[B])
362+ let af = toString(bO.caller)
363+ if ((D > height))
288364 then throw("ido has not been started yet")
289- else if ((height > bi))
365+ else if ((height > bR))
290366 then throw("ido has been already ended")
291- else if ((size(bf.payments) != 1))
367+ else if ((size(bO.payments) != 1))
292368 then throw("exactly 1 payment is expected")
293369 else {
294- let bj = value(bf.payments[0])
295- let bp = value(bj.assetId)
296- let bq = bj.amount
297- if ((bp != aL))
298- then throw((("invalid payment asset id: " + toBase58String(bp)) + " is expected"))
370+ let bS = value(bO.payments[0])
371+ let bY = value(bS.assetId)
372+ let bZ = bS.amount
373+ if ((bY != bb))
374+ then throw((("invalid payment asset id: " + toBase58String(bY)) + " is expected"))
299375 else {
300- let br = ap(ac)
301- let bm = ao()
302- let bs = (parseIntValue(bm[M]) + bq)
303- let bt = (bs * 100)
304- if ((bt > assetBalance(this, aK)))
376+ let ca = aF(af)
377+ let bV = aE()
378+ let cb = (parseIntValue(bV[P]) + bZ)
379+ let cc = (cb * 100)
380+ if ((cc > assetBalance(this, ba)))
305381 then throw("IDO asset has been - sold consider to use smaller payment")
306382 else {
307- let bn = [bq, bq, 0, 0]
308-[av(ab(ac), br, bn, C), av(ad(), bm, bn, C), aD(ac, bq, 0, bf.transactionId)]
383+ let bW = [bZ, bZ, 0, 0]
384+[aL(ae(af), ca, bW, F), aL(ag(), bV, bW, F), aT(af, bZ, 0, bO.transactionId)]
309385 }
310386 }
311387 }
313389
314390
315391
316-@Callable(bf)
317-func claim (aH,aM) = {
318- let bu = toString(bf.caller)
319- if ((aM != bu))
320- then throw("not authorized")
392+@Callable(bO)
393+func claim (aX,bc) = {
394+ let cd = toString(bO.caller)
395+ if ((bc != cd))
396+ then f("not authorized")
321397 else {
322- let bv = aG(aH, bf.caller, bf.transactionId)
323- let bn = bv._1
324- let bw = bv._2
325- let bx = bv._3
326- let aN = bv._4
327- let aR = bv._5
328- let by = bn[at]
329- let bz = bn[au]
330- $Tuple2([ScriptTransfer(bf.caller, bw, bx), av(ab(aM), aN, bn, aR), av(ad(), ao(), bn, aR), aF(aM, by, bz, bf.transactionId)], unit)
398+ let ce = aW(aX, bO.caller, bO.transactionId)
399+ let bW = ce._1
400+ let cf = ce._2
401+ let cg = ce._3
402+ let bd = ce._4
403+ let bh = ce._5
404+ let ch = ce._6
405+ let bj = ch[0]
406+ let ci = ch[1]
407+ let cj = ch[2]
408+ let ck = ch[3]
409+ let bq = [if (if ((bj > 0))
410+ then true
411+ else (ci > 0))
412+ then true
413+ else f("nothing to claim"), if ((cj > 0))
414+ then true
415+ else f("unavailable to claim because user period allowance reached"), if ((ck > 0))
416+ then true
417+ else f("unavailable to claim because total period allowance reached")]
418+ if ((bq == bq))
419+ then {
420+ let cl = bW[aJ]
421+ let cm = bW[aK]
422+ $Tuple2([ScriptTransfer(bO.caller, cf, cg), aL(ae(bc), bd, bW, bh), aL(ag(), aE(), bW, bh), aV(bc, cl, cm, bO.transactionId)], unit)
423+ }
424+ else throw("Strict value is not equal to itself.")
331425 }
332426 }
333427
334428
335429
336-@Callable(bf)
337-func claimREADONLY (aH,aM) = {
338- let bv = aG(aH, addressFromStringValue(aM), fromBase58String(""))
339- let bn = bv._1
340- let bw = bv._2
341- let bx = bv._3
342- let aN = bv._4
343- let aR = bv._5
344- let bA = bv._6
345- let bB = bA[0]
346- let bC = bA[1]
347- $Tuple2(nil, makeString(["%s%d%d", aM, toString(bB), toString(bC)], c))
430+@Callable(bO)
431+func claimREADONLY (aX,bc) = {
432+ let ce = aW(aX, addressFromStringValue(bc), fromBase58String(""))
433+ let bW = ce._1
434+ let cf = ce._2
435+ let cg = ce._3
436+ let bd = ce._4
437+ let bh = ce._5
438+ let ch = ce._6
439+ let cn = ch[1]
440+ let co = ch[2]
441+ $Tuple2(nil, makeString(["%s%d%d", bc, toString(cn), toString(co)], c))
348442 }
349443
350444
351445
352-@Callable(bf)
353-func setManager (bD) = {
354- let bE = be(bf)
355- if ((bE == bE))
446+@Callable(bO)
447+func claimV2READONLY (aX,bc) = {
448+ let ce = aW(aX, addressFromStringValue(bc), fromBase58String(""))
449+ let bW = ce._1
450+ let cf = ce._2
451+ let cg = ce._3
452+ let bd = ce._4
453+ let bh = ce._5
454+ let ch = ce._6
455+ let bj = ch[0]
456+ let ci = ch[1]
457+ let cj = ch[2]
458+ let ck = ch[3]
459+ let bx = ch[4]
460+ let cp = ch[5]
461+ let cq = ch[6]
462+ let cr = makeString(["%d%d%d%d%d%d%d", toString(bj), toString(ci), toString(cj), toString(ck), toString(bx), toString(cp), toString(cq)], c)
463+ $Tuple2(nil, cr)
464+ }
465+
466+
467+
468+@Callable(bO)
469+func setManager (cs) = {
470+ let ct = bN(bO)
471+ if ((ct == ct))
356472 then {
357- let bF = fromBase58String(bD)
358- if ((bF == bF))
359- then [StringEntry(ak(), bD)]
473+ let cu = fromBase58String(cs)
474+ if ((cu == cu))
475+ then [StringEntry(aA(), cs)]
360476 else throw("Strict value is not equal to itself.")
361477 }
362478 else throw("Strict value is not equal to itself.")
364480
365481
366482
367-@Callable(bf)
483+@Callable(bO)
368484 func confirmManager () = {
369- let bG = bd()
370- let bH = if (isDefined(bG))
485+ let cv = bM()
486+ let cw = if (isDefined(cv))
371487 then true
372488 else throw("No pending manager")
373- if ((bH == bH))
489+ if ((cw == cw))
374490 then {
375- let bI = if ((bf.callerPublicKey == value(bG)))
491+ let cx = if ((bO.callerPublicKey == value(cv)))
376492 then true
377493 else throw("You are not pending manager")
378- if ((bI == bI))
379- then [StringEntry(aj(), toBase58String(value(bG))), DeleteEntry(ak())]
494+ if ((cx == cx))
495+ then [StringEntry(az(), toBase58String(value(cv))), DeleteEntry(aA())]
380496 else throw("Strict value is not equal to itself.")
381497 }
382498 else throw("Strict value is not equal to itself.")
383499 }
384500
385501
386-@Verifier(bJ)
387-func bK () = {
388- let bL = {
389- let aY = bb()
390- if ($isInstanceOf(aY, "ByteVector"))
502+@Verifier(cy)
503+func cz () = {
504+ let cA = {
505+ let bo = bK()
506+ if ($isInstanceOf(bo, "ByteVector"))
391507 then {
392- let bh = aY
393- bh
508+ let bQ = bo
509+ bQ
394510 }
395- else if ($isInstanceOf(aY, "Unit"))
396- then bJ.senderPublicKey
511+ else if ($isInstanceOf(bo, "Unit"))
512+ then cy.senderPublicKey
397513 else throw("Match error")
398514 }
399- sigVerify(bJ.bodyBytes, bJ.proofs[0], bL)
515+ sigVerify(cy.bodyBytes, cy.proofs[0], cA)
400516 }
401517
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = valueOrErrorMessage(getString(b), (("mandatory this." + b) + " is not defined"))
55
66
77 let c = "__"
88
99 let d = toBigInt(1000000000000000000)
1010
11-func e (f,g,h,i,j) = {
12- let k = toBigInt(g)
13- let l = toBigInt(j)
14- let m = fraction(toBigInt(f), d, k)
15- let n = fraction(m, toBigInt(i), toBigInt(h))
16- toInt(fraction(n, toBigInt(j), d))
11+let e = 100000000
12+
13+func f (g) = throw(makeString(["ido.ride:", g], " "))
14+
15+
16+func h (i,j,k,l,m) = {
17+ let n = toBigInt(j)
18+ let o = toBigInt(m)
19+ let p = fraction(toBigInt(i), d, n)
20+ let q = fraction(p, toBigInt(l), toBigInt(k))
21+ toInt(fraction(q, toBigInt(m), d))
1722 }
1823
1924
20-let o = 1
25+let r = 1
2126
22-let p = 2
27+let s = 2
2328
24-let q = 3
29+let t = 3
2530
26-let r = 4
31+let u = 4
2732
28-let s = 5
33+let v = 5
2934
30-let t = 6
35+let w = 6
3136
32-let u = 7
37+let x = 7
3338
34-let v = 8
39+let y = 8
3540
36-let w = 9
41+let z = 9
3742
38-let x = 10
43+let A = 10
3944
40-let y = 11
45+let B = 11
4146
42-func z (A,B,C,D,h,E,F,G,H,I,J,K) = makeString(["%d%d%d%d%d%d%s%d%s%d%d%d", A, B, C, D, h, E, F, G, H, I, J, K], c)
47+func C (D,E,F,G,k,H,I,J,K,L,M,N) = makeString(["%d%d%d%d%d%d%s%d%s%d%d%d", D, E, F, G, k, H, I, J, K, L, M, N], c)
4348
4449
45-func L (A,B,C,D,h,E,F,G,H,I,J,K) = z(toString(A), toString(B), toString(C), toString(D), toString(h), toString(E), F, toString(G), H, toString(I), toString(J), toString(K))
50+func O (D,E,F,G,k,H,I,J,K,L,M,N) = C(toString(D), toString(E), toString(F), toString(G), toString(k), toString(H), I, toString(J), K, toString(L), toString(M), toString(N))
4651
4752
48-let M = 1
53+let P = 1
4954
50-let N = 2
55+let Q = 2
5156
52-let O = 3
57+let R = 3
5358
54-let P = 4
59+let S = 4
5560
56-let Q = 5
61+let T = 5
5762
58-func R (S,T,U,V,W) = makeString(["%d%d%d%d%d", S, T, U, V, W], c)
63+func U (V,W,X,Y,Z) = makeString(["%d%d%d%d%d", V, W, X, Y, Z], c)
5964
6065
61-func X (S,T,U,V,W) = R(toString(S), toString(T), toString(U), toString(V), toString(W))
66+func aa (V,W,X,Y,Z) = U(toString(V), toString(W), toString(X), toString(Y), toString(Z))
6267
6368
64-func Y (f,Z) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(f), toString(Z)], c)
69+func ab (i,ac) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(i), toString(ac)], c)
6570
6671
67-func aa () = "%s__config"
72+func ad () = "%s__config"
6873
6974
70-func ab (ac) = ("%s__" + ac)
75+func ae (af) = ("%s__" + af)
7176
7277
73-func ad () = "%s__totals"
78+func ag () = "%s__totals"
7479
7580
76-func ae (af,ac,ag) = makeString(["%s%s%s%s__history", af, ac, ag], c)
81+func ah (ai,af,aj) = makeString(["%s%s%s%s__history", ai, af, aj], c)
7782
7883
79-func ah () = "%s__usdnClaimDisabled"
84+func ak () = "%s__usdnClaimDisabled"
8085
8186
82-func ai () = "%s__usdnClaimEndHeight"
87+func al () = "%s__usdnClaimEndHeight"
8388
8489
85-func aj () = "%s__managerPublicKey"
90+func am () = makeString(["%s", "periodLength"], c)
8691
8792
88-func ak () = "%s__pendingManagerPublicKey"
93+func an () = makeString(["%s", "currentPeriod"], c)
8994
9095
91-func al () = split(a(aa()), c)
96+func ao (ap) = makeString(["%s%s", "periodStartHeight", toString(ap)], c)
9297
9398
94-func am (an) = split(valueOrElse(getString(an), R("0", "0", "0", "0", "0")), c)
99+func aq (ap) = makeString(["%s%s", "periodEndHeight", toString(ap)], c)
95100
96101
97-func ao () = am(ad())
102+func ar () = makeString(["%s", "usdtPriceAssetAllowableRatio"], c)
98103
99104
100-func ap (ac) = am(ab(ac))
105+func as (at) = makeString(["%s%s", "totalPeriodAllowance", at], c)
101106
102107
103-func aq (ac) = split(a(ab(ac)), c)
108+func au (at) = makeString(["%s%s", "userPeriodAllowance", at], c)
104109
105110
106-let ar = 0
111+func av (at,ap) = makeString(["%s%s%s", "periodTotalAvailableToClaim", at, toString(ap)], c)
107112
108-let as = 1
109113
110-let at = 2
114+func aw (at,ap,af) = makeString(["%s%s%s%s", "periodUserAvailableToClaim", at, toString(ap), af], c)
111115
112-let au = 3
113116
114-func av (b,aw,ax,ay) = {
115- let S = parseIntValue(aw[M])
116- let T = parseIntValue(aw[N])
117- let U = parseIntValue(aw[O])
118- let V = parseIntValue(aw[P])
119- let W = parseIntValue(aw[Q])
120- let az = (S + ax[ar])
121- let aA = (T + ax[as])
122- let aB = (U + ax[at])
123- let aC = (V + ax[au])
124- if ((0 > aA))
117+func ax () = makeString(["%s", "usdtPriceAssetStablePool"], c)
118+
119+
120+func ay () = makeString(["%s", "usdtAssetId"], c)
121+
122+
123+func az () = "%s__managerPublicKey"
124+
125+
126+func aA () = "%s__pendingManagerPublicKey"
127+
128+
129+func aB () = split(a(ad()), c)
130+
131+
132+func aC (aD) = split(valueOrElse(getString(aD), U("0", "0", "0", "0", "0")), c)
133+
134+
135+func aE () = aC(ag())
136+
137+
138+func aF (af) = aC(ae(af))
139+
140+
141+func aG (af) = split(a(ae(af)), c)
142+
143+
144+let aH = 0
145+
146+let aI = 1
147+
148+let aJ = 2
149+
150+let aK = 3
151+
152+func aL (b,aM,aN,aO) = {
153+ let V = parseIntValue(aM[P])
154+ let W = parseIntValue(aM[Q])
155+ let X = parseIntValue(aM[R])
156+ let Y = parseIntValue(aM[S])
157+ let Z = parseIntValue(aM[T])
158+ let aP = (V + aN[aH])
159+ let aQ = (W + aN[aI])
160+ let aR = (X + aN[aJ])
161+ let aS = (Y + aN[aK])
162+ if ((0 > aQ))
125163 then throw("invalid math")
126- else StringEntry(b, X(az, aA, aB, aC, ay))
164+ else StringEntry(b, aa(aP, aQ, aR, aS, aO))
127165 }
128166
129167
130-func aD (ac,f,Z,aE) = StringEntry(ae("invest", ac, toBase58String(aE)), Y(f, Z))
168+func aT (af,i,ac,aU) = StringEntry(ah("invest", af, toBase58String(aU)), ab(i, ac))
131169
132170
133-func aF (ac,f,Z,aE) = StringEntry(ae("claim", ac, toBase58String(aE)), Y(f, Z))
171+func aV (af,i,ac,aU) = StringEntry(ah("claim", af, toBase58String(aU)), ab(i, ac))
134172
135173
136-func aG (aH,ac,aE) = {
137- let aI = al()
138- let C = parseIntValue(aI[q])
139- let D = parseIntValue(aI[r])
140- let aJ = (C + D)
141- let h = parseIntValue(aI[s])
142- let E = parseIntValue(aI[t])
143- let F = aI[u]
144- let aK = fromBase58String(F)
145- let G = parseIntValue(aI[v])
146- let H = aI[w]
147- let aL = fromBase58String(H)
148- let I = parseIntValue(aI[x])
149- let aM = toString(ac)
150- let aN = aq(aM)
151- let aO = parseIntValue(aN[M])
152- let aP = parseIntValue(aN[Q])
153- let aQ = if ((C >= aP))
154- then C
155- else aP
156- let aR = if ((height > aJ))
157- then aJ
158- else if ((C > height))
159- then C
174+func aW (aX,af,aU) = {
175+ let aY = aB()
176+ let F = parseIntValue(aY[t])
177+ let G = parseIntValue(aY[u])
178+ let aZ = (F + G)
179+ let k = parseIntValue(aY[v])
180+ let H = parseIntValue(aY[w])
181+ let I = aY[x]
182+ let ba = fromBase58String(I)
183+ let J = parseIntValue(aY[y])
184+ let K = aY[z]
185+ let bb = fromBase58String(K)
186+ let L = parseIntValue(aY[A])
187+ let bc = toString(af)
188+ let bd = aG(bc)
189+ let be = parseIntValue(bd[P])
190+ let bf = parseIntValue(bd[T])
191+ let bg = if ((F >= bf))
192+ then F
193+ else bf
194+ let bh = if ((height > aZ))
195+ then aZ
196+ else if ((F > height))
197+ then F
160198 else height
161- let aS = (aR - aQ)
162- let aT = fraction(aO, aS, D)
163- let aU = e(aT, I, h, E, G)
164- let aV = (aH == H)
165- let aW = valueOrElse(getBoolean(ah()), false)
166- let aX = {
167- let aY = getInteger(ai())
168- if ($isInstanceOf(aY, "Int"))
199+ let bi = (bh - bg)
200+ let bj = fraction(be, bi, G)
201+ let bk = h(bj, L, k, H, J)
202+ let bl = (aX == K)
203+ let bm = valueOrElse(getBoolean(ak()), false)
204+ let bn = {
205+ let bo = getInteger(al())
206+ if ($isInstanceOf(bo, "Int"))
169207 then {
170- let aZ = aY
171- (height > aZ)
208+ let bp = bo
209+ (height > bp)
172210 }
173- else if ($isInstanceOf(aY, "Unit"))
211+ else if ($isInstanceOf(bo, "Unit"))
174212 then false
175213 else throw("Match error")
176214 }
177- let ba = [if (!(if (aV)
178- then aW
215+ let bq = [if (!(if (bl)
216+ then bm
179217 else false))
180218 then true
181- else throw("USDN claim is disabled"), if (!(if (aV)
182- then aX
219+ else f("USDN claim is disabled"), if (!(if (bl)
220+ then bn
183221 else false))
184222 then true
185- else throw("USDN claim is ended")]
186- if ((ba == ba))
187- then if ((aH == H))
188- then $Tuple6([0, -(aT), aT, 0], aT, aL, aN, aR, [aT, aU])
189- else if ((aH == F))
190- then $Tuple6([0, -(aT), 0, aU], aU, aK, aN, aR, [aT, aU])
191- else throw(("unsupported assetId: " + aH))
223+ else f("USDN claim is ended")]
224+ if ((bq == bq))
225+ then {
226+ let br = value(getInteger(as(K)))
227+ let bs = value(getInteger(au(K)))
228+ let bt = valueOrElse(getInteger(an()), 0)
229+ let bu = valueOrElse(getInteger(av(K, bt)), br)
230+ let bv = valueOrElse(getInteger(aw(K, bt, bc)), bs)
231+ let bw = min([bj, bu, bv])
232+ let bx = value(getInteger(ar()))
233+ let by = e
234+ let bz = {
235+ let bA = invoke(addressFromStringValue(value(getString(ax()))), "putOneTknV2WithoutTakeFeeREADONLY", [by, bb], nil)
236+ if ($isInstanceOf(bA, "(Int, Int, Int)"))
237+ then bA
238+ else throw("Couldn't cast Any to (Int, Int, Int)")
239+ }
240+ if ((bz == bz))
241+ then {
242+ let bB = bz._3
243+ let bC = bz._2
244+ let bD = bz._1
245+ let bE = value(fromBase58String(value(getString(ay()))))
246+ let bF = {
247+ let bA = invoke(addressFromStringValue(value(getString(ax()))), "getOneTknV2READONLY", [bE, bD], nil)
248+ if ($isInstanceOf(bA, "(Int, Int)"))
249+ then bA
250+ else throw("Couldn't cast Any to (Int, Int)")
251+ }
252+ if ((bF == bF))
253+ then {
254+ let bG = bF._2
255+ let bH = bF._1
256+ let bI = fraction(bH, by, e)
257+ let bJ = (valueOrElse(getInteger(aq(bt)), aZ) - height)
258+ if ((aX == K))
259+ then $Tuple6([0, -(bw), bw, 0], bw, bb, bd, bh, [bj, bk, bw, bu, bx, bI, bJ])
260+ else if ((aX == I))
261+ then $Tuple6([0, -(bw), 0, bw], bk, ba, bd, bh, [bj, bk, bw, bu, bI, bx])
262+ else f(makeString(["unsupported assetId:", aX], " "))
263+ }
264+ else throw("Strict value is not equal to itself.")
265+ }
266+ else throw("Strict value is not equal to itself.")
267+ }
192268 else throw("Strict value is not equal to itself.")
193269 }
194270
195271
196-func bb () = {
197- let aY = getString(aj())
198- if ($isInstanceOf(aY, "String"))
272+func bK () = {
273+ let bo = getString(az())
274+ if ($isInstanceOf(bo, "String"))
199275 then {
200- let bc = aY
201- fromBase58String(bc)
276+ let bL = bo
277+ fromBase58String(bL)
202278 }
203- else if ($isInstanceOf(aY, "Unit"))
279+ else if ($isInstanceOf(bo, "Unit"))
204280 then unit
205281 else throw("Match error")
206282 }
207283
208284
209-func bd () = {
210- let aY = getString(ak())
211- if ($isInstanceOf(aY, "String"))
285+func bM () = {
286+ let bo = getString(aA())
287+ if ($isInstanceOf(bo, "String"))
212288 then {
213- let bc = aY
214- fromBase58String(bc)
289+ let bL = bo
290+ fromBase58String(bL)
215291 }
216- else if ($isInstanceOf(aY, "Unit"))
292+ else if ($isInstanceOf(bo, "Unit"))
217293 then unit
218294 else throw("Match error")
219295 }
220296
221297
222-func be (bf) = {
223- let bg = throw("Permission denied")
224- let aY = bb()
225- if ($isInstanceOf(aY, "ByteVector"))
298+func bN (bO) = {
299+ let bP = throw("Permission denied")
300+ let bo = bK()
301+ if ($isInstanceOf(bo, "ByteVector"))
226302 then {
227- let bh = aY
228- if ((bf.callerPublicKey == bh))
303+ let bQ = bo
304+ if ((bO.callerPublicKey == bQ))
229305 then true
230- else bg
306+ else bP
231307 }
232- else if ($isInstanceOf(aY, "Unit"))
233- then if ((bf.caller == this))
308+ else if ($isInstanceOf(bo, "Unit"))
309+ then if ((bO.caller == this))
234310 then true
235- else bg
311+ else bP
236312 else throw("Match error")
237313 }
238314
239315
240-@Callable(bf)
241-func constructor (A,B,C,D,h,H,J) = {
242- let E = ((100 * 1000) * 1000)
243- let bi = (A + B)
244- if (isDefined(getString(aa())))
316+@Callable(bO)
317+func constructor (D,E,F,G,k,K,M) = {
318+ let H = ((100 * 1000) * 1000)
319+ let bR = (D + E)
320+ if (isDefined(getString(ad())))
245321 then throw("already initialized")
246- else if (("3N4nTJ5sSp5X5ChS2bBBmwNMn1eeRzT1FoP" != toString(bf.caller)))
322+ else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(bO.caller)))
247323 then throw("not authorized")
248- else if ((size(bf.payments) != 1))
324+ else if ((size(bO.payments) != 1))
249325 then throw("exactly 1 payment must be attached")
250- else if ((bi >= C))
326+ else if ((bR >= F))
251327 then throw("claimStart must be greater than idoEnd")
252328 else {
253- let bj = value(bf.payments[0])
254- let aK = value(bj.assetId)
255- let bk = valueOrErrorMessage(assetInfo(aK), "fail to load ido asset info")
256- let F = toBase58String(aK)
257- let G = pow(10, 0, bk.decimals, 0, 0, DOWN)
258- let aL = fromBase58String(H)
259- let bl = valueOrErrorMessage(assetInfo(aL), "fail to load price asset info")
260- let I = pow(10, 0, bl.decimals, 0, 0, DOWN)
261- let bm = ao()
262- let bn = [0, 0, 0, 0]
263-[StringEntry(aa(), L(A, B, C, D, h, E, F, G, H, I, J, bj.amount)), av(ad(), bm, bn, C)]
329+ let bS = value(bO.payments[0])
330+ let ba = value(bS.assetId)
331+ let bT = valueOrErrorMessage(assetInfo(ba), "fail to load ido asset info")
332+ let I = toBase58String(ba)
333+ let J = pow(10, 0, bT.decimals, 0, 0, DOWN)
334+ let bb = fromBase58String(K)
335+ let bU = valueOrErrorMessage(assetInfo(bb), "fail to load price asset info")
336+ let L = pow(10, 0, bU.decimals, 0, 0, DOWN)
337+ let bV = aE()
338+ let bW = [0, 0, 0, 0]
339+[StringEntry(ad(), O(D, E, F, G, k, H, I, J, K, L, M, bS.amount)), aL(ag(), bV, bW, F)]
264340 }
265341 }
266342
267343
268344
269-@Callable(bf)
345+@Callable(bO)
270346 func invest () = {
271- let aI = al()
272- let A = parseIntValue(aI[o])
273- let B = parseIntValue(aI[p])
274- let bi = (A + B)
275- let C = parseIntValue(aI[q])
276- let D = parseIntValue(aI[r])
277- let h = parseIntValue(aI[s])
278- let E = parseIntValue(aI[t])
279- let F = aI[u]
280- let aK = fromBase58String(F)
281- let G = parseIntValue(aI[v])
282- let H = aI[w]
283- let aL = fromBase58String(H)
284- let I = parseIntValue(aI[x])
285- let bo = parseIntValue(aI[y])
286- let ac = toString(bf.caller)
287- if ((A > height))
347+ let aY = aB()
348+ let D = parseIntValue(aY[r])
349+ let E = parseIntValue(aY[s])
350+ let bR = (D + E)
351+ let F = parseIntValue(aY[t])
352+ let G = parseIntValue(aY[u])
353+ let k = parseIntValue(aY[v])
354+ let H = parseIntValue(aY[w])
355+ let I = aY[x]
356+ let ba = fromBase58String(I)
357+ let J = parseIntValue(aY[y])
358+ let K = aY[z]
359+ let bb = fromBase58String(K)
360+ let L = parseIntValue(aY[A])
361+ let bX = parseIntValue(aY[B])
362+ let af = toString(bO.caller)
363+ if ((D > height))
288364 then throw("ido has not been started yet")
289- else if ((height > bi))
365+ else if ((height > bR))
290366 then throw("ido has been already ended")
291- else if ((size(bf.payments) != 1))
367+ else if ((size(bO.payments) != 1))
292368 then throw("exactly 1 payment is expected")
293369 else {
294- let bj = value(bf.payments[0])
295- let bp = value(bj.assetId)
296- let bq = bj.amount
297- if ((bp != aL))
298- then throw((("invalid payment asset id: " + toBase58String(bp)) + " is expected"))
370+ let bS = value(bO.payments[0])
371+ let bY = value(bS.assetId)
372+ let bZ = bS.amount
373+ if ((bY != bb))
374+ then throw((("invalid payment asset id: " + toBase58String(bY)) + " is expected"))
299375 else {
300- let br = ap(ac)
301- let bm = ao()
302- let bs = (parseIntValue(bm[M]) + bq)
303- let bt = (bs * 100)
304- if ((bt > assetBalance(this, aK)))
376+ let ca = aF(af)
377+ let bV = aE()
378+ let cb = (parseIntValue(bV[P]) + bZ)
379+ let cc = (cb * 100)
380+ if ((cc > assetBalance(this, ba)))
305381 then throw("IDO asset has been - sold consider to use smaller payment")
306382 else {
307- let bn = [bq, bq, 0, 0]
308-[av(ab(ac), br, bn, C), av(ad(), bm, bn, C), aD(ac, bq, 0, bf.transactionId)]
383+ let bW = [bZ, bZ, 0, 0]
384+[aL(ae(af), ca, bW, F), aL(ag(), bV, bW, F), aT(af, bZ, 0, bO.transactionId)]
309385 }
310386 }
311387 }
312388 }
313389
314390
315391
316-@Callable(bf)
317-func claim (aH,aM) = {
318- let bu = toString(bf.caller)
319- if ((aM != bu))
320- then throw("not authorized")
392+@Callable(bO)
393+func claim (aX,bc) = {
394+ let cd = toString(bO.caller)
395+ if ((bc != cd))
396+ then f("not authorized")
321397 else {
322- let bv = aG(aH, bf.caller, bf.transactionId)
323- let bn = bv._1
324- let bw = bv._2
325- let bx = bv._3
326- let aN = bv._4
327- let aR = bv._5
328- let by = bn[at]
329- let bz = bn[au]
330- $Tuple2([ScriptTransfer(bf.caller, bw, bx), av(ab(aM), aN, bn, aR), av(ad(), ao(), bn, aR), aF(aM, by, bz, bf.transactionId)], unit)
398+ let ce = aW(aX, bO.caller, bO.transactionId)
399+ let bW = ce._1
400+ let cf = ce._2
401+ let cg = ce._3
402+ let bd = ce._4
403+ let bh = ce._5
404+ let ch = ce._6
405+ let bj = ch[0]
406+ let ci = ch[1]
407+ let cj = ch[2]
408+ let ck = ch[3]
409+ let bq = [if (if ((bj > 0))
410+ then true
411+ else (ci > 0))
412+ then true
413+ else f("nothing to claim"), if ((cj > 0))
414+ then true
415+ else f("unavailable to claim because user period allowance reached"), if ((ck > 0))
416+ then true
417+ else f("unavailable to claim because total period allowance reached")]
418+ if ((bq == bq))
419+ then {
420+ let cl = bW[aJ]
421+ let cm = bW[aK]
422+ $Tuple2([ScriptTransfer(bO.caller, cf, cg), aL(ae(bc), bd, bW, bh), aL(ag(), aE(), bW, bh), aV(bc, cl, cm, bO.transactionId)], unit)
423+ }
424+ else throw("Strict value is not equal to itself.")
331425 }
332426 }
333427
334428
335429
336-@Callable(bf)
337-func claimREADONLY (aH,aM) = {
338- let bv = aG(aH, addressFromStringValue(aM), fromBase58String(""))
339- let bn = bv._1
340- let bw = bv._2
341- let bx = bv._3
342- let aN = bv._4
343- let aR = bv._5
344- let bA = bv._6
345- let bB = bA[0]
346- let bC = bA[1]
347- $Tuple2(nil, makeString(["%s%d%d", aM, toString(bB), toString(bC)], c))
430+@Callable(bO)
431+func claimREADONLY (aX,bc) = {
432+ let ce = aW(aX, addressFromStringValue(bc), fromBase58String(""))
433+ let bW = ce._1
434+ let cf = ce._2
435+ let cg = ce._3
436+ let bd = ce._4
437+ let bh = ce._5
438+ let ch = ce._6
439+ let cn = ch[1]
440+ let co = ch[2]
441+ $Tuple2(nil, makeString(["%s%d%d", bc, toString(cn), toString(co)], c))
348442 }
349443
350444
351445
352-@Callable(bf)
353-func setManager (bD) = {
354- let bE = be(bf)
355- if ((bE == bE))
446+@Callable(bO)
447+func claimV2READONLY (aX,bc) = {
448+ let ce = aW(aX, addressFromStringValue(bc), fromBase58String(""))
449+ let bW = ce._1
450+ let cf = ce._2
451+ let cg = ce._3
452+ let bd = ce._4
453+ let bh = ce._5
454+ let ch = ce._6
455+ let bj = ch[0]
456+ let ci = ch[1]
457+ let cj = ch[2]
458+ let ck = ch[3]
459+ let bx = ch[4]
460+ let cp = ch[5]
461+ let cq = ch[6]
462+ let cr = makeString(["%d%d%d%d%d%d%d", toString(bj), toString(ci), toString(cj), toString(ck), toString(bx), toString(cp), toString(cq)], c)
463+ $Tuple2(nil, cr)
464+ }
465+
466+
467+
468+@Callable(bO)
469+func setManager (cs) = {
470+ let ct = bN(bO)
471+ if ((ct == ct))
356472 then {
357- let bF = fromBase58String(bD)
358- if ((bF == bF))
359- then [StringEntry(ak(), bD)]
473+ let cu = fromBase58String(cs)
474+ if ((cu == cu))
475+ then [StringEntry(aA(), cs)]
360476 else throw("Strict value is not equal to itself.")
361477 }
362478 else throw("Strict value is not equal to itself.")
363479 }
364480
365481
366482
367-@Callable(bf)
483+@Callable(bO)
368484 func confirmManager () = {
369- let bG = bd()
370- let bH = if (isDefined(bG))
485+ let cv = bM()
486+ let cw = if (isDefined(cv))
371487 then true
372488 else throw("No pending manager")
373- if ((bH == bH))
489+ if ((cw == cw))
374490 then {
375- let bI = if ((bf.callerPublicKey == value(bG)))
491+ let cx = if ((bO.callerPublicKey == value(cv)))
376492 then true
377493 else throw("You are not pending manager")
378- if ((bI == bI))
379- then [StringEntry(aj(), toBase58String(value(bG))), DeleteEntry(ak())]
494+ if ((cx == cx))
495+ then [StringEntry(az(), toBase58String(value(cv))), DeleteEntry(aA())]
380496 else throw("Strict value is not equal to itself.")
381497 }
382498 else throw("Strict value is not equal to itself.")
383499 }
384500
385501
386-@Verifier(bJ)
387-func bK () = {
388- let bL = {
389- let aY = bb()
390- if ($isInstanceOf(aY, "ByteVector"))
502+@Verifier(cy)
503+func cz () = {
504+ let cA = {
505+ let bo = bK()
506+ if ($isInstanceOf(bo, "ByteVector"))
391507 then {
392- let bh = aY
393- bh
508+ let bQ = bo
509+ bQ
394510 }
395- else if ($isInstanceOf(aY, "Unit"))
396- then bJ.senderPublicKey
511+ else if ($isInstanceOf(bo, "Unit"))
512+ then cy.senderPublicKey
397513 else throw("Match error")
398514 }
399- sigVerify(bJ.bodyBytes, bJ.proofs[0], bL)
515+ sigVerify(cy.bodyBytes, cy.proofs[0], cA)
400516 }
401517

github/deemru/w8io/026f985 
146.54 ms