tx · 3ZQ1FzYhuRtanVvCLvTZDi35rzHSoJHjvUjeH9Ruzexd 3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv: -0.01700000 Waves 2022.11.02 16:18 [2299542] smart account 3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv > SELF 0.00000000 Waves
{ "type": 13, "id": "3ZQ1FzYhuRtanVvCLvTZDi35rzHSoJHjvUjeH9Ruzexd", "fee": 1700000, "feeAssetId": null, "timestamp": 1667395089105, "version": 1, "sender": "3MvZpvvbmovEt3pvdDZKvhKRjjQxdbUD6Tv", "senderPublicKey": "39YkRD2qWXTcdNBr4CbDnm8g8SAB2FKVaDeGYahcFHHx", "proofs": [ "3gX6mitpNXTAQ5ZJ86NWAuCRFr5fAgVgfCXJUFu4NjXehJLJih5qCdkWf1QwM7JvJK6usAPbgbhGubc26zAynPgn" ], "script": "base64:AAIFAAAAAAAACcYIAhIJCgcBAQEBAQgBEgASBAoCCAgSBAoCCAgSAwoBCBIAIg9nZXRTdHJpbmdPckZhaWwiA2tleSIDU0VQIghCVUZTQ0FMRSIdY29udmVydFByaWNlQXNzZXRJbnRvSWRvQXNzZXQiEHByaWNlQXNzZXRBbW91bnQiDnByaWNlQXNzZXRNVUxUIgVwcmljZSIJcHJpY2VNVUxUIgxpZG9Bc3NldE1VTFQiD2JQcmljZUFzc2V0TVVMVCINYklkb0Fzc2V0TVVMVCIOYlByaWNlQXNzZXRCVUYiD2JBbW91bnRBc3NldEJVRiIOSWR4Q2ZnSWRvU3RhcnQiEUlkeENmZ0lkb0R1cmF0aW9uIhBJZHhDZmdDbGFpbVN0YXJ0IhNJZHhDZmdDbGFpbUR1cmF0aW9uIgtJZHhDZmdQcmljZSIPSWR4Q2ZnUHJpY2VNdWx0IhBJZHhDZmdJZG9Bc3NldElkIhJJZHhDZmdJZG9Bc3NldE11bHQiEklkeENmZ1ByaWNlQXNzZXRJZCIUSWR4Q2ZnUHJpY2VBc3NldE11bHQiFUlkeENmZ01pbkludmVzdEFtb3VudCINZnJvbWF0Q29uZmlnUyIIaWRvU3RhcnQiC2lkb0R1cmF0aW9uIgpjbGFpbVN0YXJ0Ig1jbGFpbUR1cmF0aW9uIglwcmljZU11bHQiDGlkb0Fzc2V0SWQ1OCIMaWRvQXNzZXRNdWx0Ig5wcmljZUFzc2V0SWQ1OCIOcHJpY2VBc3NldE11bHQiD21pbkludmVzdEFtb3VudCITdG90YWxJZG9Bc3NldFRvU2VsbCIMZnJvbWF0Q29uZmlnIhFJZHhJbnZUb3RhbEFtb3VudCIVSWR4SW52UmVtYWluaW5nQW1vdW50Ih1JZHhJbnZDbGFpbWVkUHJpY2VBc3NldEFtb3VudCIbSWR4SW52Q2xhaW1lZElkb0Fzc2V0QW1vdW50IhdJZHhJbnZMYXN0Q2xhaW1lZEhlaWdodCIPZm9ybWF0SW52ZXN0b3JTIgt0b3RhbEFtb3VudCIPcmVtYWluaW5nQW1vdW50IhdjbGFpbWVkUHJpY2VBc3NldEFtb3VudCIVY2xhaW1lZElkb0Fzc2V0QW1vdW50IhFsYXN0Q2xhaW1lZEhlaWdodCIOZm9ybWF0SW52ZXN0b3IiE2Zvcm1hdEhpc3RvcnlSZWNvcmQiDmlkb0Fzc2V0QW1vdW50IglrZXlDb25maWciC2tleUludmVzdG9yIgt1c2VyQWRkcmVzcyIJa2V5VG90YWxzIhlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkIgR0eXBlIgZ0eElkNTgiFGtleVVTRE5DbGFpbURpc2FibGVkIhVrZXlVU0ROQ2xhaW1FbmRIZWlnaHQiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9yZWFkQ29uZmlnQXJyYXkiI3JlYWRUb3RhbHNBcnJheU9yRGVmYXVsdEJ5Q3VzdG9tS2V5IgljdXN0b21LZXkiGHJlYWRUb3RhbHNBcnJheU9yRGVmYXVsdCIacmVhZEludmVzdG9yQXJyYXlPckRlZmF1bHQiF3JlYWRJbnZlc3RvckFycmF5T3JGYWlsIhVJZHhEaWZmVG90YWxJbmNyZW1lbnQiJElkeERpZmZSZW1haW5pbmdQcmljZUFtb3VudEluY3JlbWVudCIiSWR4RGlmZkNsYWltZWRQcmljZUFtb3VudEluY3JlbWVudCIlSWR4RGlmZkNsYWltZWRJZG9Bc3NldEFtb3VudEluY3JlbWVudCILVG90YWxzRW50cnkiCW9yaWdBcnJheSINaW5jcmVtZW50RGlmZiIUbmV3TGFzdENsYWltZWRIZWlnaHQiDm5ld1RvdGFsQW1vdW50IhJuZXdSZW1haW5pbmdBbW91bnQiGm5ld0NsYWltZWRQcmljZUFzc2V0QW1vdW50IhhuZXdDbGFpbWVkSWRvQXNzZXRBbW91bnQiG0ludmVzdE9wZXJhdGlvbkhpc3RvcnlFbnRyeSIEdHhJZCIaQ2xhaW1PcGVyYXRpb25IaXN0b3J5RW50cnkiDWludGVybmFsQ2xhaW0iEGNsYWltZWRBc3NldElkNTgiCGNmZ0FycmF5IghjbGFpbUVuZCIKaWRvQXNzZXRJZCIMcHJpY2VBc3NldElkIg11c2VyQWRkcmVzczU4Ig9vcmlnSW52ZXN0QXJyYXkiEWludmVzdFRvdGFsQW1vdW50IhppbnZlc3RMYXN0Q2xhaW1lZEhlaWdodFRNUCIXaW52ZXN0TGFzdENsYWltZWRIZWlnaHQiFG5ld0NsYWltUGVyaW9kSGVpZ2h0Ig5jbGFpbWluZ0Jsb2NrcyIYY2xhaW1pbmdQcmljZUFzc2V0QW1vdW50IhZjbGFpbWluZ0lkb0Fzc2V0QW1vdW50IgZpc1VTRE4iE2lzVVNETkNsYWltRGlzYWJsZWQiEGlzVVNETkNsYWltRW5kZWQiByRtYXRjaDAiA2VuZCIGY2hlY2tzIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCILbXVzdE1hbmFnZXIiAWkiAnBkIgJwayIGaWRvRW5kIgNwbXQiDGlkb0Fzc2V0SW5mbyIOcHJpY2VBc3NldEluZm8iD29yaWdUb3RhbHNBcnJheSIKdG90YWxzRGlmZiIObWluSXZlc3RBbW91bnQiCnBtdEFzc2V0SWQiCXBtdEFtb3VudCIRb3JpZ0ludmVzdG9yQXJyYXkiE25ld1ByaWNlVG90YWxBbW91bnQiFnJlcXVpcmVkSWRvQXNzZXRBbW91bnQiD2NhbGxlckFkZHJlc3M1OCIQY2xhaW1SZXN1bHRUdXBsZSIJb3V0QW1vdW50IgpvdXRBc3NldElkIhpjbGFpbWVkUHJpY2VBbW91bnRGcm9tRGlmZiIdY2xhaW1lZElkb0Fzc2V0QW1vdW50RnJvbURpZmYiFWF2YWlsYWJsZVRvQ2xhaW1BcnJheSIbYXZhaWxhYmxlUHJpY2VBbW91bnRUb0NsYWltIhlhdmFpbGFibGVJZG9BbW91bnRUb0NsYWltIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkAAAAxAQAAAAFhAAAAAQAAAAFiCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQUAAAABYgkAASwAAAACCQABLAAAAAICAAAAD21hbmRhdG9yeSB0aGlzLgUAAAABYgIAAAAPIGlzIG5vdCBkZWZpbmVkAAAAAAFjAgAAAAJfXwAAAAABZAkAATYAAAABAA3gtrOnZAAAAQAAAAFlAAAABQAAAAFmAAAAAWcAAAABaAAA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", "chainId": 84, "height": 2299542, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7npvjwSRh6LG5mXgESqSSetbVn28p92CmpgdhvJHSmFM Next: 323EnozLCPpZvFjr36yYGRNmqhJFwZPD8TsDfZ3ZZnsd Diff:
Old | New | Differences | |
---|---|---|---|
8 | 8 | ||
9 | 9 | let d = toBigInt(1000000000000000000) | |
10 | 10 | ||
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)) | |
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)) | |
22 | 17 | } | |
23 | 18 | ||
24 | 19 | ||
25 | - | let | |
20 | + | let o = 1 | |
26 | 21 | ||
27 | - | let | |
22 | + | let p = 2 | |
28 | 23 | ||
29 | - | let | |
24 | + | let q = 3 | |
30 | 25 | ||
31 | - | let | |
26 | + | let r = 4 | |
32 | 27 | ||
33 | - | let | |
28 | + | let s = 5 | |
34 | 29 | ||
35 | - | let | |
30 | + | let t = 6 | |
36 | 31 | ||
37 | - | let | |
32 | + | let u = 7 | |
38 | 33 | ||
39 | - | let | |
34 | + | let v = 8 | |
40 | 35 | ||
41 | - | let | |
36 | + | let w = 9 | |
42 | 37 | ||
43 | - | let | |
38 | + | let x = 10 | |
44 | 39 | ||
45 | - | let | |
40 | + | let y = 11 | |
46 | 41 | ||
47 | - | func | |
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) | |
48 | 43 | ||
49 | 44 | ||
50 | - | func | |
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)) | |
51 | 46 | ||
52 | 47 | ||
53 | - | let | |
48 | + | let M = 1 | |
54 | 49 | ||
55 | - | let | |
50 | + | let N = 2 | |
56 | 51 | ||
57 | - | let | |
52 | + | let O = 3 | |
58 | 53 | ||
59 | - | let | |
54 | + | let P = 4 | |
60 | 55 | ||
61 | - | let | |
56 | + | let Q = 5 | |
62 | 57 | ||
63 | - | func | |
58 | + | func R (S,T,U,V,W) = makeString(["%d%d%d%d%d", S, T, U, V, W], c) | |
64 | 59 | ||
65 | 60 | ||
66 | - | func | |
61 | + | func X (S,T,U,V,W) = R(toString(S), toString(T), toString(U), toString(V), toString(W)) | |
67 | 62 | ||
68 | 63 | ||
69 | - | func | |
64 | + | func Y (f,Z) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(f), toString(Z)], c) | |
70 | 65 | ||
71 | 66 | ||
72 | - | func | |
67 | + | func aa () = "%s__config" | |
73 | 68 | ||
74 | 69 | ||
75 | - | func | |
70 | + | func ab (ac) = ("%s__" + ac) | |
76 | 71 | ||
77 | 72 | ||
78 | - | func | |
73 | + | func ad () = "%s__totals" | |
79 | 74 | ||
80 | 75 | ||
81 | - | func | |
76 | + | func ae (af,ac,ag) = makeString(["%s%s%s%s__history", af, ac, ag], c) | |
82 | 77 | ||
83 | 78 | ||
84 | - | func | |
79 | + | func ah () = "%s__usdnClaimDisabled" | |
85 | 80 | ||
86 | 81 | ||
87 | - | func | |
82 | + | func ai () = "%s__usdnClaimEndHeight" | |
88 | 83 | ||
89 | 84 | ||
90 | - | func | |
85 | + | func aj () = "%s__managerPublicKey" | |
91 | 86 | ||
92 | 87 | ||
93 | - | func | |
88 | + | func ak () = "%s__pendingManagerPublicKey" | |
94 | 89 | ||
95 | 90 | ||
96 | - | func | |
91 | + | func al () = split(a(aa()), c) | |
97 | 92 | ||
98 | 93 | ||
99 | - | func | |
94 | + | func am (an) = split(valueOrElse(getString(an), R("0", "0", "0", "0", "0")), c) | |
100 | 95 | ||
101 | 96 | ||
102 | - | func | |
97 | + | func ao () = am(ad()) | |
103 | 98 | ||
104 | 99 | ||
105 | - | func | |
100 | + | func ap (ac) = am(ab(ac)) | |
106 | 101 | ||
107 | 102 | ||
108 | - | func | |
103 | + | func aq (ac) = split(a(ab(ac)), c) | |
109 | 104 | ||
110 | 105 | ||
111 | - | ||
106 | + | let ar = 0 | |
112 | 107 | ||
108 | + | let as = 1 | |
113 | 109 | ||
114 | - | ||
110 | + | let at = 2 | |
115 | 111 | ||
112 | + | let au = 3 | |
116 | 113 | ||
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)) | |
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)) | |
163 | 125 | then throw("invalid math") | |
164 | - | else StringEntry(b, | |
126 | + | else StringEntry(b, X(az, aA, aB, aC, ay)) | |
165 | 127 | } | |
166 | 128 | ||
167 | 129 | ||
168 | - | func | |
130 | + | func aD (ac,f,Z,aE) = StringEntry(ae("invest", ac, toBase58String(aE)), Y(f, Z)) | |
169 | 131 | ||
170 | 132 | ||
171 | - | func | |
133 | + | func aF (ac,f,Z,aE) = StringEntry(ae("claim", ac, toBase58String(aE)), Y(f, Z)) | |
172 | 134 | ||
173 | 135 | ||
174 | - | func | |
175 | - | let | |
176 | - | let | |
177 | - | let | |
178 | - | let | |
179 | - | let | |
180 | - | let | |
181 | - | let | |
182 | - | let | |
183 | - | let | |
184 | - | let | |
185 | - | let | |
186 | - | let | |
187 | - | let | |
188 | - | let | |
189 | - | let | |
190 | - | let | |
191 | - | let | |
192 | - | then | |
193 | - | else | |
194 | - | let | |
195 | - | then | |
196 | - | else if (( | |
197 | - | then | |
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 | |
198 | 160 | else height | |
199 | - | let | |
200 | - | let | |
201 | - | let | |
202 | - | let | |
203 | - | let | |
204 | - | let | |
205 | - | let | |
206 | - | if ($isInstanceOf( | |
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")) | |
207 | 169 | then { | |
208 | - | let | |
209 | - | (height > | |
170 | + | let aZ = aY | |
171 | + | (height > aZ) | |
210 | 172 | } | |
211 | - | else if ($isInstanceOf( | |
173 | + | else if ($isInstanceOf(aY, "Unit")) | |
212 | 174 | then false | |
213 | 175 | else throw("Match error") | |
214 | 176 | } | |
215 | - | let | |
216 | - | then | |
177 | + | let ba = [if (!(if (aV) | |
178 | + | then aW | |
217 | 179 | else false)) | |
218 | 180 | then true | |
219 | - | else | |
220 | - | then | |
181 | + | else throw("USDN claim is disabled"), if (!(if (aV) | |
182 | + | then aX | |
221 | 183 | else false)) | |
222 | 184 | then true | |
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 = 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 | - | } | |
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)) | |
290 | 192 | else throw("Strict value is not equal to itself.") | |
291 | 193 | } | |
292 | 194 | ||
293 | 195 | ||
294 | - | func | |
295 | - | let | |
296 | - | if ($isInstanceOf( | |
196 | + | func bb () = { | |
197 | + | let aY = getString(aj()) | |
198 | + | if ($isInstanceOf(aY, "String")) | |
297 | 199 | then { | |
298 | - | let | |
299 | - | fromBase58String( | |
200 | + | let bc = aY | |
201 | + | fromBase58String(bc) | |
300 | 202 | } | |
301 | - | else if ($isInstanceOf( | |
203 | + | else if ($isInstanceOf(aY, "Unit")) | |
302 | 204 | then unit | |
303 | 205 | else throw("Match error") | |
304 | 206 | } | |
305 | 207 | ||
306 | 208 | ||
307 | - | func | |
308 | - | let | |
309 | - | if ($isInstanceOf( | |
209 | + | func bd () = { | |
210 | + | let aY = getString(ak()) | |
211 | + | if ($isInstanceOf(aY, "String")) | |
310 | 212 | then { | |
311 | - | let | |
312 | - | fromBase58String( | |
213 | + | let bc = aY | |
214 | + | fromBase58String(bc) | |
313 | 215 | } | |
314 | - | else if ($isInstanceOf( | |
216 | + | else if ($isInstanceOf(aY, "Unit")) | |
315 | 217 | then unit | |
316 | 218 | else throw("Match error") | |
317 | 219 | } | |
318 | 220 | ||
319 | 221 | ||
320 | - | func | |
321 | - | let | |
322 | - | let | |
323 | - | if ($isInstanceOf( | |
222 | + | func be (bf) = { | |
223 | + | let bg = throw("Permission denied") | |
224 | + | let aY = bb() | |
225 | + | if ($isInstanceOf(aY, "ByteVector")) | |
324 | 226 | then { | |
325 | - | let | |
326 | - | if (( | |
227 | + | let bh = aY | |
228 | + | if ((bf.callerPublicKey == bh)) | |
327 | 229 | then true | |
328 | - | else | |
230 | + | else bg | |
329 | 231 | } | |
330 | - | else if ($isInstanceOf( | |
331 | - | then if (( | |
232 | + | else if ($isInstanceOf(aY, "Unit")) | |
233 | + | then if ((bf.caller == this)) | |
332 | 234 | then true | |
333 | - | else | |
235 | + | else bg | |
334 | 236 | else throw("Match error") | |
335 | 237 | } | |
336 | 238 | ||
337 | 239 | ||
338 | - | @Callable( | |
339 | - | func constructor (D, | |
340 | - | let | |
341 | - | let | |
342 | - | if (isDefined(getString( | |
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()))) | |
343 | 245 | then throw("already initialized") | |
344 | - | else if ((" | |
246 | + | else if (("3N4nTJ5sSp5X5ChS2bBBmwNMn1eeRzT1FoP" != toString(bf.caller))) | |
345 | 247 | then throw("not authorized") | |
346 | - | else if ((size( | |
248 | + | else if ((size(bf.payments) != 1)) | |
347 | 249 | then throw("exactly 1 payment must be attached") | |
348 | - | else if (( | |
250 | + | else if ((bi >= C)) | |
349 | 251 | then throw("claimStart must be greater than idoEnd") | |
350 | 252 | else { | |
351 | - | let | |
352 | - | let | |
353 | - | let | |
354 | - | let | |
355 | - | let | |
356 | - | let | |
357 | - | let | |
358 | - | let | |
359 | - | let | |
360 | - | let | |
361 | - | [StringEntry( | |
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)] | |
362 | 264 | } | |
363 | 265 | } | |
364 | 266 | ||
365 | 267 | ||
366 | 268 | ||
367 | - | @Callable( | |
269 | + | @Callable(bf) | |
368 | 270 | func invest () = { | |
369 | - | let | |
370 | - | let | |
371 | - | let | |
372 | - | let | |
373 | - | let | |
374 | - | let | |
375 | - | let | |
376 | - | let | |
377 | - | let | |
378 | - | let | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
382 | - | let | |
383 | - | let | |
384 | - | let | |
385 | - | if (( | |
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)) | |
386 | 288 | then throw("ido has not been started yet") | |
387 | - | else if ((height > | |
289 | + | else if ((height > bi)) | |
388 | 290 | then throw("ido has been already ended") | |
389 | - | else if ((size( | |
291 | + | else if ((size(bf.payments) != 1)) | |
390 | 292 | then throw("exactly 1 payment is expected") | |
391 | 293 | else { | |
392 | - | let | |
393 | - | let | |
394 | - | let | |
395 | - | if (( | |
396 | - | then throw((("invalid payment asset id: " + toBase58String( | |
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")) | |
397 | 299 | else { | |
398 | - | let | |
399 | - | let | |
400 | - | let | |
401 | - | let | |
402 | - | if (( | |
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))) | |
403 | 305 | then throw("IDO asset has been - sold consider to use smaller payment") | |
404 | 306 | else { | |
405 | - | let | |
406 | - | [ | |
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)] | |
407 | 309 | } | |
408 | 310 | } | |
409 | 311 | } | |
411 | 313 | ||
412 | 314 | ||
413 | 315 | ||
414 | - | @Callable( | |
415 | - | func claim ( | |
416 | - | let | |
417 | - | if (( | |
418 | - | then | |
316 | + | @Callable(bf) | |
317 | + | func claim (aH,aM) = { | |
318 | + | let bu = toString(bf.caller) | |
319 | + | if ((aM != bu)) | |
320 | + | then throw("not authorized") | |
419 | 321 | 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)) | |
448 | - | 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) | |
454 | - | } | |
455 | - | else throw("Strict value is not equal to itself.") | |
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) | |
456 | 331 | } | |
457 | 332 | } | |
458 | 333 | ||
459 | 334 | ||
460 | 335 | ||
461 | - | @Callable( | |
462 | - | func claimREADONLY ( | |
463 | - | let | |
464 | - | let | |
465 | - | let | |
466 | - | let | |
467 | - | let | |
468 | - | let | |
469 | - | let | |
470 | - | let | |
471 | - | let | |
472 | - | $Tuple2(nil, makeString(["%s%d%d", | |
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)) | |
473 | 348 | } | |
474 | 349 | ||
475 | 350 | ||
476 | 351 | ||
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)) | |
352 | + | @Callable(bf) | |
353 | + | func setManager (bD) = { | |
354 | + | let bE = be(bf) | |
355 | + | if ((bE == bE)) | |
506 | 356 | then { | |
507 | - | let | |
508 | - | if (( | |
509 | - | then [StringEntry( | |
357 | + | let bF = fromBase58String(bD) | |
358 | + | if ((bF == bF)) | |
359 | + | then [StringEntry(ak(), bD)] | |
510 | 360 | else throw("Strict value is not equal to itself.") | |
511 | 361 | } | |
512 | 362 | else throw("Strict value is not equal to itself.") | |
514 | 364 | ||
515 | 365 | ||
516 | 366 | ||
517 | - | @Callable( | |
367 | + | @Callable(bf) | |
518 | 368 | func confirmManager () = { | |
519 | - | let | |
520 | - | let | |
369 | + | let bG = bd() | |
370 | + | let bH = if (isDefined(bG)) | |
521 | 371 | then true | |
522 | 372 | else throw("No pending manager") | |
523 | - | if (( | |
373 | + | if ((bH == bH)) | |
524 | 374 | then { | |
525 | - | let | |
375 | + | let bI = if ((bf.callerPublicKey == value(bG))) | |
526 | 376 | then true | |
527 | 377 | else throw("You are not pending manager") | |
528 | - | if (( | |
529 | - | then [StringEntry( | |
378 | + | if ((bI == bI)) | |
379 | + | then [StringEntry(aj(), toBase58String(value(bG))), DeleteEntry(ak())] | |
530 | 380 | else throw("Strict value is not equal to itself.") | |
531 | 381 | } | |
532 | 382 | else throw("Strict value is not equal to itself.") | |
533 | 383 | } | |
534 | 384 | ||
535 | 385 | ||
536 | - | @Verifier( | |
537 | - | func | |
538 | - | let | |
539 | - | let | |
540 | - | if ($isInstanceOf( | |
386 | + | @Verifier(bJ) | |
387 | + | func bK () = { | |
388 | + | let bL = { | |
389 | + | let aY = bb() | |
390 | + | if ($isInstanceOf(aY, "ByteVector")) | |
541 | 391 | then { | |
542 | - | let | |
543 | - | | |
392 | + | let bh = aY | |
393 | + | bh | |
544 | 394 | } | |
545 | - | else if ($isInstanceOf( | |
546 | - | then | |
395 | + | else if ($isInstanceOf(aY, "Unit")) | |
396 | + | then bJ.senderPublicKey | |
547 | 397 | else throw("Match error") | |
548 | 398 | } | |
549 | - | sigVerify( | |
399 | + | sigVerify(bJ.bodyBytes, bJ.proofs[0], bL) | |
550 | 400 | } | |
551 | 401 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b) = valueOrErrorMessage(getString(b), (("mandatory this." + b) + " is not defined")) | |
5 | 5 | ||
6 | 6 | ||
7 | 7 | let c = "__" | |
8 | 8 | ||
9 | 9 | let d = toBigInt(1000000000000000000) | |
10 | 10 | ||
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)) | |
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)) | |
22 | 17 | } | |
23 | 18 | ||
24 | 19 | ||
25 | - | let | |
20 | + | let o = 1 | |
26 | 21 | ||
27 | - | let | |
22 | + | let p = 2 | |
28 | 23 | ||
29 | - | let | |
24 | + | let q = 3 | |
30 | 25 | ||
31 | - | let | |
26 | + | let r = 4 | |
32 | 27 | ||
33 | - | let | |
28 | + | let s = 5 | |
34 | 29 | ||
35 | - | let | |
30 | + | let t = 6 | |
36 | 31 | ||
37 | - | let | |
32 | + | let u = 7 | |
38 | 33 | ||
39 | - | let | |
34 | + | let v = 8 | |
40 | 35 | ||
41 | - | let | |
36 | + | let w = 9 | |
42 | 37 | ||
43 | - | let | |
38 | + | let x = 10 | |
44 | 39 | ||
45 | - | let | |
40 | + | let y = 11 | |
46 | 41 | ||
47 | - | func | |
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) | |
48 | 43 | ||
49 | 44 | ||
50 | - | func | |
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)) | |
51 | 46 | ||
52 | 47 | ||
53 | - | let | |
48 | + | let M = 1 | |
54 | 49 | ||
55 | - | let | |
50 | + | let N = 2 | |
56 | 51 | ||
57 | - | let | |
52 | + | let O = 3 | |
58 | 53 | ||
59 | - | let | |
54 | + | let P = 4 | |
60 | 55 | ||
61 | - | let | |
56 | + | let Q = 5 | |
62 | 57 | ||
63 | - | func | |
58 | + | func R (S,T,U,V,W) = makeString(["%d%d%d%d%d", S, T, U, V, W], c) | |
64 | 59 | ||
65 | 60 | ||
66 | - | func | |
61 | + | func X (S,T,U,V,W) = R(toString(S), toString(T), toString(U), toString(V), toString(W)) | |
67 | 62 | ||
68 | 63 | ||
69 | - | func | |
64 | + | func Y (f,Z) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(f), toString(Z)], c) | |
70 | 65 | ||
71 | 66 | ||
72 | - | func | |
67 | + | func aa () = "%s__config" | |
73 | 68 | ||
74 | 69 | ||
75 | - | func | |
70 | + | func ab (ac) = ("%s__" + ac) | |
76 | 71 | ||
77 | 72 | ||
78 | - | func | |
73 | + | func ad () = "%s__totals" | |
79 | 74 | ||
80 | 75 | ||
81 | - | func | |
76 | + | func ae (af,ac,ag) = makeString(["%s%s%s%s__history", af, ac, ag], c) | |
82 | 77 | ||
83 | 78 | ||
84 | - | func | |
79 | + | func ah () = "%s__usdnClaimDisabled" | |
85 | 80 | ||
86 | 81 | ||
87 | - | func | |
82 | + | func ai () = "%s__usdnClaimEndHeight" | |
88 | 83 | ||
89 | 84 | ||
90 | - | func | |
85 | + | func aj () = "%s__managerPublicKey" | |
91 | 86 | ||
92 | 87 | ||
93 | - | func | |
88 | + | func ak () = "%s__pendingManagerPublicKey" | |
94 | 89 | ||
95 | 90 | ||
96 | - | func | |
91 | + | func al () = split(a(aa()), c) | |
97 | 92 | ||
98 | 93 | ||
99 | - | func | |
94 | + | func am (an) = split(valueOrElse(getString(an), R("0", "0", "0", "0", "0")), c) | |
100 | 95 | ||
101 | 96 | ||
102 | - | func | |
97 | + | func ao () = am(ad()) | |
103 | 98 | ||
104 | 99 | ||
105 | - | func | |
100 | + | func ap (ac) = am(ab(ac)) | |
106 | 101 | ||
107 | 102 | ||
108 | - | func | |
103 | + | func aq (ac) = split(a(ab(ac)), c) | |
109 | 104 | ||
110 | 105 | ||
111 | - | ||
106 | + | let ar = 0 | |
112 | 107 | ||
108 | + | let as = 1 | |
113 | 109 | ||
114 | - | ||
110 | + | let at = 2 | |
115 | 111 | ||
112 | + | let au = 3 | |
116 | 113 | ||
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)) | |
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)) | |
163 | 125 | then throw("invalid math") | |
164 | - | else StringEntry(b, | |
126 | + | else StringEntry(b, X(az, aA, aB, aC, ay)) | |
165 | 127 | } | |
166 | 128 | ||
167 | 129 | ||
168 | - | func | |
130 | + | func aD (ac,f,Z,aE) = StringEntry(ae("invest", ac, toBase58String(aE)), Y(f, Z)) | |
169 | 131 | ||
170 | 132 | ||
171 | - | func | |
133 | + | func aF (ac,f,Z,aE) = StringEntry(ae("claim", ac, toBase58String(aE)), Y(f, Z)) | |
172 | 134 | ||
173 | 135 | ||
174 | - | func | |
175 | - | let | |
176 | - | let | |
177 | - | let | |
178 | - | let | |
179 | - | let | |
180 | - | let | |
181 | - | let | |
182 | - | let | |
183 | - | let | |
184 | - | let | |
185 | - | let | |
186 | - | let | |
187 | - | let | |
188 | - | let | |
189 | - | let | |
190 | - | let | |
191 | - | let | |
192 | - | then | |
193 | - | else | |
194 | - | let | |
195 | - | then | |
196 | - | else if (( | |
197 | - | then | |
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 | |
198 | 160 | else height | |
199 | - | let | |
200 | - | let | |
201 | - | let | |
202 | - | let | |
203 | - | let | |
204 | - | let | |
205 | - | let | |
206 | - | if ($isInstanceOf( | |
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")) | |
207 | 169 | then { | |
208 | - | let | |
209 | - | (height > | |
170 | + | let aZ = aY | |
171 | + | (height > aZ) | |
210 | 172 | } | |
211 | - | else if ($isInstanceOf( | |
173 | + | else if ($isInstanceOf(aY, "Unit")) | |
212 | 174 | then false | |
213 | 175 | else throw("Match error") | |
214 | 176 | } | |
215 | - | let | |
216 | - | then | |
177 | + | let ba = [if (!(if (aV) | |
178 | + | then aW | |
217 | 179 | else false)) | |
218 | 180 | then true | |
219 | - | else | |
220 | - | then | |
181 | + | else throw("USDN claim is disabled"), if (!(if (aV) | |
182 | + | then aX | |
221 | 183 | else false)) | |
222 | 184 | then true | |
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 = 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 | - | } | |
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)) | |
290 | 192 | else throw("Strict value is not equal to itself.") | |
291 | 193 | } | |
292 | 194 | ||
293 | 195 | ||
294 | - | func | |
295 | - | let | |
296 | - | if ($isInstanceOf( | |
196 | + | func bb () = { | |
197 | + | let aY = getString(aj()) | |
198 | + | if ($isInstanceOf(aY, "String")) | |
297 | 199 | then { | |
298 | - | let | |
299 | - | fromBase58String( | |
200 | + | let bc = aY | |
201 | + | fromBase58String(bc) | |
300 | 202 | } | |
301 | - | else if ($isInstanceOf( | |
203 | + | else if ($isInstanceOf(aY, "Unit")) | |
302 | 204 | then unit | |
303 | 205 | else throw("Match error") | |
304 | 206 | } | |
305 | 207 | ||
306 | 208 | ||
307 | - | func | |
308 | - | let | |
309 | - | if ($isInstanceOf( | |
209 | + | func bd () = { | |
210 | + | let aY = getString(ak()) | |
211 | + | if ($isInstanceOf(aY, "String")) | |
310 | 212 | then { | |
311 | - | let | |
312 | - | fromBase58String( | |
213 | + | let bc = aY | |
214 | + | fromBase58String(bc) | |
313 | 215 | } | |
314 | - | else if ($isInstanceOf( | |
216 | + | else if ($isInstanceOf(aY, "Unit")) | |
315 | 217 | then unit | |
316 | 218 | else throw("Match error") | |
317 | 219 | } | |
318 | 220 | ||
319 | 221 | ||
320 | - | func | |
321 | - | let | |
322 | - | let | |
323 | - | if ($isInstanceOf( | |
222 | + | func be (bf) = { | |
223 | + | let bg = throw("Permission denied") | |
224 | + | let aY = bb() | |
225 | + | if ($isInstanceOf(aY, "ByteVector")) | |
324 | 226 | then { | |
325 | - | let | |
326 | - | if (( | |
227 | + | let bh = aY | |
228 | + | if ((bf.callerPublicKey == bh)) | |
327 | 229 | then true | |
328 | - | else | |
230 | + | else bg | |
329 | 231 | } | |
330 | - | else if ($isInstanceOf( | |
331 | - | then if (( | |
232 | + | else if ($isInstanceOf(aY, "Unit")) | |
233 | + | then if ((bf.caller == this)) | |
332 | 234 | then true | |
333 | - | else | |
235 | + | else bg | |
334 | 236 | else throw("Match error") | |
335 | 237 | } | |
336 | 238 | ||
337 | 239 | ||
338 | - | @Callable( | |
339 | - | func constructor (D, | |
340 | - | let | |
341 | - | let | |
342 | - | if (isDefined(getString( | |
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()))) | |
343 | 245 | then throw("already initialized") | |
344 | - | else if ((" | |
246 | + | else if (("3N4nTJ5sSp5X5ChS2bBBmwNMn1eeRzT1FoP" != toString(bf.caller))) | |
345 | 247 | then throw("not authorized") | |
346 | - | else if ((size( | |
248 | + | else if ((size(bf.payments) != 1)) | |
347 | 249 | then throw("exactly 1 payment must be attached") | |
348 | - | else if (( | |
250 | + | else if ((bi >= C)) | |
349 | 251 | then throw("claimStart must be greater than idoEnd") | |
350 | 252 | else { | |
351 | - | let | |
352 | - | let | |
353 | - | let | |
354 | - | let | |
355 | - | let | |
356 | - | let | |
357 | - | let | |
358 | - | let | |
359 | - | let | |
360 | - | let | |
361 | - | [StringEntry( | |
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)] | |
362 | 264 | } | |
363 | 265 | } | |
364 | 266 | ||
365 | 267 | ||
366 | 268 | ||
367 | - | @Callable( | |
269 | + | @Callable(bf) | |
368 | 270 | func invest () = { | |
369 | - | let | |
370 | - | let | |
371 | - | let | |
372 | - | let | |
373 | - | let | |
374 | - | let | |
375 | - | let | |
376 | - | let | |
377 | - | let | |
378 | - | let | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
382 | - | let | |
383 | - | let | |
384 | - | let | |
385 | - | if (( | |
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)) | |
386 | 288 | then throw("ido has not been started yet") | |
387 | - | else if ((height > | |
289 | + | else if ((height > bi)) | |
388 | 290 | then throw("ido has been already ended") | |
389 | - | else if ((size( | |
291 | + | else if ((size(bf.payments) != 1)) | |
390 | 292 | then throw("exactly 1 payment is expected") | |
391 | 293 | else { | |
392 | - | let | |
393 | - | let | |
394 | - | let | |
395 | - | if (( | |
396 | - | then throw((("invalid payment asset id: " + toBase58String( | |
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")) | |
397 | 299 | else { | |
398 | - | let | |
399 | - | let | |
400 | - | let | |
401 | - | let | |
402 | - | if (( | |
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))) | |
403 | 305 | then throw("IDO asset has been - sold consider to use smaller payment") | |
404 | 306 | else { | |
405 | - | let | |
406 | - | [ | |
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)] | |
407 | 309 | } | |
408 | 310 | } | |
409 | 311 | } | |
410 | 312 | } | |
411 | 313 | ||
412 | 314 | ||
413 | 315 | ||
414 | - | @Callable( | |
415 | - | func claim ( | |
416 | - | let | |
417 | - | if (( | |
418 | - | then | |
316 | + | @Callable(bf) | |
317 | + | func claim (aH,aM) = { | |
318 | + | let bu = toString(bf.caller) | |
319 | + | if ((aM != bu)) | |
320 | + | then throw("not authorized") | |
419 | 321 | 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)) | |
448 | - | 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) | |
454 | - | } | |
455 | - | else throw("Strict value is not equal to itself.") | |
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) | |
456 | 331 | } | |
457 | 332 | } | |
458 | 333 | ||
459 | 334 | ||
460 | 335 | ||
461 | - | @Callable( | |
462 | - | func claimREADONLY ( | |
463 | - | let | |
464 | - | let | |
465 | - | let | |
466 | - | let | |
467 | - | let | |
468 | - | let | |
469 | - | let | |
470 | - | let | |
471 | - | let | |
472 | - | $Tuple2(nil, makeString(["%s%d%d", | |
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)) | |
473 | 348 | } | |
474 | 349 | ||
475 | 350 | ||
476 | 351 | ||
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)) | |
352 | + | @Callable(bf) | |
353 | + | func setManager (bD) = { | |
354 | + | let bE = be(bf) | |
355 | + | if ((bE == bE)) | |
506 | 356 | then { | |
507 | - | let | |
508 | - | if (( | |
509 | - | then [StringEntry( | |
357 | + | let bF = fromBase58String(bD) | |
358 | + | if ((bF == bF)) | |
359 | + | then [StringEntry(ak(), bD)] | |
510 | 360 | else throw("Strict value is not equal to itself.") | |
511 | 361 | } | |
512 | 362 | else throw("Strict value is not equal to itself.") | |
513 | 363 | } | |
514 | 364 | ||
515 | 365 | ||
516 | 366 | ||
517 | - | @Callable( | |
367 | + | @Callable(bf) | |
518 | 368 | func confirmManager () = { | |
519 | - | let | |
520 | - | let | |
369 | + | let bG = bd() | |
370 | + | let bH = if (isDefined(bG)) | |
521 | 371 | then true | |
522 | 372 | else throw("No pending manager") | |
523 | - | if (( | |
373 | + | if ((bH == bH)) | |
524 | 374 | then { | |
525 | - | let | |
375 | + | let bI = if ((bf.callerPublicKey == value(bG))) | |
526 | 376 | then true | |
527 | 377 | else throw("You are not pending manager") | |
528 | - | if (( | |
529 | - | then [StringEntry( | |
378 | + | if ((bI == bI)) | |
379 | + | then [StringEntry(aj(), toBase58String(value(bG))), DeleteEntry(ak())] | |
530 | 380 | else throw("Strict value is not equal to itself.") | |
531 | 381 | } | |
532 | 382 | else throw("Strict value is not equal to itself.") | |
533 | 383 | } | |
534 | 384 | ||
535 | 385 | ||
536 | - | @Verifier( | |
537 | - | func | |
538 | - | let | |
539 | - | let | |
540 | - | if ($isInstanceOf( | |
386 | + | @Verifier(bJ) | |
387 | + | func bK () = { | |
388 | + | let bL = { | |
389 | + | let aY = bb() | |
390 | + | if ($isInstanceOf(aY, "ByteVector")) | |
541 | 391 | then { | |
542 | - | let | |
543 | - | | |
392 | + | let bh = aY | |
393 | + | bh | |
544 | 394 | } | |
545 | - | else if ($isInstanceOf( | |
546 | - | then | |
395 | + | else if ($isInstanceOf(aY, "Unit")) | |
396 | + | then bJ.senderPublicKey | |
547 | 397 | else throw("Match error") | |
548 | 398 | } | |
549 | - | sigVerify( | |
399 | + | sigVerify(bJ.bodyBytes, bJ.proofs[0], bL) | |
550 | 400 | } | |
551 | 401 |
github/deemru/w8io/169f3d6 136.46 ms ◑![]()