tx · Fz8XGheAiqPy5iQSzyAZibArWH7mqsxfC91NZ4Xy29vc

3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J:  -0.01400000 Waves

2022.03.24 09:26 [1977639] smart account 3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J > SELF 0.00000000 Waves

{ "type": 13, "id": "Fz8XGheAiqPy5iQSzyAZibArWH7mqsxfC91NZ4Xy29vc", "fee": 1400000, "feeAssetId": null, "timestamp": 1648103223603, "version": 1, "sender": "3MuGfNhF98CNBCfthhoJEo6SYUv7zTgkK4J", "senderPublicKey": "4DthuG3xjZV9WtZ34Y66AummdAr67wRzwWsVQL4y2bob", "proofs": [ "5tP9bLKVZyyaRcKeLMiEscoHTM5rCd7GWNfKFtexHvHa4RG3i1tWFAhKikQwYucFmr1HoecThD1FfZpxWJfi9ea3" ], "script": "base64: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AaQAAAABCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkABEwAAAACCQABpAAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAETAAAAAIJAAGkAAAAAQUAAAAJb2xkQW1vdW50CQAETAAAAAIJAAGkAAAAAQUAAAAIb2xkU3RhcnQJAARMAAAAAgkAAaQAAAABBQAAAAluZXdBbW91bnQJAARMAAAAAgkAAaQAAAABBQAAAAhuZXdTdGFydAUAAAADbmlsBQAAAAlzZXBhcmF0b3IBAAAAGGZvcm1hdENsYWltSGlzdG9yeVJlY29yZAAAAAIAAAAEdXNlcgAAAA5jbGFpbWVkUmV3YXJkcwkABLkAAAACCQAETAAAAAICAAAACCVzJWQlZCVzCQAETAAAAAIFAAAABHVzZXIJAARMAAAAAgkAAaQAAAABCAUAAAAJbGFzdEJsb2NrAAAABmhlaWdodAkABEwAAAACCQABpAAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQAETAAAAAIFAAAADmNsYWltZWRSZXdhcmRzBQAAAANuaWwFAAAACXNlcGFyYXRvcgEAAAASSGlzdG9yeVJlY29yZEVudHJ5AAAABwAAAAR0eXBlAAAAC3VzZXJBZGRyZXNzAAAABHR4SWQAAAAJb2xkQW1vdW50AAAACG9sZFN0YXJ0AAAACW5ld0Ftb3VudAAAAAhuZXdTdGFydAkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUhpc3RvcnlSZWNvcmQAAAADBQAAAAR0eXBlBQAAAAt1c2VyQWRkcmVzcwUAAAAEdHhJZAkBAAAAE2Zvcm1hdEhpc3RvcnlSZWNvcmQAAAAEBQAAAAlvbGRBbW91bnQFAAAACG9sZFN0YXJ0BQAAAAluZXdBbW91bnQFAAAACG5ld1N0YXJ0AQAAABFDbGFpbUhpc3RvcnlFbnRyeQAAAAMAAAALdXNlckFkZHJlc3MAAAAEdHhJZAAAAA5jbGFpbWVkUmV3YXJkcwkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGtleUhpc3RvcnlSZWNvcmQAAAADAgAAAAVjbGFpbQUAAAALdXNlckFkZHJlc3MFAAAABHR4SWQJAQAAABhmb3JtYXRDbGFpbUhpc3RvcnlSZWNvcmQAAAACCQAEJQAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAA5jbGFpbWVkUmV3YXJkcwEAAAALU3RhdHNSZXN1bHQAAAADAAAADnRvdGFsTG9ja2VkSW5jAAAADGxvY2tDb3VudEluYwAAAA11c2Vyc0NvdW50SW5jBAAAAApsb2Nrc0NvdW50CQEAAAAMZ2V0SW50T3JaZXJvAAAAAQkBAAAAEmtleVN0YXRzTG9ja3NDb3VudAAAAAAEAAAACnVzZXJzQ291bnQJAQAAAAxnZXRJbnRPclplcm8AAAABCQEAAAASa2V5U3RhdHNVc2Vyc0NvdW50AAAAAAQAAAALdG90YWxBbW91bnQJAQAAAAxnZXRJbnRPclplcm8AAAABCQEAAAAXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAAABAAAAA50b3RhbEFtb3VudE5ldwkAAGQAAAACBQAAAAt0b3RhbEFtb3VudAUAAAAOdG90YWxMb2NrZWRJbmMJAAUVAAAAAwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEmtleVN0YXRzTG9ja3NDb3VudAAAAAAJAABkAAAAAgUAAAAKbG9ja3NDb3VudAUAAAAMbG9ja0NvdW50SW5jCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAASa2V5U3RhdHNVc2Vyc0NvdW50AAAAAAkAAGQAAAACBQAAAAp1c2Vyc0NvdW50BQAAAA11c2Vyc0NvdW50SW5jCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAAABQAAAA50b3RhbEFtb3VudE5ldwUAAAADbmlsBQAAAAt0b3RhbEFtb3VudAUAAAAOdG90YWxBbW91bnROZXcBAAAAD0xvY2tQYXJhbXNFbnRyeQAAAAMAAAALdXNlckFkZHJlc3MAAAAGYW1vdW50AAAABXN0YXJ0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAAC3VzZXJBZGRyZXNzBQAAAAZhbW91bnQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZrZXlMb2NrUGFyYW1TdGFydEJsb2NrAAAAAQUAAAALdXNlckFkZHJlc3MFAAAABXN0YXJ0BQAAAANuaWwBAAAAD2dldFBhcmFtc09yRmFpbAAAAAAEAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAAaa2V5TmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAAAACQAFFgAAAAQJAAJZAAAAAQkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAQbmV1dHJpbm9Db250cmFjdAkBAAAAGWtleUF1Y3Rpb25Db250cmFjdEFkZHJlc3MAAAAACQACWQAAAAEJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAAEG5ldXRyaW5vQ29udHJhY3QJAQAAAAxrZXlCb25kQXNzZXQAAAAACQEAAAAMZ2V0SW50T3JGYWlsAAAAAQkBAAAAEGtleU1pbkxvY2tBbW91bnQAAAAACQEAAAAMZ2V0SW50T3JGYWlsAAAAAQkBAAAAC2tleUhhbGZMaWZlAAAAAAEAAAAMaXNBY3RpdmVVc2VyAAAAAQAAAAt1c2VyQWRkcmVzcwkAAGYAAAACCQEAAAAMZ2V0SW50T3JFbHNlAAAAAgkBAAAAFmtleUxvY2tQYXJhbVVzZXJBbW91bnQAAAABBQAAAAt1c2VyQWRkcmVzcwAAAAAAAAAAAAAAAAAAAAAAAAEAAAATZ2V0VXNlclBhcmFtc09yVW5pdAAAAAEAAAALdXNlckFkZHJlc3MDCQEAAAAMaXNBY3RpdmVVc2VyAAAAAQUAAAALdXNlckFkZHJlc3MJAAUVAAAAAwcJAQAAAAxnZXRJbnRPckZhaWwAAAABCQEAAAAWa2V5TG9ja1BhcmFtVXNlckFtb3VudAAAAAEFAAAAC3VzZXJBZGRyZXNzCQEAAAAMZ2V0SW50T3JGYWlsAAAAAQkBAAAAFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2sAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAEdW5pdAEAAAATZ2V0VXNlclBhcmFtc09yRmFpbAAAAAEAAAALdXNlckFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkBAAAAE2dldFVzZXJQYXJhbXNPclVuaXQAAAABBQAAAAt1c2VyQWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAABVVzZXIgCQAEJQAAAAEFAAAAC3VzZXJBZGRyZXNzAgAAAA8gaXMgbm90IGRlZmluZWQAAAAAEnN1cHBvcnRlZEFzc2V0c1N0cgkBAAAADGdldFN0ck9yRWxzZQAAAAIJAQAAABhrZXlTdXBwb3J0ZWRSZXdhcmRBc3NldHMAAAAAAgAAAAAAAAAAE3N1cHBvcnRlZEFzc2V0c0xpc3QJAAS1AAAAAgUAAAASc3VwcG9ydGVkQXNzZXRzU3RyAgAAAAFfAQAAAApjYWxjUmV3YXJkAAAABQAAAAt1c2VyQWRkcmVzcwAAAAdhc3NldElkAAAADXN0YWtlZEFtb3VudFgAAAAOZGVwb3NpdE51bVVzZXIAAAAOZGVwb3NpdE51bUxhc3QEAAAAF3Jld2FyZFBlck5zYnRTdW1MYXN0S0VZCQEAAAAVa2V5UmV3YXJkUGVyTnNidFN1bUF0AAAAAgUAAAAOZGVwb3NpdE51bUxhc3QFAAAAB2Fzc2V0SWQEAAAACnN1bUxhc3RYMTgJAAGnAAAAAQkBAAAADGdldFN0ck9yRWxzZQAAAAIJAQAAABVrZXlSZXdhcmRQZXJOc2J0U3VtQXQAAAACBQAAAA5kZXBvc2l0TnVtTGFzdAUAAAAHYXNzZXRJZAIAAAABMAQAAAAKc3VtVXNlclgxOAkAAacAAAABCQEAAAAMZ2V0U3RyT3JFbHNlAAAAAgkBAAAAFWtleVJld2FyZFBlck5zYnRTdW1BdAAAAAIFAAAADmRlcG9zaXROdW1Vc2VyBQAAAAdhc3NldElkAgAAAAEwBAAAABFyZXdhcmREeW5hbWljUGFydAkAAaAAAAABCQABPAAAAAMJAAE4AAAAAgUAAAAKc3VtTGFzdFgxOAUAAAAKc3VtVXNlclgxOAUAAAANc3Rha2VkQW1vdW50WAUAAAAHTVVMVFgxOAQAAAATcmV3YXJkQ2FjaGVkUGFydEtFWQkBAAAACWtleVJld2FyZAAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAAdhc3NldElkBAAAABByZXdhcmRDYWNoZWRQYXJ0CQEAAAAMZ2V0SW50T3JFbHNlAAAAAgUAAAATcmV3YXJkQ2FjaGVkUGFydEtFWQAAAAAAAAAAAAkABRYAAAAECQAAZAAAAAIFAAAAEHJld2FyZENhY2hlZFBhcnQFAAAAEXJld2FyZER5bmFtaWNQYXJ0BQAAABByZXdhcmRDYWNoZWRQYXJ0BQAAABFyZXdhcmREeW5hbWljUGFydAUAAAATcmV3YXJkQ2FjaGVkUGFydEtFWQEAAAANUmV3YXJkRW50cmllcwAAAAMAAAAJaXNOZXdVc2VyAAAAC3VzZXJBZGRyZXNzAAAADHN0YWtlZEFtb3VudAQAAAANc3Rha2VkQW1vdW50WAkAATYAAAABBQAAAAxzdGFrZWRBbW91bnQEAAAAG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQkBAAAAG2tleVVzZXJSZXdhcmRGcm9tRGVwb3NpdE51bQAAAAEFAAAAC3VzZXJBZGRyZXNzBAAAAA5kZXBvc2l0TnVtVXNlcgkBAAAADGdldEludE9yRWxzZQAAAAIFAAAAG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQD//////////wQAAAAOZGVwb3NpdE51bUxhc3QJAQAAAAxnZXRJbnRPckVsc2UAAAACCQEAAAARa2V5RGVwb3NpdE51bUxhc3QAAAAAAP//////////CgEAAAAbZm9yRWFjaEFzc2V0Q2FjaGVVc2VyUmV3YXJkAAAAAgAAAAVhY2N1bQAAAAVhc3NldAQAAAALJHQwNzM1OTc0OTQJAQAAAApjYWxjUmV3YXJkAAAABQUAAAALdXNlckFkZHJlc3MFAAAABWFzc2V0BQAAAA1zdGFrZWRBbW91bnRYBQAAAA5kZXBvc2l0TnVtVXNlcgUAAAAOZGVwb3NpdE51bUxhc3QEAAAAC3Jld2FyZFRvdGFsCAUAAAALJHQwNzM1OTc0OTQAAAACXzEEAAAABmNhY2hlZAgFAAAACyR0MDczNTk3NDk0AAAAAl8yBAAAAAdkeW5hbWljCAUAAAALJHQwNzM1OTc0OTQAAAACXzMEAAAAE3Jld2FyZENhY2hlZFBhcnRLRVkIBQAAAAskdDA3MzU5NzQ5NAAAAAJfNAkABE0AAAACBQAAAAVhY2N1bQkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE3Jld2FyZENhY2hlZFBhcnRL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AAAAAAoJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABt1c2VyUmV3YXJkRnJvbURlcG9zaXROdW1LRVkFAAAADmRlcG9zaXROdW1MYXN0CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAJHVuY292ZXJlZCBjb25kaXRpb246IGRlcG9zaXROdW1MYXN0PQkAAaQAAAABBQAAAA5kZXBvc2l0TnVtTGFzdAIAAAAQIGRlcG9zaXROdW1Vc2VyPQkAAaQAAAABBQAAAA5kZXBvc2l0TnVtVXNlcgEAAAAiSW5jcmVtZW50Tm90RGlzdHJpYnV0ZWRSZXdhcmRFbnRyeQAAAAIAAAADdGtuAAAACWFtb3VudEluYwQAAAAXbm90RGlzdHJpYnV0ZWRSZXdhcmRLRVkJAQAAABdrZXlOb3REaXN0cmlidXRlZFJld2FyZAAAAAEFAAAAA3RrbgQAAAAUbm90RGlzdHJpYnV0ZWRSZXdhcmQJAQAAAAxnZXRJbnRPckVsc2UAAAACBQAAABdub3REaXN0cmlidXRlZFJld2FyZEtFWQAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAXbm90RGlzdHJpYnV0ZWRSZXdhcmRLRVkJAABkAAAAAgUAAAAUbm90RGlzdHJpYnV0ZWRSZXdhcmQFAAAACWFtb3VudEluYwUAAAADbmlsAAAABwAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAUAAAAXbmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAAATbWF0aENvbnRyYWN0QWRkcmVzcwAAAA1taW5Mb2NrQW1vdW50AAAACGhhbGZMaWZlAAAAFXN1cHBvcnRlZFJld2FyZEFzc2V0cwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABFQZXJtaXNzaW9uIGRlbmllZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAaa2V5TmV1dHJpbm9Db250cmFjdEFkZHJlc3MAAAAABQAAABduZXV0cmlub0NvbnRyYWN0QWRkcmVzcwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAWa2V5TWF0aENvbnRyYWN0QWRkcmVzcwAAAAAFAAAAE21hdGhDb250cmFjdEFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABBrZXlNaW5Mb2NrQW1vdW50AAAAAAUAAAANbWluTG9ja0Ftb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAC2tleUhhbGZMaWZlAAAAAAUAAAAIaGFsZkxpZmUJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGGtleVN1cHBvcnRlZFJld2FyZEFzc2V0cwAAAAAFAAAAFXN1cHBvcnRlZFJld2FyZEFzc2V0cwUAAAADbmlsAAAAAWkBAAAABXN0YWtlAAAAAAQAAAANJHQwMTExNDgxMTIyNwkBAAAAD2dldFBhcmFtc09yRmFpbAAAAAAEAAAAD2F1Y3Rpb25Db250cmFjdAgFAAAADSR0MDExMTQ4MTEyMjcAAAACXzEEAAAAC2JvbmRBc3NldElkCAUAAAANJHQwMTExNDgxMTIyNwAAAAJfMgQAAAANbWluTG9ja0Ftb3VudAgFAAAADSR0MDExMTQ4MTEyMjcAAAACXzMEAAAACGhhbGZMaWZlCAUAAAANJHQwMTExNDgxMTIyNwAAAAJfNAMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAVSW52YWxpZCBwYXltZW50cyBzaXplBAAAAAdwYXltZW50CQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAAZhbW91bnQIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAATaW52YWxpZEFzc2V0TWVzc2FnZQkAASwAAAACCQABLAAAAAICAAAAD0ludmFsaWQgYXNzZXQuIAkAAlgAAAABBQAAAAtib25kQXNzZXRJZAIAAAAMIGlzIGV4cGVjdGVkBAAAAAdhc3NldElkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAAE2ludmFsaWRBc3NldE1lc3NhZ2UDCQEAAAACIT0AAAACBQAAAAdhc3NldElkBQAAAAtib25kQXNzZXRJZAkAAAIAAAABBQAAABNpbnZhbGlkQXNzZXRNZXNzYWdlBAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADSR0MDExNzY5MTE4NzYJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAABNnZXRVc2VyUGFyYW1zT3JVbml0AAAAAQUAAAALdXNlckFkZHJlc3MJAAUVAAAAAwYAAAAAAAAAAAAA//////////8EAAAACWlzTmV3VXNlcggFAAAADSR0MDExNzY5MTE4NzYAAAACXzEEAAAACmxvY2tBbW91bnQIBQAAAA0kdDAxMTc2OTExODc2AAAAAl8yBAAAAA9sb2NrU3RhcnRIZWlnaHQIBQAAAA0kdDAxMTc2OTExODc2AAAAAl8zBAAAAAxtZXJnZWRBbW91bnQDBQAAAAlpc05ld1VzZXIFAAAABmFtb3VudAkAAGQAAAACBQAAAAZhbW91bnQFAAAACmxvY2tBbW91bnQEAAAAEW1lcmdlZFN0YXJ0SGVpZ2h0AwUAAAAJaXNOZXdVc2VyBQAAAAZoZWlnaHQEAAAADG1hdGhDb250cmFjdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAABZrZXlNYXRoQ29udHJhY3RBZGRyZXNzAAAAAAkBAAAABWFzSW50AAAAAQkAA/wAAAAEBQAAAAxtYXRoQ29udHJhY3QCAAAAE21lcmdlU3Rha2VzUkVBRE9OTFkJAARMAAAAAgUAAAAGYW1vdW50CQAETAAAAAIFAAAABmhlaWdodAkABEwAAAACBQAAAApsb2NrQW1vdW50CQAETAAAAAIFAAAAD2xvY2tTdGFydEhlaWdodAkABEwAAAACBQAAAAhoYWxmTGlmZQUAAAADbmlsBQAAAANuaWwDCQAAZgAAAAIFAAAADW1pbkxvY2tBbW91bnQFAAAADG1lcmdlZEFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAE01pbiBsb2NrIGFtb3VudCBpcyAJAAGkAAAAAQUAAAANbWluTG9ja0Ftb3VudAQAAAANJHQwMTIzMjYxMjQyOAkBAAAAC1N0YXRzUmVzdWx0AAAAAwUAAAAGYW1vdW50AAAAAAAAAAABAwUAAAAJaXNOZXdVc2VyAAAAAAAAAAABAAAAAAAAAAAABAAAAAxzdGF0c0VudHJpZXMIBQAAAA0kdDAxMjMyNjEyNDI4AAAAAl8xBAAAAAt0b3RhbFN0YWtlZAgFAAAADSR0MDEyMzI2MTI0MjgAAAACXzIEAAAADnRvdGFsU3Rha2VkTmV3CAUAAAANJHQwMTIzMjYxMjQyOAAAAAJfMwkABE4AAAACCQAETgAAAAIJAAROAAAAAgkABEwAAAACCQEAAAASSGlzdG9yeVJlY29yZEVudHJ5AAAABwIAAAAFc3Rha2UFAAAAC3VzZXJBZGRyZXNzCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBQAAAApsb2NrQW1vdW50BQAAAA9sb2NrU3RhcnRIZWlnaHQFAAAADG1lcmdlZEFtb3VudAUAAAARbWVyZ2VkU3RhcnRIZWlnaHQFAAAAA25pbAkBAAAADVJld2FyZEVudHJpZXMAAAADBQAAAAlpc05ld1VzZXIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAApsb2NrQW1vdW50CQEAAAAPTG9ja1BhcmFtc0VudHJ5AAAAAwUAAAALdXNlckFkZHJlc3MFAAAADG1lcmdlZEFtb3VudAUAAAARbWVyZ2VkU3RhcnRIZWlnaHQFAAAADHN0YXRzRW50cmllcwAAAAFpAQAAAAd1bnN0YWtlAAAAAQAAAAZhbW91bnQDCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAAI3Vuc3Rha2UgZG9lc24ndCByZXF1aXJlIGFueSBwYXltZW50BAAAAAt1c2VyQWRkcmVzcwgFAAAAAWkAAAAGY2FsbGVyBAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABBQAAAAt1c2VyQWRkcmVzcwQAAAANJHQwMTI5MTQxMjk5MgkBAAAAD2dldFBhcmFtc09yRmFpbAAAAAAEAAAADmF1Y3Rpb25BZGRyZXNzCAUAAAANJHQwMTI5MTQxMjk5MgAAAAJfMQQAAAALYm9uZEFzc2V0SWQIBQAAAA0kdDAxMjkxNDEyOTkyAAAAAl8yBAAAAA1taW5Mb2NrQW1vdW50CAUAAAAN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dWVPckVsc2UAAAACCAUAAAADcG10AAAAB2Fzc2V0SWQFAAAAB1dBVkVTSUQEAAAADXBtdEFzc2V0SWRTdHIJAAJYAAAAAQUAAAAKcG10QXNzZXRJZAQAAAAIcG10TXVsdFgDCQAAAAAAAAIFAAAACnBtdEFzc2V0SWQFAAAAB1dBVkVTSUQFAAAABk1VTFRYOAUAAAAGTVVMVFg2BAAAAAdhbW91bnRYCQABNgAAAAEFAAAABmFtb3VudAQAAAALdG90YWxTdGFrZWQJAQAAAAxnZXRJbnRPckVsc2UAAAACCQEAAAAXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQAAAAAAAAAAAAAAAAABAAAAAx0b3RhbFN0YWtlZFgJAAE2AAAAAQUAAAALdG90YWxTdGFrZWQDCQAAZgAAAAIAAAAAAAAAAAAFAAAAC3RvdGFsU3Rha2VkCQAAAgAAAAECAAAAG1RPRE86IGNhc2UgaXMgbm90IHN1cHBvcnRlZAMJAAAAAAAAAgUAAAALdG90YWxTdGFrZWQAAAAAAAAAAAAJAQAAACJJbmNyZW1lbnROb3REaXN0cmlidXRlZFJld2FyZEVudHJ5AAAAAgUAAAANcG10QXNzZXRJZFN0cgUAAAAGYW1vdW50BAAAABByZXdhcmRQZXJOc2J0WDE4CQABPAAAAAMFAAAAB2Ftb3VudFgFAAAAB01VTFRYMTgFAAAADHRvdGFsU3Rha2VkWAQAAAARZGVwb3NpdE51bUxhc3RLRVkJAQAAABFrZXlEZXBvc2l0TnVtTGFzdAAAAAAEAAAADmRlcG9zaXROdW1MYXN0CQEAAAAMZ2V0SW50T3JFbHNlAAAAAgUAAAARZGVwb3NpdE51bUxhc3RLRVkA//////////8EAAAADWRlcG9zaXROdW1OZXcJAABkAAAAAgUAAAAOZGVwb3NpdE51bUxhc3QAAAAAAAAAAAEDCQEAAAABIQAAAAEJAQAAAAhjb250YWlucwAAAAIFAAAAEnN1cHBvcnRlZEFzc2V0c1N0cgUAAAANcG10QXNzZXRJZFN0cgkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgUAAAASc3VwcG9ydGVkQXNzZXRzU3RyAgAAABEgZG9lc24ndCBjb250YWluIAUAAAANcG10QXNzZXRJZFN0cgoBAAAAF3Jl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AAD//////////woBAAAAH2ZvckVhY2hBc3NldENhbGNVbmNsYWltZWRSZXdhcmQAAAACAAAABWFjY3VtAAAABWFzc2V0BAAAAA0kdDAxNjM1NjE2NDk0CQEAAAAKY2FsY1Jld2FyZAAAAAUFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAVhc3NldAUAAAANc3Rha2VkQW1vdW50WAUAAAAOZGVwb3NpdE51bVVzZXIFAAAADmRlcG9zaXROdW1MYXN0BAAAAAtyZXdhcmRUb3RhbAgFAAAADSR0MDE2MzU2MTY0OTQAAAACXzEEAAAABmNhY2hlZAgFAAAADSR0MDE2MzU2MTY0OTQAAAACXzIEAAAAB2R5bmFtaWMIBQAAAA0kdDAxNjM1NjE2NDk0AAAAAl8zBAAAABNyZXdhcmRDYWNoZWRQYXJ0S0VZCAUAAAANJHQwMTYzNTYxNjQ5NAAAAAJfNAQAAAAKY2xhaW1lZEtFWQkBAAAACmtleUNsYWltZWQAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAFYXNzZXQEAAAADSR0MDE2NTU0MTY1OTEFAAAABWFjY3VtBAAAAARkYXRhCAUAAAANJHQwMTY1NTQxNjU5MQAAAAJfMQQAAAARY2xhaW1lZEFtdEJ5QXNzZXQIBQAAAA0kdDAxNjU1NDE2NTkxAAAAAl8yBAAAAAduZXdQYXJ0CQAEuQAAAAIJAARMAAAAAgUAAAAFYXNzZXQJAARMAAAAAgkAAaQAAAABBQAAAAtyZXdhcmRUb3RhbAUAAAADbmlsAgAAAAE6BAAAABRjbGFpbWVkQW10QnlBc3NldE5ldwkABLkAAAACCQAETAAAAAIFAAAAEWNsYWltZWRBbXRCeUFzc2V0CQAETAAAAAIFAAAAB25ld1BhcnQFAAAAA25pbAIAAAABXwMJAABnAAAAAgAAAAAAAAAAAAUAAAALcmV3YXJkVG90YWwJAAUUAAAAAgUAAAAEZGF0YQUAAAAUY2xhaW1lZEFtdEJ5QXNzZXROZXcJAAUUAAAAAgkABE0AAAACCQAETQAAAAIJAARNAAAAAgUAAAAEZGF0YQkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAAC3Jld2FyZFRvdGFsCQEAAAALdG9Bc3NldFZlY3QA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BSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgkBAAAABSRmMF8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoEAAAAC3VzZXJBZGRyZXNzCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAA51c2VyQWRkcmVzc1N0cgQAAAANJHQwMTc4MjQxNzkyOQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkBAAAAE2dldFVzZXJQYXJhbXNPclVuaXQAAAABBQAAAAt1c2VyQWRkcmVzcwkABRUAAAADBgAAAAAAAAAAAAAAAAAAAAAAAAQAAAAJaXNOZXdVc2VyCAUAAAANJHQwMTc4MjQxNzkyOQAAAAJfMQQAAAAMc3Rha2VkQW1vdW50CAUAAAANJHQwMTc4MjQxNzkyOQAAAAJfMgQAAAAMc3Rha2luZ1N0YXJ0CAUAAAANJHQwMTc4MjQxNzkyOQAAAAJfMwQAAAANc3Rha2VkQW1vdW50WAkAATYAAAABBQAAAAxzdGFrZWRBbW91bnQEAAAAG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQkBAAAAG2tleVVzZXJSZXdhcmRGcm9tRGVwb3NpdE51bQAAAAEFAAAADnVzZXJBZGRyZXNzU3RyBAAAAA5kZXBvc2l0TnVtVXNlcgkBAAAADGdldEludE9yRWxzZQAAAAIFAAAAG3VzZXJSZXdhcmRGcm9tRGVwb3NpdE51bUtFWQD//////////wQAAAAOZGVwb3NpdE51bUxhc3QJAQAAAAxnZXRJbnRPckVsc2UAAAACCQEAAAARa2V5RGVwb3NpdE51bUxhc3QAAAAAAP//////////CgEAAAAfZm9yRWFjaEFzc2V0Q2FsY1VuY2xhaW1lZFJld2FyZAAAAAIAAAAFYWNjdW0AAAAFYXNzZXQEAAAADSR0MDE4Mjc1MTg0MTMJAQAAAApjYWxjUmV3YXJkAAAABQUAAAAOdXNlckFkZHJlc3NTdHIFAAAA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", "chainId": 84, "height": 1977639, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DH269kvVhknyaHD8irPkUJFpmN7AL2HoXCJizucjFngr Next: 6dE1gqpaf9zpKivoEwrQki2CfnyWWU8EdDSXpQKEPL6m Diff:
OldNewDifferences
7171 func E (p,D) = makeString(["%s%s%s", "rwd", p, D], a)
7272
7373
74-func F (D) = makeString(["%s%s", "notDistributed", D], a)
74+func F (p,D) = makeString(["%s%s%s", "clm", p, D], a)
7575
7676
77-func G (H,I) = fraction(toBigInt(H), f, I)
77+func G (D) = makeString(["%s%s", "notDistributed", D], a)
7878
7979
80-func J (K) = valueOrElse(getInteger(this, K), 0)
80+func H (I,J) = fraction(toBigInt(I), f, J)
8181
8282
83-func L (K,M) = valueOrElse(getInteger(this, K), M)
83+func K (L) = valueOrElse(getInteger(this, L), 0)
8484
8585
86-func N (K) = valueOrErrorMessage(getInteger(this, K), (("Mandatory this." + K) + " is not defined"))
86+func M (L,N) = valueOrElse(getInteger(this, L), N)
8787
8888
89-func O (K,M) = valueOrElse(getString(this, K), M)
89+func O (L) = valueOrErrorMessage(getInteger(this, L), (("Mandatory this." + L) + " is not defined"))
9090
9191
92-func P (K) = valueOrErrorMessage(getString(this, K), (("Mandatory this." + K) + " is not defined"))
92+func P (L,N) = valueOrElse(getString(this, L), N)
9393
9494
95-func Q (R) = valueOrErrorMessage(addressFromString(R), ("couldn't parse passed addressStr=" + R))
95+func Q (L) = valueOrErrorMessage(getString(this, L), (("Mandatory this." + L) + " is not defined"))
9696
9797
98-func S (T) = if ((T == g))
99- then unit
100- else fromBase58String(T)
98+func R (S) = valueOrErrorMessage(addressFromString(S), ("couldn't parse passed addressStr=" + S))
10199
102100
103-func U (V) = {
104- let W = V
105- if ($isInstanceOf(W, "Int"))
101+func T (U) = if ((U == g))
102+ then unit
103+ else fromBase58String(U)
104+
105+
106+func V (W) = {
107+ let X = W
108+ if ($isInstanceOf(X, "Int"))
106109 then {
107- let X = W
108- X
110+ let Y = X
111+ Y
109112 }
110113 else throw("fail to cast into Int")
111114 }
112115
113116
114-func Y (Z,aa,ab,ac) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(Z), toString(aa), toString(ab), toString(ac)], a)
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)
115118
116119
117-func ad (s,p,t,Z,aa,ab,ac) = StringEntry(r(s, p, t), Y(Z, aa, ab, ac))
120+func ae (af,ag) = makeString(["%s%d%d%s", af, toString(lastBlock.height), toString(lastBlock.timestamp), ag], a)
118121
119122
120-func ae (af,ag,ah) = {
121- let ai = J(v())
122- let aj = J(w())
123- let ak = J(u())
124- let al = (ak + af)
125- $Tuple3([IntegerEntry(v(), (ai + ag)), IntegerEntry(w(), (aj + ah)), IntegerEntry(u(), al)], ak, al)
123+func ah (s,p,t,aa,ab,ac,ad) = StringEntry(r(s, p, t), Z(aa, ab, ac, ad))
124+
125+
126+func ai (p,t,ag) = StringEntry(r("claim", p, t), ae(toString(p), ag))
127+
128+
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)
126135 }
127136
128137
129-func am (p,an,ao) = [IntegerEntry(o(p), an), IntegerEntry(q(p), ao)]
138+func ar (p,as,at) = [IntegerEntry(o(p), as), IntegerEntry(q(p), at)]
130139
131140
132-func ap () = {
133- let aq = addressFromStringValue(P(k()))
134- $Tuple4(fromBase58String(getStringValue(aq, j())), fromBase58String(getStringValue(aq, i())), N(m()), N(n()))
141+func au () = {
142+ let av = addressFromStringValue(Q(k()))
143+ $Tuple4(fromBase58String(getStringValue(av, j())), fromBase58String(getStringValue(av, i())), O(m()), O(n()))
135144 }
136145
137146
138-func ar (p) = (L(o(p), 0) > 0)
147+func aw (p) = (M(o(p), 0) > 0)
139148
140149
141-func as (p) = if (ar(p))
142- then $Tuple3(false, N(o(p)), N(q(p)))
150+func ax (p) = if (aw(p))
151+ then $Tuple3(false, O(o(p)), O(q(p)))
143152 else unit
144153
145154
146-func at (p) = valueOrErrorMessage(as(p), (("User " + toString(p)) + " is not defined"))
155+func ay (p) = valueOrErrorMessage(ax(p), (("User " + toString(p)) + " is not defined"))
147156
148157
149-let au = O(y(), "")
158+let az = P(y(), "")
150159
151-let av = split(au, "_")
160+let aA = split(az, "_")
152161
153-func aw (p,ax,ay,az,aA) = {
154- let aB = B(aA, ax)
155- let aC = parseBigIntValue(O(B(aA, ax), "0"))
156- let aD = parseBigIntValue(O(B(az, ax), "0"))
157- let aE = toInt(fraction((aC - aD), ay, f))
158- let aF = E(p, ax)
159- let aG = L(aF, 0)
160- $Tuple4((aG + aE), aG, aE, aF)
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)
161170 }
162171
163172
164-func aH (aI,p,aJ) = {
165- let ay = toBigInt(aJ)
166- let aK = A(p)
167- let az = L(aK, -1)
168- let aA = L(z(), -1)
169- func aL (aM,aN) = {
170- let aO = aw(p, aN, ay, az, aA)
171- let aP = aO._1
172- let aQ = aO._2
173- let aR = aO._3
174- let aF = aO._4
175- (aM :+ IntegerEntry(aF, aP))
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))
176185 }
177186
178- if (if ((aA == -1))
179- then (az == -1)
187+ if (if ((aF == -1))
188+ then (aE == -1)
180189 else false)
181190 then nil
182- else if (if ((aA == -1))
183- then (az > -1)
191+ else if (if ((aF == -1))
192+ then (aE > -1)
184193 else false)
185194 then throw("invalid depositNumLast and depositNumUser state")
186- else if (if ((aA > -1))
187- then (az == -1)
195+ else if (if ((aF > -1))
196+ then (aE == -1)
188197 else false)
189- then if (aI)
190- then [IntegerEntry(aK, aA)]
191- else throw("isNewUser must not be false in 5 + 6 cases")
192- else if (if ((aA > -1))
193- then (az > -1)
198+ then if (aN)
199+ then [IntegerEntry(aP, aF)]
200+ 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])
207+
208+ func bd (bb,bc) = if ((bc >= aY))
209+ then bb
210+ else throw("List size exceeds 10")
211+
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)
194216 else false)
195- then if (aI)
196- then throw((((("invalid management for isNewUser=" + toString(aI)) + " and depositNumUser=") + toString(az)) + " during full unstake"))
217+ then if (aN)
218+ then [IntegerEntry(aP, aF)]
197219 else ({
198- let aS = av
199- let aT = size(aS)
200- let aU = nil
201- func aV (aW,aX) = if ((aX >= aT))
202- then aW
203- else aL(aW, aS[aX])
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])
204226
205- func aY (aW,aX) = if ((aX >= aT))
206- then aW
227+ func bd (bb,bc) = if ((bc >= aY))
228+ then bb
207229 else throw("List size exceeds 10")
208230
209- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
210- } :+ IntegerEntry(aK, aA))
211- else throw(((("uncovered condition: depositNumLast=" + toString(aA)) + " depositNumUser=") + toString(az)))
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)))
212234 }
213235
214236
215-func aZ (D,ba) = {
216- let bb = F(D)
217- let bc = L(bb, 0)
218-[IntegerEntry(bb, (bc + ba))]
237+func be (D,bf) = {
238+ let bg = G(D)
239+ let bh = M(bg, 0)
240+[IntegerEntry(bg, (bh + bf))]
219241 }
220242
221243
222-@Callable(bd)
223-func constructor (be,bf,bg,bh,bi) = if ((bd.caller != this))
244+@Callable(bi)
245+func constructor (bj,bk,bl,bm,bn) = if ((bi.caller != this))
224246 then throw("Permission denied")
225- else [StringEntry(k(), be), StringEntry(l(), bf), IntegerEntry(m(), bg), IntegerEntry(n(), bh), StringEntry(y(), bi)]
247+ else [StringEntry(k(), bj), StringEntry(l(), bk), IntegerEntry(m(), bl), IntegerEntry(n(), bm), StringEntry(y(), bn)]
226248
227249
228250
229-@Callable(bd)
251+@Callable(bi)
230252 func stake () = {
231- let bj = ap()
232- let bk = bj._1
233- let bl = bj._2
234- let bg = bj._3
235- let bh = bj._4
236- if ((size(bd.payments) != 1))
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))
237259 then throw("Invalid payments size")
238260 else {
239- let bm = bd.payments[0]
240- let an = bm.amount
241- let bn = (("Invalid asset. " + toBase58String(bl)) + " is expected")
242- let ax = valueOrErrorMessage(bm.assetId, bn)
243- if ((ax != bl))
244- then throw(bn)
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)
245267 else {
246- let p = bd.caller
247- let bo = toString(bd.caller)
248- let bp = valueOrElse(as(p), $Tuple3(true, 0, -1))
249- let aI = bp._1
250- let bq = bp._2
251- let br = bp._3
252- let bs = if (aI)
253- then an
254- else (an + bq)
255- let bt = if (aI)
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)
256278 then height
257279 else {
258- let bu = addressFromStringValue(P(l()))
259- U(invoke(bu, "mergeStakesREADONLY", [an, height, bq, br, bh], nil))
280+ let bz = addressFromStringValue(Q(l()))
281+ V(invoke(bz, "mergeStakesREADONLY", [as, height, bv, bw, bm], nil))
260282 }
261- if ((bg > bs))
262- then throw(("Min lock amount is " + toString(bg)))
283+ if ((bl > bx))
284+ then throw(("Min lock amount is " + toString(bl)))
263285 else {
264- let bv = ae(an, 1, if (aI)
286+ let bA = aj(as, 1, if (aN)
265287 then 1
266288 else 0)
267- let bw = bv._1
268- let bx = bv._2
269- let by = bv._3
270- ((([ad("stake", p, bd.transactionId, bq, br, bs, bt)] ++ aH(aI, bo, bq)) ++ am(p, bs, bt)) ++ bw)
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)
271293 }
272294 }
273295 }
275297
276298
277299
278-@Callable(bd)
279-func unstake (an) = if ((size(bd.payments) != 0))
300+@Callable(bi)
301+func unstake (as) = if ((size(bi.payments) != 0))
280302 then throw("unstake doesn't require any payment")
281303 else {
282- let p = bd.caller
283- let bo = toString(p)
284- let bz = ap()
285- let bA = bz._1
286- let bl = bz._2
287- let bg = bz._3
288- let bh = bz._4
289- let bB = at(p)
290- let aI = bB._1
291- let bq = bB._2
292- let bC = bB._3
293- if ((0 >= bq))
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))
294316 then throw("Nothing to unstake")
295- else if ((an > bq))
296- then throw(((("Requested " + toString(an)) + ", but staked only ") + toString(bq)))
317+ else if ((as > bv))
318+ then throw(((("Requested " + toString(as)) + ", but staked only ") + toString(bv)))
297319 else {
298- let bu = addressFromStringValue(P(l()))
299- let bD = U(invoke(bu, "getUnstakeComissionAmountREADONLY", [an, bC, bh], nil))
300- let bE = ae(-(an), if ((an == bq))
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))
301323 then -1
302- else 0, if ((an == bq))
324+ else 0, if ((as == bv))
303325 then -1
304326 else 0)
305- let bw = bE._1
306- let bx = bE._2
307- let by = bE._3
308- ((([ScriptTransfer(p, (an - bD), bl), ScriptTransfer(Address(bA), bD, bl), ad("unstake", p, bd.transactionId, bq, bC, (bq - an), bC)] ++ aH(false, bo, bq)) ++ am(p, (bq - an), bC)) ++ bw)
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)
309331 }
310332 }
311333
312334
313335
314-@Callable(bd)
315-func deposit () = if ((size(bd.payments) != 1))
336+@Callable(bi)
337+func deposit () = if ((size(bi.payments) != 1))
316338 then throw("exact 1 payment is allowed only")
317339 else {
318- let bF = bd.payments[0]
319- let an = bF.amount
320- let bG = valueOrElse(bF.assetId, h)
321- let bH = toBase58String(bG)
322- let bI = if ((bG == h))
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))
323345 then e
324346 else d
325- let bJ = toBigInt(an)
326- let bx = L(u(), 0)
327- let bK = toBigInt(bx)
328- if ((0 > bx))
347+ let bO = toBigInt(as)
348+ let bC = M(u(), 0)
349+ let bP = toBigInt(bC)
350+ if ((0 > bC))
329351 then throw("TODO: case is not supported")
330- else if ((bx == 0))
331- then aZ(bH, an)
352+ else if ((bC == 0))
353+ then be(bM, as)
332354 else {
333- let bL = fraction(bJ, f, bK)
334- let bM = z()
335- let aA = L(bM, -1)
336- let bN = (aA + 1)
337- if (!(contains(au, bH)))
338- then throw(((au + " doesn't contain ") + bH))
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))
339361 else {
340- func bO (aM,bP) = {
341- let bQ = B(bN, bP)
342- let bR = O(B(aA, bP), "0")
343- (aM :+ (if ((bP == bH))
344- then StringEntry(bQ, toString((parseBigIntValue(bR) + bL)))
345- else StringEntry(bQ, bR)))
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)))
346368 }
347369
348370 ({
349- let aS = av
350- let aT = size(aS)
351- let aU = nil
352- func aV (aW,aX) = if ((aX >= aT))
353- then aW
354- else bO(aW, aS[aX])
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])
355377
356- func aY (aW,aX) = if ((aX >= aT))
357- then aW
378+ func bd (bb,bc) = if ((bc >= aY))
379+ then bb
358380 else throw("List size exceeds 10")
359381
360- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
361- } :+ IntegerEntry(bM, bN))
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))
362384 }
363385 }
364386 }
365387
366388
367389
368-@Callable(bd)
390+@Callable(bi)
369391 func claimRewards () = {
370- let p = bd.caller
371- let bo = toString(p)
372- if ((size(bd.payments) > 0))
392+ let p = bi.caller
393+ let bt = toString(p)
394+ if ((size(bi.payments) > 0))
373395 then throw("payments are not accepted")
374396 else {
375- let bS = valueOrElse(as(p), $Tuple3(true, 0, 0))
376- let aI = bS._1
377- let aJ = bS._2
378- let bT = bS._3
379- let ay = toBigInt(aJ)
380- let aK = A(bo)
381- let az = L(aK, -1)
382- let aA = L(z(), -1)
383- func bU (aM,aN) = {
384- let bV = aw(bo, aN, ay, az, aA)
385- let aP = bV._1
386- let aQ = bV._2
387- let aR = bV._3
388- let aF = bV._4
389- if ((0 >= aP))
390- then aM
391- else ((aM :+ ScriptTransfer(p, aP, S(aN))) :+ IntegerEntry(aF, 0))
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)
392420 }
393421
394- let bW = {
395- let aS = av
396- let aT = size(aS)
397- let aU = nil
398- func aV (aW,aX) = if ((aX >= aT))
399- then aW
400- else bU(aW, aS[aX])
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])
401429
402- func aY (aW,aX) = if ((aX >= aT))
403- then aW
430+ func bd (bb,bc) = if ((bc >= aY))
431+ then bb
404432 else throw("List size exceeds 10")
405433
406- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
434+ bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
407435 }
408- if ((0 >= size(bW)))
436+ let ci = ch._1
437+ let cj = ch._2
438+ if ((0 >= size(ci)))
409439 then throw("nothing to claim")
410- else (bW :+ IntegerEntry(aK, aA))
440+ else ((ci :+ IntegerEntry(aP, aF)) :+ ai(p, bi.transactionId, drop(cj, 1)))
411441 }
412442 }
413443
414444
415445
416-@Callable(bd)
417-func unclaimedRewardsREADONLY (bo) = {
418- func bX (aM,aN) = ((aM + makeString([aN, "0", "0"], ":")) + "_")
446+@Callable(bi)
447+func unclaimedRewardsREADONLY (bt) = {
448+ func ck (aR,aS) = ((aR + makeString([aS, "0", "0"], ":")) + "_")
419449
420- let bY = if ((bo == ""))
450+ let cl = if ((bt == ""))
421451 then {
422- let aS = av
423- let aT = size(aS)
424- let aU = ""
425- func aV (aW,aX) = if ((aX >= aT))
426- then aW
427- else bX(aW, aS[aX])
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])
428458
429- func aY (aW,aX) = if ((aX >= aT))
430- then aW
459+ func bd (bb,bc) = if ((bc >= aY))
460+ then bb
431461 else throw("List size exceeds 10")
432462
433- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
463+ bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
434464 }
435465 else {
436- let p = addressFromStringValue(bo)
437- let bZ = valueOrElse(as(p), $Tuple3(true, 0, 0))
438- let aI = bZ._1
439- let aJ = bZ._2
440- let bT = bZ._3
441- let ay = toBigInt(aJ)
442- let aK = A(bo)
443- let az = L(aK, -1)
444- let aA = L(z(), -1)
445- func bU (aM,aN) = {
446- let ca = aw(bo, aN, ay, az, aA)
447- let aP = ca._1
448- let aQ = ca._2
449- let aR = ca._3
450- let aF = ca._4
451- ((aM + makeString([aN, toString(aP), "0"], ":")) + "_")
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)], ":")) + "_")
452483 }
453484
454- let aS = av
455- let aT = size(aS)
456- let aU = ""
457- func aV (aW,aX) = if ((aX >= aT))
458- then aW
459- else bU(aW, aS[aX])
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])
460491
461- func aY (aW,aX) = if ((aX >= aT))
462- then aW
492+ func bd (bb,bc) = if ((bc >= aY))
493+ then bb
463494 else throw("List size exceeds 10")
464495
465- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
496+ bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
466497 }
467- $Tuple2(nil, dropRight(bY, 1))
498+ $Tuple2(nil, dropRight(cl, 1))
468499 }
469500
470501
471502
472-@Callable(bd)
473-func nsbtStakingSYSREADONLY (bo) = {
474- let cb = L(u(), 0)
475- if ((bo == ""))
476- then $Tuple2(nil, [0, cb, 0])
503+@Callable(bi)
504+func nsbtStakingSYSREADONLY (bt) = {
505+ let cp = M(u(), 0)
506+ if ((bt == ""))
507+ then $Tuple2(nil, [0, cp, 0])
477508 else {
478- let p = Q(bo)
479- let cc = valueOrElse(as(p), $Tuple3(true, 0, 0))
480- let aI = cc._1
481- let cd = cc._2
482- let bT = cc._3
483- $Tuple2(nil, [cd, cb, bT])
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])
484515 }
485516 }
486517
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 1000000
77
88 let c = 100000000
99
1010 let d = toBigInt(b)
1111
1212 let e = toBigInt(c)
1313
1414 let f = toBigInt(1000000000000000000)
1515
1616 let g = "WAVES"
1717
1818 let h = fromBase58String(g)
1919
2020 func i () = "bond_asset_id"
2121
2222
2323 func j () = "auction_contract"
2424
2525
2626 func k () = "%s__neutrinoContractAddress"
2727
2828
2929 func l () = "%s__mathContract"
3030
3131
3232 func m () = "%s__minLockAmount"
3333
3434
3535 func n () = "%s__halfLife"
3636
3737
3838 func o (p) = makeString(["%s%s%s", "paramByUser", toString(p), "amount"], a)
3939
4040
4141 func q (p) = makeString(["%s%s%s", "paramByUser", toString(p), "start"], a)
4242
4343
4444 func r (s,p,t) = makeString(["%s%s%s%s", "history", s, toString(p), toBase58String(t)], a)
4545
4646
4747 func u () = makeString(["%s%s", "stats", "activeTotalLocked"], a)
4848
4949
5050 func v () = makeString(["%s%s", "stats", "locksCount"], a)
5151
5252
5353 func w () = makeString(["%s%s", "stats", "activeUsersCount"], a)
5454
5555
5656 func x () = "%s__nextPeriod"
5757
5858
5959 func y () = "supportedRewardAssets"
6060
6161
6262 func z () = makeString(["%s%s%s", "dep", "lastNum"], a)
6363
6464
6565 func A (p) = makeString(["%s%s%s", "userRwdFromDepNum", p], a)
6666
6767
6868 func B (C,D) = makeString(["%s%d", "rwdPerNsbtSumByDepNum", toString(C), D], a)
6969
7070
7171 func E (p,D) = makeString(["%s%s%s", "rwd", p, D], a)
7272
7373
74-func F (D) = makeString(["%s%s", "notDistributed", D], a)
74+func F (p,D) = makeString(["%s%s%s", "clm", p, D], a)
7575
7676
77-func G (H,I) = fraction(toBigInt(H), f, I)
77+func G (D) = makeString(["%s%s", "notDistributed", D], a)
7878
7979
80-func J (K) = valueOrElse(getInteger(this, K), 0)
80+func H (I,J) = fraction(toBigInt(I), f, J)
8181
8282
83-func L (K,M) = valueOrElse(getInteger(this, K), M)
83+func K (L) = valueOrElse(getInteger(this, L), 0)
8484
8585
86-func N (K) = valueOrErrorMessage(getInteger(this, K), (("Mandatory this." + K) + " is not defined"))
86+func M (L,N) = valueOrElse(getInteger(this, L), N)
8787
8888
89-func O (K,M) = valueOrElse(getString(this, K), M)
89+func O (L) = valueOrErrorMessage(getInteger(this, L), (("Mandatory this." + L) + " is not defined"))
9090
9191
92-func P (K) = valueOrErrorMessage(getString(this, K), (("Mandatory this." + K) + " is not defined"))
92+func P (L,N) = valueOrElse(getString(this, L), N)
9393
9494
95-func Q (R) = valueOrErrorMessage(addressFromString(R), ("couldn't parse passed addressStr=" + R))
95+func Q (L) = valueOrErrorMessage(getString(this, L), (("Mandatory this." + L) + " is not defined"))
9696
9797
98-func S (T) = if ((T == g))
99- then unit
100- else fromBase58String(T)
98+func R (S) = valueOrErrorMessage(addressFromString(S), ("couldn't parse passed addressStr=" + S))
10199
102100
103-func U (V) = {
104- let W = V
105- if ($isInstanceOf(W, "Int"))
101+func T (U) = if ((U == g))
102+ then unit
103+ else fromBase58String(U)
104+
105+
106+func V (W) = {
107+ let X = W
108+ if ($isInstanceOf(X, "Int"))
106109 then {
107- let X = W
108- X
110+ let Y = X
111+ Y
109112 }
110113 else throw("fail to cast into Int")
111114 }
112115
113116
114-func Y (Z,aa,ab,ac) = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(Z), toString(aa), toString(ab), toString(ac)], a)
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)
115118
116119
117-func ad (s,p,t,Z,aa,ab,ac) = StringEntry(r(s, p, t), Y(Z, aa, ab, ac))
120+func ae (af,ag) = makeString(["%s%d%d%s", af, toString(lastBlock.height), toString(lastBlock.timestamp), ag], a)
118121
119122
120-func ae (af,ag,ah) = {
121- let ai = J(v())
122- let aj = J(w())
123- let ak = J(u())
124- let al = (ak + af)
125- $Tuple3([IntegerEntry(v(), (ai + ag)), IntegerEntry(w(), (aj + ah)), IntegerEntry(u(), al)], ak, al)
123+func ah (s,p,t,aa,ab,ac,ad) = StringEntry(r(s, p, t), Z(aa, ab, ac, ad))
124+
125+
126+func ai (p,t,ag) = StringEntry(r("claim", p, t), ae(toString(p), ag))
127+
128+
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)
126135 }
127136
128137
129-func am (p,an,ao) = [IntegerEntry(o(p), an), IntegerEntry(q(p), ao)]
138+func ar (p,as,at) = [IntegerEntry(o(p), as), IntegerEntry(q(p), at)]
130139
131140
132-func ap () = {
133- let aq = addressFromStringValue(P(k()))
134- $Tuple4(fromBase58String(getStringValue(aq, j())), fromBase58String(getStringValue(aq, i())), N(m()), N(n()))
141+func au () = {
142+ let av = addressFromStringValue(Q(k()))
143+ $Tuple4(fromBase58String(getStringValue(av, j())), fromBase58String(getStringValue(av, i())), O(m()), O(n()))
135144 }
136145
137146
138-func ar (p) = (L(o(p), 0) > 0)
147+func aw (p) = (M(o(p), 0) > 0)
139148
140149
141-func as (p) = if (ar(p))
142- then $Tuple3(false, N(o(p)), N(q(p)))
150+func ax (p) = if (aw(p))
151+ then $Tuple3(false, O(o(p)), O(q(p)))
143152 else unit
144153
145154
146-func at (p) = valueOrErrorMessage(as(p), (("User " + toString(p)) + " is not defined"))
155+func ay (p) = valueOrErrorMessage(ax(p), (("User " + toString(p)) + " is not defined"))
147156
148157
149-let au = O(y(), "")
158+let az = P(y(), "")
150159
151-let av = split(au, "_")
160+let aA = split(az, "_")
152161
153-func aw (p,ax,ay,az,aA) = {
154- let aB = B(aA, ax)
155- let aC = parseBigIntValue(O(B(aA, ax), "0"))
156- let aD = parseBigIntValue(O(B(az, ax), "0"))
157- let aE = toInt(fraction((aC - aD), ay, f))
158- let aF = E(p, ax)
159- let aG = L(aF, 0)
160- $Tuple4((aG + aE), aG, aE, aF)
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)
161170 }
162171
163172
164-func aH (aI,p,aJ) = {
165- let ay = toBigInt(aJ)
166- let aK = A(p)
167- let az = L(aK, -1)
168- let aA = L(z(), -1)
169- func aL (aM,aN) = {
170- let aO = aw(p, aN, ay, az, aA)
171- let aP = aO._1
172- let aQ = aO._2
173- let aR = aO._3
174- let aF = aO._4
175- (aM :+ IntegerEntry(aF, aP))
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))
176185 }
177186
178- if (if ((aA == -1))
179- then (az == -1)
187+ if (if ((aF == -1))
188+ then (aE == -1)
180189 else false)
181190 then nil
182- else if (if ((aA == -1))
183- then (az > -1)
191+ else if (if ((aF == -1))
192+ then (aE > -1)
184193 else false)
185194 then throw("invalid depositNumLast and depositNumUser state")
186- else if (if ((aA > -1))
187- then (az == -1)
195+ else if (if ((aF > -1))
196+ then (aE == -1)
188197 else false)
189- then if (aI)
190- then [IntegerEntry(aK, aA)]
191- else throw("isNewUser must not be false in 5 + 6 cases")
192- else if (if ((aA > -1))
193- then (az > -1)
198+ then if (aN)
199+ then [IntegerEntry(aP, aF)]
200+ 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])
207+
208+ func bd (bb,bc) = if ((bc >= aY))
209+ then bb
210+ else throw("List size exceeds 10")
211+
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)
194216 else false)
195- then if (aI)
196- then throw((((("invalid management for isNewUser=" + toString(aI)) + " and depositNumUser=") + toString(az)) + " during full unstake"))
217+ then if (aN)
218+ then [IntegerEntry(aP, aF)]
197219 else ({
198- let aS = av
199- let aT = size(aS)
200- let aU = nil
201- func aV (aW,aX) = if ((aX >= aT))
202- then aW
203- else aL(aW, aS[aX])
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])
204226
205- func aY (aW,aX) = if ((aX >= aT))
206- then aW
227+ func bd (bb,bc) = if ((bc >= aY))
228+ then bb
207229 else throw("List size exceeds 10")
208230
209- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
210- } :+ IntegerEntry(aK, aA))
211- else throw(((("uncovered condition: depositNumLast=" + toString(aA)) + " depositNumUser=") + toString(az)))
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)))
212234 }
213235
214236
215-func aZ (D,ba) = {
216- let bb = F(D)
217- let bc = L(bb, 0)
218-[IntegerEntry(bb, (bc + ba))]
237+func be (D,bf) = {
238+ let bg = G(D)
239+ let bh = M(bg, 0)
240+[IntegerEntry(bg, (bh + bf))]
219241 }
220242
221243
222-@Callable(bd)
223-func constructor (be,bf,bg,bh,bi) = if ((bd.caller != this))
244+@Callable(bi)
245+func constructor (bj,bk,bl,bm,bn) = if ((bi.caller != this))
224246 then throw("Permission denied")
225- else [StringEntry(k(), be), StringEntry(l(), bf), IntegerEntry(m(), bg), IntegerEntry(n(), bh), StringEntry(y(), bi)]
247+ else [StringEntry(k(), bj), StringEntry(l(), bk), IntegerEntry(m(), bl), IntegerEntry(n(), bm), StringEntry(y(), bn)]
226248
227249
228250
229-@Callable(bd)
251+@Callable(bi)
230252 func stake () = {
231- let bj = ap()
232- let bk = bj._1
233- let bl = bj._2
234- let bg = bj._3
235- let bh = bj._4
236- if ((size(bd.payments) != 1))
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))
237259 then throw("Invalid payments size")
238260 else {
239- let bm = bd.payments[0]
240- let an = bm.amount
241- let bn = (("Invalid asset. " + toBase58String(bl)) + " is expected")
242- let ax = valueOrErrorMessage(bm.assetId, bn)
243- if ((ax != bl))
244- then throw(bn)
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)
245267 else {
246- let p = bd.caller
247- let bo = toString(bd.caller)
248- let bp = valueOrElse(as(p), $Tuple3(true, 0, -1))
249- let aI = bp._1
250- let bq = bp._2
251- let br = bp._3
252- let bs = if (aI)
253- then an
254- else (an + bq)
255- let bt = if (aI)
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)
256278 then height
257279 else {
258- let bu = addressFromStringValue(P(l()))
259- U(invoke(bu, "mergeStakesREADONLY", [an, height, bq, br, bh], nil))
280+ let bz = addressFromStringValue(Q(l()))
281+ V(invoke(bz, "mergeStakesREADONLY", [as, height, bv, bw, bm], nil))
260282 }
261- if ((bg > bs))
262- then throw(("Min lock amount is " + toString(bg)))
283+ if ((bl > bx))
284+ then throw(("Min lock amount is " + toString(bl)))
263285 else {
264- let bv = ae(an, 1, if (aI)
286+ let bA = aj(as, 1, if (aN)
265287 then 1
266288 else 0)
267- let bw = bv._1
268- let bx = bv._2
269- let by = bv._3
270- ((([ad("stake", p, bd.transactionId, bq, br, bs, bt)] ++ aH(aI, bo, bq)) ++ am(p, bs, bt)) ++ bw)
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)
271293 }
272294 }
273295 }
274296 }
275297
276298
277299
278-@Callable(bd)
279-func unstake (an) = if ((size(bd.payments) != 0))
300+@Callable(bi)
301+func unstake (as) = if ((size(bi.payments) != 0))
280302 then throw("unstake doesn't require any payment")
281303 else {
282- let p = bd.caller
283- let bo = toString(p)
284- let bz = ap()
285- let bA = bz._1
286- let bl = bz._2
287- let bg = bz._3
288- let bh = bz._4
289- let bB = at(p)
290- let aI = bB._1
291- let bq = bB._2
292- let bC = bB._3
293- if ((0 >= bq))
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))
294316 then throw("Nothing to unstake")
295- else if ((an > bq))
296- then throw(((("Requested " + toString(an)) + ", but staked only ") + toString(bq)))
317+ else if ((as > bv))
318+ then throw(((("Requested " + toString(as)) + ", but staked only ") + toString(bv)))
297319 else {
298- let bu = addressFromStringValue(P(l()))
299- let bD = U(invoke(bu, "getUnstakeComissionAmountREADONLY", [an, bC, bh], nil))
300- let bE = ae(-(an), if ((an == bq))
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))
301323 then -1
302- else 0, if ((an == bq))
324+ else 0, if ((as == bv))
303325 then -1
304326 else 0)
305- let bw = bE._1
306- let bx = bE._2
307- let by = bE._3
308- ((([ScriptTransfer(p, (an - bD), bl), ScriptTransfer(Address(bA), bD, bl), ad("unstake", p, bd.transactionId, bq, bC, (bq - an), bC)] ++ aH(false, bo, bq)) ++ am(p, (bq - an), bC)) ++ bw)
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)
309331 }
310332 }
311333
312334
313335
314-@Callable(bd)
315-func deposit () = if ((size(bd.payments) != 1))
336+@Callable(bi)
337+func deposit () = if ((size(bi.payments) != 1))
316338 then throw("exact 1 payment is allowed only")
317339 else {
318- let bF = bd.payments[0]
319- let an = bF.amount
320- let bG = valueOrElse(bF.assetId, h)
321- let bH = toBase58String(bG)
322- let bI = if ((bG == h))
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))
323345 then e
324346 else d
325- let bJ = toBigInt(an)
326- let bx = L(u(), 0)
327- let bK = toBigInt(bx)
328- if ((0 > bx))
347+ let bO = toBigInt(as)
348+ let bC = M(u(), 0)
349+ let bP = toBigInt(bC)
350+ if ((0 > bC))
329351 then throw("TODO: case is not supported")
330- else if ((bx == 0))
331- then aZ(bH, an)
352+ else if ((bC == 0))
353+ then be(bM, as)
332354 else {
333- let bL = fraction(bJ, f, bK)
334- let bM = z()
335- let aA = L(bM, -1)
336- let bN = (aA + 1)
337- if (!(contains(au, bH)))
338- then throw(((au + " doesn't contain ") + bH))
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))
339361 else {
340- func bO (aM,bP) = {
341- let bQ = B(bN, bP)
342- let bR = O(B(aA, bP), "0")
343- (aM :+ (if ((bP == bH))
344- then StringEntry(bQ, toString((parseBigIntValue(bR) + bL)))
345- else StringEntry(bQ, bR)))
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)))
346368 }
347369
348370 ({
349- let aS = av
350- let aT = size(aS)
351- let aU = nil
352- func aV (aW,aX) = if ((aX >= aT))
353- then aW
354- else bO(aW, aS[aX])
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])
355377
356- func aY (aW,aX) = if ((aX >= aT))
357- then aW
378+ func bd (bb,bc) = if ((bc >= aY))
379+ then bb
358380 else throw("List size exceeds 10")
359381
360- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
361- } :+ IntegerEntry(bM, bN))
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))
362384 }
363385 }
364386 }
365387
366388
367389
368-@Callable(bd)
390+@Callable(bi)
369391 func claimRewards () = {
370- let p = bd.caller
371- let bo = toString(p)
372- if ((size(bd.payments) > 0))
392+ let p = bi.caller
393+ let bt = toString(p)
394+ if ((size(bi.payments) > 0))
373395 then throw("payments are not accepted")
374396 else {
375- let bS = valueOrElse(as(p), $Tuple3(true, 0, 0))
376- let aI = bS._1
377- let aJ = bS._2
378- let bT = bS._3
379- let ay = toBigInt(aJ)
380- let aK = A(bo)
381- let az = L(aK, -1)
382- let aA = L(z(), -1)
383- func bU (aM,aN) = {
384- let bV = aw(bo, aN, ay, az, aA)
385- let aP = bV._1
386- let aQ = bV._2
387- let aR = bV._3
388- let aF = bV._4
389- if ((0 >= aP))
390- then aM
391- else ((aM :+ ScriptTransfer(p, aP, S(aN))) :+ IntegerEntry(aF, 0))
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)
392420 }
393421
394- let bW = {
395- let aS = av
396- let aT = size(aS)
397- let aU = nil
398- func aV (aW,aX) = if ((aX >= aT))
399- then aW
400- else bU(aW, aS[aX])
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])
401429
402- func aY (aW,aX) = if ((aX >= aT))
403- then aW
430+ func bd (bb,bc) = if ((bc >= aY))
431+ then bb
404432 else throw("List size exceeds 10")
405433
406- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
434+ bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
407435 }
408- if ((0 >= size(bW)))
436+ let ci = ch._1
437+ let cj = ch._2
438+ if ((0 >= size(ci)))
409439 then throw("nothing to claim")
410- else (bW :+ IntegerEntry(aK, aA))
440+ else ((ci :+ IntegerEntry(aP, aF)) :+ ai(p, bi.transactionId, drop(cj, 1)))
411441 }
412442 }
413443
414444
415445
416-@Callable(bd)
417-func unclaimedRewardsREADONLY (bo) = {
418- func bX (aM,aN) = ((aM + makeString([aN, "0", "0"], ":")) + "_")
446+@Callable(bi)
447+func unclaimedRewardsREADONLY (bt) = {
448+ func ck (aR,aS) = ((aR + makeString([aS, "0", "0"], ":")) + "_")
419449
420- let bY = if ((bo == ""))
450+ let cl = if ((bt == ""))
421451 then {
422- let aS = av
423- let aT = size(aS)
424- let aU = ""
425- func aV (aW,aX) = if ((aX >= aT))
426- then aW
427- else bX(aW, aS[aX])
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])
428458
429- func aY (aW,aX) = if ((aX >= aT))
430- then aW
459+ func bd (bb,bc) = if ((bc >= aY))
460+ then bb
431461 else throw("List size exceeds 10")
432462
433- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
463+ bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
434464 }
435465 else {
436- let p = addressFromStringValue(bo)
437- let bZ = valueOrElse(as(p), $Tuple3(true, 0, 0))
438- let aI = bZ._1
439- let aJ = bZ._2
440- let bT = bZ._3
441- let ay = toBigInt(aJ)
442- let aK = A(bo)
443- let az = L(aK, -1)
444- let aA = L(z(), -1)
445- func bU (aM,aN) = {
446- let ca = aw(bo, aN, ay, az, aA)
447- let aP = ca._1
448- let aQ = ca._2
449- let aR = ca._3
450- let aF = ca._4
451- ((aM + makeString([aN, toString(aP), "0"], ":")) + "_")
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)], ":")) + "_")
452483 }
453484
454- let aS = av
455- let aT = size(aS)
456- let aU = ""
457- func aV (aW,aX) = if ((aX >= aT))
458- then aW
459- else bU(aW, aS[aX])
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])
460491
461- func aY (aW,aX) = if ((aX >= aT))
462- then aW
492+ func bd (bb,bc) = if ((bc >= aY))
493+ then bb
463494 else throw("List size exceeds 10")
464495
465- aY(aV(aV(aV(aV(aV(aV(aV(aV(aV(aV(aU, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
496+ bd(ba(ba(ba(ba(ba(ba(ba(ba(ba(ba(aZ, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
466497 }
467- $Tuple2(nil, dropRight(bY, 1))
498+ $Tuple2(nil, dropRight(cl, 1))
468499 }
469500
470501
471502
472-@Callable(bd)
473-func nsbtStakingSYSREADONLY (bo) = {
474- let cb = L(u(), 0)
475- if ((bo == ""))
476- then $Tuple2(nil, [0, cb, 0])
503+@Callable(bi)
504+func nsbtStakingSYSREADONLY (bt) = {
505+ let cp = M(u(), 0)
506+ if ((bt == ""))
507+ then $Tuple2(nil, [0, cp, 0])
477508 else {
478- let p = Q(bo)
479- let cc = valueOrElse(as(p), $Tuple3(true, 0, 0))
480- let aI = cc._1
481- let cd = cc._2
482- let bT = cc._3
483- $Tuple2(nil, [cd, cb, bT])
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])
484515 }
485516 }
486517
487518

github/deemru/w8io/873ac7e 
169.14 ms