tx · ZS1iqKrA77yiCHPZbuBfBNu8jVQzvGzjMZVcAxUHs7S

3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv:  -0.02300000 Waves

2022.11.02 18:24 [2299665] smart account 3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv > SELF 0.00000000 Waves

{ "type": 13, "id": "ZS1iqKrA77yiCHPZbuBfBNu8jVQzvGzjMZVcAxUHs7S", "fee": 2300000, "feeAssetId": null, "timestamp": 1667402715287, "version": 1, "sender": "3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv", "senderPublicKey": "39YkRD2qWXTcdNBr4CbDnm8g8SAB2FKVaDeGYahcFHHx", "proofs": [ "4LLFvDfd8cHC8HiD5ZnXkwwrY5ecb15b4ZNG3DXfDNtpj9xxWVANJ2w4ixEdcYtV2GYv3WvocB869wc1Hi1zQsW8" ], "script": "base64:AAIFAAAAAAAADaQIAhIJCgcBAQEBAQgBEgASBAoCCAgSBAoCCAgSAwoBCBIAIg9nZXRTdHJpbmdPckZhaWwiA2tleSIDU0VQIghCVUZTQ0FMRSIGc2NhbGU4Ih1jb252ZXJ0UHJpY2VBc3NldEludG9JZG9Bc3NldCIQcHJpY2VBc3NldEFtb3VudCIOcHJpY2VBc3NldE1VTFQiBXByaWNlIglwcmljZU1VTFQiDGlkb0Fzc2V0TVVMVCIPYlByaWNlQXNzZXRNVUxUIg1iSWRvQXNzZXRNVUxUIg5iUHJpY2VBc3NldEJVRiIPYkFtb3VudEFzc2V0QlVGIg5JZHhDZmdJZG9TdGFydCIRSWR4Q2ZnSWRvRHVyYXRpb24iEElkeENmZ0NsYWltU3RhcnQiE0lkeENmZ0NsYWltRHVyYXRpb24iC0lkeENmZ1ByaWNlIg9JZHhDZmdQcmljZU11bHQiEElkeENmZ0lkb0Fzc2V0SWQiEklkeENmZ0lkb0Fzc2V0TXVsdCISSWR4Q2ZnUHJpY2VBc3NldElkIhRJZHhDZmdQcmljZUFzc2V0TXVsdCIVSWR4Q2ZnTWluSW52ZXN0QW1vdW50Ig1mcm9tYXRDb25maWdTIghpZG9TdGFydCILaWRvRHVyYXRpb24iCmNsYWltU3RhcnQiDWNsYWltRHVyYXRpb24iCXByaWNlTXVsdCIMaWRvQXNzZXRJZDU4IgxpZG9Bc3NldE11bHQiDnByaWNlQXNzZXRJZDU4Ig5wcmljZUFzc2V0TXVsdCIPbWluSW52ZXN0QW1vdW50IhN0b3RhbElkb0Fzc2V0VG9TZWxsIgxmcm9tYXRDb25maWciEUlkeEludlRvdGFsQW1vdW50IhVJZHhJbnZSZW1haW5pbmdBbW91bnQiHUlkeEludkNsYWltZWRQcmljZUFzc2V0QW1vdW50IhtJZHhJbnZDbGFpbWVkSWRvQXNzZXRBbW91bnQiF0lkeEludkxhc3RDbGFpbWVkSGVpZ2h0Ig9mb3JtYXRJbnZlc3RvclMiC3RvdGFsQW1vdW50Ig9yZW1haW5pbmdBbW91bnQiF2NsYWltZWRQcmljZUFzc2V0QW1vdW50IhVjbGFpbWVkSWRvQXNzZXRBbW91bnQiEWxhc3RDbGFpbWVkSGVpZ2h0Ig5mb3JtYXRJbnZlc3RvciITZm9ybWF0SGlzdG9yeVJlY29yZCIOaWRvQXNzZXRBbW91bnQiCWtleUNvbmZpZyILa2V5SW52ZXN0b3IiC3VzZXJBZGRyZXNzIglrZXlUb3RhbHMiGWtleU9wZXJhdGlvbkhpc3RvcnlSZWNvcmQiBHR5cGUiBnR4SWQ1OCIUa2V5VVNETkNsYWltRGlzYWJsZWQiFWtleVVTRE5DbGFpbUVuZEhlaWdodCIPa2V5UGVyaW9kTGVuZ3RoIhBrZXlDdXJyZW50UGVyaW9kIhRrZXlQZXJpb2RTdGFydEhlaWdodCIJcGVyaW9kTnVtIhJrZXlQZXJpb2RFbmRIZWlnaHQiH2tleVVzZHRQcmljZUFzc2V0QWxsb3dhYmxlUmF0aW8iF2tleVRvdGFsUGVyaW9kQWxsb3dhbmNlIgdhc3NldElkIhZrZXlVc2VyUGVyaW9kQWxsb3dhbmNlIh5rZXlQZXJpb2RUb3RhbEF2YWlsYWJsZVRvQ2xhaW0iHWtleVBlcmlvZFVzZXJBdmFpbGFibGVUb0NsYWltIhtrZXlVc2R0UHJpY2VBc3NldFN0YWJsZVBvb2wiDmtleVVzZHRBc3NldElkIhRrZXlQcmljZUFzc2V0QmFsYW5jZSIHYWRkcmVzcyITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiD3JlYWRDb25maWdBcnJheSIjcmVhZFRvdGFsc0FycmF5T3JEZWZhdWx0QnlDdXN0b21LZXkiCWN1c3RvbUtleSIYcmVhZFRvdGFsc0FycmF5T3JEZWZhdWx0IhpyZWFkSW52ZXN0b3JBcnJheU9yRGVmYXVsdCIXcmVhZEludmVzdG9yQXJyYXlPckZhaWwiFUlkeERpZmZUb3RhbEluY3JlbWVudCIkSWR4RGlmZlJlbWFpbmluZ1ByaWNlQW1vdW50SW5jcmVtZW50IiJJZHhEaWZmQ2xhaW1lZFByaWNlQW1vdW50SW5jcmVtZW50IiVJZHhEaWZmQ2xhaW1lZElkb0Fzc2V0QW1vdW50SW5jcmVtZW50IgtUb3RhbHNFbnRyeSIJb3JpZ0FycmF5Ig1pbmNyZW1lbnREaWZmIhRuZXdMYXN0Q2xhaW1lZEhlaWdodCIObmV3VG90YWxBbW91bnQiEm5ld1JlbWFpbmluZ0Ftb3VudCIabmV3Q2xhaW1lZFByaWNlQXNzZXRBbW91bnQiGG5ld0NsYWltZWRJZG9Bc3NldEFtb3VudCIbSW52ZXN0T3BlcmF0aW9uSGlzdG9yeUVudHJ5IgR0eElkIhpDbGFpbU9wZXJhdGlvbkhpc3RvcnlFbnRyeSINaW50ZXJuYWxDbGFpbSIQY2xhaW1lZEFzc2V0SWQ1OCIIY2ZnQXJyYXkiCGNsYWltRW5kIgppZG9Bc3NldElkIgxwcmljZUFzc2V0SWQiDXVzZXJBZGRyZXNzNTgiD29yaWdJbnZlc3RBcnJheSIRaW52ZXN0VG90YWxBbW91bnQiGmludmVzdExhc3RDbGFpbWVkSGVpZ2h0VE1QIhdpbnZlc3RMYXN0Q2xhaW1lZEhlaWdodCIUbmV3Q2xhaW1QZXJpb2RIZWlnaHQiDmNsYWltaW5nQmxvY2tzIhhjbGFpbWluZ1ByaWNlQXNzZXRBbW91bnQiFmNsYWltaW5nSWRvQXNzZXRBbW91bnQiBmlzVVNETiITaXNVU0ROQ2xhaW1EaXNhYmxlZCIQaXNVU0ROQ2xhaW1FbmRlZCIHJG1hdGNoMCIDZW5kIgZjaGVja3MiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgttdXN0TWFuYWdlciIBaSICcGQiAnBrIgZpZG9FbmQiA3BtdCIMaWRvQXNzZXRJbmZvIg5wcmljZUFzc2V0SW5mbyIPb3JpZ1RvdGFsc0FycmF5Igp0b3RhbHNEaWZmIg5taW5JdmVzdEFtb3VudCIKcG10QXNzZXRJZCIJcG10QW1vdW50IhFvcmlnSW52ZXN0b3JBcnJheSITbmV3UHJpY2VUb3RhbEFtb3VudCIWcmVxdWlyZWRJZG9Bc3NldEFtb3VudCIPY2FsbGVyQWRkcmVzczU4IhBjbGFpbVJlc3VsdFR1cGxlIglvdXRBbW91bnQiCm91dEFzc2V0SWQiGmNsYWltZWRQcmljZUFtb3VudEZyb21EaWZmIh1jbGFpbWVkSWRvQXNzZXRBbW91bnRGcm9tRGlmZiIHZW50cmllcyIedG90YWxQZXJpb2RQcmljZUFzc2V0QWxsb3dhbmNlIh11c2VyUGVyaW9kUHJpY2VBc3NldEFsbG93YW5jZSIMcGVyaW9kTGVuZ3RoIg1jdXJyZW50UGVyaW9kIg0kdDAxNjk4NzE3OTQxIhVsYXN0UGVyaW9kU3RhcnRIZWlnaHQiE2xhc3RQZXJpb2RFbmRIZWlnaHQiDSR0MDE3MjYxMTc2NTciFHVwZGF0ZWRDdXJyZW50UGVyaW9kIgtwZXJpb2RTdGFydCIJcGVyaW9kRW5kIhtwZXJpb2RUb3RhbEF2YWlsYWJsZVRvQ2xhaW0iGnBlcmlvZFVzZXJBdmFpbGFibGVUb0NsYWltIhlwZXJpb2RNaW5BdmFpbGFibGVUb0NsYWltIhl0b3RhbFVzZXJBdmFpbGFibGVUb0NsYWltIhx1c2R0UHJpY2VBc3NldEFsbG93YWJsZVJhdGlvIhtwdXRPbmVUa25WMlByaWNlQXNzZXRBbW91bnQiDSR0MDE4Njk3MTg5NjAiAUAiBWJvbnVzIglmZWVBbW91bnQiCGxwQW1vdW50Igt1c2R0QXNzZXRJZCINJHQwMTkwMjYxOTI1NCIUZ2V0T25lVGtuVjJGZWVBbW91bnQiCnVzZHRBbW91bnQiGmN1cnJlbnRVc2R0UHJpY2VBc3NldFJhdGlvIhNlbmRQZXJpb2RCbG9ja3NMZWZ0IhFwcmljZUFzc2V0QmFsYW5jZSIidXBkYXRlZFBlcmlvZFRvdGFsQXZhaWxhYmxlVG9DbGFpbSIhdXBkYXRlZFBlcmlvZFVzZXJBdmFpbGFibGVUb0NsYWltIhh1cGRhdGVkUHJpY2VBc3NldEJhbGFuY2UiFWF2YWlsYWJsZVRvQ2xhaW1BcnJheSIbYXZhaWxhYmxlUHJpY2VBbW91bnRUb0NsYWltIhlhdmFpbGFibGVJZG9BbW91bnRUb0NsYWltIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkAAAA+AQAAAAFhAAAAAQAAAAFiCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQUAAAABYgkAASwAAAACCQABLAAAAAICAAAAD21hbmRhdG9yeSB0aGlz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", "chainId": 84, "height": 2299665, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2KFoyBoEN1QSqmexi7Z4j6PbkReDnfCcEBApjJYiFoHF Next: 8sBCkrg3ft7WBR5VAFn7k34TtiEaNPPaxUq6DkybBKcX Diff:
OldNewDifferences
1010
1111 let e = 100000000
1212
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))
13+func f (g,h,i,j,k) = {
14+ let l = toBigInt(h)
15+ let m = toBigInt(k)
16+ let n = fraction(toBigInt(g), d, l)
17+ let o = fraction(n, toBigInt(j), toBigInt(i))
18+ toInt(fraction(o, toBigInt(k), d))
2219 }
2320
2421
25-let r = 1
22+let p = 1
2623
27-let s = 2
24+let q = 2
2825
29-let t = 3
26+let r = 3
3027
31-let u = 4
28+let s = 4
3229
33-let v = 5
30+let t = 5
3431
35-let w = 6
32+let u = 6
3633
37-let x = 7
34+let v = 7
3835
39-let y = 8
36+let w = 8
4037
41-let z = 9
38+let x = 9
4239
43-let A = 10
40+let y = 10
4441
45-let B = 11
42+let z = 11
4643
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)
44+func A (B,C,D,E,i,F,G,H,I,J,K,L) = makeString(["%d%d%d%d%d%d%s%d%s%d%d%d", B, C, D, E, i, F, G, H, I, J, K, L], c)
4845
4946
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))
47+func M (B,C,D,E,i,F,G,H,I,J,K,L) = A(toString(B), toString(C), toString(D), toString(E), toString(i), toString(F), G, toString(H), I, toString(J), toString(K), toString(L))
5148
5249
53-let P = 1
50+let N = 1
5451
55-let Q = 2
52+let O = 2
5653
57-let R = 3
54+let P = 3
5855
59-let S = 4
56+let Q = 4
6057
61-let T = 5
58+let R = 5
6259
63-func U (V,W,X,Y,Z) = makeString(["%d%d%d%d%d", V, W, X, Y, Z], c)
60+func S (T,U,V,W,X) = makeString(["%d%d%d%d%d", T, U, V, W, X], c)
6461
6562
66-func aa (V,W,X,Y,Z) = U(toString(V), toString(W), toString(X), toString(Y), toString(Z))
63+func Y (T,U,V,W,X) = S(toString(T), toString(U), toString(V), toString(W), toString(X))
6764
6865
69-func ab (i,ac) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(i), toString(ac)], c)
66+func Z (g,aa) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(g), toString(aa)], c)
7067
7168
72-func ad () = "%s__config"
69+func ab () = "%s__config"
7370
7471
75-func ae (af) = ("%s__" + af)
72+func ac (ad) = ("%s__" + ad)
7673
7774
78-func ag () = "%s__totals"
75+func ae () = "%s__totals"
7976
8077
81-func ah (ai,af,aj) = makeString(["%s%s%s%s__history", ai, af, aj], c)
78+func af (ag,ad,ah) = makeString(["%s%s%s%s__history", ag, ad, ah], c)
8279
8380
84-func ak () = "%s__usdnClaimDisabled"
81+func ai () = "%s__usdnClaimDisabled"
8582
8683
87-func al () = "%s__usdnClaimEndHeight"
84+func aj () = "%s__usdnClaimEndHeight"
8885
8986
90-func am () = makeString(["%s", "periodLength"], c)
87+func ak () = makeString(["%s", "periodLength"], c)
9188
9289
93-func an () = makeString(["%s", "currentPeriod"], c)
90+func al () = makeString(["%s", "currentPeriod"], c)
9491
9592
96-func ao (ap) = makeString(["%s%s", "periodStartHeight", toString(ap)], c)
93+func am (an) = makeString(["%s%s", "periodStartHeight", toString(an)], c)
9794
9895
99-func aq (ap) = makeString(["%s%s", "periodEndHeight", toString(ap)], c)
96+func ao (an) = makeString(["%s%s", "periodEndHeight", toString(an)], c)
10097
10198
102-func ar () = makeString(["%s", "usdtPriceAssetAllowableRatio"], c)
99+func ap () = makeString(["%s", "usdtPriceAssetAllowableRatio"], c)
103100
104101
105-func as (at) = makeString(["%s%s", "totalPeriodAllowance", at], c)
102+func aq (ar) = makeString(["%s%s", "totalPeriodAllowance", ar], c)
106103
107104
108-func au (at) = makeString(["%s%s", "userPeriodAllowance", at], c)
105+func as (ar) = makeString(["%s%s", "userPeriodAllowance", ar], c)
109106
110107
111-func av (at,ap) = makeString(["%s%s%s", "periodTotalAvailableToClaim", at, toString(ap)], c)
108+func at (ar,an) = makeString(["%s%s%s", "periodTotalAvailableToClaim", ar, toString(an)], c)
112109
113110
114-func aw (at,ap,af) = makeString(["%s%s%s%s", "periodUserAvailableToClaim", at, toString(ap), af], c)
111+func au (ar,an,ad) = makeString(["%s%s%s%s", "periodUserAvailableToClaim", ar, toString(an), ad], c)
115112
116113
117-func ax () = makeString(["%s", "usdtPriceAssetStablePool"], c)
114+func av () = makeString(["%s", "usdtPriceAssetStablePool"], c)
118115
119116
120-func ay () = makeString(["%s", "usdtAssetId"], c)
117+func aw () = makeString(["%s", "usdtAssetId"], c)
118+
119+
120+func ax (ay) = makeString(["%s%s", "priceAssetBalance", ay], c)
121121
122122
123123 func az () = "%s__managerPublicKey"
126126 func aA () = "%s__pendingManagerPublicKey"
127127
128128
129-func aB () = split(a(ad()), c)
129+func aB () = split(a(ab()), c)
130130
131131
132-func aC (aD) = split(valueOrElse(getString(aD), U("0", "0", "0", "0", "0")), c)
132+func aC (aD) = split(valueOrElse(getString(aD), S("0", "0", "0", "0", "0")), c)
133133
134134
135-func aE () = aC(ag())
135+func aE () = aC(ae())
136136
137137
138-func aF (af) = aC(ae(af))
138+func aF (ad) = aC(ac(ad))
139139
140140
141-func aG (af) = split(a(ae(af)), c)
141+func aG (ad) = split(a(ac(ad)), c)
142142
143143
144144 let aH = 0
150150 let aK = 3
151151
152152 func aL (b,aM,aN,aO) = {
153+ let T = parseIntValue(aM[N])
154+ let U = parseIntValue(aM[O])
153155 let V = parseIntValue(aM[P])
154156 let W = parseIntValue(aM[Q])
155157 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])
158+ let aP = (T + aN[aH])
159+ let aQ = (U + aN[aI])
160+ let aR = (V + aN[aJ])
161+ let aS = (W + aN[aK])
162162 if ((0 > aQ))
163163 then throw("invalid math")
164- else StringEntry(b, aa(aP, aQ, aR, aS, aO))
164+ else StringEntry(b, Y(aP, aQ, aR, aS, aO))
165165 }
166166
167167
168-func aT (af,i,ac,aU) = StringEntry(ah("invest", af, toBase58String(aU)), ab(i, ac))
168+func aT (ad,g,aa,aU) = StringEntry(af("invest", ad, toBase58String(aU)), Z(g, aa))
169169
170170
171-func aV (af,i,ac,aU) = StringEntry(ah("claim", af, toBase58String(aU)), ab(i, ac))
171+func aV (ad,g,aa,aU) = StringEntry(af("claim", ad, toBase58String(aU)), Z(g, aa))
172172
173173
174-func aW (aX,af,aU) = {
174+func aW (aX,ad,aU) = {
175175 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])
176+ let D = parseIntValue(aY[r])
177+ let E = parseIntValue(aY[s])
178+ let aZ = (D + E)
179+ let i = parseIntValue(aY[t])
180+ let F = parseIntValue(aY[u])
181+ let G = aY[v]
182+ let ba = fromBase58String(G)
180183 let H = parseIntValue(aY[w])
181184 let I = aY[x]
182- let ba = fromBase58String(I)
185+ let bb = fromBase58String(I)
183186 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)
187+ let bc = toString(ad)
188188 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
189+ let be = parseIntValue(bd[N])
190+ let bf = parseIntValue(bd[R])
191+ let bg = if ((D >= bf))
192+ then D
193193 else bf
194194 let bh = if ((height > aZ))
195195 then aZ
196- else if ((F > height))
197- then F
196+ else if ((D > height))
197+ then D
198198 else height
199199 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)
200+ let bj = fraction(be, bi, E)
201+ let bk = f(bj, J, i, F, H)
202+ let bl = (aX == I)
203+ let bm = valueOrElse(getBoolean(ai()), false)
204204 let bn = {
205- let bo = getInteger(al())
205+ let bo = getInteger(aj())
206206 if ($isInstanceOf(bo, "Int"))
207207 then {
208208 let bp = bo
216216 then bm
217217 else false))
218218 then true
219- else f("USDN claim is disabled"), if (!(if (bl)
219+ else throw("USDN claim is disabled"), if (!(if (bl)
220220 then bn
221221 else false))
222222 then true
223- else f("USDN claim is ended")]
223+ else throw("USDN claim is ended")]
224224 if ((bq == bq))
225- then {
226- let br = value(getInteger(as(K)))
227- let bs = value(getInteger(au(K)))
228- let bt = value(getInteger(am()))
229- let bu = valueOrElse(getInteger(an()), 0)
230- let bv = if ((bu > 0))
231- then {
232- let bw = value(getInteger(ao((bu - 1))))
233- let bx = value(getInteger(aq((bu - 1))))
234- let by = if ((height > bx))
235- then {
236- let bz = (bu + 1)
237- let bA = (bx + 1)
238- let bB = ((bA + bt) - 1)
239- $Tuple3(bz, bA, bB)
240- }
241- else $Tuple3(bu, bw, bx)
242- let bz = by._1
243- let bA = by._2
244- let bB = by._3
245- $Tuple3(bz, bA, bB)
246- }
247- else $Tuple3(bu, valueOrElse(getInteger(ao(bu)), height), valueOrElse(getInteger(aq(bu)), ((height + bt) - 1)))
248- let bz = bv._1
249- let bA = bv._2
250- let bB = bv._3
251- let bC = valueOrElse(getInteger(av(K, bz)), br)
252- let bD = valueOrElse(getInteger(aw(K, bz, bc)), bs)
253- let bE = min([bj, bC, bD])
254- let bF = value(getInteger(ar()))
255- let bG = e
256- let bH = {
257- let bI = invoke(addressFromStringValue(value(getString(ax()))), "putOneTknV2WithoutTakeFeeREADONLY", [bG, K], nil)
258- if ($isInstanceOf(bI, "(Int, Int, Int)"))
259- then bI
260- else throw("Couldn't cast Any to (Int, Int, Int)")
261- }
262- if ((bH == bH))
263- then {
264- let bJ = bH._3
265- let bK = bH._2
266- let bL = bH._1
267- let bM = value(getString(ay()))
268- let bN = {
269- let bI = invoke(addressFromStringValue(value(getString(ax()))), "getOneTknV2READONLY", [bM, bL], nil)
270- if ($isInstanceOf(bI, "(Int, Int)"))
271- then bI
272- else throw("Couldn't cast Any to (Int, Int)")
273- }
274- if ((bN == bN))
275- then {
276- let bO = bN._2
277- let bP = bN._1
278- let bQ = fraction(bP, bG, e)
279- let bR = (bB - height)
280- if ((aX == K))
281- then $Tuple6([0, -(bE), bE, 0], bE, bb, bd, bh, [bz, bA, bB, bj, bk, bE, bC, bF, bQ, bR])
282- else if ((aX == I))
283- then $Tuple6([0, -(bE), 0, bE], bk, ba, bd, bh, [bz, bA, bB, bj, bk, bE, bC, bF, bQ, bR])
284- else f(makeString(["unsupported assetId:", aX], " "))
285- }
286- else throw("Strict value is not equal to itself.")
287- }
288- else throw("Strict value is not equal to itself.")
289- }
225+ then if ((aX == I))
226+ then $Tuple6([0, -(bj), bj, 0], bj, bb, bd, bh, [bj, bk])
227+ else if ((aX == G))
228+ then $Tuple6([0, -(bj), 0, bk], bk, ba, bd, bh, [bj, bk])
229+ else throw(("unsupported assetId: " + aX))
290230 else throw("Strict value is not equal to itself.")
291231 }
292232
293233
294-func bS () = {
234+func br () = {
295235 let bo = getString(az())
296236 if ($isInstanceOf(bo, "String"))
297237 then {
298- let bT = bo
299- fromBase58String(bT)
238+ let bs = bo
239+ fromBase58String(bs)
300240 }
301241 else if ($isInstanceOf(bo, "Unit"))
302242 then unit
304244 }
305245
306246
307-func bU () = {
247+func bt () = {
308248 let bo = getString(aA())
309249 if ($isInstanceOf(bo, "String"))
310250 then {
311- let bT = bo
312- fromBase58String(bT)
251+ let bs = bo
252+ fromBase58String(bs)
313253 }
314254 else if ($isInstanceOf(bo, "Unit"))
315255 then unit
317257 }
318258
319259
320-func bV (bW) = {
321- let bX = throw("Permission denied")
322- let bo = bS()
260+func bu (bv) = {
261+ let bw = throw("Permission denied")
262+ let bo = br()
323263 if ($isInstanceOf(bo, "ByteVector"))
324264 then {
325- let bY = bo
326- if ((bW.callerPublicKey == bY))
265+ let bx = bo
266+ if ((bv.callerPublicKey == bx))
327267 then true
328- else bX
268+ else bw
329269 }
330270 else if ($isInstanceOf(bo, "Unit"))
331- then if ((bW.caller == this))
271+ then if ((bv.caller == this))
332272 then true
333- else bX
273+ else bw
334274 else throw("Match error")
335275 }
336276
337277
338-@Callable(bW)
339-func constructor (D,E,F,G,k,K,M) = {
340- let H = ((100 * 1000) * 1000)
341- let bZ = (D + E)
342- if (isDefined(getString(ad())))
278+@Callable(bv)
279+func constructor (B,C,D,E,i,I,K) = {
280+ let F = ((100 * 1000) * 1000)
281+ let by = (B + C)
282+ if (isDefined(getString(ab())))
343283 then throw("already initialized")
344- else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(bW.caller)))
284+ else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(bv.caller)))
345285 then throw("not authorized")
346- else if ((size(bW.payments) != 1))
286+ else if ((size(bv.payments) != 1))
347287 then throw("exactly 1 payment must be attached")
348- else if ((bZ >= F))
288+ else if ((by >= D))
349289 then throw("claimStart must be greater than idoEnd")
350290 else {
351- let ca = value(bW.payments[0])
352- let ba = value(ca.assetId)
353- let cb = valueOrErrorMessage(assetInfo(ba), "fail to load ido asset info")
354- let I = toBase58String(ba)
355- let J = pow(10, 0, cb.decimals, 0, 0, DOWN)
356- let bb = fromBase58String(K)
357- let cc = valueOrErrorMessage(assetInfo(bb), "fail to load price asset info")
358- let L = pow(10, 0, cc.decimals, 0, 0, DOWN)
359- let cd = aE()
360- let ce = [0, 0, 0, 0]
361-[StringEntry(ad(), O(D, E, F, G, k, H, I, J, K, L, M, ca.amount)), aL(ag(), cd, ce, F)]
291+ let bz = value(bv.payments[0])
292+ let ba = value(bz.assetId)
293+ let bA = valueOrErrorMessage(assetInfo(ba), "fail to load ido asset info")
294+ let G = toBase58String(ba)
295+ let H = pow(10, 0, bA.decimals, 0, 0, DOWN)
296+ let bb = fromBase58String(I)
297+ let bB = valueOrErrorMessage(assetInfo(bb), "fail to load price asset info")
298+ let J = pow(10, 0, bB.decimals, 0, 0, DOWN)
299+ let bC = aE()
300+ let bD = [0, 0, 0, 0]
301+[StringEntry(ab(), M(B, C, D, E, i, F, G, H, I, J, K, bz.amount)), aL(ae(), bC, bD, D)]
362302 }
363303 }
364304
365305
366306
367-@Callable(bW)
307+@Callable(bv)
368308 func invest () = {
369309 let aY = aB()
310+ let B = parseIntValue(aY[p])
311+ let C = parseIntValue(aY[q])
312+ let by = (B + C)
370313 let D = parseIntValue(aY[r])
371314 let E = parseIntValue(aY[s])
372- let bZ = (D + E)
373- let F = parseIntValue(aY[t])
374- let G = parseIntValue(aY[u])
375- let k = parseIntValue(aY[v])
315+ let i = parseIntValue(aY[t])
316+ let F = parseIntValue(aY[u])
317+ let G = aY[v]
318+ let ba = fromBase58String(G)
376319 let H = parseIntValue(aY[w])
377320 let I = aY[x]
378- let ba = fromBase58String(I)
321+ let bb = fromBase58String(I)
379322 let J = parseIntValue(aY[y])
380- let K = aY[z]
381- let bb = fromBase58String(K)
382- let L = parseIntValue(aY[A])
383- let cf = parseIntValue(aY[B])
384- let af = toString(bW.caller)
385- if ((D > height))
323+ let bE = parseIntValue(aY[z])
324+ let ad = toString(bv.caller)
325+ if ((B > height))
386326 then throw("ido has not been started yet")
387- else if ((height > bZ))
327+ else if ((height > by))
388328 then throw("ido has been already ended")
389- else if ((size(bW.payments) != 1))
329+ else if ((size(bv.payments) != 1))
390330 then throw("exactly 1 payment is expected")
391331 else {
392- let ca = value(bW.payments[0])
393- let cg = value(ca.assetId)
394- let ch = ca.amount
395- if ((cg != bb))
396- then throw((("invalid payment asset id: " + toBase58String(cg)) + " is expected"))
332+ let bz = value(bv.payments[0])
333+ let bF = value(bz.assetId)
334+ let bG = bz.amount
335+ if ((bF != bb))
336+ then throw((("invalid payment asset id: " + toBase58String(bF)) + " is expected"))
397337 else {
398- let ci = aF(af)
399- let cd = aE()
400- let cj = (parseIntValue(cd[P]) + ch)
401- let ck = (cj * 100)
402- if ((ck > assetBalance(this, ba)))
338+ let bH = aF(ad)
339+ let bC = aE()
340+ let bI = (parseIntValue(bC[N]) + bG)
341+ let bJ = (bI * 100)
342+ if ((bJ > assetBalance(this, ba)))
403343 then throw("IDO asset has been - sold consider to use smaller payment")
404344 else {
405- let ce = [ch, ch, 0, 0]
406-[aL(ae(af), ci, ce, F), aL(ag(), cd, ce, F), aT(af, ch, 0, bW.transactionId)]
345+ let bD = [bG, bG, 0, 0]
346+[aL(ac(ad), bH, bD, D), aL(ae(), bC, bD, D), aT(ad, bG, 0, bv.transactionId)]
407347 }
408348 }
409349 }
411351
412352
413353
414-@Callable(bW)
354+@Callable(bv)
415355 func claim (aX,bc) = {
416- let cl = toString(bW.caller)
417- if ((bc != cl))
418- then f("not authorized")
356+ let bK = toString(bv.caller)
357+ if ((bc != bK))
358+ then throw("not authorized")
419359 else {
420- let bb = aB()[z]
421- let cm = aW(aX, bW.caller, bW.transactionId)
422- let ce = cm._1
423- let cn = cm._2
424- let co = cm._3
425- let bd = cm._4
426- let bh = cm._5
427- let cp = cm._6
428- let bu = cp[0]
429- let bA = cp[1]
430- let bB = cp[2]
431- let bj = cp[3]
432- let cq = cp[4]
433- let cr = cp[5]
434- let cs = cp[6]
435- let bF = cp[7]
436- let ct = cp[8]
437- let cu = cp[9]
438- let bq = [if (if ((bj > 0))
439- then true
440- else (cq > 0))
441- then true
442- else f("nothing to claim"), if ((cr > 0))
443- then true
444- else f("unavailable to claim because user period allowance reached"), if ((cs > 0))
445- then true
446- else f("unavailable to claim because total period allowance reached")]
447- if ((bq == bq))
360+ let aY = aB()
361+ let I = aY[x]
362+ let bL = aW(aX, bv.caller, bv.transactionId)
363+ let bD = bL._1
364+ let bM = bL._2
365+ let bN = bL._3
366+ let bd = bL._4
367+ let bh = bL._5
368+ let bO = bD[aJ]
369+ let bP = bD[aK]
370+ let bQ = if ((aX == I))
448371 then {
449- let cv = ce[aJ]
450- let cw = ce[aK]
451- let cx = (cs - cv)
452- let cy = (cr - cv)
453- $Tuple2([ScriptTransfer(bW.caller, cn, co), aL(ae(bc), bd, ce, bh), aL(ag(), aE(), ce, bh), IntegerEntry(an(), bu), IntegerEntry(ao(bu), bA), IntegerEntry(aq(bu), bB), IntegerEntry(av(bb, bu), cx), IntegerEntry(aw(bb, bu, bc), cy), aV(bc, cv, cw, bW.transactionId)], unit)
372+ let bR = value(getInteger(aq(I)))
373+ let bS = value(getInteger(as(I)))
374+ let bT = value(getInteger(ak()))
375+ let bU = valueOrElse(getInteger(al()), 0)
376+ let bV = if ((bU > 0))
377+ then {
378+ let bW = value(getInteger(am((bU - 1))))
379+ let bX = value(getInteger(ao((bU - 1))))
380+ let bY = if ((height > bX))
381+ then {
382+ let bZ = (bU + 1)
383+ let ca = (bX + 1)
384+ let cb = ((ca + bT) - 1)
385+ $Tuple3(bZ, ca, cb)
386+ }
387+ else $Tuple3(bU, bW, bX)
388+ let bZ = bY._1
389+ let ca = bY._2
390+ let cb = bY._3
391+ $Tuple3(bZ, ca, cb)
392+ }
393+ else $Tuple3(bU, valueOrElse(getInteger(am(bU)), height), valueOrElse(getInteger(ao(bU)), ((height + bT) - 1)))
394+ let bZ = bV._1
395+ let ca = bV._2
396+ let cb = bV._3
397+ let cc = valueOrElse(getInteger(at(I, bZ)), bR)
398+ let cd = valueOrElse(getInteger(au(I, bZ, bc)), bS)
399+ let ce = min([bM, cc, cd])
400+ let cf = bD[P]
401+ let cg = value(getInteger(ap()))
402+ let ch = e
403+ let ci = {
404+ let cj = invoke(addressFromStringValue(value(getString(av()))), "putOneTknV2WithoutTakeFeeREADONLY", [ch, I], nil)
405+ if ($isInstanceOf(cj, "(Int, Int, Int)"))
406+ then cj
407+ else throw("Couldn't cast Any to (Int, Int, Int)")
408+ }
409+ if ((ci == ci))
410+ then {
411+ let ck = ci._3
412+ let cl = ci._2
413+ let cm = ci._1
414+ let cn = value(getString(aw()))
415+ let co = {
416+ let cj = invoke(addressFromStringValue(value(getString(av()))), "getOneTknV2READONLY", [cn, cm], nil)
417+ if ($isInstanceOf(cj, "(Int, Int)"))
418+ then cj
419+ else throw("Couldn't cast Any to (Int, Int)")
420+ }
421+ if ((co == co))
422+ then {
423+ let cp = co._2
424+ let cq = co._1
425+ let cr = fraction(cq, ch, e)
426+ let cs = (cb - height)
427+ let ct = valueOrElse(getInteger(ax(bc)), 0)
428+ let cu = (cc - ce)
429+ let cv = (cd - ce)
430+ let bQ = if ((ct >= ce))
431+ then [ScriptTransfer(bv.caller, ce, bN), IntegerEntry(ax(bc), (ct - ce))]
432+ else {
433+ let cw = ((ct + bM) - ce)
434+[ScriptTransfer(bv.caller, ce, bN), aL(ac(bc), bd, bD, bh), aL(ae(), aE(), bD, bh), IntegerEntry(ax(bc), cw)]
435+ }
436+ $Tuple2(([IntegerEntry(al(), bU), IntegerEntry(am(bU), ca), IntegerEntry(ao(bU), cb), IntegerEntry(at(I, bU), cu), IntegerEntry(au(I, bU, bc), cv), aV(bc, bO, bP, bv.transactionId)] ++ bQ), unit)
437+ }
438+ else throw("Strict value is not equal to itself.")
439+ }
440+ else throw("Strict value is not equal to itself.")
454441 }
455- else throw("Strict value is not equal to itself.")
442+ else $Tuple2([ScriptTransfer(bv.caller, bM, bN), aL(ac(bc), bd, bD, bh), aL(ae(), aE(), bD, bh), aV(bc, bO, bP, bv.transactionId)], unit)
443+ bQ
456444 }
457445 }
458446
459447
460448
461-@Callable(bW)
449+@Callable(bv)
462450 func claimREADONLY (aX,bc) = {
463- let cm = aW(aX, addressFromStringValue(bc), fromBase58String(""))
464- let ce = cm._1
465- let cn = cm._2
466- let co = cm._3
467- let bd = cm._4
468- let bh = cm._5
469- let cp = cm._6
470- let cz = cp[4]
471- let cA = cp[5]
472- $Tuple2(nil, makeString(["%s%d%d", bc, toString(cA), toString(cz)], c))
451+ let bL = aW(aX, addressFromStringValue(bc), fromBase58String(""))
452+ let bD = bL._1
453+ let bM = bL._2
454+ let bN = bL._3
455+ let bd = bL._4
456+ let bh = bL._5
457+ let cx = bL._6
458+ let cy = cx[0]
459+ let cz = cx[1]
460+ $Tuple2(nil, makeString(["%s%d%d", bc, toString(cy), toString(cz)], c))
473461 }
474462
475463
476464
477-@Callable(bW)
478-func claimV2READONLY (aX,bc) = {
479- let cm = aW(aX, addressFromStringValue(bc), fromBase58String(""))
480- let ce = cm._1
481- let cn = cm._2
482- let co = cm._3
483- let bd = cm._4
484- let bh = cm._5
485- let cp = cm._6
486- let bu = cp[0]
487- let bA = cp[1]
488- let bB = cp[2]
489- let bj = cp[3]
490- let cq = cp[4]
491- let cr = cp[5]
492- let cs = cp[6]
493- let bF = cp[7]
494- let ct = cp[8]
495- let cu = cp[9]
496- let cB = makeString(["%d%d%d%d%d%d%d", toString(bj), toString(cq), toString(cr), toString(cs), toString(bF), toString(ct), toString(cu)], c)
497- $Tuple2(nil, cB)
498- }
499-
500-
501-
502-@Callable(bW)
503-func setManager (cC) = {
504- let cD = bV(bW)
505- if ((cD == cD))
465+@Callable(bv)
466+func setManager (cA) = {
467+ let cB = bu(bv)
468+ if ((cB == cB))
506469 then {
507- let cE = fromBase58String(cC)
508- if ((cE == cE))
509- then [StringEntry(aA(), cC)]
470+ let cC = fromBase58String(cA)
471+ if ((cC == cC))
472+ then [StringEntry(aA(), cA)]
510473 else throw("Strict value is not equal to itself.")
511474 }
512475 else throw("Strict value is not equal to itself.")
514477
515478
516479
517-@Callable(bW)
480+@Callable(bv)
518481 func confirmManager () = {
519- let cF = bU()
520- let cG = if (isDefined(cF))
482+ let cD = bt()
483+ let cE = if (isDefined(cD))
521484 then true
522485 else throw("No pending manager")
523- if ((cG == cG))
486+ if ((cE == cE))
524487 then {
525- let cH = if ((bW.callerPublicKey == value(cF)))
488+ let cF = if ((bv.callerPublicKey == value(cD)))
526489 then true
527490 else throw("You are not pending manager")
528- if ((cH == cH))
529- then [StringEntry(az(), toBase58String(value(cF))), DeleteEntry(aA())]
491+ if ((cF == cF))
492+ then [StringEntry(az(), toBase58String(value(cD))), DeleteEntry(aA())]
530493 else throw("Strict value is not equal to itself.")
531494 }
532495 else throw("Strict value is not equal to itself.")
533496 }
534497
535498
536-@Verifier(cI)
537-func cJ () = {
538- let cK = {
539- let bo = bS()
499+@Verifier(cG)
500+func cH () = {
501+ let cI = {
502+ let bo = br()
540503 if ($isInstanceOf(bo, "ByteVector"))
541504 then {
542- let bY = bo
543- bY
505+ let bx = bo
506+ bx
544507 }
545508 else if ($isInstanceOf(bo, "Unit"))
546- then cI.senderPublicKey
509+ then cG.senderPublicKey
547510 else throw("Match error")
548511 }
549- sigVerify(cI.bodyBytes, cI.proofs[0], cK)
512+ sigVerify(cG.bodyBytes, cG.proofs[0], cI)
550513 }
551514
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
1111 let e = 100000000
1212
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))
13+func f (g,h,i,j,k) = {
14+ let l = toBigInt(h)
15+ let m = toBigInt(k)
16+ let n = fraction(toBigInt(g), d, l)
17+ let o = fraction(n, toBigInt(j), toBigInt(i))
18+ toInt(fraction(o, toBigInt(k), d))
2219 }
2320
2421
25-let r = 1
22+let p = 1
2623
27-let s = 2
24+let q = 2
2825
29-let t = 3
26+let r = 3
3027
31-let u = 4
28+let s = 4
3229
33-let v = 5
30+let t = 5
3431
35-let w = 6
32+let u = 6
3633
37-let x = 7
34+let v = 7
3835
39-let y = 8
36+let w = 8
4037
41-let z = 9
38+let x = 9
4239
43-let A = 10
40+let y = 10
4441
45-let B = 11
42+let z = 11
4643
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)
44+func A (B,C,D,E,i,F,G,H,I,J,K,L) = makeString(["%d%d%d%d%d%d%s%d%s%d%d%d", B, C, D, E, i, F, G, H, I, J, K, L], c)
4845
4946
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))
47+func M (B,C,D,E,i,F,G,H,I,J,K,L) = A(toString(B), toString(C), toString(D), toString(E), toString(i), toString(F), G, toString(H), I, toString(J), toString(K), toString(L))
5148
5249
53-let P = 1
50+let N = 1
5451
55-let Q = 2
52+let O = 2
5653
57-let R = 3
54+let P = 3
5855
59-let S = 4
56+let Q = 4
6057
61-let T = 5
58+let R = 5
6259
63-func U (V,W,X,Y,Z) = makeString(["%d%d%d%d%d", V, W, X, Y, Z], c)
60+func S (T,U,V,W,X) = makeString(["%d%d%d%d%d", T, U, V, W, X], c)
6461
6562
66-func aa (V,W,X,Y,Z) = U(toString(V), toString(W), toString(X), toString(Y), toString(Z))
63+func Y (T,U,V,W,X) = S(toString(T), toString(U), toString(V), toString(W), toString(X))
6764
6865
69-func ab (i,ac) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(i), toString(ac)], c)
66+func Z (g,aa) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(g), toString(aa)], c)
7067
7168
72-func ad () = "%s__config"
69+func ab () = "%s__config"
7370
7471
75-func ae (af) = ("%s__" + af)
72+func ac (ad) = ("%s__" + ad)
7673
7774
78-func ag () = "%s__totals"
75+func ae () = "%s__totals"
7976
8077
81-func ah (ai,af,aj) = makeString(["%s%s%s%s__history", ai, af, aj], c)
78+func af (ag,ad,ah) = makeString(["%s%s%s%s__history", ag, ad, ah], c)
8279
8380
84-func ak () = "%s__usdnClaimDisabled"
81+func ai () = "%s__usdnClaimDisabled"
8582
8683
87-func al () = "%s__usdnClaimEndHeight"
84+func aj () = "%s__usdnClaimEndHeight"
8885
8986
90-func am () = makeString(["%s", "periodLength"], c)
87+func ak () = makeString(["%s", "periodLength"], c)
9188
9289
93-func an () = makeString(["%s", "currentPeriod"], c)
90+func al () = makeString(["%s", "currentPeriod"], c)
9491
9592
96-func ao (ap) = makeString(["%s%s", "periodStartHeight", toString(ap)], c)
93+func am (an) = makeString(["%s%s", "periodStartHeight", toString(an)], c)
9794
9895
99-func aq (ap) = makeString(["%s%s", "periodEndHeight", toString(ap)], c)
96+func ao (an) = makeString(["%s%s", "periodEndHeight", toString(an)], c)
10097
10198
102-func ar () = makeString(["%s", "usdtPriceAssetAllowableRatio"], c)
99+func ap () = makeString(["%s", "usdtPriceAssetAllowableRatio"], c)
103100
104101
105-func as (at) = makeString(["%s%s", "totalPeriodAllowance", at], c)
102+func aq (ar) = makeString(["%s%s", "totalPeriodAllowance", ar], c)
106103
107104
108-func au (at) = makeString(["%s%s", "userPeriodAllowance", at], c)
105+func as (ar) = makeString(["%s%s", "userPeriodAllowance", ar], c)
109106
110107
111-func av (at,ap) = makeString(["%s%s%s", "periodTotalAvailableToClaim", at, toString(ap)], c)
108+func at (ar,an) = makeString(["%s%s%s", "periodTotalAvailableToClaim", ar, toString(an)], c)
112109
113110
114-func aw (at,ap,af) = makeString(["%s%s%s%s", "periodUserAvailableToClaim", at, toString(ap), af], c)
111+func au (ar,an,ad) = makeString(["%s%s%s%s", "periodUserAvailableToClaim", ar, toString(an), ad], c)
115112
116113
117-func ax () = makeString(["%s", "usdtPriceAssetStablePool"], c)
114+func av () = makeString(["%s", "usdtPriceAssetStablePool"], c)
118115
119116
120-func ay () = makeString(["%s", "usdtAssetId"], c)
117+func aw () = makeString(["%s", "usdtAssetId"], c)
118+
119+
120+func ax (ay) = makeString(["%s%s", "priceAssetBalance", ay], c)
121121
122122
123123 func az () = "%s__managerPublicKey"
124124
125125
126126 func aA () = "%s__pendingManagerPublicKey"
127127
128128
129-func aB () = split(a(ad()), c)
129+func aB () = split(a(ab()), c)
130130
131131
132-func aC (aD) = split(valueOrElse(getString(aD), U("0", "0", "0", "0", "0")), c)
132+func aC (aD) = split(valueOrElse(getString(aD), S("0", "0", "0", "0", "0")), c)
133133
134134
135-func aE () = aC(ag())
135+func aE () = aC(ae())
136136
137137
138-func aF (af) = aC(ae(af))
138+func aF (ad) = aC(ac(ad))
139139
140140
141-func aG (af) = split(a(ae(af)), c)
141+func aG (ad) = split(a(ac(ad)), c)
142142
143143
144144 let aH = 0
145145
146146 let aI = 1
147147
148148 let aJ = 2
149149
150150 let aK = 3
151151
152152 func aL (b,aM,aN,aO) = {
153+ let T = parseIntValue(aM[N])
154+ let U = parseIntValue(aM[O])
153155 let V = parseIntValue(aM[P])
154156 let W = parseIntValue(aM[Q])
155157 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])
158+ let aP = (T + aN[aH])
159+ let aQ = (U + aN[aI])
160+ let aR = (V + aN[aJ])
161+ let aS = (W + aN[aK])
162162 if ((0 > aQ))
163163 then throw("invalid math")
164- else StringEntry(b, aa(aP, aQ, aR, aS, aO))
164+ else StringEntry(b, Y(aP, aQ, aR, aS, aO))
165165 }
166166
167167
168-func aT (af,i,ac,aU) = StringEntry(ah("invest", af, toBase58String(aU)), ab(i, ac))
168+func aT (ad,g,aa,aU) = StringEntry(af("invest", ad, toBase58String(aU)), Z(g, aa))
169169
170170
171-func aV (af,i,ac,aU) = StringEntry(ah("claim", af, toBase58String(aU)), ab(i, ac))
171+func aV (ad,g,aa,aU) = StringEntry(af("claim", ad, toBase58String(aU)), Z(g, aa))
172172
173173
174-func aW (aX,af,aU) = {
174+func aW (aX,ad,aU) = {
175175 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])
176+ let D = parseIntValue(aY[r])
177+ let E = parseIntValue(aY[s])
178+ let aZ = (D + E)
179+ let i = parseIntValue(aY[t])
180+ let F = parseIntValue(aY[u])
181+ let G = aY[v]
182+ let ba = fromBase58String(G)
180183 let H = parseIntValue(aY[w])
181184 let I = aY[x]
182- let ba = fromBase58String(I)
185+ let bb = fromBase58String(I)
183186 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)
187+ let bc = toString(ad)
188188 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
189+ let be = parseIntValue(bd[N])
190+ let bf = parseIntValue(bd[R])
191+ let bg = if ((D >= bf))
192+ then D
193193 else bf
194194 let bh = if ((height > aZ))
195195 then aZ
196- else if ((F > height))
197- then F
196+ else if ((D > height))
197+ then D
198198 else height
199199 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)
200+ let bj = fraction(be, bi, E)
201+ let bk = f(bj, J, i, F, H)
202+ let bl = (aX == I)
203+ let bm = valueOrElse(getBoolean(ai()), false)
204204 let bn = {
205- let bo = getInteger(al())
205+ let bo = getInteger(aj())
206206 if ($isInstanceOf(bo, "Int"))
207207 then {
208208 let bp = bo
209209 (height > bp)
210210 }
211211 else if ($isInstanceOf(bo, "Unit"))
212212 then false
213213 else throw("Match error")
214214 }
215215 let bq = [if (!(if (bl)
216216 then bm
217217 else false))
218218 then true
219- else f("USDN claim is disabled"), if (!(if (bl)
219+ else throw("USDN claim is disabled"), if (!(if (bl)
220220 then bn
221221 else false))
222222 then true
223- else f("USDN claim is ended")]
223+ else throw("USDN claim is ended")]
224224 if ((bq == bq))
225- then {
226- let br = value(getInteger(as(K)))
227- let bs = value(getInteger(au(K)))
228- let bt = value(getInteger(am()))
229- let bu = valueOrElse(getInteger(an()), 0)
230- let bv = if ((bu > 0))
231- then {
232- let bw = value(getInteger(ao((bu - 1))))
233- let bx = value(getInteger(aq((bu - 1))))
234- let by = if ((height > bx))
235- then {
236- let bz = (bu + 1)
237- let bA = (bx + 1)
238- let bB = ((bA + bt) - 1)
239- $Tuple3(bz, bA, bB)
240- }
241- else $Tuple3(bu, bw, bx)
242- let bz = by._1
243- let bA = by._2
244- let bB = by._3
245- $Tuple3(bz, bA, bB)
246- }
247- else $Tuple3(bu, valueOrElse(getInteger(ao(bu)), height), valueOrElse(getInteger(aq(bu)), ((height + bt) - 1)))
248- let bz = bv._1
249- let bA = bv._2
250- let bB = bv._3
251- let bC = valueOrElse(getInteger(av(K, bz)), br)
252- let bD = valueOrElse(getInteger(aw(K, bz, bc)), bs)
253- let bE = min([bj, bC, bD])
254- let bF = value(getInteger(ar()))
255- let bG = e
256- let bH = {
257- let bI = invoke(addressFromStringValue(value(getString(ax()))), "putOneTknV2WithoutTakeFeeREADONLY", [bG, K], nil)
258- if ($isInstanceOf(bI, "(Int, Int, Int)"))
259- then bI
260- else throw("Couldn't cast Any to (Int, Int, Int)")
261- }
262- if ((bH == bH))
263- then {
264- let bJ = bH._3
265- let bK = bH._2
266- let bL = bH._1
267- let bM = value(getString(ay()))
268- let bN = {
269- let bI = invoke(addressFromStringValue(value(getString(ax()))), "getOneTknV2READONLY", [bM, bL], nil)
270- if ($isInstanceOf(bI, "(Int, Int)"))
271- then bI
272- else throw("Couldn't cast Any to (Int, Int)")
273- }
274- if ((bN == bN))
275- then {
276- let bO = bN._2
277- let bP = bN._1
278- let bQ = fraction(bP, bG, e)
279- let bR = (bB - height)
280- if ((aX == K))
281- then $Tuple6([0, -(bE), bE, 0], bE, bb, bd, bh, [bz, bA, bB, bj, bk, bE, bC, bF, bQ, bR])
282- else if ((aX == I))
283- then $Tuple6([0, -(bE), 0, bE], bk, ba, bd, bh, [bz, bA, bB, bj, bk, bE, bC, bF, bQ, bR])
284- else f(makeString(["unsupported assetId:", aX], " "))
285- }
286- else throw("Strict value is not equal to itself.")
287- }
288- else throw("Strict value is not equal to itself.")
289- }
225+ then if ((aX == I))
226+ then $Tuple6([0, -(bj), bj, 0], bj, bb, bd, bh, [bj, bk])
227+ else if ((aX == G))
228+ then $Tuple6([0, -(bj), 0, bk], bk, ba, bd, bh, [bj, bk])
229+ else throw(("unsupported assetId: " + aX))
290230 else throw("Strict value is not equal to itself.")
291231 }
292232
293233
294-func bS () = {
234+func br () = {
295235 let bo = getString(az())
296236 if ($isInstanceOf(bo, "String"))
297237 then {
298- let bT = bo
299- fromBase58String(bT)
238+ let bs = bo
239+ fromBase58String(bs)
300240 }
301241 else if ($isInstanceOf(bo, "Unit"))
302242 then unit
303243 else throw("Match error")
304244 }
305245
306246
307-func bU () = {
247+func bt () = {
308248 let bo = getString(aA())
309249 if ($isInstanceOf(bo, "String"))
310250 then {
311- let bT = bo
312- fromBase58String(bT)
251+ let bs = bo
252+ fromBase58String(bs)
313253 }
314254 else if ($isInstanceOf(bo, "Unit"))
315255 then unit
316256 else throw("Match error")
317257 }
318258
319259
320-func bV (bW) = {
321- let bX = throw("Permission denied")
322- let bo = bS()
260+func bu (bv) = {
261+ let bw = throw("Permission denied")
262+ let bo = br()
323263 if ($isInstanceOf(bo, "ByteVector"))
324264 then {
325- let bY = bo
326- if ((bW.callerPublicKey == bY))
265+ let bx = bo
266+ if ((bv.callerPublicKey == bx))
327267 then true
328- else bX
268+ else bw
329269 }
330270 else if ($isInstanceOf(bo, "Unit"))
331- then if ((bW.caller == this))
271+ then if ((bv.caller == this))
332272 then true
333- else bX
273+ else bw
334274 else throw("Match error")
335275 }
336276
337277
338-@Callable(bW)
339-func constructor (D,E,F,G,k,K,M) = {
340- let H = ((100 * 1000) * 1000)
341- let bZ = (D + E)
342- if (isDefined(getString(ad())))
278+@Callable(bv)
279+func constructor (B,C,D,E,i,I,K) = {
280+ let F = ((100 * 1000) * 1000)
281+ let by = (B + C)
282+ if (isDefined(getString(ab())))
343283 then throw("already initialized")
344- else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(bW.caller)))
284+ else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(bv.caller)))
345285 then throw("not authorized")
346- else if ((size(bW.payments) != 1))
286+ else if ((size(bv.payments) != 1))
347287 then throw("exactly 1 payment must be attached")
348- else if ((bZ >= F))
288+ else if ((by >= D))
349289 then throw("claimStart must be greater than idoEnd")
350290 else {
351- let ca = value(bW.payments[0])
352- let ba = value(ca.assetId)
353- let cb = valueOrErrorMessage(assetInfo(ba), "fail to load ido asset info")
354- let I = toBase58String(ba)
355- let J = pow(10, 0, cb.decimals, 0, 0, DOWN)
356- let bb = fromBase58String(K)
357- let cc = valueOrErrorMessage(assetInfo(bb), "fail to load price asset info")
358- let L = pow(10, 0, cc.decimals, 0, 0, DOWN)
359- let cd = aE()
360- let ce = [0, 0, 0, 0]
361-[StringEntry(ad(), O(D, E, F, G, k, H, I, J, K, L, M, ca.amount)), aL(ag(), cd, ce, F)]
291+ let bz = value(bv.payments[0])
292+ let ba = value(bz.assetId)
293+ let bA = valueOrErrorMessage(assetInfo(ba), "fail to load ido asset info")
294+ let G = toBase58String(ba)
295+ let H = pow(10, 0, bA.decimals, 0, 0, DOWN)
296+ let bb = fromBase58String(I)
297+ let bB = valueOrErrorMessage(assetInfo(bb), "fail to load price asset info")
298+ let J = pow(10, 0, bB.decimals, 0, 0, DOWN)
299+ let bC = aE()
300+ let bD = [0, 0, 0, 0]
301+[StringEntry(ab(), M(B, C, D, E, i, F, G, H, I, J, K, bz.amount)), aL(ae(), bC, bD, D)]
362302 }
363303 }
364304
365305
366306
367-@Callable(bW)
307+@Callable(bv)
368308 func invest () = {
369309 let aY = aB()
310+ let B = parseIntValue(aY[p])
311+ let C = parseIntValue(aY[q])
312+ let by = (B + C)
370313 let D = parseIntValue(aY[r])
371314 let E = parseIntValue(aY[s])
372- let bZ = (D + E)
373- let F = parseIntValue(aY[t])
374- let G = parseIntValue(aY[u])
375- let k = parseIntValue(aY[v])
315+ let i = parseIntValue(aY[t])
316+ let F = parseIntValue(aY[u])
317+ let G = aY[v]
318+ let ba = fromBase58String(G)
376319 let H = parseIntValue(aY[w])
377320 let I = aY[x]
378- let ba = fromBase58String(I)
321+ let bb = fromBase58String(I)
379322 let J = parseIntValue(aY[y])
380- let K = aY[z]
381- let bb = fromBase58String(K)
382- let L = parseIntValue(aY[A])
383- let cf = parseIntValue(aY[B])
384- let af = toString(bW.caller)
385- if ((D > height))
323+ let bE = parseIntValue(aY[z])
324+ let ad = toString(bv.caller)
325+ if ((B > height))
386326 then throw("ido has not been started yet")
387- else if ((height > bZ))
327+ else if ((height > by))
388328 then throw("ido has been already ended")
389- else if ((size(bW.payments) != 1))
329+ else if ((size(bv.payments) != 1))
390330 then throw("exactly 1 payment is expected")
391331 else {
392- let ca = value(bW.payments[0])
393- let cg = value(ca.assetId)
394- let ch = ca.amount
395- if ((cg != bb))
396- then throw((("invalid payment asset id: " + toBase58String(cg)) + " is expected"))
332+ let bz = value(bv.payments[0])
333+ let bF = value(bz.assetId)
334+ let bG = bz.amount
335+ if ((bF != bb))
336+ then throw((("invalid payment asset id: " + toBase58String(bF)) + " is expected"))
397337 else {
398- let ci = aF(af)
399- let cd = aE()
400- let cj = (parseIntValue(cd[P]) + ch)
401- let ck = (cj * 100)
402- if ((ck > assetBalance(this, ba)))
338+ let bH = aF(ad)
339+ let bC = aE()
340+ let bI = (parseIntValue(bC[N]) + bG)
341+ let bJ = (bI * 100)
342+ if ((bJ > assetBalance(this, ba)))
403343 then throw("IDO asset has been - sold consider to use smaller payment")
404344 else {
405- let ce = [ch, ch, 0, 0]
406-[aL(ae(af), ci, ce, F), aL(ag(), cd, ce, F), aT(af, ch, 0, bW.transactionId)]
345+ let bD = [bG, bG, 0, 0]
346+[aL(ac(ad), bH, bD, D), aL(ae(), bC, bD, D), aT(ad, bG, 0, bv.transactionId)]
407347 }
408348 }
409349 }
410350 }
411351
412352
413353
414-@Callable(bW)
354+@Callable(bv)
415355 func claim (aX,bc) = {
416- let cl = toString(bW.caller)
417- if ((bc != cl))
418- then f("not authorized")
356+ let bK = toString(bv.caller)
357+ if ((bc != bK))
358+ then throw("not authorized")
419359 else {
420- let bb = aB()[z]
421- let cm = aW(aX, bW.caller, bW.transactionId)
422- let ce = cm._1
423- let cn = cm._2
424- let co = cm._3
425- let bd = cm._4
426- let bh = cm._5
427- let cp = cm._6
428- let bu = cp[0]
429- let bA = cp[1]
430- let bB = cp[2]
431- let bj = cp[3]
432- let cq = cp[4]
433- let cr = cp[5]
434- let cs = cp[6]
435- let bF = cp[7]
436- let ct = cp[8]
437- let cu = cp[9]
438- let bq = [if (if ((bj > 0))
439- then true
440- else (cq > 0))
441- then true
442- else f("nothing to claim"), if ((cr > 0))
443- then true
444- else f("unavailable to claim because user period allowance reached"), if ((cs > 0))
445- then true
446- else f("unavailable to claim because total period allowance reached")]
447- if ((bq == bq))
360+ let aY = aB()
361+ let I = aY[x]
362+ let bL = aW(aX, bv.caller, bv.transactionId)
363+ let bD = bL._1
364+ let bM = bL._2
365+ let bN = bL._3
366+ let bd = bL._4
367+ let bh = bL._5
368+ let bO = bD[aJ]
369+ let bP = bD[aK]
370+ let bQ = if ((aX == I))
448371 then {
449- let cv = ce[aJ]
450- let cw = ce[aK]
451- let cx = (cs - cv)
452- let cy = (cr - cv)
453- $Tuple2([ScriptTransfer(bW.caller, cn, co), aL(ae(bc), bd, ce, bh), aL(ag(), aE(), ce, bh), IntegerEntry(an(), bu), IntegerEntry(ao(bu), bA), IntegerEntry(aq(bu), bB), IntegerEntry(av(bb, bu), cx), IntegerEntry(aw(bb, bu, bc), cy), aV(bc, cv, cw, bW.transactionId)], unit)
372+ let bR = value(getInteger(aq(I)))
373+ let bS = value(getInteger(as(I)))
374+ let bT = value(getInteger(ak()))
375+ let bU = valueOrElse(getInteger(al()), 0)
376+ let bV = if ((bU > 0))
377+ then {
378+ let bW = value(getInteger(am((bU - 1))))
379+ let bX = value(getInteger(ao((bU - 1))))
380+ let bY = if ((height > bX))
381+ then {
382+ let bZ = (bU + 1)
383+ let ca = (bX + 1)
384+ let cb = ((ca + bT) - 1)
385+ $Tuple3(bZ, ca, cb)
386+ }
387+ else $Tuple3(bU, bW, bX)
388+ let bZ = bY._1
389+ let ca = bY._2
390+ let cb = bY._3
391+ $Tuple3(bZ, ca, cb)
392+ }
393+ else $Tuple3(bU, valueOrElse(getInteger(am(bU)), height), valueOrElse(getInteger(ao(bU)), ((height + bT) - 1)))
394+ let bZ = bV._1
395+ let ca = bV._2
396+ let cb = bV._3
397+ let cc = valueOrElse(getInteger(at(I, bZ)), bR)
398+ let cd = valueOrElse(getInteger(au(I, bZ, bc)), bS)
399+ let ce = min([bM, cc, cd])
400+ let cf = bD[P]
401+ let cg = value(getInteger(ap()))
402+ let ch = e
403+ let ci = {
404+ let cj = invoke(addressFromStringValue(value(getString(av()))), "putOneTknV2WithoutTakeFeeREADONLY", [ch, I], nil)
405+ if ($isInstanceOf(cj, "(Int, Int, Int)"))
406+ then cj
407+ else throw("Couldn't cast Any to (Int, Int, Int)")
408+ }
409+ if ((ci == ci))
410+ then {
411+ let ck = ci._3
412+ let cl = ci._2
413+ let cm = ci._1
414+ let cn = value(getString(aw()))
415+ let co = {
416+ let cj = invoke(addressFromStringValue(value(getString(av()))), "getOneTknV2READONLY", [cn, cm], nil)
417+ if ($isInstanceOf(cj, "(Int, Int)"))
418+ then cj
419+ else throw("Couldn't cast Any to (Int, Int)")
420+ }
421+ if ((co == co))
422+ then {
423+ let cp = co._2
424+ let cq = co._1
425+ let cr = fraction(cq, ch, e)
426+ let cs = (cb - height)
427+ let ct = valueOrElse(getInteger(ax(bc)), 0)
428+ let cu = (cc - ce)
429+ let cv = (cd - ce)
430+ let bQ = if ((ct >= ce))
431+ then [ScriptTransfer(bv.caller, ce, bN), IntegerEntry(ax(bc), (ct - ce))]
432+ else {
433+ let cw = ((ct + bM) - ce)
434+[ScriptTransfer(bv.caller, ce, bN), aL(ac(bc), bd, bD, bh), aL(ae(), aE(), bD, bh), IntegerEntry(ax(bc), cw)]
435+ }
436+ $Tuple2(([IntegerEntry(al(), bU), IntegerEntry(am(bU), ca), IntegerEntry(ao(bU), cb), IntegerEntry(at(I, bU), cu), IntegerEntry(au(I, bU, bc), cv), aV(bc, bO, bP, bv.transactionId)] ++ bQ), unit)
437+ }
438+ else throw("Strict value is not equal to itself.")
439+ }
440+ else throw("Strict value is not equal to itself.")
454441 }
455- else throw("Strict value is not equal to itself.")
442+ else $Tuple2([ScriptTransfer(bv.caller, bM, bN), aL(ac(bc), bd, bD, bh), aL(ae(), aE(), bD, bh), aV(bc, bO, bP, bv.transactionId)], unit)
443+ bQ
456444 }
457445 }
458446
459447
460448
461-@Callable(bW)
449+@Callable(bv)
462450 func claimREADONLY (aX,bc) = {
463- let cm = aW(aX, addressFromStringValue(bc), fromBase58String(""))
464- let ce = cm._1
465- let cn = cm._2
466- let co = cm._3
467- let bd = cm._4
468- let bh = cm._5
469- let cp = cm._6
470- let cz = cp[4]
471- let cA = cp[5]
472- $Tuple2(nil, makeString(["%s%d%d", bc, toString(cA), toString(cz)], c))
451+ let bL = aW(aX, addressFromStringValue(bc), fromBase58String(""))
452+ let bD = bL._1
453+ let bM = bL._2
454+ let bN = bL._3
455+ let bd = bL._4
456+ let bh = bL._5
457+ let cx = bL._6
458+ let cy = cx[0]
459+ let cz = cx[1]
460+ $Tuple2(nil, makeString(["%s%d%d", bc, toString(cy), toString(cz)], c))
473461 }
474462
475463
476464
477-@Callable(bW)
478-func claimV2READONLY (aX,bc) = {
479- let cm = aW(aX, addressFromStringValue(bc), fromBase58String(""))
480- let ce = cm._1
481- let cn = cm._2
482- let co = cm._3
483- let bd = cm._4
484- let bh = cm._5
485- let cp = cm._6
486- let bu = cp[0]
487- let bA = cp[1]
488- let bB = cp[2]
489- let bj = cp[3]
490- let cq = cp[4]
491- let cr = cp[5]
492- let cs = cp[6]
493- let bF = cp[7]
494- let ct = cp[8]
495- let cu = cp[9]
496- let cB = makeString(["%d%d%d%d%d%d%d", toString(bj), toString(cq), toString(cr), toString(cs), toString(bF), toString(ct), toString(cu)], c)
497- $Tuple2(nil, cB)
498- }
499-
500-
501-
502-@Callable(bW)
503-func setManager (cC) = {
504- let cD = bV(bW)
505- if ((cD == cD))
465+@Callable(bv)
466+func setManager (cA) = {
467+ let cB = bu(bv)
468+ if ((cB == cB))
506469 then {
507- let cE = fromBase58String(cC)
508- if ((cE == cE))
509- then [StringEntry(aA(), cC)]
470+ let cC = fromBase58String(cA)
471+ if ((cC == cC))
472+ then [StringEntry(aA(), cA)]
510473 else throw("Strict value is not equal to itself.")
511474 }
512475 else throw("Strict value is not equal to itself.")
513476 }
514477
515478
516479
517-@Callable(bW)
480+@Callable(bv)
518481 func confirmManager () = {
519- let cF = bU()
520- let cG = if (isDefined(cF))
482+ let cD = bt()
483+ let cE = if (isDefined(cD))
521484 then true
522485 else throw("No pending manager")
523- if ((cG == cG))
486+ if ((cE == cE))
524487 then {
525- let cH = if ((bW.callerPublicKey == value(cF)))
488+ let cF = if ((bv.callerPublicKey == value(cD)))
526489 then true
527490 else throw("You are not pending manager")
528- if ((cH == cH))
529- then [StringEntry(az(), toBase58String(value(cF))), DeleteEntry(aA())]
491+ if ((cF == cF))
492+ then [StringEntry(az(), toBase58String(value(cD))), DeleteEntry(aA())]
530493 else throw("Strict value is not equal to itself.")
531494 }
532495 else throw("Strict value is not equal to itself.")
533496 }
534497
535498
536-@Verifier(cI)
537-func cJ () = {
538- let cK = {
539- let bo = bS()
499+@Verifier(cG)
500+func cH () = {
501+ let cI = {
502+ let bo = br()
540503 if ($isInstanceOf(bo, "ByteVector"))
541504 then {
542- let bY = bo
543- bY
505+ let bx = bo
506+ bx
544507 }
545508 else if ($isInstanceOf(bo, "Unit"))
546- then cI.senderPublicKey
509+ then cG.senderPublicKey
547510 else throw("Match error")
548511 }
549- sigVerify(cI.bodyBytes, cI.proofs[0], cK)
512+ sigVerify(cG.bodyBytes, cG.proofs[0], cI)
550513 }
551514

github/deemru/w8io/026f985 
147.06 ms