tx · DGKdArHbB7whryfLh5fUP5eAdNykC77oLXCBZy6ok5yo

3N9yMmmL5cJ7LJxr8o6GFbKFUbGz4XcAjeg:  -0.02700000 Waves

2023.03.27 17:18 [2508480] smart account 3N9yMmmL5cJ7LJxr8o6GFbKFUbGz4XcAjeg > SELF 0.00000000 Waves

{ "type": 13, "id": "DGKdArHbB7whryfLh5fUP5eAdNykC77oLXCBZy6ok5yo", "fee": 2700000, "feeAssetId": null, "timestamp": 1679926742741, "version": 2, "chainId": 84, "sender": "3N9yMmmL5cJ7LJxr8o6GFbKFUbGz4XcAjeg", "senderPublicKey": "C2aAS9D6FqfbrkCuCQCtPWAiopjyagvitFLjRuLcRPYt", "proofs": [ "r661rUoncFHNF1EzowTwA7GtQPoTFhMe4DatchqZBJtLzgG6vuj4Z4WChgbrVaEVGJL42ZbY5haXjit4xwHaQ1a" ], "script": "base64:AAIFAAAAAAAACz8IAhIMCgoICAgBCAEBAQEBEgQKAggIEgQKAggEEgMKAQgSBAoCCAESBQoDCAgIEgASAwoBARIAEgASAwoBARIAEgMKAQESAwoBARIDCgEIIglzZXBhcmF0b3IiD21heERlcHRoRGVmYXVsdCIFYXNJbnQiA3ZhbCIHJG1hdGNoMCIGdmFsSW50IgZhc0Jvb2wiB3ZhbEJvb2wiDGtleUZlZUFtb3VudCIMa2V5V3hBc3NldElkIhJrZXlWb3RpbmdUaHJlc2hvbGQiEWtleVZvdGluZ0R1cmF0aW9uIhhrZXlWb3RlQmVmb3JlRWxpbWluYXRpb24iDmtleVN0YXJ0SGVpZ2h0IhBrZXlDdXJyZW50UGVyaW9kIhNrZXlCb29zdGluZ0NvbnRyYWN0IhNrZXlFbWlzc2lvbkNvbnRyYWN0IhZrZXlBc3NldHNTdG9yZUNvbnRyYWN0IhdrZXlMYXRlc3RQcm9jZXNzZWRBc3NldCIWa2V5TGF0ZXN0UHJvY2Vzc2VkVXNlciIca2V5TGF0ZXN0UHJvY2Vzc2VkVXNlclJlbW92ZSIfa2V5TGF0ZXN0UHJvY2Vzc2VkQXNzZXRUcmFuc2ZlciIea2V5TGF0ZXN0UHJvY2Vzc2VkVXNlclRyYW5zZmVyIiRrZXlMYXRlc3RQcm9jZXNzZWRVc2VyUmVtb3ZlVHJhbnNmZXIiC2tleU1heERlcHRoIiBrZXlWb3Rlc1RyYW5zZmVyRmluaXNoZWRCeVBlcmlvZCIGcGVyaW9kIg5hc3NldHNMaXN0TmFtZSIQZ2V0Vm90ZXNMaXN0TmFtZSIHYXNzZXRJZCILa2V5TGlzdEhlYWQiCGxpc3ROYW1lIgtrZXlMaXN0U2l6ZSILa2V5TGlzdFByZXYiAmlkIgtrZXlMaXN0TmV4dCIYa2V5QXNzZXRWZXJpZmllZEJ5UGVyaW9kIhBrZXlBc3NldFZlcmlmaWVkIhVrZXlBc3NldFdhc0VsaW1pbmF0ZWQiFWtleVZvdGVSZXN1bHRCeVBlcmlvZCIQZm9ybWF0Vm90ZVJlc3VsdCIIdG90YWxZZXMiB3RvdGFsTm8iCHZlcmlmaWVkIg9wYXJzZVZvdGVSZXN1bHQiBWlucHV0IgVwYXJ0cyILdG90YWxZZXNJZHgiCnRvdGFsTm9JZHgiC3ZlcmlmaWVkSWR4IhNrZXlVc2VyVm90ZUJ5UGVyaW9kIgt1c2VyQWRkcmVzcyIOZm9ybWF0VXNlclZvdGUiBXRvdGFsIgdpbkZhdm9yIg1wYXJzZVVzZXJWb3RlIgdhZ2FpbnN0IgtjaGVja1RvdGFscyISa2V5VXNlclZvdGVIaXN0b3J5IgR0eXBlIgR0eElkIgh0aGlzT25seSIBaSIQZ2V0SW50ZWdlck9yWmVybyIDa2V5IhBnZXRJbnRlZ2VyT3JGYWlsIhBnZXRTdHJpbmdPckVtcHR5Ig9nZXRTdHJpbmdPckZhaWwiCWZlZUFtb3VudCIJd3hBc3NldElkIg92b3RpbmdUaHJlc2hvbGQiDnZvdGluZ0R1cmF0aW9uIhV2b3RlQmVmb3JlRWxpbWluYXRpb24iC3N0YXJ0SGVpZ2h0Ig1jdXJyZW50UGVyaW9kIhBib29zdGluZ0NvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0IhNhc3NldHNTdG9yZUNvbnRyYWN0IghtYXhEZXB0aCIJZW5kSGVpZ2h0IhhnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHQiDHRhcmdldEhlaWdodCIJZ3d4QW1vdW50IhNnZXRWb3RlUmVzdWx0QWN0aW9uIg12b3RlUmVzdWx0S2V5IgskdDA2MTYzNjQ2NiIBcyIHJG1hdGNoMSILb2xkVG90YWxZZXMiCm9sZFRvdGFsTm8iC29sZFZlcmlmaWVkIgxjb250YWluc05vZGUiBGhlYWQiBHByZXYiBG5leHQiCmluc2VydE5vZGUiCGxpc3RTaXplIgljaGVja05vZGUiCmRlbGV0ZU5vZGUiC3Byb2Nlc3NWb3RlIhF1c2VyQWRkcmVzc09yVW5pdCIXbGF0ZXN0UHJvY2Vzc2VkQXNzZXRLZXkiFmxhdGVzdFByb2Nlc3NlZFVzZXJLZXkiHGxhdGVzdFByb2Nlc3NlZFVzZXJSZW1vdmVLZXkiIHVwZGF0ZUxhdGVzdFByb2Nlc3NlZEFzc2V0QWN0aW9uIh9kZWxldGVMYXRlc3RQcm9jZXNzZWRVc2VyQWN0aW9uIh91cGRhdGVMYXRlc3RQcm9jZXNzZWRVc2VyQWN0aW9uIgt1c2VyVm90ZUtleSIOdXNlclZvdGVPclVuaXQiC3ZvdGVBY3Rpb25zIhh1c2VyR3d4QW1vdW50QXRFbmRIZWlnaHQiDnByZXZpb3VzUGVyaW9kIhJhc3NldFdhc0VsaW1pbmF0ZWQiFnVzZXJQcmV2aW91c1ZvdGVPclVuaXQiDSR0MDEwNTc3MTA2NTAiCXByZXZUb3RhbCIXYXNzZXRTaG91bGRCZUVsaW1pbmF0ZWQiEGVsaW1pbmF0aW9uQ2hlY2siE2Jvb3N0aW5nQ29udHJhY3RQcm0iE2VtaXNzaW9uQ29udHJhY3RQcm0iFmFzc2V0c1N0b3JlQ29udHJhY3RQcm0iDGZlZUFtb3VudFBybSIMd3hBc3NldElkUHJtIhJ2b3RpbmdUaHJlc2hvbGRQcm0iEXZvdGluZ0R1cmF0aW9uUHJtIhh2b3RlQmVmb3JlRWxpbWluYXRpb25Qcm0iDnN0YXJ0SGVpZ2h0UHJtIgttYXhEZXB0aFBybSIGY2hlY2tzIgphc3NldEltYWdlIgRpbmZvIgdwYXltZW50IgZpc1RoaXMiHGFzc2V0c1N0b3JlQ3JlYXRlT3JVcGRhdGVJbnYiCmJ1cm5GZWVJbnYiD2FkZEFzc2V0QWN0aW9ucyIKbmV4dFBlcmlvZCIMdGFyZ2V0UGVyaW9kIgpjaGVja0Fzc2V0IgtjaGVja0hlaWdodCIOZ3d4QW1vdW50QXRFbmQiE2NoZWNrR3d4QW1vdW50QXRFbmQiDXZvdGVzTGlzdE5hbWUiDWNhbmNlbFZvdGVJbnYiD3VzZXJWb3RlQWN0aW9ucyIQdm90ZXNMaXN0QWN0aW9ucyINJHQwMTYwNjcxNjE2MSILY2hlY2tDYWxsZXIiDSR0MDE2NzkyMTY5NjUiAXIiFGFzc2V0VmVyaWZpZWRBY3Rpb25zIhlhc3NldHNTdG9yZVNldFZlcmlmaWVkSW52IgllbGltaW5hdGUiGWFzc2V0V2FzRWxpbWluYXRlZEFjdGlvbnMiEXZvdGVSZXN1bHRBY3Rpb25zIhBvbkVsaW1pbmF0aW9uSW52IhpsYXRlc3RQcm9jZXNzZWRBc3NldE9yVW5pdCIZbGF0ZXN0UHJvY2Vzc2VkVXNlck9yVW5pdCIPbmV4dFBlcmlvZERlbGF5IgZmaW5pc2giEGFzc2V0c0hlYWRPclVuaXQiBWFzc2V0IhJwcm9jZXNzVm90ZUFjdGlvbnMiFGxhdGVzdFBy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", "height": 2508480, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GR17wbVxzeYae8UseLbVESLGaVZKufkd8QuxFjaP55TY Next: 9LAx7qt9QajDNKTZUMR6GHYk7QCmghdp9kA3YiYfPsUV Diff:
OldNewDifferences
360360 @Callable(ak)
361361 func suggest (D,bz) = {
362362 let bA = valueOrErrorMessage(assetInfo(fromBase58String(D)), "Invalid asset ID")
363- let bB = value(ak.payments[0])
364- let by = [if ((bA.issuer == ak.caller))
365- then true
366- else throw("Asset can only be suggested by its issuer"), if ((value(bB.assetId) == ar))
367- then true
368- else throw("Invalid fee asset"), if ((bB.amount == aq))
369- then true
370- else throw("Invalid fee amount")]
371- if ((by == by))
363+ if ((bA == bA))
372364 then {
373- let bC = invoke(az, "createOrUpdate", [D, bz, false], nil)
374- if ((bC == bC))
365+ let bB = value(ak.payments[0])
366+ let bC = (ak.caller == this)
367+ let by = [if (if (bC)
368+ then true
369+ else (bA.issuer == ak.caller))
370+ then true
371+ else throw("Asset can only be suggested by its issuer"), if (if (bC)
372+ then true
373+ else (value(bB.assetId) == ar))
374+ then true
375+ else throw("Invalid fee asset"), if (if (bC)
376+ then true
377+ else (bB.amount == aq))
378+ then true
379+ else throw("Invalid fee amount")]
380+ if ((by == by))
375381 then {
376- let bD = invoke(ay, "burn", nil, [AttachedPayment(bB.assetId, bB.amount)])
382+ let bD = invoke(az, "createOrUpdate", [D, bz, false], nil)
377383 if ((bD == bD))
378384 then {
379- let bE = aR(B, D)
380- let bF = (aw + 1)
381- let bG = if ((aB > height))
382- then aw
383- else bF
384- $Tuple2((bE :+ aF(D, 0, true, bG, false)), unit)
385+ let bE = if (bC)
386+ then unit
387+ else invoke(ay, "burn", nil, [AttachedPayment(bB.assetId, bB.amount)])
388+ if ((bE == bE))
389+ then {
390+ let bF = aR(B, D)
391+ let bG = (aw + 1)
392+ let bH = if ((aB > height))
393+ then aw
394+ else bG
395+ $Tuple2((bF :+ aF(D, 0, true, bH, false)), unit)
396+ }
397+ else throw("Strict value is not equal to itself.")
385398 }
386399 else throw("Strict value is not equal to itself.")
387400 }
394407
395408 @Callable(ak)
396409 func vote (D,ac) = {
397- let bH = if (aN(B, D))
410+ let bI = if (aN(B, D))
398411 then true
399412 else throw("Invalid asset")
400- if ((bH == bH))
413+ if ((bI == bI))
401414 then {
402- let bI = if ((aB > height))
415+ let bJ = if ((aB > height))
403416 then true
404417 else throw("Current voting is over but results are not finalized")
405- if ((bI == bI))
418+ if ((bJ == bJ))
406419 then {
407420 let Z = toString(ak.caller)
408- let bJ = aC(Z, aB)
409- let bK = if ((bJ > 0))
421+ let bK = aC(Z, aB)
422+ let bL = if ((bK > 0))
410423 then true
411424 else throw("You'll not have gWX at the end of voting")
412- if ((bK == bK))
425+ if ((bL == bL))
413426 then {
414- let bL = C(D)
427+ let bM = C(D)
415428 let bd = Y(Z, D, aw)
416429 let be = getString(bd)
417- let bM = if ((be == unit))
430+ let bN = if ((be == unit))
418431 then unit
419432 else invoke(this, "cancelVote", [D], nil)
420- if ((bM == bM))
433+ if ((bN == bN))
421434 then {
422- let bN = [StringEntry(bd, aa(bJ, ac)), StringEntry(ag("vote", Z, D, toBase58String(ak.transactionId), aw), aa(bJ, ac)), aF(D, bJ, ac, aw, unit)]
423- let bO = if (aN(bL, Z))
435+ let bO = [StringEntry(bd, aa(bK, ac)), StringEntry(ag("vote", Z, D, toBase58String(ak.transactionId), aw), aa(bK, ac)), aF(D, bK, ac, aw, unit)]
436+ let bP = if (aN(bM, Z))
424437 then nil
425- else aR(bL, Z)
426- $Tuple2((bO ++ bN), unit)
438+ else aR(bM, Z)
439+ $Tuple2((bP ++ bO), unit)
427440 }
428441 else throw("Strict value is not equal to itself.")
429442 }
441454 let Z = if ((ak.caller == this))
442455 then toString(ak.originCaller)
443456 else toString(ak.caller)
444- let bL = C(D)
457+ let bM = C(D)
445458 let bd = Y(Z, D, aw)
446459 let be = getString(bd)
447- let bP = ad(valueOrErrorMessage(be, "Nothing to cancel"))
448- let ab = bP._1
449- let ac = bP._2
450- let bO = aU(bL, Z)
451- let bN = [DeleteEntry(bd), StringEntry(ag("cancelVote", Z, D, toBase58String(ak.transactionId), aw), aa(0, true)), aF(D, -(ab), ac, aw, unit)]
452- $Tuple2((bO ++ bN), unit)
460+ let bQ = ad(valueOrErrorMessage(be, "Nothing to cancel"))
461+ let ab = bQ._1
462+ let ac = bQ._2
463+ let bP = aU(bM, Z)
464+ let bO = [DeleteEntry(bd), StringEntry(ag("cancelVote", Z, D, toBase58String(ak.transactionId), aw), aa(0, true)), aF(D, -(ab), ac, aw, unit)]
465+ $Tuple2((bP ++ bO), unit)
453466 }
454467
455468
456469
457470 @Callable(ak)
458471 func finalizeAssetINTERNAL (D,A) = {
459- let bQ = aj(ak)
460- if ((bQ == bQ))
472+ let bR = aj(ak)
473+ if ((bR == bR))
461474 then {
462475 let aG = N(D, A)
463- let bR = {
476+ let bS = {
464477 let e = getString(aG)
465478 if ($isInstanceOf(e, "String"))
466479 then {
467480 let aI = e
468- let bS = S(aI)
469- $Tuple2(bS._1, bS._2)
481+ let bT = S(aI)
482+ $Tuple2(bT._1, bT._2)
470483 }
471484 else if ($isInstanceOf(e, "Unit"))
472485 then $Tuple2(0, 0)
473486 else throw("Match error")
474487 }
475- let P = bR._1
476- let Q = bR._2
488+ let P = bS._1
489+ let Q = bS._2
477490 let ab = (P + Q)
478491 let R = if ((ab >= as))
479492 then (P > Q)
480493 else false
481- let bT = [BooleanEntry(K(D, A), R), if (R)
494+ let bU = [BooleanEntry(K(D, A), R), if (R)
482495 then BooleanEntry(L(D), true)
483496 else DeleteEntry(L(D))]
484- let bU = invoke(az, "setVerified", [D, R], nil)
485- if ((bU == bU))
497+ let bV = invoke(az, "setVerified", [D, R], nil)
498+ if ((bV == bV))
486499 then {
487- let bV = if (R)
500+ let bW = if (R)
488501 then false
489502 else bn(D)
490- let bW = if (bV)
503+ let bX = if (bW)
491504 then [BooleanEntry(M(D, aw), true)]
492505 else nil
493- let bX = if (bV)
506+ let bY = if (bW)
494507 then nil
495508 else [aF(D, 0, true, (aw + 1), R)]
496- let bO = if (bV)
509+ let bP = if (bW)
497510 then aU(B, D)
498511 else nil
499- let bY = if (bV)
512+ let bZ = if (bW)
500513 then invoke(az, "onEliminate", [D], nil)
501514 else unit
502- if ((bY == bY))
503- then $Tuple2(((bO ++ bX) ++ bT), unit)
515+ if ((bZ == bZ))
516+ then $Tuple2(((bP ++ bY) ++ bU), unit)
504517 else throw("Strict value is not equal to itself.")
505518 }
506519 else throw("Strict value is not equal to itself.")
512525
513526 @Callable(ak)
514527 func deleteUserNodeINTERNAL (D,Z,aZ) = {
515- let bQ = aj(ak)
516- if ((bQ == bQ))
528+ let bR = aj(ak)
529+ if ((bR == bR))
517530 then $Tuple2((aU(C(D), Z) :+ DeleteEntry(aZ)), unit)
518531 else throw("Strict value is not equal to itself.")
519532 }
524537 func finalizeVotingHelper () = if ((aB > height))
525538 then $Tuple2(nil, false)
526539 else {
527- let bZ = getString(s)
528- let ca = getString(t)
529- let cb = 0
530- let cc = $Tuple2([IntegerEntry(n, (height + cb)), IntegerEntry(o, (aw + 1)), DeleteEntry(s), DeleteEntry(t), DeleteEntry(v), DeleteEntry(w)], true)
531- if ((bZ == unit))
540+ let ca = getString(s)
541+ let cb = getString(t)
542+ let cc = 0
543+ let cd = $Tuple2([IntegerEntry(n, (height + cc)), IntegerEntry(o, (aw + 1)), DeleteEntry(s), DeleteEntry(t), DeleteEntry(v), DeleteEntry(w)], true)
544+ if ((ca == unit))
532545 then {
533- let cd = getString(E(B))
534- if ((cd == unit))
535- then cc
546+ let ce = getString(E(B))
547+ if ((ce == unit))
548+ then cd
536549 else {
537- let ce = value(cd)
538- let aW = getString(E(C(ce)))
539- let cf = aV(ce, aW, s, t, u)
540- $Tuple2(cf, true)
550+ let cf = value(ce)
551+ let aW = getString(E(C(cf)))
552+ let cg = aV(cf, aW, s, t, u)
553+ $Tuple2(cg, true)
541554 }
542555 }
543556 else {
544- let cg = value(bZ)
545- if ((ca == unit))
557+ let ch = value(ca)
558+ if ((cb == unit))
546559 then {
547- let ch = getString(J(B, cg))
548- if ((ch == ch))
560+ let ci = getString(J(B, ch))
561+ if ((ci == ci))
549562 then {
550- let ci = invoke(this, "finalizeAssetINTERNAL", [cg, aw], nil)
551- if ((ci == ci))
552- then if ((ch == unit))
553- then cc
563+ let cj = invoke(this, "finalizeAssetINTERNAL", [ch, aw], nil)
564+ if ((cj == cj))
565+ then if ((ci == unit))
566+ then cd
554567 else {
555- let ce = value(ch)
556- let aW = getString(E(C(ce)))
557- let cf = aV(ce, aW, s, t, u)
558- $Tuple2(cf, true)
568+ let cf = value(ci)
569+ let aW = getString(E(C(cf)))
570+ let cg = aV(cf, aW, s, t, u)
571+ $Tuple2(cg, true)
559572 }
560573 else throw("Strict value is not equal to itself.")
561574 }
562575 else throw("Strict value is not equal to itself.")
563576 }
564577 else {
565- let cj = value(ca)
566- let aW = getString(J(C(cg), cj))
578+ let ck = value(cb)
579+ let aW = getString(J(C(ch), ck))
567580 if ((aW == aW))
568581 then {
569- let ck = valueOrElse(getBoolean(u), false)
570- let cl = if (ck)
571- then invoke(this, "deleteUserNodeINTERNAL", [cg, cj, u], nil)
582+ let cl = valueOrElse(getBoolean(u), false)
583+ let cm = if (cl)
584+ then invoke(this, "deleteUserNodeINTERNAL", [ch, ck, u], nil)
572585 else unit
573- if ((cl == cl))
586+ if ((cm == cm))
574587 then {
575- let cf = aV(cg, aW, s, t, u)
576- $Tuple2(cf, true)
588+ let cg = aV(ch, aW, s, t, u)
589+ $Tuple2(cg, true)
577590 }
578591 else throw("Strict value is not equal to itself.")
579592 }
585598
586599
587600 @Callable(ak)
588-func finalizeVotingWrapper (cm) = {
589- let cn = g(invoke(this, "finalizeVotingHelper", nil, nil))
590- if ((cn == cn))
591- then if (!(cn))
592- then if ((cm == 0))
601+func finalizeVotingWrapper (cn) = {
602+ let co = g(invoke(this, "finalizeVotingHelper", nil, nil))
603+ if ((co == co))
604+ then if (!(co))
605+ then if ((cn == 0))
593606 then throw("Current voting is not over yet")
594607 else $Tuple2(nil, unit)
595- else if ((aA > cm))
608+ else if ((aA > cn))
596609 then {
597- let co = invoke(this, "finalizeVotingWrapper", [(cm + 1)], nil)
598- if ((co == co))
610+ let cp = invoke(this, "finalizeVotingWrapper", [(cn + 1)], nil)
611+ if ((cp == cp))
599612 then $Tuple2(nil, unit)
600613 else throw("Strict value is not equal to itself.")
601614 }
607620
608621 @Callable(ak)
609622 func finalizeVoting () = {
610- let co = invoke(this, "finalizeVotingWrapper", [0], nil)
611- if ((co == co))
623+ let cp = invoke(this, "finalizeVotingWrapper", [0], nil)
624+ if ((cp == cp))
612625 then $Tuple2(nil, unit)
613626 else throw("Strict value is not equal to itself.")
614627 }
617630
618631 @Callable(ak)
619632 func transferVotesHelper () = {
620- let cp = z(aw)
621- let cq = valueOrElse(getBoolean(cp), false)
633+ let cq = z(aw)
634+ let cr = valueOrElse(getBoolean(cq), false)
622635 if (if (if ((av > height))
623636 then true
624637 else (height >= aB))
625638 then true
626- else cq)
639+ else cr)
627640 then $Tuple2(nil, false)
628641 else {
629- let bZ = getString(v)
630- let ca = getString(w)
631- let cc = $Tuple2([BooleanEntry(cp, true), DeleteEntry(v), DeleteEntry(w)], true)
632- if ((bZ == unit))
642+ let ca = getString(v)
643+ let cb = getString(w)
644+ let cd = $Tuple2([BooleanEntry(cq, true), DeleteEntry(v), DeleteEntry(w)], true)
645+ if ((ca == unit))
633646 then {
634- let cd = getString(E(B))
635- if ((cd == unit))
636- then cc
647+ let ce = getString(E(B))
648+ if ((ce == unit))
649+ then cd
637650 else {
638- let ce = value(cd)
639- let aW = getString(E(C(ce)))
640- let cf = aV(ce, aW, v, w, x)
641- $Tuple2(cf, true)
651+ let cf = value(ce)
652+ let aW = getString(E(C(cf)))
653+ let cg = aV(cf, aW, v, w, x)
654+ $Tuple2(cg, true)
642655 }
643656 }
644657 else {
645- let cg = value(bZ)
646- if ((ca == unit))
658+ let ch = value(ca)
659+ if ((cb == unit))
647660 then {
648- let ch = getString(J(B, cg))
649- if ((ch == unit))
650- then cc
661+ let ci = getString(J(B, ch))
662+ if ((ci == unit))
663+ then cd
651664 else {
652- let ce = value(ch)
653- let aW = getString(E(C(ce)))
654- let cf = aV(ce, aW, v, w, x)
655- $Tuple2(cf, true)
665+ let cf = value(ci)
666+ let aW = getString(E(C(cf)))
667+ let cg = aV(cf, aW, v, w, x)
668+ $Tuple2(cg, true)
656669 }
657670 }
658671 else {
659- let cj = value(ca)
660- let aW = getString(J(C(cg), cj))
672+ let ck = value(cb)
673+ let aW = getString(J(C(ch), ck))
661674 if ((aW == aW))
662675 then {
663- let ck = valueOrElse(getBoolean(x), false)
664- let cl = if (ck)
665- then invoke(this, "deleteUserNodeINTERNAL", [cg, cj, x], nil)
676+ let cl = valueOrElse(getBoolean(x), false)
677+ let cm = if (cl)
678+ then invoke(this, "deleteUserNodeINTERNAL", [ch, ck, x], nil)
666679 else unit
667- if ((cl == cl))
680+ if ((cm == cm))
668681 then {
669- let cf = aV(cg, aW, v, w, x)
670- $Tuple2(cf, true)
682+ let cg = aV(ch, aW, v, w, x)
683+ $Tuple2(cg, true)
671684 }
672685 else throw("Strict value is not equal to itself.")
673686 }
680693
681694
682695 @Callable(ak)
683-func transferVotesWrapper (cm) = {
684- let cn = g(invoke(this, "transferVotesHelper", nil, nil))
685- if ((cn == cn))
686- then if (!(cn))
687- then if ((cm == 0))
696+func transferVotesWrapper (cn) = {
697+ let co = g(invoke(this, "transferVotesHelper", nil, nil))
698+ if ((co == co))
699+ then if (!(co))
700+ then if ((cn == 0))
688701 then throw("Voting is not started yet")
689702 else $Tuple2(nil, unit)
690- else if ((aA > cm))
703+ else if ((aA > cn))
691704 then {
692- let co = invoke(this, "transferVotesWrapper", [(cm + 1)], nil)
693- if ((co == co))
705+ let cp = invoke(this, "transferVotesWrapper", [(cn + 1)], nil)
706+ if ((cp == cp))
694707 then $Tuple2(nil, unit)
695708 else throw("Strict value is not equal to itself.")
696709 }
702715
703716 @Callable(ak)
704717 func transferVotes () = {
705- let co = invoke(this, "transferVotesWrapper", [0], nil)
706- if ((co == co))
718+ let cp = invoke(this, "transferVotesWrapper", [0], nil)
719+ if ((cp == cp))
707720 then $Tuple2(nil, unit)
708721 else throw("Strict value is not equal to itself.")
709722 }
711724
712725
713726 @Callable(ak)
714-func setVotingThreshold (cr) = {
715- let bQ = aj(ak)
716- if ((bQ == bQ))
717- then $Tuple2([IntegerEntry(k, cr)], unit)
727+func setVotingThreshold (cs) = {
728+ let bR = aj(ak)
729+ if ((bR == bR))
730+ then $Tuple2([IntegerEntry(k, cs)], unit)
718731 else throw("Strict value is not equal to itself.")
719732 }
720733
721734
722735
723736 @Callable(ak)
724-func setFee (cs) = {
725- let bQ = aj(ak)
726- if ((bQ == bQ))
727- then $Tuple2([IntegerEntry(i, cs)], unit)
737+func setFee (ct) = {
738+ let bR = aj(ak)
739+ if ((bR == bR))
740+ then $Tuple2([IntegerEntry(i, ct)], unit)
728741 else throw("Strict value is not equal to itself.")
729742 }
730743
732745
733746 @Callable(ak)
734747 func gwxAvailableForVoteREADONLY (Z) = {
735- let bJ = aC(Z, aB)
736- $Tuple2(nil, bJ)
748+ let bK = aC(Z, aB)
749+ $Tuple2(nil, bK)
737750 }
738751
739752
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 10
77
88 func c (d) = {
99 let e = d
1010 if ($isInstanceOf(e, "Int"))
1111 then {
1212 let f = e
1313 f
1414 }
1515 else throw("Failed to cast into Integer")
1616 }
1717
1818
1919 func g (d) = {
2020 let e = d
2121 if ($isInstanceOf(e, "Boolean"))
2222 then {
2323 let h = e
2424 h
2525 }
2626 else throw("Failed to cast into Boolean")
2727 }
2828
2929
3030 let i = makeString(["%s", "fee"], a)
3131
3232 let j = makeString(["%s", "wxAssetId"], a)
3333
3434 let k = makeString(["%s", "votingThreshold"], a)
3535
3636 let l = makeString(["%s", "epochLength"], a)
3737
3838 let m = makeString(["%s", "voteBeforeElimination"], a)
3939
4040 let n = makeString(["%s", "currentVotingHeightStart"], a)
4141
4242 let o = makeString(["%s", "currentEpoch"], a)
4343
4444 let p = makeString(["%s", "boostingContract"], a)
4545
4646 let q = makeString(["%s", "emissionContract"], a)
4747
4848 let r = makeString(["%s", "assetsStoreContract"], a)
4949
5050 let s = makeString(["%s", "latestProcessedAsset"], a)
5151
5252 let t = makeString(["%s", "latestProcessedUser"], a)
5353
5454 let u = makeString(["%s", "latestProcessedUserRemove"], a)
5555
5656 let v = makeString(["%s", "latestProcessedAssetTransfer"], a)
5757
5858 let w = makeString(["%s", "latestProcessedUserTransfer"], a)
5959
6060 let x = makeString(["%s", "latestProcessedUserRemoveTransfer"], a)
6161
6262 let y = makeString(["%s", "maxDepth"], a)
6363
6464 func z (A) = makeString(["%s", "votesTransferFinished", toString(A)], a)
6565
6666
6767 let B = "__assets"
6868
6969 func C (D) = ("%s__votes__" + D)
7070
7171
7272 func E (F) = makeString([("%s%s" + F), "head"], a)
7373
7474
7575 func G (F) = makeString([("%s%s" + F), "size"], a)
7676
7777
7878 func H (F,I) = makeString([("%s%s%s" + F), I, "prev"], a)
7979
8080
8181 func J (F,I) = makeString([("%s%s%s" + F), I, "next"], a)
8282
8383
8484 func K (D,A) = makeString(["%s%d%s", "verifiedAt", toString(A), D], a)
8585
8686
8787 func L (D) = makeString(["%s%s", "verified", D], a)
8888
8989
9090 func M (D,A) = makeString(["%s%s%d", "eliminated", D, toString(A)], a)
9191
9292
9393 func N (D,A) = makeString(["%s%d%s", "votingResultAtAsset", toString(A), D], a)
9494
9595
9696 func O (P,Q,R) = makeString(["%d%d%s", toString(P), toString(Q), toString(R)], a)
9797
9898
9999 func S (T) = {
100100 let U = split(T, a)
101101 let V = 1
102102 let W = 2
103103 let X = 3
104104 let P = parseIntValue(U[V])
105105 let Q = parseIntValue(U[W])
106106 let R = if ((size(U) == 4))
107107 then (U[X] == "true")
108108 else false
109109 $Tuple3(P, Q, R)
110110 }
111111
112112
113113 func Y (Z,D,A) = makeString(["%s%d%s%s", "vru", toString(A), D, Z], a)
114114
115115
116116 func aa (ab,ac) = {
117117 let P = if (ac)
118118 then ab
119119 else 0
120120 let Q = if (ac)
121121 then 0
122122 else ab
123123 makeString(["%d%d", toString(P), toString(Q)], a)
124124 }
125125
126126
127127 func ad (T) = {
128128 let U = split(T, a)
129129 let V = 1
130130 let W = 2
131131 let P = parseIntValue(U[V])
132132 let Q = parseIntValue(U[W])
133133 let ac = if ((P > 0))
134134 then (Q == 0)
135135 else false
136136 let ae = if ((P == 0))
137137 then (Q > 0)
138138 else false
139139 let af = if (if (ac)
140140 then true
141141 else ae)
142142 then true
143143 else throw("Invalid user vote value")
144144 if ((af == af))
145145 then {
146146 let ab = if (ac)
147147 then P
148148 else Q
149149 $Tuple2(ab, ac)
150150 }
151151 else throw("Strict value is not equal to itself.")
152152 }
153153
154154
155155 func ag (ah,Z,D,ai,A) = makeString(["%s%s%s%s%s%d", "history", ah, D, Z, ai, toString(A)], a)
156156
157157
158158 func aj (ak) = if ((ak.caller == this))
159159 then true
160160 else throw("Permission denied")
161161
162162
163163 func al (am) = valueOrElse(getInteger(this, am), 0)
164164
165165
166166 func an (am) = valueOrErrorMessage(getInteger(this, am), (am + " is not defined"))
167167
168168
169169 func ao (am) = valueOrElse(getString(this, am), "")
170170
171171
172172 func ap (am) = valueOrErrorMessage(getString(this, am), (am + " is not defined"))
173173
174174
175175 let aq = an(i)
176176
177177 let ar = fromBase58String(ap(j))
178178
179179 let as = an(k)
180180
181181 let at = an(l)
182182
183183 let au = an(m)
184184
185185 let av = an(n)
186186
187187 let aw = an(o)
188188
189189 let ax = addressFromStringValue(ap(p))
190190
191191 let ay = addressFromStringValue(ap(q))
192192
193193 let az = addressFromStringValue(ap(r))
194194
195195 let aA = valueOrElse(getInteger(y), b)
196196
197197 let aB = (av + at)
198198
199199 func aC (Z,aD) = {
200200 let aE = invoke(ax, "getUserGwxAmountAtHeightREADONLY", [Z, aD], nil)
201201 c(aE)
202202 }
203203
204204
205205 func aF (D,ab,ac,A,R) = {
206206 let aG = N(D, A)
207207 let aH = {
208208 let e = getString(aG)
209209 if ($isInstanceOf(e, "String"))
210210 then {
211211 let aI = e
212212 S(aI)
213213 }
214214 else if ($isInstanceOf(e, "Unit"))
215215 then {
216216 let aJ = getString(N(D, (A - 1)))
217217 if ($isInstanceOf(aJ, "String"))
218218 then {
219219 let aI = aJ
220220 $Tuple3(0, 0, S(aI)._3)
221221 }
222222 else if ($isInstanceOf(aJ, "Unit"))
223223 then $Tuple3(0, 0, false)
224224 else throw("Match error")
225225 }
226226 else throw("Match error")
227227 }
228228 let aK = aH._1
229229 let aL = aH._2
230230 let aM = aH._3
231231 StringEntry(aG, O((aK + (if (ac)
232232 then ab
233233 else 0)), (aL + (if (ac)
234234 then 0
235235 else ab)), if ((R == unit))
236236 then aM
237237 else value(R)))
238238 }
239239
240240
241241 func aN (F,I) = {
242242 let aO = getString(this, E(F))
243243 let aP = getString(this, H(F, I))
244244 let aQ = getString(this, J(F, I))
245245 if (if ((I == aO))
246246 then true
247247 else (aP != unit))
248248 then true
249249 else (aQ != unit)
250250 }
251251
252252
253253 func aR (F,I) = {
254254 let aO = getString(this, E(F))
255255 let aS = valueOrElse(getInteger(this, G(F)), 0)
256256 let aT = if (!(aN(F, I)))
257257 then true
258258 else throw("Node exists")
259259 if ((aT == aT))
260260 then (([IntegerEntry(G(F), (aS + 1))] ++ (if (isDefined(aO))
261261 then [StringEntry(J(F, I), value(aO)), StringEntry(H(F, value(aO)), I)]
262262 else nil)) ++ [StringEntry(E(F), I)])
263263 else throw("Strict value is not equal to itself.")
264264 }
265265
266266
267267 func aU (F,I) = {
268268 let aO = getString(this, E(F))
269269 let aS = valueOrElse(getInteger(this, G(F)), 0)
270270 let aP = getString(this, H(F, I))
271271 let aQ = getString(this, J(F, I))
272272 ([IntegerEntry(G(F), (aS - 1))] ++ (if (if (isDefined(aP))
273273 then isDefined(aQ)
274274 else false)
275275 then [StringEntry(J(F, value(aP)), value(aQ)), StringEntry(H(F, value(aQ)), value(aP)), DeleteEntry(H(F, I)), DeleteEntry(J(F, I))]
276276 else if (isDefined(aQ))
277277 then [StringEntry(E(F), value(aQ)), DeleteEntry(J(F, I)), DeleteEntry(H(F, value(aQ)))]
278278 else if (isDefined(aP))
279279 then [DeleteEntry(H(F, I)), DeleteEntry(J(F, value(aP)))]
280280 else if ((I == aO))
281281 then [DeleteEntry(E(F))]
282282 else throw("Invalid node")))
283283 }
284284
285285
286286 func aV (D,aW,aX,aY,aZ) = {
287287 let ba = StringEntry(aX, D)
288288 let bb = DeleteEntry(aY)
289289 if ((aW == unit))
290290 then [ba, bb]
291291 else {
292292 let Z = value(aW)
293293 let bc = StringEntry(aY, Z)
294294 let bd = Y(Z, D, aw)
295295 let be = getString(bd)
296296 let bf = if ((be == unit))
297297 then {
298298 let bg = aC(Z, aB)
299299 if ((bg == 0))
300300 then [BooleanEntry(aZ, true)]
301301 else {
302302 let bh = (aw - 1)
303303 let bi = valueOrElse(getBoolean(M(D, bh)), false)
304304 let bj = if (bi)
305305 then unit
306306 else getString(Y(Z, D, bh))
307307 if ((bj == unit))
308308 then nil
309309 else {
310310 let bk = ad(value(bj))
311311 let bl = bk._1
312312 let ac = bk._2
313313 let ab = min([bl, bg])
314314 [StringEntry(bd, aa(ab, ac)), aF(D, ab, ac, aw, unit)]
315315 }
316316 }
317317 }
318318 else nil
319319 ((bf :+ ba) :+ bc)
320320 }
321321 }
322322
323323
324324 func bm (D,A) = !(valueOrElse(getBoolean(K(D, A)), true))
325325
326326
327327 func bn (D) = if (if (bm(D, (aw - 1)))
328328 then bm(D, (aw - 2))
329329 else false)
330330 then bm(D, (aw - 3))
331331 else false
332332
333333
334334 @Callable(ak)
335335 func constructor (bo,bp,bq,br,bs,bt,bu,bv,bw,bx) = {
336336 let by = [aj(ak), if (isDefined(addressFromString(bo)))
337337 then true
338338 else throw("Invalid boosting contract address"), if (isDefined(addressFromString(bp)))
339339 then true
340340 else throw("Invalid emission contract address"), if (isDefined(addressFromString(bq)))
341341 then true
342342 else throw("Invalid asset_store contract address"), if ((br >= 0))
343343 then true
344344 else throw("Invalid fee amount"), if (isDefined(assetInfo(fromBase58String(bs))))
345345 then true
346346 else throw("Invalid WX asset ID"), if ((bt >= 0))
347347 then true
348348 else throw("Invalid voting threshold"), if ((bu > 0))
349349 then true
350350 else throw("Invalid voting duration"), if (((bw + bu) > height))
351351 then true
352352 else throw("Invalid start height")]
353353 if ((by == by))
354354 then $Tuple2([StringEntry(p, bo), StringEntry(q, bp), StringEntry(r, bq), IntegerEntry(i, br), StringEntry(j, bs), IntegerEntry(k, bt), IntegerEntry(l, bu), IntegerEntry(m, bv), IntegerEntry(n, bw), IntegerEntry(o, 0), IntegerEntry(y, bx)], unit)
355355 else throw("Strict value is not equal to itself.")
356356 }
357357
358358
359359
360360 @Callable(ak)
361361 func suggest (D,bz) = {
362362 let bA = valueOrErrorMessage(assetInfo(fromBase58String(D)), "Invalid asset ID")
363- let bB = value(ak.payments[0])
364- let by = [if ((bA.issuer == ak.caller))
365- then true
366- else throw("Asset can only be suggested by its issuer"), if ((value(bB.assetId) == ar))
367- then true
368- else throw("Invalid fee asset"), if ((bB.amount == aq))
369- then true
370- else throw("Invalid fee amount")]
371- if ((by == by))
363+ if ((bA == bA))
372364 then {
373- let bC = invoke(az, "createOrUpdate", [D, bz, false], nil)
374- if ((bC == bC))
365+ let bB = value(ak.payments[0])
366+ let bC = (ak.caller == this)
367+ let by = [if (if (bC)
368+ then true
369+ else (bA.issuer == ak.caller))
370+ then true
371+ else throw("Asset can only be suggested by its issuer"), if (if (bC)
372+ then true
373+ else (value(bB.assetId) == ar))
374+ then true
375+ else throw("Invalid fee asset"), if (if (bC)
376+ then true
377+ else (bB.amount == aq))
378+ then true
379+ else throw("Invalid fee amount")]
380+ if ((by == by))
375381 then {
376- let bD = invoke(ay, "burn", nil, [AttachedPayment(bB.assetId, bB.amount)])
382+ let bD = invoke(az, "createOrUpdate", [D, bz, false], nil)
377383 if ((bD == bD))
378384 then {
379- let bE = aR(B, D)
380- let bF = (aw + 1)
381- let bG = if ((aB > height))
382- then aw
383- else bF
384- $Tuple2((bE :+ aF(D, 0, true, bG, false)), unit)
385+ let bE = if (bC)
386+ then unit
387+ else invoke(ay, "burn", nil, [AttachedPayment(bB.assetId, bB.amount)])
388+ if ((bE == bE))
389+ then {
390+ let bF = aR(B, D)
391+ let bG = (aw + 1)
392+ let bH = if ((aB > height))
393+ then aw
394+ else bG
395+ $Tuple2((bF :+ aF(D, 0, true, bH, false)), unit)
396+ }
397+ else throw("Strict value is not equal to itself.")
385398 }
386399 else throw("Strict value is not equal to itself.")
387400 }
388401 else throw("Strict value is not equal to itself.")
389402 }
390403 else throw("Strict value is not equal to itself.")
391404 }
392405
393406
394407
395408 @Callable(ak)
396409 func vote (D,ac) = {
397- let bH = if (aN(B, D))
410+ let bI = if (aN(B, D))
398411 then true
399412 else throw("Invalid asset")
400- if ((bH == bH))
413+ if ((bI == bI))
401414 then {
402- let bI = if ((aB > height))
415+ let bJ = if ((aB > height))
403416 then true
404417 else throw("Current voting is over but results are not finalized")
405- if ((bI == bI))
418+ if ((bJ == bJ))
406419 then {
407420 let Z = toString(ak.caller)
408- let bJ = aC(Z, aB)
409- let bK = if ((bJ > 0))
421+ let bK = aC(Z, aB)
422+ let bL = if ((bK > 0))
410423 then true
411424 else throw("You'll not have gWX at the end of voting")
412- if ((bK == bK))
425+ if ((bL == bL))
413426 then {
414- let bL = C(D)
427+ let bM = C(D)
415428 let bd = Y(Z, D, aw)
416429 let be = getString(bd)
417- let bM = if ((be == unit))
430+ let bN = if ((be == unit))
418431 then unit
419432 else invoke(this, "cancelVote", [D], nil)
420- if ((bM == bM))
433+ if ((bN == bN))
421434 then {
422- let bN = [StringEntry(bd, aa(bJ, ac)), StringEntry(ag("vote", Z, D, toBase58String(ak.transactionId), aw), aa(bJ, ac)), aF(D, bJ, ac, aw, unit)]
423- let bO = if (aN(bL, Z))
435+ let bO = [StringEntry(bd, aa(bK, ac)), StringEntry(ag("vote", Z, D, toBase58String(ak.transactionId), aw), aa(bK, ac)), aF(D, bK, ac, aw, unit)]
436+ let bP = if (aN(bM, Z))
424437 then nil
425- else aR(bL, Z)
426- $Tuple2((bO ++ bN), unit)
438+ else aR(bM, Z)
439+ $Tuple2((bP ++ bO), unit)
427440 }
428441 else throw("Strict value is not equal to itself.")
429442 }
430443 else throw("Strict value is not equal to itself.")
431444 }
432445 else throw("Strict value is not equal to itself.")
433446 }
434447 else throw("Strict value is not equal to itself.")
435448 }
436449
437450
438451
439452 @Callable(ak)
440453 func cancelVote (D) = {
441454 let Z = if ((ak.caller == this))
442455 then toString(ak.originCaller)
443456 else toString(ak.caller)
444- let bL = C(D)
457+ let bM = C(D)
445458 let bd = Y(Z, D, aw)
446459 let be = getString(bd)
447- let bP = ad(valueOrErrorMessage(be, "Nothing to cancel"))
448- let ab = bP._1
449- let ac = bP._2
450- let bO = aU(bL, Z)
451- let bN = [DeleteEntry(bd), StringEntry(ag("cancelVote", Z, D, toBase58String(ak.transactionId), aw), aa(0, true)), aF(D, -(ab), ac, aw, unit)]
452- $Tuple2((bO ++ bN), unit)
460+ let bQ = ad(valueOrErrorMessage(be, "Nothing to cancel"))
461+ let ab = bQ._1
462+ let ac = bQ._2
463+ let bP = aU(bM, Z)
464+ let bO = [DeleteEntry(bd), StringEntry(ag("cancelVote", Z, D, toBase58String(ak.transactionId), aw), aa(0, true)), aF(D, -(ab), ac, aw, unit)]
465+ $Tuple2((bP ++ bO), unit)
453466 }
454467
455468
456469
457470 @Callable(ak)
458471 func finalizeAssetINTERNAL (D,A) = {
459- let bQ = aj(ak)
460- if ((bQ == bQ))
472+ let bR = aj(ak)
473+ if ((bR == bR))
461474 then {
462475 let aG = N(D, A)
463- let bR = {
476+ let bS = {
464477 let e = getString(aG)
465478 if ($isInstanceOf(e, "String"))
466479 then {
467480 let aI = e
468- let bS = S(aI)
469- $Tuple2(bS._1, bS._2)
481+ let bT = S(aI)
482+ $Tuple2(bT._1, bT._2)
470483 }
471484 else if ($isInstanceOf(e, "Unit"))
472485 then $Tuple2(0, 0)
473486 else throw("Match error")
474487 }
475- let P = bR._1
476- let Q = bR._2
488+ let P = bS._1
489+ let Q = bS._2
477490 let ab = (P + Q)
478491 let R = if ((ab >= as))
479492 then (P > Q)
480493 else false
481- let bT = [BooleanEntry(K(D, A), R), if (R)
494+ let bU = [BooleanEntry(K(D, A), R), if (R)
482495 then BooleanEntry(L(D), true)
483496 else DeleteEntry(L(D))]
484- let bU = invoke(az, "setVerified", [D, R], nil)
485- if ((bU == bU))
497+ let bV = invoke(az, "setVerified", [D, R], nil)
498+ if ((bV == bV))
486499 then {
487- let bV = if (R)
500+ let bW = if (R)
488501 then false
489502 else bn(D)
490- let bW = if (bV)
503+ let bX = if (bW)
491504 then [BooleanEntry(M(D, aw), true)]
492505 else nil
493- let bX = if (bV)
506+ let bY = if (bW)
494507 then nil
495508 else [aF(D, 0, true, (aw + 1), R)]
496- let bO = if (bV)
509+ let bP = if (bW)
497510 then aU(B, D)
498511 else nil
499- let bY = if (bV)
512+ let bZ = if (bW)
500513 then invoke(az, "onEliminate", [D], nil)
501514 else unit
502- if ((bY == bY))
503- then $Tuple2(((bO ++ bX) ++ bT), unit)
515+ if ((bZ == bZ))
516+ then $Tuple2(((bP ++ bY) ++ bU), unit)
504517 else throw("Strict value is not equal to itself.")
505518 }
506519 else throw("Strict value is not equal to itself.")
507520 }
508521 else throw("Strict value is not equal to itself.")
509522 }
510523
511524
512525
513526 @Callable(ak)
514527 func deleteUserNodeINTERNAL (D,Z,aZ) = {
515- let bQ = aj(ak)
516- if ((bQ == bQ))
528+ let bR = aj(ak)
529+ if ((bR == bR))
517530 then $Tuple2((aU(C(D), Z) :+ DeleteEntry(aZ)), unit)
518531 else throw("Strict value is not equal to itself.")
519532 }
520533
521534
522535
523536 @Callable(ak)
524537 func finalizeVotingHelper () = if ((aB > height))
525538 then $Tuple2(nil, false)
526539 else {
527- let bZ = getString(s)
528- let ca = getString(t)
529- let cb = 0
530- let cc = $Tuple2([IntegerEntry(n, (height + cb)), IntegerEntry(o, (aw + 1)), DeleteEntry(s), DeleteEntry(t), DeleteEntry(v), DeleteEntry(w)], true)
531- if ((bZ == unit))
540+ let ca = getString(s)
541+ let cb = getString(t)
542+ let cc = 0
543+ let cd = $Tuple2([IntegerEntry(n, (height + cc)), IntegerEntry(o, (aw + 1)), DeleteEntry(s), DeleteEntry(t), DeleteEntry(v), DeleteEntry(w)], true)
544+ if ((ca == unit))
532545 then {
533- let cd = getString(E(B))
534- if ((cd == unit))
535- then cc
546+ let ce = getString(E(B))
547+ if ((ce == unit))
548+ then cd
536549 else {
537- let ce = value(cd)
538- let aW = getString(E(C(ce)))
539- let cf = aV(ce, aW, s, t, u)
540- $Tuple2(cf, true)
550+ let cf = value(ce)
551+ let aW = getString(E(C(cf)))
552+ let cg = aV(cf, aW, s, t, u)
553+ $Tuple2(cg, true)
541554 }
542555 }
543556 else {
544- let cg = value(bZ)
545- if ((ca == unit))
557+ let ch = value(ca)
558+ if ((cb == unit))
546559 then {
547- let ch = getString(J(B, cg))
548- if ((ch == ch))
560+ let ci = getString(J(B, ch))
561+ if ((ci == ci))
549562 then {
550- let ci = invoke(this, "finalizeAssetINTERNAL", [cg, aw], nil)
551- if ((ci == ci))
552- then if ((ch == unit))
553- then cc
563+ let cj = invoke(this, "finalizeAssetINTERNAL", [ch, aw], nil)
564+ if ((cj == cj))
565+ then if ((ci == unit))
566+ then cd
554567 else {
555- let ce = value(ch)
556- let aW = getString(E(C(ce)))
557- let cf = aV(ce, aW, s, t, u)
558- $Tuple2(cf, true)
568+ let cf = value(ci)
569+ let aW = getString(E(C(cf)))
570+ let cg = aV(cf, aW, s, t, u)
571+ $Tuple2(cg, true)
559572 }
560573 else throw("Strict value is not equal to itself.")
561574 }
562575 else throw("Strict value is not equal to itself.")
563576 }
564577 else {
565- let cj = value(ca)
566- let aW = getString(J(C(cg), cj))
578+ let ck = value(cb)
579+ let aW = getString(J(C(ch), ck))
567580 if ((aW == aW))
568581 then {
569- let ck = valueOrElse(getBoolean(u), false)
570- let cl = if (ck)
571- then invoke(this, "deleteUserNodeINTERNAL", [cg, cj, u], nil)
582+ let cl = valueOrElse(getBoolean(u), false)
583+ let cm = if (cl)
584+ then invoke(this, "deleteUserNodeINTERNAL", [ch, ck, u], nil)
572585 else unit
573- if ((cl == cl))
586+ if ((cm == cm))
574587 then {
575- let cf = aV(cg, aW, s, t, u)
576- $Tuple2(cf, true)
588+ let cg = aV(ch, aW, s, t, u)
589+ $Tuple2(cg, true)
577590 }
578591 else throw("Strict value is not equal to itself.")
579592 }
580593 else throw("Strict value is not equal to itself.")
581594 }
582595 }
583596 }
584597
585598
586599
587600 @Callable(ak)
588-func finalizeVotingWrapper (cm) = {
589- let cn = g(invoke(this, "finalizeVotingHelper", nil, nil))
590- if ((cn == cn))
591- then if (!(cn))
592- then if ((cm == 0))
601+func finalizeVotingWrapper (cn) = {
602+ let co = g(invoke(this, "finalizeVotingHelper", nil, nil))
603+ if ((co == co))
604+ then if (!(co))
605+ then if ((cn == 0))
593606 then throw("Current voting is not over yet")
594607 else $Tuple2(nil, unit)
595- else if ((aA > cm))
608+ else if ((aA > cn))
596609 then {
597- let co = invoke(this, "finalizeVotingWrapper", [(cm + 1)], nil)
598- if ((co == co))
610+ let cp = invoke(this, "finalizeVotingWrapper", [(cn + 1)], nil)
611+ if ((cp == cp))
599612 then $Tuple2(nil, unit)
600613 else throw("Strict value is not equal to itself.")
601614 }
602615 else $Tuple2(nil, unit)
603616 else throw("Strict value is not equal to itself.")
604617 }
605618
606619
607620
608621 @Callable(ak)
609622 func finalizeVoting () = {
610- let co = invoke(this, "finalizeVotingWrapper", [0], nil)
611- if ((co == co))
623+ let cp = invoke(this, "finalizeVotingWrapper", [0], nil)
624+ if ((cp == cp))
612625 then $Tuple2(nil, unit)
613626 else throw("Strict value is not equal to itself.")
614627 }
615628
616629
617630
618631 @Callable(ak)
619632 func transferVotesHelper () = {
620- let cp = z(aw)
621- let cq = valueOrElse(getBoolean(cp), false)
633+ let cq = z(aw)
634+ let cr = valueOrElse(getBoolean(cq), false)
622635 if (if (if ((av > height))
623636 then true
624637 else (height >= aB))
625638 then true
626- else cq)
639+ else cr)
627640 then $Tuple2(nil, false)
628641 else {
629- let bZ = getString(v)
630- let ca = getString(w)
631- let cc = $Tuple2([BooleanEntry(cp, true), DeleteEntry(v), DeleteEntry(w)], true)
632- if ((bZ == unit))
642+ let ca = getString(v)
643+ let cb = getString(w)
644+ let cd = $Tuple2([BooleanEntry(cq, true), DeleteEntry(v), DeleteEntry(w)], true)
645+ if ((ca == unit))
633646 then {
634- let cd = getString(E(B))
635- if ((cd == unit))
636- then cc
647+ let ce = getString(E(B))
648+ if ((ce == unit))
649+ then cd
637650 else {
638- let ce = value(cd)
639- let aW = getString(E(C(ce)))
640- let cf = aV(ce, aW, v, w, x)
641- $Tuple2(cf, true)
651+ let cf = value(ce)
652+ let aW = getString(E(C(cf)))
653+ let cg = aV(cf, aW, v, w, x)
654+ $Tuple2(cg, true)
642655 }
643656 }
644657 else {
645- let cg = value(bZ)
646- if ((ca == unit))
658+ let ch = value(ca)
659+ if ((cb == unit))
647660 then {
648- let ch = getString(J(B, cg))
649- if ((ch == unit))
650- then cc
661+ let ci = getString(J(B, ch))
662+ if ((ci == unit))
663+ then cd
651664 else {
652- let ce = value(ch)
653- let aW = getString(E(C(ce)))
654- let cf = aV(ce, aW, v, w, x)
655- $Tuple2(cf, true)
665+ let cf = value(ci)
666+ let aW = getString(E(C(cf)))
667+ let cg = aV(cf, aW, v, w, x)
668+ $Tuple2(cg, true)
656669 }
657670 }
658671 else {
659- let cj = value(ca)
660- let aW = getString(J(C(cg), cj))
672+ let ck = value(cb)
673+ let aW = getString(J(C(ch), ck))
661674 if ((aW == aW))
662675 then {
663- let ck = valueOrElse(getBoolean(x), false)
664- let cl = if (ck)
665- then invoke(this, "deleteUserNodeINTERNAL", [cg, cj, x], nil)
676+ let cl = valueOrElse(getBoolean(x), false)
677+ let cm = if (cl)
678+ then invoke(this, "deleteUserNodeINTERNAL", [ch, ck, x], nil)
666679 else unit
667- if ((cl == cl))
680+ if ((cm == cm))
668681 then {
669- let cf = aV(cg, aW, v, w, x)
670- $Tuple2(cf, true)
682+ let cg = aV(ch, aW, v, w, x)
683+ $Tuple2(cg, true)
671684 }
672685 else throw("Strict value is not equal to itself.")
673686 }
674687 else throw("Strict value is not equal to itself.")
675688 }
676689 }
677690 }
678691 }
679692
680693
681694
682695 @Callable(ak)
683-func transferVotesWrapper (cm) = {
684- let cn = g(invoke(this, "transferVotesHelper", nil, nil))
685- if ((cn == cn))
686- then if (!(cn))
687- then if ((cm == 0))
696+func transferVotesWrapper (cn) = {
697+ let co = g(invoke(this, "transferVotesHelper", nil, nil))
698+ if ((co == co))
699+ then if (!(co))
700+ then if ((cn == 0))
688701 then throw("Voting is not started yet")
689702 else $Tuple2(nil, unit)
690- else if ((aA > cm))
703+ else if ((aA > cn))
691704 then {
692- let co = invoke(this, "transferVotesWrapper", [(cm + 1)], nil)
693- if ((co == co))
705+ let cp = invoke(this, "transferVotesWrapper", [(cn + 1)], nil)
706+ if ((cp == cp))
694707 then $Tuple2(nil, unit)
695708 else throw("Strict value is not equal to itself.")
696709 }
697710 else $Tuple2(nil, unit)
698711 else throw("Strict value is not equal to itself.")
699712 }
700713
701714
702715
703716 @Callable(ak)
704717 func transferVotes () = {
705- let co = invoke(this, "transferVotesWrapper", [0], nil)
706- if ((co == co))
718+ let cp = invoke(this, "transferVotesWrapper", [0], nil)
719+ if ((cp == cp))
707720 then $Tuple2(nil, unit)
708721 else throw("Strict value is not equal to itself.")
709722 }
710723
711724
712725
713726 @Callable(ak)
714-func setVotingThreshold (cr) = {
715- let bQ = aj(ak)
716- if ((bQ == bQ))
717- then $Tuple2([IntegerEntry(k, cr)], unit)
727+func setVotingThreshold (cs) = {
728+ let bR = aj(ak)
729+ if ((bR == bR))
730+ then $Tuple2([IntegerEntry(k, cs)], unit)
718731 else throw("Strict value is not equal to itself.")
719732 }
720733
721734
722735
723736 @Callable(ak)
724-func setFee (cs) = {
725- let bQ = aj(ak)
726- if ((bQ == bQ))
727- then $Tuple2([IntegerEntry(i, cs)], unit)
737+func setFee (ct) = {
738+ let bR = aj(ak)
739+ if ((bR == bR))
740+ then $Tuple2([IntegerEntry(i, ct)], unit)
728741 else throw("Strict value is not equal to itself.")
729742 }
730743
731744
732745
733746 @Callable(ak)
734747 func gwxAvailableForVoteREADONLY (Z) = {
735- let bJ = aC(Z, aB)
736- $Tuple2(nil, bJ)
748+ let bK = aC(Z, aB)
749+ $Tuple2(nil, bK)
737750 }
738751
739752

github/deemru/w8io/169f3d6 
138.45 ms