tx · 6dE1gqpaf9zpKivoEwrQki2CfnyWWU8EdDSXpQKEPL6m

3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J:  -0.01400000 Waves

2022.03.25 16:23 [1979511] smart account 3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J > SELF 0.00000000 Waves

{ "type": 13, "id": "6dE1gqpaf9zpKivoEwrQki2CfnyWWU8EdDSXpQKEPL6m", "fee": 1400000, "feeAssetId": null, "timestamp": 1648214625330, "version": 1, "sender": "3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J", "senderPublicKey": "4DthuG3xjZV9WtZ34Y66AummdAr67wRzwWsVQL4y2bob", "proofs": [ "4z5Wmt9nw26tPWpnnurHr26pX1azd8n46XhdzXskZCER2SkQ5FL2cURdDotLZ6JDddkdCj79brxr4TwUSWwVsaL9" ], "script": "base64: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ABhmb3JtYXRDbGFpbUhpc3RvcnlSZWNvcmQAAAACCQAEJQAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAA5jbGFpbWVkUmV3YXJkcwEAAAALU3RhdHNSZXN1bHQAAAADAAAADnRvdGFsTG9ja2VkSW5jAAAADGxvY2tDb3VudEluYwAAAA11c2Vyc0NvdW50SW5jBAAAAApsb2Nrc0NvdW50CQEAAAAMZ2V0SW50T3JaZXJvAAAAAQkBAAAAEmtleVN0YXRzTG9ja3NDb3VudAAAAAAEAAAACnVzZXJzQ291bnQJAQAAAAxnZXRJbnRPclplcm8AAAABCQEAAAASa2V5U3RhdHNVc2Vyc0NvdW50AAAAAAQAAAALdG90YWxBbW91bnQJAQAAAAxnZXRJbnRPclplcm8AAAABCQEAAAAXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAAABAAAAA50b3RhbEFtb3VudE5ldwkAAGQAAAACBQAAAAt0b3RhbEFtb3VudAUAAAAOdG90YWxMb2NrZWRJbmMJAAUVAAAAAwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEmtleVN0YXRzTG9ja3NDb3VudAAAAAAJAABkAAAAAgUAAAAKbG9ja3NDb3VudAUAAAAMbG9ja0NvdW50SW5jCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAASa2V5U3RhdHNVc2Vyc0NvdW50AAAAAAkAAGQAAAACBQAAAAp1c2Vyc0NvdW50BQAAAA11c2Vyc0NvdW50SW5jCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAAABQAAAA50b3RhbEFtb3VudE5ldwUAAAADbmlsBQAAAAt0b3RhbEFtb3VudAUAAAAOdG90YWxBbW91bnROZXcBAAAAD0xvY2tQYXJhbXNFbnRyeQAAAAMAAAALdXNlckFkZHJlc3MAAAAGYW1vdW50AAAABXN0YXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZrZXlMb2NrUGFyYW1TdGFydEJsb2NrAAAAAQUAAAALdXNlckFkZHJlc3MFAAAABXN0YXJ0BQAAAANuaWwBAAAAD2dldFBhcmFtc09yRmFpbAAAAAAEAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAAaa2V5TmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAAAACQAFFgAAAAQJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAGWtleUF1Y3Rpb25Db250cmFjdEFkZHJlc3MAAAAACQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAAxrZXlCb25kQXNzZXQAAAAACQEAAAAMZ2V0SW50T3JGYWlsAAAAAQkBAAAAEGtleU1pbkxvY2tBbW91bnQAAAAACQEAAAAMZ2V0SW50T3JGYWlsAAAAAQkBAAAAC2tleUhhbGZMaWZlAAAAAAEAAAAMaXNBY3RpdmVVc2VyAAAAAQAAAAt1c2VyQWRkcmVzcwkAAGYAAAACCQEAAAAMZ2V0SW50T3JFbHNlAAAAAgkBAAAAFmtleUxvY2tQYXJhbVVzZXJBbW91bnQAAAABBQAAAAt1c2VyQWRkcmVzcwAAAAAAAAAAAAAAAAAAAAAAAAEAAAATZ2V0VXNlclBhcmFtc09yVW5pdAAAAAEAAAALdXNlckFkZHJlc3MDCQEAAAAMaXNBY3RpdmVVc2VyAAAAAQUAAAALdXNlckFkZHJlc3MJAAUVAAAAAwcJAQAAAAxnZXRJbnRPckZhaWwAAAABCQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAAC3VzZXJBZGRyZXNzCQEAAAAMZ2V0SW50T3JGYWlsAAAAAQkBAAAAFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2sAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAEdW5pdAEAAAATZ2V0VXNlclBhcmFtc09yRmFpbAAAAAEAAAALdXNlckFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkBAAAAE2dldFVzZXJQYXJhbXNPclVuaXQAAAABBQAAAAt1c2VyQWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAABVVzZXIgCQAEJQAAAAEFAAAAC3VzZXJBZGRyZXNzAgAAAA8gaXMgbm90IGRlZmluZWQAAAAAEnN1cHBvcnRlZEFzc2V0c1N0cgkBAAAADGdldFN0ck9yRWxzZQAAAAIJAQAAABhrZXlTdXBwb3J0ZWRSZXdhcmRBc3NldHMAAAAAAgAAAAAAAAAAE3N1cHBvcnRlZEFzc2V0c0xpc3QJAAS1AAAAAgUAAAASc3VwcG9ydGVkQXNzZXRzU3RyAgAAAAFfAQAAAApjYWxjUmV3YXJkAAAABQAAAAt1c2VyQWRkcmVzcwAAAAdhc3NldElkAAAADXN0YWtlZEFtb3VudFgAAAAOZGVwb3NpdE51bVVzZXIAAAAOZGVwb3NpdE51bUxhc3QEAAAAF3Jld2FyZFBlck5zYnRTdW1MYXN0S0VZCQEAAAAVa2V5UmV3YXJkUGVyTnNidFN1bUF0AAAAAgUAAAAOZGVwb3NpdE51bUxhc3QFAAAAB2Fzc2V0SWQEAAAACnN1bUxhc3RYMTgJAAGnAAAAAQkBAAAADGdldFN0ck9yRWxzZQAAAAIJAQAAABVrZXlSZXdhcmRQZXJOc2J0U3VtQXQAAAACBQAAAA5kZXBvc2l0TnVtTGFzdAUAAAAHYXNzZXRJZAIAAAABMAQAAAAKc3VtVXNlclgxOAkAAacAAAABCQEAAAAMZ2V0U3RyT3JFbHNlAAAAAgkBAAAAFWtleVJld2FyZFBlck5zYnRTdW1BdAAAAAIFAAAADmRlcG9zaXROdW1Vc2VyBQAAAAdhc3NldElkAgAAAAEwBAAAABFyZXdhcmREeW5hbWljUGFydAkAAaAAAAABCQABPAAAAAMJAAE4AAAAAgUAAAAKc3VtTGFzdFgxOAUAAAAKc3VtVXNlclgxOAUAAAANc3Rha2VkQW1vdW50WAUAAAAHTVVMVFgxOAQAAAATcmV3YXJkQ2FjaGVkUGFydEtFWQkBAAAACWtleVJld2FyZAAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAAdhc3NldElkBAAAABByZXdhcmRDYWNoZWRQYXJ0CQEAAAAMZ2V0SW50T3JFbHNlAAAAAgUAAAATcmV3YXJkQ2FjaGVkUGFydEtFWQAAAAAAAAAAAAkABRYAAAAECQAAZAAAAAIFAAAAEHJld2FyZENhY2hlZFBhcnQFAAAAEXJld2FyZER5bmFtaWNQYXJ0BQAAABByZXdhcmRDYWNoZWRQYXJ0BQAAABFyZXdhcmREeW5hbWljUGFydAUAAAATcmV3YXJkQ2FjaGVkUGFydEtFWQEAAAANUmV3YXJkRW50cmllcwAAAAMAAAAJaXNOZXdVc2VyAAAAC3VzZXJBZGRyZXNzAAAADHN0YWtlZEFtb3VudAQAAAANc3Rha2VkQW1vdW50WAkAATYAAAABBQAAAAxzdGFrZWRBbW91bnQEAAAAG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQkBAAAAG2tleVVzZXJSZXdhcmRGcm9tRGVwb3NpdE51bQAAAAEFAAAAC3VzZXJBZGRyZXNzBAAAAA5kZXBvc2l0TnVtVXNlcgkBAAAADGdldEludE9yRWxzZQAAAAIFAAAAG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQD//////////wQAAAAOZGVwb3NpdE51bUxhc3QJAQAAAAxnZXRJbnRPckVsc2UAAAACCQEAAAARa2V5RGVwb3NpdE51bUxhc3QAAAAAAP//////////CgEAAAAbZm9yRWFjaEFzc2V0Q2FjaGVVc2VyUmV3YXJkAAAAAgAAAAVhY2N1bQAAAAVhc3NldAQAAAALJHQwNzM2MTc0OTYJAQAAAApjYWxjUmV3YXJkAAAABQUAAAALdXNlckFkZHJlc3MFAAAABWFzc2V0BQAAAA1zdGFrZWRBbW91bnRYBQAAAA5kZXBvc2l0TnVtVXNlcgUAAAAOZGVwb3NpdE51bUxhc3QEAAAAC3Jld2FyZFRvdGFsCAUAAAALJHQwNzM2MTc0OTYAAAACXzEEAAAABmNhY2hlZAgFAAAACyR0MDczNjE3NDk2AAAAAl8yBAAAAAdkeW5hbWljCAUAAAALJHQwNzM2MTc0OTYAAAACXzMEAAAAE3Jld2FyZENhY2hlZFBhcnRLRVkIBQAAAAskdDA3MzYxNzQ5NgAAAAJfNAkABE0AAAACBQAAAAVhY2N1bQkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE3Jld2FyZENhY2hlZFBhcnRLRVkFAAAAC3Jld2FyZFRvdGFsAwMJAAAAAAAAAgUAAAAOZGVwb3NpdE51bUxhc3QA//////////8JAAAAAAAAAgUAAAAOZGVwb3NpdE51bVVzZXIA//////////8HBQAAAANuaWwDAwkAAAAAAAACBQAAAA5kZXBvc2l0TnVtTGFzdAD//////////wkAAGYAAAACBQAAAA5kZXBvc2l0TnVtVXNlcgD//////////wcJAAACAAAAAQIAAAAvaW52YWxpZCBkZXBvc2l0TnVtTGFzdCBhbmQgZGVwb3NpdE51bVVzZXIgc3RhdGUDAwkAAGYAAAACBQAAAA5kZXBvc2l0TnVtTGFzdAD//////////wkAAAAAAAACBQAAAA5kZXBvc2l0TnVtVXNlcgD//////////wcDBQAAAAlpc05ld1VzZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQUAAAAOZGVwb3NpdE51bUxhc3QFAAAAA25pbAkABE0AAAACCgAAAAACJGwFAAAAE3N1cHBvcnRlZEFzc2V0c0xpc3QKAAAAAAIkcwkAAZAAAAABBQAAAAIkbAoAAAAABSRhY2MwBQAAAANuaWwKAQAAAAUkZjBfMQAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAQAAABtmb3JFYWNoQXNzZXRDYWNoZVVzZXJSZXdhcmQAAAACBQAAAAIkYQkAAZEAAAACBQAAAAIkbAUAAAACJGkKAQAAAAUkZjBfMgAAAAIAAAACJGEAAAACJGkDCQAAZwAAAAIFAAAAAiRpBQAAAAIkcwUAAAACJGEJAAACAAAAAQIAAAAUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQAAAAUkZjBfMgAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIJAQAAAAUkZjBfMQAAAAIFAAAABSRhY2MwAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAACAAAAAAAAAAADAAAAAAAAAAAEAAAAAAAAAAAFAAAAAAAAAAAGAAAAAAAAAAAHAAAAAAAAAAAIAAAAAAAAAAAJAAAAAAAAAAAKCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAbdXNlclJld2FyZEZyb21EZXBvc2l0TnVtS0VZBQAAAA5kZXBvc2l0TnVtTGFzdAMDCQAAZgAAAAIFAAAADmRlcG9zaXROdW1MYXN0AP//////////CQAAZgAAAAIFAAAADmRlcG9zaXROdW1Vc2VyAP//////////BwMFAAAACWlzTmV3VXNlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAbdXNlclJld2FyZEZyb21EZXBvc2l0TnVtS0VZBQAAAA5kZXBvc2l0TnVtTGFzdAUAAAADbmlsCQAETQAAAAIKAAAAAAIkbAUAAAATc3VwcG9ydGVkQXNzZXRzTGlzdAoAAAAAAiRzCQABkAAAAAEFAAAAAiRsCgAAAAAFJGFjYzAFAAAAA25pbAoBAAAABSRmMF8xAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkBAAAAG2ZvckVhY2hBc3NldENhY2hlVXNlclJld2FyZAAAAAIFAAAAAiRhCQABkQAAAAIFAAAAAiRsBQAAAAIkaQoBAAAABSRmMF8yAAAAAgAAAAIkYQAAAAIkaQMJAABnAAAAAgUAAAACJGkFAAAAAiRzBQAAAAIkYQkAAAIAAAABAgAAABRMaXN0IHNpemUgZXhjZWVkcyAxMAkBAAAABSRmMF8yAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABt1c2VyUmV3YXJkRnJvbURlcG9zaXROdW1LRVkFAAAADmRlcG9zaXROdW1MYXN0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJHVuY292ZXJlZCBjb25kaXRpb246IGRlcG9zaXROdW1MYXN0PQkAAaQAAAABBQAAAA5kZXBvc2l0TnVtTGFzdAIAAAAQIGRlcG9zaXROdW1Vc2VyPQkAAaQAAAABBQAAAA5kZXBvc2l0TnVtVXNlcgEAAAAiSW5jcmVtZW50Tm90RGlzdHJpYnV0ZWRSZXdhcmRFbnRyeQAAAAIAAAADdGtuAAAACWFtb3VudEluYwQAAAAXbm90RGlzdHJpYnV0ZWRSZXdhcmRLRVkJAQAAABdrZXlOb3REaXN0cmlidXRlZFJld2FyZAAAAAEFAAAAA3RrbgQAAAAUbm90RGlzdHJpYnV0ZWRSZXdhcmQJAQAAAAxnZXRJbnRPckVsc2UAAAACBQAAABdub3REaXN0cmlidXRlZFJld2FyZEtFWQAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAXbm90RGlzdHJpYnV0ZWRSZXdhcmRLRVkJAABkAAAAAgUAAAAUbm90RGlzdHJpYnV0ZWRSZXdhcmQFAAAACWFtb3VudEluYwUAAAADbmlsAAAABwAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAUAAAAXbmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAAATbWF0aENvbnRyYWN0QWRkcmVzcwAAAA1taW5Mb2NrQW1vdW50AAAACGhhbGZMaWZlAAAAFXN1cHBvcnRlZFJld2FyZEFzc2V0cwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABFQZXJtaXNzaW9uIGRlbmllZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAaa2V5TmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAAAABQAAABduZXV0cmlub0NvbnRyYWN0QWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAWa2V5TWF0aENvbnRyYWN0QWRkcmVzcwAAAAAFAAAAE21hdGhDb250cmFjdEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABBrZXlNaW5Mb2NrQW1vdW50AAAAAAUAAAANbWluTG9ja0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAC2tleUhhbGZMaWZlAAAAAAUAAAAIaGFsZkxpZmUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGGtleVN1cHBvcnRlZFJld2FyZEFzc2V0cwAAAAAFAAAAFXN1cHBvcnRlZFJld2FyZEFzc2V0cwUAAAADbmlsAAAAAWkBAAAABXN0YWtlAAAAAAQAAAANJHQwMTExNTAxMTIyOQkBAAAAD2dldFBhcmFtc09yRmFpbAAAAAAEAAAAD2F1Y3Rpb25Db250cmFjdAgFAAAADSR0MDExMTUwMTEyMjkAAAACXzEEAAAAC2JvbmRBc3NldElkCAUAAAANJHQwMTExNTAxMTIyOQAAAAJfMgQAAAANbWluTG9ja0Ftb3VudAgFAAAADSR0MDExMTUwMTEyMjkAAAACXzMEAAAACGhhbGZMaWZlCAUAAAANJHQwMTExNTAxMTIyOQAAAAJfNAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAVSW52YWxpZCBwYXltZW50cyBzaXplBAAAAAdwYXltZW50CQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAATaW52YWxpZEFzc2V0TWVzc2FnZQkAASwAAAACCQABLAAAAAICAAAAD0ludmFsaWQgYXNzZXQuIAkAAlgAAAABBQAAAAtib25kQXNzZXRJZAIAAAAMIGlzIGV4cGVjdGVkBAAAAAdhc3NldElkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAE2ludmFsaWRBc3NldE1lc3NhZ2UDCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAAtib25kQXNzZXRJZAkAAAIAAAABBQAAABNpbnZhbGlkQXNzZXRNZXNzYWdlBAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADSR0MDExNzcxMTE4NzgJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABNnZXRVc2VyUGFyYW1zT3JVbml0AAAAAQUAAAALdXNlckFkZHJlc3MJAAUVAAAAAwYAAAAAAAAAAAAA//////////8EAAAACWlzTmV3VXNlcggFAAAADSR0MDExNzcxMTE4NzgAAAACXzEEAAAACmxvY2tBbW91bnQIBQAAAA0kdDAxMTc3MTExODc4AAAAAl8yBAAAAA9sb2NrU3RhcnRIZWlnaHQIBQAAAA0kdDAxMTc3MTExODc4AAAAAl8zBAAAAAxtZXJnZWRBbW91bnQDBQAAAAlpc05ld1VzZXIFAAAABmFtb3VudAkAAGQAAAACBQAAAAZhbW91bnQFAAAACmxvY2tBbW91bnQEAAAAEW1lcmdlZFN0YXJ0SGVpZ2h0AwUAAAAJaXNOZXdVc2VyBQAAAAZoZWlnaHQEAAAADG1hdGhDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAABZrZXlNYXRoQ29udHJhY3RBZGRyZXNzAAAAAAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAAxtYXRoQ29udHJhY3QCAAAAE21lcmdlU3Rha2VzUkVBRE9OTFkJAARMAAAAAgUAAAAGYW1vdW50CQAETAAAAAIFAAAABmhlaWdodAkABEwAAAACBQAAAApsb2NrQW1vdW50CQAETAAAAAIFAAAAD2xvY2tTdGFydEhlaWdodAkABEwAAAACBQAAAAhoYWxmTGlmZQUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIFAAAADW1pbkxvY2tBbW91bnQFAAAADG1lcmdlZEFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAE01pbiBsb2NrIGFtb3VudCBpcyAJAAGkAAAAAQUAAAANbWluTG9ja0Ftb3VudAQAAAANJHQwMTIzMjgxMjQzMAkBAAAAC1N0YXRzUmVzdWx0AAAAAwUAAAAGYW1vdW50AAAAAAAAAAABAwUAAAAJaXNOZXdVc2VyAAAAAAAAAAABAAAAAAAAAAAABAAAAAxzdGF0c0VudHJpZXMIBQAAAA0kdDAxMjMyODEyNDMwAAAAAl8xBAAAAAt0b3RhbFN0YWtlZAgFAAAADSR0MDEyMzI4MTI0MzAAAAACXzIEAAAADnRvdGFsU3Rha2VkTmV3CAUAAAANJHQwMTIzMjgxMjQzMAAAAAJfMwkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABEwAAAACCQEAAAASSGlzdG9yeVJlY29yZEVudHJ5AAAABwIAAAAFc3Rha2UFAAAAC3VzZXJBZGRyZXNzCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAApsb2NrQW1vdW50BQAAAA9sb2NrU3RhcnRIZWlnaHQFAAAADG1lcmdlZEFtb3VudAUAAAARbWVyZ2VkU3RhcnRIZWlnaHQFAAAAA25pbAkBAAAADVJld2FyZEVudHJpZXMAAAADBQAAAAlpc05ld1VzZXIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAApsb2NrQW1vdW50CQEAAAAPTG9ja1BhcmFtc0VudHJ5AAAAAwUAAAALdXNlckFkZHJlc3MFAAAADG1lcmdlZEFtb3VudAUAAAARbWVyZ2VkU3RhcnRIZWlnaHQFAAAADHN0YXRzRW50cmllcwAAAAFpAQAAAAd1bnN0YWtlAAAAAQAAAAZhbW91bnQDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAI3Vuc3Rha2UgZG9lc24ndCByZXF1aXJlIGFueSBwYXltZW50BAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABBQAAAAt1c2VyQWRkcmVzcwQAAAANJHQwMTI5MTYxMjk5NAkBAAAAD2dldFBhcmFtc09yRmFpbAAAAAAEAAAADmF1Y3Rpb25BZGRyZXNzCAUAAAANJHQwMTI5MTYxMjk5NAAAAAJfMQQAAAALYm9uZEFzc2V0SWQIBQAAAA0kdDAxMjkxNjEyOTk0AAAAAl8yBAAA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AApwbXRBc3NldElkCQEAAAALdmFsdWVPckVsc2UAAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAB1dBVkVTSUQEAAAADXBtdEFzc2V0SWRTdHIJAAJYAAAAAQUAAAAKcG10QXNzZXRJZAQAAAAIcG10TXVsdFgDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAAB1dBVkVTSUQFAAAABk1VTFRYOAUAAAAGTVVMVFg2BAAAAAdhbW91bnRYCQABNgAAAAEFAAAABmFtb3VudAQAAAALdG90YWxTdGFrZWQJAQAAAAxnZXRJbnRPckVsc2UAAAACCQEAAAAXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAAAAAAAAAAAAAAABAAAAAx0b3RhbFN0YWtlZFgJAAE2AAAAAQUAAAALdG90YWxTdGFrZWQDCQAAZgAAAAIAAAAAAAAAAAAFAAAAC3RvdGFsU3Rha2VkCQAAAgAAAAECAAAAG1RPRE86IGNhc2UgaXMgbm90IHN1cHBvcnRlZAMJAAAAAAAAAgUAAAALdG90YWxTdGFrZWQAAAAAAAAAAAAJAQAAACJJbmNyZW1lbnROb3REaXN0cmlidXRlZFJld2FyZEVudHJ5AAAAAgUAAAANcG10QXNzZXRJZFN0cgUAAAAGYW1vdW50BAAAABByZXdhcmRQZXJOc2J0WDE4CQABPAAAAAMFAAAAB2Ftb3VudFgFAAAAB01VTFRYMTgFAAAADHRvdGFsU3Rha2VkWAQAAAARZGVwb3NpdE51bUxhc3RLRVkJAQAAABFrZXlEZXBvc2l0TnVtTGFzdAAAAAAEAAAADmRlcG9zaXROdW1MYXN0CQEAAAAMZ2V0SW50T3JFbHNlAAAAAgUAAAARZGVwb3NpdE51bUxhc3RLRVkA//////////8EAAAADWRlcG9zaXROdW1OZXcJAABkAAAAAgUAAAAOZGVwb3NpdE51bUxhc3QAAAAAAAAAAAEDCQEAAAABIQAAAAEJAQAAAAhjb250YWlucwAAAAIFAAAAEnN1cHBvcnRlZEFzc2V0c1N0cgUAAAANcG10QXNzZXRJZFN0cgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgUAAAASc3VwcG9ydGVkQXNzZXRzU3RyAgAAABEgZG9lc24ndCBjb250YWluIAUAAAAN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EWtleURlcG9zaXROdW1MYXN0AAAAAAD//////////woBAAAAH2ZvckVhY2hBc3NldENhbGNVbmNsYWltZWRSZXdhcmQAAAACAAAABWFjY3VtAAAABWFzc2V0BAAAAA0kdDAxNjM1ODE2NDk2CQEAAAAKY2FsY1Jld2FyZAAAAAUFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAVhc3NldAUAAAANc3Rha2VkQW1vdW50WAUAAAAOZGVwb3NpdE51bVVzZXIFAAAADmRlcG9zaXROdW1MYXN0BAAAAAtyZXdhcmRUb3RhbAgFAAAADSR0MDE2MzU4MTY0OTYAAAACXzEEAAAABmNhY2hlZAgFAAAADSR0MDE2MzU4MTY0OTYAAAACXzIEAAAAB2R5bmFtaWMIBQAAAA0kdDAxNjM1ODE2NDk2AAAAAl8zBAAAABNyZXdhcmRDYWNoZWRQYXJ0S0VZCAUAAAANJHQwMTYzNTgxNjQ5NgAAAAJfNAQAAAAKY2xhaW1lZEtFWQkBAAAACmtleUNsYWltZWQAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAFYXNzZXQEAAAADSR0MDE2NTU2MTY1OTMFAAAABWFjY3VtBAAAAARkYXRhCAUAAAANJHQwMTY1NTYxNjU5MwAAAAJfMQQAAAARY2xhaW1lZEFtdEJ5QXNzZXQIBQAAAA0kdDAxNjU1NjE2NTkzAAAAAl8yBAAAAAduZXdQYXJ0CQAEuQAAAAIJAARMAAAAAgUAAAAFYXNzZXQJAARMAAAAAgkAAaQAAAABBQAAAAtyZXdhcmRUb3RhbAUAAAADbmlsAgAAAAE6BAAAABRjbGFpbWVkQW10QnlBc3NldE5ldwkABLkAAAACCQAETAAAAAIFAAAAEWNsYWltZWRBbXRCeUFzc2V0CQAETAAAAAIFAAAAB25ld1BhcnQFAAAAA25pbAIAAAABXwMJAABnAAAAAgAAAAAAAAAAAAUAAAALcmV3YXJkVG90YWwJAAUUAAAAAgUAAAAEZGF0YQUAAAAUY2xhaW1lZEFtdEJ5QXNzZXROZXcJAAUUAAAAAgkABE0AAAACCQAETQAAAAIJAARNAAAAAgUAAAAEZGF0YQkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAAC3Jld2FyZFRv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", "chainId": 84, "height": 1979511, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Fz8XGheAiqPy5iQSzyAZibArWH7mqsxfC91NZ4Xy29vc Next: 5WiKyA1KQfvsWUt4BFKaDJfAKLpeyhebAVsEceEqi5FU Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "__"
4+let a = ""
55
6-let b = 1000000
6+let b = "__"
77
8-let c = 100000000
8+let c = 1000000
99
10-let d = toBigInt(b)
10+let d = 100000000
1111
1212 let e = toBigInt(c)
1313
14-let f = toBigInt(1000000000000000000)
14+let f = toBigInt(d)
1515
16-let g = "WAVES"
16+let g = toBigInt(1000000000000000000)
1717
18-let h = fromBase58String(g)
18+let h = "WAVES"
1919
20-func i () = "bond_asset_id"
20+let i = fromBase58String(h)
21+
22+func j () = "bond_asset_id"
2123
2224
23-func j () = "auction_contract"
25+func k () = "auction_contract"
2426
2527
26-func k () = "%s__neutrinoContractAddress"
28+func l () = "%s__neutrinoContractAddress"
2729
2830
29-func l () = "%s__mathContract"
31+func m () = "%s__mathContract"
3032
3133
32-func m () = "%s__minLockAmount"
34+func n () = "%s__minLockAmount"
3335
3436
35-func n () = "%s__halfLife"
37+func o () = "%s__halfLife"
3638
3739
38-func o (p) = makeString(["%s%s%s", "paramByUser", toString(p), "amount"], a)
40+func p (q) = makeString(["%s%s%s", "paramByUser", toString(q), "amount"], b)
3941
4042
41-func q (p) = makeString(["%s%s%s", "paramByUser", toString(p), "start"], a)
43+func r (q) = makeString(["%s%s%s", "paramByUser", toString(q), "start"], b)
4244
4345
44-func r (s,p,t) = makeString(["%s%s%s%s", "history", s, toString(p), toBase58String(t)], a)
46+func s (t,q,u) = makeString(["%s%s%s%s", "history", t, toString(q), toBase58String(u)], b)
4547
4648
47-func u () = makeString(["%s%s", "stats", "activeTotalLocked"], a)
49+func v () = makeString(["%s%s", "stats", "activeTotalLocked"], b)
4850
4951
50-func v () = makeString(["%s%s", "stats", "locksCount"], a)
52+func w () = makeString(["%s%s", "stats", "locksCount"], b)
5153
5254
53-func w () = makeString(["%s%s", "stats", "activeUsersCount"], a)
55+func x () = makeString(["%s%s", "stats", "activeUsersCount"], b)
5456
5557
56-func x () = "%s__nextPeriod"
58+func y () = "%s__nextPeriod"
5759
5860
59-func y () = "supportedRewardAssets"
61+func z () = "supportedRewardAssets"
6062
6163
62-func z () = makeString(["%s%s%s", "dep", "lastNum"], a)
64+func A () = makeString(["%s%s%s", "dep", "lastNum"], b)
6365
6466
65-func A (p) = makeString(["%s%s%s", "userRwdFromDepNum", p], a)
67+func B (q) = makeString(["%s%s%s", "userRwdFromDepNum", q], b)
6668
6769
68-func B (C,D) = makeString(["%s%d", "rwdPerNsbtSumByDepNum", toString(C), D], a)
70+func C (D,E) = makeString(["%s%d", "rwdPerNsbtSumByDepNum", toString(D), E], b)
6971
7072
71-func E (p,D) = makeString(["%s%s%s", "rwd", p, D], a)
73+func F (q,E) = makeString(["%s%s%s", "rwd", q, E], b)
7274
7375
74-func F (p,D) = makeString(["%s%s%s", "clm", p, D], a)
76+func G (q,E) = makeString(["%s%s%s", "clm", q, E], b)
7577
7678
77-func G (D) = makeString(["%s%s", "notDistributed", D], a)
79+func H (E) = makeString(["%s%s", "notDistributed", E], b)
7880
7981
80-func H (I,J) = fraction(toBigInt(I), f, J)
82+func I (J,K) = fraction(toBigInt(J), g, K)
8183
8284
83-func K (L) = valueOrElse(getInteger(this, L), 0)
85+func L (M) = valueOrElse(getInteger(this, M), 0)
8486
8587
86-func M (L,N) = valueOrElse(getInteger(this, L), N)
88+func N (M,O) = valueOrElse(getInteger(this, M), O)
8789
8890
89-func O (L) = valueOrErrorMessage(getInteger(this, L), (("Mandatory this." + L) + " is not defined"))
91+func P (M) = valueOrErrorMessage(getInteger(this, M), (("Mandatory this." + M) + " is not defined"))
9092
9193
92-func P (L,N) = valueOrElse(getString(this, L), N)
94+func Q (M,O) = valueOrElse(getString(this, M), O)
9395
9496
95-func Q (L) = valueOrErrorMessage(getString(this, L), (("Mandatory this." + L) + " is not defined"))
97+func R (M) = valueOrErrorMessage(getString(this, M), (("Mandatory this." + M) + " is not defined"))
9698
9799
98-func R (S) = valueOrErrorMessage(addressFromString(S), ("couldn't parse passed addressStr=" + S))
100+func S (T) = valueOrErrorMessage(addressFromString(T), ("couldn't parse passed addressStr=" + T))
99101
100102
101-func T (U) = if ((U == g))
103+func U (V) = if ((V == h))
102104 then unit
103- else fromBase58String(U)
105+ else fromBase58String(V)
104106
105107
106-func V (W) = {
107- let X = W
108- if ($isInstanceOf(X, "Int"))
108+func W (X) = {
109+ let Y = X
110+ if ($isInstanceOf(Y, "Int"))
109111 then {
110- let Y = X
111- Y
112+ let Z = Y
113+ Z
112114 }
113115 else throw("fail to cast into Int")
114116 }
115117
116118
117-func Z (aa,ab,ac,ad) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aa), toString(ab), toString(ac), toString(ad)], a)
119+func aa (ab,ac,ad,ae) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(ab), toString(ac), toString(ad), toString(ae)], b)
118120
119121
120-func ae (af,ag) = makeString(["%s%d%d%s", af, toString(lastBlock.height), toString(lastBlock.timestamp), ag], a)
122+func af (ag,ah) = makeString(["%s%d%d%s", ag, toString(lastBlock.height), toString(lastBlock.timestamp), ah], b)
121123
122124
123-func ah (s,p,t,aa,ab,ac,ad) = StringEntry(r(s, p, t), Z(aa, ab, ac, ad))
125+func ai (t,q,u,ab,ac,ad,ae) = StringEntry(s(t, q, u), aa(ab, ac, ad, ae))
124126
125127
126-func ai (p,t,ag) = StringEntry(r("claim", p, t), ae(toString(p), ag))
128+func aj (q,u,ah) = StringEntry(s("claim", q, u), af(toString(q), ah))
127129
128130
129-func aj (ak,al,am) = {
130- let an = K(v())
131- let ao = K(w())
132- let ap = K(u())
133- let aq = (ap + ak)
134- $Tuple3([IntegerEntry(v(), (an + al)), IntegerEntry(w(), (ao + am)), IntegerEntry(u(), aq)], ap, aq)
131+func ak (al,am,an) = {
132+ let ao = L(w())
133+ let ap = L(x())
134+ let aq = L(v())
135+ let ar = (aq + al)
136+ $Tuple3([IntegerEntry(w(), (ao + am)), IntegerEntry(x(), (ap + an)), IntegerEntry(v(), ar)], aq, ar)
135137 }
136138
137139
138-func ar (p,as,at) = [IntegerEntry(o(p), as), IntegerEntry(q(p), at)]
140+func as (q,at,au) = [IntegerEntry(p(q), at), IntegerEntry(r(q), au)]
139141
140142
141-func au () = {
142- let av = addressFromStringValue(Q(k()))
143- $Tuple4(fromBase58String(getStringValue(av, j())), fromBase58String(getStringValue(av, i())), O(m()), O(n()))
143+func av () = {
144+ let aw = addressFromStringValue(R(l()))
145+ $Tuple4(fromBase58String(getStringValue(aw, k())), fromBase58String(getStringValue(aw, j())), P(n()), P(o()))
144146 }
145147
146148
147-func aw (p) = (M(o(p), 0) > 0)
149+func ax (q) = (N(p(q), 0) > 0)
148150
149151
150-func ax (p) = if (aw(p))
151- then $Tuple3(false, O(o(p)), O(q(p)))
152+func ay (q) = if (ax(q))
153+ then $Tuple3(false, P(p(q)), P(r(q)))
152154 else unit
153155
154156
155-func ay (p) = valueOrErrorMessage(ax(p), (("User " + toString(p)) + " is not defined"))
157+func az (q) = valueOrErrorMessage(ay(q), (("User " + toString(q)) + " is not defined"))
156158
157159
158-let az = P(y(), "")
160+let aA = Q(z(), "")
159161
160-let aA = split(az, "_")
162+let aB = split(aA, "_")
161163
162-func aB (p,aC,aD,aE,aF) = {
163- let aG = B(aF, aC)
164- let aH = parseBigIntValue(P(B(aF, aC), "0"))
165- let aI = parseBigIntValue(P(B(aE, aC), "0"))
166- let aJ = toInt(fraction((aH - aI), aD, f))
167- let aK = E(p, aC)
168- let aL = M(aK, 0)
169- $Tuple4((aL + aJ), aL, aJ, aK)
164+func aC (q,aD,aE,aF,aG) = {
165+ let aH = C(aG, aD)
166+ let aI = parseBigIntValue(Q(C(aG, aD), "0"))
167+ let aJ = parseBigIntValue(Q(C(aF, aD), "0"))
168+ let aK = toInt(fraction((aI - aJ), aE, g))
169+ let aL = F(q, aD)
170+ let aM = N(aL, 0)
171+ $Tuple4((aM + aK), aM, aK, aL)
170172 }
171173
172174
173-func aM (aN,p,aO) = {
174- let aD = toBigInt(aO)
175- let aP = A(p)
176- let aE = M(aP, -1)
177- let aF = M(z(), -1)
178- func aQ (aR,aS) = {
179- let aT = aB(p, aS, aD, aE, aF)
180- let aU = aT._1
181- let aV = aT._2
182- let aW = aT._3
183- let aK = aT._4
184- (aR :+ IntegerEntry(aK, aU))
175+func aN (aO,q,aP) = {
176+ let aE = toBigInt(aP)
177+ let aQ = B(q)
178+ let aF = N(aQ, -1)
179+ let aG = N(A(), -1)
180+ func aR (aS,aT) = {
181+ let aU = aC(q, aT, aE, aF, aG)
182+ let aV = aU._1
183+ let aW = aU._2
184+ let aX = aU._3
185+ let aL = aU._4
186+ (aS :+ IntegerEntry(aL, aV))
185187 }
186188
187- if (if ((aF == -1))
188- then (aE == -1)
189+ if (if ((aG == -1))
190+ then (aF == -1)
189191 else false)
190192 then nil
191- else if (if ((aF == -1))
192- then (aE > -1)
193+ else if (if ((aG == -1))
194+ then (aF > -1)
193195 else false)
194196 then throw("invalid depositNumLast and depositNumUser state")
195- else if (if ((aF > -1))
196- then (aE == -1)
197+ else if (if ((aG > -1))
198+ then (aF == -1)
197199 else false)
198- then if (aN)
199- then [IntegerEntry(aP, aF)]
200+ then if (aO)
201+ then [IntegerEntry(aQ, aG)]
200202 else ({
201- let aX = aA
202- let aY = size(aX)
203- let aZ = nil
204- func ba (bb,bc) = if ((bc >= aY))
205- then bb
206- else aQ(bb, aX[bc])
203+ let aY = aB
204+ let aZ = size(aY)
205+ let ba = nil
206+ func bb (bc,bd) = if ((bd >= aZ))
207+ then bc
208+ else aR(bc, aY[bd])
207209
208- func bd (bb,bc) = if ((bc >= aY))
209- then bb
210+ func be (bc,bd) = if ((bd >= aZ))
211+ then bc
210212 else throw("List size exceeds 10")
211213
212- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
213- } :+ IntegerEntry(aP, aF))
214- else if (if ((aF > -1))
215- then (aE > -1)
214+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
215+ } :+ IntegerEntry(aQ, aG))
216+ else if (if ((aG > -1))
217+ then (aF > -1)
216218 else false)
217- then if (aN)
218- then [IntegerEntry(aP, aF)]
219+ then if (aO)
220+ then [IntegerEntry(aQ, aG)]
219221 else ({
220- let aX = aA
221- let aY = size(aX)
222- let aZ = nil
223- func ba (bb,bc) = if ((bc >= aY))
224- then bb
225- else aQ(bb, aX[bc])
222+ let aY = aB
223+ let aZ = size(aY)
224+ let ba = nil
225+ func bb (bc,bd) = if ((bd >= aZ))
226+ then bc
227+ else aR(bc, aY[bd])
226228
227- func bd (bb,bc) = if ((bc >= aY))
228- then bb
229+ func be (bc,bd) = if ((bd >= aZ))
230+ then bc
229231 else throw("List size exceeds 10")
230232
231- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
232- } :+ IntegerEntry(aP, aF))
233- else throw(((("uncovered condition: depositNumLast=" + toString(aF)) + " depositNumUser=") + toString(aE)))
233+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
234+ } :+ IntegerEntry(aQ, aG))
235+ else throw(((("uncovered condition: depositNumLast=" + toString(aG)) + " depositNumUser=") + toString(aF)))
234236 }
235237
236238
237-func be (D,bf) = {
238- let bg = G(D)
239- let bh = M(bg, 0)
240-[IntegerEntry(bg, (bh + bf))]
239+func bf (E,bg) = {
240+ let bh = H(E)
241+ let bi = N(bh, 0)
242+[IntegerEntry(bh, (bi + bg))]
241243 }
242244
243245
244-@Callable(bi)
245-func constructor (bj,bk,bl,bm,bn) = if ((bi.caller != this))
246+@Callable(bj)
247+func constructor (bk,bl,bm,bn,bo) = if ((bj.caller != this))
246248 then throw("Permission denied")
247- else [StringEntry(k(), bj), StringEntry(l(), bk), IntegerEntry(m(), bl), IntegerEntry(n(), bm), StringEntry(y(), bn)]
249+ else [StringEntry(l(), bk), StringEntry(m(), bl), IntegerEntry(n(), bm), IntegerEntry(o(), bn), StringEntry(z(), bo)]
248250
249251
250252
251-@Callable(bi)
253+@Callable(bj)
252254 func stake () = {
253- let bo = au()
254- let bp = bo._1
255- let bq = bo._2
256- let bl = bo._3
257- let bm = bo._4
258- if ((size(bi.payments) != 1))
255+ let bp = av()
256+ let bq = bp._1
257+ let br = bp._2
258+ let bm = bp._3
259+ let bn = bp._4
260+ if ((size(bj.payments) != 1))
259261 then throw("Invalid payments size")
260262 else {
261- let br = bi.payments[0]
262- let as = br.amount
263- let bs = (("Invalid asset. " + toBase58String(bq)) + " is expected")
264- let aC = valueOrErrorMessage(br.assetId, bs)
265- if ((aC != bq))
266- then throw(bs)
263+ let bs = bj.payments[0]
264+ let at = bs.amount
265+ let bt = (("Invalid asset. " + toBase58String(br)) + " is expected")
266+ let aD = valueOrErrorMessage(bs.assetId, bt)
267+ if ((aD != br))
268+ then throw(bt)
267269 else {
268- let p = bi.caller
269- let bt = toString(bi.caller)
270- let bu = valueOrElse(ax(p), $Tuple3(true, 0, -1))
271- let aN = bu._1
272- let bv = bu._2
273- let bw = bu._3
274- let bx = if (aN)
275- then as
276- else (as + bv)
277- let by = if (aN)
270+ let q = bj.caller
271+ let bu = toString(bj.caller)
272+ let bv = valueOrElse(ay(q), $Tuple3(true, 0, -1))
273+ let aO = bv._1
274+ let bw = bv._2
275+ let bx = bv._3
276+ let by = if (aO)
277+ then at
278+ else (at + bw)
279+ let bz = if (aO)
278280 then height
279281 else {
280- let bz = addressFromStringValue(Q(l()))
281- V(invoke(bz, "mergeStakesREADONLY", [as, height, bv, bw, bm], nil))
282+ let bA = addressFromStringValue(R(m()))
283+ W(invoke(bA, "mergeStakesREADONLY", [at, height, bw, bx, bn], nil))
282284 }
283- if ((bl > bx))
284- then throw(("Min lock amount is " + toString(bl)))
285+ if ((bm > by))
286+ then throw(("Min lock amount is " + toString(bm)))
285287 else {
286- let bA = aj(as, 1, if (aN)
288+ let bB = ak(at, 1, if (aO)
287289 then 1
288290 else 0)
289- let bB = bA._1
290- let bC = bA._2
291- let bD = bA._3
292- ((([ah("stake", p, bi.transactionId, bv, bw, bx, by)] ++ aM(aN, bt, bv)) ++ ar(p, bx, by)) ++ bB)
291+ let bC = bB._1
292+ let bD = bB._2
293+ let bE = bB._3
294+ ((([ai("stake", q, bj.transactionId, bw, bx, by, bz)] ++ aN(aO, bu, bw)) ++ as(q, by, bz)) ++ bC)
293295 }
294296 }
295297 }
297299
298300
299301
300-@Callable(bi)
301-func unstake (as) = if ((size(bi.payments) != 0))
302+@Callable(bj)
303+func unstake (at) = if ((size(bj.payments) != 0))
302304 then throw("unstake doesn't require any payment")
303305 else {
304- let p = bi.caller
305- let bt = toString(p)
306- let bE = au()
307- let bF = bE._1
308- let bq = bE._2
309- let bl = bE._3
310- let bm = bE._4
311- let bG = ay(p)
312- let aN = bG._1
313- let bv = bG._2
314- let bH = bG._3
315- if ((0 >= bv))
306+ let q = bj.caller
307+ let bu = toString(q)
308+ let bF = av()
309+ let bG = bF._1
310+ let br = bF._2
311+ let bm = bF._3
312+ let bn = bF._4
313+ let bH = az(q)
314+ let aO = bH._1
315+ let bw = bH._2
316+ let bI = bH._3
317+ if ((0 >= bw))
316318 then throw("Nothing to unstake")
317- else if ((as > bv))
318- then throw(((("Requested " + toString(as)) + ", but staked only ") + toString(bv)))
319+ else if ((at > bw))
320+ then throw(((("Requested " + toString(at)) + ", but staked only ") + toString(bw)))
319321 else {
320- let bz = addressFromStringValue(Q(l()))
321- let bI = V(invoke(bz, "getUnstakeComissionAmountREADONLY", [as, bH, bm], nil))
322- let bJ = aj(-(as), if ((as == bv))
322+ let bA = addressFromStringValue(R(m()))
323+ let bJ = W(invoke(bA, "getUnstakeComissionAmountREADONLY", [at, bI, bn], nil))
324+ let bK = ak(-(at), if ((at == bw))
323325 then -1
324- else 0, if ((as == bv))
326+ else 0, if ((at == bw))
325327 then -1
326328 else 0)
327- let bB = bJ._1
328- let bC = bJ._2
329- let bD = bJ._3
330- ((([ScriptTransfer(p, (as - bI), bq), ScriptTransfer(Address(bF), bI, bq), ah("unstake", p, bi.transactionId, bv, bH, (bv - as), bH)] ++ aM(false, bt, bv)) ++ ar(p, (bv - as), bH)) ++ bB)
329+ let bC = bK._1
330+ let bD = bK._2
331+ let bE = bK._3
332+ ((([ScriptTransfer(q, (at - bJ), br), ScriptTransfer(Address(bG), bJ, br), ai("unstake", q, bj.transactionId, bw, bI, (bw - at), bI)] ++ aN(false, bu, bw)) ++ as(q, (bw - at), bI)) ++ bC)
331333 }
332334 }
333335
334336
335337
336-@Callable(bi)
337-func deposit () = if ((size(bi.payments) != 1))
338+@Callable(bj)
339+func deposit () = if ((size(bj.payments) != 1))
338340 then throw("exact 1 payment is allowed only")
339341 else {
340- let bK = bi.payments[0]
341- let as = bK.amount
342- let bL = valueOrElse(bK.assetId, h)
343- let bM = toBase58String(bL)
344- let bN = if ((bL == h))
345- then e
346- else d
347- let bO = toBigInt(as)
348- let bC = M(u(), 0)
349- let bP = toBigInt(bC)
350- if ((0 > bC))
342+ let bL = bj.payments[0]
343+ let at = bL.amount
344+ let bM = valueOrElse(bL.assetId, i)
345+ let bN = toBase58String(bM)
346+ let bO = if ((bM == i))
347+ then f
348+ else e
349+ let bP = toBigInt(at)
350+ let bD = N(v(), 0)
351+ let bQ = toBigInt(bD)
352+ if ((0 > bD))
351353 then throw("TODO: case is not supported")
352- else if ((bC == 0))
353- then be(bM, as)
354+ else if ((bD == 0))
355+ then bf(bN, at)
354356 else {
355- let bQ = fraction(bO, f, bP)
356- let bR = z()
357- let aF = M(bR, -1)
358- let bS = (aF + 1)
359- if (!(contains(az, bM)))
360- then throw(((az + " doesn't contain ") + bM))
357+ let bR = fraction(bP, g, bQ)
358+ let bS = A()
359+ let aG = N(bS, -1)
360+ let bT = (aG + 1)
361+ if (!(contains(aA, bN)))
362+ then throw(((aA + " doesn't contain ") + bN))
361363 else {
362- func bT (aR,bU) = {
363- let bV = B(bS, bU)
364- let bW = P(B(aF, bU), "0")
365- (aR :+ (if ((bU == bM))
366- then StringEntry(bV, toString((parseBigIntValue(bW) + bQ)))
367- else StringEntry(bV, bW)))
364+ func bU (aS,bV) = {
365+ let bW = C(bT, bV)
366+ let bX = Q(C(aG, bV), "0")
367+ (aS :+ (if ((bV == bN))
368+ then StringEntry(bW, toString((parseBigIntValue(bX) + bR)))
369+ else StringEntry(bW, bX)))
368370 }
369371
370372 ({
371- let aX = aA
372- let aY = size(aX)
373- let aZ = nil
374- func ba (bb,bc) = if ((bc >= aY))
375- then bb
376- else bT(bb, aX[bc])
373+ let aY = aB
374+ let aZ = size(aY)
375+ let ba = nil
376+ func bb (bc,bd) = if ((bd >= aZ))
377+ then bc
378+ else bU(bc, aY[bd])
377379
378- func bd (bb,bc) = if ((bc >= aY))
379- then bb
380+ func be (bc,bd) = if ((bd >= aZ))
381+ then bc
380382 else throw("List size exceeds 10")
381383
382- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
383- } :+ IntegerEntry(bR, bS))
384+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
385+ } :+ IntegerEntry(bS, bT))
384386 }
385387 }
386388 }
387389
388390
389391
390-@Callable(bi)
392+@Callable(bj)
391393 func claimRewards () = {
392- let p = bi.caller
393- let bt = toString(p)
394- if ((size(bi.payments) > 0))
394+ let q = bj.caller
395+ let bu = toString(q)
396+ if ((size(bj.payments) > 0))
395397 then throw("payments are not accepted")
396398 else {
397- let bX = valueOrElse(ax(p), $Tuple3(true, 0, 0))
398- let aN = bX._1
399- let aO = bX._2
400- let bY = bX._3
401- let aD = toBigInt(aO)
402- let aP = A(bt)
403- let aE = M(aP, -1)
404- let aF = M(z(), -1)
405- func bZ (aR,aS) = {
406- let ca = aB(bt, aS, aD, aE, aF)
407- let aU = ca._1
408- let aV = ca._2
409- let aW = ca._3
410- let aK = ca._4
411- let cb = F(bt, aS)
412- let cc = aR
413- let cd = cc._1
414- let ce = cc._2
415- let cf = makeString([aS, toString(aU)], ":")
416- let cg = makeString([ce, cf], "_")
417- if ((0 >= aU))
418- then $Tuple2(cd, cg)
419- else $Tuple2((((cd :+ ScriptTransfer(p, aU, T(aS))) :+ IntegerEntry(cb, (valueOrElse(getInteger(cb), 0) + aU))) :+ IntegerEntry(aK, 0)), cg)
399+ let bY = valueOrElse(ay(q), $Tuple3(true, 0, 0))
400+ let aO = bY._1
401+ let aP = bY._2
402+ let bZ = bY._3
403+ let aE = toBigInt(aP)
404+ let aQ = B(bu)
405+ let aF = N(aQ, -1)
406+ let aG = N(A(), -1)
407+ func ca (aS,aT) = {
408+ let cb = aC(bu, aT, aE, aF, aG)
409+ let aV = cb._1
410+ let aW = cb._2
411+ let aX = cb._3
412+ let aL = cb._4
413+ let cc = G(bu, aT)
414+ let cd = aS
415+ let ce = cd._1
416+ let cf = cd._2
417+ let cg = makeString([aT, toString(aV)], ":")
418+ let ch = makeString([cf, cg], "_")
419+ if ((0 >= aV))
420+ then $Tuple2(ce, ch)
421+ else $Tuple2((((ce :+ ScriptTransfer(q, aV, U(aT))) :+ IntegerEntry(cc, (valueOrElse(getInteger(cc), 0) + aV))) :+ IntegerEntry(aL, 0)), ch)
420422 }
421423
422- let ch = {
423- let aX = aA
424- let aY = size(aX)
425- let aZ = $Tuple2(nil, "")
426- func ba (bb,bc) = if ((bc >= aY))
427- then bb
428- else bZ(bb, aX[bc])
424+ let ci = {
425+ let aY = aB
426+ let aZ = size(aY)
427+ let ba = $Tuple2(nil, "")
428+ func bb (bc,bd) = if ((bd >= aZ))
429+ then bc
430+ else ca(bc, aY[bd])
429431
430- func bd (bb,bc) = if ((bc >= aY))
431- then bb
432+ func be (bc,bd) = if ((bd >= aZ))
433+ then bc
432434 else throw("List size exceeds 10")
433435
434- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
436+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
435437 }
436- let ci = ch._1
437- let cj = ch._2
438- if ((0 >= size(ci)))
438+ let cj = ci._1
439+ let ck = ci._2
440+ if ((0 >= size(cj)))
439441 then throw("nothing to claim")
440- else ((ci :+ IntegerEntry(aP, aF)) :+ ai(p, bi.transactionId, drop(cj, 1)))
442+ else ((cj :+ IntegerEntry(aQ, aG)) :+ aj(q, bj.transactionId, drop(ck, 1)))
441443 }
442444 }
443445
444446
445447
446-@Callable(bi)
447-func unclaimedRewardsREADONLY (bt) = {
448- func ck (aR,aS) = ((aR + makeString([aS, "0", "0"], ":")) + "_")
448+@Callable(bj)
449+func unclaimedRewardsREADONLY (bu) = {
450+ func cl (aS,aT) = ((aS + makeString([aT, "0", "0"], ":")) + "_")
449451
450- let cl = if ((bt == ""))
452+ let cm = if ((bu == ""))
451453 then {
452- let aX = aA
453- let aY = size(aX)
454- let aZ = ""
455- func ba (bb,bc) = if ((bc >= aY))
456- then bb
457- else ck(bb, aX[bc])
454+ let aY = aB
455+ let aZ = size(aY)
456+ let ba = ""
457+ func bb (bc,bd) = if ((bd >= aZ))
458+ then bc
459+ else cl(bc, aY[bd])
458460
459- func bd (bb,bc) = if ((bc >= aY))
460- then bb
461+ func be (bc,bd) = if ((bd >= aZ))
462+ then bc
461463 else throw("List size exceeds 10")
462464
463- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
465+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
464466 }
465467 else {
466- let p = addressFromStringValue(bt)
467- let cm = valueOrElse(ax(p), $Tuple3(true, 0, 0))
468- let aN = cm._1
469- let aO = cm._2
470- let bY = cm._3
471- let aD = toBigInt(aO)
472- let aP = A(bt)
473- let aE = M(aP, -1)
474- let aF = M(z(), -1)
475- func bZ (aR,aS) = {
476- let cn = aB(bt, aS, aD, aE, aF)
477- let aU = cn._1
478- let aV = cn._2
479- let aW = cn._3
480- let aK = cn._4
481- let co = valueOrElse(getInteger(F(bt, aS)), 0)
482- ((aR + makeString([aS, toString(aU), toString(co)], ":")) + "_")
468+ let q = addressFromStringValue(bu)
469+ let cn = valueOrElse(ay(q), $Tuple3(true, 0, 0))
470+ let aO = cn._1
471+ let aP = cn._2
472+ let bZ = cn._3
473+ let aE = toBigInt(aP)
474+ let aQ = B(bu)
475+ let aF = N(aQ, -1)
476+ let aG = N(A(), -1)
477+ func ca (aS,aT) = {
478+ let co = aC(bu, aT, aE, aF, aG)
479+ let aV = co._1
480+ let aW = co._2
481+ let aX = co._3
482+ let aL = co._4
483+ let cp = valueOrElse(getInteger(G(bu, aT)), 0)
484+ ((aS + makeString([aT, "10", "10"], ":")) + "_")
483485 }
484486
485- let aX = aA
486- let aY = size(aX)
487- let aZ = ""
488- func ba (bb,bc) = if ((bc >= aY))
489- then bb
490- else bZ(bb, aX[bc])
487+ let aY = aB
488+ let aZ = size(aY)
489+ let ba = ""
490+ func bb (bc,bd) = if ((bd >= aZ))
491+ then bc
492+ else ca(bc, aY[bd])
491493
492- func bd (bb,bc) = if ((bc >= aY))
493- then bb
494+ func be (bc,bd) = if ((bd >= aZ))
495+ then bc
494496 else throw("List size exceeds 10")
495497
496- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
498+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
497499 }
498- $Tuple2(nil, dropRight(cl, 1))
500+ $Tuple2(nil, dropRight(cm, 1))
499501 }
500502
501503
502504
503-@Callable(bi)
504-func nsbtStakingSYSREADONLY (bt) = {
505- let cp = M(u(), 0)
506- if ((bt == ""))
507- then $Tuple2(nil, [0, cp, 0])
505+@Callable(bj)
506+func nsbtStakingSYSREADONLY (bu) = {
507+ let cq = N(v(), 0)
508+ if ((bu == ""))
509+ then $Tuple2(nil, [0, cq, 0])
508510 else {
509- let p = R(bt)
510- let cq = valueOrElse(ax(p), $Tuple3(true, 0, 0))
511- let aN = cq._1
512- let cr = cq._2
513- let bY = cq._3
514- $Tuple2(nil, [cr, cp, bY])
511+ let q = S(bu)
512+ let cr = valueOrElse(ay(q), $Tuple3(true, 0, 0))
513+ let aO = cr._1
514+ let cs = cr._2
515+ let bZ = cr._3
516+ $Tuple2(nil, [cs, cq, bZ])
515517 }
516518 }
517519
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = "__"
4+let a = ""
55
6-let b = 1000000
6+let b = "__"
77
8-let c = 100000000
8+let c = 1000000
99
10-let d = toBigInt(b)
10+let d = 100000000
1111
1212 let e = toBigInt(c)
1313
14-let f = toBigInt(1000000000000000000)
14+let f = toBigInt(d)
1515
16-let g = "WAVES"
16+let g = toBigInt(1000000000000000000)
1717
18-let h = fromBase58String(g)
18+let h = "WAVES"
1919
20-func i () = "bond_asset_id"
20+let i = fromBase58String(h)
21+
22+func j () = "bond_asset_id"
2123
2224
23-func j () = "auction_contract"
25+func k () = "auction_contract"
2426
2527
26-func k () = "%s__neutrinoContractAddress"
28+func l () = "%s__neutrinoContractAddress"
2729
2830
29-func l () = "%s__mathContract"
31+func m () = "%s__mathContract"
3032
3133
32-func m () = "%s__minLockAmount"
34+func n () = "%s__minLockAmount"
3335
3436
35-func n () = "%s__halfLife"
37+func o () = "%s__halfLife"
3638
3739
38-func o (p) = makeString(["%s%s%s", "paramByUser", toString(p), "amount"], a)
40+func p (q) = makeString(["%s%s%s", "paramByUser", toString(q), "amount"], b)
3941
4042
41-func q (p) = makeString(["%s%s%s", "paramByUser", toString(p), "start"], a)
43+func r (q) = makeString(["%s%s%s", "paramByUser", toString(q), "start"], b)
4244
4345
44-func r (s,p,t) = makeString(["%s%s%s%s", "history", s, toString(p), toBase58String(t)], a)
46+func s (t,q,u) = makeString(["%s%s%s%s", "history", t, toString(q), toBase58String(u)], b)
4547
4648
47-func u () = makeString(["%s%s", "stats", "activeTotalLocked"], a)
49+func v () = makeString(["%s%s", "stats", "activeTotalLocked"], b)
4850
4951
50-func v () = makeString(["%s%s", "stats", "locksCount"], a)
52+func w () = makeString(["%s%s", "stats", "locksCount"], b)
5153
5254
53-func w () = makeString(["%s%s", "stats", "activeUsersCount"], a)
55+func x () = makeString(["%s%s", "stats", "activeUsersCount"], b)
5456
5557
56-func x () = "%s__nextPeriod"
58+func y () = "%s__nextPeriod"
5759
5860
59-func y () = "supportedRewardAssets"
61+func z () = "supportedRewardAssets"
6062
6163
62-func z () = makeString(["%s%s%s", "dep", "lastNum"], a)
64+func A () = makeString(["%s%s%s", "dep", "lastNum"], b)
6365
6466
65-func A (p) = makeString(["%s%s%s", "userRwdFromDepNum", p], a)
67+func B (q) = makeString(["%s%s%s", "userRwdFromDepNum", q], b)
6668
6769
68-func B (C,D) = makeString(["%s%d", "rwdPerNsbtSumByDepNum", toString(C), D], a)
70+func C (D,E) = makeString(["%s%d", "rwdPerNsbtSumByDepNum", toString(D), E], b)
6971
7072
71-func E (p,D) = makeString(["%s%s%s", "rwd", p, D], a)
73+func F (q,E) = makeString(["%s%s%s", "rwd", q, E], b)
7274
7375
74-func F (p,D) = makeString(["%s%s%s", "clm", p, D], a)
76+func G (q,E) = makeString(["%s%s%s", "clm", q, E], b)
7577
7678
77-func G (D) = makeString(["%s%s", "notDistributed", D], a)
79+func H (E) = makeString(["%s%s", "notDistributed", E], b)
7880
7981
80-func H (I,J) = fraction(toBigInt(I), f, J)
82+func I (J,K) = fraction(toBigInt(J), g, K)
8183
8284
83-func K (L) = valueOrElse(getInteger(this, L), 0)
85+func L (M) = valueOrElse(getInteger(this, M), 0)
8486
8587
86-func M (L,N) = valueOrElse(getInteger(this, L), N)
88+func N (M,O) = valueOrElse(getInteger(this, M), O)
8789
8890
89-func O (L) = valueOrErrorMessage(getInteger(this, L), (("Mandatory this." + L) + " is not defined"))
91+func P (M) = valueOrErrorMessage(getInteger(this, M), (("Mandatory this." + M) + " is not defined"))
9092
9193
92-func P (L,N) = valueOrElse(getString(this, L), N)
94+func Q (M,O) = valueOrElse(getString(this, M), O)
9395
9496
95-func Q (L) = valueOrErrorMessage(getString(this, L), (("Mandatory this." + L) + " is not defined"))
97+func R (M) = valueOrErrorMessage(getString(this, M), (("Mandatory this." + M) + " is not defined"))
9698
9799
98-func R (S) = valueOrErrorMessage(addressFromString(S), ("couldn't parse passed addressStr=" + S))
100+func S (T) = valueOrErrorMessage(addressFromString(T), ("couldn't parse passed addressStr=" + T))
99101
100102
101-func T (U) = if ((U == g))
103+func U (V) = if ((V == h))
102104 then unit
103- else fromBase58String(U)
105+ else fromBase58String(V)
104106
105107
106-func V (W) = {
107- let X = W
108- if ($isInstanceOf(X, "Int"))
108+func W (X) = {
109+ let Y = X
110+ if ($isInstanceOf(Y, "Int"))
109111 then {
110- let Y = X
111- Y
112+ let Z = Y
113+ Z
112114 }
113115 else throw("fail to cast into Int")
114116 }
115117
116118
117-func Z (aa,ab,ac,ad) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aa), toString(ab), toString(ac), toString(ad)], a)
119+func aa (ab,ac,ad,ae) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(ab), toString(ac), toString(ad), toString(ae)], b)
118120
119121
120-func ae (af,ag) = makeString(["%s%d%d%s", af, toString(lastBlock.height), toString(lastBlock.timestamp), ag], a)
122+func af (ag,ah) = makeString(["%s%d%d%s", ag, toString(lastBlock.height), toString(lastBlock.timestamp), ah], b)
121123
122124
123-func ah (s,p,t,aa,ab,ac,ad) = StringEntry(r(s, p, t), Z(aa, ab, ac, ad))
125+func ai (t,q,u,ab,ac,ad,ae) = StringEntry(s(t, q, u), aa(ab, ac, ad, ae))
124126
125127
126-func ai (p,t,ag) = StringEntry(r("claim", p, t), ae(toString(p), ag))
128+func aj (q,u,ah) = StringEntry(s("claim", q, u), af(toString(q), ah))
127129
128130
129-func aj (ak,al,am) = {
130- let an = K(v())
131- let ao = K(w())
132- let ap = K(u())
133- let aq = (ap + ak)
134- $Tuple3([IntegerEntry(v(), (an + al)), IntegerEntry(w(), (ao + am)), IntegerEntry(u(), aq)], ap, aq)
131+func ak (al,am,an) = {
132+ let ao = L(w())
133+ let ap = L(x())
134+ let aq = L(v())
135+ let ar = (aq + al)
136+ $Tuple3([IntegerEntry(w(), (ao + am)), IntegerEntry(x(), (ap + an)), IntegerEntry(v(), ar)], aq, ar)
135137 }
136138
137139
138-func ar (p,as,at) = [IntegerEntry(o(p), as), IntegerEntry(q(p), at)]
140+func as (q,at,au) = [IntegerEntry(p(q), at), IntegerEntry(r(q), au)]
139141
140142
141-func au () = {
142- let av = addressFromStringValue(Q(k()))
143- $Tuple4(fromBase58String(getStringValue(av, j())), fromBase58String(getStringValue(av, i())), O(m()), O(n()))
143+func av () = {
144+ let aw = addressFromStringValue(R(l()))
145+ $Tuple4(fromBase58String(getStringValue(aw, k())), fromBase58String(getStringValue(aw, j())), P(n()), P(o()))
144146 }
145147
146148
147-func aw (p) = (M(o(p), 0) > 0)
149+func ax (q) = (N(p(q), 0) > 0)
148150
149151
150-func ax (p) = if (aw(p))
151- then $Tuple3(false, O(o(p)), O(q(p)))
152+func ay (q) = if (ax(q))
153+ then $Tuple3(false, P(p(q)), P(r(q)))
152154 else unit
153155
154156
155-func ay (p) = valueOrErrorMessage(ax(p), (("User " + toString(p)) + " is not defined"))
157+func az (q) = valueOrErrorMessage(ay(q), (("User " + toString(q)) + " is not defined"))
156158
157159
158-let az = P(y(), "")
160+let aA = Q(z(), "")
159161
160-let aA = split(az, "_")
162+let aB = split(aA, "_")
161163
162-func aB (p,aC,aD,aE,aF) = {
163- let aG = B(aF, aC)
164- let aH = parseBigIntValue(P(B(aF, aC), "0"))
165- let aI = parseBigIntValue(P(B(aE, aC), "0"))
166- let aJ = toInt(fraction((aH - aI), aD, f))
167- let aK = E(p, aC)
168- let aL = M(aK, 0)
169- $Tuple4((aL + aJ), aL, aJ, aK)
164+func aC (q,aD,aE,aF,aG) = {
165+ let aH = C(aG, aD)
166+ let aI = parseBigIntValue(Q(C(aG, aD), "0"))
167+ let aJ = parseBigIntValue(Q(C(aF, aD), "0"))
168+ let aK = toInt(fraction((aI - aJ), aE, g))
169+ let aL = F(q, aD)
170+ let aM = N(aL, 0)
171+ $Tuple4((aM + aK), aM, aK, aL)
170172 }
171173
172174
173-func aM (aN,p,aO) = {
174- let aD = toBigInt(aO)
175- let aP = A(p)
176- let aE = M(aP, -1)
177- let aF = M(z(), -1)
178- func aQ (aR,aS) = {
179- let aT = aB(p, aS, aD, aE, aF)
180- let aU = aT._1
181- let aV = aT._2
182- let aW = aT._3
183- let aK = aT._4
184- (aR :+ IntegerEntry(aK, aU))
175+func aN (aO,q,aP) = {
176+ let aE = toBigInt(aP)
177+ let aQ = B(q)
178+ let aF = N(aQ, -1)
179+ let aG = N(A(), -1)
180+ func aR (aS,aT) = {
181+ let aU = aC(q, aT, aE, aF, aG)
182+ let aV = aU._1
183+ let aW = aU._2
184+ let aX = aU._3
185+ let aL = aU._4
186+ (aS :+ IntegerEntry(aL, aV))
185187 }
186188
187- if (if ((aF == -1))
188- then (aE == -1)
189+ if (if ((aG == -1))
190+ then (aF == -1)
189191 else false)
190192 then nil
191- else if (if ((aF == -1))
192- then (aE > -1)
193+ else if (if ((aG == -1))
194+ then (aF > -1)
193195 else false)
194196 then throw("invalid depositNumLast and depositNumUser state")
195- else if (if ((aF > -1))
196- then (aE == -1)
197+ else if (if ((aG > -1))
198+ then (aF == -1)
197199 else false)
198- then if (aN)
199- then [IntegerEntry(aP, aF)]
200+ then if (aO)
201+ then [IntegerEntry(aQ, aG)]
200202 else ({
201- let aX = aA
202- let aY = size(aX)
203- let aZ = nil
204- func ba (bb,bc) = if ((bc >= aY))
205- then bb
206- else aQ(bb, aX[bc])
203+ let aY = aB
204+ let aZ = size(aY)
205+ let ba = nil
206+ func bb (bc,bd) = if ((bd >= aZ))
207+ then bc
208+ else aR(bc, aY[bd])
207209
208- func bd (bb,bc) = if ((bc >= aY))
209- then bb
210+ func be (bc,bd) = if ((bd >= aZ))
211+ then bc
210212 else throw("List size exceeds 10")
211213
212- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
213- } :+ IntegerEntry(aP, aF))
214- else if (if ((aF > -1))
215- then (aE > -1)
214+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
215+ } :+ IntegerEntry(aQ, aG))
216+ else if (if ((aG > -1))
217+ then (aF > -1)
216218 else false)
217- then if (aN)
218- then [IntegerEntry(aP, aF)]
219+ then if (aO)
220+ then [IntegerEntry(aQ, aG)]
219221 else ({
220- let aX = aA
221- let aY = size(aX)
222- let aZ = nil
223- func ba (bb,bc) = if ((bc >= aY))
224- then bb
225- else aQ(bb, aX[bc])
222+ let aY = aB
223+ let aZ = size(aY)
224+ let ba = nil
225+ func bb (bc,bd) = if ((bd >= aZ))
226+ then bc
227+ else aR(bc, aY[bd])
226228
227- func bd (bb,bc) = if ((bc >= aY))
228- then bb
229+ func be (bc,bd) = if ((bd >= aZ))
230+ then bc
229231 else throw("List size exceeds 10")
230232
231- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
232- } :+ IntegerEntry(aP, aF))
233- else throw(((("uncovered condition: depositNumLast=" + toString(aF)) + " depositNumUser=") + toString(aE)))
233+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
234+ } :+ IntegerEntry(aQ, aG))
235+ else throw(((("uncovered condition: depositNumLast=" + toString(aG)) + " depositNumUser=") + toString(aF)))
234236 }
235237
236238
237-func be (D,bf) = {
238- let bg = G(D)
239- let bh = M(bg, 0)
240-[IntegerEntry(bg, (bh + bf))]
239+func bf (E,bg) = {
240+ let bh = H(E)
241+ let bi = N(bh, 0)
242+[IntegerEntry(bh, (bi + bg))]
241243 }
242244
243245
244-@Callable(bi)
245-func constructor (bj,bk,bl,bm,bn) = if ((bi.caller != this))
246+@Callable(bj)
247+func constructor (bk,bl,bm,bn,bo) = if ((bj.caller != this))
246248 then throw("Permission denied")
247- else [StringEntry(k(), bj), StringEntry(l(), bk), IntegerEntry(m(), bl), IntegerEntry(n(), bm), StringEntry(y(), bn)]
249+ else [StringEntry(l(), bk), StringEntry(m(), bl), IntegerEntry(n(), bm), IntegerEntry(o(), bn), StringEntry(z(), bo)]
248250
249251
250252
251-@Callable(bi)
253+@Callable(bj)
252254 func stake () = {
253- let bo = au()
254- let bp = bo._1
255- let bq = bo._2
256- let bl = bo._3
257- let bm = bo._4
258- if ((size(bi.payments) != 1))
255+ let bp = av()
256+ let bq = bp._1
257+ let br = bp._2
258+ let bm = bp._3
259+ let bn = bp._4
260+ if ((size(bj.payments) != 1))
259261 then throw("Invalid payments size")
260262 else {
261- let br = bi.payments[0]
262- let as = br.amount
263- let bs = (("Invalid asset. " + toBase58String(bq)) + " is expected")
264- let aC = valueOrErrorMessage(br.assetId, bs)
265- if ((aC != bq))
266- then throw(bs)
263+ let bs = bj.payments[0]
264+ let at = bs.amount
265+ let bt = (("Invalid asset. " + toBase58String(br)) + " is expected")
266+ let aD = valueOrErrorMessage(bs.assetId, bt)
267+ if ((aD != br))
268+ then throw(bt)
267269 else {
268- let p = bi.caller
269- let bt = toString(bi.caller)
270- let bu = valueOrElse(ax(p), $Tuple3(true, 0, -1))
271- let aN = bu._1
272- let bv = bu._2
273- let bw = bu._3
274- let bx = if (aN)
275- then as
276- else (as + bv)
277- let by = if (aN)
270+ let q = bj.caller
271+ let bu = toString(bj.caller)
272+ let bv = valueOrElse(ay(q), $Tuple3(true, 0, -1))
273+ let aO = bv._1
274+ let bw = bv._2
275+ let bx = bv._3
276+ let by = if (aO)
277+ then at
278+ else (at + bw)
279+ let bz = if (aO)
278280 then height
279281 else {
280- let bz = addressFromStringValue(Q(l()))
281- V(invoke(bz, "mergeStakesREADONLY", [as, height, bv, bw, bm], nil))
282+ let bA = addressFromStringValue(R(m()))
283+ W(invoke(bA, "mergeStakesREADONLY", [at, height, bw, bx, bn], nil))
282284 }
283- if ((bl > bx))
284- then throw(("Min lock amount is " + toString(bl)))
285+ if ((bm > by))
286+ then throw(("Min lock amount is " + toString(bm)))
285287 else {
286- let bA = aj(as, 1, if (aN)
288+ let bB = ak(at, 1, if (aO)
287289 then 1
288290 else 0)
289- let bB = bA._1
290- let bC = bA._2
291- let bD = bA._3
292- ((([ah("stake", p, bi.transactionId, bv, bw, bx, by)] ++ aM(aN, bt, bv)) ++ ar(p, bx, by)) ++ bB)
291+ let bC = bB._1
292+ let bD = bB._2
293+ let bE = bB._3
294+ ((([ai("stake", q, bj.transactionId, bw, bx, by, bz)] ++ aN(aO, bu, bw)) ++ as(q, by, bz)) ++ bC)
293295 }
294296 }
295297 }
296298 }
297299
298300
299301
300-@Callable(bi)
301-func unstake (as) = if ((size(bi.payments) != 0))
302+@Callable(bj)
303+func unstake (at) = if ((size(bj.payments) != 0))
302304 then throw("unstake doesn't require any payment")
303305 else {
304- let p = bi.caller
305- let bt = toString(p)
306- let bE = au()
307- let bF = bE._1
308- let bq = bE._2
309- let bl = bE._3
310- let bm = bE._4
311- let bG = ay(p)
312- let aN = bG._1
313- let bv = bG._2
314- let bH = bG._3
315- if ((0 >= bv))
306+ let q = bj.caller
307+ let bu = toString(q)
308+ let bF = av()
309+ let bG = bF._1
310+ let br = bF._2
311+ let bm = bF._3
312+ let bn = bF._4
313+ let bH = az(q)
314+ let aO = bH._1
315+ let bw = bH._2
316+ let bI = bH._3
317+ if ((0 >= bw))
316318 then throw("Nothing to unstake")
317- else if ((as > bv))
318- then throw(((("Requested " + toString(as)) + ", but staked only ") + toString(bv)))
319+ else if ((at > bw))
320+ then throw(((("Requested " + toString(at)) + ", but staked only ") + toString(bw)))
319321 else {
320- let bz = addressFromStringValue(Q(l()))
321- let bI = V(invoke(bz, "getUnstakeComissionAmountREADONLY", [as, bH, bm], nil))
322- let bJ = aj(-(as), if ((as == bv))
322+ let bA = addressFromStringValue(R(m()))
323+ let bJ = W(invoke(bA, "getUnstakeComissionAmountREADONLY", [at, bI, bn], nil))
324+ let bK = ak(-(at), if ((at == bw))
323325 then -1
324- else 0, if ((as == bv))
326+ else 0, if ((at == bw))
325327 then -1
326328 else 0)
327- let bB = bJ._1
328- let bC = bJ._2
329- let bD = bJ._3
330- ((([ScriptTransfer(p, (as - bI), bq), ScriptTransfer(Address(bF), bI, bq), ah("unstake", p, bi.transactionId, bv, bH, (bv - as), bH)] ++ aM(false, bt, bv)) ++ ar(p, (bv - as), bH)) ++ bB)
329+ let bC = bK._1
330+ let bD = bK._2
331+ let bE = bK._3
332+ ((([ScriptTransfer(q, (at - bJ), br), ScriptTransfer(Address(bG), bJ, br), ai("unstake", q, bj.transactionId, bw, bI, (bw - at), bI)] ++ aN(false, bu, bw)) ++ as(q, (bw - at), bI)) ++ bC)
331333 }
332334 }
333335
334336
335337
336-@Callable(bi)
337-func deposit () = if ((size(bi.payments) != 1))
338+@Callable(bj)
339+func deposit () = if ((size(bj.payments) != 1))
338340 then throw("exact 1 payment is allowed only")
339341 else {
340- let bK = bi.payments[0]
341- let as = bK.amount
342- let bL = valueOrElse(bK.assetId, h)
343- let bM = toBase58String(bL)
344- let bN = if ((bL == h))
345- then e
346- else d
347- let bO = toBigInt(as)
348- let bC = M(u(), 0)
349- let bP = toBigInt(bC)
350- if ((0 > bC))
342+ let bL = bj.payments[0]
343+ let at = bL.amount
344+ let bM = valueOrElse(bL.assetId, i)
345+ let bN = toBase58String(bM)
346+ let bO = if ((bM == i))
347+ then f
348+ else e
349+ let bP = toBigInt(at)
350+ let bD = N(v(), 0)
351+ let bQ = toBigInt(bD)
352+ if ((0 > bD))
351353 then throw("TODO: case is not supported")
352- else if ((bC == 0))
353- then be(bM, as)
354+ else if ((bD == 0))
355+ then bf(bN, at)
354356 else {
355- let bQ = fraction(bO, f, bP)
356- let bR = z()
357- let aF = M(bR, -1)
358- let bS = (aF + 1)
359- if (!(contains(az, bM)))
360- then throw(((az + " doesn't contain ") + bM))
357+ let bR = fraction(bP, g, bQ)
358+ let bS = A()
359+ let aG = N(bS, -1)
360+ let bT = (aG + 1)
361+ if (!(contains(aA, bN)))
362+ then throw(((aA + " doesn't contain ") + bN))
361363 else {
362- func bT (aR,bU) = {
363- let bV = B(bS, bU)
364- let bW = P(B(aF, bU), "0")
365- (aR :+ (if ((bU == bM))
366- then StringEntry(bV, toString((parseBigIntValue(bW) + bQ)))
367- else StringEntry(bV, bW)))
364+ func bU (aS,bV) = {
365+ let bW = C(bT, bV)
366+ let bX = Q(C(aG, bV), "0")
367+ (aS :+ (if ((bV == bN))
368+ then StringEntry(bW, toString((parseBigIntValue(bX) + bR)))
369+ else StringEntry(bW, bX)))
368370 }
369371
370372 ({
371- let aX = aA
372- let aY = size(aX)
373- let aZ = nil
374- func ba (bb,bc) = if ((bc >= aY))
375- then bb
376- else bT(bb, aX[bc])
373+ let aY = aB
374+ let aZ = size(aY)
375+ let ba = nil
376+ func bb (bc,bd) = if ((bd >= aZ))
377+ then bc
378+ else bU(bc, aY[bd])
377379
378- func bd (bb,bc) = if ((bc >= aY))
379- then bb
380+ func be (bc,bd) = if ((bd >= aZ))
381+ then bc
380382 else throw("List size exceeds 10")
381383
382- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
383- } :+ IntegerEntry(bR, bS))
384+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
385+ } :+ IntegerEntry(bS, bT))
384386 }
385387 }
386388 }
387389
388390
389391
390-@Callable(bi)
392+@Callable(bj)
391393 func claimRewards () = {
392- let p = bi.caller
393- let bt = toString(p)
394- if ((size(bi.payments) > 0))
394+ let q = bj.caller
395+ let bu = toString(q)
396+ if ((size(bj.payments) > 0))
395397 then throw("payments are not accepted")
396398 else {
397- let bX = valueOrElse(ax(p), $Tuple3(true, 0, 0))
398- let aN = bX._1
399- let aO = bX._2
400- let bY = bX._3
401- let aD = toBigInt(aO)
402- let aP = A(bt)
403- let aE = M(aP, -1)
404- let aF = M(z(), -1)
405- func bZ (aR,aS) = {
406- let ca = aB(bt, aS, aD, aE, aF)
407- let aU = ca._1
408- let aV = ca._2
409- let aW = ca._3
410- let aK = ca._4
411- let cb = F(bt, aS)
412- let cc = aR
413- let cd = cc._1
414- let ce = cc._2
415- let cf = makeString([aS, toString(aU)], ":")
416- let cg = makeString([ce, cf], "_")
417- if ((0 >= aU))
418- then $Tuple2(cd, cg)
419- else $Tuple2((((cd :+ ScriptTransfer(p, aU, T(aS))) :+ IntegerEntry(cb, (valueOrElse(getInteger(cb), 0) + aU))) :+ IntegerEntry(aK, 0)), cg)
399+ let bY = valueOrElse(ay(q), $Tuple3(true, 0, 0))
400+ let aO = bY._1
401+ let aP = bY._2
402+ let bZ = bY._3
403+ let aE = toBigInt(aP)
404+ let aQ = B(bu)
405+ let aF = N(aQ, -1)
406+ let aG = N(A(), -1)
407+ func ca (aS,aT) = {
408+ let cb = aC(bu, aT, aE, aF, aG)
409+ let aV = cb._1
410+ let aW = cb._2
411+ let aX = cb._3
412+ let aL = cb._4
413+ let cc = G(bu, aT)
414+ let cd = aS
415+ let ce = cd._1
416+ let cf = cd._2
417+ let cg = makeString([aT, toString(aV)], ":")
418+ let ch = makeString([cf, cg], "_")
419+ if ((0 >= aV))
420+ then $Tuple2(ce, ch)
421+ else $Tuple2((((ce :+ ScriptTransfer(q, aV, U(aT))) :+ IntegerEntry(cc, (valueOrElse(getInteger(cc), 0) + aV))) :+ IntegerEntry(aL, 0)), ch)
420422 }
421423
422- let ch = {
423- let aX = aA
424- let aY = size(aX)
425- let aZ = $Tuple2(nil, "")
426- func ba (bb,bc) = if ((bc >= aY))
427- then bb
428- else bZ(bb, aX[bc])
424+ let ci = {
425+ let aY = aB
426+ let aZ = size(aY)
427+ let ba = $Tuple2(nil, "")
428+ func bb (bc,bd) = if ((bd >= aZ))
429+ then bc
430+ else ca(bc, aY[bd])
429431
430- func bd (bb,bc) = if ((bc >= aY))
431- then bb
432+ func be (bc,bd) = if ((bd >= aZ))
433+ then bc
432434 else throw("List size exceeds 10")
433435
434- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
436+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
435437 }
436- let ci = ch._1
437- let cj = ch._2
438- if ((0 >= size(ci)))
438+ let cj = ci._1
439+ let ck = ci._2
440+ if ((0 >= size(cj)))
439441 then throw("nothing to claim")
440- else ((ci :+ IntegerEntry(aP, aF)) :+ ai(p, bi.transactionId, drop(cj, 1)))
442+ else ((cj :+ IntegerEntry(aQ, aG)) :+ aj(q, bj.transactionId, drop(ck, 1)))
441443 }
442444 }
443445
444446
445447
446-@Callable(bi)
447-func unclaimedRewardsREADONLY (bt) = {
448- func ck (aR,aS) = ((aR + makeString([aS, "0", "0"], ":")) + "_")
448+@Callable(bj)
449+func unclaimedRewardsREADONLY (bu) = {
450+ func cl (aS,aT) = ((aS + makeString([aT, "0", "0"], ":")) + "_")
449451
450- let cl = if ((bt == ""))
452+ let cm = if ((bu == ""))
451453 then {
452- let aX = aA
453- let aY = size(aX)
454- let aZ = ""
455- func ba (bb,bc) = if ((bc >= aY))
456- then bb
457- else ck(bb, aX[bc])
454+ let aY = aB
455+ let aZ = size(aY)
456+ let ba = ""
457+ func bb (bc,bd) = if ((bd >= aZ))
458+ then bc
459+ else cl(bc, aY[bd])
458460
459- func bd (bb,bc) = if ((bc >= aY))
460- then bb
461+ func be (bc,bd) = if ((bd >= aZ))
462+ then bc
461463 else throw("List size exceeds 10")
462464
463- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
465+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
464466 }
465467 else {
466- let p = addressFromStringValue(bt)
467- let cm = valueOrElse(ax(p), $Tuple3(true, 0, 0))
468- let aN = cm._1
469- let aO = cm._2
470- let bY = cm._3
471- let aD = toBigInt(aO)
472- let aP = A(bt)
473- let aE = M(aP, -1)
474- let aF = M(z(), -1)
475- func bZ (aR,aS) = {
476- let cn = aB(bt, aS, aD, aE, aF)
477- let aU = cn._1
478- let aV = cn._2
479- let aW = cn._3
480- let aK = cn._4
481- let co = valueOrElse(getInteger(F(bt, aS)), 0)
482- ((aR + makeString([aS, toString(aU), toString(co)], ":")) + "_")
468+ let q = addressFromStringValue(bu)
469+ let cn = valueOrElse(ay(q), $Tuple3(true, 0, 0))
470+ let aO = cn._1
471+ let aP = cn._2
472+ let bZ = cn._3
473+ let aE = toBigInt(aP)
474+ let aQ = B(bu)
475+ let aF = N(aQ, -1)
476+ let aG = N(A(), -1)
477+ func ca (aS,aT) = {
478+ let co = aC(bu, aT, aE, aF, aG)
479+ let aV = co._1
480+ let aW = co._2
481+ let aX = co._3
482+ let aL = co._4
483+ let cp = valueOrElse(getInteger(G(bu, aT)), 0)
484+ ((aS + makeString([aT, "10", "10"], ":")) + "_")
483485 }
484486
485- let aX = aA
486- let aY = size(aX)
487- let aZ = ""
488- func ba (bb,bc) = if ((bc >= aY))
489- then bb
490- else bZ(bb, aX[bc])
487+ let aY = aB
488+ let aZ = size(aY)
489+ let ba = ""
490+ func bb (bc,bd) = if ((bd >= aZ))
491+ then bc
492+ else ca(bc, aY[bd])
491493
492- func bd (bb,bc) = if ((bc >= aY))
493- then bb
494+ func be (bc,bd) = if ((bd >= aZ))
495+ then bc
494496 else throw("List size exceeds 10")
495497
496- bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
498+ be(bb(bb(bb(bb(bb(bb(bb(bb(bb(bb(ba, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
497499 }
498- $Tuple2(nil, dropRight(cl, 1))
500+ $Tuple2(nil, dropRight(cm, 1))
499501 }
500502
501503
502504
503-@Callable(bi)
504-func nsbtStakingSYSREADONLY (bt) = {
505- let cp = M(u(), 0)
506- if ((bt == ""))
507- then $Tuple2(nil, [0, cp, 0])
505+@Callable(bj)
506+func nsbtStakingSYSREADONLY (bu) = {
507+ let cq = N(v(), 0)
508+ if ((bu == ""))
509+ then $Tuple2(nil, [0, cq, 0])
508510 else {
509- let p = R(bt)
510- let cq = valueOrElse(ax(p), $Tuple3(true, 0, 0))
511- let aN = cq._1
512- let cr = cq._2
513- let bY = cq._3
514- $Tuple2(nil, [cr, cp, bY])
511+ let q = S(bu)
512+ let cr = valueOrElse(ay(q), $Tuple3(true, 0, 0))
513+ let aO = cr._1
514+ let cs = cr._2
515+ let bZ = cr._3
516+ $Tuple2(nil, [cs, cq, bZ])
515517 }
516518 }
517519
518520

github/deemru/w8io/169f3d6 
301.65 ms