tx · D7dU3FUoQKrjLyNzfLvc2WoMznfqucLgiiMa1uw4ZooW

3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT:  -0.01400000 Waves

2021.12.27 21:42 [1853031] smart account 3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT > SELF 0.00000000 Waves

{ "type": 13, "id": "D7dU3FUoQKrjLyNzfLvc2WoMznfqucLgiiMa1uw4ZooW", "fee": 1400000, "feeAssetId": null, "timestamp": 1640630561475, "version": 1, "sender": "3NAefciWv6f9fWvEXdGgpHfanJFG8HqfjuT", "senderPublicKey": "D1BL65meykxFZTCuq7jq9HSGLLnWvQamQPUNrguW5w39", "proofs": [ "4x6nTw8LRQjM6bQ8w4CadqU8UEJhTFHum9iGfsuKnEgVGrjs7UpS5LiCVr6p77jVwyNsqaqgRMHL999aVioaZijk" ], "script": "base64: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AA8gaXMgbm90IGRlZmluZWQFAAAAA25pbAIAAAAAAQAAAAxnZXRJbnRPckZhaWwAAAACAAAABGFkZHIAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEYWRkcgUAAAADa2V5CQAEuQAAAAIJAARMAAAAAgIAAAAKbWFuZGF0b3J5IAkABEwAAAACCQAEJQAAAAEFAAAABGFkZHIJAARMAAAAAgIAAAABLgkABEwAAAACBQAAAANrZXkJAARMAAAAAgIAAAAPIGlzIG5vdCBkZWZpbmVkBQAAAANuaWwCAAAAAAAAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAEdGhpcwkBAAAAC2tleUZhY3RDbnRyAAAAAAEAAAAQaXNHbG9iYWxTaHV0ZG93bgAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQbAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAATa2V5QWxsUG9vbHNTaHV0ZG93bgAAAAAHAQAAABNnZXRNYXRjaGVyUHViT3JGYWlsAAAAAAkAAlkAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAANa2V5TWF0Y2hlclB1YgAAAAABAAAADWdldFBvb2xDb25maWcAAAAABAAAAAVhbXRBcwkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAABHRoaXMJAQAAAAtrZXlBbXRBc3NldAAAAAAEAAAAB3ByaWNlQXMJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAAR0aGlzCQEAAAANa2V5UHJpY2VBc3NldAAAAAAEAAAACGlQcmljZUFzCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAAAAAEFAAAAB3ByaWNlQXMEAAAABmlBbXRBcwkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAH2tleU1hcHBpbmdzQmFzZUFzc2V0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BQAAAANuaWwBAAAAEHByaXZhdGVDYWxjUHJpY2UAAAAEAAAACmFtQXNzZXREY20AAAAKcHJBc3NldERjbQAAAAVhbUFtdAAAAAVwckFtdAQAAAALYW10QXNBbXRYMTgJAQAAAAV0b1gxOAAAAAIFAAAABWFtQW10BQAAAAphbUFzc2V0RGNtBAAAAApwckFzQW10WDE4CQEAAAAFdG9YMTgAAAACBQAAAAVwckFtdAUAAAAKcHJBc3NldERjbQkBAAAAD2NhbGNQcmljZUJpZ0ludAAAAAIFAAAACnByQXNBbXRYMTgFAAAAC2FtdEFzQW10WDE4AQAAAApjYWxjUHJpY2VzAAAAAwAAAAVhbUFtdAAAAAVwckFtdAAAAAVscEFtdAQAAAADY2ZnCQEAAAANZ2V0UG9vbENvbmZpZwAAAAAEAAAACGFtdEFzRGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAAtpZHhBbXRBc0RjbQQAAAAHcHJBc0RjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAANaWR4UHJpY2VBc0RjbQQAAAAIcHJpY2VYMTgJAQAAABBwcml2YXRlQ2FsY1ByaWNlAAAABAUAAAAIYW10QXNEY20FAAAAB3ByQXNEY20FAAAABWFtQW10BQAAAAVwckFtdAQAAAAIYW1BbXRYMTgJAQAAAAV0b1gxOAAAAAIFAAAABWFtQW10BQAAAAhhbXRBc0RjbQQAAAAIcHJBbXRYMTgJAQAAAAV0b1gxOAAAAAIFAAAABXByQW10BQAAAAdwckFzRGNtBAAAAAhscEFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAAFbHBBbXQFAAAABnNjYWxlOAQAAAANbHBQckluQW1Bc1gxOAkBAAAAD2NhbGNQcmljZUJpZ0ludAAAAAIFAAAACGFtQW10WDE4BQAAAAhscEFtdFgxOAQAAAANbHBQckluUHJBc1gxOAkBAAAAD2NhbGNQcmljZUJpZ0ludAAAAAIFAAAACHByQW10WDE4BQAAAAhscEFtdFgxOAkABEwAAAACBQAAAAhwcmljZVgxOAkABEwAAAACBQAAAA1scFBySW5BbUFzWDE4CQAETAAAAAIFAAAADWxwUHJJblByQXNYMTgFAAAAA25pbAEAAAAPY2FsY3VsYXRlUHJpY2VzAAAAAwAAAAVhbUFtdAAAAAVwckFtdAAAAAVscEFtdAQAAAAGcHJpY2VzCQEAAAAKY2FsY1ByaWNlcwAAAAMFAAAABWFtQW10BQAAAAVwckFtdAUAAAAFbHBBbXQJAARMAAAAAgkBAAAAB2Zyb21YMTgAAAACCQABkQAAAAIFAAAABnByaWNlcwAAAAAAAAAAAAUAAAAGc2NhbGU4CQAETAAAAAIJAQAAAAdmcm9tWDE4AAAAAgkAAZEAAAACBQAAAAZwcmljZXMAAAAAAAAAAAEFAAAABnNjYWxlOAkABEwAAAACCQEAAAAHZnJvbVgxOAAAAAIJAAGRAAAAAgUAAAAGcHJpY2VzAAAAAAAAAAACBQAAAAZzY2FsZTgFAAAAA25pbAEAAAAUZXN0aW1hdGVHZXRPcGVyYXRpb24AAAAEAAAABnR4SWQ1OAAAAApwbXRBc3NldElkAAAACHBtdExwQW10AAAAC3VzZXJBZGRyZXNzBAAAAANjZmcJAQAAAA1nZXRQb29sQ29uZmlnAAAAAAQAAAAEbHBJZAkAAZEAAAACBQAAAANjZmcFAAAACWlkeExQQXNJZAQAAAAEYW1JZAkAAZEAAAACBQAAAANjZmcFAAAACWlkeEFtQXNJZAQAAAAEcHJJZAkAAZEAAAACBQAAAANjZmcFAAAACWlkeFByQXNJZAQAAAAFYW1EY20JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAANjZmcFAAAAC2lkeEFtdEFzRGNtBAAAAAVwckRjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAANaWR4UHJpY2VBc0RjbQQAAAAKcG9vbFN0YXR1cwkAAZEAAAACBQAAAANjZmcFAAAACWlkeFBvb2xTdAQAAAAKbHBFbWlzc2lvbggJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABCQACWQAAAAEFAAAABGxwSWQCAAAADUludmFsaWQgTFAgaWQAAAAIcXVhbnRpdHkDCQEAAAACIT0AAAACBQAAAARscElkBQAAAApwbXRBc3NldElkCQAAAgAAAAECAAAAEUludmFsaWQgcG10IGFzc2V0BAAAAAlhbUJhbGFuY2UJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAEYW1JZAQAAAAMYW1CYWxhbmNlWDE4CQEAAAAFdG9YMTgAAAACBQAAAAlhbUJhbGFuY2UFAAAABWFtRGNtBAAAAAlwckJhbGFuY2UJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAEcHJJZAQAAAAMcHJCYWxhbmNlWDE4CQEAAAAFdG9YMTgAAAACBQAAAAlwckJhbGFuY2UFAAAABXByRGNtBAAAAAtjdXJQcmljZVgxOAkBAAAAD2NhbGNQcmljZUJpZ0ludAAAAAIFAAAADHByQmFsYW5jZVgxOAUAAAAMYW1CYWxhbmNlWDE4BAAAAAhjdXJQcmljZQkBAAAAB2Zyb21YMTgAAAACBQAAAAtjdXJQcmljZVgxOAUAAAAGc2NhbGU4BAAAAAtwbXRMcEFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAAIcG10THBBbXQFAAAABnNjYWxlOAQAAAANbHBFbWlzc2lvblgxOAkBAAAABXRvWDE4AAAAAgUAAAAKbHBFbWlzc2lvbgUAAAAGc2NhbGU4BAAAAAtvdXRBbUFtdFgxOAkAATwAAAADBQAAAAxhbUJhbGFuY2VYMTgFAAAAC3BtdExwQW10WDE4BQAAAA1scEVtaXNzaW9uWDE4BAAAAAtvdXRQckFtdFgxOAkAATwAAAADBQAAAAxwckJhbGFuY2VYMTgFAAAAC3BtdExwQW10WDE4BQAAAA1scEVtaXNzaW9uWDE4BAAAAAhvdXRBbUFtdAkBAAAAB2Zyb21YMTgAAAACBQAAAAtvdXRBbUFtdFgxOAUAAAAFYW1EY20EAAAACG91dFByQW10CQEAAAAHZnJvbVgxOAAAAAIFAAAAC291dFByQW10WDE4BQAAAAVwckRjbQQAAAAFc3RhdGUDCQAAAAAAAAIFAAAABnR4SWQ1OAIAAAAABQAAAANuaWwJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAALdXNlckFkZHJlc3MFAAAACG91dEFtQW10AwkAAAAAAAACBQAAAARhbUlkAgAAAAVXQVZFUwUAAAAEdW5pdAkAAlkAAAABBQAAAARhbUlkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAC3VzZXJBZGRyZXNzBQAAAAhvdXRQckFtdAMJAAAAAAAAAgUAAAAEcHJJZAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAEcHJJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASa2V5R2V0QWN0aW9uQnlVc2VyAAAAAgkABCUAAAABBQAAAAt1c2VyQWRkcmVzcwUAAAAGdHhJZDU4CQEAAAARZGF0YUdldEFjdGlvbkluZm8AAAAGBQAAAAhvdXRBbUFtdAUAAAAIb3V0UHJBbXQFAAAACHBtdExwQW10BQAAAAhjdXJQcmljZQUAAAAGaGVpZ2h0CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleVByaWNlTGFzdAAAAAAFAAAACGN1clByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAPa2V5UHJpY2VIaXN0b3J5AAAAAgUAAAAGaGVpZ2h0CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAIY3VyUHJpY2UFAAAAA25pbAkABRwAAAAKBQAAAAhvdXRBbUFtdAUAAAAIb3V0UHJBbXQFAAAABGFtSWQFAAAABHBySWQFAAAACWFtQmFsYW5jZQUAAAAJcHJCYWxhbmNlBQAAAApscEVtaXNzaW9uBQAAAAtjdXJQcmljZVgxOAUAAAAKcG9vbFN0YXR1cwUAAAAFc3RhdGUBAAAAFGVzdGltYXRlUHV0T3BlcmF0aW9uAAAADAAAAAZ0eElkNTgAAAAIc2xpcHBhZ2UAAAAHaW5BbUFtdAAAAAZpbkFtSWQAAAAHaW5QckFtdAAAAAZpblBySWQAAAALdXNlckFkZHJlc3MAAAAGaXNFdmFsAAAABmVtaXRMcAAAAAppc09uZUFzc2V0AAAABnBtdEFtdAAAAAVwbXRJZAQAAAADY2ZnCQEAAAANZ2V0UG9vbENvbmZpZwAAAAAEAAAABGxwSWQJAAJZAAAAAQkAAZEAAAACBQAAAANjZmcFAAAACWlkeExQQXNJZAQAAAAHYW1JZFN0cgkAAZEAAAACBQAAAANjZmcFAAAACWlkeEFtQXNJZAQAAAAHcHJJZFN0cgkAAZEAAAACBQAAAANjZmcFAAAACWlkeFByQXNJZAQAAAAJaW5BbUlkU3RyCQABkQAAAAIFAAAAA2NmZwUAAAALaWR4SUFtdEFzSWQEAAAACWluUHJJZFN0cgkAAZEAAAACBQAAAANjZmcFAAAADWlkeElQcmljZUFzSWQEAAAABmFtdERjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAALaWR4QW10QXNEY20EAAAACHByaWNlRGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAA1pZHhQcmljZUFzRGNtBAAAAApwb29sU3RhdHVzCQABkQAAAAIFAAAAA2NmZwUAAAAJaWR4UG9vbFN0BAAAAARscEVtCAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEFAAAABGxwSWQCAAAACFdyIGxwIGFzAAAACHF1YW50aXR5BAAAAAlhbUJhbGFuY2UDBQAAAAZpc0V2YWwJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAHYW1JZFN0cgMDBQAAAAppc09uZUFzc2V0CQAAAAAAAAIFAAAABXBtdElkBQAAAAdhbUlkU3RyBwkAAGUAAAACCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAAB2FtSWRTdHIFAAAABnBtdEFtdAMFAAAACmlzT25lQXNzZXQJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAHYW1JZFN0cgkAAGUAAAACCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAAB2FtSWRTdHIFAAAAB2luQW1BbXQEAAAACXByQmFsYW5jZQMFAAAABmlzRXZhbAkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAdwcklkU3RyAwMFAAAACmlzT25lQXNzZXQJAAAAAAAAAgUAAAAFcG10SWQFAAAAB3BySWRTdHIHCQAAZQAAAAIJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAHcHJJZFN0cgUAAAAGcG10QW10AwUAAAAKaXNPbmVBc3NldAkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAdwcklkU3RyCQAAZQAAAAIJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAHcHJJZFN0cgUAAAAHaW5QckFtdAQAAAAPaW5BbUFzc2V0QW10WDE4CQEAAAAFdG9YMTgAAAACBQAAAAdpbkFtQW10BQAAAAZhbXREY20EAAAAD2luUHJBc3NldEFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAAHaW5QckFtdAUAAAAIcHJpY2VEY20EAAAADHVzZXJQcmljZVgxOAkBAAAAD2NhbGNQcmljZUJpZ0ludAAAAAIFAAAAD2luUHJBc3NldEFtdFgxOAUAAAAPaW5BbUFzc2V0QW10WDE4BAAAAAxhbUJhbGFuY2VYMTgJAQAAAAV0b1gxOAAAAAIFAAAACWFtQmFsYW5jZQUAAAAGYW10RGNtBAAAAAxwckJhbGFuY2VYMTgJAQAAAAV0b1gxOAAAAAIFAAAACXByQmFsYW5jZQUAAAAIcHJpY2VEY20EAAAAA3JlcwMJAAAAAAAAAgUAAAAEbHBFbQAAAAAAAAAAAAQAAAALY3VyUHJpY2VYMTgFAAAACnplcm9CaWdJbnQEAAAAC3NsaXBwYWdlWDE4BQAAAAp6ZXJvQmlnSW50BAAAAAhscEFtdFgxOAkAAHYAAAAGCQABOQAAAAIFAAAAD2luQW1Bc3NldEFtdFgxOAUAAAAPaW5QckFzc2V0QW10WDE4AAAAAAAAAAAACQABNgAAAAEAAAAAAAAAAAUAAAAAAAAAAAEAAAAAAAAAAAAFAAAABERPV04JAAUXAAAABQkBAAAAB2Zyb21YMTgAAAACBQAAAAhscEFtdFgxOAUAAAAGc2NhbGU4CQEAAAAHZnJvbVgxOAAAAAIFAAAAD2luQW1Bc3NldEFtdFgxOAUAAAAGYW10RGNtCQEAAAAHZnJvbVgxOAAAAAIFAAAAD2luUHJBc3NldEFtdFgxOAUAAAAIcHJpY2VEY20JAQAAAA9jYWxjUHJpY2VCaWdJbnQAAAACCQABNwAAAAIFAAAADHByQmFsYW5jZVgxOAUAAAAPaW5QckFzc2V0QW10WDE4CQABNwAAAAIFAAAADGFtQmFsYW5jZVgxOAUAAAAPaW5BbUFzc2V0QW10WDE4BQAAAAtzbGlwcGFnZVgxOAQAAAALY3VyUHJpY2VYMTgJAQAAAA9jYWxjUHJpY2VCaWdJbnQAAAACBQAAAAxwckJhbGFuY2VYMTgFAAAADGFtQmFsYW5jZVgxOAQAAAAPc2xpcHBhZ2VSZWFsWDE4CQABPAAAAAMJAQAAAANhYnMAAAABCQABOAAAAAIFAAAAC2N1clByaWNlWDE4BQAAAAx1c2VyUHJpY2VYMTgFAAAAB3NjYWxlMTgFAAAAC2N1clByaWNlWDE4BAAAAAtzbGlwcGFnZVgxOAkBAAAABXRvWDE4AAAAAgUAAAAIc2xpcHBhZ2UFAAAABnNjYWxlOAMDCQEAAAACIT0AAAACBQAAAAtjdXJQcmljZVgxOAUAAAAKemVyb0JpZ0ludAkAAT8AAAACBQAAAA9zbGlwcGFnZVJlYWxYMTgFAAAAC3NsaXBwYWdlWDE4BwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAA9QcmljZSBzbGlwcGFnZSAJAAGmAAAAAQUAAAAPc2xpcHBhZ2VSZWFsWDE4AgAAAAMgPiAJAAGmAAAAAQUAAAALc2xpcHBhZ2VYMTgEAAAADWxwRW1pc3Npb25YMTgJAQAAAAV0b1gxOAAAAAIFAAAABGxwRW0FAAAABnNjYWxlOAQAAAAKcHJWaWFBbVgxOAkAATwAAAADBQAAAA9pbkFtQXNzZXRBbXRYMTgFAAAAC2N1clByaWNlWDE4BQAAAAdzY2FsZTE4BAAAAAphbVZpYVByWDE4CQABPAAAAAMFAAAAD2luUHJBc3NldEFtdFgxOAUAAAAHc2NhbGUxOAUAAAALY3VyUHJpY2VYMTgEAAAADGV4cGVjdGVkQW10cwMJAAE/AAAAAgUAAAAKcHJWaWFBbVgxOAUAAAAPaW5QckFzc2V0QW10WDE4CQAFFAAAAAIFAAAACmFtVmlhUHJYMTgFAAAAD2luUHJBc3NldEFtdFgxOAkABRQAAAACBQAAAA9pbkFtQXNzZXRBbXRYMTgFAAAACnByVmlhQW1YMTgEAAAAEWV4cEFtdEFzc2V0QW10WDE4CAUAAAAMZXhwZWN0ZWRBbXRzAAAAAl8xBAAAABNleHBQcmljZUFzc2V0QW10WDE4CAUAAAAMZXhwZWN0ZWRBbXRzAAAAAl8yBAAAAAhscEFtdFgxOAkAATwAAAADBQAAAA1scEVtaXNzaW9uWDE4BQAAABNleHBQcmljZUFzc2V0QW10WDE4BQAAAAxwckJhbGFuY2VYMTgJAAUXAAAABQkBAAAAB2Zyb21YMTgAAAACBQAAAAhscEFtdFgxOAUAAAAGc2NhbGU4CQEAAAAHZnJvbVgxOAAAAAIFAAAAEWV4cEFtdEFzc2V0QW10WDE4BQAAAAZhbXREY20JAQAAAAdmcm9tWDE4AAAAAgUAAAATZXhwUHJpY2VBc3NldEFtdFgxOAUAAAAIcHJpY2VEY20FAAAAC2N1clByaWNlWDE4BQAAAAtzbGlwcGFnZVgxOAQAAAAJY2FsY0xwQW10CAUAAAADcmVzAAAAAl8xBAAAAA5jYWxjQW1Bc3NldFBtdAgFAAAAA3JlcwAAAAJfMgQAAAAOY2FsY1ByQXNzZXRQbXQIBQAAAANyZXMAAAACXzMEAAAACGN1clByaWNlCQEAAAAHZnJvbVgxOAAAAAIIBQAAAANyZXMAAAACXzQFAAAABnNjYWxlOAQAAAAMc2xpcHBhZ2VDYWxjCQEAAAAHZnJvbVgxOAAAAAIIBQAAAANyZXMAAAACXzUFAAAABnNjYWxlOAMJAABnAAAAAgAAAAAAAAAAAAUAAAAJY2FsY0xwQW10CQAAAgAAAAECAAAAB0xQIDw9IDAEAAAACWVtaXRMcEFtdAMJAQAAAAEhAAAAAQUAAAAGZW1pdExwAAAAAAAAAAAABQAAAAljYWxjTHBBbXQEAAAABmFtRGlmZgkAAGUAAAACBQAAAAdpbkFtQW10BQAAAA5jYWxjQW1Bc3NldFBtdAQAAAAGcHJEaWZmCQAAZQAAAAIFAAAAB2luUHJBbXQFAAAADmNhbGNQckFzc2V0UG10BAAAAAtjb21tb25TdGF0ZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGtleVByaWNlTGFzdAAAAAAFAAAACGN1clByaWNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAPa2V5UHJpY2VIaXN0b3J5AAAAAgUAAAAGaGVpZ2h0CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAIY3VyUHJpY2UJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmtleVB1dEFjdGlvbkJ5VXNlcgAAAAIFAAAAC3VzZXJBZGRyZXNzBQAAAAZ0eElkNTgJAQAAABFkYXRhUHV0QWN0aW9uSW5mbwAAAAoFAAAADmNhbGNBbUFzc2V0UG10BQAAAA5jYWxjUHJBc3NldFBtdAUAAAAJZW1pdExwQW10BQAAAAhjdXJQcmljZQUAAAAIc2xpcHBhZ2UFAAAADHNsaXBwYWdlQ2FsYwUAAAAGaGVpZ2h0CAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAUAAAAGYW1EaWZmBQAAAAZwckRpZmYFAAAAA25pbAkABR8AAAANBQAAAAljYWxjTHBBbXQFAAAACWVtaXRMcEFtdAUAAAAIY3VyUHJpY2UFAAAACWFtQmFsYW5jZQUAAAAJcHJCYWxhbmNlBQAAAARscEVtBQAAAARscElkBQAAAApwb29sU3RhdHVzBQAAAAtjb21tb25TdGF0ZQUAAAAGYW1EaWZmBQAAAAZwckRpZmYFAAAABmluQW1JZAUAAAAGaW5QcklkAQAAABt2YWxpZGF0ZU1hdGNoZXJPcmRlckFsbG93ZWQAAAABAAAABW9yZGVyBAAAAANjZmcJAQAAAA1nZXRQb29sQ29uZmlnAAAAAAQAAAAHYW10QXNJZAkAAZEAAAACBQAAAANjZmcFAAAACWlkeEFtQXNJZAQAAAAGcHJBc0lkCQABkQAAAAIFAAAAA2NmZwUAAAAJaWR4UHJBc0lkBAAAAApwb29sU3RhdHVzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAAlpZHhQb29sU3QEAAAACGFtdEFzRGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAAtpZHhBbXRBc0RjbQQAAAAHcHJBc0RjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAANaWR4UHJpY2VBc0RjbQQAAAAPYWNjQW10QXNCYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAAB2FtdEFzSWQEAAAADmFjY1ByQXNCYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAABnByQXNJZAQAAAALY3VyUHJpY2VYMTgDCQAAAAAAAAIIBQAAAAVvcmRlcgAAAAlvcmRlclR5cGUFAAAAA0J1eQkBAAAAEHByaXZhdGVDYWxjUHJpY2UAAAAEBQAAAAhhbXRBc0RjbQUAAAAHcHJBc0RjbQkAAGQAAAACBQAAAA9hY2NBbXRBc0JhbGFuY2UIBQAAAAVvcmRlcgAAAAZhbW91bnQFAAAADmFjY1ByQXNCYWxhbmNlCQEAAAAQcHJpdmF0ZUNhbGNQcmljZQAAAAQFAAAACGFtdEFzRGNtBQAAAAdwckFzRGNtCQAAZQAAAAIFAAAAD2FjY0FtdEFzQmFsYW5jZQgFAAAABW9yZGVyAAAABmFtb3VudAUAAAAOYWNjUHJBc0JhbGFuY2UEAAAACGN1clByaWNlCQEAAAAHZnJvbVgxOAAAAAIFAAAAC2N1clByaWNlWDE4BQAAAAZzY2FsZTgDAwMJAQAAABBpc0dsb2JhbFNodXRkb3duAAAAAAYJAAAAAAAAAgUAAAAKcG9vbFN0YXR1cwUAAAAOUG9vbE1hdGNoZXJEaXMGCQAAAAAAAAIFAAAACnBvb2xTdGF0dXMFAAAADFBvb2xTaHV0ZG93bgkAAAIAAAABAgAAAA1BZG1pbiBibG9ja2VkBAAAAApvckFtdEFzc2V0CAgFAAAABW9yZGVyAAAACWFzc2V0UGFpcgAAAAthbW91bnRBc3NldAQAAAAKb3JBbXRBc1N0cgMJAAAAAAAAAgUAAAAKb3JBbXRBc3NldAUAAAAEdW5pdAIAAAAFV0FWRVMJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAAKb3JBbXRBc3NldAQAAAAJb3JQckFzc2V0CAgFAAAABW9yZGVyAAAACWFzc2V0UGFpcgAAAApwcmljZUFzc2V0BAAAAAlvclByQXNTdHIDCQAAAAAAAAIFAAAACW9yUHJBc3NldAUAAAAEdW5pdAIAAAAFV0FWRVMJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAAJb3JQckFzc2V0AwMJAQAAAAIhPQAAAAIFAAAACm9yQW10QXNTdHIFAAAAB2FtdEFzSWQGCQEAAAACIT0AAAACBQAAAAlvclByQXNTdHIFAAAABnByQXNJZAkAAAIAAAABAgAAAAlXciBhc3NldHMEAAAACm9yZGVyUHJpY2UIBQAAAAVvcmRlcgAAAAVwcmljZQQAAAAIcHJpY2VEY20JAABrAAAAAwUAAAAGc2NhbGU4BQAAAAdwckFzRGNtBQAAAAhhbXRBc0RjbQQAAAAOY2Fz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TkxZAAAAAgAAAAN2YWwAAAAPcmVzdWx0U2NhbGVNdWx0CQAFFAAAAAIFAAAAA25pbAkBAAAAB2Zyb21YMTgAAAACCQABpwAAAAEFAAAAA3ZhbAUAAAAPcmVzdWx0U2NhbGVNdWx0AAAAAWkBAAAAFHRvWDE4V3JhcHBlclJFQURPTkxZAAAAAgAAAAdvcmlnVmFsAAAADW9yaWdTY2FsZU11bHQJAAUUAAAAAgUAAAADbmlsCQABpgAAAAEJAQAAAAV0b1gxOAAAAAIFAAAAB29yaWdWYWwFAAAADW9yaWdTY2FsZU11bHQAAAABaQEAAAAeY2FsY1ByaWNlQmlnSW50V3JhcHBlclJFQURPTkxZAAAAAgAAAAhwckFtdFgxOAAAAAhhbUFtdFgxOAkABRQAAAACBQAAAANuaWwJAAGmAAAAAQkBAAAAD2NhbGNQcmljZUJpZ0ludAAAAAIJAAGnAAAAAQUAAAAIcHJBbXRYMTgJAAGnAAAAAQUAAAAIYW1BbXRYMTgAAAABaQEAAAAjZXN0aW1hdGVQdXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkAAAAJAAAABnR4SWQ1OAAAAAhzbGlwcGFnZQAAAAdpbkFtQW10AAAABmluQW1JZAAAAAdpblByQW10AAAABmluUHJJZAAAAAd1c3JBZGRyAAAABmlzRXZhbAAAAAZlbWl0THAJAAUUAAAAAgUAAAADbmlsCQEAAAAUZXN0aW1hdGVQdXRPcGVyYXRpb24AAAAMBQAAAAZ0eElkNTgFAAAACHNsaXBwYWdlBQAAAAdpbkFtQW10BQAAAAZpbkFtSWQFAAAAB2luUHJBbXQFAAAABmluUHJJZAUAAAAHdXNyQWRkcgUAAAAGaXNFdmFsBQAAAAZlbWl0THAHAAAAAAAAAAAAAgAAAAAAAAABaQEAAAAjZXN0aW1hdGVHZXRPcGVyYXRpb25XcmFwcGVyUkVBRE9OTFkAAAAEAAAABnR4SWQ1OAAAAAdwbXRBc0lkAAAACHBtdExwQW10AAAAB3VzckFkZHIEAAAAA3JlcwkBAAAAFGVzdGltYXRlR2V0T3BlcmF0aW9uAAAABAUAAAAGdHhJZDU4BQAAAAdwbXRBc0lkBQAAAAhwbXRMcEFtdAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAHdXNyQWRkcgkABRQAAAACBQAAAANuaWwJAAUcAAAACggFAAAAA3JlcwAAAAJfMQgFAAAAA3JlcwAAAAJfMggFAAAAA3JlcwAAAAJfMwgFAAAAA3JlcwAAAAJfNAgFAAAAA3JlcwAAAAJfNQgFAAAAA3JlcwAAAAJfNggFAAAAA3JlcwAAAAJfNwkAAaYAAAABCAUAAAADcmVzAAAAAl84CAUAAAADcmVzAAAAAl85CAUAAAADcmVzAAAAA18xMAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAVPcmRlcgQAAAAFb3JkZXIFAAAAByRtYXRjaDAEAAAAB210Y2hQdWIJAQAAABNnZXRNYXRjaGVyUHViT3JGYWlsAAAAAAQAAAADb3JWCQEAAAAbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkAAAAAQUAAAAFb3JkZXIEAAAABXNuZHJWCQAB9AAAAAMIBQAAAAVvcmRlcgAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAABW9yZGVyAAAABnByb29mcwAAAAAAAAAAAAgFAAAABW9yZGVyAAAAD3NlbmRlclB1YmxpY0tleQQAAAAFbXRjaFYJAAH0AAAAAwgFAAAABW9yZGVyAAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAAFb3JkZXIAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAdtdGNoUHViAwMDBQAAAANvclYFAAAABXNuZHJWBwUAAAAFbXRjaFYHBgkBAAAAD3Rocm93T3JkZXJFcnJvcgAAAAMFAAAAA29yVgUAAAAFc25kclYFAAAABW10Y2hWBAAAAAVhZG1pbgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzCQEAAAAMa2V5TWFuUHViS2V5AAAAAAUAAAAFRU1QVFkDCQAAAAAAAAIFAAAABWFkbWluBQAAAAVFTVBUWQkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACQACWQAAAAEFAAAABWFkbWluZ0le0g==", "chainId": 84, "height": 1853031, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9CTJUr8BScwyZykb44ubPLGnVXe8ubA7QpZvaVToFH7C Next: CdNSm91huzFCj4t5WrkKB1m7yFCzsYFi3Gf8eB3ErswK Diff:
OldNewDifferences
482482 then $Tuple6((bE - bZ), bG, (bZ - dk), dl, 0, 0)
483483 else if ((bu == bz))
484484 then $Tuple6(bE, (bG - bZ), 0, 0, (bZ - dl), dk)
485- else throw("unexpected pmtAssetId")
485+ else throw("wrong pmtAssetId")
486486 let dq = dp._1
487487 let dr = dp._2
488488 let ds = dp._3
608608 let dM = cV._1
609609 let dN = cV._2
610610 let bE = aP(by)
611- let dO = (bE - dM)
612611 let bG = aP(bz)
613- let dP = (bG - dN)
614- let dQ = invoke(dn, "calcD", [toString(dO), toString(dP), "50", "100000000", "1"], nil)
615- let dR = if ((dJ == by))
612+ let dO = if ((dJ == by))
613+ then $Tuple7((bE - dM), (bG - dN), (dI - dM), dH, 0, 0, (dM + dG))
614+ else if ((dJ == bz))
615+ then $Tuple7((bE - dM), (bG - dN), 0, 0, (dI - dN), dG, (dN + dH))
616+ else throw("wrong outAssetId")
617+ let dq = dO._1
618+ let dr = dO._2
619+ let ds = dO._3
620+ let dt = dO._4
621+ let du = dO._5
622+ let dv = dO._6
623+ let dP = dO._7
624+ let dQ = invoke(dn, "calcD", [toString(dq), toString(dr), f, g, h], nil)
625+ let dR = invoke(dn, "calcD", [toString(((dq - ds) + dv)), toString(((dr + dt) - du)), f, g, h], nil)
626+ let dA = aU(parseBigIntValue(al(dR)), parseBigIntValue(al(dQ)), toBigInt(1000))
627+ if ((dA == dA))
616628 then {
617- let dS = (dI - dM)
618- let dT = invoke(dn, "calcD", [toString((dO - dS)), toString((dP + dH)), "50", "100000000", "1"], nil)
619- let dA = aU(parseBigIntValue(al(dT)), parseBigIntValue(al(dQ)), toBigInt(1000))
620- if ((dA != dA))
621- then throw()
622- else {
623- let dU = (dM + dG)
624- let dC = aU(toBigInt(dU), toBigInt(dI), toBigInt(aX))
625- $Tuple2(toInt(dC._2), 0)
629+ let dS = aU(toBigInt(dP), toBigInt(dI), toBigInt(aX))
630+ if ((dS == dS))
631+ then {
632+ let dT = if ((dJ == by))
633+ then $Tuple2(toInt(dS._2), 0)
634+ else $Tuple2(0, toInt(dS._2))
635+ let bI = aR(A(bG, bB), A(bE, bA))
636+ let bJ = D(bI, a)
637+ let bQ = [ScriptTransfer(bw, if ((dL == by))
638+ then dT._1
639+ else dT._2, if ((dL == "WAVES"))
640+ then unit
641+ else fromBase58String(dL)), StringEntry(U(toString(bw), bt), aL(dT._1, dT._2, bZ, bJ, height, lastBlock.timestamp)), IntegerEntry(N(), bJ), IntegerEntry(O(height, lastBlock.timestamp), bJ)]
642+ if ((bQ == bQ))
643+ then {
644+ let dU = invoke(as, "burn", [bZ], [AttachedPayment(bu, bZ)])
645+ if ((dU == dU))
646+ then bQ
647+ else throw("Strict value is not equal to itself.")
648+ }
649+ else throw("Strict value is not equal to itself.")
626650 }
627- }
628- else {
629- let dV = (dI - dN)
630- let dT = invoke(dn, "calcD", [toString((dO + dG)), toString((dP - dV)), "50", "100000000", "1"], nil)
631- let dA = aU(parseBigIntValue(al(dT)), parseBigIntValue(al(dQ)), toBigInt(1000))
632- if ((dA != dA))
633- then throw()
634- else {
635- let dU = (dN + dH)
636- let dC = aU(toBigInt(dU), toBigInt(dI), toBigInt(aX))
637- $Tuple2(0, toInt(dC._2))
638- }
639- }
640- let bI = aR(A(bG, bB), A(bE, bA))
641- let bJ = D(bI, a)
642- let bQ = [ScriptTransfer(bw, if ((dL == by))
643- then dR._1
644- else dR._2, if ((dL == "WAVES"))
645- then unit
646- else fromBase58String(dL)), StringEntry(U(toString(bw), bt), aL(dR._1, dR._2, bZ, bJ, height, lastBlock.timestamp)), IntegerEntry(N(), bJ), IntegerEntry(O(height, lastBlock.timestamp), bJ)]
647- if ((bQ == bQ))
648- then {
649- let dW = invoke(as, "burn", [bZ], [AttachedPayment(bu, bZ)])
650- if ((dW == dW))
651- then bQ
652651 else throw("Strict value is not equal to itself.")
653652 }
654653 else throw("Strict value is not equal to itself.")
659658
660659
661660 @Callable(cP)
662-func getNoLess (dX,dY) = {
661+func getNoLess (dV,dW) = {
663662 let cl = cO(cP)
664663 let bO = cl._1
665664 let bP = cl._2
666665 let bZ = cl._3
667666 let bu = cl._4
668667 let bQ = cl._5
669- if ((dX > bO))
670- then throw(((("Failed: " + toString(bO)) + " < ") + toString(dX)))
671- else if ((dY > bP))
672- then throw(((("Failed: " + toString(bP)) + " < ") + toString(dY)))
668+ if ((dV > bO))
669+ then throw(((("Failed: " + toString(bO)) + " < ") + toString(dV)))
670+ else if ((dW > bP))
671+ then throw(((("Failed: " + toString(bP)) + " < ") + toString(dW)))
673672 else {
674673 let dF = invoke(as, "burn", [bZ], [AttachedPayment(bu, bZ)])
675674 if ((dF == dF))
681680
682681
683682 @Callable(cP)
684-func unstakeAndGet (dZ) = {
685- let ea = if ((size(cP.payments) != 0))
683+func unstakeAndGet (dX) = {
684+ let dY = if ((size(cP.payments) != 0))
686685 then throw("No pmnts expected")
687686 else true
688- if ((ea == ea))
687+ if ((dY == dY))
689688 then {
690689 let bj = av()
691- let eb = az()
690+ let dZ = az()
692691 let de = fromBase58String(bj[q])
693- let ec = valueOrErrorMessage(addressFromString(eb[x]), "Wr st addr")
694- let ed = invoke(ec, "unstake", [toBase58String(de), dZ], nil)
695- if ((ed == ed))
692+ let ea = valueOrErrorMessage(addressFromString(dZ[x]), "Wr st addr")
693+ let eb = invoke(ea, "unstake", [toBase58String(de), dX], nil)
694+ if ((eb == eb))
696695 then {
697- let cV = bs(toBase58String(cP.transactionId), toBase58String(de), dZ, cP.caller)
696+ let cV = bs(toBase58String(cP.transactionId), toBase58String(de), dX, cP.caller)
698697 let bC = parseIntValue(cV._9)
699698 let bQ = cV._10
700- let ee = if (if (at())
699+ let ec = if (if (at())
701700 then true
702701 else (bC == n))
703702 then throw(("Admin blocked: " + toString(bC)))
704703 else true
705- if ((ee == ee))
704+ if ((ec == ec))
706705 then {
707- let dF = invoke(as, "burn", [dZ], [AttachedPayment(de, dZ)])
706+ let dF = invoke(as, "burn", [dX], [AttachedPayment(de, dX)])
708707 if ((dF == dF))
709708 then bQ
710709 else throw("Strict value is not equal to itself.")
719718
720719
721720 @Callable(cP)
722-func activate (ef,eg) = if ((toString(cP.caller) != toString(as)))
721+func activate (ed,ee) = if ((toString(cP.caller) != toString(as)))
723722 then throw("permissions denied")
724- else $Tuple2([StringEntry(V(), ef), StringEntry(W(), eg)], "success")
723+ else $Tuple2([StringEntry(V(), ed), StringEntry(W(), ee)], "success")
725724
726725
727726
759758
760759
761760 @Callable(cP)
762-func estimatePutOperationWrapperREADONLY (bt,aX,bS,bT,bU,bV,eh,bW,bX) = $Tuple2(nil, bR(bt, aX, bS, bT, bU, bV, eh, bW, bX, false, 0, ""))
761+func estimatePutOperationWrapperREADONLY (bt,aX,bS,bT,bU,bV,ef,bW,bX) = $Tuple2(nil, bR(bt, aX, bS, bT, bU, bV, ef, bW, bX, false, 0, ""))
763762
764763
765764
766765 @Callable(cP)
767-func estimateGetOperationWrapperREADONLY (bt,ei,bv,eh) = {
768- let cl = bs(bt, ei, bv, addressFromStringValue(eh))
766+func estimateGetOperationWrapperREADONLY (bt,eg,bv,ef) = {
767+ let cl = bs(bt, eg, bv, addressFromStringValue(ef))
769768 $Tuple2(nil, $Tuple10(cl._1, cl._2, cl._3, cl._4, cl._5, cl._6, cl._7, toString(cl._8), cl._9, cl._10))
770769 }
771770
772771
773-@Verifier(ej)
774-func ek () = {
775- let am = ej
772+@Verifier(eh)
773+func ei () = {
774+ let am = eh
776775 if ($isInstanceOf(am, "Order"))
777776 then {
778777 let cC = am
779- let el = au()
778+ let ej = au()
780779 let ai = cB(cC)
781- let em = sigVerify(cC.bodyBytes, cC.proofs[0], cC.senderPublicKey)
782- let en = sigVerify(cC.bodyBytes, cC.proofs[1], el)
780+ let ek = sigVerify(cC.bodyBytes, cC.proofs[0], cC.senderPublicKey)
781+ let el = sigVerify(cC.bodyBytes, cC.proofs[1], ej)
783782 if (if (if (ai)
784- then em
783+ then ek
785784 else false)
786- then en
785+ then el
787786 else false)
788787 then true
789- else ah(ai, em, en)
788+ else ah(ai, ek, el)
790789 }
791790 else {
792- let eo = valueOrElse(getString(this, M()), j)
793- if ((eo == j))
794- then sigVerify(ej.bodyBytes, ej.proofs[0], ej.senderPublicKey)
795- else sigVerify(ej.bodyBytes, ej.proofs[0], fromBase58String(eo))
791+ let em = valueOrElse(getString(this, M()), j)
792+ if ((em == j))
793+ then sigVerify(eh.bodyBytes, eh.proofs[0], eh.senderPublicKey)
794+ else sigVerify(eh.bodyBytes, eh.proofs[0], fromBase58String(em))
796795 }
797796 }
798797
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 100000000
55
66 let b = toBigInt(100000000)
77
88 let c = toBigInt(1000000000000000000)
99
1010 let d = toBigInt(0)
1111
1212 let e = toBigInt(1)
1313
1414 let f = "50"
1515
1616 let g = "100000000"
1717
1818 let h = "1"
1919
2020 let i = "__"
2121
2222 let j = ""
2323
2424 let k = 1
2525
2626 let l = 2
2727
2828 let m = 3
2929
3030 let n = 4
3131
3232 let o = 1
3333
3434 let p = 2
3535
3636 let q = 3
3737
3838 let r = 4
3939
4040 let s = 5
4141
4242 let t = 6
4343
4444 let u = 7
4545
4646 let v = 8
4747
4848 let w = 9
4949
5050 let x = 1
5151
5252 let y = 7
5353
5454 let z = 10
5555
5656 func A (B,C) = fraction(toBigInt(B), c, toBigInt(C))
5757
5858
5959 func D (E,F) = toInt(fraction(E, toBigInt(F), c))
6060
6161
6262 func G (H,I,J) = fraction(H, I, J)
6363
6464
6565 func K (E) = if ((d > E))
6666 then -(E)
6767 else E
6868
6969
7070 func L () = "%s__factoryContract"
7171
7272
7373 func M () = "%s__managerPublicKey"
7474
7575
7676 func N () = "%s%s__price__last"
7777
7878
7979 func O (P,Q) = makeString(["%s%s%d%d__price__history", toString(P), toString(Q)], i)
8080
8181
8282 func R (S,T) = ((("%s%s%s__P__" + S) + "__") + T)
8383
8484
8585 func U (S,T) = ((("%s%s%s__G__" + S) + "__") + T)
8686
8787
8888 func V () = "%s__amountAsset"
8989
9090
9191 func W () = "%s__priceAsset"
9292
9393
9494 func X () = "%s__factoryConfig"
9595
9696
9797 func Y () = "%s%s__matcher__publicKey"
9898
9999
100100 func Z (aa,ab) = (((("%d%d%s__" + aa) + "__") + ab) + "__config")
101101
102102
103103 func ac (ad) = ("%s%s%s__mappings__baseAsset2internalId__" + ad)
104104
105105
106106 func ae () = "%s__shutdown"
107107
108108
109109 func af (ag) = ("%s%s__poolWeight__" + ag)
110110
111111
112112 func ah (ai,aj,ak) = throw(((((("Failed: orderValid=" + toString(ai)) + " senderValid=") + toString(aj)) + " matcherValid=") + toString(ak)))
113113
114114
115115 func al (E) = {
116116 let am = E
117117 if ($isInstanceOf(am, "String"))
118118 then {
119119 let an = am
120120 an
121121 }
122122 else throw("fail cast to String")
123123 }
124124
125125
126126 func ao (ap,aq) = valueOrErrorMessage(getString(ap, aq), makeString(["mandatory ", toString(ap), ".", aq, " is not defined"], ""))
127127
128128
129129 func ar (ap,aq) = valueOrErrorMessage(getInteger(ap, aq), makeString(["mandatory ", toString(ap), ".", aq, " is not defined"], ""))
130130
131131
132132 let as = addressFromStringValue(ao(this, L()))
133133
134134 func at () = valueOrElse(getBoolean(as, ae()), false)
135135
136136
137137 func au () = fromBase58String(ao(as, Y()))
138138
139139
140140 func av () = {
141141 let aw = ao(this, V())
142142 let ax = ao(this, W())
143143 let ay = ar(as, ac(ax))
144144 let aa = ar(as, ac(aw))
145145 split(ao(as, Z(toString(aa), toString(ay))), i)
146146 }
147147
148148
149149 func az () = split(ao(as, X()), i)
150150
151151
152152 func aA (aB,aC,aD,aE,aF,aG,aH,aI,aJ,aK) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aB), toString(aC), toString(aD), toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ), toString(aK)], i)
153153
154154
155155 func aL (aM,aN,aO,aE,aH,aI) = makeString(["%d%d%d%d%d%d", toString(aM), toString(aN), toString(aO), toString(aE), toString(aH), toString(aI)], i)
156156
157157
158158 func aP (aQ) = if ((aQ == "WAVES"))
159159 then wavesBalance(this).available
160160 else assetBalance(this, fromBase58String(aQ))
161161
162162
163163 func aR (aS,aT) = fraction(aS, c, aT)
164164
165165
166166 func aU (aV,aW,aX) = {
167167 let aY = fraction((aV - aW), b, aW)
168168 let aZ = ((aX - K(aY)) > d)
169169 if (!(aZ))
170170 then throw(((("Too big slippage: " + toString(aY)) + " vs ") + toString(aX)))
171171 else $Tuple2(aZ, min([aV, aW]))
172172 }
173173
174174
175175 func ba (bb,bc,bd,be) = {
176176 let bf = A(bd, bb)
177177 let bg = A(be, bc)
178178 aR(bg, bf)
179179 }
180180
181181
182182 func bh (bd,be,bi) = {
183183 let bj = av()
184184 let bk = parseIntValue(bj[t])
185185 let bl = parseIntValue(bj[u])
186186 let bm = ba(bk, bl, bd, be)
187187 let aT = A(bd, bk)
188188 let aS = A(be, bl)
189189 let bn = A(bi, a)
190190 let bo = aR(aT, bn)
191191 let bp = aR(aS, bn)
192192 [bm, bo, bp]
193193 }
194194
195195
196196 func bq (bd,be,bi) = {
197197 let br = bh(bd, be, bi)
198198 [D(br[0], a), D(br[1], a), D(br[2], a)]
199199 }
200200
201201
202202 func bs (bt,bu,bv,bw) = {
203203 let bj = av()
204204 let bx = bj[q]
205205 let by = bj[r]
206206 let bz = bj[s]
207207 let bA = parseIntValue(bj[t])
208208 let bB = parseIntValue(bj[u])
209209 let bC = bj[p]
210210 let bD = valueOrErrorMessage(assetInfo(fromBase58String(bx)), "Invalid LP id").quantity
211211 if ((bx != bu))
212212 then throw("Invalid pmt asset")
213213 else {
214214 let bE = aP(by)
215215 let bF = A(bE, bA)
216216 let bG = aP(bz)
217217 let bH = A(bG, bB)
218218 let bI = aR(bH, bF)
219219 let bJ = D(bI, a)
220220 let bK = A(bv, a)
221221 let bL = A(bD, a)
222222 let bM = fraction(bF, bK, bL)
223223 let bN = fraction(bH, bK, bL)
224224 let bO = D(bM, bA)
225225 let bP = D(bN, bB)
226226 let bQ = if ((bt == ""))
227227 then nil
228228 else [ScriptTransfer(bw, bO, if ((by == "WAVES"))
229229 then unit
230230 else fromBase58String(by)), ScriptTransfer(bw, bP, if ((bz == "WAVES"))
231231 then unit
232232 else fromBase58String(bz)), StringEntry(U(toString(bw), bt), aL(bO, bP, bv, bJ, height, lastBlock.timestamp)), IntegerEntry(N(), bJ), IntegerEntry(O(height, lastBlock.timestamp), bJ)]
233233 $Tuple10(bO, bP, by, bz, bE, bG, bD, bI, bC, bQ)
234234 }
235235 }
236236
237237
238238 func bR (bt,aX,bS,bT,bU,bV,bw,bW,bX,bY,bZ,ca) = {
239239 let bj = av()
240240 let bx = fromBase58String(bj[q])
241241 let cb = bj[r]
242242 let cc = bj[s]
243243 let cd = bj[v]
244244 let ce = bj[w]
245245 let cf = parseIntValue(bj[t])
246246 let cg = parseIntValue(bj[u])
247247 let bC = bj[p]
248248 let ch = valueOrErrorMessage(assetInfo(bx), "Wr lp as").quantity
249249 let bE = if (bW)
250250 then aP(cb)
251251 else if (if (bY)
252252 then (ca == cb)
253253 else false)
254254 then (aP(cb) - bZ)
255255 else if (bY)
256256 then aP(cb)
257257 else (aP(cb) - bS)
258258 let bG = if (bW)
259259 then aP(cc)
260260 else if (if (bY)
261261 then (ca == cc)
262262 else false)
263263 then (aP(cc) - bZ)
264264 else if (bY)
265265 then aP(cc)
266266 else (aP(cc) - bU)
267267 let ci = A(bS, cf)
268268 let cj = A(bU, cg)
269269 let ck = aR(cj, ci)
270270 let bF = A(bE, cf)
271271 let bH = A(bG, cg)
272272 let cl = if ((ch == 0))
273273 then {
274274 let bI = d
275275 let cm = d
276276 let bn = pow((ci * cj), 0, toBigInt(5), 1, 0, DOWN)
277277 $Tuple5(D(bn, a), D(ci, cf), D(cj, cg), aR((bH + cj), (bF + ci)), cm)
278278 }
279279 else {
280280 let bI = aR(bH, bF)
281281 let cn = fraction(K((bI - ck)), c, bI)
282282 let cm = A(aX, a)
283283 if (if ((bI != d))
284284 then (cn > cm)
285285 else false)
286286 then throw(((("Price slippage " + toString(cn)) + " > ") + toString(cm)))
287287 else {
288288 let bL = A(ch, a)
289289 let co = fraction(ci, bI, c)
290290 let cp = fraction(cj, c, bI)
291291 let cq = if ((co > cj))
292292 then $Tuple2(cp, cj)
293293 else $Tuple2(ci, co)
294294 let cr = cq._1
295295 let cs = cq._2
296296 let bn = fraction(bL, cs, bH)
297297 $Tuple5(D(bn, a), D(cr, cf), D(cs, cg), bI, cm)
298298 }
299299 }
300300 let ct = cl._1
301301 let cu = cl._2
302302 let cv = cl._3
303303 let bJ = D(cl._4, a)
304304 let cw = D(cl._5, a)
305305 if ((0 >= ct))
306306 then throw("LP <= 0")
307307 else {
308308 let cx = if (!(bX))
309309 then 0
310310 else ct
311311 let cy = (bS - cu)
312312 let cz = (bU - cv)
313313 let cA = [IntegerEntry(N(), bJ), IntegerEntry(O(height, lastBlock.timestamp), bJ), StringEntry(R(bw, bt), aA(cu, cv, cx, bJ, aX, cw, height, lastBlock.timestamp, cy, cz))]
314314 $Tuple13(ct, cx, bJ, bE, bG, ch, bx, bC, cA, cy, cz, bT, bV)
315315 }
316316 }
317317
318318
319319 func cB (cC) = {
320320 let bj = av()
321321 let cD = bj[r]
322322 let cE = bj[s]
323323 let bC = parseIntValue(bj[p])
324324 let bk = parseIntValue(bj[t])
325325 let bl = parseIntValue(bj[u])
326326 let cF = aP(cD)
327327 let cG = aP(cE)
328328 let bI = if ((cC.orderType == Buy))
329329 then ba(bk, bl, (cF + cC.amount), cG)
330330 else ba(bk, bl, (cF - cC.amount), cG)
331331 let bJ = D(bI, a)
332332 if (if (if (at())
333333 then true
334334 else (bC == m))
335335 then true
336336 else (bC == n))
337337 then throw("Admin blocked")
338338 else {
339339 let cH = cC.assetPair.amountAsset
340340 let cI = if ((cH == unit))
341341 then "WAVES"
342342 else toBase58String(value(cH))
343343 let cJ = cC.assetPair.priceAsset
344344 let cK = if ((cJ == unit))
345345 then "WAVES"
346346 else toBase58String(value(cJ))
347347 if (if ((cI != cD))
348348 then true
349349 else (cK != cE))
350350 then throw("Wr assets")
351351 else {
352352 let cL = cC.price
353353 let cg = fraction(a, bl, bk)
354354 let cM = G(cL, a, cg)
355355 let cN = if ((cC.orderType == Buy))
356356 then (bJ >= cM)
357357 else (cM >= bJ)
358358 true
359359 }
360360 }
361361 }
362362
363363
364364 func cO (cP) = if ((size(cP.payments) != 1))
365365 then throw("1 pmnt expected")
366366 else {
367367 let cQ = value(cP.payments[0])
368368 let bu = value(cQ.assetId)
369369 let bZ = cQ.amount
370370 let cl = bs(toBase58String(cP.transactionId), toBase58String(bu), bZ, cP.caller)
371371 let bO = cl._1
372372 let bP = cl._2
373373 let bC = parseIntValue(cl._9)
374374 let bQ = cl._10
375375 if (if (at())
376376 then true
377377 else (bC == n))
378378 then throw(("Admion blocked: " + toString(bC)))
379379 else $Tuple5(bO, bP, bZ, bu, bQ)
380380 }
381381
382382
383383 func cR (cS,T,cT,cU,aX,bX,bY,bZ,ca) = {
384384 let cV = bR(T, aX, value(cT).amount, value(cT).assetId, value(cU).amount, value(cU).assetId, cS, false, bX, bY, bZ, ca)
385385 let cW = parseIntValue(cV._8)
386386 if (if (if (at())
387387 then true
388388 else (cW == l))
389389 then true
390390 else (cW == n))
391391 then throw(("Admin blocked: " + toString(cW)))
392392 else cV
393393 }
394394
395395
396396 @Callable(cP)
397397 func constructor (as,cX) = if ((cP.caller != this))
398398 then throw("permission denied")
399399 else [StringEntry(L(), as), StringEntry(M(), cX)]
400400
401401
402402
403403 @Callable(cP)
404404 func put (cY,cZ) = {
405405 let da = az()
406406 let db = valueOrErrorMessage(addressFromString(da[x]), "Wr st addr")
407407 let dc = valueOrErrorMessage(addressFromString(da[y]), "Wr sl addr")
408408 if ((0 > cY))
409409 then throw("Invalid slippage.")
410410 else if ((size(cP.payments) != 2))
411411 then throw("2 pmnts expected")
412412 else {
413413 let dd = cR(toString(cP.caller), toBase58String(cP.transactionId), AttachedPayment(value(cP.payments[0]).assetId, value(cP.payments[0]).amount), cP.payments[1], cY, true, false, 0, "")
414414 let cx = dd._2
415415 let de = dd._7
416416 let bQ = dd._9
417417 let cy = dd._10
418418 let cz = dd._11
419419 let by = dd._12
420420 let bz = dd._13
421421 let df = invoke(as, "emit", [cx], nil)
422422 if ((df == df))
423423 then {
424424 let dg = if ((cy > 0))
425425 then invoke(dc, "put", nil, [AttachedPayment(by, cy)])
426426 else nil
427427 if ((dg == dg))
428428 then {
429429 let dh = if ((cz > 0))
430430 then invoke(dc, "put", nil, [AttachedPayment(bz, cz)])
431431 else nil
432432 if ((dh == dh))
433433 then {
434434 let di = if (cZ)
435435 then {
436436 let dj = invoke(db, "stake", nil, [AttachedPayment(de, cx)])
437437 if ((dj == dj))
438438 then nil
439439 else throw("Strict value is not equal to itself.")
440440 }
441441 else [ScriptTransfer(cP.caller, cx, de)]
442442 (bQ ++ di)
443443 }
444444 else throw("Strict value is not equal to itself.")
445445 }
446446 else throw("Strict value is not equal to itself.")
447447 }
448448 else throw("Strict value is not equal to itself.")
449449 }
450450 }
451451
452452
453453
454454 @Callable(cP)
455455 func putOneTkn (dk,dl,dm,aX,cZ) = {
456456 let bj = az()
457457 let db = valueOrErrorMessage(addressFromString(bj[x]), "Wr st addr")
458458 let dc = valueOrErrorMessage(addressFromString(bj[y]), "Wr sl addr")
459459 let dn = valueOrErrorMessage(addressFromString(bj[z]), "Wr gwx addr")
460460 let do = av()
461461 let by = do[r]
462462 let bz = do[s]
463463 let bA = parseIntValue(do[t])
464464 let bB = parseIntValue(do[u])
465465 if (if (if (if ((0 >= aX))
466466 then true
467467 else (0 >= dk))
468468 then true
469469 else (0 >= dl))
470470 then true
471471 else (0 >= dm))
472472 then throw("Wrong params")
473473 else if ((size(cP.payments) != 1))
474474 then throw("1 pmnt expected")
475475 else {
476476 let cQ = value(cP.payments[0])
477477 let bu = toBase58String(value(cQ.assetId))
478478 let bZ = cQ.amount
479479 let bE = aP(by)
480480 let bG = aP(bz)
481481 let dp = if ((bu == by))
482482 then $Tuple6((bE - bZ), bG, (bZ - dk), dl, 0, 0)
483483 else if ((bu == bz))
484484 then $Tuple6(bE, (bG - bZ), 0, 0, (bZ - dl), dk)
485- else throw("unexpected pmtAssetId")
485+ else throw("wrong pmtAssetId")
486486 let dq = dp._1
487487 let dr = dp._2
488488 let ds = dp._3
489489 let dt = dp._4
490490 let du = dp._5
491491 let dv = dp._6
492492 let dw = invoke(dn, "calcD", [toString(dq), toString(dr), f, g, h], nil)
493493 let dx = invoke(dn, "calcD", [toString(toBigInt(((dq + ds) - dv))), toString(toBigInt(((dr + du) - dt))), f, g, h], nil)
494494 let dy = parseBigIntValue(al(dw))
495495 let dz = parseBigIntValue(al(dx))
496496 let dA = aU(dz, dy, toBigInt(1000))
497497 if ((dA == dA))
498498 then {
499499 let dd = cR(toString(cP.caller), toBase58String(cP.transactionId), AttachedPayment(fromBase58String(by), dk), AttachedPayment(fromBase58String(bz), dl), 50000000000, true, true, bZ, bu)
500500 let dB = dd._2
501501 let de = dd._7
502502 let bQ = dd._9
503503 let cy = dd._10
504504 let cz = dd._11
505505 let dC = aU(toBigInt(dB), toBigInt(dm), toBigInt(aX))
506506 let cx = toInt(dC._2)
507507 let df = invoke(as, "emit", [cx], nil)
508508 if ((df == df))
509509 then {
510510 let dg = if ((cy > 0))
511511 then invoke(dc, "put", nil, [AttachedPayment(fromBase58String(by), cy)])
512512 else nil
513513 if ((dg == dg))
514514 then {
515515 let dh = if ((cz > 0))
516516 then invoke(dc, "put", nil, [AttachedPayment(fromBase58String(bz), cz)])
517517 else nil
518518 if ((dh == dh))
519519 then {
520520 let di = if (cZ)
521521 then {
522522 let dj = invoke(db, "stake", nil, [AttachedPayment(de, cx)])
523523 if ((dj == dj))
524524 then nil
525525 else throw("Strict value is not equal to itself.")
526526 }
527527 else [ScriptTransfer(cP.caller, cx, de)]
528528 (bQ ++ di)
529529 }
530530 else throw("Strict value is not equal to itself.")
531531 }
532532 else throw("Strict value is not equal to itself.")
533533 }
534534 else throw("Strict value is not equal to itself.")
535535 }
536536 else throw("Strict value is not equal to itself.")
537537 }
538538 }
539539
540540
541541
542542 @Callable(cP)
543543 func putForFree (dD) = if ((0 > dD))
544544 then throw("Invalid slippage")
545545 else if ((size(cP.payments) != 2))
546546 then throw("2 payments expected")
547547 else {
548548 let dd = cR(toString(cP.caller), toBase58String(cP.transactionId), AttachedPayment(value(cP.payments[0]).assetId, value(cP.payments[0]).amount), cP.payments[1], dD, false, false, 0, "")
549549 dd._9
550550 }
551551
552552
553553
554554 @Callable(cP)
555555 func get () = {
556556 let cl = cO(cP)
557557 let dE = cl._1
558558 let bP = cl._2
559559 let bZ = cl._3
560560 let bu = cl._4
561561 let bQ = cl._5
562562 let dF = invoke(as, "burn", [bZ], [AttachedPayment(bu, bZ)])
563563 if ((dF == dF))
564564 then bQ
565565 else throw("Strict value is not equal to itself.")
566566 }
567567
568568
569569
570570 @Callable(cP)
571571 func getOneTkn (dG,dH,dI,dJ,aX) = if ((size(cP.payments) != 1))
572572 then throw("1 payment expected")
573573 else {
574574 let bj = av()
575575 let bx = bj[q]
576576 let by = bj[r]
577577 let bz = bj[s]
578578 let bA = parseIntValue(bj[t])
579579 let bB = parseIntValue(bj[u])
580580 let bC = bj[p]
581581 let dK = az()
582582 let dn = valueOrErrorMessage(addressFromString(dK[z]), "Wr sl addr")
583583 if (if ((dJ != by))
584584 then (dJ != bz)
585585 else false)
586586 then throw("Wr out as")
587587 else {
588588 let dL = if ((dJ == by))
589589 then by
590590 else bz
591591 let cQ = value(cP.payments[0])
592592 let bw = cP.caller
593593 let bt = toBase58String(cP.transactionId)
594594 let bu = value(cQ.assetId)
595595 let bZ = cQ.amount
596596 if (if (if (if ((0 > aX))
597597 then true
598598 else (0 > dG))
599599 then true
600600 else (0 > dH))
601601 then true
602602 else (0 > dI))
603603 then throw("Wrong params")
604604 else if ((bx != toBase58String(bu)))
605605 then throw("Invalid LP")
606606 else {
607607 let cV = bs(toBase58String(cP.transactionId), toBase58String(bu), bZ, cP.caller)
608608 let dM = cV._1
609609 let dN = cV._2
610610 let bE = aP(by)
611- let dO = (bE - dM)
612611 let bG = aP(bz)
613- let dP = (bG - dN)
614- let dQ = invoke(dn, "calcD", [toString(dO), toString(dP), "50", "100000000", "1"], nil)
615- let dR = if ((dJ == by))
612+ let dO = if ((dJ == by))
613+ then $Tuple7((bE - dM), (bG - dN), (dI - dM), dH, 0, 0, (dM + dG))
614+ else if ((dJ == bz))
615+ then $Tuple7((bE - dM), (bG - dN), 0, 0, (dI - dN), dG, (dN + dH))
616+ else throw("wrong outAssetId")
617+ let dq = dO._1
618+ let dr = dO._2
619+ let ds = dO._3
620+ let dt = dO._4
621+ let du = dO._5
622+ let dv = dO._6
623+ let dP = dO._7
624+ let dQ = invoke(dn, "calcD", [toString(dq), toString(dr), f, g, h], nil)
625+ let dR = invoke(dn, "calcD", [toString(((dq - ds) + dv)), toString(((dr + dt) - du)), f, g, h], nil)
626+ let dA = aU(parseBigIntValue(al(dR)), parseBigIntValue(al(dQ)), toBigInt(1000))
627+ if ((dA == dA))
616628 then {
617- let dS = (dI - dM)
618- let dT = invoke(dn, "calcD", [toString((dO - dS)), toString((dP + dH)), "50", "100000000", "1"], nil)
619- let dA = aU(parseBigIntValue(al(dT)), parseBigIntValue(al(dQ)), toBigInt(1000))
620- if ((dA != dA))
621- then throw()
622- else {
623- let dU = (dM + dG)
624- let dC = aU(toBigInt(dU), toBigInt(dI), toBigInt(aX))
625- $Tuple2(toInt(dC._2), 0)
629+ let dS = aU(toBigInt(dP), toBigInt(dI), toBigInt(aX))
630+ if ((dS == dS))
631+ then {
632+ let dT = if ((dJ == by))
633+ then $Tuple2(toInt(dS._2), 0)
634+ else $Tuple2(0, toInt(dS._2))
635+ let bI = aR(A(bG, bB), A(bE, bA))
636+ let bJ = D(bI, a)
637+ let bQ = [ScriptTransfer(bw, if ((dL == by))
638+ then dT._1
639+ else dT._2, if ((dL == "WAVES"))
640+ then unit
641+ else fromBase58String(dL)), StringEntry(U(toString(bw), bt), aL(dT._1, dT._2, bZ, bJ, height, lastBlock.timestamp)), IntegerEntry(N(), bJ), IntegerEntry(O(height, lastBlock.timestamp), bJ)]
642+ if ((bQ == bQ))
643+ then {
644+ let dU = invoke(as, "burn", [bZ], [AttachedPayment(bu, bZ)])
645+ if ((dU == dU))
646+ then bQ
647+ else throw("Strict value is not equal to itself.")
648+ }
649+ else throw("Strict value is not equal to itself.")
626650 }
627- }
628- else {
629- let dV = (dI - dN)
630- let dT = invoke(dn, "calcD", [toString((dO + dG)), toString((dP - dV)), "50", "100000000", "1"], nil)
631- let dA = aU(parseBigIntValue(al(dT)), parseBigIntValue(al(dQ)), toBigInt(1000))
632- if ((dA != dA))
633- then throw()
634- else {
635- let dU = (dN + dH)
636- let dC = aU(toBigInt(dU), toBigInt(dI), toBigInt(aX))
637- $Tuple2(0, toInt(dC._2))
638- }
639- }
640- let bI = aR(A(bG, bB), A(bE, bA))
641- let bJ = D(bI, a)
642- let bQ = [ScriptTransfer(bw, if ((dL == by))
643- then dR._1
644- else dR._2, if ((dL == "WAVES"))
645- then unit
646- else fromBase58String(dL)), StringEntry(U(toString(bw), bt), aL(dR._1, dR._2, bZ, bJ, height, lastBlock.timestamp)), IntegerEntry(N(), bJ), IntegerEntry(O(height, lastBlock.timestamp), bJ)]
647- if ((bQ == bQ))
648- then {
649- let dW = invoke(as, "burn", [bZ], [AttachedPayment(bu, bZ)])
650- if ((dW == dW))
651- then bQ
652651 else throw("Strict value is not equal to itself.")
653652 }
654653 else throw("Strict value is not equal to itself.")
655654 }
656655 }
657656 }
658657
659658
660659
661660 @Callable(cP)
662-func getNoLess (dX,dY) = {
661+func getNoLess (dV,dW) = {
663662 let cl = cO(cP)
664663 let bO = cl._1
665664 let bP = cl._2
666665 let bZ = cl._3
667666 let bu = cl._4
668667 let bQ = cl._5
669- if ((dX > bO))
670- then throw(((("Failed: " + toString(bO)) + " < ") + toString(dX)))
671- else if ((dY > bP))
672- then throw(((("Failed: " + toString(bP)) + " < ") + toString(dY)))
668+ if ((dV > bO))
669+ then throw(((("Failed: " + toString(bO)) + " < ") + toString(dV)))
670+ else if ((dW > bP))
671+ then throw(((("Failed: " + toString(bP)) + " < ") + toString(dW)))
673672 else {
674673 let dF = invoke(as, "burn", [bZ], [AttachedPayment(bu, bZ)])
675674 if ((dF == dF))
676675 then bQ
677676 else throw("Strict value is not equal to itself.")
678677 }
679678 }
680679
681680
682681
683682 @Callable(cP)
684-func unstakeAndGet (dZ) = {
685- let ea = if ((size(cP.payments) != 0))
683+func unstakeAndGet (dX) = {
684+ let dY = if ((size(cP.payments) != 0))
686685 then throw("No pmnts expected")
687686 else true
688- if ((ea == ea))
687+ if ((dY == dY))
689688 then {
690689 let bj = av()
691- let eb = az()
690+ let dZ = az()
692691 let de = fromBase58String(bj[q])
693- let ec = valueOrErrorMessage(addressFromString(eb[x]), "Wr st addr")
694- let ed = invoke(ec, "unstake", [toBase58String(de), dZ], nil)
695- if ((ed == ed))
692+ let ea = valueOrErrorMessage(addressFromString(dZ[x]), "Wr st addr")
693+ let eb = invoke(ea, "unstake", [toBase58String(de), dX], nil)
694+ if ((eb == eb))
696695 then {
697- let cV = bs(toBase58String(cP.transactionId), toBase58String(de), dZ, cP.caller)
696+ let cV = bs(toBase58String(cP.transactionId), toBase58String(de), dX, cP.caller)
698697 let bC = parseIntValue(cV._9)
699698 let bQ = cV._10
700- let ee = if (if (at())
699+ let ec = if (if (at())
701700 then true
702701 else (bC == n))
703702 then throw(("Admin blocked: " + toString(bC)))
704703 else true
705- if ((ee == ee))
704+ if ((ec == ec))
706705 then {
707- let dF = invoke(as, "burn", [dZ], [AttachedPayment(de, dZ)])
706+ let dF = invoke(as, "burn", [dX], [AttachedPayment(de, dX)])
708707 if ((dF == dF))
709708 then bQ
710709 else throw("Strict value is not equal to itself.")
711710 }
712711 else throw("Strict value is not equal to itself.")
713712 }
714713 else throw("Strict value is not equal to itself.")
715714 }
716715 else throw("Strict value is not equal to itself.")
717716 }
718717
719718
720719
721720 @Callable(cP)
722-func activate (ef,eg) = if ((toString(cP.caller) != toString(as)))
721+func activate (ed,ee) = if ((toString(cP.caller) != toString(as)))
723722 then throw("permissions denied")
724- else $Tuple2([StringEntry(V(), ef), StringEntry(W(), eg)], "success")
723+ else $Tuple2([StringEntry(V(), ed), StringEntry(W(), ee)], "success")
725724
726725
727726
728727 @Callable(cP)
729728 func getPoolConfigWrapperREADONLY () = $Tuple2(nil, av())
730729
731730
732731
733732 @Callable(cP)
734733 func getAccBalanceWrapperREADONLY (aQ) = $Tuple2(nil, aP(aQ))
735734
736735
737736
738737 @Callable(cP)
739738 func calcPricesWrapperREADONLY (bd,be,bi) = {
740739 let br = bh(bd, be, bi)
741740 $Tuple2(nil, [toString(br[0]), toString(br[1]), toString(br[2])])
742741 }
743742
744743
745744
746745 @Callable(cP)
747746 func fromX18WrapperREADONLY (E,F) = $Tuple2(nil, D(parseBigIntValue(E), F))
748747
749748
750749
751750 @Callable(cP)
752751 func toX18WrapperREADONLY (B,C) = $Tuple2(nil, toString(A(B, C)))
753752
754753
755754
756755 @Callable(cP)
757756 func calcPriceBigIntWrapperREADONLY (aS,aT) = $Tuple2(nil, toString(aR(parseBigIntValue(aS), parseBigIntValue(aT))))
758757
759758
760759
761760 @Callable(cP)
762-func estimatePutOperationWrapperREADONLY (bt,aX,bS,bT,bU,bV,eh,bW,bX) = $Tuple2(nil, bR(bt, aX, bS, bT, bU, bV, eh, bW, bX, false, 0, ""))
761+func estimatePutOperationWrapperREADONLY (bt,aX,bS,bT,bU,bV,ef,bW,bX) = $Tuple2(nil, bR(bt, aX, bS, bT, bU, bV, ef, bW, bX, false, 0, ""))
763762
764763
765764
766765 @Callable(cP)
767-func estimateGetOperationWrapperREADONLY (bt,ei,bv,eh) = {
768- let cl = bs(bt, ei, bv, addressFromStringValue(eh))
766+func estimateGetOperationWrapperREADONLY (bt,eg,bv,ef) = {
767+ let cl = bs(bt, eg, bv, addressFromStringValue(ef))
769768 $Tuple2(nil, $Tuple10(cl._1, cl._2, cl._3, cl._4, cl._5, cl._6, cl._7, toString(cl._8), cl._9, cl._10))
770769 }
771770
772771
773-@Verifier(ej)
774-func ek () = {
775- let am = ej
772+@Verifier(eh)
773+func ei () = {
774+ let am = eh
776775 if ($isInstanceOf(am, "Order"))
777776 then {
778777 let cC = am
779- let el = au()
778+ let ej = au()
780779 let ai = cB(cC)
781- let em = sigVerify(cC.bodyBytes, cC.proofs[0], cC.senderPublicKey)
782- let en = sigVerify(cC.bodyBytes, cC.proofs[1], el)
780+ let ek = sigVerify(cC.bodyBytes, cC.proofs[0], cC.senderPublicKey)
781+ let el = sigVerify(cC.bodyBytes, cC.proofs[1], ej)
783782 if (if (if (ai)
784- then em
783+ then ek
785784 else false)
786- then en
785+ then el
787786 else false)
788787 then true
789- else ah(ai, em, en)
788+ else ah(ai, ek, el)
790789 }
791790 else {
792- let eo = valueOrElse(getString(this, M()), j)
793- if ((eo == j))
794- then sigVerify(ej.bodyBytes, ej.proofs[0], ej.senderPublicKey)
795- else sigVerify(ej.bodyBytes, ej.proofs[0], fromBase58String(eo))
791+ let em = valueOrElse(getString(this, M()), j)
792+ if ((em == j))
793+ then sigVerify(eh.bodyBytes, eh.proofs[0], eh.senderPublicKey)
794+ else sigVerify(eh.bodyBytes, eh.proofs[0], fromBase58String(em))
796795 }
797796 }
798797

github/deemru/w8io/169f3d6 
92.43 ms