tx · 9vixyuM1TkeC73BhoPKFjmGe5HDuqpYom75TB1nRUFaC

3MwK6nw9HMwuKbXxu6J1rfecvePPd3JyAje:  -0.03100000 Waves

2022.12.01 17:34 [2341399] smart account 3MwK6nw9HMwuKbXxu6J1rfecvePPd3JyAje > SELF 0.00000000 Waves

{ "type": 13, "id": "9vixyuM1TkeC73BhoPKFjmGe5HDuqpYom75TB1nRUFaC", "fee": 3100000, "feeAssetId": null, "timestamp": 1669905331640, "version": 1, "sender": "3MwK6nw9HMwuKbXxu6J1rfecvePPd3JyAje", "senderPublicKey": "8JB75GXEKqxmpXc6KVtT9UNqJ3BBSUZDodYD4DU7CUUB", "proofs": [ "665b7ijmJZod9D4uDjL2MFZRmcDEp6i3DEKfgGosyveWYtNuFgiBuqq3TFkxL2JYp3ZTZRLhVq7bLjXGNbe6XLdG" ], "script": "base64:AAIFAAAAAAAAEYIIAhIJCgcBAQEBAQgBEgASBAoCCAgSAwoBCBIECgIICBIECgIICBIDCgEIEgAiD2dldFN0cmluZ09yRmFpbCIDa2V5IgNTRVAiCEJVRlNDQUxFIgZzY2FsZTgiCHRocm93RXJyIgNtc2ciCGFzU3RyaW5nIgN2YWwiByRtYXRjaDAiBnZhbFN0ciIdY29udmVydFByaWNlQXNzZXRJbnRvSWRvQXNzZXQiEHByaWNlQXNzZXRBbW91bnQiDnByaWNlQXNzZXRNVUxUIgVwcmljZSIJcHJpY2VNVUxUIgxpZG9Bc3NldE1VTFQiD2JQcmljZUFzc2V0TVVMVCINYklkb0Fzc2V0TVVMVCIOYlByaWNlQXNzZXRCVUYiD2JBbW91bnRBc3NldEJVRiIOSWR4Q2ZnSWRvU3RhcnQiEUlkeENmZ0lkb0R1cmF0aW9uIhBJZHhDZmdDbGFpbVN0YXJ0IhNJZHhDZmdDbGFpbUR1cmF0aW9uIgtJZHhDZmdQcmljZSIPSWR4Q2ZnUHJpY2VNdWx0IhBJZHhDZmdJZG9Bc3NldElkIhJJZHhDZmdJZG9Bc3NldE11bHQiEklkeENmZ1ByaWNlQXNzZXRJZCIUSWR4Q2ZnUHJpY2VBc3NldE11bHQiFUlkeENmZ01pbkludmVzdEFtb3VudCINZnJvbWF0Q29uZmlnUyIIaWRvU3RhcnQiC2lkb0R1cmF0aW9uIgpjbGFpbVN0YXJ0Ig1jbGFpbUR1cmF0aW9uIglwcmljZU11bHQiDGlkb0Fzc2V0SWQ1OCIMaWRvQXNzZXRNdWx0Ig5wcmljZUFzc2V0SWQ1OCIOcHJpY2VBc3NldE11bHQiD21pbkludmVzdEFtb3VudCITdG90YWxJZG9Bc3NldFRvU2VsbCIMZnJvbWF0Q29uZmlnIhFJZHhJbnZUb3RhbEFtb3VudCIVSWR4SW52UmVtYWluaW5nQW1vdW50Ih1JZHhJbnZDbGFpbWVkUHJpY2VBc3NldEFtb3VudCIbSWR4SW52Q2xhaW1lZElkb0Fzc2V0QW1vdW50IhdJZHhJbnZMYXN0Q2xhaW1lZEhlaWdodCIPZm9ybWF0SW52ZXN0b3JTIgt0b3RhbEFtb3VudCIPcmVtYWluaW5nQW1vdW50IhdjbGFpbWVkUHJpY2VBc3NldEFtb3VudCIVY2xhaW1lZElkb0Fzc2V0QW1vdW50IhFsYXN0Q2xhaW1lZEhlaWdodCIOZm9ybWF0SW52ZXN0b3IiE2Zvcm1hdEhpc3RvcnlSZWNvcmQiDmlkb0Fzc2V0QW1vdW50IglrZXlDb25maWciC2tleUludmVzdG9yIgt1c2VyQWRkcmVzcyIJa2V5VG90YWxzIhlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkIgR0eXBlIgZ0eElkNTgiFGtleVVTRE5DbGFpbURpc2FibGVkIhVrZXlVU0ROQ2xhaW1FbmRIZWlnaHQiD2tleVBlcmlvZExlbmd0aCIQa2V5Q3VycmVudFBlcmlvZCIUa2V5UGVyaW9kU3RhcnRIZWlnaHQiCXBlcmlvZE51bSISa2V5UGVyaW9kRW5kSGVpZ2h0Ih9rZXlVc2R0UHJpY2VBc3NldEFsbG93YWJsZVJhdGlvIhdrZXlUb3RhbFBlcmlvZEFsbG93YW5jZSIHYXNzZXRJZCIWa2V5VXNlclBlcmlvZEFsbG93YW5jZSIea2V5UGVyaW9kVG90YWxBdmFpbGFibGVUb0NsYWltIh1rZXlQZXJpb2RVc2VyQXZhaWxhYmxlVG9DbGFpbSIba2V5VXNkdFByaWNlQXNzZXRTdGFibGVQb29sIg5rZXlVc2R0QXNzZXRJZCIUa2V5UHJpY2VBc3NldEJhbGFuY2UiB2FkZHJlc3MiGmtleUludmVzdG9yUmVtYWluaW5nQW1vdW50IhdrZXlUb3RhbFJlbWFpbmluZ0Ftb3VudCITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiD3JlYWRDb25maWdBcnJheSIjcmVhZFRvdGFsc0FycmF5T3JEZWZhdWx0QnlDdXN0b21LZXkiCWN1c3RvbUtleSIYcmVhZFRvdGFsc0FycmF5T3JEZWZhdWx0IhpyZWFkSW52ZXN0b3JBcnJheU9yRGVmYXVsdCIXcmVhZEludmVzdG9yQXJyYXlPckZhaWwiFUlkeERpZmZUb3RhbEluY3JlbWVudCIkSWR4RGlmZlJlbWFpbmluZ1ByaWNlQW1vdW50SW5jcmVtZW50IiJJZHhEaWZmQ2xhaW1lZFByaWNlQW1vdW50SW5jcmVtZW50IiVJZHhEaWZmQ2xhaW1lZElkb0Fzc2V0QW1vdW50SW5jcmVtZW50IgtUb3RhbHNFbnRyeSIJb3JpZ0FycmF5Ig1pbmNyZW1lbnREaWZmIhRuZXdMYXN0Q2xhaW1lZEhlaWdodCIRcHJpY2VBc3NldEJhbGFuY2UiDm5ld1RvdGFsQW1vdW50IhJuZXdSZW1haW5pbmdBbW91bnQiCGNmZ0FycmF5IhJwcmljZUFzc2V0RGVjaW1hbHMiI3ByaWNlQXNzZXRCYWxhbmNlUHJpY2VBc3NldERlY2ltYWxzIhpuZXdDbGFpbWVkUHJpY2VBc3NldEFtb3VudCIYbmV3Q2xhaW1lZElkb0Fzc2V0QW1vdW50IgdlbnRyaWVzIgRkaWZmIhduZXdMb2dpY1JlbWFpbmluZ0Ftb3VudCIbSW52ZXN0T3BlcmF0aW9uSGlzdG9yeUVudHJ5IgR0eElkIhpDbGFpbU9wZXJhdGlvbkhpc3RvcnlFbnRyeSINaW50ZXJuYWxDbGFpbSIQY2xhaW1lZEFzc2V0SWQ1OCIIY2xhaW1FbmQiCmlkb0Fzc2V0SWQiDHByaWNlQXNzZXRJZCINdXNlckFkZHJlc3M1OCIPb3JpZ0ludmVzdEFycmF5IhFpbnZlc3RUb3RhbEFtb3VudCIaaW52ZXN0TGFzdENsYWltZWRIZWlnaHRUTVAiF2ludmVzdExhc3RDbGFpbWVkSGVpZ2h0IhRuZXdDbGFpbVBlcmlvZEhlaWdodCIOY2xhaW1pbmdCbG9ja3MiGGNsYWltaW5nUHJpY2VBc3NldEFtb3VudCIWY2xhaW1pbmdJZG9Bc3NldEFtb3VudCIGaXNVU0ROIhNpc1VTRE5DbGFpbURpc2FibGVkIgZjaGVja3MiD2ludGVybmFsQ2xhaW1WMiIJb3V0QW1vdW50Ihl0b3RhbFVzZXJBdmFpbGFibGVUb0NsYWltIh50b3RhbFBlcmlvZFByaWNlQXNzZXRBbGxvd2FuY2UiHXVzZXJQZXJpb2RQcmljZUFzc2V0QWxsb3dhbmNlIgxwZXJpb2RMZW5ndGgiDWN1cnJlbnRQZXJpb2QiG3plcm9QZXJpb2RFbmRIZWlnaElzRGVmaW5lZCINJHQwMTI5ODcxNDg1NyIVbGFzdFBlcmlvZFN0YXJ0SGVpZ2h0IhNsYXN0UGVyaW9kRW5kSGVpZ2h0Ig0kdDAxMzI0NzEzOTUyIhR1cGRhdGVkQ3VycmVudFBlcmlvZCILcGVyaW9kU3RhcnQiF2Jsb2Nrc1RvTGFzdFBlcmlvZFN0YXJ0IglwZXJpb2RFbmQiFXplcm9QZXJpb2RTdGFydEhlaWdodCITemVyb1BlcmlvZEVuZEhlaWdodCINJHQwMTQyMDcxNDU4OSIbcGVyaW9kVG90YWxBdmFpbGFibGVUb0NsYWltIhpwZXJpb2RVc2VyQXZhaWxhYmxlVG9DbGFpbSIZcGVyaW9kTWluQXZhaWxhYmxlVG9DbGFpbSIcdXNkdFByaWNlQXNzZXRBbGxvd2FibGVSYXRpbyIbcHV0T25lVGtuVjJQcmljZUFzc2V0QW1vdW50Ig0kdDAxNTYxMjE1ODY1IgFAIgVib251cyIJZmVlQW1vdW50IghscEFtb3VudCILdXNkdEFzc2V0SWQiDSR0MDE1OTI3MTYxNDUiFGdldE9uZVRrblYyRmVlQW1vdW50Igp1c2R0QW1vdW50IhpjdXJyZW50VXNkdFByaWNlQXNzZXRSYXRpbyITZW5kUGVyaW9kQmxvY2tzTGVmdCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiC211c3RNYW5hZ2VyIgFpIgJwZCICcGsiBmlkb0VuZCIDcG10IgxpZG9Bc3NldEluZm8iDnByaWNlQXNzZXRJbmZvIg9vcmlnVG90YWxzQXJyYXkiCnRvdGFsc0RpZmYiDm1pbkl2ZXN0QW1vdW50IgpwbXRBc3NldElkIglwbXRBbW91bnQiEW9yaWdJbnZlc3RvckFycmF5IhNuZXdQcmljZVRvdGFsQW1vdW50IhZyZXF1aXJlZElkb0Fzc2V0QW1vdW50Ig9jYWxsZXJBZGRyZXNzNTgiEGNsYWltUmVzdWx0VHVwbGUiCm91dEFzc2V0SWQiGmNsYWltZWRQcmljZUFtb3VudEZyb21EaWZmIh1jbGFpbWVkSWRvQXNzZXRBbW91bnRGcm9tRGlmZiINJHQwMjIwNTQyMjQ5OCIidXBkYXRlZFBlcmlvZFRvdGFsQXZhaWxhYmxlVG9DbGFpbSIhdXBkYXRlZFBlcmlvZFVzZXJBdmFpbGFibGVUb0NsYWltIg5ldmFsdWF0ZVJlc3VsdCIbYXZhaWxhYmxlUHJpY2VBbW91bnRUb0NsYWltIhBsYXN0Q2xhaW1FbnRyaWVzIhNpbnZlc3RvclRvdGFsQW1vdW50IhdpbnZlc3RvclJlbWFpbmluZ0Ftb3VudCIZaW52ZXN0b3JQcmljZUFzc2V0QmFsYW5jZSIXaW52ZXN0b3JJZG9Bc3NldEJhbGFuY2UiGWludmVzdG9yTGFzdENsYWltZWRIZWlnaHQiDm5ld0ludmVzdEFycmF5IgZ0b3RhbHMiEXRvdGFsc1RvdGFsQW1vdW50IhV0b3RhbHNSZW1haW5pbmdBbW91bnQiHXRvdGFsc0NsYWltZWRQcmljZUFzc2V0QW1vdW50Iht0b3RhbHNDbGFpbWVkSWRvQXNzZXRBbW91bnQiF3RvdGFsc0xhc3RDbGFpbWVkSGVpZ2h0IhhuZXdUb3RhbHNSZW1haW5pbmdBbW91bnQiDW5ld1RvdGFsQXJyYXkiF25ld1RvdGFsUmVtYWluaW5nQW1vdW50Ihh1cGRhdGVkUHJpY2VBc3NldEJhbGFuY2UiHHByaWNlQXNzZXRCYWxhbmNlSWRvRGVjaW1hbHMiFGNoZWNrVW5jbGFpbWVkQXNzZXRzIghpbnZlc3RvciIcaW52ZXN0b3JSZW1haW5pbmdBbW91bnRDaGVjayILbmV3SW52ZXN0b3IiCW5ld1RvdGFscyIVYXZhaWxhYmxlVG9DbGFpbUFycmF5IhlhdmFpbGFibGVJZG9BbW91bnRUb0NsYWltIi5hdmFpbGFibGVJZG9BbW91bnRUb0NsYWltV2l0aFByaWNlQXNzZXRCYWxhbmNlIg0kdDAzMzczNzM0MTQ5IhZjdXJyZW50UGVyaW9kRW5kSGVpZ2h0Ihp1c2VyVG90YWxQcmljZUFzc2V0Q2xhaW1lZCIMcmVzdWx0U3RyaW5nIgxwZXJpb2RMZW5naHQiE3VzZXJQZXJpb2RBbGxvd2FuY2UiFHRvdGFsUGVyaW9kQWxsb3dhbmNlIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSILY2hlY2tDYWxsZXIiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXkAAABDAQAA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", "chainId": 84, "height": 2341399, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2qW17c8JnPrwt2Bw4FoKQzpxMSG4bt4Hu6iqKS9WCJre Next: none Diff:
OldNewDifferences
134134 func aD (aE) = makeString(["%s%s", "priceAssetBalance", aE], c)
135135
136136
137-func aF (aE) = makeString(["%s%s", "remainingAmount", aE], c)
137+func aF (aE) = makeString(["%s%s", "investorRemainingAmount", aE], c)
138138
139139
140-func aG () = "%s__managerPublicKey"
140+func aG () = makeString(["%s", "totalRemainingAmount"], c)
141141
142142
143-func aH () = "%s__pendingManagerPublicKey"
143+func aH () = "%s__managerPublicKey"
144144
145145
146-func aI () = split(a(ah()), c)
146+func aI () = "%s__pendingManagerPublicKey"
147147
148148
149-func aJ (aK) = split(valueOrElse(getString(aK), Y("0", "0", "0", "0", "0")), c)
149+func aJ () = split(a(ah()), c)
150150
151151
152-func aL () = aJ(ak())
152+func aK (aL) = split(valueOrElse(getString(aL), Y("0", "0", "0", "0", "0")), c)
153153
154154
155-func aM (aj) = aJ(ai(aj))
155+func aM () = aK(ak())
156156
157157
158-func aN (aj) = split(a(ai(aj)), c)
158+func aN (aj) = aK(ai(aj))
159159
160160
161-let aO = 0
161+func aO (aj) = split(a(ai(aj)), c)
162162
163-let aP = 1
164163
165-let aQ = 2
164+let aP = 0
166165
167-let aR = 3
166+let aQ = 1
168167
169-func aS (b,aT,aU,aV,aW) = {
170- let Z = parseIntValue(aT[T])
171- let aa = parseIntValue(aT[U])
172- let ab = parseIntValue(aT[V])
173- let ac = parseIntValue(aT[W])
174- let ad = parseIntValue(aT[X])
175- let aX = (Z + aU[aO])
176- let aY = (aa + aU[aP])
177- let aZ = aI()
178- let O = aZ[D]
179- let ba = value(assetInfo(fromBase58String(O))).decimals
180- let bb = fraction(aW, e, pow(10, 0, ba, 0, 0, DOWN))
181- let bc = ((ab + aU[aQ]) - aW)
182- let bd = ((ac + aU[aR]) + bb)
183- let be = if ((0 > aY))
168+let aR = 2
169+
170+let aS = 3
171+
172+func aT (b,aU,aV,aW,aX) = {
173+ let Z = parseIntValue(aU[T])
174+ let aa = parseIntValue(aU[U])
175+ let ab = parseIntValue(aU[V])
176+ let ac = parseIntValue(aU[W])
177+ let ad = parseIntValue(aU[X])
178+ let aY = (Z + aV[aP])
179+ let aZ = (aa + aV[aQ])
180+ let ba = aJ()
181+ let O = ba[D]
182+ let bb = value(assetInfo(fromBase58String(O))).decimals
183+ let bc = fraction(aX, e, pow(10, 0, bb, 0, 0, DOWN))
184+ let bd = ((ab + aV[aR]) - aX)
185+ let be = ((ac + aV[aS]) + bc)
186+ let bf = if ((0 > aZ))
184187 then {
185- let bf = ((aX - bc) - bd)
186- let bg = if ((0 > bf))
188+ let bg = ((aY - bd) - be)
189+ let bh = if ((0 > bg))
187190 then 0
188- else bf
189- StringEntry(b, ae(aX, bg, bc, bd, aV))
191+ else bg
192+ StringEntry(b, ae(aY, bh, bd, be, aW))
190193 }
191- else StringEntry(b, ae(aX, aY, bc, bd, aV))
192- be
194+ else StringEntry(b, ae(aY, aZ, bd, be, aW))
195+ bf
193196 }
194197
195198
196-func bh (aj,m,ag,bi) = StringEntry(al("invest", aj, toBase58String(bi)), af(m, ag))
199+func bi (aj,m,ag,bj) = StringEntry(al("invest", aj, toBase58String(bj)), af(m, ag))
197200
198201
199-func bj (aj,m,ag,bi) = StringEntry(al("claim", aj, toBase58String(bi)), af(m, ag))
202+func bk (aj,m,ag,bj) = StringEntry(al("claim", aj, toBase58String(bj)), af(m, ag))
200203
201204
202-func bk (bl,aj,bi) = {
203- let aZ = aI()
204- let J = parseIntValue(aZ[x])
205- let K = parseIntValue(aZ[y])
206- let bm = (J + K)
207- let o = parseIntValue(aZ[z])
208- let L = parseIntValue(aZ[A])
209- let M = aZ[B]
210- let bn = fromBase58String(M)
211- let N = parseIntValue(aZ[C])
212- let O = aZ[D]
213- let bo = fromBase58String(O)
214- let P = parseIntValue(aZ[E])
215- let bp = toString(aj)
216- let bq = aN(bp)
217- let br = parseIntValue(bq[T])
218- let bs = parseIntValue(bq[X])
219- let bt = if ((J >= bs))
205+func bl (bm,aj,bj) = {
206+ let ba = aJ()
207+ let J = parseIntValue(ba[x])
208+ let K = parseIntValue(ba[y])
209+ let bn = (J + K)
210+ let o = parseIntValue(ba[z])
211+ let L = parseIntValue(ba[A])
212+ let M = ba[B]
213+ let bo = fromBase58String(M)
214+ let N = parseIntValue(ba[C])
215+ let O = ba[D]
216+ let bp = fromBase58String(O)
217+ let P = parseIntValue(ba[E])
218+ let bq = toString(aj)
219+ let br = aO(bq)
220+ let bs = parseIntValue(br[T])
221+ let bt = parseIntValue(br[X])
222+ let bu = if ((J >= bt))
220223 then J
221- else bs
222- let bu = if ((height > bm))
223- then bm
224+ else bt
225+ let bv = if ((height > bn))
226+ then bn
224227 else if ((J > height))
225228 then J
226229 else height
227- let bv = (bu - bt)
228- let bw = fraction(br, bv, K)
229- let bx = l(bw, P, o, L, N)
230- let by = (bl == O)
231- let bz = valueOrElse(getBoolean(ao()), false)
232- let bA = [if (!(if (by)
233- then bz
230+ let bw = (bv - bu)
231+ let bx = fraction(bs, bw, K)
232+ let by = l(bx, P, o, L, N)
233+ let bz = (bm == O)
234+ let bA = valueOrElse(getBoolean(ao()), false)
235+ let bB = [if (!(if (bz)
236+ then bA
234237 else false))
235238 then true
236239 else throw("USDN claim is disabled")]
237- if ((bA == bA))
238- then if ((bl == O))
239- then $Tuple6([0, -(bw), bw, 0], bw, bo, bq, bu, [bw, bx])
240- else if ((bl == M))
241- then $Tuple6([0, -(bw), 0, bx], bx, bn, bq, bu, [bw, bx])
242- else throw(("unsupported assetId: " + bl))
240+ if ((bB == bB))
241+ then if ((bm == O))
242+ then $Tuple6([0, -(bx), bx, 0], bx, bp, br, bv, [bx, by])
243+ else if ((bm == M))
244+ then $Tuple6([0, -(bx), 0, by], by, bo, br, bv, [bx, by])
245+ else throw(("unsupported assetId: " + bm))
243246 else throw("Strict value is not equal to itself.")
244247 }
245248
246249
247-func bB (O,bp,bC,bD) = {
248- let bE = value(getInteger(aw(O)))
249- let bF = value(getInteger(ay(O)))
250- let bG = value(getInteger(aq()))
251- let bH = valueOrElse(getInteger(ar()), 0)
252- let bI = isDefined(getInteger(au(0)))
253- let bJ = if ((bH > 0))
250+func bC (O,bq,bD,bE) = {
251+ let bF = value(getInteger(aw(O)))
252+ let bG = value(getInteger(ay(O)))
253+ let bH = value(getInteger(aq()))
254+ let bI = valueOrElse(getInteger(ar()), 0)
255+ let bJ = isDefined(getInteger(au(0)))
256+ let bK = if ((bI > 0))
254257 then {
255- let bK = value(getInteger(as(bH)))
256- let bL = value(getInteger(au(bH)))
257- let bM = if ((height > bL))
258+ let bL = value(getInteger(as(bI)))
259+ let bM = value(getInteger(au(bI)))
260+ let bN = if ((height > bM))
258261 then {
259- let bN = (bH + 1)
260- let bO = if ((height > (bL + bG)))
262+ let bO = (bI + 1)
263+ let bP = if ((height > (bM + bH)))
261264 then {
262- let bP = ((height - bL) % bG)
263- if ((bP == 0))
264- then ((height - bG) + 1)
265- else (height - bP)
265+ let bQ = ((height - bM) % bH)
266+ if ((bQ == 0))
267+ then ((height - bH) + 1)
268+ else (height - bQ)
266269 }
267- else (bL + 1)
268- let bQ = ((bO + bG) - 1)
269- $Tuple3(bN, bO, bQ)
270+ else (bM + 1)
271+ let bR = ((bP + bH) - 1)
272+ $Tuple3(bO, bP, bR)
270273 }
271- else $Tuple3(bH, bK, bL)
272- let bN = bM._1
273- let bO = bM._2
274- let bQ = bM._3
275- $Tuple3(bN, bO, bQ)
274+ else $Tuple3(bI, bL, bM)
275+ let bO = bN._1
276+ let bP = bN._2
277+ let bR = bN._3
278+ $Tuple3(bO, bP, bR)
276279 }
277- else if (bI)
280+ else if (bJ)
278281 then {
279- let bR = value(getInteger(as(0)))
280- let bS = value(getInteger(au(0)))
281- let bT = if ((height > bS))
282+ let bS = value(getInteger(as(0)))
283+ let bT = value(getInteger(au(0)))
284+ let bU = if ((height > bT))
282285 then {
283- let bN = (bH + 1)
284- let bO = (bS + 1)
285- let bQ = ((bO + bG) - 1)
286- $Tuple3(bN, bO, bQ)
286+ let bO = (bI + 1)
287+ let bP = (bT + 1)
288+ let bR = ((bP + bH) - 1)
289+ $Tuple3(bO, bP, bR)
287290 }
288- else $Tuple3(bH, bR, bS)
289- let bN = bT._1
290- let bO = bT._2
291- let bQ = bT._3
292- $Tuple3(bN, bO, bQ)
291+ else $Tuple3(bI, bS, bT)
292+ let bO = bU._1
293+ let bP = bU._2
294+ let bR = bU._3
295+ $Tuple3(bO, bP, bR)
293296 }
294- else $Tuple3(bH, valueOrElse(getInteger(as(bH)), height), valueOrElse(getInteger(au(bH)), ((height + bG) - 1)))
295- let bN = bJ._1
296- let bO = bJ._2
297- let bQ = bJ._3
298- let bU = valueOrElse(getInteger(az(O, bN)), bE)
299- let bV = valueOrElse(getInteger(aA(O, bN, bp)), bF)
300- let aW = valueOrElse(getInteger(aD(bp)), 0)
301- let bW = min([(bC + aW), bU, bV])
302- let bX = value(getInteger(av()))
303- let bY = e
304- let bZ = {
305- let ca = invoke(addressFromStringValue(value(getString(aB()))), "putOneTknV2WithoutTakeFeeREADONLY", [bY, O], nil)
306- if ($isInstanceOf(ca, "(Int, Int, Int)"))
307- then ca
297+ else $Tuple3(bI, valueOrElse(getInteger(as(bI)), height), valueOrElse(getInteger(au(bI)), ((height + bH) - 1)))
298+ let bO = bK._1
299+ let bP = bK._2
300+ let bR = bK._3
301+ let bV = valueOrElse(getInteger(az(O, bO)), bF)
302+ let bW = valueOrElse(getInteger(aA(O, bO, bq)), bG)
303+ let aX = valueOrElse(getInteger(aD(bq)), 0)
304+ let bX = min([(bD + aX), bV, bW])
305+ let bY = value(getInteger(av()))
306+ let bZ = e
307+ let ca = {
308+ let cb = invoke(addressFromStringValue(value(getString(aB()))), "putOneTknV2WithoutTakeFeeREADONLY", [bZ, O], nil)
309+ if ($isInstanceOf(cb, "(Int, Int, Int)"))
310+ then cb
308311 else throw("Couldn't cast Any to (Int, Int, Int)")
309312 }
310- if ((bZ == bZ))
313+ if ((ca == ca))
311314 then {
312- let cb = bZ._3
313- let cc = bZ._2
314- let cd = bZ._1
315- let ce = value(getString(aC()))
316- let cf = {
317- let ca = invoke(addressFromStringValue(value(getString(aB()))), "getOneTknV2READONLY", [ce, cd], nil)
318- if ($isInstanceOf(ca, "(Int, Int)"))
319- then ca
315+ let cc = ca._3
316+ let cd = ca._2
317+ let ce = ca._1
318+ let cf = value(getString(aC()))
319+ let cg = {
320+ let cb = invoke(addressFromStringValue(value(getString(aB()))), "getOneTknV2READONLY", [cf, ce], nil)
321+ if ($isInstanceOf(cb, "(Int, Int)"))
322+ then cb
320323 else throw("Couldn't cast Any to (Int, Int)")
321324 }
322- if ((cf == cf))
325+ if ((cg == cg))
323326 then {
324- let cg = cf._2
325- let ch = cf._1
326- let ci = fraction(bY, e, ch)
327- let cj = (bQ - height)
328- $Tuple10(bW, bU, bV, bD, bX, ci, cj, bN, bO, bQ)
327+ let ch = cg._2
328+ let ci = cg._1
329+ let cj = fraction(bZ, e, ci)
330+ let ck = (bR - height)
331+ $Tuple10(bX, bV, bW, bE, bY, cj, ck, bO, bP, bR)
329332 }
330333 else throw("Strict value is not equal to itself.")
331334 }
333336 }
334337
335338
336-func ck () = {
337- let j = getString(aG())
339+func cl () = {
340+ let j = getString(aH())
338341 if ($isInstanceOf(j, "String"))
339342 then {
340- let cl = j
341- fromBase58String(cl)
343+ let cm = j
344+ fromBase58String(cm)
342345 }
343346 else if ($isInstanceOf(j, "Unit"))
344347 then unit
346349 }
347350
348351
349-func cm () = {
350- let j = getString(aH())
352+func cn () = {
353+ let j = getString(aI())
351354 if ($isInstanceOf(j, "String"))
352355 then {
353- let cl = j
354- fromBase58String(cl)
356+ let cm = j
357+ fromBase58String(cm)
355358 }
356359 else if ($isInstanceOf(j, "Unit"))
357360 then unit
359362 }
360363
361364
362-func cn (co) = {
363- let cp = throw("Permission denied")
364- let j = ck()
365+func co (cp) = {
366+ let cq = throw("Permission denied")
367+ let j = cl()
365368 if ($isInstanceOf(j, "ByteVector"))
366369 then {
367- let cq = j
368- if ((co.callerPublicKey == cq))
370+ let cr = j
371+ if ((cp.callerPublicKey == cr))
369372 then true
370- else cp
373+ else cq
371374 }
372375 else if ($isInstanceOf(j, "Unit"))
373- then if ((co.caller == this))
376+ then if ((cp.caller == this))
374377 then true
375- else cp
378+ else cq
376379 else throw("Match error")
377380 }
378381
379382
380-@Callable(co)
383+@Callable(cp)
381384 func constructor (H,I,J,K,o,O,Q) = {
382385 let L = ((100 * 1000) * 1000)
383- let cr = (H + I)
386+ let cs = (H + I)
384387 if (isDefined(getString(ah())))
385388 then throw("already initialized")
386- else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(co.caller)))
389+ else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(cp.caller)))
387390 then throw("not authorized")
388- else if ((size(co.payments) != 1))
391+ else if ((size(cp.payments) != 1))
389392 then throw("exactly 1 payment must be attached")
390- else if ((cr >= J))
393+ else if ((cs >= J))
391394 then throw("claimStart must be greater than idoEnd")
392395 else {
393- let cs = value(co.payments[0])
394- let bn = value(cs.assetId)
395- let ct = valueOrErrorMessage(assetInfo(bn), "fail to load ido asset info")
396- let M = toBase58String(bn)
397- let N = pow(10, 0, ct.decimals, 0, 0, DOWN)
398- let bo = fromBase58String(O)
399- let cu = valueOrErrorMessage(assetInfo(bo), "fail to load price asset info")
400- let P = pow(10, 0, cu.decimals, 0, 0, DOWN)
401- let cv = aL()
402- let cw = [0, 0, 0, 0]
403-[StringEntry(ah(), S(H, I, J, K, o, L, M, N, O, P, Q, cs.amount)), aS(ak(), cv, cw, J, 0)]
396+ let ct = value(cp.payments[0])
397+ let bo = value(ct.assetId)
398+ let cu = valueOrErrorMessage(assetInfo(bo), "fail to load ido asset info")
399+ let M = toBase58String(bo)
400+ let N = pow(10, 0, cu.decimals, 0, 0, DOWN)
401+ let bp = fromBase58String(O)
402+ let cv = valueOrErrorMessage(assetInfo(bp), "fail to load price asset info")
403+ let P = pow(10, 0, cv.decimals, 0, 0, DOWN)
404+ let cw = aM()
405+ let cx = [0, 0, 0, 0]
406+[StringEntry(ah(), S(H, I, J, K, o, L, M, N, O, P, Q, ct.amount)), aT(ak(), cw, cx, J, 0)]
404407 }
405408 }
406409
407410
408411
409-@Callable(co)
412+@Callable(cp)
410413 func invest () = {
411- let aZ = aI()
412- let H = parseIntValue(aZ[v])
413- let I = parseIntValue(aZ[w])
414- let cr = (H + I)
415- let J = parseIntValue(aZ[x])
416- let K = parseIntValue(aZ[y])
417- let o = parseIntValue(aZ[z])
418- let L = parseIntValue(aZ[A])
419- let M = aZ[B]
420- let bn = fromBase58String(M)
421- let N = parseIntValue(aZ[C])
422- let O = aZ[D]
423- let bo = fromBase58String(O)
424- let P = parseIntValue(aZ[E])
425- let cx = parseIntValue(aZ[F])
426- let aj = toString(co.caller)
414+ let ba = aJ()
415+ let H = parseIntValue(ba[v])
416+ let I = parseIntValue(ba[w])
417+ let cs = (H + I)
418+ let J = parseIntValue(ba[x])
419+ let K = parseIntValue(ba[y])
420+ let o = parseIntValue(ba[z])
421+ let L = parseIntValue(ba[A])
422+ let M = ba[B]
423+ let bo = fromBase58String(M)
424+ let N = parseIntValue(ba[C])
425+ let O = ba[D]
426+ let bp = fromBase58String(O)
427+ let P = parseIntValue(ba[E])
428+ let cy = parseIntValue(ba[F])
429+ let aj = toString(cp.caller)
427430 if ((H > height))
428431 then throw("ido has not been started yet")
429- else if ((height > cr))
432+ else if ((height > cs))
430433 then throw("ido has been already ended")
431- else if ((size(co.payments) != 1))
434+ else if ((size(cp.payments) != 1))
432435 then throw("exactly 1 payment is expected")
433436 else {
434- let cs = value(co.payments[0])
435- let cy = value(cs.assetId)
436- let cz = cs.amount
437- if ((cy != bo))
438- then throw((("invalid payment asset id: " + toBase58String(cy)) + " is expected"))
437+ let ct = value(cp.payments[0])
438+ let cz = value(ct.assetId)
439+ let cA = ct.amount
440+ if ((cz != bp))
441+ then throw((("invalid payment asset id: " + toBase58String(cz)) + " is expected"))
439442 else {
440- let cA = aM(aj)
441- let cv = aL()
442- let cB = (parseIntValue(cv[T]) + cz)
443- let cC = (cB * 100)
444- if ((cC > assetBalance(this, bn)))
443+ let cB = aN(aj)
444+ let cw = aM()
445+ let cC = (parseIntValue(cw[T]) + cA)
446+ let cD = (cC * 100)
447+ if ((cD > assetBalance(this, bo)))
445448 then throw("IDO asset has been - sold consider to use smaller payment")
446449 else {
447- let cw = [cz, cz, 0, 0]
448-[aS(ai(aj), cA, cw, J, 0), aS(ak(), cv, cw, J, 0), bh(aj, cz, 0, co.transactionId)]
450+ let cx = [cA, cA, 0, 0]
451+[aT(ai(aj), cB, cx, J, 0), aT(ak(), cw, cx, J, 0), bi(aj, cA, 0, cp.transactionId)]
449452 }
450453 }
451454 }
453456
454457
455458
456-@Callable(co)
457-func claim (bl,bp) = {
458- let cD = toString(co.caller)
459- if ((bp != cD))
459+@Callable(cp)
460+func claim (bm,bq) = {
461+ let cE = toString(cp.caller)
462+ if ((bq != cE))
460463 then throw("not authorized")
461464 else {
462- let aZ = aI()
463- let O = aZ[D]
464- let cE = bk(bl, co.caller, co.transactionId)
465- let cw = cE._1
466- let bC = cE._2
467- let cF = cE._3
468- let bq = cE._4
469- let bu = cE._5
470- let cG = cw[aQ]
471- let cH = cw[aR]
472- let aW = valueOrElse(getInteger(aD(bp)), 0)
473- let ba = value(assetInfo(fromBase58String(O))).decimals
474- let be = if ((bl == O))
465+ let ba = aJ()
466+ let O = ba[D]
467+ let cF = bl(bm, cp.caller, cp.transactionId)
468+ let cx = cF._1
469+ let bD = cF._2
470+ let cG = cF._3
471+ let br = cF._4
472+ let bv = cF._5
473+ let cH = cx[aR]
474+ let cI = cx[aS]
475+ let aX = valueOrElse(getInteger(aD(bq)), 0)
476+ let bb = value(assetInfo(fromBase58String(O))).decimals
477+ let bf = if ((bm == O))
475478 then {
476- let cI = bB(O, bp, bC, cw[aQ])
477- let bW = cI._1
478- let bU = cI._2
479- let bV = cI._3
480- let bD = cI._4
481- let bX = cI._5
482- let ci = cI._6
483- let cj = cI._7
484- let bN = cI._8
485- let bO = cI._9
486- let bQ = cI._10
487- let bA = [if ((bV > 0))
479+ let cJ = bC(O, bq, bD, cx[aR])
480+ let bX = cJ._1
481+ let bV = cJ._2
482+ let bW = cJ._3
483+ let bE = cJ._4
484+ let bY = cJ._5
485+ let cj = cJ._6
486+ let ck = cJ._7
487+ let bO = cJ._8
488+ let bP = cJ._9
489+ let bR = cJ._10
490+ let bB = [if ((bW > 0))
488491 then true
489- else f("unavailable to claim because user period allowance reached"), if ((bU > 0))
492+ else f("unavailable to claim because user period allowance reached"), if ((bV > 0))
490493 then true
491- else f("unavailable to claim because total period allowance reached"), if ((bW > 0))
494+ else f("unavailable to claim because total period allowance reached"), if ((bX > 0))
492495 then true
493- else f("nothing to claim"), if ((bX > ci))
496+ else f("nothing to claim"), if ((bY > cj))
494497 then true
495498 else f("unavailable to claim because usdn price lower than usdtPriceAssetAllowableRatio")]
496- if ((bA == bA))
499+ if ((bB == bB))
497500 then {
498- let cJ = (bU - bW)
499- let cK = (bV - bW)
500- let be = if ((aW >= bW))
501- then [ScriptTransfer(co.caller, bW, cF), IntegerEntry(aD(bp), (aW - bW))]
501+ let cK = (bV - bX)
502+ let cL = (bW - bX)
503+ let bf = if ((aX > bX))
504+ then [ScriptTransfer(cp.caller, bX, cG), IntegerEntry(aD(bq), (aX - bX))]
502505 else {
503- let cL = split(h(invoke(this, "claimREADONLY", [O, bp], nil)), c)
504- if ((cL == cL))
506+ let cM = split(h(invoke(this, "claimREADONLY", [O, bq], nil)), c)
507+ if ((cM == cM))
505508 then {
506- let cM = parseIntValue(cL[3])
507- let cN = if ((cM == bW))
509+ let cN = parseIntValue(cM[3])
510+ let cO = if ((cN == bX))
508511 then {
509- let cO = parseIntValue(bq[T])
510- let cP = parseIntValue(bq[U])
511- let cQ = parseIntValue(bq[V])
512- let cR = parseIntValue(bq[W])
513- let cS = parseIntValue(bq[X])
514- let cT = [toString(cO), "0", toString(cQ), toString(cR), toString(cS)]
515- let cU = aL()
516- let cV = parseIntValue(cU[T])
517- let cW = parseIntValue(cU[U])
518- let cX = parseIntValue(cU[U])
519- let cY = parseIntValue(cU[V])
520- let cZ = parseIntValue(cU[X])
521- let da = (cW - cP)
522- let db = [toString(cV), toString(da), toString(cX), toString(cY), toString(cZ)]
523-[StringEntry(aF(bp), toString(cP)), aS(ai(bp), cT, cw, bu, 0), aS(ak(), db, cw, bu, 0)]
512+ let cP = parseIntValue(br[T])
513+ let cQ = parseIntValue(br[U])
514+ let cR = parseIntValue(br[V])
515+ let cS = parseIntValue(br[W])
516+ let cT = parseIntValue(br[X])
517+ let cU = [toString(cP), "0", toString(cR), toString(cS), toString(cT)]
518+ let cV = aM()
519+ let cW = parseIntValue(cV[T])
520+ let cX = parseIntValue(cV[U])
521+ let cY = parseIntValue(cV[U])
522+ let cZ = parseIntValue(cV[V])
523+ let da = parseIntValue(cV[X])
524+ let db = (cX - cQ)
525+ let dc = [toString(cW), toString(db), toString(cY), toString(cZ), toString(da)]
526+ let dd = (valueOrElse(getInteger(aG()), 0) - cQ)
527+[StringEntry(aF(bq), toString(cQ)), StringEntry(aG(), toString(dd)), aT(ai(bq), cU, cx, bv, 0), aT(ak(), dc, cx, bv, 0)]
524528 }
525- else [aS(ai(bp), bq, cw, bu, 0), aS(ak(), aL(), cw, bu, 0)]
526- let dc = ((aW + bC) - bW)
527- ([ScriptTransfer(co.caller, bW, cF), IntegerEntry(aD(bp), dc)] ++ cN)
529+ else [aT(ai(bq), br, cx, bv, 0), aT(ak(), aM(), cx, bv, 0)]
530+ let de = ((aX + bD) - bX)
531+ ([ScriptTransfer(cp.caller, bX, cG), IntegerEntry(aD(bq), de)] ++ cO)
528532 }
529533 else throw("Strict value is not equal to itself.")
530534 }
531- $Tuple2(([IntegerEntry(ar(), bN), IntegerEntry(as(bN), bO), IntegerEntry(au(bN), bQ), IntegerEntry(az(O, bN), cJ), IntegerEntry(aA(O, bN, bp), cK), bj(bp, bW, cH, co.transactionId)] ++ be), unit)
535+ $Tuple2(([IntegerEntry(ar(), bO), IntegerEntry(as(bO), bP), IntegerEntry(au(bO), bR), IntegerEntry(az(O, bO), cK), IntegerEntry(aA(O, bO, bq), cL), bk(bq, bX, cI, cp.transactionId)] ++ bf), unit)
532536 }
533537 else throw("Strict value is not equal to itself.")
534538 }
535539 else {
536- let dd = fraction(aW, e, pow(10, 0, ba, 0, 0, DOWN))
537- $Tuple2([ScriptTransfer(co.caller, (bC + dd), cF), IntegerEntry(aD(bp), 0), aS(ai(bp), bq, cw, bu, aW), aS(ak(), aL(), cw, bu, aW), bj(bp, cG, (cH + dd), co.transactionId)], unit)
540+ let df = fraction(aX, e, pow(10, 0, bb, 0, 0, DOWN))
541+ $Tuple2([ScriptTransfer(cp.caller, (bD + df), cG), IntegerEntry(aD(bq), 0), aT(ai(bq), br, cx, bv, aX), aT(ak(), aM(), cx, bv, aX), bk(bq, cH, (cI + df), cp.transactionId)], unit)
538542 }
539- be
543+ bf
540544 }
541545 }
542546
543547
544548
545-@Callable(co)
546-func cleanRemaingAmount (bp) = {
547- let O = aI()[D]
548- let cL = split(h(invoke(this, "claimREADONLY", [O, bp], nil)), c)
549- if ((cL == cL))
549+@Callable(cp)
550+func cleanRemaingAmount (bq) = {
551+ let O = aJ()[D]
552+ let cM = split(h(invoke(this, "claimREADONLY", [O, bq], nil)), c)
553+ if ((cM == cM))
550554 then {
551- let cM = parseIntValue(cL[3])
552- let de = if ((cM == 0))
555+ let cN = parseIntValue(cM[3])
556+ let dg = if ((cN == 0))
553557 then true
554558 else f("user have unclaimed assets")
555- if ((de == de))
559+ if ((dg == dg))
556560 then {
557- let df = split(value(getString(ai(bp))), c)
558- let cO = parseIntValue(df[T])
559- let cP = parseIntValue(df[U])
560- let cQ = parseIntValue(df[V])
561- let cR = parseIntValue(df[W])
562- let cS = parseIntValue(df[X])
563- let dg = if ((cP != 0))
561+ let dh = split(value(getString(ai(bq))), c)
562+ let cP = parseIntValue(dh[T])
563+ let cQ = parseIntValue(dh[U])
564+ let cR = parseIntValue(dh[V])
565+ let cS = parseIntValue(dh[W])
566+ let cT = parseIntValue(dh[X])
567+ let di = if ((cQ != 0))
564568 then true
565569 else f("investorRemainingAmount already zero")
566- if ((dg == dg))
570+ if ((di == di))
567571 then {
568- let dh = makeString(["%d%d%d%d%d", toString(cO), "0", toString(cQ), toString(cR), toString(cS)], c)
569- let cU = split(value(getString(ak())), c)
570- let cV = parseIntValue(cU[T])
571- let cW = parseIntValue(cU[U])
572- let cX = parseIntValue(cU[U])
573- let cY = parseIntValue(cU[V])
574- let cZ = parseIntValue(cU[X])
575- let di = makeString(["%d%d%d%d%d", toString(cV), toString((cW - cP)), toString(cX), toString(cY), toString(cZ)], c)
576-[StringEntry(aF(bp), toString(cP)), StringEntry(ai(bp), dh), StringEntry(ak(), di)]
572+ let dj = makeString(["%d%d%d%d%d", toString(cP), "0", toString(cR), toString(cS), toString(cT)], c)
573+ let cV = split(value(getString(ak())), c)
574+ let cW = parseIntValue(cV[T])
575+ let cX = parseIntValue(cV[U])
576+ let cY = parseIntValue(cV[U])
577+ let cZ = parseIntValue(cV[V])
578+ let da = parseIntValue(cV[X])
579+ let dk = makeString(["%d%d%d%d%d", toString(cW), toString((cX - cQ)), toString(cY), toString(cZ), toString(da)], c)
580+ let dd = (valueOrElse(getInteger(aG()), 0) - cQ)
581+[StringEntry(aF(bq), toString(cQ)), StringEntry(aG(), toString(dd)), StringEntry(ai(bq), dj), StringEntry(ak(), dk)]
577582 }
578583 else throw("Strict value is not equal to itself.")
579584 }
584589
585590
586591
587-@Callable(co)
588-func claimREADONLY (bl,bp) = {
589- let cE = bk(bl, addressFromStringValue(bp), fromBase58String(""))
590- let cw = cE._1
591- let bC = cE._2
592- let cF = cE._3
593- let bq = cE._4
594- let bu = cE._5
595- let dj = cE._6
596- let cM = dj[0]
597- let dk = dj[1]
598- $Tuple2(nil, makeString(["%s%d%d", bp, toString(cM), toString(dk)], c))
592+@Callable(cp)
593+func claimREADONLY (bm,bq) = {
594+ let cF = bl(bm, addressFromStringValue(bq), fromBase58String(""))
595+ let cx = cF._1
596+ let bD = cF._2
597+ let cG = cF._3
598+ let br = cF._4
599+ let bv = cF._5
600+ let dl = cF._6
601+ let cN = dl[0]
602+ let dm = dl[1]
603+ $Tuple2(nil, makeString(["%s%d%d", bq, toString(cN), toString(dm)], c))
599604 }
600605
601606
602607
603-@Callable(co)
604-func claimV2READONLY (bl,bp) = {
605- let cE = bk(bl, addressFromStringValue(bp), fromBase58String(""))
606- let cw = cE._1
607- let bC = cE._2
608- let cF = cE._3
609- let bq = cE._4
610- let bu = cE._5
611- let dj = cE._6
612- let cM = dj[0]
613- let dk = dj[1]
614- let aZ = aI()
615- let O = aZ[D]
616- let aW = valueOrElse(getInteger(aD(bp)), 0)
617- let dd = (aW * 100)
618- let dl = (dk + dd)
619- let dm = bB(O, bp, bC, cw[aQ])
620- let bW = dm._1
621- let bU = dm._2
622- let bV = dm._3
623- let bD = dm._4
624- let bX = dm._5
625- let ci = dm._6
626- let cj = dm._7
627- let bN = dm._8
628- let bO = dm._9
629- let bQ = dm._10
630- let dn = valueOrElse(getInteger(au(bN)), 0)
631- let do = (parseIntValue(aN(bp)[V]) - aW)
632- let dp = if ((height > dn))
608+@Callable(cp)
609+func claimV2READONLY (bm,bq) = {
610+ let cF = bl(bm, addressFromStringValue(bq), fromBase58String(""))
611+ let cx = cF._1
612+ let bD = cF._2
613+ let cG = cF._3
614+ let br = cF._4
615+ let bv = cF._5
616+ let dl = cF._6
617+ let cN = dl[0]
618+ let dm = dl[1]
619+ let ba = aJ()
620+ let O = ba[D]
621+ let aX = valueOrElse(getInteger(aD(bq)), 0)
622+ let df = (aX * 100)
623+ let dn = (dm + df)
624+ let do = bC(O, bq, bD, cx[aR])
625+ let bX = do._1
626+ let bV = do._2
627+ let bW = do._3
628+ let bE = do._4
629+ let bY = do._5
630+ let cj = do._6
631+ let ck = do._7
632+ let bO = do._8
633+ let bP = do._9
634+ let bR = do._10
635+ let dp = valueOrElse(getInteger(au(bO)), 0)
636+ let dq = (parseIntValue(aO(bq)[V]) - aX)
637+ let dr = if ((height > dp))
633638 then {
634- let dq = value(getInteger(aq()))
635- let dr = value(getInteger(ay(O)))
636- let ds = value(getInteger(aw(O)))
637- makeString(["%d%d%d%d%d%d", toString(dl), toString(dr), toString(ds), toString(bX), toString(ci), toString(dq), toString(do)], c)
639+ let ds = value(getInteger(aq()))
640+ let dt = value(getInteger(ay(O)))
641+ let du = value(getInteger(aw(O)))
642+ makeString(["%d%d%d%d%d%d", toString(dn), toString(dt), toString(du), toString(bY), toString(cj), toString(ds), toString(dq)], c)
638643 }
639- else makeString(["%d%d%d%d%d%d", toString(dl), toString(bW), toString(bU), toString(bX), toString(ci), toString(cj), toString(do)], c)
640- $Tuple2(nil, dp)
644+ else makeString(["%d%d%d%d%d%d", toString(dn), toString(bX), toString(bV), toString(bY), toString(cj), toString(ck), toString(dq)], c)
645+ $Tuple2(nil, dr)
641646 }
642647
643648
644649
645-@Callable(co)
646-func setManager (dt) = {
647- let du = cn(co)
648- if ((du == du))
650+@Callable(cp)
651+func setManager (dv) = {
652+ let dw = co(cp)
653+ if ((dw == dw))
649654 then {
650- let dv = fromBase58String(dt)
651- if ((dv == dv))
652- then [StringEntry(aH(), dt)]
655+ let dx = fromBase58String(dv)
656+ if ((dx == dx))
657+ then [StringEntry(aI(), dv)]
653658 else throw("Strict value is not equal to itself.")
654659 }
655660 else throw("Strict value is not equal to itself.")
657662
658663
659664
660-@Callable(co)
665+@Callable(cp)
661666 func confirmManager () = {
662- let dw = cm()
663- let dx = if (isDefined(dw))
667+ let dy = cn()
668+ let dz = if (isDefined(dy))
664669 then true
665670 else throw("No pending manager")
666- if ((dx == dx))
671+ if ((dz == dz))
667672 then {
668- let dy = if ((co.callerPublicKey == value(dw)))
673+ let dA = if ((cp.callerPublicKey == value(dy)))
669674 then true
670675 else throw("You are not pending manager")
671- if ((dy == dy))
672- then [StringEntry(aG(), toBase58String(value(dw))), DeleteEntry(aH())]
676+ if ((dA == dA))
677+ then [StringEntry(aH(), toBase58String(value(dy))), DeleteEntry(aI())]
673678 else throw("Strict value is not equal to itself.")
674679 }
675680 else throw("Strict value is not equal to itself.")
676681 }
677682
678683
679-@Verifier(dz)
680-func dA () = {
681- let dB = {
682- let j = ck()
684+@Verifier(dB)
685+func dC () = {
686+ let dD = {
687+ let j = cl()
683688 if ($isInstanceOf(j, "ByteVector"))
684689 then {
685- let cq = j
686- cq
690+ let cr = j
691+ cr
687692 }
688693 else if ($isInstanceOf(j, "Unit"))
689- then dz.senderPublicKey
694+ then dB.senderPublicKey
690695 else throw("Match error")
691696 }
692- sigVerify(dz.bodyBytes, dz.proofs[0], dB)
697+ sigVerify(dB.bodyBytes, dB.proofs[0], dD)
693698 }
694699
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b) = valueOrErrorMessage(getString(b), (("mandatory this." + b) + " is not defined"))
55
66
77 let c = "__"
88
99 let d = toBigInt(1000000000000000000)
1010
1111 let e = 100000000
1212
1313 func f (g) = throw(makeString(["ido.ride:", g], " "))
1414
1515
1616 func h (i) = {
1717 let j = i
1818 if ($isInstanceOf(j, "String"))
1919 then {
2020 let k = j
2121 k
2222 }
2323 else throw("fail to cast into String")
2424 }
2525
2626
2727 func l (m,n,o,p,q) = {
2828 let r = toBigInt(n)
2929 let s = toBigInt(q)
3030 let t = fraction(toBigInt(m), d, r)
3131 let u = fraction(t, toBigInt(p), toBigInt(o))
3232 toInt(fraction(u, toBigInt(q), d))
3333 }
3434
3535
3636 let v = 1
3737
3838 let w = 2
3939
4040 let x = 3
4141
4242 let y = 4
4343
4444 let z = 5
4545
4646 let A = 6
4747
4848 let B = 7
4949
5050 let C = 8
5151
5252 let D = 9
5353
5454 let E = 10
5555
5656 let F = 11
5757
5858 func G (H,I,J,K,o,L,M,N,O,P,Q,R) = makeString(["%d%d%d%d%d%d%s%d%s%d%d%d", H, I, J, K, o, L, M, N, O, P, Q, R], c)
5959
6060
6161 func S (H,I,J,K,o,L,M,N,O,P,Q,R) = G(toString(H), toString(I), toString(J), toString(K), toString(o), toString(L), M, toString(N), O, toString(P), toString(Q), toString(R))
6262
6363
6464 let T = 1
6565
6666 let U = 2
6767
6868 let V = 3
6969
7070 let W = 4
7171
7272 let X = 5
7373
7474 func Y (Z,aa,ab,ac,ad) = makeString(["%d%d%d%d%d", Z, aa, ab, ac, ad], c)
7575
7676
7777 func ae (Z,aa,ab,ac,ad) = Y(toString(Z), toString(aa), toString(ab), toString(ac), toString(ad))
7878
7979
8080 func af (m,ag) = makeString(["%d%d%d%d", toString(height), toString(lastBlock.timestamp), toString(m), toString(ag)], c)
8181
8282
8383 func ah () = "%s__config"
8484
8585
8686 func ai (aj) = ("%s__" + aj)
8787
8888
8989 func ak () = "%s__totals"
9090
9191
9292 func al (am,aj,an) = makeString(["%s%s%s%s__history", am, aj, an], c)
9393
9494
9595 func ao () = "%s__usdnClaimDisabled"
9696
9797
9898 func ap () = "%s__usdnClaimEndHeight"
9999
100100
101101 func aq () = makeString(["%s", "periodLength"], c)
102102
103103
104104 func ar () = makeString(["%s", "currentPeriod"], c)
105105
106106
107107 func as (at) = makeString(["%s%s", "periodStartHeight", toString(at)], c)
108108
109109
110110 func au (at) = makeString(["%s%s", "periodEndHeight", toString(at)], c)
111111
112112
113113 func av () = makeString(["%s", "usdtPriceAssetAllowableRatio"], c)
114114
115115
116116 func aw (ax) = makeString(["%s%s", "totalPeriodAllowance", ax], c)
117117
118118
119119 func ay (ax) = makeString(["%s%s", "userPeriodAllowance", ax], c)
120120
121121
122122 func az (ax,at) = makeString(["%s%s%s", "periodTotalAvailableToClaim", ax, toString(at)], c)
123123
124124
125125 func aA (ax,at,aj) = makeString(["%s%s%s%s", "periodUserAvailableToClaim", ax, toString(at), aj], c)
126126
127127
128128 func aB () = makeString(["%s", "usdtPriceAssetStablePool"], c)
129129
130130
131131 func aC () = makeString(["%s", "usdtAssetId"], c)
132132
133133
134134 func aD (aE) = makeString(["%s%s", "priceAssetBalance", aE], c)
135135
136136
137-func aF (aE) = makeString(["%s%s", "remainingAmount", aE], c)
137+func aF (aE) = makeString(["%s%s", "investorRemainingAmount", aE], c)
138138
139139
140-func aG () = "%s__managerPublicKey"
140+func aG () = makeString(["%s", "totalRemainingAmount"], c)
141141
142142
143-func aH () = "%s__pendingManagerPublicKey"
143+func aH () = "%s__managerPublicKey"
144144
145145
146-func aI () = split(a(ah()), c)
146+func aI () = "%s__pendingManagerPublicKey"
147147
148148
149-func aJ (aK) = split(valueOrElse(getString(aK), Y("0", "0", "0", "0", "0")), c)
149+func aJ () = split(a(ah()), c)
150150
151151
152-func aL () = aJ(ak())
152+func aK (aL) = split(valueOrElse(getString(aL), Y("0", "0", "0", "0", "0")), c)
153153
154154
155-func aM (aj) = aJ(ai(aj))
155+func aM () = aK(ak())
156156
157157
158-func aN (aj) = split(a(ai(aj)), c)
158+func aN (aj) = aK(ai(aj))
159159
160160
161-let aO = 0
161+func aO (aj) = split(a(ai(aj)), c)
162162
163-let aP = 1
164163
165-let aQ = 2
164+let aP = 0
166165
167-let aR = 3
166+let aQ = 1
168167
169-func aS (b,aT,aU,aV,aW) = {
170- let Z = parseIntValue(aT[T])
171- let aa = parseIntValue(aT[U])
172- let ab = parseIntValue(aT[V])
173- let ac = parseIntValue(aT[W])
174- let ad = parseIntValue(aT[X])
175- let aX = (Z + aU[aO])
176- let aY = (aa + aU[aP])
177- let aZ = aI()
178- let O = aZ[D]
179- let ba = value(assetInfo(fromBase58String(O))).decimals
180- let bb = fraction(aW, e, pow(10, 0, ba, 0, 0, DOWN))
181- let bc = ((ab + aU[aQ]) - aW)
182- let bd = ((ac + aU[aR]) + bb)
183- let be = if ((0 > aY))
168+let aR = 2
169+
170+let aS = 3
171+
172+func aT (b,aU,aV,aW,aX) = {
173+ let Z = parseIntValue(aU[T])
174+ let aa = parseIntValue(aU[U])
175+ let ab = parseIntValue(aU[V])
176+ let ac = parseIntValue(aU[W])
177+ let ad = parseIntValue(aU[X])
178+ let aY = (Z + aV[aP])
179+ let aZ = (aa + aV[aQ])
180+ let ba = aJ()
181+ let O = ba[D]
182+ let bb = value(assetInfo(fromBase58String(O))).decimals
183+ let bc = fraction(aX, e, pow(10, 0, bb, 0, 0, DOWN))
184+ let bd = ((ab + aV[aR]) - aX)
185+ let be = ((ac + aV[aS]) + bc)
186+ let bf = if ((0 > aZ))
184187 then {
185- let bf = ((aX - bc) - bd)
186- let bg = if ((0 > bf))
188+ let bg = ((aY - bd) - be)
189+ let bh = if ((0 > bg))
187190 then 0
188- else bf
189- StringEntry(b, ae(aX, bg, bc, bd, aV))
191+ else bg
192+ StringEntry(b, ae(aY, bh, bd, be, aW))
190193 }
191- else StringEntry(b, ae(aX, aY, bc, bd, aV))
192- be
194+ else StringEntry(b, ae(aY, aZ, bd, be, aW))
195+ bf
193196 }
194197
195198
196-func bh (aj,m,ag,bi) = StringEntry(al("invest", aj, toBase58String(bi)), af(m, ag))
199+func bi (aj,m,ag,bj) = StringEntry(al("invest", aj, toBase58String(bj)), af(m, ag))
197200
198201
199-func bj (aj,m,ag,bi) = StringEntry(al("claim", aj, toBase58String(bi)), af(m, ag))
202+func bk (aj,m,ag,bj) = StringEntry(al("claim", aj, toBase58String(bj)), af(m, ag))
200203
201204
202-func bk (bl,aj,bi) = {
203- let aZ = aI()
204- let J = parseIntValue(aZ[x])
205- let K = parseIntValue(aZ[y])
206- let bm = (J + K)
207- let o = parseIntValue(aZ[z])
208- let L = parseIntValue(aZ[A])
209- let M = aZ[B]
210- let bn = fromBase58String(M)
211- let N = parseIntValue(aZ[C])
212- let O = aZ[D]
213- let bo = fromBase58String(O)
214- let P = parseIntValue(aZ[E])
215- let bp = toString(aj)
216- let bq = aN(bp)
217- let br = parseIntValue(bq[T])
218- let bs = parseIntValue(bq[X])
219- let bt = if ((J >= bs))
205+func bl (bm,aj,bj) = {
206+ let ba = aJ()
207+ let J = parseIntValue(ba[x])
208+ let K = parseIntValue(ba[y])
209+ let bn = (J + K)
210+ let o = parseIntValue(ba[z])
211+ let L = parseIntValue(ba[A])
212+ let M = ba[B]
213+ let bo = fromBase58String(M)
214+ let N = parseIntValue(ba[C])
215+ let O = ba[D]
216+ let bp = fromBase58String(O)
217+ let P = parseIntValue(ba[E])
218+ let bq = toString(aj)
219+ let br = aO(bq)
220+ let bs = parseIntValue(br[T])
221+ let bt = parseIntValue(br[X])
222+ let bu = if ((J >= bt))
220223 then J
221- else bs
222- let bu = if ((height > bm))
223- then bm
224+ else bt
225+ let bv = if ((height > bn))
226+ then bn
224227 else if ((J > height))
225228 then J
226229 else height
227- let bv = (bu - bt)
228- let bw = fraction(br, bv, K)
229- let bx = l(bw, P, o, L, N)
230- let by = (bl == O)
231- let bz = valueOrElse(getBoolean(ao()), false)
232- let bA = [if (!(if (by)
233- then bz
230+ let bw = (bv - bu)
231+ let bx = fraction(bs, bw, K)
232+ let by = l(bx, P, o, L, N)
233+ let bz = (bm == O)
234+ let bA = valueOrElse(getBoolean(ao()), false)
235+ let bB = [if (!(if (bz)
236+ then bA
234237 else false))
235238 then true
236239 else throw("USDN claim is disabled")]
237- if ((bA == bA))
238- then if ((bl == O))
239- then $Tuple6([0, -(bw), bw, 0], bw, bo, bq, bu, [bw, bx])
240- else if ((bl == M))
241- then $Tuple6([0, -(bw), 0, bx], bx, bn, bq, bu, [bw, bx])
242- else throw(("unsupported assetId: " + bl))
240+ if ((bB == bB))
241+ then if ((bm == O))
242+ then $Tuple6([0, -(bx), bx, 0], bx, bp, br, bv, [bx, by])
243+ else if ((bm == M))
244+ then $Tuple6([0, -(bx), 0, by], by, bo, br, bv, [bx, by])
245+ else throw(("unsupported assetId: " + bm))
243246 else throw("Strict value is not equal to itself.")
244247 }
245248
246249
247-func bB (O,bp,bC,bD) = {
248- let bE = value(getInteger(aw(O)))
249- let bF = value(getInteger(ay(O)))
250- let bG = value(getInteger(aq()))
251- let bH = valueOrElse(getInteger(ar()), 0)
252- let bI = isDefined(getInteger(au(0)))
253- let bJ = if ((bH > 0))
250+func bC (O,bq,bD,bE) = {
251+ let bF = value(getInteger(aw(O)))
252+ let bG = value(getInteger(ay(O)))
253+ let bH = value(getInteger(aq()))
254+ let bI = valueOrElse(getInteger(ar()), 0)
255+ let bJ = isDefined(getInteger(au(0)))
256+ let bK = if ((bI > 0))
254257 then {
255- let bK = value(getInteger(as(bH)))
256- let bL = value(getInteger(au(bH)))
257- let bM = if ((height > bL))
258+ let bL = value(getInteger(as(bI)))
259+ let bM = value(getInteger(au(bI)))
260+ let bN = if ((height > bM))
258261 then {
259- let bN = (bH + 1)
260- let bO = if ((height > (bL + bG)))
262+ let bO = (bI + 1)
263+ let bP = if ((height > (bM + bH)))
261264 then {
262- let bP = ((height - bL) % bG)
263- if ((bP == 0))
264- then ((height - bG) + 1)
265- else (height - bP)
265+ let bQ = ((height - bM) % bH)
266+ if ((bQ == 0))
267+ then ((height - bH) + 1)
268+ else (height - bQ)
266269 }
267- else (bL + 1)
268- let bQ = ((bO + bG) - 1)
269- $Tuple3(bN, bO, bQ)
270+ else (bM + 1)
271+ let bR = ((bP + bH) - 1)
272+ $Tuple3(bO, bP, bR)
270273 }
271- else $Tuple3(bH, bK, bL)
272- let bN = bM._1
273- let bO = bM._2
274- let bQ = bM._3
275- $Tuple3(bN, bO, bQ)
274+ else $Tuple3(bI, bL, bM)
275+ let bO = bN._1
276+ let bP = bN._2
277+ let bR = bN._3
278+ $Tuple3(bO, bP, bR)
276279 }
277- else if (bI)
280+ else if (bJ)
278281 then {
279- let bR = value(getInteger(as(0)))
280- let bS = value(getInteger(au(0)))
281- let bT = if ((height > bS))
282+ let bS = value(getInteger(as(0)))
283+ let bT = value(getInteger(au(0)))
284+ let bU = if ((height > bT))
282285 then {
283- let bN = (bH + 1)
284- let bO = (bS + 1)
285- let bQ = ((bO + bG) - 1)
286- $Tuple3(bN, bO, bQ)
286+ let bO = (bI + 1)
287+ let bP = (bT + 1)
288+ let bR = ((bP + bH) - 1)
289+ $Tuple3(bO, bP, bR)
287290 }
288- else $Tuple3(bH, bR, bS)
289- let bN = bT._1
290- let bO = bT._2
291- let bQ = bT._3
292- $Tuple3(bN, bO, bQ)
291+ else $Tuple3(bI, bS, bT)
292+ let bO = bU._1
293+ let bP = bU._2
294+ let bR = bU._3
295+ $Tuple3(bO, bP, bR)
293296 }
294- else $Tuple3(bH, valueOrElse(getInteger(as(bH)), height), valueOrElse(getInteger(au(bH)), ((height + bG) - 1)))
295- let bN = bJ._1
296- let bO = bJ._2
297- let bQ = bJ._3
298- let bU = valueOrElse(getInteger(az(O, bN)), bE)
299- let bV = valueOrElse(getInteger(aA(O, bN, bp)), bF)
300- let aW = valueOrElse(getInteger(aD(bp)), 0)
301- let bW = min([(bC + aW), bU, bV])
302- let bX = value(getInteger(av()))
303- let bY = e
304- let bZ = {
305- let ca = invoke(addressFromStringValue(value(getString(aB()))), "putOneTknV2WithoutTakeFeeREADONLY", [bY, O], nil)
306- if ($isInstanceOf(ca, "(Int, Int, Int)"))
307- then ca
297+ else $Tuple3(bI, valueOrElse(getInteger(as(bI)), height), valueOrElse(getInteger(au(bI)), ((height + bH) - 1)))
298+ let bO = bK._1
299+ let bP = bK._2
300+ let bR = bK._3
301+ let bV = valueOrElse(getInteger(az(O, bO)), bF)
302+ let bW = valueOrElse(getInteger(aA(O, bO, bq)), bG)
303+ let aX = valueOrElse(getInteger(aD(bq)), 0)
304+ let bX = min([(bD + aX), bV, bW])
305+ let bY = value(getInteger(av()))
306+ let bZ = e
307+ let ca = {
308+ let cb = invoke(addressFromStringValue(value(getString(aB()))), "putOneTknV2WithoutTakeFeeREADONLY", [bZ, O], nil)
309+ if ($isInstanceOf(cb, "(Int, Int, Int)"))
310+ then cb
308311 else throw("Couldn't cast Any to (Int, Int, Int)")
309312 }
310- if ((bZ == bZ))
313+ if ((ca == ca))
311314 then {
312- let cb = bZ._3
313- let cc = bZ._2
314- let cd = bZ._1
315- let ce = value(getString(aC()))
316- let cf = {
317- let ca = invoke(addressFromStringValue(value(getString(aB()))), "getOneTknV2READONLY", [ce, cd], nil)
318- if ($isInstanceOf(ca, "(Int, Int)"))
319- then ca
315+ let cc = ca._3
316+ let cd = ca._2
317+ let ce = ca._1
318+ let cf = value(getString(aC()))
319+ let cg = {
320+ let cb = invoke(addressFromStringValue(value(getString(aB()))), "getOneTknV2READONLY", [cf, ce], nil)
321+ if ($isInstanceOf(cb, "(Int, Int)"))
322+ then cb
320323 else throw("Couldn't cast Any to (Int, Int)")
321324 }
322- if ((cf == cf))
325+ if ((cg == cg))
323326 then {
324- let cg = cf._2
325- let ch = cf._1
326- let ci = fraction(bY, e, ch)
327- let cj = (bQ - height)
328- $Tuple10(bW, bU, bV, bD, bX, ci, cj, bN, bO, bQ)
327+ let ch = cg._2
328+ let ci = cg._1
329+ let cj = fraction(bZ, e, ci)
330+ let ck = (bR - height)
331+ $Tuple10(bX, bV, bW, bE, bY, cj, ck, bO, bP, bR)
329332 }
330333 else throw("Strict value is not equal to itself.")
331334 }
332335 else throw("Strict value is not equal to itself.")
333336 }
334337
335338
336-func ck () = {
337- let j = getString(aG())
339+func cl () = {
340+ let j = getString(aH())
338341 if ($isInstanceOf(j, "String"))
339342 then {
340- let cl = j
341- fromBase58String(cl)
343+ let cm = j
344+ fromBase58String(cm)
342345 }
343346 else if ($isInstanceOf(j, "Unit"))
344347 then unit
345348 else throw("Match error")
346349 }
347350
348351
349-func cm () = {
350- let j = getString(aH())
352+func cn () = {
353+ let j = getString(aI())
351354 if ($isInstanceOf(j, "String"))
352355 then {
353- let cl = j
354- fromBase58String(cl)
356+ let cm = j
357+ fromBase58String(cm)
355358 }
356359 else if ($isInstanceOf(j, "Unit"))
357360 then unit
358361 else throw("Match error")
359362 }
360363
361364
362-func cn (co) = {
363- let cp = throw("Permission denied")
364- let j = ck()
365+func co (cp) = {
366+ let cq = throw("Permission denied")
367+ let j = cl()
365368 if ($isInstanceOf(j, "ByteVector"))
366369 then {
367- let cq = j
368- if ((co.callerPublicKey == cq))
370+ let cr = j
371+ if ((cp.callerPublicKey == cr))
369372 then true
370- else cp
373+ else cq
371374 }
372375 else if ($isInstanceOf(j, "Unit"))
373- then if ((co.caller == this))
376+ then if ((cp.caller == this))
374377 then true
375- else cp
378+ else cq
376379 else throw("Match error")
377380 }
378381
379382
380-@Callable(co)
383+@Callable(cp)
381384 func constructor (H,I,J,K,o,O,Q) = {
382385 let L = ((100 * 1000) * 1000)
383- let cr = (H + I)
386+ let cs = (H + I)
384387 if (isDefined(getString(ah())))
385388 then throw("already initialized")
386- else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(co.caller)))
389+ else if (("3PMEHLx1j6zerarZTYfsGqDeeZqQoMpxq5S" != toString(cp.caller)))
387390 then throw("not authorized")
388- else if ((size(co.payments) != 1))
391+ else if ((size(cp.payments) != 1))
389392 then throw("exactly 1 payment must be attached")
390- else if ((cr >= J))
393+ else if ((cs >= J))
391394 then throw("claimStart must be greater than idoEnd")
392395 else {
393- let cs = value(co.payments[0])
394- let bn = value(cs.assetId)
395- let ct = valueOrErrorMessage(assetInfo(bn), "fail to load ido asset info")
396- let M = toBase58String(bn)
397- let N = pow(10, 0, ct.decimals, 0, 0, DOWN)
398- let bo = fromBase58String(O)
399- let cu = valueOrErrorMessage(assetInfo(bo), "fail to load price asset info")
400- let P = pow(10, 0, cu.decimals, 0, 0, DOWN)
401- let cv = aL()
402- let cw = [0, 0, 0, 0]
403-[StringEntry(ah(), S(H, I, J, K, o, L, M, N, O, P, Q, cs.amount)), aS(ak(), cv, cw, J, 0)]
396+ let ct = value(cp.payments[0])
397+ let bo = value(ct.assetId)
398+ let cu = valueOrErrorMessage(assetInfo(bo), "fail to load ido asset info")
399+ let M = toBase58String(bo)
400+ let N = pow(10, 0, cu.decimals, 0, 0, DOWN)
401+ let bp = fromBase58String(O)
402+ let cv = valueOrErrorMessage(assetInfo(bp), "fail to load price asset info")
403+ let P = pow(10, 0, cv.decimals, 0, 0, DOWN)
404+ let cw = aM()
405+ let cx = [0, 0, 0, 0]
406+[StringEntry(ah(), S(H, I, J, K, o, L, M, N, O, P, Q, ct.amount)), aT(ak(), cw, cx, J, 0)]
404407 }
405408 }
406409
407410
408411
409-@Callable(co)
412+@Callable(cp)
410413 func invest () = {
411- let aZ = aI()
412- let H = parseIntValue(aZ[v])
413- let I = parseIntValue(aZ[w])
414- let cr = (H + I)
415- let J = parseIntValue(aZ[x])
416- let K = parseIntValue(aZ[y])
417- let o = parseIntValue(aZ[z])
418- let L = parseIntValue(aZ[A])
419- let M = aZ[B]
420- let bn = fromBase58String(M)
421- let N = parseIntValue(aZ[C])
422- let O = aZ[D]
423- let bo = fromBase58String(O)
424- let P = parseIntValue(aZ[E])
425- let cx = parseIntValue(aZ[F])
426- let aj = toString(co.caller)
414+ let ba = aJ()
415+ let H = parseIntValue(ba[v])
416+ let I = parseIntValue(ba[w])
417+ let cs = (H + I)
418+ let J = parseIntValue(ba[x])
419+ let K = parseIntValue(ba[y])
420+ let o = parseIntValue(ba[z])
421+ let L = parseIntValue(ba[A])
422+ let M = ba[B]
423+ let bo = fromBase58String(M)
424+ let N = parseIntValue(ba[C])
425+ let O = ba[D]
426+ let bp = fromBase58String(O)
427+ let P = parseIntValue(ba[E])
428+ let cy = parseIntValue(ba[F])
429+ let aj = toString(cp.caller)
427430 if ((H > height))
428431 then throw("ido has not been started yet")
429- else if ((height > cr))
432+ else if ((height > cs))
430433 then throw("ido has been already ended")
431- else if ((size(co.payments) != 1))
434+ else if ((size(cp.payments) != 1))
432435 then throw("exactly 1 payment is expected")
433436 else {
434- let cs = value(co.payments[0])
435- let cy = value(cs.assetId)
436- let cz = cs.amount
437- if ((cy != bo))
438- then throw((("invalid payment asset id: " + toBase58String(cy)) + " is expected"))
437+ let ct = value(cp.payments[0])
438+ let cz = value(ct.assetId)
439+ let cA = ct.amount
440+ if ((cz != bp))
441+ then throw((("invalid payment asset id: " + toBase58String(cz)) + " is expected"))
439442 else {
440- let cA = aM(aj)
441- let cv = aL()
442- let cB = (parseIntValue(cv[T]) + cz)
443- let cC = (cB * 100)
444- if ((cC > assetBalance(this, bn)))
443+ let cB = aN(aj)
444+ let cw = aM()
445+ let cC = (parseIntValue(cw[T]) + cA)
446+ let cD = (cC * 100)
447+ if ((cD > assetBalance(this, bo)))
445448 then throw("IDO asset has been - sold consider to use smaller payment")
446449 else {
447- let cw = [cz, cz, 0, 0]
448-[aS(ai(aj), cA, cw, J, 0), aS(ak(), cv, cw, J, 0), bh(aj, cz, 0, co.transactionId)]
450+ let cx = [cA, cA, 0, 0]
451+[aT(ai(aj), cB, cx, J, 0), aT(ak(), cw, cx, J, 0), bi(aj, cA, 0, cp.transactionId)]
449452 }
450453 }
451454 }
452455 }
453456
454457
455458
456-@Callable(co)
457-func claim (bl,bp) = {
458- let cD = toString(co.caller)
459- if ((bp != cD))
459+@Callable(cp)
460+func claim (bm,bq) = {
461+ let cE = toString(cp.caller)
462+ if ((bq != cE))
460463 then throw("not authorized")
461464 else {
462- let aZ = aI()
463- let O = aZ[D]
464- let cE = bk(bl, co.caller, co.transactionId)
465- let cw = cE._1
466- let bC = cE._2
467- let cF = cE._3
468- let bq = cE._4
469- let bu = cE._5
470- let cG = cw[aQ]
471- let cH = cw[aR]
472- let aW = valueOrElse(getInteger(aD(bp)), 0)
473- let ba = value(assetInfo(fromBase58String(O))).decimals
474- let be = if ((bl == O))
465+ let ba = aJ()
466+ let O = ba[D]
467+ let cF = bl(bm, cp.caller, cp.transactionId)
468+ let cx = cF._1
469+ let bD = cF._2
470+ let cG = cF._3
471+ let br = cF._4
472+ let bv = cF._5
473+ let cH = cx[aR]
474+ let cI = cx[aS]
475+ let aX = valueOrElse(getInteger(aD(bq)), 0)
476+ let bb = value(assetInfo(fromBase58String(O))).decimals
477+ let bf = if ((bm == O))
475478 then {
476- let cI = bB(O, bp, bC, cw[aQ])
477- let bW = cI._1
478- let bU = cI._2
479- let bV = cI._3
480- let bD = cI._4
481- let bX = cI._5
482- let ci = cI._6
483- let cj = cI._7
484- let bN = cI._8
485- let bO = cI._9
486- let bQ = cI._10
487- let bA = [if ((bV > 0))
479+ let cJ = bC(O, bq, bD, cx[aR])
480+ let bX = cJ._1
481+ let bV = cJ._2
482+ let bW = cJ._3
483+ let bE = cJ._4
484+ let bY = cJ._5
485+ let cj = cJ._6
486+ let ck = cJ._7
487+ let bO = cJ._8
488+ let bP = cJ._9
489+ let bR = cJ._10
490+ let bB = [if ((bW > 0))
488491 then true
489- else f("unavailable to claim because user period allowance reached"), if ((bU > 0))
492+ else f("unavailable to claim because user period allowance reached"), if ((bV > 0))
490493 then true
491- else f("unavailable to claim because total period allowance reached"), if ((bW > 0))
494+ else f("unavailable to claim because total period allowance reached"), if ((bX > 0))
492495 then true
493- else f("nothing to claim"), if ((bX > ci))
496+ else f("nothing to claim"), if ((bY > cj))
494497 then true
495498 else f("unavailable to claim because usdn price lower than usdtPriceAssetAllowableRatio")]
496- if ((bA == bA))
499+ if ((bB == bB))
497500 then {
498- let cJ = (bU - bW)
499- let cK = (bV - bW)
500- let be = if ((aW >= bW))
501- then [ScriptTransfer(co.caller, bW, cF), IntegerEntry(aD(bp), (aW - bW))]
501+ let cK = (bV - bX)
502+ let cL = (bW - bX)
503+ let bf = if ((aX > bX))
504+ then [ScriptTransfer(cp.caller, bX, cG), IntegerEntry(aD(bq), (aX - bX))]
502505 else {
503- let cL = split(h(invoke(this, "claimREADONLY", [O, bp], nil)), c)
504- if ((cL == cL))
506+ let cM = split(h(invoke(this, "claimREADONLY", [O, bq], nil)), c)
507+ if ((cM == cM))
505508 then {
506- let cM = parseIntValue(cL[3])
507- let cN = if ((cM == bW))
509+ let cN = parseIntValue(cM[3])
510+ let cO = if ((cN == bX))
508511 then {
509- let cO = parseIntValue(bq[T])
510- let cP = parseIntValue(bq[U])
511- let cQ = parseIntValue(bq[V])
512- let cR = parseIntValue(bq[W])
513- let cS = parseIntValue(bq[X])
514- let cT = [toString(cO), "0", toString(cQ), toString(cR), toString(cS)]
515- let cU = aL()
516- let cV = parseIntValue(cU[T])
517- let cW = parseIntValue(cU[U])
518- let cX = parseIntValue(cU[U])
519- let cY = parseIntValue(cU[V])
520- let cZ = parseIntValue(cU[X])
521- let da = (cW - cP)
522- let db = [toString(cV), toString(da), toString(cX), toString(cY), toString(cZ)]
523-[StringEntry(aF(bp), toString(cP)), aS(ai(bp), cT, cw, bu, 0), aS(ak(), db, cw, bu, 0)]
512+ let cP = parseIntValue(br[T])
513+ let cQ = parseIntValue(br[U])
514+ let cR = parseIntValue(br[V])
515+ let cS = parseIntValue(br[W])
516+ let cT = parseIntValue(br[X])
517+ let cU = [toString(cP), "0", toString(cR), toString(cS), toString(cT)]
518+ let cV = aM()
519+ let cW = parseIntValue(cV[T])
520+ let cX = parseIntValue(cV[U])
521+ let cY = parseIntValue(cV[U])
522+ let cZ = parseIntValue(cV[V])
523+ let da = parseIntValue(cV[X])
524+ let db = (cX - cQ)
525+ let dc = [toString(cW), toString(db), toString(cY), toString(cZ), toString(da)]
526+ let dd = (valueOrElse(getInteger(aG()), 0) - cQ)
527+[StringEntry(aF(bq), toString(cQ)), StringEntry(aG(), toString(dd)), aT(ai(bq), cU, cx, bv, 0), aT(ak(), dc, cx, bv, 0)]
524528 }
525- else [aS(ai(bp), bq, cw, bu, 0), aS(ak(), aL(), cw, bu, 0)]
526- let dc = ((aW + bC) - bW)
527- ([ScriptTransfer(co.caller, bW, cF), IntegerEntry(aD(bp), dc)] ++ cN)
529+ else [aT(ai(bq), br, cx, bv, 0), aT(ak(), aM(), cx, bv, 0)]
530+ let de = ((aX + bD) - bX)
531+ ([ScriptTransfer(cp.caller, bX, cG), IntegerEntry(aD(bq), de)] ++ cO)
528532 }
529533 else throw("Strict value is not equal to itself.")
530534 }
531- $Tuple2(([IntegerEntry(ar(), bN), IntegerEntry(as(bN), bO), IntegerEntry(au(bN), bQ), IntegerEntry(az(O, bN), cJ), IntegerEntry(aA(O, bN, bp), cK), bj(bp, bW, cH, co.transactionId)] ++ be), unit)
535+ $Tuple2(([IntegerEntry(ar(), bO), IntegerEntry(as(bO), bP), IntegerEntry(au(bO), bR), IntegerEntry(az(O, bO), cK), IntegerEntry(aA(O, bO, bq), cL), bk(bq, bX, cI, cp.transactionId)] ++ bf), unit)
532536 }
533537 else throw("Strict value is not equal to itself.")
534538 }
535539 else {
536- let dd = fraction(aW, e, pow(10, 0, ba, 0, 0, DOWN))
537- $Tuple2([ScriptTransfer(co.caller, (bC + dd), cF), IntegerEntry(aD(bp), 0), aS(ai(bp), bq, cw, bu, aW), aS(ak(), aL(), cw, bu, aW), bj(bp, cG, (cH + dd), co.transactionId)], unit)
540+ let df = fraction(aX, e, pow(10, 0, bb, 0, 0, DOWN))
541+ $Tuple2([ScriptTransfer(cp.caller, (bD + df), cG), IntegerEntry(aD(bq), 0), aT(ai(bq), br, cx, bv, aX), aT(ak(), aM(), cx, bv, aX), bk(bq, cH, (cI + df), cp.transactionId)], unit)
538542 }
539- be
543+ bf
540544 }
541545 }
542546
543547
544548
545-@Callable(co)
546-func cleanRemaingAmount (bp) = {
547- let O = aI()[D]
548- let cL = split(h(invoke(this, "claimREADONLY", [O, bp], nil)), c)
549- if ((cL == cL))
549+@Callable(cp)
550+func cleanRemaingAmount (bq) = {
551+ let O = aJ()[D]
552+ let cM = split(h(invoke(this, "claimREADONLY", [O, bq], nil)), c)
553+ if ((cM == cM))
550554 then {
551- let cM = parseIntValue(cL[3])
552- let de = if ((cM == 0))
555+ let cN = parseIntValue(cM[3])
556+ let dg = if ((cN == 0))
553557 then true
554558 else f("user have unclaimed assets")
555- if ((de == de))
559+ if ((dg == dg))
556560 then {
557- let df = split(value(getString(ai(bp))), c)
558- let cO = parseIntValue(df[T])
559- let cP = parseIntValue(df[U])
560- let cQ = parseIntValue(df[V])
561- let cR = parseIntValue(df[W])
562- let cS = parseIntValue(df[X])
563- let dg = if ((cP != 0))
561+ let dh = split(value(getString(ai(bq))), c)
562+ let cP = parseIntValue(dh[T])
563+ let cQ = parseIntValue(dh[U])
564+ let cR = parseIntValue(dh[V])
565+ let cS = parseIntValue(dh[W])
566+ let cT = parseIntValue(dh[X])
567+ let di = if ((cQ != 0))
564568 then true
565569 else f("investorRemainingAmount already zero")
566- if ((dg == dg))
570+ if ((di == di))
567571 then {
568- let dh = makeString(["%d%d%d%d%d", toString(cO), "0", toString(cQ), toString(cR), toString(cS)], c)
569- let cU = split(value(getString(ak())), c)
570- let cV = parseIntValue(cU[T])
571- let cW = parseIntValue(cU[U])
572- let cX = parseIntValue(cU[U])
573- let cY = parseIntValue(cU[V])
574- let cZ = parseIntValue(cU[X])
575- let di = makeString(["%d%d%d%d%d", toString(cV), toString((cW - cP)), toString(cX), toString(cY), toString(cZ)], c)
576-[StringEntry(aF(bp), toString(cP)), StringEntry(ai(bp), dh), StringEntry(ak(), di)]
572+ let dj = makeString(["%d%d%d%d%d", toString(cP), "0", toString(cR), toString(cS), toString(cT)], c)
573+ let cV = split(value(getString(ak())), c)
574+ let cW = parseIntValue(cV[T])
575+ let cX = parseIntValue(cV[U])
576+ let cY = parseIntValue(cV[U])
577+ let cZ = parseIntValue(cV[V])
578+ let da = parseIntValue(cV[X])
579+ let dk = makeString(["%d%d%d%d%d", toString(cW), toString((cX - cQ)), toString(cY), toString(cZ), toString(da)], c)
580+ let dd = (valueOrElse(getInteger(aG()), 0) - cQ)
581+[StringEntry(aF(bq), toString(cQ)), StringEntry(aG(), toString(dd)), StringEntry(ai(bq), dj), StringEntry(ak(), dk)]
577582 }
578583 else throw("Strict value is not equal to itself.")
579584 }
580585 else throw("Strict value is not equal to itself.")
581586 }
582587 else throw("Strict value is not equal to itself.")
583588 }
584589
585590
586591
587-@Callable(co)
588-func claimREADONLY (bl,bp) = {
589- let cE = bk(bl, addressFromStringValue(bp), fromBase58String(""))
590- let cw = cE._1
591- let bC = cE._2
592- let cF = cE._3
593- let bq = cE._4
594- let bu = cE._5
595- let dj = cE._6
596- let cM = dj[0]
597- let dk = dj[1]
598- $Tuple2(nil, makeString(["%s%d%d", bp, toString(cM), toString(dk)], c))
592+@Callable(cp)
593+func claimREADONLY (bm,bq) = {
594+ let cF = bl(bm, addressFromStringValue(bq), fromBase58String(""))
595+ let cx = cF._1
596+ let bD = cF._2
597+ let cG = cF._3
598+ let br = cF._4
599+ let bv = cF._5
600+ let dl = cF._6
601+ let cN = dl[0]
602+ let dm = dl[1]
603+ $Tuple2(nil, makeString(["%s%d%d", bq, toString(cN), toString(dm)], c))
599604 }
600605
601606
602607
603-@Callable(co)
604-func claimV2READONLY (bl,bp) = {
605- let cE = bk(bl, addressFromStringValue(bp), fromBase58String(""))
606- let cw = cE._1
607- let bC = cE._2
608- let cF = cE._3
609- let bq = cE._4
610- let bu = cE._5
611- let dj = cE._6
612- let cM = dj[0]
613- let dk = dj[1]
614- let aZ = aI()
615- let O = aZ[D]
616- let aW = valueOrElse(getInteger(aD(bp)), 0)
617- let dd = (aW * 100)
618- let dl = (dk + dd)
619- let dm = bB(O, bp, bC, cw[aQ])
620- let bW = dm._1
621- let bU = dm._2
622- let bV = dm._3
623- let bD = dm._4
624- let bX = dm._5
625- let ci = dm._6
626- let cj = dm._7
627- let bN = dm._8
628- let bO = dm._9
629- let bQ = dm._10
630- let dn = valueOrElse(getInteger(au(bN)), 0)
631- let do = (parseIntValue(aN(bp)[V]) - aW)
632- let dp = if ((height > dn))
608+@Callable(cp)
609+func claimV2READONLY (bm,bq) = {
610+ let cF = bl(bm, addressFromStringValue(bq), fromBase58String(""))
611+ let cx = cF._1
612+ let bD = cF._2
613+ let cG = cF._3
614+ let br = cF._4
615+ let bv = cF._5
616+ let dl = cF._6
617+ let cN = dl[0]
618+ let dm = dl[1]
619+ let ba = aJ()
620+ let O = ba[D]
621+ let aX = valueOrElse(getInteger(aD(bq)), 0)
622+ let df = (aX * 100)
623+ let dn = (dm + df)
624+ let do = bC(O, bq, bD, cx[aR])
625+ let bX = do._1
626+ let bV = do._2
627+ let bW = do._3
628+ let bE = do._4
629+ let bY = do._5
630+ let cj = do._6
631+ let ck = do._7
632+ let bO = do._8
633+ let bP = do._9
634+ let bR = do._10
635+ let dp = valueOrElse(getInteger(au(bO)), 0)
636+ let dq = (parseIntValue(aO(bq)[V]) - aX)
637+ let dr = if ((height > dp))
633638 then {
634- let dq = value(getInteger(aq()))
635- let dr = value(getInteger(ay(O)))
636- let ds = value(getInteger(aw(O)))
637- makeString(["%d%d%d%d%d%d", toString(dl), toString(dr), toString(ds), toString(bX), toString(ci), toString(dq), toString(do)], c)
639+ let ds = value(getInteger(aq()))
640+ let dt = value(getInteger(ay(O)))
641+ let du = value(getInteger(aw(O)))
642+ makeString(["%d%d%d%d%d%d", toString(dn), toString(dt), toString(du), toString(bY), toString(cj), toString(ds), toString(dq)], c)
638643 }
639- else makeString(["%d%d%d%d%d%d", toString(dl), toString(bW), toString(bU), toString(bX), toString(ci), toString(cj), toString(do)], c)
640- $Tuple2(nil, dp)
644+ else makeString(["%d%d%d%d%d%d", toString(dn), toString(bX), toString(bV), toString(bY), toString(cj), toString(ck), toString(dq)], c)
645+ $Tuple2(nil, dr)
641646 }
642647
643648
644649
645-@Callable(co)
646-func setManager (dt) = {
647- let du = cn(co)
648- if ((du == du))
650+@Callable(cp)
651+func setManager (dv) = {
652+ let dw = co(cp)
653+ if ((dw == dw))
649654 then {
650- let dv = fromBase58String(dt)
651- if ((dv == dv))
652- then [StringEntry(aH(), dt)]
655+ let dx = fromBase58String(dv)
656+ if ((dx == dx))
657+ then [StringEntry(aI(), dv)]
653658 else throw("Strict value is not equal to itself.")
654659 }
655660 else throw("Strict value is not equal to itself.")
656661 }
657662
658663
659664
660-@Callable(co)
665+@Callable(cp)
661666 func confirmManager () = {
662- let dw = cm()
663- let dx = if (isDefined(dw))
667+ let dy = cn()
668+ let dz = if (isDefined(dy))
664669 then true
665670 else throw("No pending manager")
666- if ((dx == dx))
671+ if ((dz == dz))
667672 then {
668- let dy = if ((co.callerPublicKey == value(dw)))
673+ let dA = if ((cp.callerPublicKey == value(dy)))
669674 then true
670675 else throw("You are not pending manager")
671- if ((dy == dy))
672- then [StringEntry(aG(), toBase58String(value(dw))), DeleteEntry(aH())]
676+ if ((dA == dA))
677+ then [StringEntry(aH(), toBase58String(value(dy))), DeleteEntry(aI())]
673678 else throw("Strict value is not equal to itself.")
674679 }
675680 else throw("Strict value is not equal to itself.")
676681 }
677682
678683
679-@Verifier(dz)
680-func dA () = {
681- let dB = {
682- let j = ck()
684+@Verifier(dB)
685+func dC () = {
686+ let dD = {
687+ let j = cl()
683688 if ($isInstanceOf(j, "ByteVector"))
684689 then {
685- let cq = j
686- cq
690+ let cr = j
691+ cr
687692 }
688693 else if ($isInstanceOf(j, "Unit"))
689- then dz.senderPublicKey
694+ then dB.senderPublicKey
690695 else throw("Match error")
691696 }
692- sigVerify(dz.bodyBytes, dz.proofs[0], dB)
697+ sigVerify(dB.bodyBytes, dB.proofs[0], dD)
693698 }
694699

github/deemru/w8io/026f985 
216.78 ms