tx · 2WVpzTCmhvLfBtoS6Mm28z8Fyp1LTpg1UHAskLwH8Knf

3P8KMyAJCPWNcyedqrmymxaeWonvmkhGauz:  -0.01400000 Waves

2022.01.24 13:24 [2958000] smart account 3P8KMyAJCPWNcyedqrmymxaeWonvmkhGauz > SELF 0.00000000 Waves

{ "type": 13, "id": "2WVpzTCmhvLfBtoS6Mm28z8Fyp1LTpg1UHAskLwH8Knf", "fee": 1400000, "feeAssetId": null, "timestamp": 1643019960036, "version": 1, "sender": "3P8KMyAJCPWNcyedqrmymxaeWonvmkhGauz", "senderPublicKey": "DxhbzFs9BZTiN6kcnyybxmqPTV8xReD6Z5gWQ5AgRX8w", "proofs": [ "uVXGEWFVCF31oZM19DTcZCEFXXzzihJ84VBxPjcS6xNzVEqauM92yb11NJxbQbkdPf6qjqciaVanEku2F4xggmo" ], "script": "base64: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Y2VBc3NldAAAAAAEAAAACGlQcmljZUFzCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAAAAAEFAAAAB3ByaWNlQXMEAAAABmlBbXRBcwkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQAAAABBQAAAAVhbXRBcwkABLUAAAACCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAANa2V5UG9vbENvbmZpZwAAAAIJAAGkAAAAAQUAAAAGaUFtdEFzCQABpAAAAAEFAAAACGlQcmljZUFzBQAAAANTRVABAAAAEGdldEZhY3RvcnlDb25maWcAAAAACQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABBrZXlGYWN0b3J5Q29uZmlnAAAAAAUAAAADU0VQAQAAABFkYXRhUHV0QWN0aW9uSW5mbwAAAAoAAAANaW5BbXRBc3NldEFtdAAAAA9pblByaWNlQXNzZXRBbXQAAAAIb3V0THBBbXQAAAAFcHJpY2UAAAAKc2xpcEJ5VXNlcgAAAAxzbGlwcGFnZVJlYWwAAAAIdHhIZWlnaHQAAAALdHhUaW1lc3RhbXAAAAAMc2xpcGFnZUFtQW10AAAADHNsaXBhZ2VQckFtdAkABLkAAAACCQAETAAAAAICAAAAFCVkJWQlZCVkJWQlZCVkJWQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAANaW5BbXRBc3NldEFtdAkABEwAAAACCQABpAAAAAEFAAAAD2luUHJpY2VBc3NldEFtdAkABEwAAAACCQABpAAAAAEFAAAACG91dExwQW10CQAETAAAAAIJAAGkAAAAAQUAAAAFcHJpY2UJAARMAAAAAgkAAaQAAAABBQAAAApzbGlwQnlVc2VyCQAETAAAAAIJAAGkAAAAAQUAAAAMc2xpcHBhZ2VSZWFsCQAETAAAAAIJAAGkAAAAAQUAAAAIdHhIZWlnaHQJAARMAAAAAgkA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BQAAAANjZmcFAAAACWlkeFByQXNJZAQAAAAFYW1EY20JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAANjZmcFAAAAC2lkeEFtdEFzRGNtBAAAAAVwckRjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAANaWR4UHJpY2VBc0RjbQQAAAADc3RzCQABkQAAAAIFAAAAA2NmZwUAAAAJaWR4UG9vbFN0BAAAAAdscEVtaXNzCAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEJAAJZAAAAAQUAAAAEbHBJZAIAAAALV3JvbmcgTFAgaWQAAAAIcXVhbnRpdHkDCQEAAAACIT0AAAACBQAAAARscElkBQAAAApwbXRBc3NldElkCQAAAgAAAAECAAAAD1dyb25nIHBtdCBhc3NldAQAAAAJYW1CYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAABGFtSWQEAAAADGFtQmFsYW5jZVgxOAkBAAAABXRvWDE4AAAAAgUAAAAJYW1CYWxhbmNlBQAAAAVhbURjbQQAAAAJcHJCYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAABHBySWQEAAAADHByQmFsYW5jZVgxOAkBAAAABXRvWDE4AAAAAgUAAAAJcHJCYWxhbmNlBQAAAAVwckRjbQQAAAALY3VyUHJpY2VYMTgJAQAAAA9jYWxjUHJpY2VCaWdJbnQAAAACBQAAAAxwckJhbGFuY2VYMTgFAAAADGFtQmFsYW5jZVgxOAQAAAAIY3VyUHJpY2UJAQAAAAdmcm9tWDE4AAAAAgUAAAALY3VyUHJpY2VYMTgFAAAABnNjYWxlOAQAAAALcG10THBBbXRYMTgJAQAAAAV0b1gxOAAAAAIFAAAACHBtdExwQW10BQAAAAZzY2FsZTgEAAAACmxwRW1pc3NYMTgJAQAAAAV0b1gxOAAAAAIFAAAAB2xwRW1pc3MFAAAABnNjYWxlOAQAAAALb3V0QW1BbXRYMTgJAAE8AAAAAwUAAAAMYW1CYWxhbmNlWDE4BQAAAAtwbXRMcEFtdFgxOAUAAAAKbHBFbWlzc1gxOAQAAAALb3V0UHJBbXRYMTgJAAE8AAAAAwUAAAAMcHJCYWxhbmNlWDE4BQAAAAtwbXRMcEFtdFgxOAUAAAAKbHBFbWlzc1gxOAQAAAAIb3V0QW1BbXQJAQAAAAdmcm9tWDE4AAAAAgUAAAALb3V0QW1BbXRYMTgFAAAABWFtRGNtBAAAAAhvdXRQckFtdAkBAAAAB2Zyb21YMTgAAAACBQAAAAtvdXRQckFtdFgxOAUAAAAFcHJEY20EAAAABXN0YXRlAwkAAAAAAAACBQAAAAZ0eElkNTgCAAAAAAUAAAADbmlsCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAC3VzZXJBZGRyZXNzBQAAAAhvdXRBbUFtdAMJAAAAAAAAAgUAAAAEYW1JZAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAEYW1JZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAt1c2VyQWRkcmVzcwUAAAAIb3V0UHJBbXQDCQAAAAAAAAIFAAAABHBySWQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAABHBySWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmtleUdldEFjdGlvbkJ5VXNlcgAAAAIJAAQlAAAAAQUAAAALdXNlckFkZHJlc3MFAAAABnR4SWQ1OAkBAAAAEWRhdGFHZXRBY3Rpb25JbmZvAAAABgUAAAAIb3V0QW1BbXQFAAAACG91dFByQW10BQAAAAhwbXRMcEFtdAUAAAAIY3VyUHJpY2UFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxrZXlQcmljZUxhc3QAAAAABQAAAAhjdXJQcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2tleVByaWNlSGlzdG9yeQAAAAIFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAACGN1clByaWNlBQAAAANuaWwJAAUcAAAACgUAAAAIb3V0QW1BbXQFAAAACG91dFByQW10BQAAAARhbUlkBQAAAARwcklkBQAAAAlhbUJhbGFuY2UFAAAACXByQmFsYW5jZQUAAAAHbHBFbWlzcwUAAAALY3VyUHJpY2VYMTgFAAAAA3N0cwUAAAAFc3RhdGUBAAAAFGVzdGltYXRlUHV0T3BlcmF0aW9uAAAADAAAAAZ0eElkNTgAAAAIc2xpcHBhZ2UAAAAHaW5BbUFtdAAAAAZpbkFtSWQAAAAHaW5QckFtdAAAAAZpblBySWQAAAALdXNlckFkZHJlc3MAAAAGaXNFdmFsAAAABmVtaXRMcAAAAAppc09uZUFzc2V0AAAABnBtdEFtdAAAAAVwbXRJZAQAAAADY2ZnCQEAAAANZ2V0UG9vbENvbmZpZwAAAAAEAAAABGxwSWQJAAJZAAAAAQkAAZEAAAACBQAAAANjZmcFAAAACWlkeExQQXNJZAQAAAAHYW1JZFN0cgkAAZEAAAACBQAAAANjZmcFAAAACWlkeEFtQXNJZAQAAAAHcHJJZFN0cgkAAZEAAAACBQAAAANjZmcFAAAACWlkeFByQXNJZAQAAAAJaW5BbUlkU3RyCQABkQAAAAIFAAAAA2NmZwUAAAALaWR4SUFtdEFzSWQEAAAACWluUHJJZFN0cgkAAZEAAAACBQAAAANjZmcFAAAADWlkeElQcmljZUFzSWQEAAAABmFtdERjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAALaWR4QW10QXNEY20EAAAACHByaWNlRGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAA1pZHhQcmljZUFzRGNtBAAAAANzdHMJAAGRAAAAAgUAAAADY2ZnBQAAAAlpZHhQb29sU3QEAAAABGxwRW0ICQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQUAAAAEbHBJZAIAAAAIV3IgbHAgYXMAAAAIcXVhbnRpdHkEAAAACWFtQmFsYW5jZQMFAAAABmlzRXZhbAkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAdhbUlkU3RyAwMFAAAACmlzT25lQXNzZXQJAAAAAAAAAgUAAAAFcG10SWQFAAAAB2FtSWRTdHIHCQAAZQAAAAIJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAHYW1JZFN0cgUAAAAGcG10QW10AwUAAAAKaXNPbmVBc3NldAkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAdhbUlkU3RyCQAAZQAAAAIJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAHYW1JZFN0cgUAAAAHaW5BbUFtdAQAAAAJcHJCYWxhbmNlAwUAAAAGaXNFdmFsCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAAB3BySWRTdHIDAwUAAAAKaXNPbmVBc3NldAkAAAAAAAACBQAAAAVwbXRJZAUAAAAHcHJJZFN0cgcJAABlAAAAAgkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAdwcklkU3RyBQAAAAZwbXRBbXQDBQAAAAppc09uZUFzc2V0CQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAAB3BySWRTdHIJAABlAAAAAgkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAdwcklkU3RyBQAAAAdpblByQW10BAAAAA9pbkFtQXNzZXRBbXRYMTgJAQAAAAV0b1gxOAAAAAIFAAAAB2luQW1BbXQFAAAABmFtdERjbQQAAAAPaW5QckFzc2V0QW10WDE4CQEAAAAFdG9YMTgAAAACBQAAAAdpblByQW10BQAAAAhwcmljZURjbQQAAAAMdXNlclByaWNlWDE4CQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgUAAAAPaW5QckFzc2V0QW10WDE4BQAAAA9pbkFtQXNzZXRBbXRYMTgEAAAADGFtQmFsYW5jZVgxOAkBAAAABXRvWDE4AAAAAgUAAAAJYW1CYWxhbmNlBQAAAAZhbXREY20EAAAADHByQmFsYW5jZVgxOAkBAAAABXRvWDE4AAAAAgUAAAAJcHJCYWxhbmNlBQAAAAhwcmljZURjbQQAAAADcmVzAwkAAAAAAAACBQAAAARscEVtAAAAAAAAAAAABAAAAAtjdXJQcmljZVgxOAUAAAAKemVyb0JpZ0ludAQAAAALc2xpcHBhZ2VYMTgFAAAACnplcm9CaWdJbnQEAAAACGxwQW10WDE4CQAAdgAAAAYJAAE5AAAAAgUAAAAPaW5BbUFzc2V0QW10WDE4BQAAAA9pblByQXNzZXRBbXRYMTgAAAAAAAAAAAAJAAE2AAAAAQAAAAAAAAAABQAAAAAAAAAAAQAAAAAAAAAAAAUAAAAERE9XTgkABRcAAAAFCQEAAAAHZnJvbVgxOAAAAAIFAAAACGxwQW10WDE4BQAAAAZzY2FsZTgJAQAAAAdmcm9tWDE4AAAAAgUAAAAPaW5BbUFzc2V0QW10WDE4BQAAAAZhbXREY20JAQAAAAdmcm9tWDE4AAAAAgUAAAAPaW5QckFzc2V0QW10WDE4BQAAAAhwcmljZURjbQkBAAAAD2NhbGNQcmljZUJpZ0ludAAAAAIJAAE3AAAAAgUAAAAMcHJCYWxhbmNlWDE4BQAAAA9pblByQXNzZXRBbXRYMTgJAAE3AAAAAgUAAAAMYW1CYWxhbmNlWDE4BQAAAA9pbkFtQXNzZXRBbXRYMTgFAAAAC3NsaXBwYWdlWDE4BAAAAAtjdXJQcmljZVgxOAkBAAAAD2NhbGNQcmljZUJpZ0ludAAAAAIFAAAADHByQmFsYW5jZVgxOAUAAAAMYW1CYWxhbmNlWDE4BAAAAA9zbGlwcGFnZVJlYWxYMTgJAAE8AAAAAwkBAAAAA2FicwAAAAEJAAE4AAAAAgUAAAALY3VyUHJpY2VYMTgFAAAADHVzZXJQcmljZVgxOAUAAAAHc2NhbGUxOAUAAAALY3VyUHJpY2VYMTgEAAAAC3NsaXBwYWdlWDE4CQEAAAAFdG9YMTgAAAACBQAAAAhzbGlwcGFnZQUAAAAGc2NhbGU4AwMJAQAAAAIhPQAAAAIFAAAAC2N1clByaWNlWDE4BQAAAAp6ZXJvQmlnSW50CQABPwAAAAIFAAAAD3NsaXBwYWdlUmVhbFgxOAUAAAALc2xpcHBhZ2VYMTgHCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD1ByaWNlIHNsaXBwYWdlIAkAAaYAAAABBQAAAA9zbGlwcGFnZVJlYWxYMTgCAAAAAyA+IAkAAaYAAAABBQAAAAtzbGlwcGFnZVgxOAQAAAANbHBFbWlzc2lvblgxOAkBAAAABXRvWDE4AAAAAgUAAAAEbHBFbQUAAAAGc2NhbGU4BAAAAApwclZpYUFtWDE4CQABPAAAAAMFAAAAD2luQW1Bc3NldEFtdFgxOAUAAAALY3VyUHJpY2VYMTgFAAAAB3NjYWxlMTgEAAAACmFtVmlhUHJYMTgJAAE8AAAAAwUAAAAPaW5QckFzc2V0QW10WDE4BQAAAAdzY2FsZTE4BQAAAAtjdXJQcmljZVgxOAQAAAAMZXhwZWN0ZWRBbXRzAwkAAT8AAAACBQAAAApwclZpYUFtWDE4BQAAAA9pblByQXNzZXRBbXRYMTgJAAUUAAAAAgUAAAAKYW1WaWFQclgxOAUAAAAPaW5QckFzc2V0QW10WDE4CQAFFAAAAAIFAAAAD2luQW1Bc3NldEFtdFgxOAUAAAAKcHJWaWFBbVgxOAQAAAARZXhwQW10QXNzZXRBbXRYMTgIBQAAAAxleHBlY3RlZEFtdHMAAAACXzEEAAAAE2V4cFByaWNlQXNzZXRBbXRYMTgIBQAAAAxleHBlY3RlZEFtdHMAAAACXzIEAAAACGxwQW10WDE4CQABPAAAAAMFAAAADWxwRW1pc3Npb25YMTgFAAAAE2V4cFByaWNlQXNzZXRBbXRYMTgFAAAADHByQmFsYW5jZVgxOAkABRcAAAAFCQEAAAAHZnJvbVgxOAAAAAIFAAAACGxwQW10WDE4BQAAAAZzY2FsZTgJAQAAAAdmcm9tWDE4AAAAAgUAAAARZXhwQW10QXNzZXRBbXRYMTgFAAAABmFtdERjbQkBAAAAB2Zyb21YMTgAAAACBQAAABNleHBQcmljZUFzc2V0QW10WDE4BQAAAAhwcmljZURjbQUAAAALY3VyUHJpY2VYMTgFAAAAC3NsaXBwYWdlWDE4BAAAAAljYWxjTHBBbXQIBQAAAANyZXMAAAACXzEEAAAADmNhbGNBbUFzc2V0UG10CAUAAAADcmVzAAAAAl8yBAAAAA5jYWxjUHJBc3NldFBtdAgFAAAAA3JlcwAAAAJfMwQAAAAIY3VyUHJpY2UJAQAAAAdmcm9tWDE4AAAAAggFAAAAA3JlcwAAAAJfNAUAAAAGc2NhbGU4BAAAAAxzbGlwcGFnZUNhbGMJAQAAAAdmcm9tWDE4AAAAAggFAAAAA3JlcwAAAAJfNQUAAAAGc2NhbGU4AwkAAGcAAAACAAAAAAAAAAAABQAAAAljYWxjTHBBbXQJAAACAAAAAQIAAAAHTFAgPD0gMAQAAAAJZW1pdExwQW10AwkBAAAAASEAAAABBQAAAAZlbWl0THAAAAAAAAAAAAAFAAAACWNhbGNMcEFtdAQAAAAGYW1EaWZmCQAAZQAAAAIFAAAAB2luQW1BbXQFAAAADmNhbGNBbUFzc2V0UG10BAAAAAZwckRpZmYJAABlAAAAAgUAAAAHaW5QckFtdAUAAAAOY2FsY1ByQXNzZXRQbXQEAAAADSR0MDE1ODU4MTYyMDMDAwUAAAAKaXNPbmVBc3NldAkAAAAAAAACBQAAAAVwbXRJZAUAAAAHYW1JZFN0cgcJAAUUAAAAAgUAAAAGcG10QW10AAAAAAAAAAAAAwMFAAAACmlzT25lQXNzZXQJAAAAAAAAAgUAAAAFcG10SWQFAAAAB3BySWRTdHIHCQAFFAAAAAIAAAAAAAAAAAAFAAAABnBtdEFtdAkABRQAAAACBQAAAA5jYWxjQW1Bc3NldFBtdAUAAAAOY2FsY1ByQXNzZXRQbXQEAAAACndyaXRlQW1BbXQIBQAAAA0kdDAxNTg1ODE2MjAzAAAAAl8xBAAAAAp3cml0ZVByQW10CAUAAAANJHQwMTU4NTgxNjIwMwAAAAJfMgQAAAALY29tbW9uU3RhdGUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxrZXlQcmljZUxhc3QAAAAABQAAAAhjdXJQcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2tleVByaWNlSGlzdG9yeQAAAAIFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAACGN1clByaWNlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJrZXlQdXRBY3Rpb25CeVVzZXIAAAACBQAAAAt1c2VyQWRkcmVzcwUAAAAGdHhJZDU4CQEAAAARZGF0YVB1dEFjdGlvbkluZm8AAAAKBQAAAAp3cml0ZUFtQW10BQAAAAp3cml0ZVByQW10BQAAAAllbWl0THBBbXQFAAAACGN1clByaWNlBQAAAAhzbGlwcGFnZQUAAAAMc2xpcHBhZ2VDYWxjBQAAAAZoZWlnaHQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAZhbURpZmYFAAAABnByRGlmZgUAAAADbmlsCQAFHwAAAA0FAAAACWNhbGNMcEFtdAUAAAAJZW1pdExwQW10BQAAAAhjdXJQcmljZQUAAAAJYW1CYWxhbmNlBQAAAAlwckJhbGFuY2UFAAAABGxwRW0FAAAABGxwSWQFAAAAA3N0cwUAAAALY29tbW9uU3RhdGUFAAAABmFtRGlmZgUAAAAGcHJEaWZmBQAAAAZpbkFtSWQFAAAABmluUHJJZAEAAAAbdmFsaWRhdGVNYXRjaGVyT3JkZXJBbGxvd2VkAAAAAQAAAAVvcmRlcgQAAAADY2ZnCQEAAAANZ2V0UG9vbENvbmZpZwAAAAAEAAAAB2FtdEFzSWQJAAGRAAAAAgUAAAADY2ZnBQAAAAlpZHhBbUFzSWQEAAAABnByQXNJZAkAAZEAAAACBQAAAANjZmcFAAAACWlkeFByQXNJZAQAAAADc3RzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAAlpZHhQb29sU3QEAAAACGFtdEFzRGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAAtpZHhBbXRBc0RjbQQAAAAHcHJBc0RjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAANaWR4UHJpY2VBc0RjbQQAAAAPYWNjQW10QXNCYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAAB2FtdEFzSWQEAAAADmFjY1ByQXNCYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAABnByQXNJZAQAAAALY3VyUHJpY2VYMTgDCQAAAAAAAAIIBQAAAAVvcmRlcgAAAAlvcmRlclR5cGUFAAAAA0J1eQkBAAAAEHByaXZhdGVDYWxjUHJpY2UAAAAEBQAAAAhhbXRBc0RjbQUAAAAHcHJBc0RjbQkAAGQAAAACBQAAAA9hY2NBbXRBc0JhbGFuY2UIBQAAAAVvcmRlcgAAAAZhbW91bnQFAAAADmFjY1ByQXNCYWxhbmNlCQEAAAAQcHJpdmF0ZUNhbGNQcmljZQAAAAQFAAAACGFtdEFzRGNtBQAAAAdwckFzRGNtCQAAZQAAAAIFAAAAD2FjY0FtdEFzQmFsYW5jZQgFAAAABW9yZGVyAAAABmFtb3VudAUAAAAOYWNjUHJBc0JhbGFuY2UEAAAACGN1clByaWNlCQEAAAAHZnJvbVgxOAAAAAIFAAAAC2N1clByaWNlWDE4BQAAAAZzY2FsZTgDAwMJAQAAABBpc0dsb2JhbFNodXRkb3duAAAAAAYJAAAAAAAA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", "chainId": 87, "height": 2958000, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HMsNAUgWAwQAP6joVHCQN3U69NEKrkqeRU6ggudJPkVa Next: FfVam8ANih7KrZwioeW85XTRhpr74ZP6XXmVJuYVzxsy Diff:
OldNewDifferences
9494 func X () = "%s__amp"
9595
9696
97-func Y () = "%s__factoryConfig"
97+func Y () = "%s__addonAddr"
9898
9999
100-func Z () = "%s%s__matcher__publicKey"
100+func Z () = "%s__factoryConfig"
101101
102102
103-func aa (ab,ac) = (((("%d%d%s__" + ab) + "__") + ac) + "__config")
103+func aa () = "%s%s__matcher__publicKey"
104104
105105
106-func ad (ae) = ("%s%s%s__mappings__baseAsset2internalId__" + ae)
106+func ab (ac,ad) = (((("%d%d%s__" + ac) + "__") + ad) + "__config")
107107
108108
109-func af () = "%s__shutdown"
109+func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
110110
111111
112-func ag (ah) = ("%s%s__poolWeight__" + ah)
112+func ag () = "%s__shutdown"
113113
114114
115-func ai (aj,ak,al) = throw(((((("Failed: ordValid=" + toString(aj)) + " sndrValid=") + toString(ak)) + " mtchrValid=") + toString(al)))
115+func ah (ai) = ("%s%s__poolWeight__" + ai)
116116
117117
118-func am (E) = {
119- let an = E
120- if ($isInstanceOf(an, "String"))
118+func aj (ak,al,am) = throw(((((("Failed: ordValid=" + toString(ak)) + " sndrValid=") + toString(al)) + " mtchrValid=") + toString(am)))
119+
120+
121+func an (E) = {
122+ let ao = E
123+ if ($isInstanceOf(ao, "String"))
121124 then {
122- let ao = an
123- ao
125+ let ap = ao
126+ ap
124127 }
125128 else throw("fail cast to String")
126129 }
127130
128131
129-func ap (aq,ar) = valueOrErrorMessage(getString(aq, ar), makeString(["mandatory ", toString(aq), ".", ar, " not defined"], ""))
132+func aq (ar,as) = valueOrErrorMessage(getString(ar, as), makeString(["mandatory ", toString(ar), ".", as, " not defined"], ""))
130133
131134
132-func as (aq,ar) = valueOrErrorMessage(getInteger(aq, ar), makeString(["mandatory ", toString(aq), ".", ar, " not defined"], ""))
135+func at (ar,as) = valueOrErrorMessage(getInteger(ar, as), makeString(["mandatory ", toString(ar), ".", as, " not defined"], ""))
133136
134137
135-let at = addressFromStringValue(ap(this, L()))
138+let au = addressFromStringValue(aq(this, L()))
136139
137-let au = ap(this, X())
140+let av = aq(this, X())
138141
139-func av () = valueOrElse(getBoolean(at, af()), false)
142+func aw () = valueOrElse(getBoolean(au, ag()), false)
140143
141144
142-func aw () = fromBase58String(ap(at, Z()))
145+func ax () = fromBase58String(aq(au, aa()))
143146
144147
145-func ax () = {
146- let ay = ap(this, V())
147- let az = ap(this, W())
148- let aA = as(at, ad(az))
149- let ab = as(at, ad(ay))
150- split(ap(at, aa(toString(ab), toString(aA))), i)
148+func ay () = {
149+ let az = aq(this, V())
150+ let aA = aq(this, W())
151+ let aB = at(au, ae(aA))
152+ let ac = at(au, ae(az))
153+ split(aq(au, ab(toString(ac), toString(aB))), i)
151154 }
152155
153156
154-func aB () = split(ap(at, Y()), i)
157+func aC () = split(aq(au, Z()), i)
155158
156159
157-func aC (aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aD), toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ), toString(aK), toString(aL), toString(aM)], i)
160+func aD (aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ), toString(aK), toString(aL), toString(aM), toString(aN)], i)
158161
159162
160-func aN (aO,aP,aQ,aG,aJ,aK) = makeString(["%d%d%d%d%d%d", toString(aO), toString(aP), toString(aQ), toString(aG), toString(aJ), toString(aK)], i)
163+func aO (aP,aQ,aR,aH,aK,aL) = makeString(["%d%d%d%d%d%d", toString(aP), toString(aQ), toString(aR), toString(aH), toString(aK), toString(aL)], i)
161164
162165
163-func aR (aS) = if ((aS == "WAVES"))
166+func aS (aT) = if ((aT == "WAVES"))
164167 then wavesBalance(this).available
165- else assetBalance(this, fromBase58String(aS))
168+ else assetBalance(this, fromBase58String(aT))
166169
167170
168-func aT (aU,aV) = fraction(aU, c, aV)
171+func aU (aV,aW) = fraction(aV, c, aW)
169172
170173
171-func aW (aX,aY,aZ) = {
172- let ba = fraction((aX - aY), b, aY)
173- let bb = ((aZ - K(ba)) > d)
174- if (!(bb))
175- then throw(("Big slpg: " + toString(ba)))
176- else $Tuple2(bb, min([aX, aY]))
174+func aX (aY,aZ,ba) = {
175+ let bb = fraction((aY - aZ), b, aZ)
176+ let bc = ((ba - K(bb)) > d)
177+ if (!(bc))
178+ then throw(("Big slpg: " + toString(bb)))
179+ else $Tuple2(bc, min([aY, aZ]))
177180 }
178181
179182
180-func bc (bd,be,bf) = {
181- let ba = fraction(be, b, bd)
182- let bg = (bf > ba)
183- if (if (bg)
183+func bd (be,bf,bg) = {
184+ let bb = fraction(bf, b, be)
185+ let bh = (bg > bb)
186+ if (if (bh)
184187 then true
185- else (be > bd))
186- then throw(((((((toString(be) + " ") + toString(bd)) + " ") + toString(ba)) + " ") + toString(bf)))
187- else bg
188+ else (bf > be))
189+ then throw(((((((toString(bf) + " ") + toString(be)) + " ") + toString(bb)) + " ") + toString(bg)))
190+ else bh
188191 }
189192
190193
191-func bh (bi,bj,bk,bl) = {
192- let bm = A(bk, bi)
194+func bi (bj,bk,bl,bm) = {
193195 let bn = A(bl, bj)
194- aT(bn, bm)
196+ let bo = A(bm, bk)
197+ aU(bo, bn)
195198 }
196199
197200
198-func bo (bk,bl,bp) = {
199- let bq = ax()
200- let br = parseIntValue(bq[t])
201- let bs = parseIntValue(bq[u])
202- let bt = bh(br, bs, bk, bl)
203- let aV = A(bk, br)
204- let aU = A(bl, bs)
205- let bu = A(bp, a)
206- let bv = aT(aV, bu)
207- let bw = aT(aU, bu)
208-[bt, bv, bw]
201+func bp (bl,bm,bq) = {
202+ let br = ay()
203+ let bs = parseIntValue(br[t])
204+ let bt = parseIntValue(br[u])
205+ let bu = bi(bs, bt, bl, bm)
206+ let aW = A(bl, bs)
207+ let aV = A(bm, bt)
208+ let bv = A(bq, a)
209+ let bw = aU(aW, bv)
210+ let bx = aU(aV, bv)
211+[bu, bw, bx]
209212 }
210213
211214
212-func bx (bk,bl,bp) = {
213- let ah = bo(bk, bl, bp)
214-[D(ah[0], a), D(ah[1], a), D(ah[2], a)]
215+func by (bl,bm,bq) = {
216+ let ai = bp(bl, bm, bq)
217+[D(ai[0], a), D(ai[1], a), D(ai[2], a)]
215218 }
216219
217220
218-func by (bz,bA,bB,bC) = {
219- let bq = ax()
220- let bD = bq[q]
221- let bE = bq[r]
222- let bF = bq[s]
223- let bG = parseIntValue(bq[t])
224- let bH = parseIntValue(bq[u])
225- let bI = bq[p]
226- let bJ = valueOrErrorMessage(assetInfo(fromBase58String(bD)), "Wrong LP id").quantity
227- if ((bD != bA))
221+func bz (bA,bB,bC,bD) = {
222+ let br = ay()
223+ let bE = br[q]
224+ let bF = br[r]
225+ let bG = br[s]
226+ let bH = parseIntValue(br[t])
227+ let bI = parseIntValue(br[u])
228+ let bJ = br[p]
229+ let bK = valueOrErrorMessage(assetInfo(fromBase58String(bE)), "Wrong LP id").quantity
230+ if ((bE != bB))
228231 then throw("Wrong pmt asset")
229232 else {
230- let bK = aR(bE)
231- let bL = A(bK, bG)
232- let bM = aR(bF)
233- let bN = A(bM, bH)
234- let bO = aT(bN, bL)
235- let bP = D(bO, a)
236- let bQ = A(bB, a)
237- let bR = A(bJ, a)
238- let bS = fraction(bL, bQ, bR)
239- let bT = fraction(bN, bQ, bR)
240- let bU = D(bS, bG)
233+ let bL = aS(bF)
234+ let bM = A(bL, bH)
235+ let bN = aS(bG)
236+ let bO = A(bN, bI)
237+ let bP = aU(bO, bM)
238+ let bQ = D(bP, a)
239+ let bR = A(bC, a)
240+ let bS = A(bK, a)
241+ let bT = fraction(bM, bR, bS)
242+ let bU = fraction(bO, bR, bS)
241243 let bV = D(bT, bH)
242- let bW = if ((bz == ""))
244+ let bW = D(bU, bI)
245+ let bX = if ((bA == ""))
243246 then nil
244- else [ScriptTransfer(bC, bU, if ((bE == "WAVES"))
247+ else [ScriptTransfer(bD, bV, if ((bF == "WAVES"))
245248 then unit
246- else fromBase58String(bE)), ScriptTransfer(bC, bV, if ((bF == "WAVES"))
249+ else fromBase58String(bF)), ScriptTransfer(bD, bW, if ((bG == "WAVES"))
247250 then unit
248- else fromBase58String(bF)), StringEntry(U(toString(bC), bz), aN(bU, bV, bB, bP, height, lastBlock.timestamp)), IntegerEntry(N(), bP), IntegerEntry(O(height, lastBlock.timestamp), bP)]
249- $Tuple10(bU, bV, bE, bF, bK, bM, bJ, bO, bI, bW)
251+ else fromBase58String(bG)), StringEntry(U(toString(bD), bA), aO(bV, bW, bC, bQ, height, lastBlock.timestamp)), IntegerEntry(N(), bQ), IntegerEntry(O(height, lastBlock.timestamp), bQ)]
252+ $Tuple10(bV, bW, bF, bG, bL, bN, bK, bP, bJ, bX)
250253 }
251254 }
252255
253256
254-func bX (bz,aZ,bY,bZ,ca,cb,bC,cc,cd,ce,cf,cg) = {
255- let bq = ax()
256- let bD = fromBase58String(bq[q])
257- let ch = bq[r]
258- let ci = bq[s]
259- let cj = bq[v]
260- let ck = bq[w]
261- let cl = parseIntValue(bq[t])
262- let cm = parseIntValue(bq[u])
263- let bI = bq[p]
264- let cn = valueOrErrorMessage(assetInfo(bD), "Wr lp as").quantity
265- let bK = if (cc)
266- then aR(ch)
267- else if (if (ce)
268- then (cg == ch)
257+func bY (bA,ba,bZ,ca,cb,cc,bD,cd,ce,cf,cg,ch) = {
258+ let br = ay()
259+ let bE = fromBase58String(br[q])
260+ let ci = br[r]
261+ let cj = br[s]
262+ let ck = br[v]
263+ let cl = br[w]
264+ let cm = parseIntValue(br[t])
265+ let cn = parseIntValue(br[u])
266+ let bJ = br[p]
267+ let co = valueOrErrorMessage(assetInfo(bE), "Wr lp as").quantity
268+ let bL = if (cd)
269+ then aS(ci)
270+ else if (if (cf)
271+ then (ch == ci)
269272 else false)
270- then (aR(ch) - cf)
271- else if (ce)
272- then aR(ch)
273- else (aR(ch) - bY)
274- let bM = if (cc)
275- then aR(ci)
276- else if (if (ce)
277- then (cg == ci)
273+ then (aS(ci) - cg)
274+ else if (cf)
275+ then aS(ci)
276+ else (aS(ci) - bZ)
277+ let bN = if (cd)
278+ then aS(cj)
279+ else if (if (cf)
280+ then (ch == cj)
278281 else false)
279- then (aR(ci) - cf)
280- else if (ce)
281- then aR(ci)
282- else (aR(ci) - ca)
283- let co = A(bY, cl)
284- let cp = A(ca, cm)
285- let cq = aT(cp, co)
286- let bL = A(bK, cl)
287- let bN = A(bM, cm)
288- let cr = if ((cn == 0))
282+ then (aS(cj) - cg)
283+ else if (cf)
284+ then aS(cj)
285+ else (aS(cj) - cb)
286+ let cp = A(bZ, cm)
287+ let cq = A(cb, cn)
288+ let cr = aU(cq, cp)
289+ let bM = A(bL, cm)
290+ let bO = A(bN, cn)
291+ let cs = if ((co == 0))
289292 then {
290- let bO = d
291- let cs = d
292- let bu = pow((co * cp), 0, toBigInt(5), 1, 0, DOWN)
293- $Tuple5(D(bu, a), D(co, cl), D(cp, cm), aT((bN + cp), (bL + co)), cs)
293+ let bP = d
294+ let ct = d
295+ let bv = pow((cp * cq), 0, toBigInt(5), 1, 0, DOWN)
296+ $Tuple5(D(bv, a), D(cp, cm), D(cq, cn), aU((bO + cq), (bM + cp)), ct)
294297 }
295298 else {
296- let bO = aT(bN, bL)
297- let ct = fraction(K((bO - cq)), c, bO)
298- let cs = A(aZ, a)
299- if (if ((bO != d))
300- then (ct > cs)
299+ let bP = aU(bO, bM)
300+ let cu = fraction(K((bP - cr)), c, bP)
301+ let ct = A(ba, a)
302+ if (if ((bP != d))
303+ then (cu > ct)
301304 else false)
302- then throw(((("Price slippage " + toString(ct)) + " > ") + toString(cs)))
305+ then throw(((("Price slippage " + toString(cu)) + " > ") + toString(ct)))
303306 else {
304- let cu = A(cn, a)
305- let cv = fraction(co, bO, c)
306- let cw = fraction(cp, c, bO)
307- let cx = if ((cv > cp))
308- then $Tuple2(cw, cp)
309- else $Tuple2(co, cv)
310- let cy = cx._1
311- let cz = cx._2
312- let bu = fraction(cu, cz, bN)
313- $Tuple5(D(bu, a), D(cy, cl), D(cz, cm), bO, cs)
307+ let cv = A(co, a)
308+ let cw = fraction(cp, bP, c)
309+ let cx = fraction(cq, c, bP)
310+ let cy = if ((cw > cq))
311+ then $Tuple2(cx, cq)
312+ else $Tuple2(cp, cw)
313+ let cz = cy._1
314+ let cA = cy._2
315+ let bv = fraction(cv, cA, bO)
316+ $Tuple5(D(bv, a), D(cz, cm), D(cA, cn), bP, ct)
314317 }
315318 }
316- let cA = cr._1
317- let cB = cr._2
318- let cC = cr._3
319- let bP = D(cr._4, a)
320- let cD = D(cr._5, a)
321- if ((0 >= cA))
319+ let cB = cs._1
320+ let cC = cs._2
321+ let cD = cs._3
322+ let bQ = D(cs._4, a)
323+ let cE = D(cs._5, a)
324+ if ((0 >= cB))
322325 then throw("LP <= 0")
323326 else {
324- let cE = if (!(cd))
327+ let cF = if (!(ce))
325328 then 0
326- else cA
327- let cF = (bY - cB)
328- let cG = (ca - cC)
329- let cH = if (if (ce)
330- then (cg == ch)
329+ else cB
330+ let cG = (bZ - cC)
331+ let cH = (cb - cD)
332+ let cI = if (if (cf)
333+ then (ch == ci)
331334 else false)
332- then $Tuple2(cf, 0)
333- else if (if (ce)
334- then (cg == ci)
335+ then $Tuple2(cg, 0)
336+ else if (if (cf)
337+ then (ch == cj)
335338 else false)
336- then $Tuple2(0, cf)
337- else $Tuple2(cB, cC)
338- let cI = cH._1
339- let cJ = cH._2
340- let cK = [IntegerEntry(N(), bP), IntegerEntry(O(height, lastBlock.timestamp), bP), StringEntry(R(bC, bz), aC(cI, cJ, cE, bP, aZ, cD, height, lastBlock.timestamp, cF, cG))]
341- $Tuple13(cA, cE, bP, bK, bM, cn, bD, bI, cK, cF, cG, bZ, cb)
339+ then $Tuple2(0, cg)
340+ else $Tuple2(cC, cD)
341+ let cJ = cI._1
342+ let cK = cI._2
343+ let cL = [IntegerEntry(N(), bQ), IntegerEntry(O(height, lastBlock.timestamp), bQ), StringEntry(R(bD, bA), aD(cJ, cK, cF, bQ, ba, cE, height, lastBlock.timestamp, cG, cH))]
344+ $Tuple13(cB, cF, bQ, bL, bN, co, bE, bJ, cL, cG, cH, ca, cc)
342345 }
343346 }
344347
345348
346-func cL (cM) = {
347- let bq = ax()
348- let cN = bq[r]
349- let cO = bq[s]
350- let bI = parseIntValue(bq[p])
351- let br = parseIntValue(bq[t])
352- let bs = parseIntValue(bq[u])
353- let cP = aR(cN)
354- let cQ = aR(cO)
355- let bO = if ((cM.orderType == Buy))
356- then bh(br, bs, (cP + cM.amount), cQ)
357- else bh(br, bs, (cP - cM.amount), cQ)
358- let bP = D(bO, a)
359- if (if (if (av())
349+func cM (cN) = {
350+ let br = ay()
351+ let cO = br[r]
352+ let cP = br[s]
353+ let bJ = parseIntValue(br[p])
354+ let bs = parseIntValue(br[t])
355+ let bt = parseIntValue(br[u])
356+ let cQ = aS(cO)
357+ let cR = aS(cP)
358+ let bP = if ((cN.orderType == Buy))
359+ then bi(bs, bt, (cQ + cN.amount), cR)
360+ else bi(bs, bt, (cQ - cN.amount), cR)
361+ let bQ = D(bP, a)
362+ if (if (if (aw())
360363 then true
361- else (bI == m))
364+ else (bJ == m))
362365 then true
363- else (bI == n))
366+ else (bJ == n))
364367 then throw("Admin blocked")
365368 else {
366- let cR = cM.assetPair.amountAsset
367- let cS = if ((cR == unit))
369+ let cS = cN.assetPair.amountAsset
370+ let cT = if ((cS == unit))
368371 then "WAVES"
369- else toBase58String(value(cR))
370- let cT = cM.assetPair.priceAsset
371- let cU = if ((cT == unit))
372+ else toBase58String(value(cS))
373+ let cU = cN.assetPair.priceAsset
374+ let cV = if ((cU == unit))
372375 then "WAVES"
373- else toBase58String(value(cT))
374- if (if ((cS != cN))
376+ else toBase58String(value(cU))
377+ if (if ((cT != cO))
375378 then true
376- else (cU != cO))
379+ else (cV != cP))
377380 then throw("Wr assets")
378381 else {
379- let cV = cM.price
380- let cm = fraction(a, bs, br)
381- let cW = G(cV, a, cm)
382- let cX = if ((cM.orderType == Buy))
383- then (bP >= cW)
384- else (cW >= bP)
382+ let cW = cN.price
383+ let cn = fraction(a, bt, bs)
384+ let cX = G(cW, a, cn)
385+ let cY = if ((cN.orderType == Buy))
386+ then (bQ >= cX)
387+ else (cX >= bQ)
385388 true
386389 }
387390 }
388391 }
389392
390393
391-func cY (cZ) = if ((size(cZ.payments) != 1))
394+func cZ (da) = if ((size(da.payments) != 1))
392395 then throw("1 pmnt exp")
393396 else {
394- let da = value(cZ.payments[0])
395- let bA = value(da.assetId)
396- let cf = da.amount
397- let cr = by(toBase58String(cZ.transactionId), toBase58String(bA), cf, cZ.caller)
398- let bU = cr._1
399- let bV = cr._2
400- let bI = parseIntValue(cr._9)
401- let bW = cr._10
402- if (if (av())
397+ let db = value(da.payments[0])
398+ let bB = value(db.assetId)
399+ let cg = db.amount
400+ let cs = bz(toBase58String(da.transactionId), toBase58String(bB), cg, da.caller)
401+ let bV = cs._1
402+ let bW = cs._2
403+ let bJ = parseIntValue(cs._9)
404+ let bX = cs._10
405+ if (if (aw())
403406 then true
404- else (bI == n))
405- then throw(("Admin blocked: " + toString(bI)))
406- else $Tuple5(bU, bV, cf, bA, bW)
407+ else (bJ == n))
408+ then throw(("Admin blocked: " + toString(bJ)))
409+ else $Tuple5(bV, bW, cg, bB, bX)
407410 }
408411
409412
410-func db (dc,T,dd,de,aZ,cd,ce,cf,cg) = {
411- let df = bX(T, aZ, value(dd).amount, value(dd).assetId, value(de).amount, value(de).assetId, dc, false, cd, ce, cf, cg)
412- let bI = parseIntValue(df._8)
413- if (if (if (av())
413+func dc (dd,T,de,df,ba,ce,cf,cg,ch) = {
414+ let dg = bY(T, ba, value(de).amount, value(de).assetId, value(df).amount, value(df).assetId, dd, false, ce, cf, cg, ch)
415+ let bJ = parseIntValue(dg._8)
416+ if (if (if (aw())
414417 then true
415- else (bI == l))
418+ else (bJ == l))
416419 then true
417- else (bI == n))
418- then throw(("Blocked:" + toString(bI)))
419- else df
420+ else (bJ == n))
421+ then throw(("Blocked:" + toString(bJ)))
422+ else dg
420423 }
421424
422425
423-@Callable(cZ)
424-func constructor (at,dg) = if ((cZ.caller != this))
426+@Callable(da)
427+func constructor (au,dh) = if ((da.caller != this))
425428 then throw("denied")
426- else [StringEntry(L(), at), StringEntry(M(), dg)]
429+ else [StringEntry(L(), au), StringEntry(M(), dh)]
427430
428431
429432
430-@Callable(cZ)
431-func put (dh,di) = {
432- let dj = aB()
433- let dk = valueOrErrorMessage(addressFromString(dj[x]), "Wr st addr")
434- let dl = valueOrErrorMessage(addressFromString(dj[y]), "Wr sl addr")
435- if ((0 > dh))
433+@Callable(da)
434+func put (di,dj) = {
435+ let dk = aC()
436+ let dl = valueOrErrorMessage(addressFromString(dk[x]), "Wr st addr")
437+ let dm = valueOrErrorMessage(addressFromString(dk[y]), "Wr sl addr")
438+ if ((0 > di))
436439 then throw("Wrong slippage")
437- else if ((size(cZ.payments) != 2))
440+ else if ((size(da.payments) != 2))
438441 then throw("2 pmnts expd")
439442 else {
440- let dm = db(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(value(cZ.payments[0]).assetId, value(cZ.payments[0]).amount), cZ.payments[1], dh, true, false, 0, "")
441- let cE = dm._2
442- let dn = dm._7
443- let bW = dm._9
444- let cF = dm._10
445- let cG = dm._11
446- let bE = dm._12
447- let bF = dm._13
448- let do = invoke(at, "emit", [cE], nil)
449- if ((do == do))
443+ let dn = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], di, true, false, 0, "")
444+ let cF = dn._2
445+ let do = dn._7
446+ let bX = dn._9
447+ let cG = dn._10
448+ let cH = dn._11
449+ let bF = dn._12
450+ let bG = dn._13
451+ let dp = invoke(au, "emit", [cF], nil)
452+ if ((dp == dp))
450453 then {
451- let dp = if ((cF > 0))
452- then invoke(dl, "put", nil, [AttachedPayment(bE, cF)])
454+ let dq = if ((cG > 0))
455+ then invoke(dm, "put", nil, [AttachedPayment(bF, cG)])
453456 else nil
454- if ((dp == dp))
457+ if ((dq == dq))
455458 then {
456- let dq = if ((cG > 0))
457- then invoke(dl, "put", nil, [AttachedPayment(bF, cG)])
459+ let dr = if ((cH > 0))
460+ then invoke(dm, "put", nil, [AttachedPayment(bG, cH)])
458461 else nil
459- if ((dq == dq))
462+ if ((dr == dr))
460463 then {
461- let dr = if (di)
464+ let ds = if (dj)
462465 then {
463- let ds = invoke(dk, "stake", nil, [AttachedPayment(dn, cE)])
464- if ((ds == ds))
466+ let dt = invoke(dl, "stake", nil, [AttachedPayment(do, cF)])
467+ if ((dt == dt))
465468 then nil
466469 else throw("Strict value is not equal to itself.")
467470 }
468- else [ScriptTransfer(cZ.caller, cE, dn)]
469- (bW ++ dr)
471+ else [ScriptTransfer(da.caller, cF, do)]
472+ (bX ++ ds)
470473 }
471474 else throw("Strict value is not equal to itself.")
472475 }
478481
479482
480483
481-@Callable(cZ)
482-func putOneTkn (dt,du,dv,aZ,di) = {
483- let bq = aB()
484- let dk = valueOrErrorMessage(addressFromString(bq[x]), "Wr st addr")
485- let dl = valueOrErrorMessage(addressFromString(bq[y]), "Wr sl addr")
486- let dw = valueOrErrorMessage(addressFromString(bq[z]), "Wr gwx addr")
487- let dx = ax()
488- let bE = dx[r]
489- let bF = dx[s]
490- let bG = parseIntValue(dx[t])
491- let bH = parseIntValue(dx[u])
492- if (if (if (if ((0 >= aZ))
493- then true
494- else (0 >= dt))
484+@Callable(da)
485+func putOneTkn (du,dv,dw,ba,dj) = {
486+ let br = aC()
487+ let dl = valueOrErrorMessage(addressFromString(br[x]), "Wr st addr")
488+ let dm = valueOrErrorMessage(addressFromString(br[y]), "Wr sl addr")
489+ let dx = valueOrErrorMessage(addressFromString(br[z]), "Wr gwx addr")
490+ let dy = ay()
491+ let bF = dy[r]
492+ let bG = dy[s]
493+ let bH = parseIntValue(dy[t])
494+ let bI = parseIntValue(dy[u])
495+ if (if (if (if ((0 >= ba))
495496 then true
496497 else (0 >= du))
497498 then true
498499 else (0 >= dv))
500+ then true
501+ else (0 >= dw))
499502 then throw("Wrong params")
500- else if ((size(cZ.payments) != 1))
503+ else if ((size(da.payments) != 1))
501504 then throw("1 pmnt expd")
502505 else {
503- let da = value(cZ.payments[0])
504- let bA = toBase58String(value(da.assetId))
505- let cf = da.amount
506- if (if (if ((dt > cf))
506+ let db = value(da.payments[0])
507+ let bB = toBase58String(value(db.assetId))
508+ let cg = db.amount
509+ if (if (if ((du > cg))
507510 then true
508- else (du > cf))
511+ else (dv > cg))
509512 then true
510- else (10000000 > cf))
513+ else (10000000 > cg))
511514 then throw("Wrong pmt amt")
512515 else {
513- let bK = aR(bE)
514- let bM = aR(bF)
515- let dy = if ((bA == bE))
516- then $Tuple6((bK - cf), bM, (cf - dt), du, 0, 0)
517- else if ((bA == bF))
518- then $Tuple6(bK, (bM - cf), 0, 0, (cf - du), dt)
516+ let bL = aS(bF)
517+ let bN = aS(bG)
518+ let dz = if ((bB == bF))
519+ then $Tuple6((bL - cg), bN, (cg - du), dv, 0, 0)
520+ else if ((bB == bG))
521+ then $Tuple6(bL, (bN - cg), 0, 0, (cg - dv), du)
519522 else throw("wrong pmtAssetId")
520- let dz = dy._1
521- let dA = dy._2
522- let dB = dy._3
523- let dC = dy._4
524- let dD = dy._5
525- let dE = dy._6
526- let be = invoke(dw, "calcD", [toString(dz), toString(dA), au, g, h], nil)
527- let bd = invoke(dw, "calcD", [toString(toBigInt(((dz + dB) - dE))), toString(toBigInt(((dA + dD) - dC))), au, g, h], nil)
528- let dF = bc(parseBigIntValue(am(bd)), parseBigIntValue(am(be)), f)
529- if ((dF == dF))
523+ let dA = dz._1
524+ let dB = dz._2
525+ let dC = dz._3
526+ let dD = dz._4
527+ let dE = dz._5
528+ let dF = dz._6
529+ let bf = invoke(dx, "calcD", [toString(dA), toString(dB), av, g, h], nil)
530+ let be = invoke(dx, "calcD", [toString(toBigInt(((dA + dC) - dF))), toString(toBigInt(((dB + dE) - dD))), av, g, h], nil)
531+ let dG = bd(parseBigIntValue(an(be)), parseBigIntValue(an(bf)), f)
532+ if ((dG == dG))
530533 then {
531- let dm = db(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(fromBase58String(bE), dt), AttachedPayment(fromBase58String(bF), du), aZ, true, true, cf, bA)
532- let dG = dm._2
533- let dn = dm._7
534- let bW = dm._9
535- let cF = dm._10
536- let cG = dm._11
537- let dH = aW(toBigInt(dG), toBigInt(dv), toBigInt(aZ))
538- let cE = toInt(dH._2)
539- let do = invoke(at, "emit", [cE], nil)
540- if ((do == do))
534+ let dn = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(fromBase58String(bF), du), AttachedPayment(fromBase58String(bG), dv), ba, true, true, cg, bB)
535+ let dH = dn._2
536+ let do = dn._7
537+ let bX = dn._9
538+ let cG = dn._10
539+ let cH = dn._11
540+ let dI = aX(toBigInt(dH), toBigInt(dw), toBigInt(ba))
541+ let cF = toInt(dI._2)
542+ let dp = invoke(au, "emit", [cF], nil)
543+ if ((dp == dp))
541544 then {
542- let dp = if ((cF > 0))
543- then invoke(dl, "put", nil, [AttachedPayment(fromBase58String(bE), cF)])
545+ let dq = if ((cG > 0))
546+ then invoke(dm, "put", nil, [AttachedPayment(fromBase58String(bF), cG)])
544547 else nil
545- if ((dp == dp))
548+ if ((dq == dq))
546549 then {
547- let dq = if ((cG > 0))
548- then invoke(dl, "put", nil, [AttachedPayment(fromBase58String(bF), cG)])
550+ let dr = if ((cH > 0))
551+ then invoke(dm, "put", nil, [AttachedPayment(fromBase58String(bG), cH)])
549552 else nil
550- if ((dq == dq))
553+ if ((dr == dr))
551554 then {
552- let dr = if (di)
555+ let ds = if (dj)
553556 then {
554- let ds = invoke(dk, "stake", nil, [AttachedPayment(dn, cE)])
555- if ((ds == ds))
557+ let dt = invoke(dl, "stake", nil, [AttachedPayment(do, cF)])
558+ if ((dt == dt))
556559 then nil
557560 else throw("Strict value is not equal to itself.")
558561 }
559- else [ScriptTransfer(cZ.caller, cE, dn)]
560- (bW ++ dr)
562+ else [ScriptTransfer(da.caller, cF, do)]
563+ (bX ++ ds)
561564 }
562565 else throw("Strict value is not equal to itself.")
563566 }
572575
573576
574577
575-@Callable(cZ)
576-func putForFree (dI) = if ((0 > dI))
578+@Callable(da)
579+func putForFree (dJ) = if ((0 > dJ))
577580 then throw("Wrong slpg")
578- else if ((size(cZ.payments) != 2))
581+ else if ((size(da.payments) != 2))
579582 then throw("2 pmnts expd")
580583 else {
581- let dm = db(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(value(cZ.payments[0]).assetId, value(cZ.payments[0]).amount), cZ.payments[1], dI, false, false, 0, "")
582- dm._9
584+ let dn = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], dJ, false, false, 0, "")
585+ dn._9
583586 }
584587
585588
586589
587-@Callable(cZ)
590+@Callable(da)
588591 func get () = {
589- let cr = cY(cZ)
590- let dJ = cr._1
591- let bV = cr._2
592- let cf = cr._3
593- let bA = cr._4
594- let bW = cr._5
595- let dK = invoke(at, "burn", [cf], [AttachedPayment(bA, cf)])
596- if ((dK == dK))
597- then bW
592+ let cs = cZ(da)
593+ let dK = cs._1
594+ let bW = cs._2
595+ let cg = cs._3
596+ let bB = cs._4
597+ let bX = cs._5
598+ let dL = invoke(au, "burn", [cg], [AttachedPayment(bB, cg)])
599+ if ((dL == dL))
600+ then bX
598601 else throw("Strict value is not equal to itself.")
599602 }
600603
601604
602605
603-@Callable(cZ)
604-func getOneTkn (dL,dM,dN,dO,aZ) = if ((size(cZ.payments) != 1))
606+@Callable(da)
607+func getOneTkn (dM,dN,dO,dP,ba) = if ((size(da.payments) != 1))
605608 then throw("1 pmnt expd")
606609 else {
607- let bq = ax()
608- let bD = bq[q]
609- let bE = bq[r]
610- let bF = bq[s]
611- let bG = parseIntValue(bq[t])
612- let bH = parseIntValue(bq[u])
613- let bI = bq[p]
614- let dP = aB()
615- let dw = valueOrErrorMessage(addressFromString(dP[z]), "Wr sl addr")
616- let da = value(cZ.payments[0])
617- let bC = cZ.caller
618- let bz = toBase58String(cZ.transactionId)
619- let bA = value(da.assetId)
620- let cf = da.amount
621- if ((1000000000 > cf))
622- then throw("Min payment is 10 LP")
623- else if (if (if ((0 > aZ))
610+ let br = ay()
611+ let bE = br[q]
612+ let bF = br[r]
613+ let bG = br[s]
614+ let bH = parseIntValue(br[t])
615+ let bI = parseIntValue(br[u])
616+ let bJ = br[p]
617+ let dQ = aC()
618+ let dx = valueOrErrorMessage(addressFromString(dQ[z]), "Wr sl addr")
619+ let db = value(da.payments[0])
620+ let dR = valueOrElse(getString(this, Y()), "")
621+ let bD = if ((dR == toString(da.caller)))
622+ then da.originCaller
623+ else da.caller
624+ let bA = toBase58String(da.transactionId)
625+ let bB = value(db.assetId)
626+ let cg = db.amount
627+ if ((1000000000 > cg))
628+ then throw("Min pmt 10 LP")
629+ else if (if (if ((0 > ba))
624630 then true
625- else (0 > dL))
631+ else (0 > dM))
626632 then true
627- else (0 > dN))
633+ else (0 > dO))
628634 then throw("Wrong params")
629- else if ((bD != toBase58String(bA)))
635+ else if ((bE != toBase58String(bB)))
630636 then throw("Wrong LP")
631637 else {
632- let df = by(toBase58String(cZ.transactionId), toBase58String(bA), cf, cZ.caller)
633- let dQ = df._1
634- let dR = df._2
635- let bK = aR(bE)
636- let bM = aR(bF)
637- let dS = if ((dO == bE))
638- then $Tuple7((bK - dQ), (bM - dR), dL, dR, 0, 0, (dQ + dL))
639- else if ((dO == bF))
640- then $Tuple7((bK - dQ), (bM - dR), 0, 0, dL, dQ, (dR + dL))
638+ let dg = bz(toBase58String(da.transactionId), toBase58String(bB), cg, da.caller)
639+ let dS = dg._1
640+ let dT = dg._2
641+ let bL = aS(bF)
642+ let bN = aS(bG)
643+ let dU = if ((dP == bF))
644+ then $Tuple7((bL - dS), (bN - dT), dM, dT, 0, 0, (dS + dM))
645+ else if ((dP == bG))
646+ then $Tuple7((bL - dS), (bN - dT), 0, 0, dM, dS, (dT + dM))
641647 else throw("wrong outAssetId")
642- let dz = dS._1
643- let dA = dS._2
644- let dB = dS._3
645- let dC = dS._4
646- let dD = dS._5
647- let dE = dS._6
648- let dT = dS._7
649- if (if ((0 > dB))
648+ let dA = dU._1
649+ let dB = dU._2
650+ let dC = dU._3
651+ let dD = dU._4
652+ let dE = dU._5
653+ let dF = dU._6
654+ let dV = dU._7
655+ if (if ((0 > dC))
650656 then true
651- else (0 > dD))
657+ else (0 > dE))
652658 then throw("Wrong calc")
653659 else {
654- let be = invoke(dw, "calcD", [toString(dz), toString(dA), au, g, h], nil)
655- let bd = invoke(dw, "calcD", [toString(((dz - dB) + dE)), toString(((dA + dC) - dD)), au, g, h], nil)
656- let dF = bc(parseBigIntValue(am(bd)), parseBigIntValue(am(be)), f)
657- if ((dF == dF))
660+ let bf = invoke(dx, "calcD", [toString(dA), toString(dB), av, g, h], nil)
661+ let be = invoke(dx, "calcD", [toString(((dA - dC) + dF)), toString(((dB + dD) - dE)), av, g, h], nil)
662+ let dG = bd(parseBigIntValue(an(be)), parseBigIntValue(an(bf)), f)
663+ if ((dG == dG))
658664 then {
659- let dU = aW(toBigInt(dT), toBigInt(dN), toBigInt(aZ))
660- if ((dU == dU))
665+ let dW = aX(toBigInt(dV), toBigInt(dO), toBigInt(ba))
666+ if ((dW == dW))
661667 then {
662- let dV = if ((dO == bE))
663- then $Tuple2(toInt(dU._2), 0)
664- else $Tuple2(0, toInt(dU._2))
665- let dW = dV._1
666- let dX = dV._2
667- let bO = aT(A(bM, bH), A(bK, bG))
668- let bP = D(bO, a)
669- let bW = [ScriptTransfer(bC, (dW + dX), if ((dO == "WAVES"))
668+ let dX = if ((dP == bF))
669+ then $Tuple2(toInt(dW._2), 0)
670+ else $Tuple2(0, toInt(dW._2))
671+ let dY = dX._1
672+ let dZ = dX._2
673+ let ea = aU(A(bN, bI), A(bL, bH))
674+ let eb = D(ea, a)
675+ let bX = [ScriptTransfer(bD, (dY + dZ), if ((dP == "WAVES"))
670676 then unit
671- else fromBase58String(dO)), StringEntry(U(toString(bC), bz), aN(dW, dX, cf, bP, height, lastBlock.timestamp)), IntegerEntry(N(), bP), IntegerEntry(O(height, lastBlock.timestamp), bP)]
672- if ((bW == bW))
677+ else fromBase58String(dP)), StringEntry(U(toString(bD), bA), aO(dY, dZ, cg, eb, height, lastBlock.timestamp)), IntegerEntry(N(), eb), IntegerEntry(O(height, lastBlock.timestamp), eb)]
678+ if ((bX == bX))
673679 then {
674- let dY = invoke(at, "burn", [cf], [AttachedPayment(bA, cf)])
675- if ((dY == dY))
676- then bW
680+ let ec = invoke(au, "burn", [cg], [AttachedPayment(bB, cg)])
681+ if ((ec == ec))
682+ then bX
677683 else throw("Strict value is not equal to itself.")
678684 }
679685 else throw("Strict value is not equal to itself.")
687693
688694
689695
690-@Callable(cZ)
691-func getNoLess (dZ,ea) = {
692- let cr = cY(cZ)
693- let bU = cr._1
694- let bV = cr._2
695- let cf = cr._3
696- let bA = cr._4
697- let bW = cr._5
698- if ((dZ > bU))
699- then throw(((("Failed: " + toString(bU)) + " < ") + toString(dZ)))
700- else if ((ea > bV))
701- then throw(((("Failed: " + toString(bV)) + " < ") + toString(ea)))
696+@Callable(da)
697+func getNoLess (ed,ee) = {
698+ let cs = cZ(da)
699+ let bV = cs._1
700+ let bW = cs._2
701+ let cg = cs._3
702+ let bB = cs._4
703+ let bX = cs._5
704+ if ((ed > bV))
705+ then throw(((("Failed: " + toString(bV)) + " < ") + toString(ed)))
706+ else if ((ee > bW))
707+ then throw(((("Failed: " + toString(bW)) + " < ") + toString(ee)))
702708 else {
703- let dK = invoke(at, "burn", [cf], [AttachedPayment(bA, cf)])
704- if ((dK == dK))
705- then bW
709+ let dL = invoke(au, "burn", [cg], [AttachedPayment(bB, cg)])
710+ if ((dL == dL))
711+ then bX
706712 else throw("Strict value is not equal to itself.")
707713 }
708714 }
709715
710716
711717
712-@Callable(cZ)
713-func unstakeAndGet (eb) = {
714- let ec = if ((size(cZ.payments) != 0))
718+@Callable(da)
719+func unstakeAndGet (ef) = {
720+ let eg = if ((size(da.payments) != 0))
715721 then throw("No pmnts expd")
716722 else true
717- if ((ec == ec))
723+ if ((eg == eg))
718724 then {
719- let bq = ax()
720- let ed = aB()
721- let dn = fromBase58String(bq[q])
722- let ee = valueOrErrorMessage(addressFromString(ed[x]), "Wr st addr")
723- let ef = invoke(ee, "unstake", [toBase58String(dn), eb], nil)
724- if ((ef == ef))
725+ let br = ay()
726+ let eh = aC()
727+ let do = fromBase58String(br[q])
728+ let ei = valueOrErrorMessage(addressFromString(eh[x]), "Wr st addr")
729+ let ej = invoke(ei, "unstake", [toBase58String(do), ef], nil)
730+ if ((ej == ej))
725731 then {
726- let df = by(toBase58String(cZ.transactionId), toBase58String(dn), eb, cZ.caller)
727- let bI = parseIntValue(df._9)
728- let bW = df._10
729- let eg = if (if (av())
732+ let dg = bz(toBase58String(da.transactionId), toBase58String(do), ef, da.caller)
733+ let bJ = parseIntValue(dg._9)
734+ let bX = dg._10
735+ let ek = if (if (aw())
730736 then true
731- else (bI == n))
732- then throw(("Blocked: " + toString(bI)))
737+ else (bJ == n))
738+ then throw(("Blocked: " + toString(bJ)))
733739 else true
734- if ((eg == eg))
740+ if ((ek == ek))
735741 then {
736- let dK = invoke(at, "burn", [eb], [AttachedPayment(dn, eb)])
737- if ((dK == dK))
738- then bW
742+ let el = invoke(au, "burn", [ef], [AttachedPayment(do, ef)])
743+ if ((el == el))
744+ then bX
739745 else throw("Strict value is not equal to itself.")
740746 }
741747 else throw("Strict value is not equal to itself.")
747753
748754
749755
750-@Callable(cZ)
751-func activate (eh,ei) = if ((toString(cZ.caller) != toString(at)))
756+@Callable(da)
757+func activate (em,en) = if ((toString(da.caller) != toString(au)))
752758 then throw("denied")
753- else $Tuple2([StringEntry(V(), eh), StringEntry(W(), ei)], "success")
759+ else $Tuple2([StringEntry(V(), em), StringEntry(W(), en)], "success")
754760
755761
756762
757-@Callable(cZ)
758-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ax())
763+@Callable(da)
764+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ay())
759765
760766
761767
762-@Callable(cZ)
763-func getAccBalanceWrapperREADONLY (aS) = $Tuple2(nil, aR(aS))
768+@Callable(da)
769+func getAccBalanceWrapperREADONLY (aT) = $Tuple2(nil, aS(aT))
764770
765771
766772
767-@Callable(cZ)
768-func calcPricesWrapperREADONLY (bk,bl,bp) = {
769- let ej = bo(bk, bl, bp)
770- $Tuple2(nil, [toString(ej[0]), toString(ej[1]), toString(ej[2])])
773+@Callable(da)
774+func calcPricesWrapperREADONLY (bl,bm,bq) = {
775+ let eo = bp(bl, bm, bq)
776+ $Tuple2(nil, [toString(eo[0]), toString(eo[1]), toString(eo[2])])
771777 }
772778
773779
774780
775-@Callable(cZ)
776-func fromX18WrapperREADONLY (E,F) = $Tuple2(nil, D(parseBigIntValue(E), F))
781+@Callable(da)
782+func fromX18WrapperREADONLY (E,ep) = $Tuple2(nil, D(parseBigIntValue(E), ep))
777783
778784
779785
780-@Callable(cZ)
786+@Callable(da)
781787 func toX18WrapperREADONLY (B,C) = $Tuple2(nil, toString(A(B, C)))
782788
783789
784790
785-@Callable(cZ)
786-func calcPriceBigIntWrapperREADONLY (aU,aV) = $Tuple2(nil, toString(aT(parseBigIntValue(aU), parseBigIntValue(aV))))
791+@Callable(da)
792+func calcPriceBigIntWrapperREADONLY (aV,aW) = $Tuple2(nil, toString(aU(parseBigIntValue(aV), parseBigIntValue(aW))))
787793
788794
789795
790-@Callable(cZ)
791-func estimatePutOperationWrapperREADONLY (bz,aZ,bY,bZ,ca,cb,ek,cc,cd) = $Tuple2(nil, bX(bz, aZ, bY, bZ, ca, cb, ek, cc, cd, false, 0, ""))
796+@Callable(da)
797+func estimatePutOperationWrapperREADONLY (bA,ba,bZ,ca,cb,cc,eq,cd,ce) = $Tuple2(nil, bY(bA, ba, bZ, ca, cb, cc, eq, cd, ce, false, 0, ""))
792798
793799
794800
795-@Callable(cZ)
796-func estimateGetOperationWrapperREADONLY (bz,el,bB,ek) = {
797- let cr = by(bz, el, bB, addressFromStringValue(ek))
798- $Tuple2(nil, $Tuple10(cr._1, cr._2, cr._3, cr._4, cr._5, cr._6, cr._7, toString(cr._8), cr._9, cr._10))
801+@Callable(da)
802+func estimateGetOperationWrapperREADONLY (bA,er,bC,eq) = {
803+ let cs = bz(bA, er, bC, addressFromStringValue(eq))
804+ $Tuple2(nil, $Tuple10(cs._1, cs._2, cs._3, cs._4, cs._5, cs._6, cs._7, toString(cs._8), cs._9, cs._10))
799805 }
800806
801807
802-@Verifier(em)
803-func en () = {
804- let an = em
805- if ($isInstanceOf(an, "Order"))
808+@Verifier(es)
809+func et () = {
810+ let ao = es
811+ if ($isInstanceOf(ao, "Order"))
806812 then {
807- let cM = an
808- let eo = aw()
809- let aj = cL(cM)
810- let ep = sigVerify(cM.bodyBytes, cM.proofs[0], cM.senderPublicKey)
811- let eq = sigVerify(cM.bodyBytes, cM.proofs[1], eo)
812- if (if (if (aj)
813- then ep
813+ let cN = ao
814+ let eu = ax()
815+ let ak = cM(cN)
816+ let ev = sigVerify(cN.bodyBytes, cN.proofs[0], cN.senderPublicKey)
817+ let ew = sigVerify(cN.bodyBytes, cN.proofs[1], eu)
818+ if (if (if (ak)
819+ then ev
814820 else false)
815- then eq
821+ then ew
816822 else false)
817823 then true
818- else ai(aj, ep, eq)
824+ else aj(ak, ev, ew)
819825 }
820826 else {
821- let er = valueOrElse(getString(this, M()), j)
822- if ((er == j))
823- then sigVerify(em.bodyBytes, em.proofs[0], em.senderPublicKey)
824- else sigVerify(em.bodyBytes, em.proofs[0], fromBase58String(er))
827+ let ex = valueOrElse(getString(this, M()), j)
828+ if ((ex == j))
829+ then sigVerify(es.bodyBytes, es.proofs[0], es.senderPublicKey)
830+ else sigVerify(es.bodyBytes, es.proofs[0], fromBase58String(ex))
825831 }
826832 }
827833
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 = toBigInt((a - ((a * 1) / a)))
1515
1616 let g = "100"
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__amp"
9595
9696
97-func Y () = "%s__factoryConfig"
97+func Y () = "%s__addonAddr"
9898
9999
100-func Z () = "%s%s__matcher__publicKey"
100+func Z () = "%s__factoryConfig"
101101
102102
103-func aa (ab,ac) = (((("%d%d%s__" + ab) + "__") + ac) + "__config")
103+func aa () = "%s%s__matcher__publicKey"
104104
105105
106-func ad (ae) = ("%s%s%s__mappings__baseAsset2internalId__" + ae)
106+func ab (ac,ad) = (((("%d%d%s__" + ac) + "__") + ad) + "__config")
107107
108108
109-func af () = "%s__shutdown"
109+func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
110110
111111
112-func ag (ah) = ("%s%s__poolWeight__" + ah)
112+func ag () = "%s__shutdown"
113113
114114
115-func ai (aj,ak,al) = throw(((((("Failed: ordValid=" + toString(aj)) + " sndrValid=") + toString(ak)) + " mtchrValid=") + toString(al)))
115+func ah (ai) = ("%s%s__poolWeight__" + ai)
116116
117117
118-func am (E) = {
119- let an = E
120- if ($isInstanceOf(an, "String"))
118+func aj (ak,al,am) = throw(((((("Failed: ordValid=" + toString(ak)) + " sndrValid=") + toString(al)) + " mtchrValid=") + toString(am)))
119+
120+
121+func an (E) = {
122+ let ao = E
123+ if ($isInstanceOf(ao, "String"))
121124 then {
122- let ao = an
123- ao
125+ let ap = ao
126+ ap
124127 }
125128 else throw("fail cast to String")
126129 }
127130
128131
129-func ap (aq,ar) = valueOrErrorMessage(getString(aq, ar), makeString(["mandatory ", toString(aq), ".", ar, " not defined"], ""))
132+func aq (ar,as) = valueOrErrorMessage(getString(ar, as), makeString(["mandatory ", toString(ar), ".", as, " not defined"], ""))
130133
131134
132-func as (aq,ar) = valueOrErrorMessage(getInteger(aq, ar), makeString(["mandatory ", toString(aq), ".", ar, " not defined"], ""))
135+func at (ar,as) = valueOrErrorMessage(getInteger(ar, as), makeString(["mandatory ", toString(ar), ".", as, " not defined"], ""))
133136
134137
135-let at = addressFromStringValue(ap(this, L()))
138+let au = addressFromStringValue(aq(this, L()))
136139
137-let au = ap(this, X())
140+let av = aq(this, X())
138141
139-func av () = valueOrElse(getBoolean(at, af()), false)
142+func aw () = valueOrElse(getBoolean(au, ag()), false)
140143
141144
142-func aw () = fromBase58String(ap(at, Z()))
145+func ax () = fromBase58String(aq(au, aa()))
143146
144147
145-func ax () = {
146- let ay = ap(this, V())
147- let az = ap(this, W())
148- let aA = as(at, ad(az))
149- let ab = as(at, ad(ay))
150- split(ap(at, aa(toString(ab), toString(aA))), i)
148+func ay () = {
149+ let az = aq(this, V())
150+ let aA = aq(this, W())
151+ let aB = at(au, ae(aA))
152+ let ac = at(au, ae(az))
153+ split(aq(au, ab(toString(ac), toString(aB))), i)
151154 }
152155
153156
154-func aB () = split(ap(at, Y()), i)
157+func aC () = split(aq(au, Z()), i)
155158
156159
157-func aC (aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aD), toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ), toString(aK), toString(aL), toString(aM)], i)
160+func aD (aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ), toString(aK), toString(aL), toString(aM), toString(aN)], i)
158161
159162
160-func aN (aO,aP,aQ,aG,aJ,aK) = makeString(["%d%d%d%d%d%d", toString(aO), toString(aP), toString(aQ), toString(aG), toString(aJ), toString(aK)], i)
163+func aO (aP,aQ,aR,aH,aK,aL) = makeString(["%d%d%d%d%d%d", toString(aP), toString(aQ), toString(aR), toString(aH), toString(aK), toString(aL)], i)
161164
162165
163-func aR (aS) = if ((aS == "WAVES"))
166+func aS (aT) = if ((aT == "WAVES"))
164167 then wavesBalance(this).available
165- else assetBalance(this, fromBase58String(aS))
168+ else assetBalance(this, fromBase58String(aT))
166169
167170
168-func aT (aU,aV) = fraction(aU, c, aV)
171+func aU (aV,aW) = fraction(aV, c, aW)
169172
170173
171-func aW (aX,aY,aZ) = {
172- let ba = fraction((aX - aY), b, aY)
173- let bb = ((aZ - K(ba)) > d)
174- if (!(bb))
175- then throw(("Big slpg: " + toString(ba)))
176- else $Tuple2(bb, min([aX, aY]))
174+func aX (aY,aZ,ba) = {
175+ let bb = fraction((aY - aZ), b, aZ)
176+ let bc = ((ba - K(bb)) > d)
177+ if (!(bc))
178+ then throw(("Big slpg: " + toString(bb)))
179+ else $Tuple2(bc, min([aY, aZ]))
177180 }
178181
179182
180-func bc (bd,be,bf) = {
181- let ba = fraction(be, b, bd)
182- let bg = (bf > ba)
183- if (if (bg)
183+func bd (be,bf,bg) = {
184+ let bb = fraction(bf, b, be)
185+ let bh = (bg > bb)
186+ if (if (bh)
184187 then true
185- else (be > bd))
186- then throw(((((((toString(be) + " ") + toString(bd)) + " ") + toString(ba)) + " ") + toString(bf)))
187- else bg
188+ else (bf > be))
189+ then throw(((((((toString(bf) + " ") + toString(be)) + " ") + toString(bb)) + " ") + toString(bg)))
190+ else bh
188191 }
189192
190193
191-func bh (bi,bj,bk,bl) = {
192- let bm = A(bk, bi)
194+func bi (bj,bk,bl,bm) = {
193195 let bn = A(bl, bj)
194- aT(bn, bm)
196+ let bo = A(bm, bk)
197+ aU(bo, bn)
195198 }
196199
197200
198-func bo (bk,bl,bp) = {
199- let bq = ax()
200- let br = parseIntValue(bq[t])
201- let bs = parseIntValue(bq[u])
202- let bt = bh(br, bs, bk, bl)
203- let aV = A(bk, br)
204- let aU = A(bl, bs)
205- let bu = A(bp, a)
206- let bv = aT(aV, bu)
207- let bw = aT(aU, bu)
208-[bt, bv, bw]
201+func bp (bl,bm,bq) = {
202+ let br = ay()
203+ let bs = parseIntValue(br[t])
204+ let bt = parseIntValue(br[u])
205+ let bu = bi(bs, bt, bl, bm)
206+ let aW = A(bl, bs)
207+ let aV = A(bm, bt)
208+ let bv = A(bq, a)
209+ let bw = aU(aW, bv)
210+ let bx = aU(aV, bv)
211+[bu, bw, bx]
209212 }
210213
211214
212-func bx (bk,bl,bp) = {
213- let ah = bo(bk, bl, bp)
214-[D(ah[0], a), D(ah[1], a), D(ah[2], a)]
215+func by (bl,bm,bq) = {
216+ let ai = bp(bl, bm, bq)
217+[D(ai[0], a), D(ai[1], a), D(ai[2], a)]
215218 }
216219
217220
218-func by (bz,bA,bB,bC) = {
219- let bq = ax()
220- let bD = bq[q]
221- let bE = bq[r]
222- let bF = bq[s]
223- let bG = parseIntValue(bq[t])
224- let bH = parseIntValue(bq[u])
225- let bI = bq[p]
226- let bJ = valueOrErrorMessage(assetInfo(fromBase58String(bD)), "Wrong LP id").quantity
227- if ((bD != bA))
221+func bz (bA,bB,bC,bD) = {
222+ let br = ay()
223+ let bE = br[q]
224+ let bF = br[r]
225+ let bG = br[s]
226+ let bH = parseIntValue(br[t])
227+ let bI = parseIntValue(br[u])
228+ let bJ = br[p]
229+ let bK = valueOrErrorMessage(assetInfo(fromBase58String(bE)), "Wrong LP id").quantity
230+ if ((bE != bB))
228231 then throw("Wrong pmt asset")
229232 else {
230- let bK = aR(bE)
231- let bL = A(bK, bG)
232- let bM = aR(bF)
233- let bN = A(bM, bH)
234- let bO = aT(bN, bL)
235- let bP = D(bO, a)
236- let bQ = A(bB, a)
237- let bR = A(bJ, a)
238- let bS = fraction(bL, bQ, bR)
239- let bT = fraction(bN, bQ, bR)
240- let bU = D(bS, bG)
233+ let bL = aS(bF)
234+ let bM = A(bL, bH)
235+ let bN = aS(bG)
236+ let bO = A(bN, bI)
237+ let bP = aU(bO, bM)
238+ let bQ = D(bP, a)
239+ let bR = A(bC, a)
240+ let bS = A(bK, a)
241+ let bT = fraction(bM, bR, bS)
242+ let bU = fraction(bO, bR, bS)
241243 let bV = D(bT, bH)
242- let bW = if ((bz == ""))
244+ let bW = D(bU, bI)
245+ let bX = if ((bA == ""))
243246 then nil
244- else [ScriptTransfer(bC, bU, if ((bE == "WAVES"))
247+ else [ScriptTransfer(bD, bV, if ((bF == "WAVES"))
245248 then unit
246- else fromBase58String(bE)), ScriptTransfer(bC, bV, if ((bF == "WAVES"))
249+ else fromBase58String(bF)), ScriptTransfer(bD, bW, if ((bG == "WAVES"))
247250 then unit
248- else fromBase58String(bF)), StringEntry(U(toString(bC), bz), aN(bU, bV, bB, bP, height, lastBlock.timestamp)), IntegerEntry(N(), bP), IntegerEntry(O(height, lastBlock.timestamp), bP)]
249- $Tuple10(bU, bV, bE, bF, bK, bM, bJ, bO, bI, bW)
251+ else fromBase58String(bG)), StringEntry(U(toString(bD), bA), aO(bV, bW, bC, bQ, height, lastBlock.timestamp)), IntegerEntry(N(), bQ), IntegerEntry(O(height, lastBlock.timestamp), bQ)]
252+ $Tuple10(bV, bW, bF, bG, bL, bN, bK, bP, bJ, bX)
250253 }
251254 }
252255
253256
254-func bX (bz,aZ,bY,bZ,ca,cb,bC,cc,cd,ce,cf,cg) = {
255- let bq = ax()
256- let bD = fromBase58String(bq[q])
257- let ch = bq[r]
258- let ci = bq[s]
259- let cj = bq[v]
260- let ck = bq[w]
261- let cl = parseIntValue(bq[t])
262- let cm = parseIntValue(bq[u])
263- let bI = bq[p]
264- let cn = valueOrErrorMessage(assetInfo(bD), "Wr lp as").quantity
265- let bK = if (cc)
266- then aR(ch)
267- else if (if (ce)
268- then (cg == ch)
257+func bY (bA,ba,bZ,ca,cb,cc,bD,cd,ce,cf,cg,ch) = {
258+ let br = ay()
259+ let bE = fromBase58String(br[q])
260+ let ci = br[r]
261+ let cj = br[s]
262+ let ck = br[v]
263+ let cl = br[w]
264+ let cm = parseIntValue(br[t])
265+ let cn = parseIntValue(br[u])
266+ let bJ = br[p]
267+ let co = valueOrErrorMessage(assetInfo(bE), "Wr lp as").quantity
268+ let bL = if (cd)
269+ then aS(ci)
270+ else if (if (cf)
271+ then (ch == ci)
269272 else false)
270- then (aR(ch) - cf)
271- else if (ce)
272- then aR(ch)
273- else (aR(ch) - bY)
274- let bM = if (cc)
275- then aR(ci)
276- else if (if (ce)
277- then (cg == ci)
273+ then (aS(ci) - cg)
274+ else if (cf)
275+ then aS(ci)
276+ else (aS(ci) - bZ)
277+ let bN = if (cd)
278+ then aS(cj)
279+ else if (if (cf)
280+ then (ch == cj)
278281 else false)
279- then (aR(ci) - cf)
280- else if (ce)
281- then aR(ci)
282- else (aR(ci) - ca)
283- let co = A(bY, cl)
284- let cp = A(ca, cm)
285- let cq = aT(cp, co)
286- let bL = A(bK, cl)
287- let bN = A(bM, cm)
288- let cr = if ((cn == 0))
282+ then (aS(cj) - cg)
283+ else if (cf)
284+ then aS(cj)
285+ else (aS(cj) - cb)
286+ let cp = A(bZ, cm)
287+ let cq = A(cb, cn)
288+ let cr = aU(cq, cp)
289+ let bM = A(bL, cm)
290+ let bO = A(bN, cn)
291+ let cs = if ((co == 0))
289292 then {
290- let bO = d
291- let cs = d
292- let bu = pow((co * cp), 0, toBigInt(5), 1, 0, DOWN)
293- $Tuple5(D(bu, a), D(co, cl), D(cp, cm), aT((bN + cp), (bL + co)), cs)
293+ let bP = d
294+ let ct = d
295+ let bv = pow((cp * cq), 0, toBigInt(5), 1, 0, DOWN)
296+ $Tuple5(D(bv, a), D(cp, cm), D(cq, cn), aU((bO + cq), (bM + cp)), ct)
294297 }
295298 else {
296- let bO = aT(bN, bL)
297- let ct = fraction(K((bO - cq)), c, bO)
298- let cs = A(aZ, a)
299- if (if ((bO != d))
300- then (ct > cs)
299+ let bP = aU(bO, bM)
300+ let cu = fraction(K((bP - cr)), c, bP)
301+ let ct = A(ba, a)
302+ if (if ((bP != d))
303+ then (cu > ct)
301304 else false)
302- then throw(((("Price slippage " + toString(ct)) + " > ") + toString(cs)))
305+ then throw(((("Price slippage " + toString(cu)) + " > ") + toString(ct)))
303306 else {
304- let cu = A(cn, a)
305- let cv = fraction(co, bO, c)
306- let cw = fraction(cp, c, bO)
307- let cx = if ((cv > cp))
308- then $Tuple2(cw, cp)
309- else $Tuple2(co, cv)
310- let cy = cx._1
311- let cz = cx._2
312- let bu = fraction(cu, cz, bN)
313- $Tuple5(D(bu, a), D(cy, cl), D(cz, cm), bO, cs)
307+ let cv = A(co, a)
308+ let cw = fraction(cp, bP, c)
309+ let cx = fraction(cq, c, bP)
310+ let cy = if ((cw > cq))
311+ then $Tuple2(cx, cq)
312+ else $Tuple2(cp, cw)
313+ let cz = cy._1
314+ let cA = cy._2
315+ let bv = fraction(cv, cA, bO)
316+ $Tuple5(D(bv, a), D(cz, cm), D(cA, cn), bP, ct)
314317 }
315318 }
316- let cA = cr._1
317- let cB = cr._2
318- let cC = cr._3
319- let bP = D(cr._4, a)
320- let cD = D(cr._5, a)
321- if ((0 >= cA))
319+ let cB = cs._1
320+ let cC = cs._2
321+ let cD = cs._3
322+ let bQ = D(cs._4, a)
323+ let cE = D(cs._5, a)
324+ if ((0 >= cB))
322325 then throw("LP <= 0")
323326 else {
324- let cE = if (!(cd))
327+ let cF = if (!(ce))
325328 then 0
326- else cA
327- let cF = (bY - cB)
328- let cG = (ca - cC)
329- let cH = if (if (ce)
330- then (cg == ch)
329+ else cB
330+ let cG = (bZ - cC)
331+ let cH = (cb - cD)
332+ let cI = if (if (cf)
333+ then (ch == ci)
331334 else false)
332- then $Tuple2(cf, 0)
333- else if (if (ce)
334- then (cg == ci)
335+ then $Tuple2(cg, 0)
336+ else if (if (cf)
337+ then (ch == cj)
335338 else false)
336- then $Tuple2(0, cf)
337- else $Tuple2(cB, cC)
338- let cI = cH._1
339- let cJ = cH._2
340- let cK = [IntegerEntry(N(), bP), IntegerEntry(O(height, lastBlock.timestamp), bP), StringEntry(R(bC, bz), aC(cI, cJ, cE, bP, aZ, cD, height, lastBlock.timestamp, cF, cG))]
341- $Tuple13(cA, cE, bP, bK, bM, cn, bD, bI, cK, cF, cG, bZ, cb)
339+ then $Tuple2(0, cg)
340+ else $Tuple2(cC, cD)
341+ let cJ = cI._1
342+ let cK = cI._2
343+ let cL = [IntegerEntry(N(), bQ), IntegerEntry(O(height, lastBlock.timestamp), bQ), StringEntry(R(bD, bA), aD(cJ, cK, cF, bQ, ba, cE, height, lastBlock.timestamp, cG, cH))]
344+ $Tuple13(cB, cF, bQ, bL, bN, co, bE, bJ, cL, cG, cH, ca, cc)
342345 }
343346 }
344347
345348
346-func cL (cM) = {
347- let bq = ax()
348- let cN = bq[r]
349- let cO = bq[s]
350- let bI = parseIntValue(bq[p])
351- let br = parseIntValue(bq[t])
352- let bs = parseIntValue(bq[u])
353- let cP = aR(cN)
354- let cQ = aR(cO)
355- let bO = if ((cM.orderType == Buy))
356- then bh(br, bs, (cP + cM.amount), cQ)
357- else bh(br, bs, (cP - cM.amount), cQ)
358- let bP = D(bO, a)
359- if (if (if (av())
349+func cM (cN) = {
350+ let br = ay()
351+ let cO = br[r]
352+ let cP = br[s]
353+ let bJ = parseIntValue(br[p])
354+ let bs = parseIntValue(br[t])
355+ let bt = parseIntValue(br[u])
356+ let cQ = aS(cO)
357+ let cR = aS(cP)
358+ let bP = if ((cN.orderType == Buy))
359+ then bi(bs, bt, (cQ + cN.amount), cR)
360+ else bi(bs, bt, (cQ - cN.amount), cR)
361+ let bQ = D(bP, a)
362+ if (if (if (aw())
360363 then true
361- else (bI == m))
364+ else (bJ == m))
362365 then true
363- else (bI == n))
366+ else (bJ == n))
364367 then throw("Admin blocked")
365368 else {
366- let cR = cM.assetPair.amountAsset
367- let cS = if ((cR == unit))
369+ let cS = cN.assetPair.amountAsset
370+ let cT = if ((cS == unit))
368371 then "WAVES"
369- else toBase58String(value(cR))
370- let cT = cM.assetPair.priceAsset
371- let cU = if ((cT == unit))
372+ else toBase58String(value(cS))
373+ let cU = cN.assetPair.priceAsset
374+ let cV = if ((cU == unit))
372375 then "WAVES"
373- else toBase58String(value(cT))
374- if (if ((cS != cN))
376+ else toBase58String(value(cU))
377+ if (if ((cT != cO))
375378 then true
376- else (cU != cO))
379+ else (cV != cP))
377380 then throw("Wr assets")
378381 else {
379- let cV = cM.price
380- let cm = fraction(a, bs, br)
381- let cW = G(cV, a, cm)
382- let cX = if ((cM.orderType == Buy))
383- then (bP >= cW)
384- else (cW >= bP)
382+ let cW = cN.price
383+ let cn = fraction(a, bt, bs)
384+ let cX = G(cW, a, cn)
385+ let cY = if ((cN.orderType == Buy))
386+ then (bQ >= cX)
387+ else (cX >= bQ)
385388 true
386389 }
387390 }
388391 }
389392
390393
391-func cY (cZ) = if ((size(cZ.payments) != 1))
394+func cZ (da) = if ((size(da.payments) != 1))
392395 then throw("1 pmnt exp")
393396 else {
394- let da = value(cZ.payments[0])
395- let bA = value(da.assetId)
396- let cf = da.amount
397- let cr = by(toBase58String(cZ.transactionId), toBase58String(bA), cf, cZ.caller)
398- let bU = cr._1
399- let bV = cr._2
400- let bI = parseIntValue(cr._9)
401- let bW = cr._10
402- if (if (av())
397+ let db = value(da.payments[0])
398+ let bB = value(db.assetId)
399+ let cg = db.amount
400+ let cs = bz(toBase58String(da.transactionId), toBase58String(bB), cg, da.caller)
401+ let bV = cs._1
402+ let bW = cs._2
403+ let bJ = parseIntValue(cs._9)
404+ let bX = cs._10
405+ if (if (aw())
403406 then true
404- else (bI == n))
405- then throw(("Admin blocked: " + toString(bI)))
406- else $Tuple5(bU, bV, cf, bA, bW)
407+ else (bJ == n))
408+ then throw(("Admin blocked: " + toString(bJ)))
409+ else $Tuple5(bV, bW, cg, bB, bX)
407410 }
408411
409412
410-func db (dc,T,dd,de,aZ,cd,ce,cf,cg) = {
411- let df = bX(T, aZ, value(dd).amount, value(dd).assetId, value(de).amount, value(de).assetId, dc, false, cd, ce, cf, cg)
412- let bI = parseIntValue(df._8)
413- if (if (if (av())
413+func dc (dd,T,de,df,ba,ce,cf,cg,ch) = {
414+ let dg = bY(T, ba, value(de).amount, value(de).assetId, value(df).amount, value(df).assetId, dd, false, ce, cf, cg, ch)
415+ let bJ = parseIntValue(dg._8)
416+ if (if (if (aw())
414417 then true
415- else (bI == l))
418+ else (bJ == l))
416419 then true
417- else (bI == n))
418- then throw(("Blocked:" + toString(bI)))
419- else df
420+ else (bJ == n))
421+ then throw(("Blocked:" + toString(bJ)))
422+ else dg
420423 }
421424
422425
423-@Callable(cZ)
424-func constructor (at,dg) = if ((cZ.caller != this))
426+@Callable(da)
427+func constructor (au,dh) = if ((da.caller != this))
425428 then throw("denied")
426- else [StringEntry(L(), at), StringEntry(M(), dg)]
429+ else [StringEntry(L(), au), StringEntry(M(), dh)]
427430
428431
429432
430-@Callable(cZ)
431-func put (dh,di) = {
432- let dj = aB()
433- let dk = valueOrErrorMessage(addressFromString(dj[x]), "Wr st addr")
434- let dl = valueOrErrorMessage(addressFromString(dj[y]), "Wr sl addr")
435- if ((0 > dh))
433+@Callable(da)
434+func put (di,dj) = {
435+ let dk = aC()
436+ let dl = valueOrErrorMessage(addressFromString(dk[x]), "Wr st addr")
437+ let dm = valueOrErrorMessage(addressFromString(dk[y]), "Wr sl addr")
438+ if ((0 > di))
436439 then throw("Wrong slippage")
437- else if ((size(cZ.payments) != 2))
440+ else if ((size(da.payments) != 2))
438441 then throw("2 pmnts expd")
439442 else {
440- let dm = db(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(value(cZ.payments[0]).assetId, value(cZ.payments[0]).amount), cZ.payments[1], dh, true, false, 0, "")
441- let cE = dm._2
442- let dn = dm._7
443- let bW = dm._9
444- let cF = dm._10
445- let cG = dm._11
446- let bE = dm._12
447- let bF = dm._13
448- let do = invoke(at, "emit", [cE], nil)
449- if ((do == do))
443+ let dn = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], di, true, false, 0, "")
444+ let cF = dn._2
445+ let do = dn._7
446+ let bX = dn._9
447+ let cG = dn._10
448+ let cH = dn._11
449+ let bF = dn._12
450+ let bG = dn._13
451+ let dp = invoke(au, "emit", [cF], nil)
452+ if ((dp == dp))
450453 then {
451- let dp = if ((cF > 0))
452- then invoke(dl, "put", nil, [AttachedPayment(bE, cF)])
454+ let dq = if ((cG > 0))
455+ then invoke(dm, "put", nil, [AttachedPayment(bF, cG)])
453456 else nil
454- if ((dp == dp))
457+ if ((dq == dq))
455458 then {
456- let dq = if ((cG > 0))
457- then invoke(dl, "put", nil, [AttachedPayment(bF, cG)])
459+ let dr = if ((cH > 0))
460+ then invoke(dm, "put", nil, [AttachedPayment(bG, cH)])
458461 else nil
459- if ((dq == dq))
462+ if ((dr == dr))
460463 then {
461- let dr = if (di)
464+ let ds = if (dj)
462465 then {
463- let ds = invoke(dk, "stake", nil, [AttachedPayment(dn, cE)])
464- if ((ds == ds))
466+ let dt = invoke(dl, "stake", nil, [AttachedPayment(do, cF)])
467+ if ((dt == dt))
465468 then nil
466469 else throw("Strict value is not equal to itself.")
467470 }
468- else [ScriptTransfer(cZ.caller, cE, dn)]
469- (bW ++ dr)
471+ else [ScriptTransfer(da.caller, cF, do)]
472+ (bX ++ ds)
470473 }
471474 else throw("Strict value is not equal to itself.")
472475 }
473476 else throw("Strict value is not equal to itself.")
474477 }
475478 else throw("Strict value is not equal to itself.")
476479 }
477480 }
478481
479482
480483
481-@Callable(cZ)
482-func putOneTkn (dt,du,dv,aZ,di) = {
483- let bq = aB()
484- let dk = valueOrErrorMessage(addressFromString(bq[x]), "Wr st addr")
485- let dl = valueOrErrorMessage(addressFromString(bq[y]), "Wr sl addr")
486- let dw = valueOrErrorMessage(addressFromString(bq[z]), "Wr gwx addr")
487- let dx = ax()
488- let bE = dx[r]
489- let bF = dx[s]
490- let bG = parseIntValue(dx[t])
491- let bH = parseIntValue(dx[u])
492- if (if (if (if ((0 >= aZ))
493- then true
494- else (0 >= dt))
484+@Callable(da)
485+func putOneTkn (du,dv,dw,ba,dj) = {
486+ let br = aC()
487+ let dl = valueOrErrorMessage(addressFromString(br[x]), "Wr st addr")
488+ let dm = valueOrErrorMessage(addressFromString(br[y]), "Wr sl addr")
489+ let dx = valueOrErrorMessage(addressFromString(br[z]), "Wr gwx addr")
490+ let dy = ay()
491+ let bF = dy[r]
492+ let bG = dy[s]
493+ let bH = parseIntValue(dy[t])
494+ let bI = parseIntValue(dy[u])
495+ if (if (if (if ((0 >= ba))
495496 then true
496497 else (0 >= du))
497498 then true
498499 else (0 >= dv))
500+ then true
501+ else (0 >= dw))
499502 then throw("Wrong params")
500- else if ((size(cZ.payments) != 1))
503+ else if ((size(da.payments) != 1))
501504 then throw("1 pmnt expd")
502505 else {
503- let da = value(cZ.payments[0])
504- let bA = toBase58String(value(da.assetId))
505- let cf = da.amount
506- if (if (if ((dt > cf))
506+ let db = value(da.payments[0])
507+ let bB = toBase58String(value(db.assetId))
508+ let cg = db.amount
509+ if (if (if ((du > cg))
507510 then true
508- else (du > cf))
511+ else (dv > cg))
509512 then true
510- else (10000000 > cf))
513+ else (10000000 > cg))
511514 then throw("Wrong pmt amt")
512515 else {
513- let bK = aR(bE)
514- let bM = aR(bF)
515- let dy = if ((bA == bE))
516- then $Tuple6((bK - cf), bM, (cf - dt), du, 0, 0)
517- else if ((bA == bF))
518- then $Tuple6(bK, (bM - cf), 0, 0, (cf - du), dt)
516+ let bL = aS(bF)
517+ let bN = aS(bG)
518+ let dz = if ((bB == bF))
519+ then $Tuple6((bL - cg), bN, (cg - du), dv, 0, 0)
520+ else if ((bB == bG))
521+ then $Tuple6(bL, (bN - cg), 0, 0, (cg - dv), du)
519522 else throw("wrong pmtAssetId")
520- let dz = dy._1
521- let dA = dy._2
522- let dB = dy._3
523- let dC = dy._4
524- let dD = dy._5
525- let dE = dy._6
526- let be = invoke(dw, "calcD", [toString(dz), toString(dA), au, g, h], nil)
527- let bd = invoke(dw, "calcD", [toString(toBigInt(((dz + dB) - dE))), toString(toBigInt(((dA + dD) - dC))), au, g, h], nil)
528- let dF = bc(parseBigIntValue(am(bd)), parseBigIntValue(am(be)), f)
529- if ((dF == dF))
523+ let dA = dz._1
524+ let dB = dz._2
525+ let dC = dz._3
526+ let dD = dz._4
527+ let dE = dz._5
528+ let dF = dz._6
529+ let bf = invoke(dx, "calcD", [toString(dA), toString(dB), av, g, h], nil)
530+ let be = invoke(dx, "calcD", [toString(toBigInt(((dA + dC) - dF))), toString(toBigInt(((dB + dE) - dD))), av, g, h], nil)
531+ let dG = bd(parseBigIntValue(an(be)), parseBigIntValue(an(bf)), f)
532+ if ((dG == dG))
530533 then {
531- let dm = db(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(fromBase58String(bE), dt), AttachedPayment(fromBase58String(bF), du), aZ, true, true, cf, bA)
532- let dG = dm._2
533- let dn = dm._7
534- let bW = dm._9
535- let cF = dm._10
536- let cG = dm._11
537- let dH = aW(toBigInt(dG), toBigInt(dv), toBigInt(aZ))
538- let cE = toInt(dH._2)
539- let do = invoke(at, "emit", [cE], nil)
540- if ((do == do))
534+ let dn = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(fromBase58String(bF), du), AttachedPayment(fromBase58String(bG), dv), ba, true, true, cg, bB)
535+ let dH = dn._2
536+ let do = dn._7
537+ let bX = dn._9
538+ let cG = dn._10
539+ let cH = dn._11
540+ let dI = aX(toBigInt(dH), toBigInt(dw), toBigInt(ba))
541+ let cF = toInt(dI._2)
542+ let dp = invoke(au, "emit", [cF], nil)
543+ if ((dp == dp))
541544 then {
542- let dp = if ((cF > 0))
543- then invoke(dl, "put", nil, [AttachedPayment(fromBase58String(bE), cF)])
545+ let dq = if ((cG > 0))
546+ then invoke(dm, "put", nil, [AttachedPayment(fromBase58String(bF), cG)])
544547 else nil
545- if ((dp == dp))
548+ if ((dq == dq))
546549 then {
547- let dq = if ((cG > 0))
548- then invoke(dl, "put", nil, [AttachedPayment(fromBase58String(bF), cG)])
550+ let dr = if ((cH > 0))
551+ then invoke(dm, "put", nil, [AttachedPayment(fromBase58String(bG), cH)])
549552 else nil
550- if ((dq == dq))
553+ if ((dr == dr))
551554 then {
552- let dr = if (di)
555+ let ds = if (dj)
553556 then {
554- let ds = invoke(dk, "stake", nil, [AttachedPayment(dn, cE)])
555- if ((ds == ds))
557+ let dt = invoke(dl, "stake", nil, [AttachedPayment(do, cF)])
558+ if ((dt == dt))
556559 then nil
557560 else throw("Strict value is not equal to itself.")
558561 }
559- else [ScriptTransfer(cZ.caller, cE, dn)]
560- (bW ++ dr)
562+ else [ScriptTransfer(da.caller, cF, do)]
563+ (bX ++ ds)
561564 }
562565 else throw("Strict value is not equal to itself.")
563566 }
564567 else throw("Strict value is not equal to itself.")
565568 }
566569 else throw("Strict value is not equal to itself.")
567570 }
568571 else throw("Strict value is not equal to itself.")
569572 }
570573 }
571574 }
572575
573576
574577
575-@Callable(cZ)
576-func putForFree (dI) = if ((0 > dI))
578+@Callable(da)
579+func putForFree (dJ) = if ((0 > dJ))
577580 then throw("Wrong slpg")
578- else if ((size(cZ.payments) != 2))
581+ else if ((size(da.payments) != 2))
579582 then throw("2 pmnts expd")
580583 else {
581- let dm = db(toString(cZ.caller), toBase58String(cZ.transactionId), AttachedPayment(value(cZ.payments[0]).assetId, value(cZ.payments[0]).amount), cZ.payments[1], dI, false, false, 0, "")
582- dm._9
584+ let dn = dc(toString(da.caller), toBase58String(da.transactionId), AttachedPayment(value(da.payments[0]).assetId, value(da.payments[0]).amount), da.payments[1], dJ, false, false, 0, "")
585+ dn._9
583586 }
584587
585588
586589
587-@Callable(cZ)
590+@Callable(da)
588591 func get () = {
589- let cr = cY(cZ)
590- let dJ = cr._1
591- let bV = cr._2
592- let cf = cr._3
593- let bA = cr._4
594- let bW = cr._5
595- let dK = invoke(at, "burn", [cf], [AttachedPayment(bA, cf)])
596- if ((dK == dK))
597- then bW
592+ let cs = cZ(da)
593+ let dK = cs._1
594+ let bW = cs._2
595+ let cg = cs._3
596+ let bB = cs._4
597+ let bX = cs._5
598+ let dL = invoke(au, "burn", [cg], [AttachedPayment(bB, cg)])
599+ if ((dL == dL))
600+ then bX
598601 else throw("Strict value is not equal to itself.")
599602 }
600603
601604
602605
603-@Callable(cZ)
604-func getOneTkn (dL,dM,dN,dO,aZ) = if ((size(cZ.payments) != 1))
606+@Callable(da)
607+func getOneTkn (dM,dN,dO,dP,ba) = if ((size(da.payments) != 1))
605608 then throw("1 pmnt expd")
606609 else {
607- let bq = ax()
608- let bD = bq[q]
609- let bE = bq[r]
610- let bF = bq[s]
611- let bG = parseIntValue(bq[t])
612- let bH = parseIntValue(bq[u])
613- let bI = bq[p]
614- let dP = aB()
615- let dw = valueOrErrorMessage(addressFromString(dP[z]), "Wr sl addr")
616- let da = value(cZ.payments[0])
617- let bC = cZ.caller
618- let bz = toBase58String(cZ.transactionId)
619- let bA = value(da.assetId)
620- let cf = da.amount
621- if ((1000000000 > cf))
622- then throw("Min payment is 10 LP")
623- else if (if (if ((0 > aZ))
610+ let br = ay()
611+ let bE = br[q]
612+ let bF = br[r]
613+ let bG = br[s]
614+ let bH = parseIntValue(br[t])
615+ let bI = parseIntValue(br[u])
616+ let bJ = br[p]
617+ let dQ = aC()
618+ let dx = valueOrErrorMessage(addressFromString(dQ[z]), "Wr sl addr")
619+ let db = value(da.payments[0])
620+ let dR = valueOrElse(getString(this, Y()), "")
621+ let bD = if ((dR == toString(da.caller)))
622+ then da.originCaller
623+ else da.caller
624+ let bA = toBase58String(da.transactionId)
625+ let bB = value(db.assetId)
626+ let cg = db.amount
627+ if ((1000000000 > cg))
628+ then throw("Min pmt 10 LP")
629+ else if (if (if ((0 > ba))
624630 then true
625- else (0 > dL))
631+ else (0 > dM))
626632 then true
627- else (0 > dN))
633+ else (0 > dO))
628634 then throw("Wrong params")
629- else if ((bD != toBase58String(bA)))
635+ else if ((bE != toBase58String(bB)))
630636 then throw("Wrong LP")
631637 else {
632- let df = by(toBase58String(cZ.transactionId), toBase58String(bA), cf, cZ.caller)
633- let dQ = df._1
634- let dR = df._2
635- let bK = aR(bE)
636- let bM = aR(bF)
637- let dS = if ((dO == bE))
638- then $Tuple7((bK - dQ), (bM - dR), dL, dR, 0, 0, (dQ + dL))
639- else if ((dO == bF))
640- then $Tuple7((bK - dQ), (bM - dR), 0, 0, dL, dQ, (dR + dL))
638+ let dg = bz(toBase58String(da.transactionId), toBase58String(bB), cg, da.caller)
639+ let dS = dg._1
640+ let dT = dg._2
641+ let bL = aS(bF)
642+ let bN = aS(bG)
643+ let dU = if ((dP == bF))
644+ then $Tuple7((bL - dS), (bN - dT), dM, dT, 0, 0, (dS + dM))
645+ else if ((dP == bG))
646+ then $Tuple7((bL - dS), (bN - dT), 0, 0, dM, dS, (dT + dM))
641647 else throw("wrong outAssetId")
642- let dz = dS._1
643- let dA = dS._2
644- let dB = dS._3
645- let dC = dS._4
646- let dD = dS._5
647- let dE = dS._6
648- let dT = dS._7
649- if (if ((0 > dB))
648+ let dA = dU._1
649+ let dB = dU._2
650+ let dC = dU._3
651+ let dD = dU._4
652+ let dE = dU._5
653+ let dF = dU._6
654+ let dV = dU._7
655+ if (if ((0 > dC))
650656 then true
651- else (0 > dD))
657+ else (0 > dE))
652658 then throw("Wrong calc")
653659 else {
654- let be = invoke(dw, "calcD", [toString(dz), toString(dA), au, g, h], nil)
655- let bd = invoke(dw, "calcD", [toString(((dz - dB) + dE)), toString(((dA + dC) - dD)), au, g, h], nil)
656- let dF = bc(parseBigIntValue(am(bd)), parseBigIntValue(am(be)), f)
657- if ((dF == dF))
660+ let bf = invoke(dx, "calcD", [toString(dA), toString(dB), av, g, h], nil)
661+ let be = invoke(dx, "calcD", [toString(((dA - dC) + dF)), toString(((dB + dD) - dE)), av, g, h], nil)
662+ let dG = bd(parseBigIntValue(an(be)), parseBigIntValue(an(bf)), f)
663+ if ((dG == dG))
658664 then {
659- let dU = aW(toBigInt(dT), toBigInt(dN), toBigInt(aZ))
660- if ((dU == dU))
665+ let dW = aX(toBigInt(dV), toBigInt(dO), toBigInt(ba))
666+ if ((dW == dW))
661667 then {
662- let dV = if ((dO == bE))
663- then $Tuple2(toInt(dU._2), 0)
664- else $Tuple2(0, toInt(dU._2))
665- let dW = dV._1
666- let dX = dV._2
667- let bO = aT(A(bM, bH), A(bK, bG))
668- let bP = D(bO, a)
669- let bW = [ScriptTransfer(bC, (dW + dX), if ((dO == "WAVES"))
668+ let dX = if ((dP == bF))
669+ then $Tuple2(toInt(dW._2), 0)
670+ else $Tuple2(0, toInt(dW._2))
671+ let dY = dX._1
672+ let dZ = dX._2
673+ let ea = aU(A(bN, bI), A(bL, bH))
674+ let eb = D(ea, a)
675+ let bX = [ScriptTransfer(bD, (dY + dZ), if ((dP == "WAVES"))
670676 then unit
671- else fromBase58String(dO)), StringEntry(U(toString(bC), bz), aN(dW, dX, cf, bP, height, lastBlock.timestamp)), IntegerEntry(N(), bP), IntegerEntry(O(height, lastBlock.timestamp), bP)]
672- if ((bW == bW))
677+ else fromBase58String(dP)), StringEntry(U(toString(bD), bA), aO(dY, dZ, cg, eb, height, lastBlock.timestamp)), IntegerEntry(N(), eb), IntegerEntry(O(height, lastBlock.timestamp), eb)]
678+ if ((bX == bX))
673679 then {
674- let dY = invoke(at, "burn", [cf], [AttachedPayment(bA, cf)])
675- if ((dY == dY))
676- then bW
680+ let ec = invoke(au, "burn", [cg], [AttachedPayment(bB, cg)])
681+ if ((ec == ec))
682+ then bX
677683 else throw("Strict value is not equal to itself.")
678684 }
679685 else throw("Strict value is not equal to itself.")
680686 }
681687 else throw("Strict value is not equal to itself.")
682688 }
683689 else throw("Strict value is not equal to itself.")
684690 }
685691 }
686692 }
687693
688694
689695
690-@Callable(cZ)
691-func getNoLess (dZ,ea) = {
692- let cr = cY(cZ)
693- let bU = cr._1
694- let bV = cr._2
695- let cf = cr._3
696- let bA = cr._4
697- let bW = cr._5
698- if ((dZ > bU))
699- then throw(((("Failed: " + toString(bU)) + " < ") + toString(dZ)))
700- else if ((ea > bV))
701- then throw(((("Failed: " + toString(bV)) + " < ") + toString(ea)))
696+@Callable(da)
697+func getNoLess (ed,ee) = {
698+ let cs = cZ(da)
699+ let bV = cs._1
700+ let bW = cs._2
701+ let cg = cs._3
702+ let bB = cs._4
703+ let bX = cs._5
704+ if ((ed > bV))
705+ then throw(((("Failed: " + toString(bV)) + " < ") + toString(ed)))
706+ else if ((ee > bW))
707+ then throw(((("Failed: " + toString(bW)) + " < ") + toString(ee)))
702708 else {
703- let dK = invoke(at, "burn", [cf], [AttachedPayment(bA, cf)])
704- if ((dK == dK))
705- then bW
709+ let dL = invoke(au, "burn", [cg], [AttachedPayment(bB, cg)])
710+ if ((dL == dL))
711+ then bX
706712 else throw("Strict value is not equal to itself.")
707713 }
708714 }
709715
710716
711717
712-@Callable(cZ)
713-func unstakeAndGet (eb) = {
714- let ec = if ((size(cZ.payments) != 0))
718+@Callable(da)
719+func unstakeAndGet (ef) = {
720+ let eg = if ((size(da.payments) != 0))
715721 then throw("No pmnts expd")
716722 else true
717- if ((ec == ec))
723+ if ((eg == eg))
718724 then {
719- let bq = ax()
720- let ed = aB()
721- let dn = fromBase58String(bq[q])
722- let ee = valueOrErrorMessage(addressFromString(ed[x]), "Wr st addr")
723- let ef = invoke(ee, "unstake", [toBase58String(dn), eb], nil)
724- if ((ef == ef))
725+ let br = ay()
726+ let eh = aC()
727+ let do = fromBase58String(br[q])
728+ let ei = valueOrErrorMessage(addressFromString(eh[x]), "Wr st addr")
729+ let ej = invoke(ei, "unstake", [toBase58String(do), ef], nil)
730+ if ((ej == ej))
725731 then {
726- let df = by(toBase58String(cZ.transactionId), toBase58String(dn), eb, cZ.caller)
727- let bI = parseIntValue(df._9)
728- let bW = df._10
729- let eg = if (if (av())
732+ let dg = bz(toBase58String(da.transactionId), toBase58String(do), ef, da.caller)
733+ let bJ = parseIntValue(dg._9)
734+ let bX = dg._10
735+ let ek = if (if (aw())
730736 then true
731- else (bI == n))
732- then throw(("Blocked: " + toString(bI)))
737+ else (bJ == n))
738+ then throw(("Blocked: " + toString(bJ)))
733739 else true
734- if ((eg == eg))
740+ if ((ek == ek))
735741 then {
736- let dK = invoke(at, "burn", [eb], [AttachedPayment(dn, eb)])
737- if ((dK == dK))
738- then bW
742+ let el = invoke(au, "burn", [ef], [AttachedPayment(do, ef)])
743+ if ((el == el))
744+ then bX
739745 else throw("Strict value is not equal to itself.")
740746 }
741747 else throw("Strict value is not equal to itself.")
742748 }
743749 else throw("Strict value is not equal to itself.")
744750 }
745751 else throw("Strict value is not equal to itself.")
746752 }
747753
748754
749755
750-@Callable(cZ)
751-func activate (eh,ei) = if ((toString(cZ.caller) != toString(at)))
756+@Callable(da)
757+func activate (em,en) = if ((toString(da.caller) != toString(au)))
752758 then throw("denied")
753- else $Tuple2([StringEntry(V(), eh), StringEntry(W(), ei)], "success")
759+ else $Tuple2([StringEntry(V(), em), StringEntry(W(), en)], "success")
754760
755761
756762
757-@Callable(cZ)
758-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ax())
763+@Callable(da)
764+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ay())
759765
760766
761767
762-@Callable(cZ)
763-func getAccBalanceWrapperREADONLY (aS) = $Tuple2(nil, aR(aS))
768+@Callable(da)
769+func getAccBalanceWrapperREADONLY (aT) = $Tuple2(nil, aS(aT))
764770
765771
766772
767-@Callable(cZ)
768-func calcPricesWrapperREADONLY (bk,bl,bp) = {
769- let ej = bo(bk, bl, bp)
770- $Tuple2(nil, [toString(ej[0]), toString(ej[1]), toString(ej[2])])
773+@Callable(da)
774+func calcPricesWrapperREADONLY (bl,bm,bq) = {
775+ let eo = bp(bl, bm, bq)
776+ $Tuple2(nil, [toString(eo[0]), toString(eo[1]), toString(eo[2])])
771777 }
772778
773779
774780
775-@Callable(cZ)
776-func fromX18WrapperREADONLY (E,F) = $Tuple2(nil, D(parseBigIntValue(E), F))
781+@Callable(da)
782+func fromX18WrapperREADONLY (E,ep) = $Tuple2(nil, D(parseBigIntValue(E), ep))
777783
778784
779785
780-@Callable(cZ)
786+@Callable(da)
781787 func toX18WrapperREADONLY (B,C) = $Tuple2(nil, toString(A(B, C)))
782788
783789
784790
785-@Callable(cZ)
786-func calcPriceBigIntWrapperREADONLY (aU,aV) = $Tuple2(nil, toString(aT(parseBigIntValue(aU), parseBigIntValue(aV))))
791+@Callable(da)
792+func calcPriceBigIntWrapperREADONLY (aV,aW) = $Tuple2(nil, toString(aU(parseBigIntValue(aV), parseBigIntValue(aW))))
787793
788794
789795
790-@Callable(cZ)
791-func estimatePutOperationWrapperREADONLY (bz,aZ,bY,bZ,ca,cb,ek,cc,cd) = $Tuple2(nil, bX(bz, aZ, bY, bZ, ca, cb, ek, cc, cd, false, 0, ""))
796+@Callable(da)
797+func estimatePutOperationWrapperREADONLY (bA,ba,bZ,ca,cb,cc,eq,cd,ce) = $Tuple2(nil, bY(bA, ba, bZ, ca, cb, cc, eq, cd, ce, false, 0, ""))
792798
793799
794800
795-@Callable(cZ)
796-func estimateGetOperationWrapperREADONLY (bz,el,bB,ek) = {
797- let cr = by(bz, el, bB, addressFromStringValue(ek))
798- $Tuple2(nil, $Tuple10(cr._1, cr._2, cr._3, cr._4, cr._5, cr._6, cr._7, toString(cr._8), cr._9, cr._10))
801+@Callable(da)
802+func estimateGetOperationWrapperREADONLY (bA,er,bC,eq) = {
803+ let cs = bz(bA, er, bC, addressFromStringValue(eq))
804+ $Tuple2(nil, $Tuple10(cs._1, cs._2, cs._3, cs._4, cs._5, cs._6, cs._7, toString(cs._8), cs._9, cs._10))
799805 }
800806
801807
802-@Verifier(em)
803-func en () = {
804- let an = em
805- if ($isInstanceOf(an, "Order"))
808+@Verifier(es)
809+func et () = {
810+ let ao = es
811+ if ($isInstanceOf(ao, "Order"))
806812 then {
807- let cM = an
808- let eo = aw()
809- let aj = cL(cM)
810- let ep = sigVerify(cM.bodyBytes, cM.proofs[0], cM.senderPublicKey)
811- let eq = sigVerify(cM.bodyBytes, cM.proofs[1], eo)
812- if (if (if (aj)
813- then ep
813+ let cN = ao
814+ let eu = ax()
815+ let ak = cM(cN)
816+ let ev = sigVerify(cN.bodyBytes, cN.proofs[0], cN.senderPublicKey)
817+ let ew = sigVerify(cN.bodyBytes, cN.proofs[1], eu)
818+ if (if (if (ak)
819+ then ev
814820 else false)
815- then eq
821+ then ew
816822 else false)
817823 then true
818- else ai(aj, ep, eq)
824+ else aj(ak, ev, ew)
819825 }
820826 else {
821- let er = valueOrElse(getString(this, M()), j)
822- if ((er == j))
823- then sigVerify(em.bodyBytes, em.proofs[0], em.senderPublicKey)
824- else sigVerify(em.bodyBytes, em.proofs[0], fromBase58String(er))
827+ let ex = valueOrElse(getString(this, M()), j)
828+ if ((ex == j))
829+ then sigVerify(es.bodyBytes, es.proofs[0], es.senderPublicKey)
830+ else sigVerify(es.bodyBytes, es.proofs[0], fromBase58String(ex))
825831 }
826832 }
827833

github/deemru/w8io/6500d08 
288.95 ms