tx · Cze7C84bjhwX9fFkA64GG6UZRABE98khH1VPPiG86BMw

3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai:  -0.03000000 Waves

2023.02.03 13:35 [2433329] smart account 3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai > SELF 0.00000000 Waves

{ "type": 13, "id": "Cze7C84bjhwX9fFkA64GG6UZRABE98khH1VPPiG86BMw", "fee": 3000000, "feeAssetId": null, "timestamp": 1675420607980, "version": 1, "sender": "3MsMP2pb2p8MDd6Rxb7XEXqqwEhE8ATfyai", "senderPublicKey": "2JEaBjtjvMoNGKZmL9QxYefa1VkMJM3vMW8rNvTs9R2H", "proofs": [ "CCZjQ2JG4AwAarcc1Dvv57HhYwa4SfXaY3bD1H5H5XKCNHfhrzfoYzpw47ofn3ASQjNtCX5W6Qbi1rG6LWv1pSB" ], "script": "base64:AAIFAAAAAAAAEu0IAhIECgIICBIDCgEIEgoKCAgICAgICAgBEgMKAQgSBgoECAgICBIECgIIGBIDCgEIEgQKAggYEgMKAQgSABIDCgEYEgoKCAgICAgIAQgIEgQKAggBEgMKAQESAwoBARIECgIIARIGCgQICAgIEgQKAggIEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgMKAQgSAwoBCCIGU0NBTEU4IgVNVUxUOCIHU0NBTEUxOCIGTVVMVDE4Ig5QT09MV0VJR0hUTVVMVCIOR1dYdmlydHVhbFBPT0wiDGxhYmVsUG9vbHNMcCINZGVmYXVsdFNwcmVhZCIRZGVjaW1hbHNNdWx0UHJpY2UiA1NFUCIFRU1QVFkiClBvb2xBY3RpdmUiD1Bvb2xQdXREaXNhYmxlZCITUG9vbE1hdGNoZXJEaXNhYmxlZCIMUG9vbFNodXRkb3duIhJpZHhJbnRlcm5hbEFzc2V0SWQiD2lkeFJlc3V0QWN0aW9ucyIgaWR4SWZBc3NldElkQ2FsY3VsYXRpb25QZXJmb3JtZWQiDmlkeFBvb2xBZGRyZXNzIg1pZHhQb29sU3RhdHVzIhBpZHhQb29sTFBBc3NldElkIg1pZHhBbXRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiDmlkeEFtdEFzc2V0RGNtIhBpZHhQcmljZUFzc2V0RGNtIg5pZHhJQW10QXNzZXRJZCIQaWR4SVByaWNlQXNzZXRJZCINaWR4TFBBc3NldERjbSILaWR4UG9vbFR5cGUiE3Bvb2xMYWJlbFd4RW1pc3Npb24iD3ZhbGlkUG9vbExhYmVscyIWa2V5QWxsb3dlZExwU2NyaXB0SGFzaCIca2V5QWxsb3dlZExwU3RhYmxlU2NyaXB0SGFzaCIha2V5QWxsb3dlZExwU3RhYmxlQWRkb25TY3JpcHRIYXNoIhBrZXlGYWN0b3J5Q29uZmlnIg9rZXlMcFRva2Vuc0xpc3QiEWtleVBvb2xTY3JpcHRIYXNoIg1rZXlNYXRjaGVyUHViIhhrZXlMZWdhY3lGYWN0b3J5Q29udHJhY3QiDmtleUxlZ2FjeVBvb2xzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIPa2V5QWRtaW5QdWJLZXlzIhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0Ig5rZXlQcmljZUFzc2V0cyIQa2V5UHJpY2VEZWNpbWFscyITa2V5QWxsUG9vbHNTaHV0ZG93biIWa2V5TmV4dEludGVybmFsQXNzZXRJZCIPa2V5UG9vbFRvV2VpZ2h0Igtwb29sQWRkcmVzcyIWa2V5UG9vbFRvV2VpZ2h0SGlzdG9yeSIDbnVtIh9rZXlNYXBwaW5nc0ludGVybmFsMmJhc2VBc3NldElkIhFpbnRlcm5hbEJhc2VBc3NldCIfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZCIMYmFzZUFzc2V0U3RyIg1rZXlQb29sQ29uZmlnIhNhbW91bnRBc3NldEludGVybmFsIhJwcmljZUFzc2V0SW50ZXJuYWwiIWtleVBvb2xPbmVUb2tlbk9wZXJhdGlvbnNEaXNhYmxlZCIOYXNzZXRzSW50ZXJuYWwiCyR0MDM2MzIzNjk0IiVrZXlBbGxQb29sc09uZVRva2VuT3BlcmF0aW9uc0Rpc2FibGVkIh1rZXlNYXBwaW5nTHBBc3NldFRvUG9vbEFzc2V0cyIKbHBBc3NldFN0ciIda2V5TWFwcGluZ1Bvb2xBc3NldHNUb0xwYXNzZXQiGGludGVybmFsQW1vdW50QXNzZXRJZFN0ciIXaW50ZXJuYWxQcmljZUFzc2V0SWRTdHIiDWtleVBvb2xTcHJlYWQiKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzIhNwb29sQ29udHJhY3RBZGRyZXNzIilrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcyIfa2V5TWFwcGluZ1Bvb2xDb250cmFjdFRvTFBBc3NldCIqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIg1rZXlXeEVtaXNzaW9uIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiCGtleUluRmVlIg9rZXlJbkZlZURlZmF1bHQiCWtleU91dEZlZSIQa2V5T3V0RmVlRGVmYXVsdCIPZ2V0U3RyaW5nT3JGYWlsIgNrZXkiEGdldEJvb2xlYW5PckZhaWwiDGdldEludE9yRmFpbCIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCIOZ2V0UHJpY2VBc3NldHMiByRtYXRjaDAiAXMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IhVwZXJtaXNzaW9uRGVuaWVkRXJyb3IiCXRlc3RFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIQZGF0YUZhY3RvcnlDZmdWMyIOc3Rha2luZ0FkZHJlc3MiD2Jvb3N0aW5nQWRkcmVzcyILaWRvQ29udHJhY3QiDHRlYW1Db250cmFjdCIQZW1pc3Npb25Db250cmFjdCIMcmVzdENvbnRyYWN0IhBzbGlwcGFnZUNvbnRyYWN0IgtkYW9Db250cmFjdCIRbWFya2V0aW5nQ29udHJhY3QiEmd3eFJld2FyZHNDb250cmFjdCINYmlyZHNDb250cmFjdCIOZGF0YUZhY3RvcnlDZmciC2RhdGFQb29sQ2ZnIgpwb29sU3RhdHVzIglscEFzc2V0SWQiDmFtb3VudEFzc2V0U3RyIg1wcmljZUFzc2V0U3RyIhNhbW91bnRBc3NldERlY2ltYWxzIhJwcmljZUFzc2V0RGVjaW1hbHMiFWFtb3VudEFzc2V0SW50ZXJuYWxJZCIUcHJpY2VBc3NldEludGVybmFsSWQiD2xwQXNzZXREZWNpbWFscyIIcG9vbFR5cGUiFWRhdGFNYXBwaW5nUG9vbEFzc2V0cyIWaW50ZXJuYWxBbW91bnRBc3NldFN0ciIVaW50ZXJuYWxQcmljZUFzc2V0U3RyIg1nZXRQb29sQ29uZmlnIgpwb29sQXNzZXRzIhpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZSIKYXNzZXRJZFN0ciILaW5jcmVtZW50b3IiD2ludGVybmFsQXNzZXRJZCIYY3VycmVudEluZGV4T2ZJbnRlcm5hbElkIgZyZXN1bHQiEm5ld0ludGVybmFsQXNzZXRJZCIJbXVzdEFkbWluIghhZG1pblBLcyIJaXNNYW5hZ2VyIhZpbnRPckRlZmF1bHRPckZhbGxiYWNrIgprZXlEZWZhdWx0Ig12YWx1ZUZhbGxiYWNrIgZhc3NldDEiBmFzc2V0MiIJYXNzZXROdW0xIgZjaGVjazEiCWFzc2V0TnVtMiIGY2hlY2syIgJlZSIGY2hlY2tzIgNyZXMiAmxwIg9zdGFraW5nQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiEHNscGlwYWdlQ29udHJhY3QiDXByaWNlRGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhBtYXRoY2hlclB1YjU4U3RyIgptYXRoY2VyUHViIhVsZWdhY3lGYWN0b3J5Q29udHJhY3QiC2xlZ2FjeVBvb2xzIhNhc3NldHNTdG9yZUNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IgtwcmljZUFzc2V0cyIFY2hla3MiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSIMYWRtaW5QdWJLZXlzIgtscEFzc2V0TmFtZSIMbHBBc3NldERlc2NyIgpwb29sV2VpZ2h0IgRsb2dvIhdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YSIVaW50ZXJuYWxBbW91bnRBc3NldElkIhZpbnRlcm5hbFByaWNlQXNzZXREYXRhIhRpbnRlcm5hbFByaWNlQXNzZXRJZCIVcG9vbEFjY291bnRTY3JpcHRIYXNoIhxldGhhbG9uUG9vbEFjY291bnRTY3JpcHRIYXNoIgpwb29sQ29uZmlnIg9wb29sQ29uZmlnVmFsdWUiFGFtb3VudEFzc2V0c0RlY2ltYWxzIhNwcmljZUFzc2V0c0RlY2ltYWxzIhJscEFzc2V0SXNzdWVBY3Rpb24iDGxwQXNzZXRJZFN0ciIYcG9vbEFjdGl2YXRlSW52b2tlUmVzdWx0IhhjcmVhdGVPclVwZGF0ZUxwQXNzZXRJbnYiEmFkZFBvb2xzTHBMYWJlbEludiIKc2V0TG9nb0ludiIQYWRkQXNzZXRzTGlua0ludiIbaW5jcmVhc2VBc3NldFBvb2xzTnVtYmVySW52IgluZXdTdGF0dXMiCmxwQXNzZXREY20iDGFtb3VudFRvRW1pdCIGY2FsbGVyIgxvcmlnaW5DYWxsZXIiEGxwQXNzZXRSZXF1ZXN0ZWQiB2xwQXNzZXQiDGFtb3VudFRvQnVybiIHcGF5bWVudCINcGF5bWVudEFtb3VudCIPaW5BbW91bnRBc3NldElkIhpscEFzc2V0UmVxdWVzdGVkRm9yQnVybmluZyIFc2hhcmUiDXBvb2xXZWlnaHRLZXkiDGd3eFdlaWdodEtleSIJZ3d4V2VpZ2h0Ig1wb29sV2VpZ2h0TmV3IhFvbk1vZGlmeVdlaWdodEludiIVZ3d4VmlydHVhbFBvb2xBY3Rpb25zIhRwb29sV2VpZ2h0SGlzdG9yeUtleSIXcG9vbFdlaWdodEhpc3RvcnlPclVuaXQiGHBvb2xXZWlnaHRIaXN0b3J5QWN0aW9ucyIOYnRjUG9vbEFkZHJlc3MiDmV0aFBvb2xBZGRyZXNzIhFldGhCdGNQb29sQWRkcmVzcyITdXNkY1VzZHRQb29sQWRkcmVzcyIPZXRoQnRjV2VpZ2h0TmV3IhF1c2RjVXNkdFdlaWdodE5ldyIPd2VpZ2h0RGVjcmVtZW50IgtzdGFraW5nRGFwcCINZ3d4UmV3YXJkRGFwcCIMYnRjV2VpZ2h0S0VZIgxldGhXZWlnaHRLRVkiD2V0aEJ0Y1dlaWdodEtFWSIRdXNkY1VzZHRXZWlnaHRLRVkiCWJ0Y1dlaWdodCIJZXRoV2VpZ2h0IgxidGNXZWlnaHROZXciDGV0aFdlaWdodE5ldyIPYnRjTHBBc3NldElkU3RyIg9ldGhMcEFz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", "chainId": 84, "height": 2433329, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BGXaGgGWqLAjp8E6MbAKSmBvAAV7ZzM1A5yMn8hSSWxH Next: AxBXh8ZRy7Z3GjjfAtKtEJSVwMCA2frtNrGG9UMpoeU5 Diff:
OldNewDifferences
353353 then true
354354 else throw("test error string")
355355 if ((cg == cg))
356- then $Tuple2(nil, cf)
356+ then {
357+ let ch = addressFromStringValue(cf)
358+ $Tuple2(nil, ch)
359+ }
357360 else throw("Strict value is not equal to itself.")
358361 }
359362 else throw("Strict value is not equal to itself.")
364367
365368
366369 @Callable(bg)
367-func getPoolAddressFromLpAssetREADONLY (ch) = $Tuple2(nil, getString(this, aw(ch)))
370+func getPoolAddressFromLpAssetREADONLY (ci) = $Tuple2(nil, getString(this, aw(ci)))
368371
369372
370373
371374 @Callable(bg)
372-func constructor (ci,cj,bm,bn,bo,bp,ck,cl) = {
373- let cm = bh(bg)
374- if ((cm == cm))
375- then [StringEntry(I(), bv(ci, cj, bm, bn, bo, bp, ck)), IntegerEntry(U(), cl)]
375+func constructor (cj,ck,bm,bn,bo,bp,cl,cm) = {
376+ let cn = bh(bg)
377+ if ((cn == cn))
378+ then [StringEntry(I(), bv(cj, ck, bm, bn, bo, bp, cl)), IntegerEntry(U(), cm)]
376379 else throw("Strict value is not equal to itself.")
377380 }
378381
379382
380383
381384 @Callable(bg)
382-func constructorV2 (cn) = {
383- let cm = bh(bg)
384- if ((cm == cm))
385+func constructorV2 (co) = {
386+ let cn = bh(bg)
387+ if ((cn == cn))
385388 then {
386- let co = addressFromPublicKey(fromBase58String(cn))
387- if ((co == co))
388- then [StringEntry(L(), cn)]
389+ let cp = addressFromPublicKey(fromBase58String(co))
390+ if ((cp == cp))
391+ then [StringEntry(L(), co)]
389392 else throw("Strict value is not equal to itself.")
390393 }
391394 else throw("Strict value is not equal to itself.")
395398
396399 @Callable(bg)
397400 func constructorV3 (br,bs,bt,bu) = {
398- let cm = bh(bg)
399- if ((cm == cm))
401+ let cn = bh(bg)
402+ if ((cn == cn))
400403 then {
401404 let aU = split(aE(I()), j)
402405 [StringEntry(I(), bj(aU[1], aU[2], aU[3], aU[4], aU[5], aU[6], aU[7], br, bs, bt, bu))]
407410
408411
409412 @Callable(bg)
410-func constructorV4 (cp,cq) = {
411- let cm = bh(bg)
412- if ((cm == cm))
413- then [StringEntry(M(), cp), StringEntry(N(), makeString(cq, j))]
413+func constructorV4 (cq,cr) = {
414+ let cn = bh(bg)
415+ if ((cn == cn))
416+ then [StringEntry(M(), cq), StringEntry(N(), makeString(cr, j))]
414417 else throw("Strict value is not equal to itself.")
415418 }
416419
417420
418421
419422 @Callable(bg)
420-func constructorV5 (cr) = {
421- let cm = bh(bg)
422- if ((cm == cm))
423- then [StringEntry(R(), cr)]
423+func constructorV5 (cs) = {
424+ let cn = bh(bg)
425+ if ((cn == cn))
426+ then [StringEntry(R(), cs)]
424427 else throw("Strict value is not equal to itself.")
425428 }
426429
427430
428431
429432 @Callable(bg)
430-func constructorV6 (cs,ct) = {
431- let cu = [bh(bg), if ((addressFromString(cs) != unit))
433+func constructorV6 (ct,cu) = {
434+ let cv = [bh(bg), if ((addressFromString(ct) != unit))
432435 then true
433436 else "invalid voting emission contract address"]
434- if ((cu == cu))
435- then [StringEntry(S(), cs), StringEntry(T(), makeString(ct, j))]
437+ if ((cv == cv))
438+ then [StringEntry(S(), ct), StringEntry(T(), makeString(cu, j))]
436439 else throw("Strict value is not equal to itself.")
437440 }
438441
439442
440443
441444 @Callable(bg)
442-func setManager (cv) = {
443- let cm = bh(bg)
444- if ((cm == cm))
445+func setManager (cw) = {
446+ let cn = bh(bg)
447+ if ((cn == cn))
445448 then {
446- let cw = fromBase58String(cv)
447- if ((cw == cw))
448- then [StringEntry(P(), cv)]
449+ let cx = fromBase58String(cw)
450+ if ((cx == cx))
451+ then [StringEntry(P(), cw)]
449452 else throw("Strict value is not equal to itself.")
450453 }
451454 else throw("Strict value is not equal to itself.")
455458
456459 @Callable(bg)
457460 func confirmManager () = {
458- let cx = bc()
459- let cy = if (isDefined(cx))
461+ let cy = bc()
462+ let cz = if (isDefined(cy))
460463 then true
461464 else throw("No pending manager")
462- if ((cy == cy))
465+ if ((cz == cz))
463466 then {
464- let cz = if ((bg.callerPublicKey == value(cx)))
467+ let cA = if ((bg.callerPublicKey == value(cy)))
465468 then true
466469 else throw("You are not pending manager")
467- if ((cz == cz))
468- then [StringEntry(O(), toBase58String(value(cx))), DeleteEntry(P())]
470+ if ((cA == cA))
471+ then [StringEntry(O(), toBase58String(value(cy))), DeleteEntry(P())]
469472 else throw("Strict value is not equal to itself.")
470473 }
471474 else throw("Strict value is not equal to itself.")
474477
475478
476479 @Callable(bg)
477-func setAdmins (cA) = {
478- let cm = bh(bg)
479- if ((cm == cm))
480- then [StringEntry(Q(), makeString(cA, j))]
480+func setAdmins (cB) = {
481+ let cn = bh(bg)
482+ if ((cn == cn))
483+ then [StringEntry(Q(), makeString(cB, j))]
481484 else throw("Strict value is not equal to itself.")
482485 }
483486
484487
485488
486489 @Callable(bg)
487-func activateNewPool (Y,bz,bA,cB,cC,cD,bG,cE) = {
488- let cm = bT(bg)
489- if ((cm == cm))
490+func activateNewPool (Y,bz,bA,cC,cD,cE,bG,cF) = {
491+ let cn = bT(bg)
492+ if ((cn == cn))
490493 then if (isDefined(getString(as(Y))))
491494 then throw((("Pool address " + Y) + " already registered."))
492495 else {
493- let cF = bM(bz, 1)
494- let cG = cF._1
495- let cH = bM(bA, if (cF._3)
496+ let cG = bM(bz, 1)
497+ let cH = cG._1
498+ let cI = bM(bA, if (cG._3)
496499 then 2
497500 else 1)
498- let cI = cH._1
499- let cJ = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
500- let cK = getBinaryValue(K())
501- let cL = getString(this, af(toString(cG), toString(cI)))
502- if (isDefined(cL))
501+ let cJ = cI._1
502+ let cK = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
503+ let cL = getBinaryValue(K())
504+ let cM = getString(this, af(toString(cH), toString(cJ)))
505+ if (isDefined(cM))
503506 then throw((((("Pool " + bz) + "/") + bA) + " has already been activated."))
504507 else {
505- let cM = value(getString(this, af(toString(cG), toString(cI))))
506- let cN = if ((bz == "WAVES"))
508+ let cN = value(getString(this, af(toString(cH), toString(cJ))))
509+ let cO = if ((bz == "WAVES"))
507510 then i
508511 else pow(10, 0, value(assetInfo(fromBase58String(bz))).decimals, 0, 0, DOWN)
509- let cO = if ((bA == "WAVES"))
512+ let cP = if ((bA == "WAVES"))
510513 then i
511514 else pow(10, 0, value(assetInfo(fromBase58String(bA))).decimals, 0, 0, DOWN)
512- let cP = Issue(cB, cC, 1, 8, true)
513- let by = calculateAssetId(cP)
514- let cQ = toBase58String(by)
515- let cR = invoke(addressFromStringValue(Y), "activate", [bz, bA], nil)
516- if ((cR == cR))
517- then if ((cR != "success"))
515+ let cQ = Issue(cC, cD, 1, 8, true)
516+ let by = calculateAssetId(cQ)
517+ let cR = toBase58String(by)
518+ let cS = invoke(addressFromStringValue(Y), "activate", [bz, bA], nil)
519+ if ((cS == cS))
520+ then if ((cS != "success"))
518521 then throw("Pool initialisation error happened.")
519522 else {
520- let cr = addressFromStringValue(aE(R()))
521- let cS = invoke(cr, "createOrUpdate", [cQ, cB, false], nil)
522- if ((cS == cS))
523+ let cs = addressFromStringValue(aE(R()))
524+ let cT = invoke(cs, "createOrUpdate", [cR, cC, false], nil)
525+ if ((cT == cT))
523526 then {
524- let cT = invoke(cr, "addLabel", [cQ, g], nil)
525- if ((cT == cT))
527+ let cU = invoke(cs, "addLabel", [cR, g], nil)
528+ if ((cU == cU))
526529 then {
527- let cU = invoke(cr, "setLogo", [cQ, cE], nil)
528- if ((cU == cU))
530+ let cV = invoke(cs, "setLogo", [cR, cF], nil)
531+ if ((cV == cV))
529532 then {
530- let cV = invoke(cr, "addAssetsLink", [bz, bA, cQ], nil)
531- if ((cV == cV))
533+ let cW = invoke(cs, "addAssetsLink", [bz, bA, cR], nil)
534+ if ((cW == cW))
532535 then {
533- let cW = invoke(cr, "increaseAssetPoolsNumber", [bz], nil)
534- if ((cW == cW))
535- then $Tuple2(((cF._2 ++ cH._2) ++ [cP, Burn(by, 1), StringEntry(af(toString(cG), toString(cI)), bw(Y, toString(l), cQ, bz, bA, cN, cO, cG, cI, i, bG)), StringEntry(am(cQ), bH(cG, cI)), StringEntry(ao(toString(cG), toString(cI)), ("%s__" + cQ)), StringEntry(as(Y), bH(cG, cI)), StringEntry(au(cG, cI), Y), StringEntry(aw(cQ), Y), StringEntry(av(Y), cQ), IntegerEntry(X(Y), cD), IntegerEntry(ar(Y), h)]), cQ)
536+ let cX = invoke(cs, "increaseAssetPoolsNumber", [bz], nil)
537+ if ((cX == cX))
538+ then $Tuple2(((cG._2 ++ cI._2) ++ [cQ, Burn(by, 1), StringEntry(af(toString(cH), toString(cJ)), bw(Y, toString(l), cR, bz, bA, cO, cP, cH, cJ, i, bG)), StringEntry(am(cR), bH(cH, cJ)), StringEntry(ao(toString(cH), toString(cJ)), ("%s__" + cR)), StringEntry(as(Y), bH(cH, cJ)), StringEntry(au(cH, cJ), Y), StringEntry(aw(cR), Y), StringEntry(av(Y), cR), IntegerEntry(X(Y), cE), IntegerEntry(ar(Y), h)]), cR)
536539 else throw("Strict value is not equal to itself.")
537540 }
538541 else throw("Strict value is not equal to itself.")
552555
553556
554557 @Callable(bg)
555-func managePool (Y,cX) = {
556- let cm = bh(bg)
557- if ((cm == cm))
558+func managePool (Y,cY) = {
559+ let cn = bh(bg)
560+ if ((cn == cn))
558561 then {
559- let cL = bK(Y)
560- let bx = cL[t]
561- let cQ = cL[u]
562- let bz = cL[v]
563- let bA = cL[w]
564- let cN = parseIntValue(cL[x])
565- let cO = parseIntValue(cL[y])
566- let cG = parseIntValue(cL[z])
567- let cI = parseIntValue(cL[A])
568- let cY = parseIntValue(cL[B])
569- let bG = cL[C]
570-[StringEntry(af(toString(cG), toString(cI)), bw(Y, toString(cX), cQ, bz, bA, cN, cO, cG, cI, cY, bG))]
562+ let cM = bK(Y)
563+ let bx = cM[t]
564+ let cR = cM[u]
565+ let bz = cM[v]
566+ let bA = cM[w]
567+ let cO = parseIntValue(cM[x])
568+ let cP = parseIntValue(cM[y])
569+ let cH = parseIntValue(cM[z])
570+ let cJ = parseIntValue(cM[A])
571+ let cZ = parseIntValue(cM[B])
572+ let bG = cM[C]
573+[StringEntry(af(toString(cH), toString(cJ)), bw(Y, toString(cY), cR, bz, bA, cO, cP, cH, cJ, cZ, bG))]
571574 }
572575 else throw("Strict value is not equal to itself.")
573576 }
575578
576579
577580 @Callable(bg)
578-func emit (cZ) = {
579- let da = bg.caller
580- let db = bg.originCaller
581- let dc = valueOrErrorMessage(getString(av(toString(da))), "Invalid LP address called me.")
582- let dd = fromBase58String(dc)
583- let cq = split(valueOrElse(getString(N()), k), j)
584- let cp = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
585- if ((0 >= cZ))
581+func emit (da) = {
582+ let db = bg.caller
583+ let dc = bg.originCaller
584+ let dd = valueOrErrorMessage(getString(av(toString(db))), "Invalid LP address called me.")
585+ let de = fromBase58String(dd)
586+ let cr = split(valueOrElse(getString(N()), k), j)
587+ let cq = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
588+ if ((0 >= da))
586589 then nil
587- else if (containsElement(cq, toString(da)))
588- then $Tuple2(nil, cp)
589- else $Tuple2([Reissue(dd, cZ, true), ScriptTransfer(bg.caller, cZ, dd)], "success")
590+ else if (containsElement(cr, toString(db)))
591+ then $Tuple2(nil, cq)
592+ else $Tuple2([Reissue(de, da, true), ScriptTransfer(bg.caller, da, de)], "success")
590593 }
591594
592595
593596
594597 @Callable(bg)
595-func burn (de) = {
596- let da = bg.caller
597- let db = bg.originCaller
598- let df = value(bg.payments[0])
599- let dg = value(df.amount)
600- let dh = toBase58String(value(df.assetId))
601- let di = valueOrErrorMessage(getString(av(toString(da))), "Invalid LP address called me.")
602- if ((dh != di))
598+func burn (df) = {
599+ let db = bg.caller
600+ let dc = bg.originCaller
601+ let dg = value(bg.payments[0])
602+ let dh = value(dg.amount)
603+ let di = toBase58String(value(dg.assetId))
604+ let dj = valueOrErrorMessage(getString(av(toString(db))), "Invalid LP address called me.")
605+ if ((di != dj))
603606 then throw("Invalid asset passed.")
604- else if ((de != dg))
607+ else if ((df != dh))
605608 then throw("Invalid amount passed.")
606609 else {
607- let dd = fromBase58String(di)
608- $Tuple2([Burn(dd, de)], "success")
610+ let de = fromBase58String(dj)
611+ $Tuple2([Burn(de, df)], "success")
609612 }
610613 }
611614
612615
613616
614617 @Callable(bg)
615-func modifyWeight (by,dj) = {
616- let cm = if ((toBase58String(bg.caller.bytes) == valueOrElse(getString(this, S()), "")))
618+func modifyWeight (by,dk) = {
619+ let cn = if ((toBase58String(bg.caller.bytes) == valueOrElse(getString(this, S()), "")))
617620 then true
618621 else bh(bg)
619- if ((cm == cm))
622+ if ((cn == cn))
620623 then {
621624 let at = aE(aw(by))
622- let dk = X(at)
623- let dl = X(f)
624- let dm = valueOrElse(getInteger(dl), 0)
625- let cD = valueOrElse(getInteger(dk), 0)
626- let dn = dj
625+ let dl = X(at)
626+ let dm = X(f)
627+ let dn = valueOrElse(getInteger(dm), 0)
628+ let cE = valueOrElse(getInteger(dl), 0)
629+ let do = dk
627630 let aU = split(aE(I()), j)
628- let ci = aW(aU)
629- let do = invoke(ci, "onModifyWeight", [by, at], nil)
630- if ((do == do))
631+ let cj = aW(aU)
632+ let dp = invoke(cj, "onModifyWeight", [by, at], nil)
633+ if ((dp == dp))
631634 then {
632- let dp = if ((dm == 0))
635+ let dq = if ((dn == 0))
633636 then nil
634- else [IntegerEntry(dl, 0)]
635- let dq = Z(at, 0)
636- let dr = getInteger(dq)
637- let ds = if ((dr == unit))
637+ else [IntegerEntry(dm, 0)]
638+ let dr = Z(at, 0)
639+ let ds = getInteger(dr)
640+ let dt = if ((ds == unit))
638641 then nil
639- else [DeleteEntry(dq)]
640- (([IntegerEntry(dk, dn)] ++ dp) ++ ds)
642+ else [DeleteEntry(dr)]
643+ (([IntegerEntry(dl, do)] ++ dq) ++ dt)
641644 }
642645 else throw("Strict value is not equal to itself.")
643646 }
647650
648651
649652 @Callable(bg)
650-func modifyWeights (dt,du,dv,dw) = {
651- let cm = bh(bg)
652- if ((cm == cm))
653+func modifyWeights (du,dv,dw,dx) = {
654+ let cn = bh(bg)
655+ if ((cn == cn))
653656 then {
654- let dx = ((5 * e) / 100)
655657 let dy = ((5 * e) / 100)
656658 let dz = ((5 * e) / 100)
659+ let dA = ((5 * e) / 100)
657660 let aU = split(aE(I()), j)
658- let dA = aW(aU)
659- let dB = aX(aU)
660- let dC = X(dt)
661+ let dB = aW(aU)
662+ let dC = aX(aU)
661663 let dD = X(du)
662664 let dE = X(dv)
663665 let dF = X(dw)
664- let dG = aH(dC)
666+ let dG = X(dx)
665667 let dH = aH(dD)
666- let dI = (dG - dz)
667- let dJ = (dH - dz)
668- if ((0 >= dI))
669- then throw(("invalid btcWeightNew: " + toString(dI)))
670- else if ((0 >= dJ))
671- then throw(("invalid ethWeightNew: " + toString(dJ)))
668+ let dI = aH(dE)
669+ let dJ = (dH - dA)
670+ let dK = (dI - dA)
671+ if ((0 >= dJ))
672+ then throw(("invalid btcWeightNew: " + toString(dJ)))
673+ else if ((0 >= dK))
674+ then throw(("invalid ethWeightNew: " + toString(dK)))
672675 else {
673- let dK = aE(av(dt))
674676 let dL = aE(av(du))
675677 let dM = aE(av(dv))
676678 let dN = aE(av(dw))
677- let dO = invoke(dA, "onModifyWeight", [dK, dt], nil)
678- if ((dO == dO))
679+ let dO = aE(av(dx))
680+ let dP = invoke(dB, "onModifyWeight", [dL, du], nil)
681+ if ((dP == dP))
679682 then {
680- let dP = invoke(dA, "onModifyWeight", [dL, du], nil)
681- if ((dP == dP))
683+ let dQ = invoke(dB, "onModifyWeight", [dM, dv], nil)
684+ if ((dQ == dQ))
682685 then {
683- let dQ = invoke(dA, "onModifyWeight", [dM, dv], nil)
684- if ((dQ == dQ))
686+ let dR = invoke(dB, "onModifyWeight", [dN, dw], nil)
687+ if ((dR == dR))
685688 then {
686- let dR = invoke(dA, "onModifyWeight", [dN, dw], nil)
687- if ((dR == dR))
688- then [IntegerEntry(dC, dI), IntegerEntry(dD, dJ), IntegerEntry(dE, dx), IntegerEntry(dF, dy), IntegerEntry(Z(dt, 0), dG), IntegerEntry(Z(du, 0), dH), IntegerEntry(Z(dv, 0), dx), IntegerEntry(Z(dw, 0), dy)]
689+ let dS = invoke(dB, "onModifyWeight", [dO, dx], nil)
690+ if ((dS == dS))
691+ then [IntegerEntry(dD, dJ), IntegerEntry(dE, dK), IntegerEntry(dF, dy), IntegerEntry(dG, dz), IntegerEntry(Z(du, 0), dH), IntegerEntry(Z(dv, 0), dI), IntegerEntry(Z(dw, 0), dy), IntegerEntry(Z(dx, 0), dz)]
689692 else throw("Strict value is not equal to itself.")
690693 }
691694 else throw("Strict value is not equal to itself.")
702705
703706 @Callable(bg)
704707 func checkWxEmissionPoolLabel (ay,az) = {
705- let dS = {
708+ let dT = {
706709 let aZ = getBoolean(ax(ay, az))
707710 if ($isInstanceOf(aZ, "Boolean"))
708711 then {
709- let dT = aZ
710- dT
712+ let dU = aZ
713+ dU
711714 }
712715 else false
713716 }
714- $Tuple2(nil, dS)
717+ $Tuple2(nil, dT)
715718 }
716719
717720
718721
719722 @Callable(bg)
720723 func setWxEmissionPoolLabel (ay,az) = {
721- let cm = bT(bg)
722- if ((cm == cm))
724+ let cn = bT(bg)
725+ if ((cn == cn))
723726 then $Tuple2([BooleanEntry(ax(ay, az), true)], unit)
724727 else throw("Strict value is not equal to itself.")
725728 }
728731
729732 @Callable(bg)
730733 func deleteWxEmissionPoolLabel (ay,az) = {
731- let cm = if (bf(bg))
734+ let cn = if (bf(bg))
732735 then true
733736 else bT(bg)
734- if ((cm == cm))
737+ if ((cn == cn))
735738 then $Tuple2([DeleteEntry(ax(ay, az))], unit)
736739 else throw("Strict value is not equal to itself.")
737740 }
739742
740743
741744 @Callable(bg)
742-func onVerificationLoss (dU) = {
743- let cm = if ((toBase58String(bg.caller.bytes) == valueOrElse(getString(this, R()), "")))
745+func onVerificationLoss (dV) = {
746+ let cn = if ((toBase58String(bg.caller.bytes) == valueOrElse(getString(this, R()), "")))
744747 then true
745748 else bh(bg)
746- if ((cm == cm))
749+ if ((cn == cn))
747750 then {
748- let ct = aY()
749- let dV = if ((size(ct) > 0))
751+ let cu = aY()
752+ let dW = if ((size(cu) > 0))
750753 then true
751754 else throw("invalid price assets")
752- if ((dV == dV))
755+ if ((dW == dW))
753756 then {
754- func dW (dX,dY) = {
755- let dZ = invoke(this, "deleteWxEmissionPoolLabel", [dU, dY], nil)
756- if ((dZ == dZ))
757+ func dX (dY,dZ) = {
758+ let ea = invoke(this, "deleteWxEmissionPoolLabel", [dV, dZ], nil)
759+ if ((ea == ea))
757760 then unit
758761 else throw("Strict value is not equal to itself.")
759762 }
760763
761- let ea = {
762- let eb = ct
763- let ec = size(eb)
764- let ed = unit
765- func ee (ef,eg) = if ((eg >= ec))
766- then ef
767- else dW(ef, eb[eg])
764+ let eb = {
765+ let ec = cu
766+ let ed = size(ec)
767+ let ee = unit
768+ func ef (eg,eh) = if ((eh >= ed))
769+ then eg
770+ else dX(eg, ec[eh])
768771
769- func eh (ef,eg) = if ((eg >= ec))
770- then ef
772+ func ei (eg,eh) = if ((eh >= ed))
773+ then eg
771774 else throw("List size exceeds 4")
772775
773- eh(ee(ee(ee(ee(ed, 0), 1), 2), 3), 4)
776+ ei(ef(ef(ef(ef(ee, 0), 1), 2), 3), 4)
774777 }
775- if ((ea == ea))
778+ if ((eb == eb))
776779 then $Tuple2(nil, unit)
777780 else throw("Strict value is not equal to itself.")
778781 }
785788
786789 @Callable(bg)
787790 func isPoolOneTokenOperationsDisabledREADONLY (Y) = {
788- let cL = bK(Y)
789- let aj = $Tuple2(parseIntValue(cL[z]), parseIntValue(cL[A]))
790- let ei = valueOrElse(getBoolean(ai(aj)), false)
791- let ej = valueOrElse(getBoolean(al()), false)
792- $Tuple2(nil, if (ej)
791+ let cM = bK(Y)
792+ let aj = $Tuple2(parseIntValue(cM[z]), parseIntValue(cM[A]))
793+ let ej = valueOrElse(getBoolean(ai(aj)), false)
794+ let ek = valueOrElse(getBoolean(al()), false)
795+ $Tuple2(nil, if (ek)
793796 then true
794- else ei)
797+ else ej)
795798 }
796799
797800
798801
799802 @Callable(bg)
800803 func getInFeeREADONLY (Y) = {
801- let ek = bW(aA(Y), aB(), 0)
802- $Tuple2(nil, ek)
804+ let el = bW(aA(Y), aB(), 0)
805+ $Tuple2(nil, el)
803806 }
804807
805808
806809
807810 @Callable(bg)
808811 func getOutFeeREADONLY (Y) = {
809- let ek = bW(aC(Y), aD(), fraction(10, b, 10000))
810- $Tuple2(nil, ek)
812+ let el = bW(aC(Y), aD(), fraction(10, b, 10000))
813+ $Tuple2(nil, el)
811814 }
812815
813816
817820 let bL = split(aE(as(Y)), j)
818821 let ag = bL[1]
819822 let ah = bL[2]
820- let el = split(aE(af(ag, ah)), j)
821- $Tuple2(nil, parseIntValue(el[t]))
823+ let em = split(aE(af(ag, ah)), j)
824+ $Tuple2(nil, parseIntValue(em[t]))
822825 }
823826
824827
825-@Verifier(em)
826-func en () = {
827- let eo = {
828+@Verifier(en)
829+func eo () = {
830+ let ep = {
828831 let aZ = bb()
829832 if ($isInstanceOf(aZ, "ByteVector"))
830833 then {
832835 bi
833836 }
834837 else if ($isInstanceOf(aZ, "Unit"))
835- then em.senderPublicKey
838+ then en.senderPublicKey
836839 else throw("Match error")
837840 }
838- sigVerify(em.bodyBytes, em.proofs[0], eo)
841+ sigVerify(en.bodyBytes, en.proofs[0], ep)
839842 }
840843
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 let be = throw("Test error here")
267267
268268 func bf (bg) = if ((bg.caller == this))
269269 then true
270270 else bd
271271
272272
273273 func bh (bg) = {
274274 let aZ = bb()
275275 if ($isInstanceOf(aZ, "ByteVector"))
276276 then {
277277 let bi = aZ
278278 if ((bg.callerPublicKey == bi))
279279 then true
280280 else bd
281281 }
282282 else if ($isInstanceOf(aZ, "Unit"))
283283 then bf(bg)
284284 else throw("Match error")
285285 }
286286
287287
288288 func bj (bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu) = makeString(["%s%s%s%s%s%s%s%s%s%s%s", bk, bl, bm, bn, bo, bp, bq, br, bs, bt, bu], j)
289289
290290
291291 func bv (bk,bl,bm,bn,bo,bp,bq) = makeString(["%s%s%s%s%s%s", bk, bl, bm, bn, bo, bp, bq], j)
292292
293293
294294 func bw (Y,bx,by,bz,bA,bB,bC,bD,bE,bF,bG) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", Y, bx, by, bz, bA, toString(bB), toString(bC), toString(bD), toString(bE), toString(bF), bG], j)
295295
296296
297297 func bH (bI,bJ) = makeString(["%d%d", toString(bI), toString(bJ)], j)
298298
299299
300300 func bK (Y) = {
301301 let bL = split(aE(as(Y)), j)
302302 let ag = bL[1]
303303 let ah = bL[2]
304304 split(aE(af(ag, ah)), j)
305305 }
306306
307307
308308 func bM (bN,bO) = {
309309 let bP = valueOrElse(getInteger(this, ad(bN)), 0)
310310 let bQ = valueOrElse(getInteger(this, W()), 0)
311311 let bR = if ((bP == 0))
312312 then {
313313 let bS = (bQ + bO)
314314 $Tuple3(bS, [IntegerEntry(W(), bS), IntegerEntry(ad(bN), bS), StringEntry(ab(bS), bN)], true)
315315 }
316316 else $Tuple3(bP, nil, false)
317317 bR
318318 }
319319
320320
321321 func bT (bg) = {
322322 let bU = split(valueOrElse(getString(Q()), k), j)
323323 if (containsElement(bU, toBase58String(bg.callerPublicKey)))
324324 then true
325325 else {
326326 let bV = bh(bg)
327327 if ((bV == bV))
328328 then true
329329 else throw("Strict value is not equal to itself.")
330330 }
331331 }
332332
333333
334334 func bW (aF,bX,bY) = valueOrElse(getInteger(this, aF), valueOrElse(getInteger(this, bX), bY))
335335
336336
337337 @Callable(bg)
338338 func getLpAssetFromPoolAssetsREADONLY (bZ,ca) = {
339339 let cb = value(getInteger(this, ad(bZ)))
340340 let cc = if (isDefined(cb))
341341 then true
342342 else throw("test error assetNum1")
343343 if ((cc == cc))
344344 then {
345345 let cd = value(getInteger(this, ad(ca)))
346346 let ce = if (isDefined(cb))
347347 then true
348348 else throw("test error assetNum2")
349349 if ((ce == ce))
350350 then {
351351 let cf = value(getString(this, ao(toString(cb), toString(cd))))
352352 let cg = if (isDefined(cf))
353353 then true
354354 else throw("test error string")
355355 if ((cg == cg))
356- then $Tuple2(nil, cf)
356+ then {
357+ let ch = addressFromStringValue(cf)
358+ $Tuple2(nil, ch)
359+ }
357360 else throw("Strict value is not equal to itself.")
358361 }
359362 else throw("Strict value is not equal to itself.")
360363 }
361364 else throw("Strict value is not equal to itself.")
362365 }
363366
364367
365368
366369 @Callable(bg)
367-func getPoolAddressFromLpAssetREADONLY (ch) = $Tuple2(nil, getString(this, aw(ch)))
370+func getPoolAddressFromLpAssetREADONLY (ci) = $Tuple2(nil, getString(this, aw(ci)))
368371
369372
370373
371374 @Callable(bg)
372-func constructor (ci,cj,bm,bn,bo,bp,ck,cl) = {
373- let cm = bh(bg)
374- if ((cm == cm))
375- then [StringEntry(I(), bv(ci, cj, bm, bn, bo, bp, ck)), IntegerEntry(U(), cl)]
375+func constructor (cj,ck,bm,bn,bo,bp,cl,cm) = {
376+ let cn = bh(bg)
377+ if ((cn == cn))
378+ then [StringEntry(I(), bv(cj, ck, bm, bn, bo, bp, cl)), IntegerEntry(U(), cm)]
376379 else throw("Strict value is not equal to itself.")
377380 }
378381
379382
380383
381384 @Callable(bg)
382-func constructorV2 (cn) = {
383- let cm = bh(bg)
384- if ((cm == cm))
385+func constructorV2 (co) = {
386+ let cn = bh(bg)
387+ if ((cn == cn))
385388 then {
386- let co = addressFromPublicKey(fromBase58String(cn))
387- if ((co == co))
388- then [StringEntry(L(), cn)]
389+ let cp = addressFromPublicKey(fromBase58String(co))
390+ if ((cp == cp))
391+ then [StringEntry(L(), co)]
389392 else throw("Strict value is not equal to itself.")
390393 }
391394 else throw("Strict value is not equal to itself.")
392395 }
393396
394397
395398
396399 @Callable(bg)
397400 func constructorV3 (br,bs,bt,bu) = {
398- let cm = bh(bg)
399- if ((cm == cm))
401+ let cn = bh(bg)
402+ if ((cn == cn))
400403 then {
401404 let aU = split(aE(I()), j)
402405 [StringEntry(I(), bj(aU[1], aU[2], aU[3], aU[4], aU[5], aU[6], aU[7], br, bs, bt, bu))]
403406 }
404407 else throw("Strict value is not equal to itself.")
405408 }
406409
407410
408411
409412 @Callable(bg)
410-func constructorV4 (cp,cq) = {
411- let cm = bh(bg)
412- if ((cm == cm))
413- then [StringEntry(M(), cp), StringEntry(N(), makeString(cq, j))]
413+func constructorV4 (cq,cr) = {
414+ let cn = bh(bg)
415+ if ((cn == cn))
416+ then [StringEntry(M(), cq), StringEntry(N(), makeString(cr, j))]
414417 else throw("Strict value is not equal to itself.")
415418 }
416419
417420
418421
419422 @Callable(bg)
420-func constructorV5 (cr) = {
421- let cm = bh(bg)
422- if ((cm == cm))
423- then [StringEntry(R(), cr)]
423+func constructorV5 (cs) = {
424+ let cn = bh(bg)
425+ if ((cn == cn))
426+ then [StringEntry(R(), cs)]
424427 else throw("Strict value is not equal to itself.")
425428 }
426429
427430
428431
429432 @Callable(bg)
430-func constructorV6 (cs,ct) = {
431- let cu = [bh(bg), if ((addressFromString(cs) != unit))
433+func constructorV6 (ct,cu) = {
434+ let cv = [bh(bg), if ((addressFromString(ct) != unit))
432435 then true
433436 else "invalid voting emission contract address"]
434- if ((cu == cu))
435- then [StringEntry(S(), cs), StringEntry(T(), makeString(ct, j))]
437+ if ((cv == cv))
438+ then [StringEntry(S(), ct), StringEntry(T(), makeString(cu, j))]
436439 else throw("Strict value is not equal to itself.")
437440 }
438441
439442
440443
441444 @Callable(bg)
442-func setManager (cv) = {
443- let cm = bh(bg)
444- if ((cm == cm))
445+func setManager (cw) = {
446+ let cn = bh(bg)
447+ if ((cn == cn))
445448 then {
446- let cw = fromBase58String(cv)
447- if ((cw == cw))
448- then [StringEntry(P(), cv)]
449+ let cx = fromBase58String(cw)
450+ if ((cx == cx))
451+ then [StringEntry(P(), cw)]
449452 else throw("Strict value is not equal to itself.")
450453 }
451454 else throw("Strict value is not equal to itself.")
452455 }
453456
454457
455458
456459 @Callable(bg)
457460 func confirmManager () = {
458- let cx = bc()
459- let cy = if (isDefined(cx))
461+ let cy = bc()
462+ let cz = if (isDefined(cy))
460463 then true
461464 else throw("No pending manager")
462- if ((cy == cy))
465+ if ((cz == cz))
463466 then {
464- let cz = if ((bg.callerPublicKey == value(cx)))
467+ let cA = if ((bg.callerPublicKey == value(cy)))
465468 then true
466469 else throw("You are not pending manager")
467- if ((cz == cz))
468- then [StringEntry(O(), toBase58String(value(cx))), DeleteEntry(P())]
470+ if ((cA == cA))
471+ then [StringEntry(O(), toBase58String(value(cy))), DeleteEntry(P())]
469472 else throw("Strict value is not equal to itself.")
470473 }
471474 else throw("Strict value is not equal to itself.")
472475 }
473476
474477
475478
476479 @Callable(bg)
477-func setAdmins (cA) = {
478- let cm = bh(bg)
479- if ((cm == cm))
480- then [StringEntry(Q(), makeString(cA, j))]
480+func setAdmins (cB) = {
481+ let cn = bh(bg)
482+ if ((cn == cn))
483+ then [StringEntry(Q(), makeString(cB, j))]
481484 else throw("Strict value is not equal to itself.")
482485 }
483486
484487
485488
486489 @Callable(bg)
487-func activateNewPool (Y,bz,bA,cB,cC,cD,bG,cE) = {
488- let cm = bT(bg)
489- if ((cm == cm))
490+func activateNewPool (Y,bz,bA,cC,cD,cE,bG,cF) = {
491+ let cn = bT(bg)
492+ if ((cn == cn))
490493 then if (isDefined(getString(as(Y))))
491494 then throw((("Pool address " + Y) + " already registered."))
492495 else {
493- let cF = bM(bz, 1)
494- let cG = cF._1
495- let cH = bM(bA, if (cF._3)
496+ let cG = bM(bz, 1)
497+ let cH = cG._1
498+ let cI = bM(bA, if (cG._3)
496499 then 2
497500 else 1)
498- let cI = cH._1
499- let cJ = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
500- let cK = getBinaryValue(K())
501- let cL = getString(this, af(toString(cG), toString(cI)))
502- if (isDefined(cL))
501+ let cJ = cI._1
502+ let cK = valueOrErrorMessage(scriptHash(addressFromStringValue(Y)), ("No script has been found on pool account " + Y))
503+ let cL = getBinaryValue(K())
504+ let cM = getString(this, af(toString(cH), toString(cJ)))
505+ if (isDefined(cM))
503506 then throw((((("Pool " + bz) + "/") + bA) + " has already been activated."))
504507 else {
505- let cM = value(getString(this, af(toString(cG), toString(cI))))
506- let cN = if ((bz == "WAVES"))
508+ let cN = value(getString(this, af(toString(cH), toString(cJ))))
509+ let cO = if ((bz == "WAVES"))
507510 then i
508511 else pow(10, 0, value(assetInfo(fromBase58String(bz))).decimals, 0, 0, DOWN)
509- let cO = if ((bA == "WAVES"))
512+ let cP = if ((bA == "WAVES"))
510513 then i
511514 else pow(10, 0, value(assetInfo(fromBase58String(bA))).decimals, 0, 0, DOWN)
512- let cP = Issue(cB, cC, 1, 8, true)
513- let by = calculateAssetId(cP)
514- let cQ = toBase58String(by)
515- let cR = invoke(addressFromStringValue(Y), "activate", [bz, bA], nil)
516- if ((cR == cR))
517- then if ((cR != "success"))
515+ let cQ = Issue(cC, cD, 1, 8, true)
516+ let by = calculateAssetId(cQ)
517+ let cR = toBase58String(by)
518+ let cS = invoke(addressFromStringValue(Y), "activate", [bz, bA], nil)
519+ if ((cS == cS))
520+ then if ((cS != "success"))
518521 then throw("Pool initialisation error happened.")
519522 else {
520- let cr = addressFromStringValue(aE(R()))
521- let cS = invoke(cr, "createOrUpdate", [cQ, cB, false], nil)
522- if ((cS == cS))
523+ let cs = addressFromStringValue(aE(R()))
524+ let cT = invoke(cs, "createOrUpdate", [cR, cC, false], nil)
525+ if ((cT == cT))
523526 then {
524- let cT = invoke(cr, "addLabel", [cQ, g], nil)
525- if ((cT == cT))
527+ let cU = invoke(cs, "addLabel", [cR, g], nil)
528+ if ((cU == cU))
526529 then {
527- let cU = invoke(cr, "setLogo", [cQ, cE], nil)
528- if ((cU == cU))
530+ let cV = invoke(cs, "setLogo", [cR, cF], nil)
531+ if ((cV == cV))
529532 then {
530- let cV = invoke(cr, "addAssetsLink", [bz, bA, cQ], nil)
531- if ((cV == cV))
533+ let cW = invoke(cs, "addAssetsLink", [bz, bA, cR], nil)
534+ if ((cW == cW))
532535 then {
533- let cW = invoke(cr, "increaseAssetPoolsNumber", [bz], nil)
534- if ((cW == cW))
535- then $Tuple2(((cF._2 ++ cH._2) ++ [cP, Burn(by, 1), StringEntry(af(toString(cG), toString(cI)), bw(Y, toString(l), cQ, bz, bA, cN, cO, cG, cI, i, bG)), StringEntry(am(cQ), bH(cG, cI)), StringEntry(ao(toString(cG), toString(cI)), ("%s__" + cQ)), StringEntry(as(Y), bH(cG, cI)), StringEntry(au(cG, cI), Y), StringEntry(aw(cQ), Y), StringEntry(av(Y), cQ), IntegerEntry(X(Y), cD), IntegerEntry(ar(Y), h)]), cQ)
536+ let cX = invoke(cs, "increaseAssetPoolsNumber", [bz], nil)
537+ if ((cX == cX))
538+ then $Tuple2(((cG._2 ++ cI._2) ++ [cQ, Burn(by, 1), StringEntry(af(toString(cH), toString(cJ)), bw(Y, toString(l), cR, bz, bA, cO, cP, cH, cJ, i, bG)), StringEntry(am(cR), bH(cH, cJ)), StringEntry(ao(toString(cH), toString(cJ)), ("%s__" + cR)), StringEntry(as(Y), bH(cH, cJ)), StringEntry(au(cH, cJ), Y), StringEntry(aw(cR), Y), StringEntry(av(Y), cR), IntegerEntry(X(Y), cE), IntegerEntry(ar(Y), h)]), cR)
536539 else throw("Strict value is not equal to itself.")
537540 }
538541 else throw("Strict value is not equal to itself.")
539542 }
540543 else throw("Strict value is not equal to itself.")
541544 }
542545 else throw("Strict value is not equal to itself.")
543546 }
544547 else throw("Strict value is not equal to itself.")
545548 }
546549 else throw("Strict value is not equal to itself.")
547550 }
548551 }
549552 else throw("Strict value is not equal to itself.")
550553 }
551554
552555
553556
554557 @Callable(bg)
555-func managePool (Y,cX) = {
556- let cm = bh(bg)
557- if ((cm == cm))
558+func managePool (Y,cY) = {
559+ let cn = bh(bg)
560+ if ((cn == cn))
558561 then {
559- let cL = bK(Y)
560- let bx = cL[t]
561- let cQ = cL[u]
562- let bz = cL[v]
563- let bA = cL[w]
564- let cN = parseIntValue(cL[x])
565- let cO = parseIntValue(cL[y])
566- let cG = parseIntValue(cL[z])
567- let cI = parseIntValue(cL[A])
568- let cY = parseIntValue(cL[B])
569- let bG = cL[C]
570-[StringEntry(af(toString(cG), toString(cI)), bw(Y, toString(cX), cQ, bz, bA, cN, cO, cG, cI, cY, bG))]
562+ let cM = bK(Y)
563+ let bx = cM[t]
564+ let cR = cM[u]
565+ let bz = cM[v]
566+ let bA = cM[w]
567+ let cO = parseIntValue(cM[x])
568+ let cP = parseIntValue(cM[y])
569+ let cH = parseIntValue(cM[z])
570+ let cJ = parseIntValue(cM[A])
571+ let cZ = parseIntValue(cM[B])
572+ let bG = cM[C]
573+[StringEntry(af(toString(cH), toString(cJ)), bw(Y, toString(cY), cR, bz, bA, cO, cP, cH, cJ, cZ, bG))]
571574 }
572575 else throw("Strict value is not equal to itself.")
573576 }
574577
575578
576579
577580 @Callable(bg)
578-func emit (cZ) = {
579- let da = bg.caller
580- let db = bg.originCaller
581- let dc = valueOrErrorMessage(getString(av(toString(da))), "Invalid LP address called me.")
582- let dd = fromBase58String(dc)
583- let cq = split(valueOrElse(getString(N()), k), j)
584- let cp = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
585- if ((0 >= cZ))
581+func emit (da) = {
582+ let db = bg.caller
583+ let dc = bg.originCaller
584+ let dd = valueOrErrorMessage(getString(av(toString(db))), "Invalid LP address called me.")
585+ let de = fromBase58String(dd)
586+ let cr = split(valueOrElse(getString(N()), k), j)
587+ let cq = addressFromStringValue(valueOrErrorMessage(getString(M()), "Legacy factory contract does not exists."))
588+ if ((0 >= da))
586589 then nil
587- else if (containsElement(cq, toString(da)))
588- then $Tuple2(nil, cp)
589- else $Tuple2([Reissue(dd, cZ, true), ScriptTransfer(bg.caller, cZ, dd)], "success")
590+ else if (containsElement(cr, toString(db)))
591+ then $Tuple2(nil, cq)
592+ else $Tuple2([Reissue(de, da, true), ScriptTransfer(bg.caller, da, de)], "success")
590593 }
591594
592595
593596
594597 @Callable(bg)
595-func burn (de) = {
596- let da = bg.caller
597- let db = bg.originCaller
598- let df = value(bg.payments[0])
599- let dg = value(df.amount)
600- let dh = toBase58String(value(df.assetId))
601- let di = valueOrErrorMessage(getString(av(toString(da))), "Invalid LP address called me.")
602- if ((dh != di))
598+func burn (df) = {
599+ let db = bg.caller
600+ let dc = bg.originCaller
601+ let dg = value(bg.payments[0])
602+ let dh = value(dg.amount)
603+ let di = toBase58String(value(dg.assetId))
604+ let dj = valueOrErrorMessage(getString(av(toString(db))), "Invalid LP address called me.")
605+ if ((di != dj))
603606 then throw("Invalid asset passed.")
604- else if ((de != dg))
607+ else if ((df != dh))
605608 then throw("Invalid amount passed.")
606609 else {
607- let dd = fromBase58String(di)
608- $Tuple2([Burn(dd, de)], "success")
610+ let de = fromBase58String(dj)
611+ $Tuple2([Burn(de, df)], "success")
609612 }
610613 }
611614
612615
613616
614617 @Callable(bg)
615-func modifyWeight (by,dj) = {
616- let cm = if ((toBase58String(bg.caller.bytes) == valueOrElse(getString(this, S()), "")))
618+func modifyWeight (by,dk) = {
619+ let cn = if ((toBase58String(bg.caller.bytes) == valueOrElse(getString(this, S()), "")))
617620 then true
618621 else bh(bg)
619- if ((cm == cm))
622+ if ((cn == cn))
620623 then {
621624 let at = aE(aw(by))
622- let dk = X(at)
623- let dl = X(f)
624- let dm = valueOrElse(getInteger(dl), 0)
625- let cD = valueOrElse(getInteger(dk), 0)
626- let dn = dj
625+ let dl = X(at)
626+ let dm = X(f)
627+ let dn = valueOrElse(getInteger(dm), 0)
628+ let cE = valueOrElse(getInteger(dl), 0)
629+ let do = dk
627630 let aU = split(aE(I()), j)
628- let ci = aW(aU)
629- let do = invoke(ci, "onModifyWeight", [by, at], nil)
630- if ((do == do))
631+ let cj = aW(aU)
632+ let dp = invoke(cj, "onModifyWeight", [by, at], nil)
633+ if ((dp == dp))
631634 then {
632- let dp = if ((dm == 0))
635+ let dq = if ((dn == 0))
633636 then nil
634- else [IntegerEntry(dl, 0)]
635- let dq = Z(at, 0)
636- let dr = getInteger(dq)
637- let ds = if ((dr == unit))
637+ else [IntegerEntry(dm, 0)]
638+ let dr = Z(at, 0)
639+ let ds = getInteger(dr)
640+ let dt = if ((ds == unit))
638641 then nil
639- else [DeleteEntry(dq)]
640- (([IntegerEntry(dk, dn)] ++ dp) ++ ds)
642+ else [DeleteEntry(dr)]
643+ (([IntegerEntry(dl, do)] ++ dq) ++ dt)
641644 }
642645 else throw("Strict value is not equal to itself.")
643646 }
644647 else throw("Strict value is not equal to itself.")
645648 }
646649
647650
648651
649652 @Callable(bg)
650-func modifyWeights (dt,du,dv,dw) = {
651- let cm = bh(bg)
652- if ((cm == cm))
653+func modifyWeights (du,dv,dw,dx) = {
654+ let cn = bh(bg)
655+ if ((cn == cn))
653656 then {
654- let dx = ((5 * e) / 100)
655657 let dy = ((5 * e) / 100)
656658 let dz = ((5 * e) / 100)
659+ let dA = ((5 * e) / 100)
657660 let aU = split(aE(I()), j)
658- let dA = aW(aU)
659- let dB = aX(aU)
660- let dC = X(dt)
661+ let dB = aW(aU)
662+ let dC = aX(aU)
661663 let dD = X(du)
662664 let dE = X(dv)
663665 let dF = X(dw)
664- let dG = aH(dC)
666+ let dG = X(dx)
665667 let dH = aH(dD)
666- let dI = (dG - dz)
667- let dJ = (dH - dz)
668- if ((0 >= dI))
669- then throw(("invalid btcWeightNew: " + toString(dI)))
670- else if ((0 >= dJ))
671- then throw(("invalid ethWeightNew: " + toString(dJ)))
668+ let dI = aH(dE)
669+ let dJ = (dH - dA)
670+ let dK = (dI - dA)
671+ if ((0 >= dJ))
672+ then throw(("invalid btcWeightNew: " + toString(dJ)))
673+ else if ((0 >= dK))
674+ then throw(("invalid ethWeightNew: " + toString(dK)))
672675 else {
673- let dK = aE(av(dt))
674676 let dL = aE(av(du))
675677 let dM = aE(av(dv))
676678 let dN = aE(av(dw))
677- let dO = invoke(dA, "onModifyWeight", [dK, dt], nil)
678- if ((dO == dO))
679+ let dO = aE(av(dx))
680+ let dP = invoke(dB, "onModifyWeight", [dL, du], nil)
681+ if ((dP == dP))
679682 then {
680- let dP = invoke(dA, "onModifyWeight", [dL, du], nil)
681- if ((dP == dP))
683+ let dQ = invoke(dB, "onModifyWeight", [dM, dv], nil)
684+ if ((dQ == dQ))
682685 then {
683- let dQ = invoke(dA, "onModifyWeight", [dM, dv], nil)
684- if ((dQ == dQ))
686+ let dR = invoke(dB, "onModifyWeight", [dN, dw], nil)
687+ if ((dR == dR))
685688 then {
686- let dR = invoke(dA, "onModifyWeight", [dN, dw], nil)
687- if ((dR == dR))
688- then [IntegerEntry(dC, dI), IntegerEntry(dD, dJ), IntegerEntry(dE, dx), IntegerEntry(dF, dy), IntegerEntry(Z(dt, 0), dG), IntegerEntry(Z(du, 0), dH), IntegerEntry(Z(dv, 0), dx), IntegerEntry(Z(dw, 0), dy)]
689+ let dS = invoke(dB, "onModifyWeight", [dO, dx], nil)
690+ if ((dS == dS))
691+ then [IntegerEntry(dD, dJ), IntegerEntry(dE, dK), IntegerEntry(dF, dy), IntegerEntry(dG, dz), IntegerEntry(Z(du, 0), dH), IntegerEntry(Z(dv, 0), dI), IntegerEntry(Z(dw, 0), dy), IntegerEntry(Z(dx, 0), dz)]
689692 else throw("Strict value is not equal to itself.")
690693 }
691694 else throw("Strict value is not equal to itself.")
692695 }
693696 else throw("Strict value is not equal to itself.")
694697 }
695698 else throw("Strict value is not equal to itself.")
696699 }
697700 }
698701 else throw("Strict value is not equal to itself.")
699702 }
700703
701704
702705
703706 @Callable(bg)
704707 func checkWxEmissionPoolLabel (ay,az) = {
705- let dS = {
708+ let dT = {
706709 let aZ = getBoolean(ax(ay, az))
707710 if ($isInstanceOf(aZ, "Boolean"))
708711 then {
709- let dT = aZ
710- dT
712+ let dU = aZ
713+ dU
711714 }
712715 else false
713716 }
714- $Tuple2(nil, dS)
717+ $Tuple2(nil, dT)
715718 }
716719
717720
718721
719722 @Callable(bg)
720723 func setWxEmissionPoolLabel (ay,az) = {
721- let cm = bT(bg)
722- if ((cm == cm))
724+ let cn = bT(bg)
725+ if ((cn == cn))
723726 then $Tuple2([BooleanEntry(ax(ay, az), true)], unit)
724727 else throw("Strict value is not equal to itself.")
725728 }
726729
727730
728731
729732 @Callable(bg)
730733 func deleteWxEmissionPoolLabel (ay,az) = {
731- let cm = if (bf(bg))
734+ let cn = if (bf(bg))
732735 then true
733736 else bT(bg)
734- if ((cm == cm))
737+ if ((cn == cn))
735738 then $Tuple2([DeleteEntry(ax(ay, az))], unit)
736739 else throw("Strict value is not equal to itself.")
737740 }
738741
739742
740743
741744 @Callable(bg)
742-func onVerificationLoss (dU) = {
743- let cm = if ((toBase58String(bg.caller.bytes) == valueOrElse(getString(this, R()), "")))
745+func onVerificationLoss (dV) = {
746+ let cn = if ((toBase58String(bg.caller.bytes) == valueOrElse(getString(this, R()), "")))
744747 then true
745748 else bh(bg)
746- if ((cm == cm))
749+ if ((cn == cn))
747750 then {
748- let ct = aY()
749- let dV = if ((size(ct) > 0))
751+ let cu = aY()
752+ let dW = if ((size(cu) > 0))
750753 then true
751754 else throw("invalid price assets")
752- if ((dV == dV))
755+ if ((dW == dW))
753756 then {
754- func dW (dX,dY) = {
755- let dZ = invoke(this, "deleteWxEmissionPoolLabel", [dU, dY], nil)
756- if ((dZ == dZ))
757+ func dX (dY,dZ) = {
758+ let ea = invoke(this, "deleteWxEmissionPoolLabel", [dV, dZ], nil)
759+ if ((ea == ea))
757760 then unit
758761 else throw("Strict value is not equal to itself.")
759762 }
760763
761- let ea = {
762- let eb = ct
763- let ec = size(eb)
764- let ed = unit
765- func ee (ef,eg) = if ((eg >= ec))
766- then ef
767- else dW(ef, eb[eg])
764+ let eb = {
765+ let ec = cu
766+ let ed = size(ec)
767+ let ee = unit
768+ func ef (eg,eh) = if ((eh >= ed))
769+ then eg
770+ else dX(eg, ec[eh])
768771
769- func eh (ef,eg) = if ((eg >= ec))
770- then ef
772+ func ei (eg,eh) = if ((eh >= ed))
773+ then eg
771774 else throw("List size exceeds 4")
772775
773- eh(ee(ee(ee(ee(ed, 0), 1), 2), 3), 4)
776+ ei(ef(ef(ef(ef(ee, 0), 1), 2), 3), 4)
774777 }
775- if ((ea == ea))
778+ if ((eb == eb))
776779 then $Tuple2(nil, unit)
777780 else throw("Strict value is not equal to itself.")
778781 }
779782 else throw("Strict value is not equal to itself.")
780783 }
781784 else throw("Strict value is not equal to itself.")
782785 }
783786
784787
785788
786789 @Callable(bg)
787790 func isPoolOneTokenOperationsDisabledREADONLY (Y) = {
788- let cL = bK(Y)
789- let aj = $Tuple2(parseIntValue(cL[z]), parseIntValue(cL[A]))
790- let ei = valueOrElse(getBoolean(ai(aj)), false)
791- let ej = valueOrElse(getBoolean(al()), false)
792- $Tuple2(nil, if (ej)
791+ let cM = bK(Y)
792+ let aj = $Tuple2(parseIntValue(cM[z]), parseIntValue(cM[A]))
793+ let ej = valueOrElse(getBoolean(ai(aj)), false)
794+ let ek = valueOrElse(getBoolean(al()), false)
795+ $Tuple2(nil, if (ek)
793796 then true
794- else ei)
797+ else ej)
795798 }
796799
797800
798801
799802 @Callable(bg)
800803 func getInFeeREADONLY (Y) = {
801- let ek = bW(aA(Y), aB(), 0)
802- $Tuple2(nil, ek)
804+ let el = bW(aA(Y), aB(), 0)
805+ $Tuple2(nil, el)
803806 }
804807
805808
806809
807810 @Callable(bg)
808811 func getOutFeeREADONLY (Y) = {
809- let ek = bW(aC(Y), aD(), fraction(10, b, 10000))
810- $Tuple2(nil, ek)
812+ let el = bW(aC(Y), aD(), fraction(10, b, 10000))
813+ $Tuple2(nil, el)
811814 }
812815
813816
814817
815818 @Callable(bg)
816819 func getPoolStatusREADONLY (Y) = {
817820 let bL = split(aE(as(Y)), j)
818821 let ag = bL[1]
819822 let ah = bL[2]
820- let el = split(aE(af(ag, ah)), j)
821- $Tuple2(nil, parseIntValue(el[t]))
823+ let em = split(aE(af(ag, ah)), j)
824+ $Tuple2(nil, parseIntValue(em[t]))
822825 }
823826
824827
825-@Verifier(em)
826-func en () = {
827- let eo = {
828+@Verifier(en)
829+func eo () = {
830+ let ep = {
828831 let aZ = bb()
829832 if ($isInstanceOf(aZ, "ByteVector"))
830833 then {
831834 let bi = aZ
832835 bi
833836 }
834837 else if ($isInstanceOf(aZ, "Unit"))
835- then em.senderPublicKey
838+ then en.senderPublicKey
836839 else throw("Match error")
837840 }
838- sigVerify(em.bodyBytes, em.proofs[0], eo)
841+ sigVerify(en.bodyBytes, en.proofs[0], ep)
839842 }
840843

github/deemru/w8io/169f3d6 
261.69 ms