tx · CHN1X3y47uEBa9hXivL1KLRRac73pdrC68HiFXmp9G9m

3N9eLqWNqb7jeF383m9qsXEBqpp8qfQmfbx:  -0.10000000 Waves

2022.06.04 02:25 [2080823] smart account 3N9eLqWNqb7jeF383m9qsXEBqpp8qfQmfbx > SELF 0.00000000 Waves

{ "type": 13, "id": "CHN1X3y47uEBa9hXivL1KLRRac73pdrC68HiFXmp9G9m", "fee": 10000000, "feeAssetId": null, "timestamp": 1654298817827, "version": 2, "chainId": 84, "sender": "3N9eLqWNqb7jeF383m9qsXEBqpp8qfQmfbx", "senderPublicKey": "5cWdpE4X7mfNkLmxJ389ws6qGZof4fwydqMcqPexhJ7w", "proofs": [ "P8X15mTkDePHzFVkE4Dfmmid6ooVvDkTtChsVU9cEnDqASKsdDyCbPepmYssovMQrAKiTxvKtwQinHKCvJECxwd" ], "script": "base64:AAIFAAAAAAAAAEoIAhIHCgUICAgBARIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgMKAQgSBAoCCAkSAwoBCBIFCgMBCAESAwoBCAAAACMAAAAADGxvY2tpbmdTdG9yZQUAAAAEdGhpcwAAAAAMc3Rha2luZ1N0b3JlAgAAAAhfUmVzZXJ2ZQAAAAARbWluaW11bUxvY2tBbW91bnQCAAAADl9NaW5Mb2NrQW1vdW50AAAAABFtYXhpbXVtTG9ja0Ftb3VudAIAAAAOX01heExvY2tBbW91bnQAAAAACWFzc2V0TGlzdAUAAAADbmlsAAAAABF1bmxvY2tFbGlnaWJpbGl0eQIAAAAcX0VsaWdpYmxlX3RvX3VubG9ja19hdF9ibG9jawAAAAAMbG9ja2VkQW1vdW50AgAAAA5fQW1vdW50X2xvY2tlZAAAAAALbG9ja2VkQXNzZXQCAAAADV9Bc3NldF9sb2NrZWQAAAAABHVzZXICAAAABV9Vc2VyAAAAAApBUFlfQW1vdW50AgAAAAtfQVBZX2Ftb3VudAAAAAARdG90YWxMb2NrZWRBTW91bnQCAAAAFF9Ub3RhbF9Mb2NrZWRfQW1vdW50AAAAAA1sb2NraW5nUGVyaW9kAgAAAAxfRGF5c19sb2NrZWQAAAAACmVudHJ5SW5kZXgCAAAADF9FbnRyeV9JbmRleAAAAAAOYWxyZWFkeUNsYWltZWQCAAAAEF9BbHJlYWR5X0NsYWltZWQAAAAABWFkbWluAgAAAAZhZG1pbl8AAAAAC0Jsb2NrUGVyRGF5AAAAAAAAAAWgAAAAABR0aGlydHlEYXlzTG9ja1BlcmlvZAAAAAAAAAAAHgAAAAATc2l4dHlEYXlzTG9ja1BlcmlvZAAAAAAAAAAAPAAAAAAUbmluZXR5RGF5c0xvY2tQZXJpb2QAAAAAAAAAAFoBAAAABGdldEkAAAABAAAAA2tleQkABBoAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAABGdldFMAAAABAAAAA2tleQkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkBAAAABWdldElWAAAAAQAAAANrZXkJAQAAAAV2YWx1ZQAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAAVnZXRTVgAAAAEAAAADa2V5CQEA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aWNrZXIFAAAAEW1pbmltdW1Mb2NrQW1vdW50BAAAABJhTWF4aW11bUxvY2tBbW91bnQJAAEsAAAAAgUAAAALQXNzZXRUaWNrZXIFAAAAEW1heGltdW1Mb2NrQW1vdW50CQAETAAAAAIJAQAAABB3cml0ZUNvbnN0U3RyaW5nAAAAAgUAAAALQXNzZXRUaWNrZXIFAAAAB0Fzc2V0SUQJAARMAAAAAgkBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACBQAAAA1hU3Rha2luZ1N0b3JlBQAAABFBc3NldFN0YWtpbmdTdG9yZQkABEwAAAACCQEAAAARd3JpdGVDb25zdEludGVnZXIAAAACBQAAABJhTWluaW11bUxvY2tBbW91bnQFAAAAFkFzc2V0TWluaW11bUxvY2tBbW91bnQJAARMAAAAAgkBAAAAEXdyaXRlQ29uc3RJbnRlZ2VyAAAAAgUAAAASYU1heGltdW1Mb2NrQW1vdW50BQAAABZBc3NldE1heGltdW1Mb2NrQW1vdW50BQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAAC2RlbGV0ZUFzc2V0AAAAAQAAAAtBc3NldFRpY2tlcgQAAAAFY2hlY2sJAQAAAAlhZG1pbk9ubHkAAAABBQAAAAFpAwkAAAAAAAACBQAAAAVjaGVjawUAAAAFY2hlY2sEAAAAB2Fzc2V0SUQJAQAAAA50aHJvd09yUmV0dXJuUwAAAAIJAQAAAARnZXRTAAAAAQUAAAALQXNzZXRUaWNrZXIJAAEsAAAAAgkAASwAAAACAgAAABJhc3NldCB3aXRoIHRpY2tlciAFAAAAC0Fzc2V0VGlja2VyAgAAAAlub3QgZm91bmQDCQAAAAAAAAIFAAAAB2Fzc2V0SUQFAAAAB2Fzc2V0SUQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAALQXNzZXRUaWNrZXIJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAAtBc3NldFRpY2tlcgUAAAARbWluaW11bUxvY2tBbW91bnQJAARMAAAAAgkBAAAAC0RlbGV0ZUVudHJ5AAAAAQkAASwAAAACBQAAAAtBc3NldFRp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c2FnZQAAAAIJAAQmAAAAAQUAAAAKbmV3QWRkcmVzcwIAAAAPaW52YWxpZCBhZGRyZXNzBAAAAAZjYWxsZXIJAAQlAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAApvdGhlckFkbWluCQABLAAAAAIFAAAABWFkbWluBQAAAAZjYWxsZXIEAAAAD2NoZWNrT2xkQWRkcmVzcwkBAAAADnRocm93T3JSZXR1cm5TAAAAAgkBAAAABGdldFMAAAABBQAAAApvdGhlckFkbWluAgAAABlubyBwcmV2aW91cyBhZGRyZXNzIGZvdW5kAwkAAAAAAAACBQAAAA9jaGVja09sZEFkZHJlc3MFAAAAD2NoZWNrT2xkQWRkcmVzcwQAAAAKZGVsQWRkcmVzcwkBAAAAC0RlbGV0ZUVudHJ5AAAAAQUAAAAKb3RoZXJBZG1pbgMJAAAAAAAAAgUAAAAKZGVsQWRkcmVzcwUAAAAKZGVsQWRkcmVzcwkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAIFAAAACm90aGVyQWRtaW4JAAQlAAAAAQUAAAAJYWRtaW5BZGRyBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAAABaQEAAAAQcmVtb3ZlT3RoZXJBZG1pbgAAAAEAAAAHYWRkcmVzcwQAAAAGY2hlY2tzCQEAAAAJYWRtaW5Pbmx5AAAAAQUAAAABaQMJAAAAAAAAAgUAAAAGY2hlY2tzBQAAAAZjaGVja3MEAAAACWFkbWluQWRkcgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEFAAAAB2FkZHJlc3MCAAAAD2ludmFsaWQgYWRkcmVzcwQAAAAMb3RoZXJBZGRyZXNzCQABLAAAAAIFAAAABWFkbWluCQAEJQAAAAEFAAAACWFkbWluQWRkcgQAAAAIZGVsQWRtaW4JAQAAAAtEZWxldGVFbnRyeQAAAAEFAAAADG90aGVyQWRkcmVzcwMJ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aW5Ub1N0YWtlCQEAAAAOdGhyb3dPclJldHVybkkAAAACCQEAAAAEZ2V0SQAAAAEJAAEsAAAAAgUAAAALQXNzZXRUaWNrZXIFAAAAEW1pbmltdW1Mb2NrQW1vdW50AgAAADVpbnRlcm5hbCBlcnJvcjogbWluaW11bSBzdGFja2luZyBhbW91bnQgbm90IHNwZWNpZmllZAQAAAAKbWF4VG9TdGFrZQkBAAAADnRocm93T3JSZXR1cm5JAAAAAgkBAAAABGdldEkAAAABCQABLAAAAAIFAAAAC0Fzc2V0VGlja2VyBQAAABFtYXhpbXVtTG9ja0Ftb3VudAIAAAA0aW50ZXJuYWwgZXJyb3I6IG1heGltdW0gc3Rha2luZyBhbW91bnQgbm90IHNwZWNpZmllZAQAAAAGY2hlY2szCQEAAAAHdGhyb3dJZgAAAAIDCQAAZgAAAAIFAAAACm1pblRvU3Rha2UFAAAADWFtb3VudFRvU3Rha2UGCQAAZgAAAAIFAAAADWFtb3VudFRvU3Rha2UFAAAACm1heFRvU3Rha2UCAAAAHnN0YWtpbmcgYW1vdW50IGlzIG91dCBvZiByYW5nZQMJAAAAAAAAAgUAAAAGY2hlY2szBQAAAAZjaGVjazMEAAAADHVUb3RhbExvY2tlZAkAASwAAAACBQAAAAZ1c2VySWQFAAAAEXRvdGFsTG9ja2VkQU1vdW50BAAAAAl1U3VtVG90YWwDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQEAAAAEZ2V0SQAAAAEFAAAADHVUb3RhbExvY2tlZAAAAAAAAAAAAAkAAGQAAAACBQAAAA1hbW91bnRUb1N0YWtlCQEAAAAFdmFsdWUAAAABCQEAAAAEZ2V0SQAAAAEFAAAADHVUb3RhbExvY2tlZAQAAAAGY2hlY2s0CQEAAAAHdGhyb3dJZgAAAAIJAABmAAAAAgUAAAAJdVN1bVRvdGFsBQAAAAptYXhUb1N0YWtlAgAAAB15b3UgaGF2ZSBtYXhlZCBvdXQgeW91ciBxdW90YQMJAAAAAAAAAgUAAAAGY2hlY2s0BQAAAAZjaGVjazQEAAAAC3VFbnRyeUluZGV4CQABLAAAAAIJAAEsAAAAAgUAAAAGdXNlcklkBQAAAAtBc3NldFRpY2tlcgUAAAAKZW50cnlJbmRleAQAAAAPdUluY3JFbnRyeUluZGV4CQEAAAATaW5jcmVtZW50RW50cnlJbmRleAAAAAEFAAAAC3VFbnRyeUluZGV4BAAAAA51RW50cnlUb1N0cmluZwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAABXwUAAAALQXNzZXRUaWNrZXICAAAAAV8JAAGkAAAAAQUAAAAPdUluY3JFbnRyeUluZGV4BAAAAAd1VXNlcklkCQABLAAAAAIJAAEsAAAAAgUAAAAGdXNlcklkBQAAAA51RW50cnlUb1N0cmluZwUAAAAEdXNlcgQAAAAGdUFzc2V0CQABLAAAAAIJAAEsAAAAAgUAAAAGdXNlcklkBQAAAA51RW50cnlUb1N0cmluZwUAAAALbG9ja2VkQXNzZXQEAAAADnVMb2NraW5nUGVyaW9kCQABLAAAAAIJAAEsAAAAAgUAAAAGdXNlcklkBQAAAA51RW50cnlUb1N0cmluZwUAAAANbG9ja2luZ1BlcmlvZAQAAAANdUxvY2tlZEFtb3VudAkAASwAAAACCQABLAAAAAIFAAAABnVzZXJJZAUAAAAOdUVudHJ5VG9TdHJpbmcFAAAADGxvY2tlZEFtb3VudAQAAAAEdUFQWQkAASwAAAACCQABLAAAAAIFAAAABnVzZXJJZAUAAAAOdUVudHJ5VG9TdHJpbmcFAAAACkFQWV9BbW91bnQEAAAAEnVVbmxvY2tFbGlnaWJpbGl0eQkAASwAAAACCQABLAAAAAIFAAAABnVzZXJJZAUAAAAOdUVudHJ5VG9TdHJpbmcFAAAAEXVubG9ja0VsaWdpYmlsaXR5BAAAAA91QWxyZWFkeUNsYWltZWQJAAEsAAAAAgkAASwAAAACBQAAAAZ1c2VySWQFAAAADnVFbnRyeVRvU3RyaW5nBQAAAA5hbHJlYWR5Q2xhaW1lZAkABEwAAAACCQEAAAARd3JpdGVDb25zdEludGVnZXIAAAACBQAAAAt1RW50cnlJbmRleAUAAAAPdUluY3JFbnRyeUluZGV4CQAETAAAAAIJAQAAABB3cml0ZUNvbnN0U3RyaW5nAAAAAgUAAAAHdVVzZXJJZAUAAAAGdXNlcklkCQAETAAAAAIJAQAAABB3cml0ZUNvbnN0U3RyaW5nAAAAAgUAAAAGdUFzc2V0BQAAAAVhc3Nl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", "height": 2080823, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2DkezzTDzH2P9UL8sPnEbQTyoHqFuhRXKNe1j34WqXM6 Next: ATY5EkrWutknbRSqoq1rbneebPJ6p1mZRMLDHJde9jPT Diff:
OldNewDifferences
119119 func Q (R) = {
120120 let S = toString(R.caller)
121121 let T = (o + toString(R.caller))
122- if (if ((S != valueOrElse(v(o), "not an admin")))
122+ if (if ((S != valueOrErrorMessage(v(o), "not an admin")))
123123 then true
124- else (S != valueOrElse(v(T), "not an admin")))
124+ else (S != valueOrErrorMessage(v(T), "not an admin")))
125125 then throw("unauthorized")
126126 else true
127127 }
167167
168168
169169 @Callable(R)
170+func deleteAsset (Y) = {
171+ let ad = Q(R)
172+ if ((ad == ad))
173+ then {
174+ let ah = E(v(Y), (("asset with ticker " + Y) + "not found"))
175+ if ((ah == ah))
176+ then [DeleteEntry(Y), DeleteEntry((Y + c)), DeleteEntry((Y + d)), DeleteEntry((Y + b))]
177+ else throw("Strict value is not equal to itself.")
178+ }
179+ else throw("Strict value is not equal to itself.")
180+ }
181+
182+
183+
184+@Callable(R)
170185 func getAssetIdByTicker (Y) = {
171186 let ad = Q(R)
172187 if ((ad == ad))
173188 then {
174- let ah = E(v(Y), "asset not found")
175- $Tuple2(nil, ah)
189+ let ai = E(v(Y), "asset not found")
190+ $Tuple2(nil, ai)
176191 }
177192 else throw("Strict value is not equal to itself.")
178193 }
181196
182197 @Callable(R)
183198 func init (S) = {
184- let ai = valueOrErrorMessage(addressFromString(S), "invalid address")
185-[O(o, toString(ai))]
199+ let aj = valueOrErrorMessage(addressFromString(S), "invalid address")
200+[O(o, toString(aj))]
201+ }
202+
203+
204+
205+@Callable(R)
206+func _deleteEntry (u) = {
207+ let ad = Q(R)
208+ if ((ad == ad))
209+ then [DeleteEntry(u)]
210+ else throw("Strict value is not equal to itself.")
186211 }
187212
188213
192217 let ad = Q(R)
193218 if ((ad == ad))
194219 then {
195- let ai = valueOrErrorMessage(addressFromString(S), "invalid address")
196- let aj = (o + toString(ai))
197-[O(aj, S)]
220+ let aj = valueOrErrorMessage(addressFromString(S), "invalid address")
221+ let ak = (o + toString(aj))
222+[O(ak, S)]
198223 }
199224 else throw("Strict value is not equal to itself.")
200225 }
202227
203228
204229 @Callable(R)
205-func changeMainAdmin (ak) = {
206- let al = Q(R)
207- if ((al == al))
230+func changeMainAdmin (al) = {
231+ let am = Q(R)
232+ if ((am == am))
208233 then {
209- let ai = valueOrErrorMessage(addressFromString(ak), "invalid address")
210- let am = DeleteEntry(o)
211- if ((am == am))
212- then [O(o, toString(ai))]
234+ let aj = valueOrErrorMessage(addressFromString(al), "invalid address")
235+ let an = DeleteEntry(o)
236+ if ((an == an))
237+ then [O(o, toString(aj))]
213238 else throw("Strict value is not equal to itself.")
214239 }
215240 else throw("Strict value is not equal to itself.")
218243
219244
220245 @Callable(R)
221-func updateOtherAdminAddress (ak) = {
222- let al = Q(R)
223- if ((al == al))
246+func updateOtherAdminAddress (al) = {
247+ let am = Q(R)
248+ if ((am == am))
224249 then {
225- let ai = valueOrErrorMessage(addressFromString(ak), "invalid address")
226- let an = toString(R.caller)
227- let ao = (o + an)
228- let ap = E(v(ao), "no previous address found")
229- if ((ap == ap))
250+ let aj = valueOrErrorMessage(addressFromString(al), "invalid address")
251+ let ao = toString(R.caller)
252+ let ap = (o + ao)
253+ let aq = E(v(ap), "no previous address found")
254+ if ((aq == aq))
230255 then {
231- let aq = DeleteEntry(ao)
232- if ((aq == aq))
233- then [O(ao, toString(ai))]
256+ let ar = DeleteEntry(ap)
257+ if ((ar == ar))
258+ then [O(ap, toString(aj))]
234259 else throw("Strict value is not equal to itself.")
235260 }
236261 else throw("Strict value is not equal to itself.")
241266
242267
243268 @Callable(R)
244-func removeOtherAdmin (ar) = {
245- let al = Q(R)
246- if ((al == al))
269+func removeOtherAdmin (as) = {
270+ let am = Q(R)
271+ if ((am == am))
247272 then {
248- let ai = valueOrErrorMessage(addressFromString(ar), "invalid address")
249- let as = (o + toString(ai))
250- let at = DeleteEntry(as)
251- if ((at == at))
273+ let aj = valueOrErrorMessage(addressFromString(as), "invalid address")
274+ let at = (o + toString(aj))
275+ let au = DeleteEntry(at)
276+ if ((au == au))
252277 then nil
253278 else throw("Strict value is not equal to itself.")
254279 }
259284
260285 @Callable(R)
261286 func updateConfigValue (u,V) = {
262- let al = Q(R)
263- if ((al == al))
287+ let am = Q(R)
288+ if ((am == am))
264289 then {
265- let am = DeleteEntry(u)
266- if ((am == am))
290+ let an = DeleteEntry(u)
291+ if ((an == an))
267292 then [U(u, V)]
268293 else throw("Strict value is not equal to itself.")
269294 }
273298
274299
275300 @Callable(R)
276-func getDaysLeftToClaim (au) = {
277- let av = Q(R)
278- if ((av == av))
301+func getDaysLeftToClaim (av) = {
302+ let aw = Q(R)
303+ if ((aw == aw))
279304 then {
280- let aw = valueOrErrorMessage(addressFromString(au), "invalid address")
281- if ((aw == aw))
305+ let ax = valueOrErrorMessage(addressFromString(av), "invalid address")
306+ if ((ax == ax))
282307 then {
283- let ax = ("_" + toString(B(t((au + m)), ("no entry found for " + au))))
284- let ay = ((au + ax) + f)
285- let az = B(t(ay), "internal error")
286- let aA = I((height - az))
287- $Tuple2(nil, aA)
308+ let ay = ("_" + toString(B(t((av + m)), ("no entry found for " + av))))
309+ let az = ((av + ay) + f)
310+ let aA = B(t(az), "internal error")
311+ let aB = I((height - aA))
312+ $Tuple2(nil, aB)
288313 }
289314 else throw("Strict value is not equal to itself.")
290315 }
294319
295320
296321 @Callable(R)
297-func Lock (aB,Y,aC) = {
298- let aw = y((1 != size(R.payments)), "attach amount you want to lock")
299- if ((aw == aw))
322+func Lock (aC,Y,aD) = {
323+ let ax = y((1 != size(R.payments)), "attach amount you want to lock")
324+ if ((ax == ax))
300325 then {
301- let aD = toBase58String(value(R.payments[0].assetId))
302- let aE = y((v(Y) != aD), "asset not supported")
303- if ((aE == aE))
326+ let aE = toBase58String(value(R.payments[0].assetId))
327+ let aF = y((v(Y) != aE), "asset not supported")
328+ if ((aF == aF))
304329 then {
305- let aF = aB
306- let aG = toString(R.caller)
307- let aH = R.payments[0].amount
308- let aI = B(t((Y + c)), "internal error: minimum stacking amount not specified")
309- let aJ = B(t((Y + d)), "internal error: maximum staking amount not specified")
310- let aK = y(if ((aI > aH))
330+ let aG = aC
331+ let aH = toString(R.caller)
332+ let aI = R.payments[0].amount
333+ let aJ = B(t((Y + c)), "internal error: minimum stacking amount not specified")
334+ let aK = B(t((Y + d)), "internal error: maximum staking amount not specified")
335+ let aL = y(if ((aJ > aI))
311336 then true
312- else (aH > aJ), "staking amount is out of range")
313- if ((aK == aK))
337+ else (aI > aK), "staking amount is out of range")
338+ if ((aL == aL))
314339 then {
315- let aL = (aG + k)
316- let aM = if (!(isDefined(t(aL))))
340+ let aM = (aH + k)
341+ let aN = if (!(isDefined(t(aM))))
317342 then 0
318- else (aH + value(t(aL)))
319- let aN = y((aM > aJ), "you have maxed out your quota")
320- if ((aN == aN))
343+ else (aI + value(t(aM)))
344+ let aO = y((aN > aK), "you have maxed out your quota")
345+ if ((aO == aO))
321346 then {
322- let ax = ((aG + Y) + m)
323- let aO = W(ax)
324- let aP = ((("_" + Y) + "_") + toString(aO))
325- let aQ = ((aG + aP) + i)
326- let aR = ((aG + aP) + h)
327- let aS = ((aG + aP) + l)
328- let aT = ((aG + aP) + g)
329- let aU = ((aG + aP) + j)
330- let ay = ((aG + aP) + f)
331- let aV = ((aG + aP) + n)
332-[P(ax, aO), O(aQ, aG), O(aR, aD), P(aS, aF), P(aT, R.payments[0].amount), P(aL, aM), P(ay, I(aB)), P(aU, aC), BooleanEntry(aV, false)]
347+ let ay = ((aH + Y) + m)
348+ let aP = W(ay)
349+ let aQ = ((("_" + Y) + "_") + toString(aP))
350+ let aR = ((aH + aQ) + i)
351+ let aS = ((aH + aQ) + h)
352+ let aT = ((aH + aQ) + l)
353+ let aU = ((aH + aQ) + g)
354+ let aV = ((aH + aQ) + j)
355+ let az = ((aH + aQ) + f)
356+ let aW = ((aH + aQ) + n)
357+[P(ay, aP), O(aR, aH), O(aS, aE), P(aT, aG), P(aU, R.payments[0].amount), P(aM, aN), P(az, I(aC)), P(aV, aD), BooleanEntry(aW, false)]
333358 }
334359 else throw("Strict value is not equal to itself.")
335360 }
344369
345370 @Callable(R)
346371 func Claim (Y) = {
347- let aG = toString(R.caller)
348- let ax = ((("_" + Y) + "_") + toString(B(t(((aG + Y) + m)), "no entry found for user")))
349- let aW = ((aG + ax) + n)
350- let av = y((valueOrErrorMessage(getBoolean(aW), "cannot ascertain claimability") == true), (("user + " + aG) + " already claimed"))
351- if ((av == av))
372+ let aH = toString(R.caller)
373+ let ay = ((("_" + Y) + "_") + toString(B(t(((aH + Y) + m)), "no entry found for user")))
374+ let aX = ((aH + ay) + n)
375+ let aw = y((valueOrErrorMessage(getBoolean(aX), "cannot ascertain claimability") == true), (("user + " + aH) + " already claimed"))
376+ if ((aw == aw))
352377 then {
353- let aR = x(((aG + ax) + h))
354- let aT = w(((aG + ax) + g))
355- let aX = addressFromStringValue(E(v((Y + b)), "internal error: no reserve found"))
356- let aY = w(((aG + ax) + j))
357- let aZ = w(((aG + ax) + f))
358- let L = if ((0 >= (aZ - height)))
378+ let aS = x(((aH + ay) + h))
379+ let aU = w(((aH + ay) + g))
380+ let aY = addressFromStringValue(E(v((Y + b)), "internal error: no reserve found"))
381+ let aZ = w(((aH + ay) + j))
382+ let ba = w(((aH + ay) + f))
383+ let L = if ((0 >= (ba - height)))
359384 then 0
360- else (aZ - height)
361- let ba = K(L)
362- let aw = y((aZ > height), (toString(ba) + "/1000 days left to claim"))
363- if ((aw == aw))
385+ else (ba - height)
386+ let bb = K(L)
387+ let ax = y((ba > height), (toString(bb) + "/1000 days left to claim"))
388+ if ((ax == ax))
364389 then {
365- let bb = invoke(aX, "transferInterest", [aG, aY, toBytes(aR)], nil)
366- if ((bb == bb))
367- then [ScriptTransfer(addressFromStringValue(aG), aT, toBytes(aR)), BooleanEntry(aW, true)]
390+ let bc = invoke(aY, "transferInterest", [aH, aZ, toBytes(aS)], nil)
391+ if ((bc == bc))
392+ then [ScriptTransfer(addressFromStringValue(aH), aU, toBytes(aS)), BooleanEntry(aX, true)]
368393 else throw("Strict value is not equal to itself.")
369394 }
370395 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = this
55
66 let b = "_Reserve"
77
88 let c = "_MinLockAmount"
99
1010 let d = "_MaxLockAmount"
1111
1212 let e = nil
1313
1414 let f = "_Eligible_to_unlock_at_block"
1515
1616 let g = "_Amount_locked"
1717
1818 let h = "_Asset_locked"
1919
2020 let i = "_User"
2121
2222 let j = "_APY_amount"
2323
2424 let k = "_Total_Locked_Amount"
2525
2626 let l = "_Days_locked"
2727
2828 let m = "_Entry_Index"
2929
3030 let n = "_Already_Claimed"
3131
3232 let o = "admin_"
3333
3434 let p = 1440
3535
3636 let q = 30
3737
3838 let r = 60
3939
4040 let s = 90
4141
4242 func t (u) = getInteger(this, u)
4343
4444
4545 func v (u) = getString(this, u)
4646
4747
4848 func w (u) = value(getInteger(this, u))
4949
5050
5151 func x (u) = value(getString(this, u))
5252
5353
5454 func y (z,A) = if (z)
5555 then throw(A)
5656 else true
5757
5858
5959 func B (C,A) = {
6060 let D = C
6161 if ($isInstanceOf(D, "Int"))
6262 then {
6363 let C = D
6464 C
6565 }
6666 else throw(A)
6767 }
6868
6969
7070 func E (C,A) = {
7171 let D = C
7272 if ($isInstanceOf(D, "String"))
7373 then {
7474 let C = D
7575 C
7676 }
7777 else throw(A)
7878 }
7979
8080
8181 func F (u,G) = if ((0 > G))
8282 then throw(((("writing negative value " + toString(G)) + " for key ") + u))
8383 else IntegerEntry(u, G)
8484
8585
8686 func H (u,G) = if ((" " == G))
8787 then throw(("writing an empty string " + G))
8888 else StringEntry(u, G)
8989
9090
9191 func I (J) = if (if (if ((J != q))
9292 then true
9393 else (J != r))
9494 then true
9595 else (J != s))
9696 then throw("invalid Lock Period")
9797 else (((J + 1) * p) + height)
9898
9999
100100 func K (L) = if ((0 >= L))
101101 then 0
102102 else {
103103 let M = pow(10, 0, 3, 0, 0, CEILING)
104104 let N = fraction(L, M, p)
105105 N
106106 }
107107
108108
109109 func O (u,G) = if (!(isDefined(v(u))))
110110 then H(u, G)
111111 else throw(("already initialized: " + u))
112112
113113
114114 func P (u,G) = if (!(isDefined(v(u))))
115115 then F(u, G)
116116 else throw(("already initialized: " + u))
117117
118118
119119 func Q (R) = {
120120 let S = toString(R.caller)
121121 let T = (o + toString(R.caller))
122- if (if ((S != valueOrElse(v(o), "not an admin")))
122+ if (if ((S != valueOrErrorMessage(v(o), "not an admin")))
123123 then true
124- else (S != valueOrElse(v(T), "not an admin")))
124+ else (S != valueOrErrorMessage(v(T), "not an admin")))
125125 then throw("unauthorized")
126126 else true
127127 }
128128
129129
130130 func U (u,V) = {
131131 let D = V
132132 if ($isInstanceOf(D, "String"))
133133 then {
134134 let V = D
135135 O(u, V)
136136 }
137137 else if ($isInstanceOf(D, "Int"))
138138 then {
139139 let V = D
140140 P(u, V)
141141 }
142142 else throw("unsupported config type")
143143 }
144144
145145
146146 func W (u) = {
147147 let X = t(u)
148148 if (isDefined(X))
149149 then (value(X) + 1)
150150 else 0
151151 }
152152
153153
154154 @Callable(R)
155155 func addAsset (Y,Z,aa,ab,ac) = {
156156 let ad = Q(R)
157157 if ((ad == ad))
158158 then {
159159 let ae = (Y + b)
160160 let af = (Y + c)
161161 let ag = (Y + d)
162162 [O(Y, Z), O(ae, aa), P(af, ab), P(ag, ac)]
163163 }
164164 else throw("Strict value is not equal to itself.")
165165 }
166166
167167
168168
169169 @Callable(R)
170+func deleteAsset (Y) = {
171+ let ad = Q(R)
172+ if ((ad == ad))
173+ then {
174+ let ah = E(v(Y), (("asset with ticker " + Y) + "not found"))
175+ if ((ah == ah))
176+ then [DeleteEntry(Y), DeleteEntry((Y + c)), DeleteEntry((Y + d)), DeleteEntry((Y + b))]
177+ else throw("Strict value is not equal to itself.")
178+ }
179+ else throw("Strict value is not equal to itself.")
180+ }
181+
182+
183+
184+@Callable(R)
170185 func getAssetIdByTicker (Y) = {
171186 let ad = Q(R)
172187 if ((ad == ad))
173188 then {
174- let ah = E(v(Y), "asset not found")
175- $Tuple2(nil, ah)
189+ let ai = E(v(Y), "asset not found")
190+ $Tuple2(nil, ai)
176191 }
177192 else throw("Strict value is not equal to itself.")
178193 }
179194
180195
181196
182197 @Callable(R)
183198 func init (S) = {
184- let ai = valueOrErrorMessage(addressFromString(S), "invalid address")
185-[O(o, toString(ai))]
199+ let aj = valueOrErrorMessage(addressFromString(S), "invalid address")
200+[O(o, toString(aj))]
201+ }
202+
203+
204+
205+@Callable(R)
206+func _deleteEntry (u) = {
207+ let ad = Q(R)
208+ if ((ad == ad))
209+ then [DeleteEntry(u)]
210+ else throw("Strict value is not equal to itself.")
186211 }
187212
188213
189214
190215 @Callable(R)
191216 func addAdmin (S) = {
192217 let ad = Q(R)
193218 if ((ad == ad))
194219 then {
195- let ai = valueOrErrorMessage(addressFromString(S), "invalid address")
196- let aj = (o + toString(ai))
197-[O(aj, S)]
220+ let aj = valueOrErrorMessage(addressFromString(S), "invalid address")
221+ let ak = (o + toString(aj))
222+[O(ak, S)]
198223 }
199224 else throw("Strict value is not equal to itself.")
200225 }
201226
202227
203228
204229 @Callable(R)
205-func changeMainAdmin (ak) = {
206- let al = Q(R)
207- if ((al == al))
230+func changeMainAdmin (al) = {
231+ let am = Q(R)
232+ if ((am == am))
208233 then {
209- let ai = valueOrErrorMessage(addressFromString(ak), "invalid address")
210- let am = DeleteEntry(o)
211- if ((am == am))
212- then [O(o, toString(ai))]
234+ let aj = valueOrErrorMessage(addressFromString(al), "invalid address")
235+ let an = DeleteEntry(o)
236+ if ((an == an))
237+ then [O(o, toString(aj))]
213238 else throw("Strict value is not equal to itself.")
214239 }
215240 else throw("Strict value is not equal to itself.")
216241 }
217242
218243
219244
220245 @Callable(R)
221-func updateOtherAdminAddress (ak) = {
222- let al = Q(R)
223- if ((al == al))
246+func updateOtherAdminAddress (al) = {
247+ let am = Q(R)
248+ if ((am == am))
224249 then {
225- let ai = valueOrErrorMessage(addressFromString(ak), "invalid address")
226- let an = toString(R.caller)
227- let ao = (o + an)
228- let ap = E(v(ao), "no previous address found")
229- if ((ap == ap))
250+ let aj = valueOrErrorMessage(addressFromString(al), "invalid address")
251+ let ao = toString(R.caller)
252+ let ap = (o + ao)
253+ let aq = E(v(ap), "no previous address found")
254+ if ((aq == aq))
230255 then {
231- let aq = DeleteEntry(ao)
232- if ((aq == aq))
233- then [O(ao, toString(ai))]
256+ let ar = DeleteEntry(ap)
257+ if ((ar == ar))
258+ then [O(ap, toString(aj))]
234259 else throw("Strict value is not equal to itself.")
235260 }
236261 else throw("Strict value is not equal to itself.")
237262 }
238263 else throw("Strict value is not equal to itself.")
239264 }
240265
241266
242267
243268 @Callable(R)
244-func removeOtherAdmin (ar) = {
245- let al = Q(R)
246- if ((al == al))
269+func removeOtherAdmin (as) = {
270+ let am = Q(R)
271+ if ((am == am))
247272 then {
248- let ai = valueOrErrorMessage(addressFromString(ar), "invalid address")
249- let as = (o + toString(ai))
250- let at = DeleteEntry(as)
251- if ((at == at))
273+ let aj = valueOrErrorMessage(addressFromString(as), "invalid address")
274+ let at = (o + toString(aj))
275+ let au = DeleteEntry(at)
276+ if ((au == au))
252277 then nil
253278 else throw("Strict value is not equal to itself.")
254279 }
255280 else throw("Strict value is not equal to itself.")
256281 }
257282
258283
259284
260285 @Callable(R)
261286 func updateConfigValue (u,V) = {
262- let al = Q(R)
263- if ((al == al))
287+ let am = Q(R)
288+ if ((am == am))
264289 then {
265- let am = DeleteEntry(u)
266- if ((am == am))
290+ let an = DeleteEntry(u)
291+ if ((an == an))
267292 then [U(u, V)]
268293 else throw("Strict value is not equal to itself.")
269294 }
270295 else throw("Strict value is not equal to itself.")
271296 }
272297
273298
274299
275300 @Callable(R)
276-func getDaysLeftToClaim (au) = {
277- let av = Q(R)
278- if ((av == av))
301+func getDaysLeftToClaim (av) = {
302+ let aw = Q(R)
303+ if ((aw == aw))
279304 then {
280- let aw = valueOrErrorMessage(addressFromString(au), "invalid address")
281- if ((aw == aw))
305+ let ax = valueOrErrorMessage(addressFromString(av), "invalid address")
306+ if ((ax == ax))
282307 then {
283- let ax = ("_" + toString(B(t((au + m)), ("no entry found for " + au))))
284- let ay = ((au + ax) + f)
285- let az = B(t(ay), "internal error")
286- let aA = I((height - az))
287- $Tuple2(nil, aA)
308+ let ay = ("_" + toString(B(t((av + m)), ("no entry found for " + av))))
309+ let az = ((av + ay) + f)
310+ let aA = B(t(az), "internal error")
311+ let aB = I((height - aA))
312+ $Tuple2(nil, aB)
288313 }
289314 else throw("Strict value is not equal to itself.")
290315 }
291316 else throw("Strict value is not equal to itself.")
292317 }
293318
294319
295320
296321 @Callable(R)
297-func Lock (aB,Y,aC) = {
298- let aw = y((1 != size(R.payments)), "attach amount you want to lock")
299- if ((aw == aw))
322+func Lock (aC,Y,aD) = {
323+ let ax = y((1 != size(R.payments)), "attach amount you want to lock")
324+ if ((ax == ax))
300325 then {
301- let aD = toBase58String(value(R.payments[0].assetId))
302- let aE = y((v(Y) != aD), "asset not supported")
303- if ((aE == aE))
326+ let aE = toBase58String(value(R.payments[0].assetId))
327+ let aF = y((v(Y) != aE), "asset not supported")
328+ if ((aF == aF))
304329 then {
305- let aF = aB
306- let aG = toString(R.caller)
307- let aH = R.payments[0].amount
308- let aI = B(t((Y + c)), "internal error: minimum stacking amount not specified")
309- let aJ = B(t((Y + d)), "internal error: maximum staking amount not specified")
310- let aK = y(if ((aI > aH))
330+ let aG = aC
331+ let aH = toString(R.caller)
332+ let aI = R.payments[0].amount
333+ let aJ = B(t((Y + c)), "internal error: minimum stacking amount not specified")
334+ let aK = B(t((Y + d)), "internal error: maximum staking amount not specified")
335+ let aL = y(if ((aJ > aI))
311336 then true
312- else (aH > aJ), "staking amount is out of range")
313- if ((aK == aK))
337+ else (aI > aK), "staking amount is out of range")
338+ if ((aL == aL))
314339 then {
315- let aL = (aG + k)
316- let aM = if (!(isDefined(t(aL))))
340+ let aM = (aH + k)
341+ let aN = if (!(isDefined(t(aM))))
317342 then 0
318- else (aH + value(t(aL)))
319- let aN = y((aM > aJ), "you have maxed out your quota")
320- if ((aN == aN))
343+ else (aI + value(t(aM)))
344+ let aO = y((aN > aK), "you have maxed out your quota")
345+ if ((aO == aO))
321346 then {
322- let ax = ((aG + Y) + m)
323- let aO = W(ax)
324- let aP = ((("_" + Y) + "_") + toString(aO))
325- let aQ = ((aG + aP) + i)
326- let aR = ((aG + aP) + h)
327- let aS = ((aG + aP) + l)
328- let aT = ((aG + aP) + g)
329- let aU = ((aG + aP) + j)
330- let ay = ((aG + aP) + f)
331- let aV = ((aG + aP) + n)
332-[P(ax, aO), O(aQ, aG), O(aR, aD), P(aS, aF), P(aT, R.payments[0].amount), P(aL, aM), P(ay, I(aB)), P(aU, aC), BooleanEntry(aV, false)]
347+ let ay = ((aH + Y) + m)
348+ let aP = W(ay)
349+ let aQ = ((("_" + Y) + "_") + toString(aP))
350+ let aR = ((aH + aQ) + i)
351+ let aS = ((aH + aQ) + h)
352+ let aT = ((aH + aQ) + l)
353+ let aU = ((aH + aQ) + g)
354+ let aV = ((aH + aQ) + j)
355+ let az = ((aH + aQ) + f)
356+ let aW = ((aH + aQ) + n)
357+[P(ay, aP), O(aR, aH), O(aS, aE), P(aT, aG), P(aU, R.payments[0].amount), P(aM, aN), P(az, I(aC)), P(aV, aD), BooleanEntry(aW, false)]
333358 }
334359 else throw("Strict value is not equal to itself.")
335360 }
336361 else throw("Strict value is not equal to itself.")
337362 }
338363 else throw("Strict value is not equal to itself.")
339364 }
340365 else throw("Strict value is not equal to itself.")
341366 }
342367
343368
344369
345370 @Callable(R)
346371 func Claim (Y) = {
347- let aG = toString(R.caller)
348- let ax = ((("_" + Y) + "_") + toString(B(t(((aG + Y) + m)), "no entry found for user")))
349- let aW = ((aG + ax) + n)
350- let av = y((valueOrErrorMessage(getBoolean(aW), "cannot ascertain claimability") == true), (("user + " + aG) + " already claimed"))
351- if ((av == av))
372+ let aH = toString(R.caller)
373+ let ay = ((("_" + Y) + "_") + toString(B(t(((aH + Y) + m)), "no entry found for user")))
374+ let aX = ((aH + ay) + n)
375+ let aw = y((valueOrErrorMessage(getBoolean(aX), "cannot ascertain claimability") == true), (("user + " + aH) + " already claimed"))
376+ if ((aw == aw))
352377 then {
353- let aR = x(((aG + ax) + h))
354- let aT = w(((aG + ax) + g))
355- let aX = addressFromStringValue(E(v((Y + b)), "internal error: no reserve found"))
356- let aY = w(((aG + ax) + j))
357- let aZ = w(((aG + ax) + f))
358- let L = if ((0 >= (aZ - height)))
378+ let aS = x(((aH + ay) + h))
379+ let aU = w(((aH + ay) + g))
380+ let aY = addressFromStringValue(E(v((Y + b)), "internal error: no reserve found"))
381+ let aZ = w(((aH + ay) + j))
382+ let ba = w(((aH + ay) + f))
383+ let L = if ((0 >= (ba - height)))
359384 then 0
360- else (aZ - height)
361- let ba = K(L)
362- let aw = y((aZ > height), (toString(ba) + "/1000 days left to claim"))
363- if ((aw == aw))
385+ else (ba - height)
386+ let bb = K(L)
387+ let ax = y((ba > height), (toString(bb) + "/1000 days left to claim"))
388+ if ((ax == ax))
364389 then {
365- let bb = invoke(aX, "transferInterest", [aG, aY, toBytes(aR)], nil)
366- if ((bb == bb))
367- then [ScriptTransfer(addressFromStringValue(aG), aT, toBytes(aR)), BooleanEntry(aW, true)]
390+ let bc = invoke(aY, "transferInterest", [aH, aZ, toBytes(aS)], nil)
391+ if ((bc == bc))
392+ then [ScriptTransfer(addressFromStringValue(aH), aU, toBytes(aS)), BooleanEntry(aX, true)]
368393 else throw("Strict value is not equal to itself.")
369394 }
370395 else throw("Strict value is not equal to itself.")
371396 }
372397 else throw("Strict value is not equal to itself.")
373398 }
374399
375400

github/deemru/w8io/169f3d6 
90.14 ms