tx · 8voyBbNK7N3SXNsZfMDzyc3ZT5iv2anF3FjWUotpeGYU 3Mynj79w9PikhwUwMwFPk2vifkm8zkDt2Zt: -0.01700000 Waves 2022.11.01 13:52 [2297955] smart account 3Mynj79w9PikhwUwMwFPk2vifkm8zkDt2Zt > SELF 0.00000000 Waves
{ "type": 13, "id": "8voyBbNK7N3SXNsZfMDzyc3ZT5iv2anF3FjWUotpeGYU", "fee": 1700000, "feeAssetId": null, "timestamp": 1667299960890, "version": 1, "sender": "3Mynj79w9PikhwUwMwFPk2vifkm8zkDt2Zt", "senderPublicKey": "5195SwZ4ifX6bBstZ6tN31kEQFVHaKpFYLc1GCa3Myrh", "proofs": [ "ExAoTQaLV4MiUiRFSC5QkzjBVXi3ErXK2p4TWSWG3mfPWo6mooJXgVUuVZZM5Cykasqom9w7EWwFmDbE167cWxC" ], "script": "base64:AAIFAAAAAAAACcYIAhIJCgcBAQEBAQgBEgASBAoCCAgSBAoCCAgSAwoBCBIAIg9nZXRTdHJpbmdPckZhaWwiA2tleSIDU0VQIghCVUZTQ0FMRSIdY29udmVydFByaWNlQXNzZXRJbnRvSWRvQXNzZXQiEHByaWNlQXNzZXRBbW91bnQiDnByaWNlQXNzZXRNVUxUIgVwcmljZSIJcHJpY2VNVUxUIgxpZG9Bc3NldE1VTFQiD2JQcmljZUFzc2V0TVVMVCINYklkb0Fzc2V0TVVMVCIOYlByaWNlQXNzZXRCVUYiD2JBbW91bnRBc3NldEJVRiIOSWR4Q2ZnSWRvU3RhcnQiEUlkeENmZ0lkb0R1cmF0aW9uIhBJZHhDZmdDbGFpbVN0YXJ0IhNJZHhDZmdDbGFpbUR1cmF0aW9uIgtJZHhDZmdQcmljZSIPSWR4Q2ZnUHJpY2VNdWx0IhBJZHhDZmdJZG9Bc3NldElkIhJJZHhDZmdJZG9Bc3NldE11bHQiEklkeENmZ1ByaWNlQXNzZXRJZCIUSWR4Q2ZnUHJpY2VBc3NldE11bHQiFUlkeENmZ01pbkludmVzdEFtb3VudCINZnJvbWF0Q29uZmlnUyIIaWRvU3RhcnQiC2lkb0R1cmF0aW9uIgpjbGFpbVN0YXJ0Ig1jbGFpbUR1cmF0aW9uIglwcmljZU11bHQiDGlkb0Fzc2V0SWQ1OCIMaWRvQXNzZXRNdWx0Ig5wcmljZUFzc2V0SWQ1OCIOcHJpY2VBc3NldE11bHQiD21pbkludmVzdEFtb3VudCITdG90YWxJZG9Bc3NldFRvU2VsbCIMZnJvbWF0Q29uZmlnIhFJZHhJbnZUb3RhbEFtb3VudCIVSWR4SW52UmVtYWluaW5nQW1vdW50Ih1JZHhJbnZDbGFpbWVkUHJpY2VBc3NldEFtb3VudCIbSWR4SW52Q2xhaW1lZElkb0Fzc2V0QW1vdW50IhdJZHhJbnZMYXN0Q2xhaW1lZEhlaWdodCIPZm9ybWF0SW52ZXN0b3JTIgt0b3RhbEFtb3VudCIPcmVtYWluaW5nQW1vdW50IhdjbGFpbWVkUHJpY2VBc3NldEFtb3VudCIVY2xhaW1lZElkb0Fzc2V0QW1vdW50IhFsYXN0Q2xhaW1lZEhlaWdodCIOZm9ybWF0SW52ZXN0b3IiE2Zvcm1hdEhpc3RvcnlSZWNvcmQiDmlkb0Fzc2V0QW1vdW50IglrZXlDb25maWciC2tleUludmVzdG9yIgt1c2VyQWRkcmVzcyIJa2V5VG90YWxzIhlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkIgR0eXBlIgZ0eElkNTgiFGtleVVTRE5DbGFpbURpc2FibGVkIhVrZXlVU0ROQ2xhaW1FbmRIZWlnaHQiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ig9yZWFkQ29uZmlnQXJyYXkiI3JlYWRUb3RhbHNBcnJheU9yRGVmYXVsdEJ5Q3VzdG9tS2V5IgljdXN0b21LZXkiGHJlYWRUb3RhbHNBcnJheU9yRGVmYXVsdCIacmVhZEludmVzdG9yQXJyYXlPckRlZmF1bHQiF3JlYWRJbnZlc3RvckFycmF5T3JGYWlsIhVJZHhEaWZmVG90YWxJbmNyZW1lbnQiJElkeERpZmZSZW1haW5pbmdQcmljZUFtb3VudEluY3JlbWVudCIiSWR4RGlmZkNsYWltZWRQcmljZUFtb3VudEluY3JlbWVudCIlSWR4RGlmZkNsYWltZWRJZG9Bc3NldEFtb3VudEluY3JlbWVudCILVG90YWxzRW50cnkiCW9yaWdBcnJheSINaW5jcmVtZW50RGlmZiIUbmV3TGFzdENsYWltZWRIZWlnaHQiDm5ld1RvdGFsQW1vdW50IhJuZXdSZW1haW5pbmdBbW91bnQiGm5ld0NsYWltZWRQcmljZUFzc2V0QW1vdW50IhhuZXdDbGFpbWVkSWRvQXNzZXRBbW91bnQiG0ludmVzdE9wZXJhdGlvbkhpc3RvcnlFbnRyeSIEdHhJZCIaQ2xhaW1PcGVyYXRpb25IaXN0b3J5RW50cnkiDWludGVybmFsQ2xhaW0iEGNsYWltZWRBc3NldElkNTgiCGNmZ0FycmF5IghjbGFpbUVuZCIKaWRvQXNzZXRJZCIMcHJpY2VBc3NldElkIg11c2VyQWRkcmVzczU4Ig9vcmlnSW52ZXN0QXJyYXkiEWludmVzdFRvdGFsQW1vdW50IhppbnZlc3RMYXN0Q2xhaW1lZEhlaWdodFRNUCIXaW52ZXN0TGFzdENsYWltZWRIZWlnaHQiFG5ld0NsYWltUGVyaW9kSGVpZ2h0Ig5jbGFpbWluZ0Jsb2NrcyIYY2xhaW1pbmdQcmljZUFzc2V0QW1vdW50IhZjbGFpbWluZ0lkb0Fzc2V0QW1vdW50IgZpc1VTRE4iE2lzVVNETkNsYWltRGlzYWJsZWQiEGlzVVNETkNsYWltRW5kZWQiByRtYXRjaDAiA2VuZCIGY2hlY2tzIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCILbXVzdE1hbmFnZXIiAWkiAnBkIgJwayIGaWRvRW5kIgNwbXQiDGlkb0Fzc2V0SW5mbyIOcHJpY2VBc3NldEluZm8iD29yaWdUb3RhbHNBcnJheSIKdG90YWxzRGlmZiIObWluSXZlc3RBbW91bnQiCnBtdEFzc2V0SWQiCXBtdEFtb3VudCIRb3JpZ0ludmVzdG9yQXJyYXkiE25ld1ByaWNlVG90YWxBbW91bnQiFnJlcXVpcmVkSWRvQXNzZXRBbW91bnQiD2NhbGxlckFkZHJlc3M1OCIQY2xhaW1SZXN1bHRUdXBsZSIJb3V0QW1vdW50IgpvdXRBc3NldElkIhpjbGFpbWVkUHJpY2VBbW91bnRGcm9tRGlmZiIdY2xhaW1lZElkb0Fzc2V0QW1vdW50RnJvbURpZmYiFWF2YWlsYWJsZVRvQ2xhaW1BcnJheSIbYXZhaWxhYmxlUHJpY2VBbW91bnRUb0NsYWltIhlhdmFpbGFibGVJZG9BbW91bnRUb0NsYWltIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkAAAAxAQAAAAFhAAAAAQAAAAFiCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQUAAAABYgkAASwAAAACCQABLAAAAAICAAAAD21hbmRhdG9yeSB0aGlzLgUAAAABYgIAAAAPIGlzIG5vdCBkZWZpbmVkAAAAAAFjAgAAAAJfXwAAAAABZAkAATYAAAABAA3gtrOnZAAAAQAAAAFlAAAABQAAAAFmAAAAAWcAAAABaAAA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", "chainId": 84, "height": 2297955, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Dx59e7chuVgNVHMbed79qyNQdbsx8fVBcuauCWPRKtFf Next: 7gHMLYbhBDXWsBx1p7fyP3bo9ytWYAeUxnFAT4MLdzym Diff:
Old | New | Differences | |
---|---|---|---|
8 | 8 | ||
9 | 9 | let d = toBigInt(1000000000000000000) | |
10 | 10 | ||
11 | - | func e (f) = throw(makeString(["ido.ride:", f], " ")) | |
12 | - | ||
13 | - | ||
14 | - | func g (h,i,j,k,l) = { | |
15 | - | let m = toBigInt(i) | |
16 | - | let n = toBigInt(l) | |
17 | - | let o = fraction(toBigInt(h), d, m) | |
18 | - | let p = fraction(o, toBigInt(k), toBigInt(j)) | |
19 | - | toInt(fraction(p, toBigInt(l), 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)) | |
20 | 17 | } | |
21 | 18 | ||
22 | 19 | ||
23 | - | let | |
20 | + | let o = 1 | |
24 | 21 | ||
25 | - | let | |
22 | + | let p = 2 | |
26 | 23 | ||
27 | - | let | |
24 | + | let q = 3 | |
28 | 25 | ||
29 | - | let | |
26 | + | let r = 4 | |
30 | 27 | ||
31 | - | let | |
28 | + | let s = 5 | |
32 | 29 | ||
33 | - | let | |
30 | + | let t = 6 | |
34 | 31 | ||
35 | - | let | |
32 | + | let u = 7 | |
36 | 33 | ||
37 | - | let | |
34 | + | let v = 8 | |
38 | 35 | ||
39 | - | let | |
36 | + | let w = 9 | |
40 | 37 | ||
41 | - | let | |
38 | + | let x = 10 | |
42 | 39 | ||
43 | - | let | |
40 | + | let y = 11 | |
44 | 41 | ||
45 | - | 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) | |
46 | 43 | ||
47 | 44 | ||
48 | - | 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)) | |
49 | 46 | ||
50 | 47 | ||
51 | - | let | |
48 | + | let M = 1 | |
52 | 49 | ||
53 | - | let | |
50 | + | let N = 2 | |
54 | 51 | ||
55 | - | let | |
52 | + | let O = 3 | |
56 | 53 | ||
57 | - | let | |
54 | + | let P = 4 | |
58 | 55 | ||
59 | - | let | |
56 | + | let Q = 5 | |
60 | 57 | ||
61 | - | func | |
58 | + | func R (S,T,U,V,W) = makeString(["%d%d%d%d%d", S, T, U, V, W], c) | |
62 | 59 | ||
63 | 60 | ||
64 | - | func | |
61 | + | func X (S,T,U,V,W) = R(toString(S), toString(T), toString(U), toString(V), toString(W)) | |
65 | 62 | ||
66 | 63 | ||
67 | - | func | |
64 | + | func Y (f,Z) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(f), toString(Z)], c) | |
68 | 65 | ||
69 | 66 | ||
70 | - | func | |
67 | + | func aa () = "%s__config" | |
71 | 68 | ||
72 | 69 | ||
73 | - | func | |
70 | + | func ab (ac) = ("%s__" + ac) | |
74 | 71 | ||
75 | 72 | ||
76 | - | func | |
73 | + | func ad () = "%s__totals" | |
77 | 74 | ||
78 | 75 | ||
79 | - | func | |
76 | + | func ae (af,ac,ag) = makeString(["%s%s%s%s__history", af, ac, ag], c) | |
80 | 77 | ||
81 | 78 | ||
82 | - | func | |
79 | + | func ah () = "%s__usdnClaimDisabled" | |
83 | 80 | ||
84 | 81 | ||
85 | - | func | |
82 | + | func ai () = "%s__usdnClaimEndHeight" | |
86 | 83 | ||
87 | 84 | ||
88 | - | func | |
85 | + | func aj () = "%s__managerPublicKey" | |
89 | 86 | ||
90 | 87 | ||
91 | - | func | |
88 | + | func ak () = "%s__pendingManagerPublicKey" | |
92 | 89 | ||
93 | 90 | ||
94 | - | func | |
91 | + | func al () = split(a(aa()), c) | |
95 | 92 | ||
96 | 93 | ||
97 | - | func | |
94 | + | func am (an) = split(valueOrElse(getString(an), R("0", "0", "0", "0", "0")), c) | |
98 | 95 | ||
99 | 96 | ||
100 | - | func | |
97 | + | func ao () = am(ad()) | |
101 | 98 | ||
102 | 99 | ||
103 | - | func | |
100 | + | func ap (ac) = am(ab(ac)) | |
104 | 101 | ||
105 | 102 | ||
106 | - | func | |
103 | + | func aq (ac) = split(a(ab(ac)), c) | |
107 | 104 | ||
108 | 105 | ||
109 | - | ||
106 | + | let ar = 0 | |
110 | 107 | ||
108 | + | let as = 1 | |
111 | 109 | ||
112 | - | ||
110 | + | let at = 2 | |
113 | 111 | ||
112 | + | let au = 3 | |
114 | 113 | ||
115 | - | func aw () = "%s__managerPublicKey" | |
116 | - | ||
117 | - | ||
118 | - | func ax () = "%s__pendingManagerPublicKey" | |
119 | - | ||
120 | - | ||
121 | - | func ay () = split(a(ac()), c) | |
122 | - | ||
123 | - | ||
124 | - | func az (aA) = split(valueOrElse(getString(aA), T("0", "0", "0", "0", "0")), c) | |
125 | - | ||
126 | - | ||
127 | - | func aB () = az(af()) | |
128 | - | ||
129 | - | ||
130 | - | func aC (ae) = az(ad(ae)) | |
131 | - | ||
132 | - | ||
133 | - | func aD (ae) = split(a(ad(ae)), c) | |
134 | - | ||
135 | - | ||
136 | - | let aE = 0 | |
137 | - | ||
138 | - | let aF = 1 | |
139 | - | ||
140 | - | let aG = 2 | |
141 | - | ||
142 | - | let aH = 3 | |
143 | - | ||
144 | - | func aI (b,aJ,aK,aL) = { | |
145 | - | let U = parseIntValue(aJ[O]) | |
146 | - | let V = parseIntValue(aJ[P]) | |
147 | - | let W = parseIntValue(aJ[Q]) | |
148 | - | let X = parseIntValue(aJ[R]) | |
149 | - | let Y = parseIntValue(aJ[S]) | |
150 | - | let aM = (U + aK[aE]) | |
151 | - | let aN = (V + aK[aF]) | |
152 | - | let aO = (W + aK[aG]) | |
153 | - | let aP = (X + aK[aH]) | |
154 | - | if ((0 > aN)) | |
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)) | |
155 | 125 | then throw("invalid math") | |
156 | - | else StringEntry(b, | |
126 | + | else StringEntry(b, X(az, aA, aB, aC, ay)) | |
157 | 127 | } | |
158 | 128 | ||
159 | 129 | ||
160 | - | func | |
130 | + | func aD (ac,f,Z,aE) = StringEntry(ae("invest", ac, toBase58String(aE)), Y(f, Z)) | |
161 | 131 | ||
162 | 132 | ||
163 | - | func | |
133 | + | func aF (ac,f,Z,aE) = StringEntry(ae("claim", ac, toBase58String(aE)), Y(f, Z)) | |
164 | 134 | ||
165 | 135 | ||
166 | - | func | |
167 | - | let | |
168 | - | let | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | let | |
175 | - | let | |
176 | - | let | |
177 | - | let | |
178 | - | let | |
179 | - | let | |
180 | - | let | |
181 | - | let | |
182 | - | let | |
183 | - | let | |
184 | - | then | |
185 | - | else | |
186 | - | let | |
187 | - | then | |
188 | - | else if (( | |
189 | - | 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 | |
190 | 160 | else height | |
191 | - | let | |
192 | - | let | |
193 | - | let | |
194 | - | let | |
195 | - | let | |
196 | - | let | |
197 | - | let | |
198 | - | 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")) | |
199 | 169 | then { | |
200 | - | let | |
201 | - | (height > | |
170 | + | let aZ = aY | |
171 | + | (height > aZ) | |
202 | 172 | } | |
203 | - | else if ($isInstanceOf( | |
173 | + | else if ($isInstanceOf(aY, "Unit")) | |
204 | 174 | then false | |
205 | 175 | else throw("Match error") | |
206 | 176 | } | |
207 | - | let | |
208 | - | then | |
177 | + | let ba = [if (!(if (aV) | |
178 | + | then aW | |
209 | 179 | else false)) | |
210 | 180 | then true | |
211 | - | else | |
212 | - | then | |
181 | + | else throw("USDN claim is disabled"), if (!(if (aV) | |
182 | + | then aX | |
213 | 183 | else false)) | |
214 | 184 | then true | |
215 | - | else e("USDN claim is ended")] | |
216 | - | if ((bn == bn)) | |
217 | - | then { | |
218 | - | let bo = value(getInteger(ar(J))) | |
219 | - | let bp = value(getInteger(at(J))) | |
220 | - | let bq = valueOrElse(getInteger(am()), 0) | |
221 | - | let br = valueOrElse(getInteger(au(J, bq)), bo) | |
222 | - | let bs = valueOrElse(getInteger(av(J, bq, aZ)), bp) | |
223 | - | let bt = min([bg, br, bs]) | |
224 | - | if ((aU == J)) | |
225 | - | then $Tuple6([0, -(bt), bt, 0], bt, aY, ba, be, [bt, bh, br]) | |
226 | - | else if ((aU == H)) | |
227 | - | then $Tuple6([0, -(bt), 0, bt], bh, aX, ba, be, [bt, bh, br]) | |
228 | - | else e(makeString(["unsupported assetId:", aU], " ")) | |
229 | - | } | |
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)) | |
230 | 192 | else throw("Strict value is not equal to itself.") | |
231 | 193 | } | |
232 | 194 | ||
233 | 195 | ||
234 | - | func | |
235 | - | let | |
236 | - | if ($isInstanceOf( | |
196 | + | func bb () = { | |
197 | + | let aY = getString(aj()) | |
198 | + | if ($isInstanceOf(aY, "String")) | |
237 | 199 | then { | |
238 | - | let | |
239 | - | fromBase58String( | |
200 | + | let bc = aY | |
201 | + | fromBase58String(bc) | |
240 | 202 | } | |
241 | - | else if ($isInstanceOf( | |
203 | + | else if ($isInstanceOf(aY, "Unit")) | |
242 | 204 | then unit | |
243 | 205 | else throw("Match error") | |
244 | 206 | } | |
245 | 207 | ||
246 | 208 | ||
247 | - | func | |
248 | - | let | |
249 | - | if ($isInstanceOf( | |
209 | + | func bd () = { | |
210 | + | let aY = getString(ak()) | |
211 | + | if ($isInstanceOf(aY, "String")) | |
250 | 212 | then { | |
251 | - | let | |
252 | - | fromBase58String( | |
213 | + | let bc = aY | |
214 | + | fromBase58String(bc) | |
253 | 215 | } | |
254 | - | else if ($isInstanceOf( | |
216 | + | else if ($isInstanceOf(aY, "Unit")) | |
255 | 217 | then unit | |
256 | 218 | else throw("Match error") | |
257 | 219 | } | |
258 | 220 | ||
259 | 221 | ||
260 | - | func | |
261 | - | let | |
262 | - | let | |
263 | - | if ($isInstanceOf( | |
222 | + | func be (bf) = { | |
223 | + | let bg = throw("Permission denied") | |
224 | + | let aY = bb() | |
225 | + | if ($isInstanceOf(aY, "ByteVector")) | |
264 | 226 | then { | |
265 | - | let | |
266 | - | if (( | |
227 | + | let bh = aY | |
228 | + | if ((bf.callerPublicKey == bh)) | |
267 | 229 | then true | |
268 | - | else | |
230 | + | else bg | |
269 | 231 | } | |
270 | - | else if ($isInstanceOf( | |
271 | - | then if (( | |
232 | + | else if ($isInstanceOf(aY, "Unit")) | |
233 | + | then if ((bf.caller == this)) | |
272 | 234 | then true | |
273 | - | else | |
235 | + | else bg | |
274 | 236 | else throw("Match error") | |
275 | 237 | } | |
276 | 238 | ||
277 | 239 | ||
278 | - | @Callable( | |
279 | - | func constructor (C,D, | |
280 | - | let | |
281 | - | let | |
282 | - | 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()))) | |
283 | 245 | then throw("already initialized") | |
284 | - | else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString( | |
246 | + | else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(bf.caller))) | |
285 | 247 | then throw("not authorized") | |
286 | - | else if ((size( | |
248 | + | else if ((size(bf.payments) != 1)) | |
287 | 249 | then throw("exactly 1 payment must be attached") | |
288 | - | else if (( | |
250 | + | else if ((bi >= C)) | |
289 | 251 | then throw("claimStart must be greater than idoEnd") | |
290 | 252 | else { | |
291 | - | let | |
292 | - | let | |
293 | - | let | |
294 | - | let | |
295 | - | let | |
296 | - | let | |
297 | - | let | |
298 | - | let | |
299 | - | let | |
300 | - | let | |
301 | - | [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)] | |
302 | 264 | } | |
303 | 265 | } | |
304 | 266 | ||
305 | 267 | ||
306 | 268 | ||
307 | - | @Callable( | |
269 | + | @Callable(bf) | |
308 | 270 | func invest () = { | |
309 | - | let | |
310 | - | let | |
311 | - | let | |
312 | - | let | |
313 | - | let | |
314 | - | let | |
315 | - | let | |
316 | - | let | |
317 | - | let | |
318 | - | let | |
319 | - | let | |
320 | - | let | |
321 | - | let | |
322 | - | let | |
323 | - | let | |
324 | - | let | |
325 | - | 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)) | |
326 | 288 | then throw("ido has not been started yet") | |
327 | - | else if ((height > | |
289 | + | else if ((height > bi)) | |
328 | 290 | then throw("ido has been already ended") | |
329 | - | else if ((size( | |
291 | + | else if ((size(bf.payments) != 1)) | |
330 | 292 | then throw("exactly 1 payment is expected") | |
331 | 293 | else { | |
332 | - | let | |
333 | - | let | |
334 | - | let | |
335 | - | if (( | |
336 | - | 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")) | |
337 | 299 | else { | |
338 | - | let | |
339 | - | let | |
340 | - | let | |
341 | - | let | |
342 | - | 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))) | |
343 | 305 | then throw("IDO asset has been - sold consider to use smaller payment") | |
344 | 306 | else { | |
345 | - | let | |
346 | - | [ | |
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)] | |
347 | 309 | } | |
348 | 310 | } | |
349 | 311 | } | |
351 | 313 | ||
352 | 314 | ||
353 | 315 | ||
354 | - | @Callable( | |
355 | - | func claim ( | |
356 | - | let | |
357 | - | if (( | |
358 | - | then | |
316 | + | @Callable(bf) | |
317 | + | func claim (aH,aM) = { | |
318 | + | let bu = toString(bf.caller) | |
319 | + | if ((aM != bu)) | |
320 | + | then throw("not authorized") | |
359 | 321 | else { | |
360 | - | let | |
361 | - | let | |
362 | - | let | |
363 | - | let | |
364 | - | let | |
365 | - | let | |
366 | - | let | |
367 | - | let | |
368 | - | $Tuple2([ScriptTransfer( | |
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) | |
369 | 331 | } | |
370 | 332 | } | |
371 | 333 | ||
372 | 334 | ||
373 | 335 | ||
374 | - | @Callable( | |
375 | - | func claimREADONLY ( | |
376 | - | let | |
377 | - | let | |
378 | - | let | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
382 | - | let | |
383 | - | let | |
384 | - | let | |
385 | - | $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)) | |
386 | 348 | } | |
387 | 349 | ||
388 | 350 | ||
389 | 351 | ||
390 | - | @Callable(by) | |
391 | - | func claimV2READONLY (aU,aZ) = { | |
392 | - | let bO = aT(aU, addressFromStringValue(aZ), fromBase58String("")) | |
393 | - | let bG = bO._1 | |
394 | - | let bP = bO._2 | |
395 | - | let bQ = bO._3 | |
396 | - | let ba = bO._4 | |
397 | - | let be = bO._5 | |
398 | - | let bT = bO._6 | |
399 | - | let bW = makeString(["%d%d%d%d%d%d", "1000", "2000", "100000", "101000000", "100123456", "100"], c) | |
400 | - | $Tuple2(nil, bW) | |
401 | - | } | |
402 | - | ||
403 | - | ||
404 | - | ||
405 | - | @Callable(by) | |
406 | - | func setManager (bX) = { | |
407 | - | let bY = bx(by) | |
408 | - | if ((bY == bY)) | |
352 | + | @Callable(bf) | |
353 | + | func setManager (bD) = { | |
354 | + | let bE = be(bf) | |
355 | + | if ((bE == bE)) | |
409 | 356 | then { | |
410 | - | let | |
411 | - | if (( | |
412 | - | then [StringEntry( | |
357 | + | let bF = fromBase58String(bD) | |
358 | + | if ((bF == bF)) | |
359 | + | then [StringEntry(ak(), bD)] | |
413 | 360 | else throw("Strict value is not equal to itself.") | |
414 | 361 | } | |
415 | 362 | else throw("Strict value is not equal to itself.") | |
417 | 364 | ||
418 | 365 | ||
419 | 366 | ||
420 | - | @Callable( | |
367 | + | @Callable(bf) | |
421 | 368 | func confirmManager () = { | |
422 | - | let | |
423 | - | let | |
369 | + | let bG = bd() | |
370 | + | let bH = if (isDefined(bG)) | |
424 | 371 | then true | |
425 | 372 | else throw("No pending manager") | |
426 | - | if (( | |
373 | + | if ((bH == bH)) | |
427 | 374 | then { | |
428 | - | let | |
375 | + | let bI = if ((bf.callerPublicKey == value(bG))) | |
429 | 376 | then true | |
430 | 377 | else throw("You are not pending manager") | |
431 | - | if (( | |
432 | - | then [StringEntry( | |
378 | + | if ((bI == bI)) | |
379 | + | then [StringEntry(aj(), toBase58String(value(bG))), DeleteEntry(ak())] | |
433 | 380 | else throw("Strict value is not equal to itself.") | |
434 | 381 | } | |
435 | 382 | else throw("Strict value is not equal to itself.") | |
436 | 383 | } | |
437 | 384 | ||
438 | 385 | ||
439 | - | @Verifier( | |
440 | - | func | |
441 | - | let | |
442 | - | let | |
443 | - | if ($isInstanceOf( | |
386 | + | @Verifier(bJ) | |
387 | + | func bK () = { | |
388 | + | let bL = { | |
389 | + | let aY = bb() | |
390 | + | if ($isInstanceOf(aY, "ByteVector")) | |
444 | 391 | then { | |
445 | - | let | |
446 | - | | |
392 | + | let bh = aY | |
393 | + | bh | |
447 | 394 | } | |
448 | - | else if ($isInstanceOf( | |
449 | - | then | |
395 | + | else if ($isInstanceOf(aY, "Unit")) | |
396 | + | then bJ.senderPublicKey | |
450 | 397 | else throw("Match error") | |
451 | 398 | } | |
452 | - | sigVerify( | |
399 | + | sigVerify(bJ.bodyBytes, bJ.proofs[0], bL) | |
453 | 400 | } | |
454 | 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 | - | func e (f) = throw(makeString(["ido.ride:", f], " ")) | |
12 | - | ||
13 | - | ||
14 | - | func g (h,i,j,k,l) = { | |
15 | - | let m = toBigInt(i) | |
16 | - | let n = toBigInt(l) | |
17 | - | let o = fraction(toBigInt(h), d, m) | |
18 | - | let p = fraction(o, toBigInt(k), toBigInt(j)) | |
19 | - | toInt(fraction(p, toBigInt(l), 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)) | |
20 | 17 | } | |
21 | 18 | ||
22 | 19 | ||
23 | - | let | |
20 | + | let o = 1 | |
24 | 21 | ||
25 | - | let | |
22 | + | let p = 2 | |
26 | 23 | ||
27 | - | let | |
24 | + | let q = 3 | |
28 | 25 | ||
29 | - | let | |
26 | + | let r = 4 | |
30 | 27 | ||
31 | - | let | |
28 | + | let s = 5 | |
32 | 29 | ||
33 | - | let | |
30 | + | let t = 6 | |
34 | 31 | ||
35 | - | let | |
32 | + | let u = 7 | |
36 | 33 | ||
37 | - | let | |
34 | + | let v = 8 | |
38 | 35 | ||
39 | - | let | |
36 | + | let w = 9 | |
40 | 37 | ||
41 | - | let | |
38 | + | let x = 10 | |
42 | 39 | ||
43 | - | let | |
40 | + | let y = 11 | |
44 | 41 | ||
45 | - | 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) | |
46 | 43 | ||
47 | 44 | ||
48 | - | 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)) | |
49 | 46 | ||
50 | 47 | ||
51 | - | let | |
48 | + | let M = 1 | |
52 | 49 | ||
53 | - | let | |
50 | + | let N = 2 | |
54 | 51 | ||
55 | - | let | |
52 | + | let O = 3 | |
56 | 53 | ||
57 | - | let | |
54 | + | let P = 4 | |
58 | 55 | ||
59 | - | let | |
56 | + | let Q = 5 | |
60 | 57 | ||
61 | - | func | |
58 | + | func R (S,T,U,V,W) = makeString(["%d%d%d%d%d", S, T, U, V, W], c) | |
62 | 59 | ||
63 | 60 | ||
64 | - | func | |
61 | + | func X (S,T,U,V,W) = R(toString(S), toString(T), toString(U), toString(V), toString(W)) | |
65 | 62 | ||
66 | 63 | ||
67 | - | func | |
64 | + | func Y (f,Z) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(f), toString(Z)], c) | |
68 | 65 | ||
69 | 66 | ||
70 | - | func | |
67 | + | func aa () = "%s__config" | |
71 | 68 | ||
72 | 69 | ||
73 | - | func | |
70 | + | func ab (ac) = ("%s__" + ac) | |
74 | 71 | ||
75 | 72 | ||
76 | - | func | |
73 | + | func ad () = "%s__totals" | |
77 | 74 | ||
78 | 75 | ||
79 | - | func | |
76 | + | func ae (af,ac,ag) = makeString(["%s%s%s%s__history", af, ac, ag], c) | |
80 | 77 | ||
81 | 78 | ||
82 | - | func | |
79 | + | func ah () = "%s__usdnClaimDisabled" | |
83 | 80 | ||
84 | 81 | ||
85 | - | func | |
82 | + | func ai () = "%s__usdnClaimEndHeight" | |
86 | 83 | ||
87 | 84 | ||
88 | - | func | |
85 | + | func aj () = "%s__managerPublicKey" | |
89 | 86 | ||
90 | 87 | ||
91 | - | func | |
88 | + | func ak () = "%s__pendingManagerPublicKey" | |
92 | 89 | ||
93 | 90 | ||
94 | - | func | |
91 | + | func al () = split(a(aa()), c) | |
95 | 92 | ||
96 | 93 | ||
97 | - | func | |
94 | + | func am (an) = split(valueOrElse(getString(an), R("0", "0", "0", "0", "0")), c) | |
98 | 95 | ||
99 | 96 | ||
100 | - | func | |
97 | + | func ao () = am(ad()) | |
101 | 98 | ||
102 | 99 | ||
103 | - | func | |
100 | + | func ap (ac) = am(ab(ac)) | |
104 | 101 | ||
105 | 102 | ||
106 | - | func | |
103 | + | func aq (ac) = split(a(ab(ac)), c) | |
107 | 104 | ||
108 | 105 | ||
109 | - | ||
106 | + | let ar = 0 | |
110 | 107 | ||
108 | + | let as = 1 | |
111 | 109 | ||
112 | - | ||
110 | + | let at = 2 | |
113 | 111 | ||
112 | + | let au = 3 | |
114 | 113 | ||
115 | - | func aw () = "%s__managerPublicKey" | |
116 | - | ||
117 | - | ||
118 | - | func ax () = "%s__pendingManagerPublicKey" | |
119 | - | ||
120 | - | ||
121 | - | func ay () = split(a(ac()), c) | |
122 | - | ||
123 | - | ||
124 | - | func az (aA) = split(valueOrElse(getString(aA), T("0", "0", "0", "0", "0")), c) | |
125 | - | ||
126 | - | ||
127 | - | func aB () = az(af()) | |
128 | - | ||
129 | - | ||
130 | - | func aC (ae) = az(ad(ae)) | |
131 | - | ||
132 | - | ||
133 | - | func aD (ae) = split(a(ad(ae)), c) | |
134 | - | ||
135 | - | ||
136 | - | let aE = 0 | |
137 | - | ||
138 | - | let aF = 1 | |
139 | - | ||
140 | - | let aG = 2 | |
141 | - | ||
142 | - | let aH = 3 | |
143 | - | ||
144 | - | func aI (b,aJ,aK,aL) = { | |
145 | - | let U = parseIntValue(aJ[O]) | |
146 | - | let V = parseIntValue(aJ[P]) | |
147 | - | let W = parseIntValue(aJ[Q]) | |
148 | - | let X = parseIntValue(aJ[R]) | |
149 | - | let Y = parseIntValue(aJ[S]) | |
150 | - | let aM = (U + aK[aE]) | |
151 | - | let aN = (V + aK[aF]) | |
152 | - | let aO = (W + aK[aG]) | |
153 | - | let aP = (X + aK[aH]) | |
154 | - | if ((0 > aN)) | |
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)) | |
155 | 125 | then throw("invalid math") | |
156 | - | else StringEntry(b, | |
126 | + | else StringEntry(b, X(az, aA, aB, aC, ay)) | |
157 | 127 | } | |
158 | 128 | ||
159 | 129 | ||
160 | - | func | |
130 | + | func aD (ac,f,Z,aE) = StringEntry(ae("invest", ac, toBase58String(aE)), Y(f, Z)) | |
161 | 131 | ||
162 | 132 | ||
163 | - | func | |
133 | + | func aF (ac,f,Z,aE) = StringEntry(ae("claim", ac, toBase58String(aE)), Y(f, Z)) | |
164 | 134 | ||
165 | 135 | ||
166 | - | func | |
167 | - | let | |
168 | - | let | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | let | |
175 | - | let | |
176 | - | let | |
177 | - | let | |
178 | - | let | |
179 | - | let | |
180 | - | let | |
181 | - | let | |
182 | - | let | |
183 | - | let | |
184 | - | then | |
185 | - | else | |
186 | - | let | |
187 | - | then | |
188 | - | else if (( | |
189 | - | 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 | |
190 | 160 | else height | |
191 | - | let | |
192 | - | let | |
193 | - | let | |
194 | - | let | |
195 | - | let | |
196 | - | let | |
197 | - | let | |
198 | - | 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")) | |
199 | 169 | then { | |
200 | - | let | |
201 | - | (height > | |
170 | + | let aZ = aY | |
171 | + | (height > aZ) | |
202 | 172 | } | |
203 | - | else if ($isInstanceOf( | |
173 | + | else if ($isInstanceOf(aY, "Unit")) | |
204 | 174 | then false | |
205 | 175 | else throw("Match error") | |
206 | 176 | } | |
207 | - | let | |
208 | - | then | |
177 | + | let ba = [if (!(if (aV) | |
178 | + | then aW | |
209 | 179 | else false)) | |
210 | 180 | then true | |
211 | - | else | |
212 | - | then | |
181 | + | else throw("USDN claim is disabled"), if (!(if (aV) | |
182 | + | then aX | |
213 | 183 | else false)) | |
214 | 184 | then true | |
215 | - | else e("USDN claim is ended")] | |
216 | - | if ((bn == bn)) | |
217 | - | then { | |
218 | - | let bo = value(getInteger(ar(J))) | |
219 | - | let bp = value(getInteger(at(J))) | |
220 | - | let bq = valueOrElse(getInteger(am()), 0) | |
221 | - | let br = valueOrElse(getInteger(au(J, bq)), bo) | |
222 | - | let bs = valueOrElse(getInteger(av(J, bq, aZ)), bp) | |
223 | - | let bt = min([bg, br, bs]) | |
224 | - | if ((aU == J)) | |
225 | - | then $Tuple6([0, -(bt), bt, 0], bt, aY, ba, be, [bt, bh, br]) | |
226 | - | else if ((aU == H)) | |
227 | - | then $Tuple6([0, -(bt), 0, bt], bh, aX, ba, be, [bt, bh, br]) | |
228 | - | else e(makeString(["unsupported assetId:", aU], " ")) | |
229 | - | } | |
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)) | |
230 | 192 | else throw("Strict value is not equal to itself.") | |
231 | 193 | } | |
232 | 194 | ||
233 | 195 | ||
234 | - | func | |
235 | - | let | |
236 | - | if ($isInstanceOf( | |
196 | + | func bb () = { | |
197 | + | let aY = getString(aj()) | |
198 | + | if ($isInstanceOf(aY, "String")) | |
237 | 199 | then { | |
238 | - | let | |
239 | - | fromBase58String( | |
200 | + | let bc = aY | |
201 | + | fromBase58String(bc) | |
240 | 202 | } | |
241 | - | else if ($isInstanceOf( | |
203 | + | else if ($isInstanceOf(aY, "Unit")) | |
242 | 204 | then unit | |
243 | 205 | else throw("Match error") | |
244 | 206 | } | |
245 | 207 | ||
246 | 208 | ||
247 | - | func | |
248 | - | let | |
249 | - | if ($isInstanceOf( | |
209 | + | func bd () = { | |
210 | + | let aY = getString(ak()) | |
211 | + | if ($isInstanceOf(aY, "String")) | |
250 | 212 | then { | |
251 | - | let | |
252 | - | fromBase58String( | |
213 | + | let bc = aY | |
214 | + | fromBase58String(bc) | |
253 | 215 | } | |
254 | - | else if ($isInstanceOf( | |
216 | + | else if ($isInstanceOf(aY, "Unit")) | |
255 | 217 | then unit | |
256 | 218 | else throw("Match error") | |
257 | 219 | } | |
258 | 220 | ||
259 | 221 | ||
260 | - | func | |
261 | - | let | |
262 | - | let | |
263 | - | if ($isInstanceOf( | |
222 | + | func be (bf) = { | |
223 | + | let bg = throw("Permission denied") | |
224 | + | let aY = bb() | |
225 | + | if ($isInstanceOf(aY, "ByteVector")) | |
264 | 226 | then { | |
265 | - | let | |
266 | - | if (( | |
227 | + | let bh = aY | |
228 | + | if ((bf.callerPublicKey == bh)) | |
267 | 229 | then true | |
268 | - | else | |
230 | + | else bg | |
269 | 231 | } | |
270 | - | else if ($isInstanceOf( | |
271 | - | then if (( | |
232 | + | else if ($isInstanceOf(aY, "Unit")) | |
233 | + | then if ((bf.caller == this)) | |
272 | 234 | then true | |
273 | - | else | |
235 | + | else bg | |
274 | 236 | else throw("Match error") | |
275 | 237 | } | |
276 | 238 | ||
277 | 239 | ||
278 | - | @Callable( | |
279 | - | func constructor (C,D, | |
280 | - | let | |
281 | - | let | |
282 | - | 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()))) | |
283 | 245 | then throw("already initialized") | |
284 | - | else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString( | |
246 | + | else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(bf.caller))) | |
285 | 247 | then throw("not authorized") | |
286 | - | else if ((size( | |
248 | + | else if ((size(bf.payments) != 1)) | |
287 | 249 | then throw("exactly 1 payment must be attached") | |
288 | - | else if (( | |
250 | + | else if ((bi >= C)) | |
289 | 251 | then throw("claimStart must be greater than idoEnd") | |
290 | 252 | else { | |
291 | - | let | |
292 | - | let | |
293 | - | let | |
294 | - | let | |
295 | - | let | |
296 | - | let | |
297 | - | let | |
298 | - | let | |
299 | - | let | |
300 | - | let | |
301 | - | [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)] | |
302 | 264 | } | |
303 | 265 | } | |
304 | 266 | ||
305 | 267 | ||
306 | 268 | ||
307 | - | @Callable( | |
269 | + | @Callable(bf) | |
308 | 270 | func invest () = { | |
309 | - | let | |
310 | - | let | |
311 | - | let | |
312 | - | let | |
313 | - | let | |
314 | - | let | |
315 | - | let | |
316 | - | let | |
317 | - | let | |
318 | - | let | |
319 | - | let | |
320 | - | let | |
321 | - | let | |
322 | - | let | |
323 | - | let | |
324 | - | let | |
325 | - | 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)) | |
326 | 288 | then throw("ido has not been started yet") | |
327 | - | else if ((height > | |
289 | + | else if ((height > bi)) | |
328 | 290 | then throw("ido has been already ended") | |
329 | - | else if ((size( | |
291 | + | else if ((size(bf.payments) != 1)) | |
330 | 292 | then throw("exactly 1 payment is expected") | |
331 | 293 | else { | |
332 | - | let | |
333 | - | let | |
334 | - | let | |
335 | - | if (( | |
336 | - | 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")) | |
337 | 299 | else { | |
338 | - | let | |
339 | - | let | |
340 | - | let | |
341 | - | let | |
342 | - | 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))) | |
343 | 305 | then throw("IDO asset has been - sold consider to use smaller payment") | |
344 | 306 | else { | |
345 | - | let | |
346 | - | [ | |
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)] | |
347 | 309 | } | |
348 | 310 | } | |
349 | 311 | } | |
350 | 312 | } | |
351 | 313 | ||
352 | 314 | ||
353 | 315 | ||
354 | - | @Callable( | |
355 | - | func claim ( | |
356 | - | let | |
357 | - | if (( | |
358 | - | then | |
316 | + | @Callable(bf) | |
317 | + | func claim (aH,aM) = { | |
318 | + | let bu = toString(bf.caller) | |
319 | + | if ((aM != bu)) | |
320 | + | then throw("not authorized") | |
359 | 321 | else { | |
360 | - | let | |
361 | - | let | |
362 | - | let | |
363 | - | let | |
364 | - | let | |
365 | - | let | |
366 | - | let | |
367 | - | let | |
368 | - | $Tuple2([ScriptTransfer( | |
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) | |
369 | 331 | } | |
370 | 332 | } | |
371 | 333 | ||
372 | 334 | ||
373 | 335 | ||
374 | - | @Callable( | |
375 | - | func claimREADONLY ( | |
376 | - | let | |
377 | - | let | |
378 | - | let | |
379 | - | let | |
380 | - | let | |
381 | - | let | |
382 | - | let | |
383 | - | let | |
384 | - | let | |
385 | - | $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)) | |
386 | 348 | } | |
387 | 349 | ||
388 | 350 | ||
389 | 351 | ||
390 | - | @Callable(by) | |
391 | - | func claimV2READONLY (aU,aZ) = { | |
392 | - | let bO = aT(aU, addressFromStringValue(aZ), fromBase58String("")) | |
393 | - | let bG = bO._1 | |
394 | - | let bP = bO._2 | |
395 | - | let bQ = bO._3 | |
396 | - | let ba = bO._4 | |
397 | - | let be = bO._5 | |
398 | - | let bT = bO._6 | |
399 | - | let bW = makeString(["%d%d%d%d%d%d", "1000", "2000", "100000", "101000000", "100123456", "100"], c) | |
400 | - | $Tuple2(nil, bW) | |
401 | - | } | |
402 | - | ||
403 | - | ||
404 | - | ||
405 | - | @Callable(by) | |
406 | - | func setManager (bX) = { | |
407 | - | let bY = bx(by) | |
408 | - | if ((bY == bY)) | |
352 | + | @Callable(bf) | |
353 | + | func setManager (bD) = { | |
354 | + | let bE = be(bf) | |
355 | + | if ((bE == bE)) | |
409 | 356 | then { | |
410 | - | let | |
411 | - | if (( | |
412 | - | then [StringEntry( | |
357 | + | let bF = fromBase58String(bD) | |
358 | + | if ((bF == bF)) | |
359 | + | then [StringEntry(ak(), bD)] | |
413 | 360 | else throw("Strict value is not equal to itself.") | |
414 | 361 | } | |
415 | 362 | else throw("Strict value is not equal to itself.") | |
416 | 363 | } | |
417 | 364 | ||
418 | 365 | ||
419 | 366 | ||
420 | - | @Callable( | |
367 | + | @Callable(bf) | |
421 | 368 | func confirmManager () = { | |
422 | - | let | |
423 | - | let | |
369 | + | let bG = bd() | |
370 | + | let bH = if (isDefined(bG)) | |
424 | 371 | then true | |
425 | 372 | else throw("No pending manager") | |
426 | - | if (( | |
373 | + | if ((bH == bH)) | |
427 | 374 | then { | |
428 | - | let | |
375 | + | let bI = if ((bf.callerPublicKey == value(bG))) | |
429 | 376 | then true | |
430 | 377 | else throw("You are not pending manager") | |
431 | - | if (( | |
432 | - | then [StringEntry( | |
378 | + | if ((bI == bI)) | |
379 | + | then [StringEntry(aj(), toBase58String(value(bG))), DeleteEntry(ak())] | |
433 | 380 | else throw("Strict value is not equal to itself.") | |
434 | 381 | } | |
435 | 382 | else throw("Strict value is not equal to itself.") | |
436 | 383 | } | |
437 | 384 | ||
438 | 385 | ||
439 | - | @Verifier( | |
440 | - | func | |
441 | - | let | |
442 | - | let | |
443 | - | if ($isInstanceOf( | |
386 | + | @Verifier(bJ) | |
387 | + | func bK () = { | |
388 | + | let bL = { | |
389 | + | let aY = bb() | |
390 | + | if ($isInstanceOf(aY, "ByteVector")) | |
444 | 391 | then { | |
445 | - | let | |
446 | - | | |
392 | + | let bh = aY | |
393 | + | bh | |
447 | 394 | } | |
448 | - | else if ($isInstanceOf( | |
449 | - | then | |
395 | + | else if ($isInstanceOf(aY, "Unit")) | |
396 | + | then bJ.senderPublicKey | |
450 | 397 | else throw("Match error") | |
451 | 398 | } | |
452 | - | sigVerify( | |
399 | + | sigVerify(bJ.bodyBytes, bJ.proofs[0], bL) | |
453 | 400 | } | |
454 | 401 |
github/deemru/w8io/169f3d6 169.53 ms ◑