tx · CMdJkRnn3XxHv4S2aBfJfLd2uvjLx7mAiXpNEzDt8BFY

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.03000000 Waves

2023.01.26 14:15 [2421865] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "CMdJkRnn3XxHv4S2aBfJfLd2uvjLx7mAiXpNEzDt8BFY", "fee": 3000000, "feeAssetId": null, "timestamp": 1674731763007, "version": 1, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "2eZXK3q7KetTSszn8VcyCsvapxcgm2nHj8QCRZg1dC5q3fUA4K9cLx3FFcAFsA7rUN9TdqPznK8KmoEfgQCAeZcX" ], "script": "base64:AAIFAAAAAAAAEqsIAhIECgIICBIDCgEIEgoKCAgICAgICAgBEgMKAQgSBgoECAgICBIECgIIGBIDCgEIEgQKAggYEgMKAQgSABIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4Ig5QT09MV0VJR0hUTVVMVCIOR1dYdmlydHVhbFBPT0wiDGxhYmVsUG9vbHNMcCINZGVmYXVsdFNwcmVhZCIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIha2V5QWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoIhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIPa2V5QWRtaW5QdWJLZXlzIhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM2MzIzNjk0IiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIOZ2V0UHJpY2VBc3NldHMiByRtYXRjaDAiAXMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IhVwZXJtaXNzaW9uRGVuaWVkRXJyb3IiCG11c3RUaGlzIgFpIgttdXN0TWFuYWdlciICcGsiEGRhdGFGYWN0b3J5Q2ZnVjMiDnN0YWtpbmdBZGRyZXNzIg9ib29zdGluZ0FkZHJlc3MiC2lkb0NvbnRyYWN0Igx0ZWFtQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiDHJlc3RDb250cmFjdCIQc2xpcHBhZ2VDb250cmFjdCILZGFvQ29udHJhY3QiEW1hcmtldGluZ0NvbnRyYWN0IhJnd3hSZXdhcmRzQ29udHJhY3QiDWJpcmRzQ29udHJhY3QiDmRhdGFGYWN0b3J5Q2ZnIgtkYXRhUG9vbENmZyIKcG9vbFN0YXR1cyIJbHBBc3NldElkIg5hbW91bnRBc3NldFN0ciINcHJpY2VBc3NldFN0ciITYW1vdW50QXNzZXREZWNpbWFscyIScHJpY2VBc3NldERlY2ltYWxzIhVhbW91bnRBc3NldEludGVybmFsSWQiFHByaWNlQXNzZXRJbnRlcm5hbElkIg9scEFzc2V0RGVjaW1hbHMiCHBvb2xUeXBlIhVkYXRhTWFwcGluZ1Bvb2xBc3NldHMiFmludGVybmFsQW1vdW50QXNzZXRTdHIiFWludGVybmFsUHJpY2VBc3NldFN0ciINZ2V0UG9vbENvbmZpZyIKcG9vbEFzc2V0cyIaZ2V0SW50ZXJuYWxBc3NldElkT3JDcmVhdGUiCmFzc2V0SWRTdHIiC2luY3JlbWVudG9yIg9pbnRlcm5hbEFzc2V0SWQiGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZCIGcmVzdWx0IhJuZXdJbnRlcm5hbEFzc2V0SWQiCW11c3RBZG1pbiIIYWRtaW5QS3MiCWlzTWFuYWdlciIWaW50T3JEZWZhdWx0T3JGYWxsYmFjayIKa2V5RGVmYXVsdCINdmFsdWVGYWxsYmFjayIGYXNzZXQxIgZhc3NldDIiAmxwIg9zdGFraW5nQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiEHNscGlwYWdlQ29udHJhY3QiDXByaWNlRGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhBtYXRoY2hlclB1YjU4U3RyIgptYXRoY2VyUHViIhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiC2xlZ2FjeVBvb2xzIhNhc3NldHNTdG9yZUNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IgtwcmljZUFzc2V0cyIFY2hla3MiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIMYWRtaW5QdWJLZXlzIgtscEFzc2V0TmFtZSIMbHBBc3NldERlc2NyIgpwb29sV2VpZ2h0IgRsb2dvIhdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YSIVaW50ZXJuYWxBbW91bnRBc3NldElkIhZpbnRlcm5hbFByaWNlQXNzZXREYXRhIhRpbnRlcm5hbFByaWNlQXNzZXRJZCIVcG9vbEFjY291bnRTY3JpcHRIYXNoIhxldGhhbG9uUG9vbEFjY291bnRTY3JpcHRIYXNoIgpwb29sQ29uZmlnIg9wb29sQ29uZmlnVmFsdWUiFGFtb3VudEFzc2V0c0RlY2ltYWxzIhNwcmljZUFzc2V0c0RlY2ltYWxzIhJscEFzc2V0SXNzdWVBY3Rpb24iDGxwQXNzZXRJZFN0ciIYcG9vbEFjdGl2YXRlSW52b2tlUmVzdWx0IhhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYiEmFkZFBvb2xzTHBMYWJlbEludiIKc2V0TG9nb0ludiIQYWRkQXNzZXRzTGlua0ludiIbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52IgluZXdTdGF0dXMiCmxwQXNzZXREY20iDGFtb3VudFRvRW1pdCIGY2FsbGVyIgxvcmlnaW5DYWxsZXIiEGxwQXNzZXRSZXF1ZXN0ZWQiB2xwQXNzZXQiDGFtb3VudFRvQnVybiIHcGF5bWVudCINcGF5bWVudEFtb3VudCIPaW5BbW91bnRBc3NldElkIhpscEFzc2V0UmVxdWVzdGVkRm9yQnVybmluZyIFc2hhcmUiDXBvb2xXZWlnaHRLZXkiDGd3eFdlaWdodEtleSIJZ3d4V2VpZ2h0Ig1wb29sV2VpZ2h0TmV3IhFvbk1vZGlmeVdlaWdodEludiIVZ3d4VmlydHVhbFBvb2xBY3Rpb25zIhRwb29sV2VpZ2h0SGlzdG9yeUtleSIXcG9vbFdlaWdodEhpc3RvcnlPclVuaXQiGHBvb2xXZWlnaHRIaXN0b3J5QWN0aW9ucyIOYnRjUG9vbEFkZHJlc3MiDmV0aFBvb2xBZGRyZXNzIhFldGhCdGNQb29sQWRkcmVzcyITdXNkY1VzZHRQb29sQWRkcmVzcyIPZXRoQnRjV2VpZ2h0TmV3IhF1c2RjVXNkdFdlaWdodE5ldyIPd2VpZ2h0RGVjcmVtZW50IgtzdGFraW5nRGFwcCINZ3d4UmV3YXJkRGFwcCIMYnRjV2VpZ2h0S0VZIgxldGhXZWlnaHRLRVkiD2V0aEJ0Y1dlaWdodEtFWSIRdXNkY1VzZHRXZWlnaHRLRVkiCWJ0Y1dlaWdodCIJZXRoV2VpZ2h0IgxidGNXZWlnaHROZXciDGV0aFdlaWdodE5ldyIPYnRjTHBBc3NldElkU3RyIg9ldGhMcEFzc2V0SWRTdHIiEmV0aEJ0Y0xwQXNzZXRJZFN0ciIUdXNkY1VzZHRMcEFzc2V0SWRTdHIiEW9uTW9kaWZ5V2VpZ2h0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", "chainId": 84, "height": 2421865, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EcKC9a8LKbnmCvxN7bDwgZfMv5XgQxpE2FM2nnUfRRNX Next: AbUpSUmk9WwZJtCvZyTtrQ7p5gM4gpjUfKtEt5gEDaHY Diff:
OldNewDifferences
333333
334334
335335 @Callable(bf)
336-func constructor (bY,bZ,bl,bm,bn,bo,ca,cb) = {
337- let cc = bg(bf)
338- if ((cc == cc))
339- then [StringEntry(I(), bu(bY, bZ, bl, bm, bn, bo, ca)), IntegerEntry(U(), cb)]
336+func getLpAssetFromPoolAssetsREADONLY (bY,bZ) = $Tuple2(nil, getString(this, ao(bY, bZ)))
337+
338+
339+
340+@Callable(bf)
341+func getPoolAddressFromLpAssetREADONLY (ca) = $Tuple2(nil, getString(this, aw(ca)))
342+
343+
344+
345+@Callable(bf)
346+func constructor (cb,cc,bl,bm,bn,bo,cd,ce) = {
347+ let cf = bg(bf)
348+ if ((cf == cf))
349+ then [StringEntry(I(), bu(cb, cc, bl, bm, bn, bo, cd)), IntegerEntry(U(), ce)]
340350 else throw("Strict value is not equal to itself.")
341351 }
342352
343353
344354
345355 @Callable(bf)
346-func constructorV2 (cd) = {
347- let cc = bg(bf)
348- if ((cc == cc))
356+func constructorV2 (cg) = {
357+ let cf = bg(bf)
358+ if ((cf == cf))
349359 then {
350- let ce = addressFromPublicKey(fromBase58String(cd))
351- if ((ce == ce))
352- then [StringEntry(L(), cd)]
360+ let ch = addressFromPublicKey(fromBase58String(cg))
361+ if ((ch == ch))
362+ then [StringEntry(L(), cg)]
353363 else throw("Strict value is not equal to itself.")
354364 }
355365 else throw("Strict value is not equal to itself.")
359369
360370 @Callable(bf)
361371 func constructorV3 (bq,br,bs,bt) = {
362- let cc = bg(bf)
363- if ((cc == cc))
372+ let cf = bg(bf)
373+ if ((cf == cf))
364374 then {
365375 let aU = split(aE(I()), j)
366376 [StringEntry(I(), bi(aU[1], aU[2], aU[3], aU[4], aU[5], aU[6], aU[7], bq, br, bs, bt))]
371381
372382
373383 @Callable(bf)
374-func constructorV4 (cf,cg) = {
375- let cc = bg(bf)
376- if ((cc == cc))
377- then [StringEntry(M(), cf), StringEntry(N(), makeString(cg, j))]
384+func constructorV4 (ci,cj) = {
385+ let cf = bg(bf)
386+ if ((cf == cf))
387+ then [StringEntry(M(), ci), StringEntry(N(), makeString(cj, j))]
378388 else throw("Strict value is not equal to itself.")
379389 }
380390
381391
382392
383393 @Callable(bf)
384-func constructorV5 (ch) = {
385- let cc = bg(bf)
386- if ((cc == cc))
387- then [StringEntry(R(), ch)]
394+func constructorV5 (ck) = {
395+ let cf = bg(bf)
396+ if ((cf == cf))
397+ then [StringEntry(R(), ck)]
388398 else throw("Strict value is not equal to itself.")
389399 }
390400
391401
392402
393403 @Callable(bf)
394-func constructorV6 (ci,cj) = {
395- let ck = [bg(bf), if ((addressFromString(ci) != unit))
404+func constructorV6 (cl,cm) = {
405+ let cn = [bg(bf), if ((addressFromString(cl) != unit))
396406 then true
397407 else "invalid voting emission contract address"]
398- if ((ck == ck))
399- then [StringEntry(S(), ci), StringEntry(T(), makeString(cj, j))]
408+ if ((cn == cn))
409+ then [StringEntry(S(), cl), StringEntry(T(), makeString(cm, j))]
400410 else throw("Strict value is not equal to itself.")
401411 }
402412
403413
404414
405415 @Callable(bf)
406-func setManager (cl) = {
407- let cc = bg(bf)
408- if ((cc == cc))
416+func setManager (co) = {
417+ let cf = bg(bf)
418+ if ((cf == cf))
409419 then {
410- let cm = fromBase58String(cl)
411- if ((cm == cm))
412- then [StringEntry(P(), cl)]
420+ let cp = fromBase58String(co)
421+ if ((cp == cp))
422+ then [StringEntry(P(), co)]
413423 else throw("Strict value is not equal to itself.")
414424 }
415425 else throw("Strict value is not equal to itself.")
419429
420430 @Callable(bf)
421431 func confirmManager () = {
422- let cn = bc()
423- let co = if (isDefined(cn))
432+ let cq = bc()
433+ let cr = if (isDefined(cq))
424434 then true
425435 else throw("No pending manager")
426- if ((co == co))
436+ if ((cr == cr))
427437 then {
428- let cp = if ((bf.callerPublicKey == value(cn)))
438+ let cs = if ((bf.callerPublicKey == value(cq)))
429439 then true
430440 else throw("You are not pending manager")
431- if ((cp == cp))
432- then [StringEntry(O(), toBase58String(value(cn))), DeleteEntry(P())]
441+ if ((cs == cs))
442+ then [StringEntry(O(), toBase58String(value(cq))), DeleteEntry(P())]
433443 else throw("Strict value is not equal to itself.")
434444 }
435445 else throw("Strict value is not equal to itself.")
438448
439449
440450 @Callable(bf)
441-func setAdmins (cq) = {
442- let cc = bg(bf)
443- if ((cc == cc))
444- then [StringEntry(Q(), makeString(cq, j))]
451+func setAdmins (ct) = {
452+ let cf = bg(bf)
453+ if ((cf == cf))
454+ then [StringEntry(Q(), makeString(ct, j))]
445455 else throw("Strict value is not equal to itself.")
446456 }
447457
448458
449459
450460 @Callable(bf)
451-func activateNewPool (Y,by,bz,cr,cs,ct,bF,cu) = {
452- let cc = bS(bf)
453- if ((cc == cc))
461+func activateNewPool (Y,by,bz,cu,cv,cw,bF,cx) = {
462+ let cf = bS(bf)
463+ if ((cf == cf))
454464 then if (isDefined(getString(as(Y))))
455465 then throw((("Pool address " + Y) + " already registered."))
456466 else {
457- let cv = bL(by, 1)
458- let cw = cv._1
459- let cx = bL(bz, if (cv._3)
467+ let cy = bL(by, 1)
468+ let cz = cy._1
469+ let cA = bL(bz, if (cy._3)
460470 then 2
461471 else 1)
462- let cy = cx._1
463- let cz = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
464- let cA = getBinaryValue(K())
465- let cB = getString(this, af(toString(cw), toString(cy)))
466- if (isDefined(cB))
472+ let cB = cA._1
473+ let cC = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
474+ let cD = getBinaryValue(K())
475+ let cE = getString(this, af(toString(cz), toString(cB)))
476+ if (isDefined(cE))
467477 then throw((((("Pool " + by) + "/") + bz) + " has already been activated."))
468478 else {
469- let cC = value(getString(this, af(toString(cw), toString(cy))))
470- let cD = if ((by == "WAVES"))
479+ let cF = value(getString(this, af(toString(cz), toString(cB))))
480+ let cG = if ((by == "WAVES"))
471481 then i
472482 else pow(10, 0, value(assetInfo(fromBase58String(by))).decimals, 0, 0, DOWN)
473- let cE = if ((bz == "WAVES"))
483+ let cH = if ((bz == "WAVES"))
474484 then i
475485 else pow(10, 0, value(assetInfo(fromBase58String(bz))).decimals, 0, 0, DOWN)
476- let cF = Issue(cr, cs, 1, 8, true)
477- let bx = calculateAssetId(cF)
478- let cG = toBase58String(bx)
479- let cH = invoke(addressFromStringValue(Y), "activate", [by, bz], nil)
480- if ((cH == cH))
481- then if ((cH != "success"))
486+ let cI = Issue(cu, cv, 1, 8, true)
487+ let bx = calculateAssetId(cI)
488+ let cJ = toBase58String(bx)
489+ let cK = invoke(addressFromStringValue(Y), "activate", [by, bz], nil)
490+ if ((cK == cK))
491+ then if ((cK != "success"))
482492 then throw("Pool initialisation error happened.")
483493 else {
484- let ch = addressFromStringValue(aE(R()))
485- let cI = invoke(ch, "createOrUpdate", [cG, cr, false], nil)
486- if ((cI == cI))
494+ let ck = addressFromStringValue(aE(R()))
495+ let cL = invoke(ck, "createOrUpdate", [cJ, cu, false], nil)
496+ if ((cL == cL))
487497 then {
488- let cJ = invoke(ch, "addLabel", [cG, g], nil)
489- if ((cJ == cJ))
498+ let cM = invoke(ck, "addLabel", [cJ, g], nil)
499+ if ((cM == cM))
490500 then {
491- let cK = invoke(ch, "setLogo", [cG, cu], nil)
492- if ((cK == cK))
501+ let cN = invoke(ck, "setLogo", [cJ, cx], nil)
502+ if ((cN == cN))
493503 then {
494- let cL = invoke(ch, "addAssetsLink", [by, bz, cG], nil)
495- if ((cL == cL))
504+ let cO = invoke(ck, "addAssetsLink", [by, bz, cJ], nil)
505+ if ((cO == cO))
496506 then {
497- let cM = invoke(ch, "increaseAssetPoolsNumber", [by], nil)
498- if ((cM == cM))
499- then $Tuple2(((cv._2 ++ cx._2) ++ [cF, Burn(bx, 1), StringEntry(af(toString(cw), toString(cy)), bv(Y, toString(l), cG, by, bz, cD, cE, cw, cy, i, bF)), StringEntry(am(cG), bG(cw, cy)), StringEntry(ao(toString(cw), toString(cy)), ("%s__" + cG)), StringEntry(as(Y), bG(cw, cy)), StringEntry(au(cw, cy), Y), StringEntry(aw(cG), Y), StringEntry(av(Y), cG), IntegerEntry(X(Y), ct), IntegerEntry(ar(Y), h)]), cG)
507+ let cP = invoke(ck, "increaseAssetPoolsNumber", [by], nil)
508+ if ((cP == cP))
509+ then $Tuple2(((cy._2 ++ cA._2) ++ [cI, Burn(bx, 1), StringEntry(af(toString(cz), toString(cB)), bv(Y, toString(l), cJ, by, bz, cG, cH, cz, cB, i, bF)), StringEntry(am(cJ), bG(cz, cB)), StringEntry(ao(toString(cz), toString(cB)), ("%s__" + cJ)), StringEntry(as(Y), bG(cz, cB)), StringEntry(au(cz, cB), Y), StringEntry(aw(cJ), Y), StringEntry(av(Y), cJ), IntegerEntry(X(Y), cw), IntegerEntry(ar(Y), h)]), cJ)
500510 else throw("Strict value is not equal to itself.")
501511 }
502512 else throw("Strict value is not equal to itself.")
516526
517527
518528 @Callable(bf)
519-func managePool (Y,cN) = {
520- let cc = bg(bf)
521- if ((cc == cc))
529+func managePool (Y,cQ) = {
530+ let cf = bg(bf)
531+ if ((cf == cf))
522532 then {
523- let cB = bJ(Y)
524- let bw = cB[t]
525- let cG = cB[u]
526- let by = cB[v]
527- let bz = cB[w]
528- let cD = parseIntValue(cB[x])
529- let cE = parseIntValue(cB[y])
530- let cw = parseIntValue(cB[z])
531- let cy = parseIntValue(cB[A])
532- let cO = parseIntValue(cB[B])
533- let bF = cB[C]
534-[StringEntry(af(toString(cw), toString(cy)), bv(Y, toString(cN), cG, by, bz, cD, cE, cw, cy, cO, bF))]
533+ let cE = bJ(Y)
534+ let bw = cE[t]
535+ let cJ = cE[u]
536+ let by = cE[v]
537+ let bz = cE[w]
538+ let cG = parseIntValue(cE[x])
539+ let cH = parseIntValue(cE[y])
540+ let cz = parseIntValue(cE[z])
541+ let cB = parseIntValue(cE[A])
542+ let cR = parseIntValue(cE[B])
543+ let bF = cE[C]
544+[StringEntry(af(toString(cz), toString(cB)), bv(Y, toString(cQ), cJ, by, bz, cG, cH, cz, cB, cR, bF))]
535545 }
536546 else throw("Strict value is not equal to itself.")
537547 }
539549
540550
541551 @Callable(bf)
542-func emit (cP) = {
543- let cQ = bf.caller
544- let cR = bf.originCaller
545- let cS = valueOrErrorMessage(getString(av(toString(cQ))), "Invalid LP address called me.")
546- let cT = fromBase58String(cS)
547- let cg = split(valueOrElse(getString(N()), k), j)
548- let cf = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
549- if ((0 >= cP))
552+func emit (cS) = {
553+ let cT = bf.caller
554+ let cU = bf.originCaller
555+ let cV = valueOrErrorMessage(getString(av(toString(cT))), "Invalid LP address called me.")
556+ let cW = fromBase58String(cV)
557+ let cj = split(valueOrElse(getString(N()), k), j)
558+ let ci = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
559+ if ((0 >= cS))
550560 then nil
551- else if (containsElement(cg, toString(cQ)))
552- then $Tuple2(nil, cf)
553- else $Tuple2([Reissue(cT, cP, true), ScriptTransfer(bf.caller, cP, cT)], "success")
561+ else if (containsElement(cj, toString(cT)))
562+ then $Tuple2(nil, ci)
563+ else $Tuple2([Reissue(cW, cS, true), ScriptTransfer(bf.caller, cS, cW)], "success")
554564 }
555565
556566
557567
558568 @Callable(bf)
559-func burn (cU) = {
560- let cQ = bf.caller
561- let cR = bf.originCaller
562- let cV = value(bf.payments[0])
563- let cW = value(cV.amount)
564- let cX = toBase58String(value(cV.assetId))
565- let cY = valueOrErrorMessage(getString(av(toString(cQ))), "Invalid LP address called me.")
566- if ((cX != cY))
569+func burn (cX) = {
570+ let cT = bf.caller
571+ let cU = bf.originCaller
572+ let cY = value(bf.payments[0])
573+ let cZ = value(cY.amount)
574+ let da = toBase58String(value(cY.assetId))
575+ let db = valueOrErrorMessage(getString(av(toString(cT))), "Invalid LP address called me.")
576+ if ((da != db))
567577 then throw("Invalid asset passed.")
568- else if ((cU != cW))
578+ else if ((cX != cZ))
569579 then throw("Invalid amount passed.")
570580 else {
571- let cT = fromBase58String(cY)
572- $Tuple2([Burn(cT, cU)], "success")
581+ let cW = fromBase58String(db)
582+ $Tuple2([Burn(cW, cX)], "success")
573583 }
574584 }
575585
576586
577587
578588 @Callable(bf)
579-func modifyWeight (bx,cZ) = {
580- let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, S()), "")))
589+func modifyWeight (bx,dc) = {
590+ let cf = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, S()), "")))
581591 then true
582592 else bg(bf)
583- if ((cc == cc))
593+ if ((cf == cf))
584594 then {
585595 let at = aE(aw(bx))
586- let da = X(at)
587- let db = X(f)
588- let dc = valueOrElse(getInteger(db), 0)
589- let ct = valueOrElse(getInteger(da), 0)
590- let dd = cZ
596+ let dd = X(at)
597+ let de = X(f)
598+ let df = valueOrElse(getInteger(de), 0)
599+ let cw = valueOrElse(getInteger(dd), 0)
600+ let dg = dc
591601 let aU = split(aE(I()), j)
592- let bY = aW(aU)
593- let de = invoke(bY, "onModifyWeight", [bx, at], nil)
594- if ((de == de))
602+ let cb = aW(aU)
603+ let dh = invoke(cb, "onModifyWeight", [bx, at], nil)
604+ if ((dh == dh))
595605 then {
596- let df = if ((dc == 0))
606+ let di = if ((df == 0))
597607 then nil
598- else [IntegerEntry(db, 0)]
599- let dg = Z(at, 0)
600- let dh = getInteger(dg)
601- let di = if ((dh == unit))
608+ else [IntegerEntry(de, 0)]
609+ let dj = Z(at, 0)
610+ let dk = getInteger(dj)
611+ let dl = if ((dk == unit))
602612 then nil
603- else [DeleteEntry(dg)]
604- (([IntegerEntry(da, dd)] ++ df) ++ di)
613+ else [DeleteEntry(dj)]
614+ (([IntegerEntry(dd, dg)] ++ di) ++ dl)
605615 }
606616 else throw("Strict value is not equal to itself.")
607617 }
611621
612622
613623 @Callable(bf)
614-func modifyWeights (dj,dk,dl,dm) = {
615- let cc = bg(bf)
616- if ((cc == cc))
624+func modifyWeights (dm,dn,do,dp) = {
625+ let cf = bg(bf)
626+ if ((cf == cf))
617627 then {
618- let dn = ((5 * e) / 100)
619- let do = ((5 * e) / 100)
620- let dp = ((5 * e) / 100)
628+ let dq = ((5 * e) / 100)
629+ let dr = ((5 * e) / 100)
630+ let ds = ((5 * e) / 100)
621631 let aU = split(aE(I()), j)
622- let dq = aW(aU)
623- let dr = aX(aU)
624- let ds = X(dj)
625- let dt = X(dk)
626- let du = X(dl)
632+ let dt = aW(aU)
633+ let du = aX(aU)
627634 let dv = X(dm)
628- let dw = aH(ds)
629- let dx = aH(dt)
630- let dy = (dw - dp)
631- let dz = (dx - dp)
632- if ((0 >= dy))
633- then throw(("invalid btcWeightNew: " + toString(dy)))
634- else if ((0 >= dz))
635- then throw(("invalid ethWeightNew: " + toString(dz)))
635+ let dw = X(dn)
636+ let dx = X(do)
637+ let dy = X(dp)
638+ let dz = aH(dv)
639+ let dA = aH(dw)
640+ let dB = (dz - ds)
641+ let dC = (dA - ds)
642+ if ((0 >= dB))
643+ then throw(("invalid btcWeightNew: " + toString(dB)))
644+ else if ((0 >= dC))
645+ then throw(("invalid ethWeightNew: " + toString(dC)))
636646 else {
637- let dA = aE(av(dj))
638- let dB = aE(av(dk))
639- let dC = aE(av(dl))
640647 let dD = aE(av(dm))
641- let dE = invoke(dq, "onModifyWeight", [dA, dj], nil)
642- if ((dE == dE))
648+ let dE = aE(av(dn))
649+ let dF = aE(av(do))
650+ let dG = aE(av(dp))
651+ let dH = invoke(dt, "onModifyWeight", [dD, dm], nil)
652+ if ((dH == dH))
643653 then {
644- let dF = invoke(dq, "onModifyWeight", [dB, dk], nil)
645- if ((dF == dF))
654+ let dI = invoke(dt, "onModifyWeight", [dE, dn], nil)
655+ if ((dI == dI))
646656 then {
647- let dG = invoke(dq, "onModifyWeight", [dC, dl], nil)
648- if ((dG == dG))
657+ let dJ = invoke(dt, "onModifyWeight", [dF, do], nil)
658+ if ((dJ == dJ))
649659 then {
650- let dH = invoke(dq, "onModifyWeight", [dD, dm], nil)
651- if ((dH == dH))
652- then [IntegerEntry(ds, dy), IntegerEntry(dt, dz), IntegerEntry(du, dn), IntegerEntry(dv, do), IntegerEntry(Z(dj, 0), dw), IntegerEntry(Z(dk, 0), dx), IntegerEntry(Z(dl, 0), dn), IntegerEntry(Z(dm, 0), do)]
660+ let dK = invoke(dt, "onModifyWeight", [dG, dp], nil)
661+ if ((dK == dK))
662+ then [IntegerEntry(dv, dB), IntegerEntry(dw, dC), IntegerEntry(dx, dq), IntegerEntry(dy, dr), IntegerEntry(Z(dm, 0), dz), IntegerEntry(Z(dn, 0), dA), IntegerEntry(Z(do, 0), dq), IntegerEntry(Z(dp, 0), dr)]
653663 else throw("Strict value is not equal to itself.")
654664 }
655665 else throw("Strict value is not equal to itself.")
666676
667677 @Callable(bf)
668678 func checkWxEmissionPoolLabel (ay,az) = {
669- let dI = {
679+ let dL = {
670680 let aZ = getBoolean(ax(ay, az))
671681 if ($isInstanceOf(aZ, "Boolean"))
672682 then {
673- let dJ = aZ
674- dJ
683+ let dM = aZ
684+ dM
675685 }
676686 else false
677687 }
678- $Tuple2(nil, dI)
688+ $Tuple2(nil, dL)
679689 }
680690
681691
682692
683693 @Callable(bf)
684694 func setWxEmissionPoolLabel (ay,az) = {
685- let cc = bS(bf)
686- if ((cc == cc))
695+ let cf = bS(bf)
696+ if ((cf == cf))
687697 then $Tuple2([BooleanEntry(ax(ay, az), true)], unit)
688698 else throw("Strict value is not equal to itself.")
689699 }
692702
693703 @Callable(bf)
694704 func deleteWxEmissionPoolLabel (ay,az) = {
695- let cc = if (be(bf))
705+ let cf = if (be(bf))
696706 then true
697707 else bS(bf)
698- if ((cc == cc))
708+ if ((cf == cf))
699709 then $Tuple2([DeleteEntry(ax(ay, az))], unit)
700710 else throw("Strict value is not equal to itself.")
701711 }
703713
704714
705715 @Callable(bf)
706-func onVerificationLoss (dK) = {
707- let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, R()), "")))
716+func onVerificationLoss (dN) = {
717+ let cf = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, R()), "")))
708718 then true
709719 else bg(bf)
710- if ((cc == cc))
720+ if ((cf == cf))
711721 then {
712- let cj = aY()
713- let dL = if ((size(cj) > 0))
722+ let cm = aY()
723+ let dO = if ((size(cm) > 0))
714724 then true
715725 else throw("invalid price assets")
716- if ((dL == dL))
726+ if ((dO == dO))
717727 then {
718- func dM (dN,dO) = {
719- let dP = invoke(this, "deleteWxEmissionPoolLabel", [dK, dO], nil)
720- if ((dP == dP))
728+ func dP (dQ,dR) = {
729+ let dS = invoke(this, "deleteWxEmissionPoolLabel", [dN, dR], nil)
730+ if ((dS == dS))
721731 then unit
722732 else throw("Strict value is not equal to itself.")
723733 }
724734
725- let dQ = {
726- let dR = cj
727- let dS = size(dR)
728- let dT = unit
729- func dU (dV,dW) = if ((dW >= dS))
730- then dV
731- else dM(dV, dR[dW])
735+ let dT = {
736+ let dU = cm
737+ let dV = size(dU)
738+ let dW = unit
739+ func dX (dY,dZ) = if ((dZ >= dV))
740+ then dY
741+ else dP(dY, dU[dZ])
732742
733- func dX (dV,dW) = if ((dW >= dS))
734- then dV
743+ func ea (dY,dZ) = if ((dZ >= dV))
744+ then dY
735745 else throw("List size exceeds 3")
736746
737- dX(dU(dU(dU(dT, 0), 1), 2), 3)
747+ ea(dX(dX(dX(dW, 0), 1), 2), 3)
738748 }
739- if ((dQ == dQ))
749+ if ((dT == dT))
740750 then $Tuple2(nil, unit)
741751 else throw("Strict value is not equal to itself.")
742752 }
749759
750760 @Callable(bf)
751761 func isPoolOneTokenOperationsDisabledREADONLY (Y) = {
752- let cB = bJ(Y)
753- let aj = $Tuple2(parseIntValue(cB[z]), parseIntValue(cB[A]))
754- let dY = valueOrElse(getBoolean(ai(aj)), false)
755- let dZ = valueOrElse(getBoolean(al()), false)
756- $Tuple2(nil, if (dZ)
762+ let cE = bJ(Y)
763+ let aj = $Tuple2(parseIntValue(cE[z]), parseIntValue(cE[A]))
764+ let eb = valueOrElse(getBoolean(ai(aj)), false)
765+ let ec = valueOrElse(getBoolean(al()), false)
766+ $Tuple2(nil, if (ec)
757767 then true
758- else dY)
768+ else eb)
759769 }
760770
761771
762772
763773 @Callable(bf)
764774 func getInFeeREADONLY (Y) = {
765- let ea = bV(aA(Y), aB(), 0)
766- $Tuple2(nil, ea)
775+ let ed = bV(aA(Y), aB(), 0)
776+ $Tuple2(nil, ed)
767777 }
768778
769779
770780
771781 @Callable(bf)
772782 func getOutFeeREADONLY (Y) = {
773- let ea = bV(aC(Y), aD(), fraction(10, b, 10000))
774- $Tuple2(nil, ea)
783+ let ed = bV(aC(Y), aD(), fraction(10, b, 10000))
784+ $Tuple2(nil, ed)
775785 }
776786
777787
781791 let bK = split(aE(as(Y)), j)
782792 let ag = bK[1]
783793 let ah = bK[2]
784- let eb = split(aE(af(ag, ah)), j)
785- $Tuple2(nil, parseIntValue(eb[t]))
794+ let ee = split(aE(af(ag, ah)), j)
795+ $Tuple2(nil, parseIntValue(ee[t]))
786796 }
787797
788798
789-@Verifier(ec)
790-func ed () = {
791- let ee = {
799+@Verifier(ef)
800+func eg () = {
801+ let eh = {
792802 let aZ = bb()
793803 if ($isInstanceOf(aZ, "ByteVector"))
794804 then {
796806 bh
797807 }
798808 else if ($isInstanceOf(aZ, "Unit"))
799- then ec.senderPublicKey
809+ then ef.senderPublicKey
800810 else throw("Match error")
801811 }
802- sigVerify(ec.bodyBytes, ec.proofs[0], ee)
812+ sigVerify(ef.bodyBytes, ef.proofs[0], eh)
803813 }
804814
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = b
1313
1414 let f = "GWXvirtualPOOL"
1515
1616 let g = "POOLS_LP"
1717
1818 let h = 2000000
1919
2020 let i = ((100 * 1000) * 1000)
2121
2222 let j = "__"
2323
2424 let k = ""
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = 3
4545
4646 let v = 4
4747
4848 let w = 5
4949
5050 let x = 6
5151
5252 let y = 7
5353
5454 let z = 8
5555
5656 let A = 9
5757
5858 let B = 10
5959
6060 let C = 11
6161
6262 let D = "WX_EMISSION"
6363
6464 let E = [D]
6565
6666 func F () = "%s__allowedLpScriptHash"
6767
6868
6969 func G () = "%s__allowedLpStableScriptHash"
7070
7171
7272 func H () = "%s__allowedLpStableAddonScriptHash"
7373
7474
7575 func I () = "%s__factoryConfig"
7676
7777
7878 func J () = "%s__lpTokensList"
7979
8080
8181 func K () = "%s%s__pool__scriptHash"
8282
8383
8484 func L () = "%s%s__matcher__publicKey"
8585
8686
8787 func M () = "%s__legacyFactoryContract"
8888
8989
9090 func N () = "%s__legacyPools"
9191
9292
9393 func O () = "%s__managerPublicKey"
9494
9595
9696 func P () = "%s__pendingManagerPublicKey"
9797
9898
9999 func Q () = "%s__adminPubKeys"
100100
101101
102102 func R () = "%s__assetsStoreContract"
103103
104104
105105 func S () = "%s__votingEmissionContract"
106106
107107
108108 func T () = makeString(["%s", "priceAssets"], j)
109109
110110
111111 func U () = "%s__priceDecimals"
112112
113113
114114 func V () = "%s__shutdown"
115115
116116
117117 func W () = "%s__nextInternalAssetId"
118118
119119
120120 func X (Y) = ("%s%s__poolWeight__" + Y)
121121
122122
123123 func Z (Y,aa) = ((("%s%s__poolWeight__" + Y) + "__") + toString(aa))
124124
125125
126126 func ab (ac) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(ac))
127127
128128
129129 func ad (ae) = ("%s%s%s__mappings__baseAsset2internalId__" + ae)
130130
131131
132132 func af (ag,ah) = (((("%d%d%s__" + ag) + "__") + ah) + "__config")
133133
134134
135135 func ai (aj) = {
136136 let ak = aj
137137 let ag = ak._1
138138 let ah = ak._2
139139 makeString(["%d%d%s", toString(ag), toString(ah), "oneTokenOperationsDisabled"], j)
140140 }
141141
142142
143143 func al () = makeString(["%s", "oneTokenOperationsDisabled"], j)
144144
145145
146146 func am (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2Pool")
147147
148148
149149 func ao (ap,aq) = (((("%d%d%s%s__" + ap) + "__") + aq) + "__mappings__PoolAssets2LpAsset")
150150
151151
152152 func ar (Y) = ("%s%s__spread__" + Y)
153153
154154
155155 func as (at) = (("%s%s%s__" + at) + "__mappings__poolContract2PoolAssets")
156156
157157
158158 func au (ap,aq) = (((("%d%d%s%s__" + toString(ap)) + "__") + toString(aq)) + "__mappings__poolAssets2PoolContract")
159159
160160
161161 func av (at) = (("%s%s%s__" + at) + "__mappings__poolContract2LpAsset")
162162
163163
164164 func aw (an) = (("%s%s%s__" + an) + "__mappings__lpAsset2PoolContract")
165165
166166
167167 func ax (ay,az) = ((("%s%s%s__wxEmission__" + ay) + "__") + az)
168168
169169
170170 func aA (Y) = ("%s%s__inFee__" + Y)
171171
172172
173173 func aB () = "%s__inFeeDefault"
174174
175175
176176 func aC (Y) = ("%s%s__outFee__" + Y)
177177
178178
179179 func aD () = "%s__outFeeDefault"
180180
181181
182182 func aE (aF) = valueOrErrorMessage(getString(this, aF), ("No data for this.key=" + aF))
183183
184184
185185 func aG (aF) = valueOrErrorMessage(getBoolean(this, aF), ("No data for this.key=" + aF))
186186
187187
188188 func aH (aF) = valueOrErrorMessage(getInteger(this, aF), ("No data for this.key=" + aF))
189189
190190
191191 let aI = 1
192192
193193 let aJ = 2
194194
195195 let aK = 3
196196
197197 let aL = 4
198198
199199 let aM = 5
200200
201201 let aN = 6
202202
203203 let aO = 7
204204
205205 let aP = 8
206206
207207 let aQ = 9
208208
209209 let aR = 10
210210
211211 let aS = 11
212212
213213 func aT (aU) = addressFromStringValue(aU[aJ])
214214
215215
216216 func aV (aU) = addressFromStringValue(aU[aM])
217217
218218
219219 func aW (aU) = addressFromStringValue(aU[aI])
220220
221221
222222 func aX (aU) = addressFromStringValue(aU[aR])
223223
224224
225225 func aY () = {
226226 let aZ = getString(T())
227227 if ($isInstanceOf(aZ, "String"))
228228 then {
229229 let ba = aZ
230230 if ((size(ba) == 0))
231231 then nil
232232 else split(ba, j)
233233 }
234234 else nil
235235 }
236236
237237
238238 func bb () = {
239239 let aZ = getString(O())
240240 if ($isInstanceOf(aZ, "String"))
241241 then {
242242 let ba = aZ
243243 fromBase58String(ba)
244244 }
245245 else if ($isInstanceOf(aZ, "Unit"))
246246 then unit
247247 else throw("Match error")
248248 }
249249
250250
251251 func bc () = {
252252 let aZ = getString(P())
253253 if ($isInstanceOf(aZ, "String"))
254254 then {
255255 let ba = aZ
256256 fromBase58String(ba)
257257 }
258258 else if ($isInstanceOf(aZ, "Unit"))
259259 then unit
260260 else throw("Match error")
261261 }
262262
263263
264264 let bd = throw("Permission denied")
265265
266266 func be (bf) = if ((bf.caller == this))
267267 then true
268268 else bd
269269
270270
271271 func bg (bf) = {
272272 let aZ = bb()
273273 if ($isInstanceOf(aZ, "ByteVector"))
274274 then {
275275 let bh = aZ
276276 if ((bf.callerPublicKey == bh))
277277 then true
278278 else bd
279279 }
280280 else if ($isInstanceOf(aZ, "Unit"))
281281 then be(bf)
282282 else throw("Match error")
283283 }
284284
285285
286286 func bi (bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bj, bk, bl, bm, bn, bo, bp, bq, br, bs, bt], j)
287287
288288
289289 func bu (bj,bk,bl,bm,bn,bo,bp) = makeString(["%s%s%s%s%s%s", bj, bk, bl, bm, bn, bo, bp], j)
290290
291291
292292 func bv (Y,bw,bx,by,bz,bA,bB,bC,bD,bE,bF) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Y, bw, bx, by, bz, toString(bA), toString(bB), toString(bC), toString(bD), toString(bE), bF], j)
293293
294294
295295 func bG (bH,bI) = makeString(["%d%d", toString(bH), toString(bI)], j)
296296
297297
298298 func bJ (Y) = {
299299 let bK = split(aE(as(Y)), j)
300300 let ag = bK[1]
301301 let ah = bK[2]
302302 split(aE(af(ag, ah)), j)
303303 }
304304
305305
306306 func bL (bM,bN) = {
307307 let bO = valueOrElse(getInteger(this, ad(bM)), 0)
308308 let bP = valueOrElse(getInteger(this, W()), 0)
309309 let bQ = if ((bO == 0))
310310 then {
311311 let bR = (bP + bN)
312312 $Tuple3(bR, [IntegerEntry(W(), bR), IntegerEntry(ad(bM), bR), StringEntry(ab(bR), bM)], true)
313313 }
314314 else $Tuple3(bO, nil, false)
315315 bQ
316316 }
317317
318318
319319 func bS (bf) = {
320320 let bT = split(valueOrElse(getString(Q()), k), j)
321321 if (containsElement(bT, toBase58String(bf.callerPublicKey)))
322322 then true
323323 else {
324324 let bU = bg(bf)
325325 if ((bU == bU))
326326 then true
327327 else throw("Strict value is not equal to itself.")
328328 }
329329 }
330330
331331
332332 func bV (aF,bW,bX) = valueOrElse(getInteger(this, aF), valueOrElse(getInteger(this, bW), bX))
333333
334334
335335 @Callable(bf)
336-func constructor (bY,bZ,bl,bm,bn,bo,ca,cb) = {
337- let cc = bg(bf)
338- if ((cc == cc))
339- then [StringEntry(I(), bu(bY, bZ, bl, bm, bn, bo, ca)), IntegerEntry(U(), cb)]
336+func getLpAssetFromPoolAssetsREADONLY (bY,bZ) = $Tuple2(nil, getString(this, ao(bY, bZ)))
337+
338+
339+
340+@Callable(bf)
341+func getPoolAddressFromLpAssetREADONLY (ca) = $Tuple2(nil, getString(this, aw(ca)))
342+
343+
344+
345+@Callable(bf)
346+func constructor (cb,cc,bl,bm,bn,bo,cd,ce) = {
347+ let cf = bg(bf)
348+ if ((cf == cf))
349+ then [StringEntry(I(), bu(cb, cc, bl, bm, bn, bo, cd)), IntegerEntry(U(), ce)]
340350 else throw("Strict value is not equal to itself.")
341351 }
342352
343353
344354
345355 @Callable(bf)
346-func constructorV2 (cd) = {
347- let cc = bg(bf)
348- if ((cc == cc))
356+func constructorV2 (cg) = {
357+ let cf = bg(bf)
358+ if ((cf == cf))
349359 then {
350- let ce = addressFromPublicKey(fromBase58String(cd))
351- if ((ce == ce))
352- then [StringEntry(L(), cd)]
360+ let ch = addressFromPublicKey(fromBase58String(cg))
361+ if ((ch == ch))
362+ then [StringEntry(L(), cg)]
353363 else throw("Strict value is not equal to itself.")
354364 }
355365 else throw("Strict value is not equal to itself.")
356366 }
357367
358368
359369
360370 @Callable(bf)
361371 func constructorV3 (bq,br,bs,bt) = {
362- let cc = bg(bf)
363- if ((cc == cc))
372+ let cf = bg(bf)
373+ if ((cf == cf))
364374 then {
365375 let aU = split(aE(I()), j)
366376 [StringEntry(I(), bi(aU[1], aU[2], aU[3], aU[4], aU[5], aU[6], aU[7], bq, br, bs, bt))]
367377 }
368378 else throw("Strict value is not equal to itself.")
369379 }
370380
371381
372382
373383 @Callable(bf)
374-func constructorV4 (cf,cg) = {
375- let cc = bg(bf)
376- if ((cc == cc))
377- then [StringEntry(M(), cf), StringEntry(N(), makeString(cg, j))]
384+func constructorV4 (ci,cj) = {
385+ let cf = bg(bf)
386+ if ((cf == cf))
387+ then [StringEntry(M(), ci), StringEntry(N(), makeString(cj, j))]
378388 else throw("Strict value is not equal to itself.")
379389 }
380390
381391
382392
383393 @Callable(bf)
384-func constructorV5 (ch) = {
385- let cc = bg(bf)
386- if ((cc == cc))
387- then [StringEntry(R(), ch)]
394+func constructorV5 (ck) = {
395+ let cf = bg(bf)
396+ if ((cf == cf))
397+ then [StringEntry(R(), ck)]
388398 else throw("Strict value is not equal to itself.")
389399 }
390400
391401
392402
393403 @Callable(bf)
394-func constructorV6 (ci,cj) = {
395- let ck = [bg(bf), if ((addressFromString(ci) != unit))
404+func constructorV6 (cl,cm) = {
405+ let cn = [bg(bf), if ((addressFromString(cl) != unit))
396406 then true
397407 else "invalid voting emission contract address"]
398- if ((ck == ck))
399- then [StringEntry(S(), ci), StringEntry(T(), makeString(cj, j))]
408+ if ((cn == cn))
409+ then [StringEntry(S(), cl), StringEntry(T(), makeString(cm, j))]
400410 else throw("Strict value is not equal to itself.")
401411 }
402412
403413
404414
405415 @Callable(bf)
406-func setManager (cl) = {
407- let cc = bg(bf)
408- if ((cc == cc))
416+func setManager (co) = {
417+ let cf = bg(bf)
418+ if ((cf == cf))
409419 then {
410- let cm = fromBase58String(cl)
411- if ((cm == cm))
412- then [StringEntry(P(), cl)]
420+ let cp = fromBase58String(co)
421+ if ((cp == cp))
422+ then [StringEntry(P(), co)]
413423 else throw("Strict value is not equal to itself.")
414424 }
415425 else throw("Strict value is not equal to itself.")
416426 }
417427
418428
419429
420430 @Callable(bf)
421431 func confirmManager () = {
422- let cn = bc()
423- let co = if (isDefined(cn))
432+ let cq = bc()
433+ let cr = if (isDefined(cq))
424434 then true
425435 else throw("No pending manager")
426- if ((co == co))
436+ if ((cr == cr))
427437 then {
428- let cp = if ((bf.callerPublicKey == value(cn)))
438+ let cs = if ((bf.callerPublicKey == value(cq)))
429439 then true
430440 else throw("You are not pending manager")
431- if ((cp == cp))
432- then [StringEntry(O(), toBase58String(value(cn))), DeleteEntry(P())]
441+ if ((cs == cs))
442+ then [StringEntry(O(), toBase58String(value(cq))), DeleteEntry(P())]
433443 else throw("Strict value is not equal to itself.")
434444 }
435445 else throw("Strict value is not equal to itself.")
436446 }
437447
438448
439449
440450 @Callable(bf)
441-func setAdmins (cq) = {
442- let cc = bg(bf)
443- if ((cc == cc))
444- then [StringEntry(Q(), makeString(cq, j))]
451+func setAdmins (ct) = {
452+ let cf = bg(bf)
453+ if ((cf == cf))
454+ then [StringEntry(Q(), makeString(ct, j))]
445455 else throw("Strict value is not equal to itself.")
446456 }
447457
448458
449459
450460 @Callable(bf)
451-func activateNewPool (Y,by,bz,cr,cs,ct,bF,cu) = {
452- let cc = bS(bf)
453- if ((cc == cc))
461+func activateNewPool (Y,by,bz,cu,cv,cw,bF,cx) = {
462+ let cf = bS(bf)
463+ if ((cf == cf))
454464 then if (isDefined(getString(as(Y))))
455465 then throw((("Pool address " + Y) + " already registered."))
456466 else {
457- let cv = bL(by, 1)
458- let cw = cv._1
459- let cx = bL(bz, if (cv._3)
467+ let cy = bL(by, 1)
468+ let cz = cy._1
469+ let cA = bL(bz, if (cy._3)
460470 then 2
461471 else 1)
462- let cy = cx._1
463- let cz = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
464- let cA = getBinaryValue(K())
465- let cB = getString(this, af(toString(cw), toString(cy)))
466- if (isDefined(cB))
472+ let cB = cA._1
473+ let cC = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
474+ let cD = getBinaryValue(K())
475+ let cE = getString(this, af(toString(cz), toString(cB)))
476+ if (isDefined(cE))
467477 then throw((((("Pool " + by) + "/") + bz) + " has already been activated."))
468478 else {
469- let cC = value(getString(this, af(toString(cw), toString(cy))))
470- let cD = if ((by == "WAVES"))
479+ let cF = value(getString(this, af(toString(cz), toString(cB))))
480+ let cG = if ((by == "WAVES"))
471481 then i
472482 else pow(10, 0, value(assetInfo(fromBase58String(by))).decimals, 0, 0, DOWN)
473- let cE = if ((bz == "WAVES"))
483+ let cH = if ((bz == "WAVES"))
474484 then i
475485 else pow(10, 0, value(assetInfo(fromBase58String(bz))).decimals, 0, 0, DOWN)
476- let cF = Issue(cr, cs, 1, 8, true)
477- let bx = calculateAssetId(cF)
478- let cG = toBase58String(bx)
479- let cH = invoke(addressFromStringValue(Y), "activate", [by, bz], nil)
480- if ((cH == cH))
481- then if ((cH != "success"))
486+ let cI = Issue(cu, cv, 1, 8, true)
487+ let bx = calculateAssetId(cI)
488+ let cJ = toBase58String(bx)
489+ let cK = invoke(addressFromStringValue(Y), "activate", [by, bz], nil)
490+ if ((cK == cK))
491+ then if ((cK != "success"))
482492 then throw("Pool initialisation error happened.")
483493 else {
484- let ch = addressFromStringValue(aE(R()))
485- let cI = invoke(ch, "createOrUpdate", [cG, cr, false], nil)
486- if ((cI == cI))
494+ let ck = addressFromStringValue(aE(R()))
495+ let cL = invoke(ck, "createOrUpdate", [cJ, cu, false], nil)
496+ if ((cL == cL))
487497 then {
488- let cJ = invoke(ch, "addLabel", [cG, g], nil)
489- if ((cJ == cJ))
498+ let cM = invoke(ck, "addLabel", [cJ, g], nil)
499+ if ((cM == cM))
490500 then {
491- let cK = invoke(ch, "setLogo", [cG, cu], nil)
492- if ((cK == cK))
501+ let cN = invoke(ck, "setLogo", [cJ, cx], nil)
502+ if ((cN == cN))
493503 then {
494- let cL = invoke(ch, "addAssetsLink", [by, bz, cG], nil)
495- if ((cL == cL))
504+ let cO = invoke(ck, "addAssetsLink", [by, bz, cJ], nil)
505+ if ((cO == cO))
496506 then {
497- let cM = invoke(ch, "increaseAssetPoolsNumber", [by], nil)
498- if ((cM == cM))
499- then $Tuple2(((cv._2 ++ cx._2) ++ [cF, Burn(bx, 1), StringEntry(af(toString(cw), toString(cy)), bv(Y, toString(l), cG, by, bz, cD, cE, cw, cy, i, bF)), StringEntry(am(cG), bG(cw, cy)), StringEntry(ao(toString(cw), toString(cy)), ("%s__" + cG)), StringEntry(as(Y), bG(cw, cy)), StringEntry(au(cw, cy), Y), StringEntry(aw(cG), Y), StringEntry(av(Y), cG), IntegerEntry(X(Y), ct), IntegerEntry(ar(Y), h)]), cG)
507+ let cP = invoke(ck, "increaseAssetPoolsNumber", [by], nil)
508+ if ((cP == cP))
509+ then $Tuple2(((cy._2 ++ cA._2) ++ [cI, Burn(bx, 1), StringEntry(af(toString(cz), toString(cB)), bv(Y, toString(l), cJ, by, bz, cG, cH, cz, cB, i, bF)), StringEntry(am(cJ), bG(cz, cB)), StringEntry(ao(toString(cz), toString(cB)), ("%s__" + cJ)), StringEntry(as(Y), bG(cz, cB)), StringEntry(au(cz, cB), Y), StringEntry(aw(cJ), Y), StringEntry(av(Y), cJ), IntegerEntry(X(Y), cw), IntegerEntry(ar(Y), h)]), cJ)
500510 else throw("Strict value is not equal to itself.")
501511 }
502512 else throw("Strict value is not equal to itself.")
503513 }
504514 else throw("Strict value is not equal to itself.")
505515 }
506516 else throw("Strict value is not equal to itself.")
507517 }
508518 else throw("Strict value is not equal to itself.")
509519 }
510520 else throw("Strict value is not equal to itself.")
511521 }
512522 }
513523 else throw("Strict value is not equal to itself.")
514524 }
515525
516526
517527
518528 @Callable(bf)
519-func managePool (Y,cN) = {
520- let cc = bg(bf)
521- if ((cc == cc))
529+func managePool (Y,cQ) = {
530+ let cf = bg(bf)
531+ if ((cf == cf))
522532 then {
523- let cB = bJ(Y)
524- let bw = cB[t]
525- let cG = cB[u]
526- let by = cB[v]
527- let bz = cB[w]
528- let cD = parseIntValue(cB[x])
529- let cE = parseIntValue(cB[y])
530- let cw = parseIntValue(cB[z])
531- let cy = parseIntValue(cB[A])
532- let cO = parseIntValue(cB[B])
533- let bF = cB[C]
534-[StringEntry(af(toString(cw), toString(cy)), bv(Y, toString(cN), cG, by, bz, cD, cE, cw, cy, cO, bF))]
533+ let cE = bJ(Y)
534+ let bw = cE[t]
535+ let cJ = cE[u]
536+ let by = cE[v]
537+ let bz = cE[w]
538+ let cG = parseIntValue(cE[x])
539+ let cH = parseIntValue(cE[y])
540+ let cz = parseIntValue(cE[z])
541+ let cB = parseIntValue(cE[A])
542+ let cR = parseIntValue(cE[B])
543+ let bF = cE[C]
544+[StringEntry(af(toString(cz), toString(cB)), bv(Y, toString(cQ), cJ, by, bz, cG, cH, cz, cB, cR, bF))]
535545 }
536546 else throw("Strict value is not equal to itself.")
537547 }
538548
539549
540550
541551 @Callable(bf)
542-func emit (cP) = {
543- let cQ = bf.caller
544- let cR = bf.originCaller
545- let cS = valueOrErrorMessage(getString(av(toString(cQ))), "Invalid LP address called me.")
546- let cT = fromBase58String(cS)
547- let cg = split(valueOrElse(getString(N()), k), j)
548- let cf = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
549- if ((0 >= cP))
552+func emit (cS) = {
553+ let cT = bf.caller
554+ let cU = bf.originCaller
555+ let cV = valueOrErrorMessage(getString(av(toString(cT))), "Invalid LP address called me.")
556+ let cW = fromBase58String(cV)
557+ let cj = split(valueOrElse(getString(N()), k), j)
558+ let ci = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
559+ if ((0 >= cS))
550560 then nil
551- else if (containsElement(cg, toString(cQ)))
552- then $Tuple2(nil, cf)
553- else $Tuple2([Reissue(cT, cP, true), ScriptTransfer(bf.caller, cP, cT)], "success")
561+ else if (containsElement(cj, toString(cT)))
562+ then $Tuple2(nil, ci)
563+ else $Tuple2([Reissue(cW, cS, true), ScriptTransfer(bf.caller, cS, cW)], "success")
554564 }
555565
556566
557567
558568 @Callable(bf)
559-func burn (cU) = {
560- let cQ = bf.caller
561- let cR = bf.originCaller
562- let cV = value(bf.payments[0])
563- let cW = value(cV.amount)
564- let cX = toBase58String(value(cV.assetId))
565- let cY = valueOrErrorMessage(getString(av(toString(cQ))), "Invalid LP address called me.")
566- if ((cX != cY))
569+func burn (cX) = {
570+ let cT = bf.caller
571+ let cU = bf.originCaller
572+ let cY = value(bf.payments[0])
573+ let cZ = value(cY.amount)
574+ let da = toBase58String(value(cY.assetId))
575+ let db = valueOrErrorMessage(getString(av(toString(cT))), "Invalid LP address called me.")
576+ if ((da != db))
567577 then throw("Invalid asset passed.")
568- else if ((cU != cW))
578+ else if ((cX != cZ))
569579 then throw("Invalid amount passed.")
570580 else {
571- let cT = fromBase58String(cY)
572- $Tuple2([Burn(cT, cU)], "success")
581+ let cW = fromBase58String(db)
582+ $Tuple2([Burn(cW, cX)], "success")
573583 }
574584 }
575585
576586
577587
578588 @Callable(bf)
579-func modifyWeight (bx,cZ) = {
580- let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, S()), "")))
589+func modifyWeight (bx,dc) = {
590+ let cf = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, S()), "")))
581591 then true
582592 else bg(bf)
583- if ((cc == cc))
593+ if ((cf == cf))
584594 then {
585595 let at = aE(aw(bx))
586- let da = X(at)
587- let db = X(f)
588- let dc = valueOrElse(getInteger(db), 0)
589- let ct = valueOrElse(getInteger(da), 0)
590- let dd = cZ
596+ let dd = X(at)
597+ let de = X(f)
598+ let df = valueOrElse(getInteger(de), 0)
599+ let cw = valueOrElse(getInteger(dd), 0)
600+ let dg = dc
591601 let aU = split(aE(I()), j)
592- let bY = aW(aU)
593- let de = invoke(bY, "onModifyWeight", [bx, at], nil)
594- if ((de == de))
602+ let cb = aW(aU)
603+ let dh = invoke(cb, "onModifyWeight", [bx, at], nil)
604+ if ((dh == dh))
595605 then {
596- let df = if ((dc == 0))
606+ let di = if ((df == 0))
597607 then nil
598- else [IntegerEntry(db, 0)]
599- let dg = Z(at, 0)
600- let dh = getInteger(dg)
601- let di = if ((dh == unit))
608+ else [IntegerEntry(de, 0)]
609+ let dj = Z(at, 0)
610+ let dk = getInteger(dj)
611+ let dl = if ((dk == unit))
602612 then nil
603- else [DeleteEntry(dg)]
604- (([IntegerEntry(da, dd)] ++ df) ++ di)
613+ else [DeleteEntry(dj)]
614+ (([IntegerEntry(dd, dg)] ++ di) ++ dl)
605615 }
606616 else throw("Strict value is not equal to itself.")
607617 }
608618 else throw("Strict value is not equal to itself.")
609619 }
610620
611621
612622
613623 @Callable(bf)
614-func modifyWeights (dj,dk,dl,dm) = {
615- let cc = bg(bf)
616- if ((cc == cc))
624+func modifyWeights (dm,dn,do,dp) = {
625+ let cf = bg(bf)
626+ if ((cf == cf))
617627 then {
618- let dn = ((5 * e) / 100)
619- let do = ((5 * e) / 100)
620- let dp = ((5 * e) / 100)
628+ let dq = ((5 * e) / 100)
629+ let dr = ((5 * e) / 100)
630+ let ds = ((5 * e) / 100)
621631 let aU = split(aE(I()), j)
622- let dq = aW(aU)
623- let dr = aX(aU)
624- let ds = X(dj)
625- let dt = X(dk)
626- let du = X(dl)
632+ let dt = aW(aU)
633+ let du = aX(aU)
627634 let dv = X(dm)
628- let dw = aH(ds)
629- let dx = aH(dt)
630- let dy = (dw - dp)
631- let dz = (dx - dp)
632- if ((0 >= dy))
633- then throw(("invalid btcWeightNew: " + toString(dy)))
634- else if ((0 >= dz))
635- then throw(("invalid ethWeightNew: " + toString(dz)))
635+ let dw = X(dn)
636+ let dx = X(do)
637+ let dy = X(dp)
638+ let dz = aH(dv)
639+ let dA = aH(dw)
640+ let dB = (dz - ds)
641+ let dC = (dA - ds)
642+ if ((0 >= dB))
643+ then throw(("invalid btcWeightNew: " + toString(dB)))
644+ else if ((0 >= dC))
645+ then throw(("invalid ethWeightNew: " + toString(dC)))
636646 else {
637- let dA = aE(av(dj))
638- let dB = aE(av(dk))
639- let dC = aE(av(dl))
640647 let dD = aE(av(dm))
641- let dE = invoke(dq, "onModifyWeight", [dA, dj], nil)
642- if ((dE == dE))
648+ let dE = aE(av(dn))
649+ let dF = aE(av(do))
650+ let dG = aE(av(dp))
651+ let dH = invoke(dt, "onModifyWeight", [dD, dm], nil)
652+ if ((dH == dH))
643653 then {
644- let dF = invoke(dq, "onModifyWeight", [dB, dk], nil)
645- if ((dF == dF))
654+ let dI = invoke(dt, "onModifyWeight", [dE, dn], nil)
655+ if ((dI == dI))
646656 then {
647- let dG = invoke(dq, "onModifyWeight", [dC, dl], nil)
648- if ((dG == dG))
657+ let dJ = invoke(dt, "onModifyWeight", [dF, do], nil)
658+ if ((dJ == dJ))
649659 then {
650- let dH = invoke(dq, "onModifyWeight", [dD, dm], nil)
651- if ((dH == dH))
652- then [IntegerEntry(ds, dy), IntegerEntry(dt, dz), IntegerEntry(du, dn), IntegerEntry(dv, do), IntegerEntry(Z(dj, 0), dw), IntegerEntry(Z(dk, 0), dx), IntegerEntry(Z(dl, 0), dn), IntegerEntry(Z(dm, 0), do)]
660+ let dK = invoke(dt, "onModifyWeight", [dG, dp], nil)
661+ if ((dK == dK))
662+ then [IntegerEntry(dv, dB), IntegerEntry(dw, dC), IntegerEntry(dx, dq), IntegerEntry(dy, dr), IntegerEntry(Z(dm, 0), dz), IntegerEntry(Z(dn, 0), dA), IntegerEntry(Z(do, 0), dq), IntegerEntry(Z(dp, 0), dr)]
653663 else throw("Strict value is not equal to itself.")
654664 }
655665 else throw("Strict value is not equal to itself.")
656666 }
657667 else throw("Strict value is not equal to itself.")
658668 }
659669 else throw("Strict value is not equal to itself.")
660670 }
661671 }
662672 else throw("Strict value is not equal to itself.")
663673 }
664674
665675
666676
667677 @Callable(bf)
668678 func checkWxEmissionPoolLabel (ay,az) = {
669- let dI = {
679+ let dL = {
670680 let aZ = getBoolean(ax(ay, az))
671681 if ($isInstanceOf(aZ, "Boolean"))
672682 then {
673- let dJ = aZ
674- dJ
683+ let dM = aZ
684+ dM
675685 }
676686 else false
677687 }
678- $Tuple2(nil, dI)
688+ $Tuple2(nil, dL)
679689 }
680690
681691
682692
683693 @Callable(bf)
684694 func setWxEmissionPoolLabel (ay,az) = {
685- let cc = bS(bf)
686- if ((cc == cc))
695+ let cf = bS(bf)
696+ if ((cf == cf))
687697 then $Tuple2([BooleanEntry(ax(ay, az), true)], unit)
688698 else throw("Strict value is not equal to itself.")
689699 }
690700
691701
692702
693703 @Callable(bf)
694704 func deleteWxEmissionPoolLabel (ay,az) = {
695- let cc = if (be(bf))
705+ let cf = if (be(bf))
696706 then true
697707 else bS(bf)
698- if ((cc == cc))
708+ if ((cf == cf))
699709 then $Tuple2([DeleteEntry(ax(ay, az))], unit)
700710 else throw("Strict value is not equal to itself.")
701711 }
702712
703713
704714
705715 @Callable(bf)
706-func onVerificationLoss (dK) = {
707- let cc = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, R()), "")))
716+func onVerificationLoss (dN) = {
717+ let cf = if ((toBase58String(bf.caller.bytes) == valueOrElse(getString(this, R()), "")))
708718 then true
709719 else bg(bf)
710- if ((cc == cc))
720+ if ((cf == cf))
711721 then {
712- let cj = aY()
713- let dL = if ((size(cj) > 0))
722+ let cm = aY()
723+ let dO = if ((size(cm) > 0))
714724 then true
715725 else throw("invalid price assets")
716- if ((dL == dL))
726+ if ((dO == dO))
717727 then {
718- func dM (dN,dO) = {
719- let dP = invoke(this, "deleteWxEmissionPoolLabel", [dK, dO], nil)
720- if ((dP == dP))
728+ func dP (dQ,dR) = {
729+ let dS = invoke(this, "deleteWxEmissionPoolLabel", [dN, dR], nil)
730+ if ((dS == dS))
721731 then unit
722732 else throw("Strict value is not equal to itself.")
723733 }
724734
725- let dQ = {
726- let dR = cj
727- let dS = size(dR)
728- let dT = unit
729- func dU (dV,dW) = if ((dW >= dS))
730- then dV
731- else dM(dV, dR[dW])
735+ let dT = {
736+ let dU = cm
737+ let dV = size(dU)
738+ let dW = unit
739+ func dX (dY,dZ) = if ((dZ >= dV))
740+ then dY
741+ else dP(dY, dU[dZ])
732742
733- func dX (dV,dW) = if ((dW >= dS))
734- then dV
743+ func ea (dY,dZ) = if ((dZ >= dV))
744+ then dY
735745 else throw("List size exceeds 3")
736746
737- dX(dU(dU(dU(dT, 0), 1), 2), 3)
747+ ea(dX(dX(dX(dW, 0), 1), 2), 3)
738748 }
739- if ((dQ == dQ))
749+ if ((dT == dT))
740750 then $Tuple2(nil, unit)
741751 else throw("Strict value is not equal to itself.")
742752 }
743753 else throw("Strict value is not equal to itself.")
744754 }
745755 else throw("Strict value is not equal to itself.")
746756 }
747757
748758
749759
750760 @Callable(bf)
751761 func isPoolOneTokenOperationsDisabledREADONLY (Y) = {
752- let cB = bJ(Y)
753- let aj = $Tuple2(parseIntValue(cB[z]), parseIntValue(cB[A]))
754- let dY = valueOrElse(getBoolean(ai(aj)), false)
755- let dZ = valueOrElse(getBoolean(al()), false)
756- $Tuple2(nil, if (dZ)
762+ let cE = bJ(Y)
763+ let aj = $Tuple2(parseIntValue(cE[z]), parseIntValue(cE[A]))
764+ let eb = valueOrElse(getBoolean(ai(aj)), false)
765+ let ec = valueOrElse(getBoolean(al()), false)
766+ $Tuple2(nil, if (ec)
757767 then true
758- else dY)
768+ else eb)
759769 }
760770
761771
762772
763773 @Callable(bf)
764774 func getInFeeREADONLY (Y) = {
765- let ea = bV(aA(Y), aB(), 0)
766- $Tuple2(nil, ea)
775+ let ed = bV(aA(Y), aB(), 0)
776+ $Tuple2(nil, ed)
767777 }
768778
769779
770780
771781 @Callable(bf)
772782 func getOutFeeREADONLY (Y) = {
773- let ea = bV(aC(Y), aD(), fraction(10, b, 10000))
774- $Tuple2(nil, ea)
783+ let ed = bV(aC(Y), aD(), fraction(10, b, 10000))
784+ $Tuple2(nil, ed)
775785 }
776786
777787
778788
779789 @Callable(bf)
780790 func getPoolStatusREADONLY (Y) = {
781791 let bK = split(aE(as(Y)), j)
782792 let ag = bK[1]
783793 let ah = bK[2]
784- let eb = split(aE(af(ag, ah)), j)
785- $Tuple2(nil, parseIntValue(eb[t]))
794+ let ee = split(aE(af(ag, ah)), j)
795+ $Tuple2(nil, parseIntValue(ee[t]))
786796 }
787797
788798
789-@Verifier(ec)
790-func ed () = {
791- let ee = {
799+@Verifier(ef)
800+func eg () = {
801+ let eh = {
792802 let aZ = bb()
793803 if ($isInstanceOf(aZ, "ByteVector"))
794804 then {
795805 let bh = aZ
796806 bh
797807 }
798808 else if ($isInstanceOf(aZ, "Unit"))
799- then ec.senderPublicKey
809+ then ef.senderPublicKey
800810 else throw("Match error")
801811 }
802- sigVerify(ec.bodyBytes, ec.proofs[0], ee)
812+ sigVerify(ef.bodyBytes, ef.proofs[0], eh)
803813 }
804814

github/deemru/w8io/fabc49c 
178.43 ms