tx · AfjRLnTqNSjGVysMM6JW3xfeCuseSZ4B9SDLwiKC1zZz

3N1TeiekUQhrqux6LjXWhJjUTrgLPJZxBtT:  -0.01400000 Waves

2021.11.02 13:21 [1773236] smart account 3N1TeiekUQhrqux6LjXWhJjUTrgLPJZxBtT > SELF 0.00000000 Waves

{ "type": 13, "id": "AfjRLnTqNSjGVysMM6JW3xfeCuseSZ4B9SDLwiKC1zZz", "fee": 1400000, "feeAssetId": null, "timestamp": 1635848447896, "version": 2, "chainId": 84, "sender": "3N1TeiekUQhrqux6LjXWhJjUTrgLPJZxBtT", "senderPublicKey": "DvHRUamE97xEXsqx1rtLMf6DyHcJkZUs9kwyDVPT4zro", "proofs": [ "5iC2Kv3iRbi65E9wU1jMK2VkJ2Y2mdqiPmvraFCRvr7edNvLWnKETJkuS6jX7bVMrpRFfrLRx75Xet8TzFsCYsPu" ], "script": "base64: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AAAAAAIAAAAPJXNfX2Ftb3VudEFzc2V0AQAAAA1rZXlQcmljZUFzc2V0AAAAAAIAAAAOJXNfX3ByaWNlQXNzZXQBAAAADGtleUtIaXN0b3JpYwAAAAIAAAABaAAAAAl0aW1lc3RhbXAJAAS5AAAAAgkABEwAAAACAgAAABMlcyVzJWQlZF9fS19oaXN0b3J5CQAETAAAAAIJAAGkAAAAAQUAAAABaAkABEwAAAACCQABpAAAAAEFAAAACXRpbWVzdGFtcAUAAAADbmlsBQAAAANTRVABAAAAEGtleUZhY3RvcnlDb25maWcAAAAAAgAAABElc19fZmFjdG9yeUNvbmZpZwEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABAAAAE3Bvb2xDb250cmFjdEFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAAAglcyVzJXNfXwUAAAATcG9vbENvbnRyYWN0QWRkcmVzcwIAAAAgX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MkxwQXNzZXQBAAAADWtleVBvb2xDb25maWcAAAACAAAACWlBbXRBc3NldAAAAAtpUHJpY2VBc3NldAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAglZCVkJXNfXwUAAAAJaUFtdEFzc2V0AgAAAAJfXwUAAAALaVByaWNlQXNzZXQCAAAACF9fY29uZmlnAQAAAB9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAAAAAQAAAAxiYXNlQXNzZXRTdHIJAAEsAAAAAgIAAAAoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUAAAAMYmFzZUFzc2V0U3RyAQAAABNrZXlBbGxQb29sc1NodXRkb3duAAAAAAIAAAAMJXNfX3NodXRkb3duAQAAAA1rZXlQb29sV2VpZ2h0AAAAAQAAAA9jb250cmFjdEFkZHJlc3MJAAEsAAAAAgIAAAASJXMlc19fcG9vbFdlaWdodF9fBQAAAA9jb250cmFjdEFkZHJlc3MBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkJAAS5AAAAAgkABEwAAAACAgAAAAptYW5kYXRvcnkgCQAETAAAAAIJAAQlAAAAAQUAAAAHYWRkcmVzcwkABEwAAAACAgAAAAEuCQAETAAAAAIFAAAAA2tleQkABEwAAAACAgAAAA8gaXMgbm90IGRlZmluZWQFAAAAA25pbAIAAAAAAQAAAAxnZXRJbnRPckZhaWwAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQAEuQAAAAIJAARMAAAAAgIAAAAKbWFuZGF0b3J5IAkABEwAAAACCQAEJQAAAAEFAAAAB2FkZHJlc3MJAARMAAAAAgIAAAABLgkABEwAAAACBQAAAANrZXkJAARMAAAAAgIAAAAPIGlzIG5vdCBkZWZpbmVkBQAAAANuaWwCAAAAAAAAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABCQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAEdGhpcwkBAAAAEmtleUZhY3RvcnlDb250cmFjdAAAAAABAAAAEGlzR2xvYmFsU2h1dGRvd24AAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQAEGwAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAE2tleUFsbFBvb2xzU2h1dGRvd24AAAAABwEAAAANZ2V0UG9vbENvbmZpZwAAAAAEAAAACGFtdEFzc2V0CQEAAAAPZ2V0U3RyaW5nT3JGYWlsAAAAAgUAAAAEdGhpcwkBAAAAC2tleUFtdEFzc2V0AAAAAAQAAAAKcHJpY2VBc3NldAkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAABHRoaXMJAQAAAA1rZXlQcmljZUFzc2V0AAAAAAQAAAALaVByaWNlQXNzZXQJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAAB9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkAAAAAQUAAAAKcHJpY2VBc3NldAQAAAAJaUFtdEFzc2V0CQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAfa2V5TWFwcGluZ3NCYXNlQXNzZXQyaW50ZXJuYWxJZAAAAAEFAAAACGFtdEFzc2V0CQAEtQAAAAIJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAAA1rZXlQb29sQ29uZmlnAAAAAgkAAaQAAAABBQAAAAlpQW10QXNzZXQJAAGkAAAAAQUAAAALaVByaWNlQXNzZXQFAAAAA1NFUAEAAAAQZ2V0RmFjdG9yeUNvbmZpZwAAAAAJAAS1AAAAAgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAEGtleUZhY3RvcnlDb25maWcAAAAABQAAAANTRVABAAAAEWRhdGFQdXRBY3Rpb25JbmZvAAAACgAAAA1pbkFtdEFzc2V0QW10AAAAD2luUHJpY2VBc3NldEFtdAAAAAhvdXRMcEFtdAAAAAVwcmljZQAAAB1zbGlwcGFnZVRvbGVyYW5jZVBhc3NlZEJ5VXNlcgAAABVzbGlwcGFnZVRvbGVyYW5jZVJlYWwAAAAIdHhIZWlnaHQAAAALdHhUaW1lc3RhbXAAAAASc2xpcGFnZUFtdEFzc2V0QW10AAAAFHNsaXBhZ2VQcmljZUFzc2V0QW10CQAEuQAAAAIJAARMAAAAAgIAAAAUJWQlZCVkJWQlZCVkJWQlZCVkJWQJAARMAAAAAgkAAaQAAAABBQAAAA1pbkFtdEFzc2V0QW10CQAETAAAAAIJAAGkAAAAAQUAAAAPaW5QcmljZUFzc2V0QW10CQAETAAAAAIJAAGkAAAAAQUAAAAIb3V0THBBbXQJAARMAAAAAgkAAaQAAAABBQAAAAVwcmljZQkABEwAAAACCQABpAAAAAEFAAAAHXNsaXBwYWdlVG9sZXJhbmNlUGFzc2VkQnlVc2VyCQAETAAAAAIJAAGkAAAAAQUAAAAVc2xpcHBhZ2VUb2xlcmFuY2VSZWFsCQAETAAAAAIJAAGkAAAAAQUAAAAIdHhIZWlnaHQJAARMAAAAAgkAAaQAAAABBQAAAAt0eFRpbWVzdGFtcAkABEwAAAACCQABpAAAAAEFAAAAEnNsaXBhZ2VBbXRBc3NldEFtdAkABEwAAAACCQABpAAAAAEFAAAAFHNsaXBhZ2VQcmljZUFzc2V0QW10BQAAAANuaWwFAAAAA1NFUAEAAAARZGF0YUdldEFjdGlvbkluZm8AAAAGAAAADm91dEFtdEFzc2V0QW10AAAAEG91dFByaWNlQXNzZXRBbXQAAAAHaW5McEFtdAAAAAVwcmljZQAAAAh0eEhlaWdodAAAAAt0eFRpbWVzdGFtcAkABLkAAAACCQAETAAAAAICAAAADCVkJWQlZCVkJWQlZAkABEwAAAACCQABpAAAAAEFAAAADm91dEFtdEFzc2V0QW10CQAETAAAAAIJAAGkAAAAAQUAAAAQb3V0UHJpY2VBc3NldEFtdAkABEwAAAACCQABpAAAAAEFAAAAB2luTHBBbXQJAARMAAAAAgkAAaQAAAABBQAAAAVwcmljZQkABEwAAAACCQABpAAAAAEFAAAACHR4SGVpZ2h0CQAETAAAAAIJAAGkAAAAAQUAAAALdHhUaW1lc3RhbXAFAAAAA25pbAUAAAADU0VQAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQAAAAdhc3NldElkAwkAAAAAAAACBQAAAAdhc3NldElkAgAAAAVXQVZFUwgJAAPvAAAAAQUAAAAEdGhpcwAAAAlhdmFpbGFibGUJAAPwAAAAAgUAAAAEdGhpcwkAAlkAAAABBQAAAAdhc3NldElkAQAAAA9jYWxjUHJpY2VCaWdJbnQAAAACAAAACHByQW10WDE4AAAACGFtQW10WDE4CQABPAAAAAMFAAAACHByQW10WDE4BQAAAAdzY2FsZTE4BQAAAAhhbUFtdFgxOAEAAAAQcHJpdmF0ZUNhbGNQcmljZQAAAAQAAAAKYW1Bc3NldERjbQAAAApwckFzc2V0RGNtAAAABWFtQW10AAAABXByQW10BAAAAA5hbXRBc3NldEFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAAFYW1BbXQFAAAACmFtQXNzZXREY20EAAAAEHByaWNlQXNzZXRBbXRYMTgJAQAAAAV0b1gxOAAAAAIFAAAABXByQW10BQAAAApwckFzc2V0RGNtCQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgUAAAAQcHJpY2VBc3NldEFtdFgxOAUAAAAOYW10QXNzZXRBbXRYMTgBAAAACmNhbGNQcmljZXMAAAADAAAABWFtQW10AAAABXByQW10AAAABWxwQW10BAAAAANjZmcJAQAAAA1nZXRQb29sQ29uZmlnAAAAAAQAAAALYW10QXNzZXREY20JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAANjZmcFAAAADmlkeEFtdEFzc2V0RGNtBAAAAA1wcmljZUFzc2V0RGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAABBpZHhQcmljZUFzc2V0RGNtBAAAAAhwcmljZVgxOAkBAAAAEHByaXZhdGVDYWxjUHJpY2UAAAAEBQAAAAthbXRBc3NldERjbQUAAAANcHJpY2VBc3NldERjbQUAAAAFYW1BbXQFAAAABXByQW10BAAAAAhhbUFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAAFYW1BbXQFAAAAC2FtdEFzc2V0RGNtBAAAAAhwckFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAAFcHJBbXQFAAAADXByaWNlQXNzZXREY20EAAAACGxwQW10WDE4CQEAAAAFdG9YMTgAAAACBQAAAAVscEFtdAUAAAAGc2NhbGU4BAAAABNscFByaWNlSW5BbUFzc2V0WDE4CQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgUAAAAIYW1BbXRYMTgFAAAACGxwQW10WDE4BAAAABNscFByaWNlSW5QckFzc2V0WDE4CQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgUAAAAIcHJBbXRYMTgFAAAACGxwQW10WDE4CQAETAAAAAIFAAAACHByaWNlWDE4CQAETAAAAAIFAAAAE2xwUHJpY2VJbkFtQXNzZXRYMTgJAARMAAAAAgUAAAATbHBQcmljZUluUHJBc3NldFgxOAUAAAADbmlsAQAAAA9jYWxjdWxhdGVQcmljZXMAAAADAAAABWFtQW10AAAABXByQW10AAAABWxwQW10BAAAAAZwcmljZXMJAQAAAApjYWxjUHJpY2VzAAAAAwUAAAAFYW1BbXQFAAAABXByQW10BQAAAAVscEFtdAkABEwAAAACCQEAAAAHZnJvbVgxOAAAAAIJAAGRAAAAAgUAAAAGcHJpY2VzAAAAAAAAAAAABQAAAAZzY2FsZTgJAARMAAAAAgkBAAAAB2Zyb21YMTgAAAACCQABkQAAAAIFAAAABnByaWNlcwAAAAAAAAAAAQUAAAAGc2NhbGU4CQAETAAAAAIJAQAAAAdmcm9tWDE4AAAAAgkAAZEAAAACBQAAAAZwcmljZXMAAAAAAAAAAAIFAAAABnNjYWxlOAUAAAADbmlsAQAAABRlc3RpbWF0ZUdldE9wZXJhdGlvbgAAAAQAAAAGdHhJZDU4AAAACnBtdEFzc2V0SWQAAAAIcG10THBBbXQAAAALdXNlckFkZHJlc3MEAAAAA2NmZwkBAAAADWdldFBvb2xDb25maWcAAAAABAAAAAlscEFzc2V0SWQJAAGRAAAAAgUAAAADY2ZnBQAAABBpZHhQb29sTFBBc3NldElkBAAAAAlhbUFzc2V0SWQJAAGRAAAAAgUAAAADY2ZnBQAAAA1pZHhBbXRBc3NldElkBAAAAAlwckFzc2V0SWQJAAGRAAAAAgUAAAADY2ZnBQAAAA9pZHhQcmljZUFzc2V0SWQEAAAACmFtQXNzZXREY20JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAANjZmcFAAAADmlkeEFtdEFzc2V0RGNtBAAAAApwckFzc2V0RGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAABBpZHhQcmljZUFzc2V0RGNtBAAAAApwb29sU3RhdHVzCQABkQAAAAIFAAAAA2NmZwUAAAANaWR4UG9vbFN0YXR1cwQAAAAKbHBFbWlzc2lvbggJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABCQACWQAAAAEFAAAACWxwQXNzZXRJZAkAASwAAAACCQABLAAAAAICAAAABkFzc2V0IAUAAAAJbHBBc3NldElkAgAAAA4gZG9lc24ndCBleGlzdAAAAAhxdWFudGl0eQMJAQAAAAIhPQAAAAIFAAAACWxwQXNzZXRJZAUAAAAKcG10QXNzZXRJZAkAAAIAAAABAgAAABVJbnZhbGlkIGFzc2V0IHBhc3NlZC4EAAAACWFtQmFsYW5jZQkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAlhbUFzc2V0SWQEAAAADGFtQmFsYW5jZVgxOAkBAAAABXRvWDE4AAAAAgUAAAAJYW1CYWxhbmNlBQAAAAphbUFzc2V0RGNtBAAAAAlwckJhbGFuY2UJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAJcHJBc3NldElkBAAAAAxwckJhbGFuY2VYMTgJAQAAAAV0b1gxOAAAAAIFAAAACXByQmFsYW5jZQUAAAAKcHJBc3NldERjbQQAAAALY3VyUHJpY2VYMTgJAQAAAA9jYWxjUHJpY2VCaWdJbnQAAAACBQAAAAxwckJhbGFuY2VYMTgFAAAADGFtQmFsYW5jZVgxOAQAAAAIY3VyUHJpY2UJAQAAAAdmcm9tWDE4AAAAAgUAAAALY3VyUHJpY2VYMTgFAAAABnNjYWxlOAQAAAALcG10THBBbXRYMTgJAQAAAAV0b1gxOAAAAAIFAAAACHBtdExwQW10BQAAAAZzY2FsZTgEAAAADWxwRW1pc3Npb25YMTgJAQAAAAV0b1gxOAAAAAIFAAAACmxwRW1pc3Npb24FAAAABnNjYWxlOAQAAAALb3V0QW1BbXRYMTgJAAE8AAAAAwUAAAAMYW1CYWxhbmNlWDE4BQAAAAtwbXRMcEFtdFgxOAUAAAANbHBFbWlzc2lvblgxOAQAAAALb3V0UHJBbXRYMTgJAAE8AAAAAwUAAAAMcHJCYWxhbmNlWDE4BQAAAAtwbXRMcEFtdFgxOAUAAAANbHBFbWlzc2lvblgxOAQAAAAIb3V0QW1BbXQJAQAAAAdmcm9tWDE4AAAAAgUAAAALb3V0QW1BbXRYMTgFAAAACmFtQXNzZXREY20EAAAACG91dFByQW10CQEAAAAHZnJvbVgxOAAAAAIFAAAAC291dFByQW10WDE4BQAAAApwckFzc2V0RGNtBAAAAAVzdGF0ZQMJAAAAAAAAAgUAAAAGdHhJZDU4AgAAAAAFAAAAA25pbAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAt1c2VyQWRkcmVzcwUAAAAIb3V0QW1BbXQDCQAAAAAAAAIFAAAACWFtQXNzZXRJZAIAAAAFV0FWRVMFAAAABHVuaXQJAAJZAAAAAQUAAAAJYW1Bc3NldElkCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAC3VzZXJBZGRyZXNzBQAAAAhvdXRQckFtdAMJAAAAAAAAAgUAAAAJcHJBc3NldElkAgAAAAVXQVZFUwUAAAAEdW5pdAkAAlkAAAABBQAAAAlwckFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmtleUdldEFjdGlvbkJ5VXNlcgAAAAIJAAQlAAAAAQUAAAALdXNlckFkZHJlc3MFAAAABnR4SWQ1OAkBAAAAEWRhdGFHZXRBY3Rpb25JbmZvAAAABgUAAAAIb3V0QW1BbXQFAAAACG91dFByQW10BQAAAAhwbXRMcEFtdAUAAAAIY3VyUHJpY2UFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAAxrZXlQcmljZUxhc3QAAAAABQAAAAhjdXJQcmljZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAD2tleVByaWNlSGlzdG9yeQAAAAIFAAAABmhlaWdodAgFAAAACWxhc3RCbG9jawAAAAl0aW1lc3RhbXAFAAAACGN1clByaWNlBQAAAANuaWwJAAUcAAAACgUAAAAIb3V0QW1BbXQFAAAACG91dFByQW10BQAAAAlhbUFzc2V0SWQFAAAACXByQXNzZXRJZAUAAAAJYW1CYWxhbmNlBQAAAAlwckJhbGFuY2UFAAAACmxwRW1pc3Npb24FAAAAC2N1clByaWNlWDE4BQAAAApwb29sU3RhdHVzBQAAAAVzdGF0ZQEAAAAUZXN0aW1hdGVQdXRPcGVyYXRpb24AAAAJAAAABnR4SWQ1OAAAABFzbGlwcGFnZVRvbGVyYW5jZQAAAAxpbkFtQXNzZXRBbXQAAAALaW5BbUFzc2V0SWQAAAAMaW5QckFzc2V0QW10AAAAC2luUHJBc3NldElkAAAAC3VzZXJBZGRyZXNzAAAACmlzRXZhbHVhdGUAAAAGZW1pdExwBAAAAANjZmcJAQAAAA1nZXRQb29sQ29uZmlnAAAAAAQAAAAJbHBBc3NldElkCQACWQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAABBpZHhQb29sTFBBc3NldElkBAAAAAxhbUFzc2V0SWRTdHIJAAGRAAAAAgUAAAADY2ZnBQAAAA1pZHhBbXRBc3NldElkBAAAAAxwckFzc2V0SWRTdHIJAAGRAAAAAgUAAAADY2ZnBQAAAA9pZHhQcmljZUFzc2V0SWQEAAAAC2lBbXRBc3NldElkCQABkQAAAAIFAAAAA2NmZwUAAAAOaWR4SUFtdEFzc2V0SWQEAAAADWlQcmljZUFzc2V0SWQJAAGRAAAAAgUAAAADY2ZnBQAAABBpZHhJUHJpY2VBc3NldElkBAAAAAthbXRBc3NldERjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAAOaWR4QW10QXNzZXREY20EAAAADXByaWNlQXNzZXREY20JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAANjZmcFAAAAEGlkeFByaWNlQXNzZXREY20EAAAACnBvb2xTdGF0dXMJAAGRAAAAAgUAAAADY2ZnBQAAAA1pZHhQb29sU3RhdHVzBAAAAApscEVtaXNzaW9uCAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAD7AAAAAEFAAAACWxwQXNzZXRJZAkAASwAAAACCQABLAAAAAICAAAABkFzc2V0IAkAAlgAAAABBQAAAAlscEFzc2V0SWQCAAAADiBkb2Vzbid0IGV4aXN0AAAACHF1YW50aXR5BAAAAA5pbkFtQXNzZXRJZFN0cgkAAlgAAAABCQEAAAALdmFsdWVPckVsc2UAAAACBQAAAAtpbkFtQXNzZXRJZAkAAlkAAAABAgAAAAVXQVZFUwQAAAAOaW5QckFzc2V0SWRTdHIJAAJYAAAAAQkBAAAAC3ZhbHVlT3JFbHNlAAAAAgUAAAALaW5QckFzc2V0SWQJAAJZAAAAAQIAAAAFV0FWRVMDAwkBAAAAAiE9AAAAAgUAAAAMYW1Bc3NldElkU3RyBQAAAA5pbkFtQXNzZXRJZFN0cgYJAQAAAAIhPQAAAAIFAAAADHByQXNzZXRJZFN0cgUAAAAOaW5QckFzc2V0SWRTdHIJAAACAAAAAQIAAAAiSW52YWxpZCBhbXQgb3IgcHJpY2UgYXNzZXQgcGFzc2VkLgQAAAAJYW1CYWxhbmNlAwUAAAAKaXNFdmFsdWF0ZQkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAxhbUFzc2V0SWRTdHIJAABlAAAAAgkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAxhbUFzc2V0SWRTdHIFAAAADGluQW1Bc3NldEFtdAQAAAAJcHJCYWxhbmNlAwUAAAAKaXNFdmFsdWF0ZQkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAxwckFzc2V0SWRTdHIJAABlAAAAAgkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAxwckFzc2V0SWRTdHIFAAAADGluUHJBc3NldEFtdAQAAAAPaW5BbUFzc2V0QW10WDE4CQEAAAAFdG9YMTgAAAACBQAAAAxpbkFtQXNzZXRBbXQFAAAAC2FtdEFzc2V0RGNtBAAAAA9pblByQXNzZXRBbXRYMTgJAQAAAAV0b1gxOAAAAAIFAAAADGluUHJBc3NldEFtdAUAAAANcHJpY2VBc3NldERjbQQAAAAMdXNlclByaWNlWDE4CQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgUAAAAPaW5QckFzc2V0QW10WDE4BQAAAA9pbkFtQXNzZXRBbXRYMTgEAAAADGFtQmFsYW5jZVgxOAkBAAAABXRvWDE4AAAAAgUAAAAJYW1CYWxhbmNlBQAAAAthbXRBc3NldERjbQQAAAAMcHJCYWxhbmNlWDE4CQEAAAAFdG9YMTgAAAACBQAAAAlwckJhbGFuY2UFAAAADXByaWNlQXNzZXREY20EAAAAA3JlcwMJAAAAAAAAAgUAAAAKbHBFbWlzc2lvbgAAAAAAAAAAAAQAAAALY3VyUHJpY2VYMTgFAAAACnplcm9CaWdJbnQEAAAAC3NsaXBwYWdlWDE4BQAAAAp6ZXJvQmlnSW50BAAAAAhscEFtdFgxOAkAAHYAAAAGCQABOQAAAAIFAAAAD2luQW1Bc3NldEFtdFgxOAUAAAAPaW5QckFzc2V0QW10WDE4AAAAAAAAAAAACQABNgAAAAEAAAAAAAAAAAUAAAAAAAAAAAEAAAAAAAAAAAAFAAAABERPV04JAAUXAAAABQkBAAAAB2Zyb21YMTgAAAACBQAAAAhscEFtdFgxOAUAAAAGc2NhbGU4CQEAAAAHZnJvbVgxOAAAAAIFAAAAD2luQW1Bc3NldEFtdFgxOAUAAAALYW10QXNzZXREY20JAQAAAAdmcm9tWDE4AAAAAgUAAAAPaW5QckFzc2V0QW10WDE4BQAAAA1wcmljZUFzc2V0RGNtCQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgkAATcAAAACBQAAAAxwckJhbGFuY2VYMTgFAAAAD2luUHJBc3NldEFtdFgxOAkAATcAAAACBQAAAAxhbUJhbGFuY2VYMTgFAAAAD2luQW1Bc3NldEFtdFgxOAUAAAALc2xpcHBhZ2VYMTgEAAAAC2N1clByaWNlWDE4CQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgUAAAAMcHJCYWxhbmNlWDE4BQAAAAxhbUJhbGFuY2VYMTgEAAAAC3NsaXBwYWdlWDE4CQABPAAAAAMJAQAAAANhYnMAAAABCQABOAAAAAIFAAAAC2N1clByaWNlWDE4BQAAAAx1c2VyUHJpY2VYMTgFAAAAB3NjYWxlMTgFAAAAC2N1clByaWNlWDE4BAAAABRzbGlwcGFnZVRvbGVyYW5jZVgxOAkBAAAABXRvWDE4AAAAAgUAAAARc2xpcHBhZ2VUb2xlcmFuY2UFAAAABnNjYWxlOAMDCQEAAAACIT0AAAACBQAAAAtjdXJQcmljZVgxOAUAAAAKemVyb0JpZ0ludAkAAT8AAAACBQAAAAtzbGlwcGFnZVgxOAUAAAAUc2xpcHBhZ2VUb2xlcmFuY2VYMTgHCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAD1ByaWNlIHNsaXBwYWdlIAkAAaYAAAABBQAAAAtzbGlwcGFnZVgxOAIAAAAeIGV4Y2VlZGVkIHRoZSBwYXNzZWQgbGltaXQgb2YgCQABpgAAAAEFAAAAFHNsaXBwYWdlVG9sZXJhbmNlWDE4BAAAAA1scEVtaXNzaW9uWDE4CQEAAAAFdG9YMTgAAAACBQAAAApscEVtaXNzaW9uBQAAAAZzY2FsZTgEAAAACnByVmlhQW1YMTgJAAE8AAAAAwUAAAAPaW5BbUFzc2V0QW10WDE4BQAAAAtjdXJQcmljZVgxOAUAAAAHc2NhbGUxOAQAAAAKYW1WaWFQclgxOAkAATwAAAADBQAAAA9pblByQXNzZXRBbXRYMTgFAAAAB3NjYWxlMTgFAAAAC2N1clByaWNlWDE4BAAAAAxleHBlY3RlZEFtdHMDCQABPwAAAAIFAAAACnByVmlhQW1YMTgFAAAAD2luUHJBc3NldEFtdFgxOAkABRQAAAACBQAAAAphbVZpYVByWDE4BQAAAA9pblByQXNzZXRBbXRYMTgJAAUUAAAAAgUAAAAPaW5BbUFzc2V0QW10WDE4BQAAAApwclZpYUFtWDE4BAAAABFleHBBbXRBc3NldEFtdFgxOAgFAAAADGV4cGVjdGVkQW10cwAAAAJfMQQAAAATZXhwUHJpY2VBc3NldEFtdFgxOAgFAAAADGV4cGVjdGVkQW10cwAAAAJfMgQAAAAIbHBBbXRYMTgJAAE8AAAAAwUAAAANbHBFbWlzc2lvblgxOAUAAAATZXhwUHJpY2VBc3NldEFtdFgxOAUAAAAMcHJCYWxhbmNlWDE4CQAFFwAAAAUJAQAAAAdmcm9tWDE4AAAAAgUAAAAIbHBBbXRYMTgFAAAABnNjYWxlOAkBAAAAB2Zyb21YMTgAAAACBQAAABFleHBBbXRBc3NldEFtdFgxOAUAAAALYW10QXNzZXREY20JAQAAAAdmcm9tWDE4AAAAAgUAAAATZXhwUHJpY2VBc3NldEFtdFgxOAUAAAANcHJpY2VBc3NldERjbQUAAAALY3VyUHJpY2VYMTgFAAAAC3NsaXBwYWdlWDE4BAAAAAljYWxjTHBBbXQIBQAAAANyZXMAAAACXzEEAAAADmNhbGNBbUFzc2V0UG10CAUAAAADcmVzAAAAAl8yBAAAAA5jYWxjUHJBc3NldFBtdAgFAAAAA3JlcwAAAAJfMwQAAAAIY3VyUHJpY2UJAQAAAAdmcm9tWDE4AAAAAggFAAAAA3JlcwAAAAJfNAUAAAAGc2NhbGU4BAAAAAxzbGlwcGFnZUNhbGMJAQAAAAdmcm9tWDE4AAAAAggFAAAAA3JlcwAAAAJfNQUAAAAGc2NhbGU4AwkAAGcAAAACAAAAAAAAAAAABQAAAAljYWxjTHBBbXQJAAACAAAAAQIAAAA2SW52YWxpZCBjYWxjdWxhdGlvbnMuIExQIGNhbGN1bGF0ZWQgaXMgbGVzcyB0aGFuIHplcm8uBAAAAAllbWl0THBBbXQDCQEAAAABIQAAAAEFAAAABmVtaXRMcAAAAAAAAAAAAAUAAAAJY2FsY0xwQW10BAAAAAZhbURpZmYJAABlAAAAAgUAAAAMaW5BbUFzc2V0QW10BQAAAA5jYWxjQW1Bc3NldFBtdAQAAAAGcHJEaWZmCQAAZQAAAAIFAAAADGluUHJBc3NldEFtdAUAAAAOY2FsY1ByQXNzZXRQbXQEAAAAC2NvbW1vblN0YXRlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMa2V5UHJpY2VMYXN0AAAAAAUAAAAIY3VyUHJpY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9rZXlQcmljZUhpc3RvcnkAAAACBQAAAAZoZWlnaHQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAhjdXJQcmljZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASa2V5UHV0QWN0aW9uQnlVc2VyAAAAAgUAAAALdXNlckFkZHJlc3MFAAAABnR4SWQ1OAkBAAAAEWRhdGFQdXRBY3Rpb25JbmZvAAAACgUAAAAOY2FsY0FtQXNzZXRQbXQFAAAADmNhbGNQckFzc2V0UG10BQAAAAllbWl0THBBbXQFAAAACGN1clByaWNlBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAAMc2xpcHBhZ2VDYWxjBQAAAAZoZWlnaHQIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wBQAAAAZhbURpZmYFAAAABnByRGlmZgUAAAADbmlsCQAFHwAAAA0FAAAACWNhbGNMcEFtdAUAAAAJZW1pdExwQW10BQAAAAhjdXJQcmljZQUAAAAJYW1CYWxhbmNlBQAAAAlwckJhbGFuY2UFAAAACmxwRW1pc3Npb24FAAAACWxwQXNzZXRJZAUAAAAKcG9vbFN0YXR1cwUAAAALY29tbW9uU3RhdGUFAAAABmFtRGlmZgUAAAAGcHJEaWZmBQAAAAtpbkFtQXNzZXRJZAUAAAALaW5QckFzc2V0SWQBAAAAG3ZhbGlkYXRlTWF0Y2hlck9yZGVyQWxsb3dlZAAAAAEAAAAFb3JkZXIEAAAAA2NmZwkBAAAADWdldFBvb2xDb25maWcAAAAABAAAAAphbXRBc3NldElkCQABkQAAAAIFAAAAA2NmZwUAAAANaWR4QW10QXNzZXRJZAQAAAAMcHJpY2VBc3NldElkCQABkQAAAAIFAAAAA2NmZwUAAAAPaWR4UHJpY2VBc3NldElkBAAAAApwb29sU3RhdHVzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAA1pZHhQb29sU3RhdHVzBAAAAAthbXRBc3NldERjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAAOaWR4QW10QXNzZXREY20EAAAADXByaWNlQXNzZXREY20JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAANjZmcFAAAAEGlkeFByaWNlQXNzZXREY20EAAAAEmFjY0FtdEFzc2V0QmFsYW5jZQkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAphbXRBc3NldElkBAAAABRhY2NQcmljZUFzc2V0QmFsYW5jZQkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAxwcmljZUFzc2V0SWQEAAAAC2N1clByaWNlWDE4AwkAAAAAAAACCAUAAAAFb3JkZXIAAAAJb3JkZXJUeXBlBQAAAANCdXkJAQAAABBwcml2YXRlQ2FsY1ByaWNlAAAABAUAAAALYW10QXNzZXREY20FAAAADXByaWNlQXNzZXREY20JAABkAAAAAgUAAAASYWNjQW10QXNzZXRCYWxhbmNlCAUAAAAFb3JkZXIAAAAGYW1vdW50BQAAABRhY2NQcmljZUFzc2V0QmFsYW5jZQkBAAAAEHByaXZhdGVDYWxjUHJpY2UAAAAEBQAAAAthbXRBc3NldERjbQUAAAANcHJpY2VBc3NldERjbQkAAGUAAAACBQAAABJhY2NBbXRBc3NldEJhbGFuY2UIBQAAAAVvcmRlcgAAAAZhbW91bnQFAAAAFGFjY1ByaWNlQXNzZXRCYWxhbmNlBAAAAAhjdXJQcmljZQkBAAAAB2Zyb21YMTgAAAACBQAAAAtjdXJQcmljZVgxOAUAAAAGc2NhbGU4AwMDCQEAAAAQaXNHbG9iYWxTaHV0ZG93bgAAAAAGCQAAAAAAAAIFAAAACnBvb2xTdGF0dXMFAAAAE1Bvb2xNYXRjaGVyRGlzYWJsZWQGCQAAAAAAAAIFAAAACnBvb2xTdGF0dXMFAAAADFBvb2xTaHV0ZG93bgkAAAIAAAABAgAAABxFeGNoYW5nZSBvcGVyYXRpb25zIGRpc2FibGVkBAAAAA1vcmRlckFtdEFzc2V0CAgFAAAABW9yZGVyAAAACWFzc2V0UGFpcgAAAAthbW91bnRBc3NldAQAAAAQb3JkZXJBbXRBc3NldFN0cgMJAAAAAAAAAgUAAAANb3JkZXJBbXRBc3NldAUAAAAEdW5pdAIAAAAFV0FWRVMJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAANb3JkZXJBbXRBc3NldAQAAAAPb3JkZXJQcmljZUFzc2V0CAgFAAAABW9yZGVyAAAACWFzc2V0UGFpcgAAAApwcmljZUFzc2V0BAAAABJvcmRlclByaWNlQXNzZXRTdHIDCQAAAAAAAAIFAAAAD29yZGVyUHJpY2VBc3NldAUAAAAEdW5pdAIAAAAFV0FWRVMJAAJYAAAAAQkBAAAABXZhbHVlAAAAAQUAAAAPb3JkZXJQcmljZUFzc2V0AwMJAQAAAAIhPQAAAAIFAAAAEG9yZGVyQW10QXNzZXRTdHIFAAAACmFtdEFzc2V0SWQGCQEAAAACIT0AAAACBQAAABJvcmRlclByaWNlQXNzZXRTdHIFAAAADHByaWNlQXNzZXRJZAkAAAIAAAABAgAAABNXcm9uZyBvcmRlciBhc3NldHMuBAAAAApvcmRlclByaWNlCAUAAAAFb3JkZXIAAAAFcHJpY2UEAAAACHByaWNlRGNtCQAAawAAAAMFAAAABnNjYWxlOAUAAAANcHJpY2VBc3NldERjbQUAAAALYW10QXNzZXREY20EAAAAEGNhc3RlZE9yZGVyUHJpY2UJAQAAAAd0b1NjYWxlAAAAAwUAAAAKb3JkZXJQcmljZQUAAAAGc2NhbGU4BQAAAAhwcmljZURjbQQAAAARaXNPcmRlclByaWNlVmFsaWQDCQAAAAAAAAIIBQAAAAVvcmRlcgAAAAlvcmRlclR5cGUFAAAAA0J1eQkAAGcAAAACBQAAAAhjdXJQcmljZQUAAAAQY2FzdGVkT3JkZXJQcmljZQkAAGcAAAACBQAAABBjYXN0ZWRPcmRlclByaWNlBQAAAAhjdXJQcmljZQYBAAAACWNvbW1vbkdldAAAAAEAAAABaQMJAQAAAAIhPQAAAAIJAAGQAAAAAQgFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAEJAAACAAAAAQIAAAAdZXhhY3RseSAxIHBheW1lbnQgaXMgZXhwZWN0ZWQEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAKcG10QXNzZXRJZAkBAAAABXZhbHVlAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAZwbXRBbXQIBQAAAANwbXQAAAAGYW1vdW50BAAAAANyZXMJAQAAABRlc3RpbWF0ZUdldE9wZXJhdGlvbgAAAAQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAkAAlgAAAABBQAAAApwbXRBc3NldElkBQAAAAZwbXRBbXQIBQAAAAFpAAAABmNhbGxlcgQAAAAIb3V0QW1BbXQIBQAAAANyZXMAAAACXzEEAAAACG91dFByQW10CAUAAAADcmVzAAAAAl8yBAAAAApwb29sU3RhdHVzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEIBQAAAANyZXMAAAACXzkEAAAABXN0YXRlCAUAAAADcmVzAAAAA18xMAMDCQEAAAAQaXNHbG9iYWxTaHV0ZG93bgAAAAAGCQAAAAAAAAIFAAAACnBvb2xTdGF0dXMFAAAADFBvb2xTaHV0ZG93bgkAAAIAAAABCQABLAAAAAICAAAALEdldCBvcGVyYXRpb24gaXMgYmxvY2tlZCBieSBhZG1pbi4gU3RhdHVzID0gCQABpAAAAAEFAAAACnBvb2xTdGF0dXMJAAUXAAAABQUAAAAIb3V0QW1BbXQFAAAACG91dFByQW10BQAAAAZwbXRBbXQFAAAACnBtdEFzc2V0SWQFAAAABXN0YXRlAQAAAAljb21tb25QdXQAAAADAAAAAWkAAAARc2xpcHBhZ2VUb2xlcmFuY2UAAAAGZW1pdExwAwkBAAAAAiE9AAAAAgkAAZAAAAABCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAgkAAAIAAAABAgAAAB9leGFjdGx5IDIgcGF5bWVudHMgYXJlIGV4cGVjdGVkBAAAAAphbUFzc2V0UG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAABAAAAApwckFzc2V0UG10CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABBAAAAAZlc3RQdXQJAQAAABRlc3RpbWF0ZVB1dE9wZXJhdGlvbgAAAAkJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAUAAAARc2xpcHBhZ2VUb2xlcmFuY2UIBQAAAAphbUFzc2V0UG10AAAABmFtb3VudAgFAAAACmFtQXNzZXRQbXQAAAAHYXNzZXRJZAgFAAAACnByQXNzZXRQbXQAAAAGYW1vdW50CAUAAAAKcHJBc3NldFBtdAAAAAdhc3NldElkCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgcFAAAABmVtaXRMcAQAAAAKcG9vbFN0YXR1cwkBAAAADXBhcnNlSW50VmFsdWUAAAABCAUAAAAGZXN0UHV0AAAAAl84AwMDCQEAAAAQaXNHbG9iYWxTaHV0ZG93bgAAAAAGCQAAAAAAAAIFAAAACnBvb2xTdGF0dXMFAAAAD1Bvb2xQdXREaXNhYmxlZAYJAAAAAAAAAgUAAAAKcG9vbFN0YXR1cwUAAAAMUG9vbFNodXRkb3duCQAAAgAAAAEJAAEsAAAAAgIAAAAsUHV0IG9wZXJhdGlvbiBpcyBibG9ja2VkIGJ5IGFkbWluLiBTdGF0dXMgPSAJAAGkAAAAAQUAAAAKcG9vbFN0YXR1cwUAAAAGZXN0UHV0AAAAEgAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAIAAAAPZmFjdG9yeUNvbnRyYWN0AAAAEG1hbmFnZXJQdWJsaWNLZXkDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAScGVybWlzc2lvbnMgZGVuaWVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJrZXlGYWN0b3J5Q29udHJhY3QAAAAABQAAAA9mYWN0b3J5Q29udHJhY3QJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAE2tleU1hbmFnZXJQdWJsaWNLZXkAAAAABQAAABBtYW5hZ2VyUHVibGljS2V5BQAAAANuaWwAAAABaQEAAAADcHV0AAAAAgAAABFzbGlwcGFnZVRvbGVyYW5jZQAAAA9zaG91bGRBdXRvU3Rha2UEAAAACmZhY3RvcnlDZmcJAQAAABBnZXRGYWN0b3J5Q29uZmlnAAAAAAQAAAAPc3Rha2luZ0NvbnRyYWN0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnBQAAABlpZHhGYWN0b3J5U3Rha2luZ0NvbnRyYWN0AgAAACFFcnJvci4gSW5jb3JyZWN0IHN0YWtpbmcgYWRkcmVzcy4EAAAAEHNsaXBwYWdlQ29udHJhY3QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABCQABkQAAAAIFAAAACmZhY3RvcnlDZmcFAAAAGmlkeEZhY3RvcnlTbGlwcGFnZUNvbnRyYWN0AgAAACtFcnJvci4gSW5jb3JyZWN0IHNsaXBwYWdlIGNvbnRyYWN0IGFkZHJlc3MuAwkAAGYAAAACAAAAAAAAAAAABQAAABFzbGlwcGFnZVRvbGVyYW5jZQkAAAIAAAABAgAAACBJbnZhbGlkIHNsaXBwYWdlVG9sZXJhbmNlIHBhc3NlZAQAAAAGZXN0UHV0CQEAAAAJY29tbW9uUHV0AAAAAwUAAAABaQUAAAARc2xpcHBhZ2VUb2xlcmFuY2UGBAAAAAllbWl0THBBbXQIBQAAAAZlc3RQdXQAAAACXzIEAAAACWxwQXNzZXRJZAgFAAAABmVzdFB1dAAAAAJfNwQAAAAFc3RhdGUIBQAAAAZlc3RQdXQAAAACXzkEAAAABmFtRGlmZggFAAAABmVzdFB1dAAAAANfMTAEAAAABnByRGlmZggFAAAABmVzdFB1dAAAAANfMTEEAAAABGFtSWQIBQAAAAZlc3RQdXQAAAADXzEyBAAAAARwcklkCAUAAAAGZXN0UHV0AAAAA18xMwQAAAAHZW1pdEludgkAA/wAAAAEBQAAAA9mYWN0b3J5Q29udHJhY3QCAAAABGVtaXQJAARMAAAAAgUAAAAJZW1pdExwQW10BQAAAANuaWwFAAAAA25pbAMJAAAAAAAAAgUAAAAHZW1pdEludgUAAAAHZW1pdEludgQAAAAMc2xpcHBhZ2VBSW52AwkAAGYAAAACBQAAAAZhbURpZmYAAAAAAAAAAAAJAAP8AAAABAUAAAAQc2xpcHBhZ2VDb250cmFjdAIAAAADcHV0BQAAAANuaWwJAARMAAAAAgkBAAAAD0F0dGFjaGVkUGF5bWVudAAAAAIFAAAABGFtSWQFAAAABmFtRGlmZgUAAAAD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AAAMaW5QckFzc2V0QW10AAAAC2luUHJBc3NldElkAAAAC3VzZXJBZGRyZXNzAAAACmlzRXZhbHVhdGUAAAAGZW1pdExwBAAAAAplc3RpbWF0aW9uCQEAAAAUZXN0aW1hdGVQdXRPcGVyYXRpb24AAAAJBQAAAAZ0eElkNTgFAAAAEXNsaXBwYWdlVG9sZXJhbmNlBQAAAAxpbkFtQXNzZXRBbXQFAAAAC2luQW1Bc3NldElkBQAAAAxpblByQXNzZXRBbXQFAAAAC2luUHJBc3NldElkBQAAAAt1c2VyQWRkcmVzcwUAAAAKaXNFdmFsdWF0ZQUAAAAGZW1pdExwBAAAAA0kdDAyNTM2ODI1NTg5BQAAAAplc3RpbWF0aW9uBAAAAAljYWxjTHBBbXQIBQAAAA0kdDAyNTM2ODI1NTg5AAAAAl8xBAAAAAllbWl0THBBbXQIBQAAAA0kdDAyNTM2ODI1NTg5AAAAAl8yBAAAAAhjdXJQcmljZQgFAAAADSR0MDI1MzY4MjU1ODkAAAACXzMEAAAACWFtQmFsYW5jZQgFAAAADSR0MDI1MzY4MjU1ODkAAAACXzQEAAAACXByQmFsYW5jZQgFAAAADSR0MDI1MzY4MjU1ODkAAAACXzUEAAAACmxwRW1pc3Npb24IBQAAAA0kdDAyNTM2ODI1NTg5AAAAAl82BAAAAAlscEFzc2V0SWQIBQAAAA0kdDAyNTM2ODI1NTg5AAAAAl83BAAAAApwb29sU3RhdHVzCAUAAAANJHQwMjUzNjgyNTU4OQAAAAJfOAQAAAALY29tbW9uU3RhdGUIBQAAAA0kdDAyNTM2ODI1NTg5AAAAAl85BAAAAAZhbURpZmYIBQAAAA0kdDAyNTM2ODI1NTg5AAAAA18xMAQAAAAGcHJEaWZmCAUAAAANJHQwMjUzNjgyNTU4OQAAAANfMTEEAAAADGluQW10QXNzZXRJZAgFAAAADSR0MDI1MzY4MjU1ODkAAAADXzEyBAAAAA5pblByaWNlQXNzZXRJZAgFAAAADSR0MDI1MzY4MjU1ODkAAAADXzEzCQAFFAAAAAIFAAAAA25pbAkABR8AAAANBQAAAAljYWxjTHBBbXQFAAAACWVtaXRMcEFtdAUAAAAIY3VyUHJpY2UFAAAACWFtQmFsYW5jZQUAAAAJcHJCYWxhbmNlBQAAAApscEVtaXNzaW9uBQAAAAlscEFzc2V0SWQFAAAACnBvb2xTdGF0dXMFAAAAC2NvbW1vblN0YXRlBQAAAAZhbURpZmYFAAAABnByRGlmZgUAAAAMaW5BbXRBc3NldElkBQAAAA5pblByaWNlQXNzZXRJZAAAAAFpAQAAACNlc3RpbWF0ZUdldE9wZXJhdGlvbldyYXBwZXJSRUFET05MWQAAAAQAAAAGdHhJZDU4AAAACnBtdEFzc2V0SWQAAAAIcG10THBBbXQAAAALdXNlckFkZHJlc3MEAAAACmVzdGltYXRpb24JAQAAABRlc3RpbWF0ZUdldE9wZXJhdGlvbgAAAAQFAAAABnR4SWQ1OAUAAAAKcG10QXNzZXRJZAUAAAAIcG10THBBbXQJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAAC3VzZXJBZGRyZXNzBAAAAA0kdDAyNjEwNjI2Mjc1BQAAAAplc3RpbWF0aW9uBAAAAAhvdXRBbUFtdAgFAAAADSR0MDI2MTA2MjYyNzUAAAACXzEEAAAACG91dFByQW10CAUAAAANJHQwMjYxMDYyNjI3NQAAAAJfMgQAAAAJYW1Bc3NldElkCAUAAAANJHQwMjYxMDYyNjI3NQAAAAJfMwQAAAAJcHJBc3NldElkCAUAAAANJHQwMjYxMDYyNjI3NQAAAAJfNAQAAAAJYW1CYWxhbmNlCAUAAAANJHQwMjYxMDYyNjI3NQAAAAJfNQQAAAAJcHJCYWxhbmNlCAUAAAANJHQwMjYxMDYyNjI3NQAAAAJfNgQAAAAKbHBFbWlzc2lvbggFAAAADSR0MDI2MTA2MjYyNzUAAAACXzcEAAAAC2N1clByaWNlWDE4CAUAAAANJHQwMjYxMDYyNjI3NQAAAAJfOAQAAAAKcG9vbFN0YXR1cwgFAAAADSR0MDI2MTA2MjYyNzUAAAACXzkEAAAABXN0YXRlCAUAAAANJHQwMjYxMDYyNjI3NQAAAANfMTAJAAUUAAAAAgUAAAADbmlsCQAFHAAAAAoFAAAACG91dEFtQW10BQAAAAhvdXRQckFtdAUAAAAJYW1Bc3NldElkBQAAAAlwckFzc2V0SWQFAAAACWFtQmFsYW5jZQUAAAAJcHJCYWxhbmNlBQAAAApscEVtaXNzaW9uCQABpgAAAAEFAAAAC2N1clByaWNlWDE4BQAAAApwb29sU3RhdHVzBQAAAAVzdGF0ZQAAAAFpAQAAAA1zdGF0c1JFQURPTkxZAAAAAAQAAAADY2ZnCQEAAAANZ2V0UG9vbENvbmZpZwAAAAAEAAAACWxwQXNzZXRJZAkAAlkAAAABCQABkQAAAAIFAAAAA2NmZwUAAAAQaWR4UG9vbExQQXNzZXRJZAQAAAAKYW10QXNzZXRJZAkAAZEAAAACBQAAAANjZmcFAAAADWlkeEFtdEFzc2V0SWQEAAAADHByaWNlQXNzZXRJZAkAAZEAAAACBQAAAANjZmcFAAAAD2lkeFByaWNlQXNzZXRJZAQAAAALaUFtdEFzc2V0SWQJAAGRAAAAAgUAAAADY2ZnBQAAAA5pZHhJQW10QXNzZXRJZAQAAAANaVByaWNlQXNzZXRJZAkAAZEAAAACBQAAAANjZmcFAAAAEGlkeElQcmljZUFzc2V0SWQEAAAAC2FtdEFzc2V0RGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAA5pZHhBbXRBc3NldERjbQQAAAANcHJpY2VBc3NldERjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAAQaWR4UHJpY2VBc3NldERjbQQAAAANcG9vbExQQmFsYW5jZQgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABBQAAAAlscEFzc2V0SWQJAAEsAAAAAgkAASwAAAACAgAAAAZBc3NldCAJAAJYAAAAAQUAAAAJbHBBc3NldElkAgAAAA4gZG9lc24ndCBleGlzdAAAAAhxdWFudGl0eQQAAAASYWNjQW10QXNzZXRCYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAACmFtdEFzc2V0SWQEAAAAFGFjY1ByaWNlQXNzZXRCYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAADHByaWNlQXNzZXRJZAQAAAAKcHJpY2VzTGlzdAkBAAAACmNhbGNQcmljZXMAAAADBQAAABJhY2NBbXRBc3NldEJhbGFuY2UFAAAAFGFjY1ByaWNlQXNzZXRCYWxhbmNlBQAAAA1wb29sTFBCYWxhbmNlBAAAAAhjdXJQcmljZQAAAAAAAAAAAAQAAAAPbHBBbXRBc3NldFNoYXJlCQEAAAAHZnJvbVgxOAAAAAIJAAGRAAAAAgUAAAAKcHJpY2VzTGlzdAAAAAAAAAAAAQUAAAAGc2NhbGU4BAAAABFscFByaWNlQXNzZXRTaGFyZQkBAAAAB2Zyb21YMTgAAAACCQABkQAAAAIFAAAACnByaWNlc0xpc3QAAAAAAAAAAAIFAAAABnNjYWxlOAQAAAAKcG9vbFdlaWdodAkBAAAABXZhbHVlAAAAAQkABBoAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAAA1rZXlQb29sV2VpZ2h0AAAAAQkABCUAAAABBQAAAAR0aGlzCQAFFAAAAAIFAAAAA25pbAkABLkAAAACCQAETAAAAAICAAAADiVkJWQlZCVkJWQlZCVkCQAETAAAAAIJAAGkAAAAAQUAAAASYWNjQW10QXNzZXRCYWxhbmNlCQAETAAAAAIJAAGkAAAAAQUAAAAUYWNjUHJpY2VBc3NldEJhbGFuY2UJAARMAAAAAgkAAaQAAAABBQAAAA1wb29sTFBCYWxhbmNlCQAETAAAAAIJAAGkAAAAAQUAAAAIY3VyUHJpY2UJAARMAAAAAgkAAaQAAAABBQAAAA9scEFtdEFzc2V0U2hhcmUJAARMAAAAAgkAAaQAAAABBQAAABFscFByaWNlQXNzZXRTaGFyZQkABEwAAAACCQABpAAAAAEFAAAACnBvb2xXZWlnaHQFAAAAA25pbAUAAAADU0VQAAAAAWkBAAAAIGV2YWx1YXRlUHV0QnlBbW91bnRBc3NldFJFQURPTkxZAAAAAQAAAAxpbkFtQXNzZXRBbXQEAAAAA2NmZwkBAAAADWdldFBvb2xDb25maWcAAAAABAAAAAlscEFzc2V0SWQJAAJZAAAAAQkAAZEAAAACBQAAAANjZmcFAAAAEGlkeFBvb2xMUEFzc2V0SWQEAAAADGFtQXNzZXRJZFN0cgkAAZEAAAACBQAAAANjZmcFAAAADWlkeEFtdEFzc2V0SWQEAAAACWFtQXNzZXRJZAkAAlkAAAABBQAAAAxhbUFzc2V0SWRTdHIEAAAADHByQXNzZXRJZFN0cgkAAZEAAAACBQAAAANjZmcFAAAAD2lkeFByaWNlQXNzZXRJZAQAAAAJcHJBc3NldElkCQACWQAAAAEFAAAADHByQXNzZXRJZFN0cgQAAAALYW10QXNzZXREY20JAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAANjZmcFAAAADmlkeEFtdEFzc2V0RGNtBAAAAA1wcmljZUFzc2V0RGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAABBpZHhQcmljZUFzc2V0RGNtBAAAAApwb29sU3RhdHVzCQABkQAAAAIFAAAAA2NmZwUAAAANaWR4UG9vbFN0YXR1cwQAAAANcG9vbExQQmFsYW5jZQgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA+wAAAABBQAAAAlscEFzc2V0SWQJAAEsAAAAAgkAASwAAAACAgAAAAZBc3NldCAJAAJYAAAAAQUAAAAJbHBBc3NldElkAgAAAA4gZG9lc24ndCBleGlzdAAAAAhxdWFudGl0eQQAAAASYWNjQW10QXNzZXRCYWxhbmNlCQEAAAANZ2V0QWNjQmFsYW5jZQAAAAEFAAAADGFtQXNzZXRJZFN0cgQAAAAUYWNjUHJpY2VBc3NldEJhbGFuY2UJAQAAAA1nZXRBY2NCYWxhbmNlAAAAAQUAAAAMcHJBc3NldElkU3RyBAAAAA5hbXRBc3NldEFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAASYWNjQW10QXNzZXRCYWxhbmNlBQAAAAthbXRBc3NldERjbQQAAAAQcHJpY2VBc3NldEFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAAUYWNjUHJpY2VBc3NldEJhbGFuY2UFAAAADXByaWNlQXNzZXREY20EAAAAC2N1clByaWNlWDE4AwkAAAAAAAACBQAAAA1wb29sTFBCYWxhbmNlAAAAAAAAAAAABQAAAAp6ZXJvQmlnSW50CQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgUAAAAQcHJpY2VBc3NldEFtdFgxOAUAAAAOYW10QXNzZXRBbXRYMTgEAAAAD2luQW1Bc3NldEFtdFgxOAkBAAAABXRvWDE4AAAAAgUAAAAMaW5BbUFzc2V0QW10BQAAAAthbXRBc3NldERjbQQAAAAPaW5QckFzc2V0QW10WDE4CQABPAAAAAMFAAAAD2luQW1Bc3NldEFtdFgxOAUAAAALY3VyUHJpY2VYMTgFAAAAB3NjYWxlMTgEAAAADGluUHJBc3NldEFtdAkBAAAAB2Zyb21YMTgAAAACBQAAAA9pblByQXNzZXRBbXRYMTgFAAAADXByaWNlQXNzZXREY20EAAAABmVzdFB1dAkBAAAAFGVzdGltYXRlUHV0T3BlcmF0aW9uAAAACQIAAAAAAAAAAAAAB6EgBQAAAAxpbkFtQXNzZXRBbXQFAAAACWFtQXNzZXRJZAUAAAAMaW5QckFzc2V0QW10BQAAAAlwckFzc2V0SWQCAAAAAAYHBAAAAAljYWxjTHBBbXQIBQAAAAZlc3RQdXQAAAACXzEEAAAADGN1clByaWNlQ2FsYwgFAAAABmVzdFB1dAAAAAJfMwQAAAAJYW1CYWxhbmNlCAUAAAAGZXN0UHV0AAAAAl80BAAAAAlwckJhbGFuY2UIBQAAAAZlc3RQdXQAAAACXzUEAAAACmxwRW1pc3Npb24IBQAAAAZlc3RQdXQAAAACXzYJAAUUAAAAAgUAAAADbmlsCQAEuQAAAAIJAARMAAAAAgIAAAAQJWQlZCVkJWQlZCVkJWQlZAkABEwAAAACCQABpAAAAAEFAAAACWNhbGNMcEFtdAkABEwAAAACCQABpAAAAAEJAQAAAAdmcm9tWDE4AAAAAgUAAAALY3VyUHJpY2VYMTgFAAAABnNjYWxlOAkABEwAAAACCQABpAAAAAEFAAAACWFtQmFsYW5jZQkABEwAAAACCQABpAAAAAEFAAAACXByQmFsYW5jZQkABEwAAAACCQABpAAAAAEFAAAACmxwRW1pc3Npb24JAARMAAAAAgUAAAAKcG9vbFN0YXR1cwkABEwAAAACCQABpAAAAAEFAAAADGluQW1Bc3NldEFtdAkABEwAAAACCQABpAAAAAEFAAAADGluUHJBc3NldEFtdAUAAAADbmlsBQAAAANTRVAAAAABaQEAAAAfZXZhbHVhdGVQdXRCeVByaWNlQXNzZXRSRUFET05MWQAAAAEAAAAMaW5QckFzc2V0QW10BAAAAANjZmcJAQAAAA1nZXRQb29sQ29uZmlnAAAAAAQAAAAJbHBBc3NldElkCQACWQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAABBpZHhQb29sTFBBc3NldElkBAAAAAxhbUFzc2V0SWRTdHIJAAGRAAAAAgUAAAADY2ZnBQAAAA1pZHhBbXRBc3NldElkBAAAAAlhbUFzc2V0SWQJAAJZAAAAAQUAAAAMYW1Bc3NldElkU3RyBAAAAAxwckFzc2V0SWRTdHIJAAGRAAAAAgUAAAADY2ZnBQAAAA9pZHhQcmljZUFzc2V0SWQEAAAACXByQXNzZXRJZAkAAlkAAAABBQAAAAxwckFzc2V0SWRTdHIEAAAAC2FtdEFzc2V0RGNtCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAADY2ZnBQAAAA5pZHhBbXRBc3NldERjbQQAAAANcHJpY2VBc3NldERjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAAA2NmZwUAAAAQaWR4UHJpY2VBc3NldERjbQQAAAAKcG9vbFN0YXR1cwkAAZEAAAACBQAAAANjZmcFAAAADWlkeFBvb2xTdGF0dXMEAAAADXBvb2xMUEJhbGFuY2UICQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQUAAAAJbHBBc3NldElkCQABLAAAAAIJAAEsAAAAAgIAAAAGQXNzZXQgCQACWAAAAAEFAAAACWxwQXNzZXRJZAIAAAAOIGRvZXNuJ3QgZXhpc3QAAAAIcXVhbnRpdHkEAAAADGFtQmFsYW5jZVJhdwkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAxhbUFzc2V0SWRTdHIEAAAADHByQmFsYW5jZVJhdwkBAAAADWdldEFjY0JhbGFuY2UAAAABBQAAAAxwckFzc2V0SWRTdHIEAAAAD2FtQmFsYW5jZVJhd1gxOAkBAAAABXRvWDE4AAAAAgUAAAAMYW1CYWxhbmNlUmF3BQAAAAthbXRBc3NldERjbQQAAAAPcHJCYWxhbmNlUmF3WDE4CQEAAAAFdG9YMTgAAAACBQAAAAxwckJhbGFuY2VSYXcFAAAADXByaWNlQXNzZXREY20EAAAAC2N1clByaWNlWDE4AwkAAAAAAAACBQAAAA1wb29sTFBCYWxhbmNlAAAAAAAAAAAABQAAAAp6ZXJvQmlnSW50CQEAAAAPY2FsY1ByaWNlQmlnSW50AAAAAgUAAAAPcHJCYWxhbmNlUmF3WDE4BQAAAA9hbUJhbGFuY2VSYXdYMTgEAAAAD2lu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", "height": 1773236, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5eboxr9J6DV9Enb6Xi65gwVAcsVnUdhbjJmg9JXNjB72 Next: 8jqXcFEV6zmEWiJGpDPZZSPGZkKWQYmdTWR6nHo2adui Diff:
OldNewDifferences
9797 func Y () = "%s__factoryConfig"
9898
9999
100-func Z () = "%s%s__matcher__publicKey"
100+func Z (aa) = (("%s%s%s__" + aa) + "__mappings__poolContract2LpAsset")
101101
102102
103-func aa (ab) = (("%s%s%s__" + ab) + "__mappings__poolContract2LpAsset")
103+func ab (ac,ad) = (((("%d%d%s__" + ac) + "__") + ad) + "__config")
104104
105105
106-func ac (ad,ae) = (((("%d%d%s__" + ad) + "__") + ae) + "__config")
106+func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
107107
108108
109-func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
109+func ag () = "%s__shutdown"
110110
111111
112-func ah () = "%s__shutdown"
112+func ah (ai) = ("%s%s__poolWeight__" + ai)
113113
114114
115-func ai (aj) = ("%s%s__poolWeight__" + aj)
115+func aj (ak,al) = valueOrErrorMessage(getString(ak, al), makeString(["mandatory ", toString(ak), ".", al, " is not defined"], ""))
116116
117117
118-func ak (al,am,an) = throw(((((("order validation failed: orderValid=" + toString(al)) + " senderValid=") + toString(am)) + " matcherValid=") + toString(an)))
118+func am (ak,al) = valueOrErrorMessage(getInteger(ak, al), makeString(["mandatory ", toString(ak), ".", al, " is not defined"], ""))
119119
120120
121-func ao (ap,aq) = valueOrErrorMessage(getString(ap, aq), makeString(["mandatory ", toString(ap), ".", aq, " is not defined"], ""))
121+let an = addressFromStringValue(aj(this, L()))
122+
123+func ao () = valueOrElse(getBoolean(an, ag()), false)
122124
123125
124-func ar (ap,aq) = valueOrErrorMessage(getInteger(ap, aq), makeString(["mandatory ", toString(ap), ".", aq, " is not defined"], ""))
125-
126-
127-let as = addressFromStringValue(ao(this, L()))
128-
129-func at () = valueOrElse(getBoolean(as, ah()), false)
130-
131-
132-func au () = fromBase58String(ao(as, Z()))
133-
134-
135-func av () = {
136- let aw = ao(this, V())
137- let ax = ao(this, W())
138- let ae = ar(as, af(ax))
139- let ad = ar(as, af(aw))
140- split(ao(as, ac(toString(ad), toString(ae))), f)
126+func ap () = {
127+ let aq = aj(this, V())
128+ let ar = aj(this, W())
129+ let ad = am(an, ae(ar))
130+ let ac = am(an, ae(aq))
131+ split(aj(an, ab(toString(ac), toString(ad))), f)
141132 }
142133
143134
144-func ay () = split(ao(as, Y()), f)
135+func as () = split(aj(an, Y()), f)
145136
146137
147-func az (aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aA), toString(aB), toString(aC), toString(aD), toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ)], f)
138+func at (au,av,aw,ax,ay,az,aA,aB,aC,aD) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(au), toString(av), toString(aw), toString(ax), toString(ay), toString(az), toString(aA), toString(aB), toString(aC), toString(aD)], f)
148139
149140
150-func aK (aL,aM,aN,aD,aG,aH) = makeString(["%d%d%d%d%d%d", toString(aL), toString(aM), toString(aN), toString(aD), toString(aG), toString(aH)], f)
141+func aE (aF,aG,aH,ax,aA,aB) = makeString(["%d%d%d%d%d%d", toString(aF), toString(aG), toString(aH), toString(ax), toString(aA), toString(aB)], f)
151142
152143
153-func aO (aP) = if ((aP == "WAVES"))
144+func aI (aJ) = if ((aJ == "WAVES"))
154145 then wavesBalance(this).available
155- else assetBalance(this, fromBase58String(aP))
146+ else assetBalance(this, fromBase58String(aJ))
156147
157148
158-func aQ (aR,aS) = fraction(aR, d, aS)
149+func aK (aL,aM) = fraction(aL, d, aM)
159150
160151
161-func aT (aU,aV,aW,aX) = {
162- let aY = A(aW, aU)
163- let aZ = A(aX, aV)
164- aQ(aZ, aY)
152+func aN (aO,aP,aQ,aR) = {
153+ let aS = A(aQ, aO)
154+ let aT = A(aR, aP)
155+ aK(aT, aS)
165156 }
166157
167158
168-func ba (aW,aX,bb) = {
169- let bc = av()
170- let bd = parseIntValue(bc[q])
171- let be = parseIntValue(bc[r])
172- let bf = aT(bd, be, aW, aX)
173- let aS = A(aW, bd)
174- let aR = A(aX, be)
175- let bg = A(bb, b)
176- let bh = aQ(aS, bg)
177- let bi = aQ(aR, bg)
178-[bf, bh, bi]
159+func aU (aQ,aR,aV) = {
160+ let aW = ap()
161+ let aX = parseIntValue(aW[q])
162+ let aY = parseIntValue(aW[r])
163+ let aZ = aN(aX, aY, aQ, aR)
164+ let aM = A(aQ, aX)
165+ let aL = A(aR, aY)
166+ let ba = A(aV, b)
167+ let bb = aK(aM, ba)
168+ let bc = aK(aL, ba)
169+[aZ, bb, bc]
179170 }
180171
181172
182-func bj (aW,aX,bb) = {
183- let bk = ba(aW, aX, bb)
184-[D(bk[0], b), D(bk[1], b), D(bk[2], b)]
173+func bd (aQ,aR,aV) = {
174+ let be = aU(aQ, aR, aV)
175+[D(be[0], b), D(be[1], b), D(be[2], b)]
185176 }
186177
187178
188-func bl (bm,bn,bo,S) = {
189- let bc = av()
190- let bp = bc[n]
191- let bq = bc[o]
192- let br = bc[p]
193- let aU = parseIntValue(bc[q])
194- let aV = parseIntValue(bc[r])
195- let bs = bc[m]
196- let bt = valueOrErrorMessage(assetInfo(fromBase58String(bp)), (("Asset " + bp) + " doesn't exist")).quantity
197- if ((bp != bn))
179+func bf (bg,bh,bi,S) = {
180+ let aW = ap()
181+ let bj = aW[n]
182+ let bk = aW[o]
183+ let bl = aW[p]
184+ let aO = parseIntValue(aW[q])
185+ let aP = parseIntValue(aW[r])
186+ let bm = aW[m]
187+ let bn = valueOrErrorMessage(assetInfo(fromBase58String(bj)), (("Asset " + bj) + " doesn't exist")).quantity
188+ if ((bj != bh))
198189 then throw("Invalid asset passed.")
199190 else {
200- let bu = aO(bq)
201- let bv = A(bu, aU)
202- let bw = aO(br)
203- let bx = A(bw, aV)
204- let by = aQ(bx, bv)
205- let bz = D(by, b)
206- let bA = A(bo, b)
207- let bB = A(bt, b)
208- let bC = fraction(bv, bA, bB)
209- let bD = fraction(bx, bA, bB)
210- let bE = D(bC, aU)
211- let bF = D(bD, aV)
212- let bG = if ((bm == ""))
191+ let bo = aI(bk)
192+ let bp = A(bo, aO)
193+ let bq = aI(bl)
194+ let br = A(bq, aP)
195+ let bs = aK(br, bp)
196+ let bt = D(bs, b)
197+ let bu = A(bi, b)
198+ let bv = A(bn, b)
199+ let bw = fraction(bp, bu, bv)
200+ let bx = fraction(br, bu, bv)
201+ let by = D(bw, aO)
202+ let bz = D(bx, aP)
203+ let bA = if ((bg == ""))
213204 then nil
214- else [ScriptTransfer(S, bE, if ((bq == "WAVES"))
205+ else [ScriptTransfer(S, by, if ((bk == "WAVES"))
215206 then unit
216- else fromBase58String(bq)), ScriptTransfer(S, bF, if ((br == "WAVES"))
207+ else fromBase58String(bk)), ScriptTransfer(S, bz, if ((bl == "WAVES"))
217208 then unit
218- else fromBase58String(br)), StringEntry(U(toString(S), bm), aK(bE, bF, bo, bz, height, lastBlock.timestamp)), IntegerEntry(N(), bz), IntegerEntry(O(height, lastBlock.timestamp), bz)]
219- $Tuple10(bE, bF, bq, br, bu, bw, bt, by, bs, bG)
209+ else fromBase58String(bl)), StringEntry(U(toString(S), bg), aE(by, bz, bi, bt, height, lastBlock.timestamp)), IntegerEntry(N(), bt), IntegerEntry(O(height, lastBlock.timestamp), bt)]
210+ $Tuple10(by, bz, bk, bl, bo, bq, bn, bs, bm, bA)
220211 }
221212 }
222213
223214
224-func bH (bm,bI,bJ,bK,bL,bM,S,bN,bO) = {
225- let bc = av()
226- let bp = fromBase58String(bc[n])
227- let bP = bc[o]
228- let bQ = bc[p]
229- let bR = bc[s]
230- let bS = bc[t]
231- let bd = parseIntValue(bc[q])
232- let be = parseIntValue(bc[r])
233- let bs = bc[m]
234- let bt = valueOrErrorMessage(assetInfo(bp), (("Asset " + toBase58String(bp)) + " doesn't exist")).quantity
235- let bT = toBase58String(valueOrElse(bK, fromBase58String("WAVES")))
236- let bU = toBase58String(valueOrElse(bM, fromBase58String("WAVES")))
237- if (if ((bP != bT))
215+func bB (bg,bC,bD,bE,bF,bG,S,bH,bI) = {
216+ let aW = ap()
217+ let bj = fromBase58String(aW[n])
218+ let bJ = aW[o]
219+ let bK = aW[p]
220+ let bL = aW[s]
221+ let bM = aW[t]
222+ let aX = parseIntValue(aW[q])
223+ let aY = parseIntValue(aW[r])
224+ let bm = aW[m]
225+ let bn = valueOrErrorMessage(assetInfo(bj), (("Asset " + toBase58String(bj)) + " doesn't exist")).quantity
226+ let bN = toBase58String(valueOrElse(bE, fromBase58String("WAVES")))
227+ let bO = toBase58String(valueOrElse(bG, fromBase58String("WAVES")))
228+ if (if ((bJ != bN))
238229 then true
239- else (bQ != bU))
230+ else (bK != bO))
240231 then throw("Invalid amt or price asset passed.")
241232 else {
242- let bu = if (bN)
243- then aO(bP)
244- else (aO(bP) - bJ)
245- let bw = if (bN)
246- then aO(bQ)
247- else (aO(bQ) - bL)
248- let bV = A(bJ, bd)
249- let bW = A(bL, be)
250- let bX = aQ(bW, bV)
251- let bv = A(bu, bd)
252- let bx = A(bw, be)
253- let bY = if ((bt == 0))
233+ let bo = if (bH)
234+ then aI(bJ)
235+ else (aI(bJ) - bD)
236+ let bq = if (bH)
237+ then aI(bK)
238+ else (aI(bK) - bF)
239+ let bP = A(bD, aX)
240+ let bQ = A(bF, aY)
241+ let bR = aK(bQ, bP)
242+ let bp = A(bo, aX)
243+ let br = A(bq, aY)
244+ let bS = if ((bn == 0))
254245 then {
255- let by = e
256- let bZ = e
257- let bg = pow((bV * bW), 0, toBigInt(5), 1, 0, DOWN)
258- $Tuple5(D(bg, b), D(bV, bd), D(bW, be), aQ((bx + bW), (bv + bV)), bZ)
246+ let bs = e
247+ let bT = e
248+ let ba = pow((bP * bQ), 0, toBigInt(5), 1, 0, DOWN)
249+ $Tuple5(D(ba, b), D(bP, aX), D(bQ, aY), aK((br + bQ), (bp + bP)), bT)
259250 }
260251 else {
261- let by = aQ(bx, bv)
262- let bZ = fraction(K((by - bX)), d, by)
263- let ca = A(bI, b)
264- if (if ((by != e))
265- then (bZ > ca)
252+ let bs = aK(br, bp)
253+ let bT = fraction(K((bs - bR)), d, bs)
254+ let bU = A(bC, b)
255+ if (if ((bs != e))
256+ then (bT > bU)
266257 else false)
267- then throw(((("Price slippage " + toString(bZ)) + " exceeded the passed limit of ") + toString(ca)))
258+ then throw(((("Price slippage " + toString(bT)) + " exceeded the passed limit of ") + toString(bU)))
268259 else {
269- let bB = A(bt, b)
270- let cb = fraction(bV, by, d)
271- let cc = fraction(bW, d, by)
272- let cd = if ((cb > bW))
273- then $Tuple2(cc, bW)
274- else $Tuple2(bV, cb)
275- let ce = cd._1
276- let cf = cd._2
277- let bg = fraction(bB, cf, bx)
278- $Tuple5(D(bg, b), D(ce, bd), D(cf, be), by, bZ)
260+ let bv = A(bn, b)
261+ let bV = fraction(bP, bs, d)
262+ let bW = fraction(bQ, d, bs)
263+ let bX = if ((bV > bQ))
264+ then $Tuple2(bW, bQ)
265+ else $Tuple2(bP, bV)
266+ let bY = bX._1
267+ let bZ = bX._2
268+ let ba = fraction(bv, bZ, br)
269+ $Tuple5(D(ba, b), D(bY, aX), D(bZ, aY), bs, bT)
279270 }
280271 }
281- let cg = bY._1
282- let ch = bY._2
283- let ci = bY._3
284- let bz = D(bY._4, b)
285- let cj = D(bY._5, b)
286- if ((0 >= cg))
272+ let ca = bS._1
273+ let cb = bS._2
274+ let cc = bS._3
275+ let bt = D(bS._4, b)
276+ let cd = D(bS._5, b)
277+ if ((0 >= ca))
287278 then throw("Invalid calculations. LP calculated is less than zero.")
288279 else {
289- let ck = if (!(bO))
280+ let ce = if (!(bI))
290281 then 0
291- else cg
292- let cl = (bJ - ch)
293- let cm = (bL - ci)
294- let cn = [IntegerEntry(N(), bz), IntegerEntry(O(height, lastBlock.timestamp), bz), StringEntry(R(S, bm), az(ch, ci, ck, bz, bI, cj, height, lastBlock.timestamp, cl, cm))]
295- $Tuple13(cg, ck, bz, bu, bw, bt, bp, bs, cn, cl, cm, bK, bM)
282+ else ca
283+ let cf = (bD - cb)
284+ let cg = (bF - cc)
285+ let ch = [IntegerEntry(N(), bt), IntegerEntry(O(height, lastBlock.timestamp), bt), StringEntry(R(S, bg), at(cb, cc, ce, bt, bC, cd, height, lastBlock.timestamp, cf, cg))]
286+ $Tuple13(ca, ce, bt, bo, bq, bn, bj, bm, ch, cf, cg, bE, bG)
296287 }
297288 }
298289 }
299290
300291
301-func co (cp) = {
302- let bc = av()
303- let cq = bc[o]
304- let cr = bc[p]
305- let bs = parseIntValue(bc[m])
306- let bd = parseIntValue(bc[q])
307- let be = parseIntValue(bc[r])
308- let cs = aO(cq)
309- let ct = aO(cr)
310- let by = if ((cp.orderType == Buy))
311- then aT(bd, be, (cs + cp.amount), ct)
312- else aT(bd, be, (cs - cp.amount), ct)
313- let bz = D(by, b)
314- if (if (if (at())
292+func ci (cj) = {
293+ let aW = ap()
294+ let ck = aW[o]
295+ let cl = aW[p]
296+ let bm = parseIntValue(aW[m])
297+ let aX = parseIntValue(aW[q])
298+ let aY = parseIntValue(aW[r])
299+ let cm = aI(ck)
300+ let cn = aI(cl)
301+ let bs = if ((cj.orderType == Buy))
302+ then aN(aX, aY, (cm + cj.amount), cn)
303+ else aN(aX, aY, (cm - cj.amount), cn)
304+ let bt = D(bs, b)
305+ if (if (if (ao())
315306 then true
316- else (bs == j))
307+ else (bm == j))
317308 then true
318- else (bs == k))
309+ else (bm == k))
319310 then throw("Exchange operations disabled")
320311 else {
321- let cu = cp.assetPair.amountAsset
322- let cv = if ((cu == unit))
312+ let co = cj.assetPair.amountAsset
313+ let cp = if ((co == unit))
323314 then "WAVES"
324- else toBase58String(value(cu))
325- let cw = cp.assetPair.priceAsset
326- let cx = if ((cw == unit))
315+ else toBase58String(value(co))
316+ let cq = cj.assetPair.priceAsset
317+ let cr = if ((cq == unit))
327318 then "WAVES"
328- else toBase58String(value(cw))
329- if (if ((cv != cq))
319+ else toBase58String(value(cq))
320+ if (if ((cp != ck))
330321 then true
331- else (cx != cr))
322+ else (cr != cl))
332323 then throw("Wrong order assets.")
333324 else {
334- let cy = cp.price
335- let cz = fraction(b, be, bd)
336- let cA = G(cy, b, cz)
337- let cB = if ((cp.orderType == Buy))
338- then (bz >= cA)
339- else (cA >= bz)
325+ let cs = cj.price
326+ let ct = fraction(b, aY, aX)
327+ let cu = G(cs, b, ct)
328+ let cv = if ((cj.orderType == Buy))
329+ then (bt >= cu)
330+ else (cu >= bt)
340331 true
341332 }
342333 }
343334 }
344335
345336
346-func cC (cD) = if ((size(cD.payments) != 1))
337+func cw (cx) = if ((size(cx.payments) != 1))
347338 then throw("exactly 1 payment is expected")
348339 else {
349- let cE = value(cD.payments[0])
350- let bn = value(cE.assetId)
351- let cF = cE.amount
352- let bY = bl(toBase58String(cD.transactionId), toBase58String(bn), cF, cD.caller)
353- let bE = bY._1
354- let bF = bY._2
355- let bs = parseIntValue(bY._9)
356- let bG = bY._10
357- if (if (at())
340+ let cy = value(cx.payments[0])
341+ let bh = value(cy.assetId)
342+ let cz = cy.amount
343+ let bS = bf(toBase58String(cx.transactionId), toBase58String(bh), cz, cx.caller)
344+ let by = bS._1
345+ let bz = bS._2
346+ let bm = parseIntValue(bS._9)
347+ let bA = bS._10
348+ if (if (ao())
358349 then true
359- else (bs == k))
360- then throw(("Get operation is blocked by admin. Status = " + toString(bs)))
361- else $Tuple5(bE, bF, cF, bn, bG)
350+ else (bm == k))
351+ then throw(("Get operation is blocked by admin. Status = " + toString(bm)))
352+ else $Tuple5(by, bz, cz, bh, bA)
362353 }
363354
364355
365-func cG (cD,bI,bO) = if ((size(cD.payments) != 2))
356+func cA (cx,bC,bI) = if ((size(cx.payments) != 2))
366357 then throw("exactly 2 payments are expected")
367358 else {
368- let cH = value(cD.payments[0])
369- let cI = value(cD.payments[1])
370- let cJ = bH(toBase58String(cD.transactionId), bI, cH.amount, cH.assetId, cI.amount, cI.assetId, toString(cD.caller), false, bO)
371- let bs = parseIntValue(cJ._8)
372- if (if (if (at())
359+ let cB = value(cx.payments[0])
360+ let cC = value(cx.payments[1])
361+ let cD = bB(toBase58String(cx.transactionId), bC, cB.amount, cB.assetId, cC.amount, cC.assetId, toString(cx.caller), false, bI)
362+ let bm = parseIntValue(cD._8)
363+ if (if (if (ao())
373364 then true
374- else (bs == i))
365+ else (bm == i))
375366 then true
376- else (bs == k))
377- then throw(("Put operation is blocked by admin. Status = " + toString(bs)))
378- else cJ
367+ else (bm == k))
368+ then throw(("Put operation is blocked by admin. Status = " + toString(bm)))
369+ else cD
379370 }
380371
381372
382-@Callable(cD)
383-func constructor (as,cK) = if ((cD.caller != this))
373+@Callable(cx)
374+func constructor (an,cE) = if ((cx.caller != this))
384375 then throw("permissions denied")
385- else [StringEntry(L(), as), StringEntry(M(), cK)]
376+ else [StringEntry(L(), an), StringEntry(M(), cE)]
386377
387378
388379
389-@Callable(cD)
390-func put (bI,cL) = {
391- let cM = ay()
392- let cN = valueOrErrorMessage(addressFromString(cM[y]), "Error. Incorrect staking address.")
393- let cO = valueOrErrorMessage(addressFromString(cM[z]), "Error. Incorrect slippage contract address.")
394- if ((0 > bI))
380+@Callable(cx)
381+func put (bC,cF) = {
382+ let cG = as()
383+ let cH = valueOrErrorMessage(addressFromString(cG[y]), "Error. Incorrect staking address.")
384+ let cI = valueOrErrorMessage(addressFromString(cG[z]), "Error. Incorrect slippage contract address.")
385+ if ((0 > bC))
395386 then throw("Invalid slippageTolerance passed")
396387 else {
397- let cJ = cG(cD, bI, true)
398- let ck = cJ._2
399- let bp = cJ._7
400- let bG = cJ._9
401- let cl = cJ._10
402- let cm = cJ._11
403- let cP = cJ._12
404- let cQ = cJ._13
405- let cR = invoke(as, "emit", [ck], nil)
406- if ((cR == cR))
388+ let cD = cA(cx, bC, true)
389+ let ce = cD._2
390+ let bj = cD._7
391+ let bA = cD._9
392+ let cf = cD._10
393+ let cg = cD._11
394+ let cJ = cD._12
395+ let cK = cD._13
396+ let cL = invoke(an, "emit", [ce], nil)
397+ if ((cL == cL))
407398 then {
408- let cS = if ((cl > 0))
409- then invoke(cO, "put", nil, [AttachedPayment(cP, cl)])
399+ let cM = if ((cf > 0))
400+ then invoke(cI, "put", nil, [AttachedPayment(cJ, cf)])
410401 else nil
411- if ((cS == cS))
402+ if ((cM == cM))
412403 then {
413- let cT = if ((cm > 0))
414- then invoke(cO, "put", nil, [AttachedPayment(cQ, cm)])
404+ let cN = if ((cg > 0))
405+ then invoke(cI, "put", nil, [AttachedPayment(cK, cg)])
415406 else nil
416- if ((cT == cT))
407+ if ((cN == cN))
417408 then {
418- let cU = if (cL)
409+ let cO = if (cF)
419410 then {
420- let cV = invoke(cN, "stake", nil, [AttachedPayment(bp, ck)])
421- if ((cV == cV))
411+ let cP = invoke(cH, "stake", nil, [AttachedPayment(bj, ce)])
412+ if ((cP == cP))
422413 then nil
423414 else throw("Strict value is not equal to itself.")
424415 }
425- else [ScriptTransfer(cD.caller, ck, bp)]
426- (bG ++ cU)
416+ else [ScriptTransfer(cx.caller, ce, bj)]
417+ (bA ++ cO)
427418 }
428419 else throw("Strict value is not equal to itself.")
429420 }
435426
436427
437428
438-@Callable(cD)
439-func putForFree (cW) = if ((0 > cW))
429+@Callable(cx)
430+func putForFree (cQ) = if ((0 > cQ))
440431 then throw("Invalid value passed")
441432 else {
442- let cJ = cG(cD, cW, false)
443- cJ._9
433+ let cD = cA(cx, cQ, false)
434+ cD._9
444435 }
445436
446437
447438
448-@Callable(cD)
439+@Callable(cx)
449440 func get () = {
450- let bY = cC(cD)
451- let cX = bY._1
452- let bF = bY._2
453- let cF = bY._3
454- let bn = bY._4
455- let bG = bY._5
456- let cY = invoke(as, "burn", [cF], [AttachedPayment(bn, cF)])
457- if ((cY == cY))
458- then bG
441+ let bS = cw(cx)
442+ let cR = bS._1
443+ let bz = bS._2
444+ let cz = bS._3
445+ let bh = bS._4
446+ let bA = bS._5
447+ let cS = invoke(an, "burn", [cz], [AttachedPayment(bh, cz)])
448+ if ((cS == cS))
449+ then bA
459450 else throw("Strict value is not equal to itself.")
460451 }
461452
462453
463454
464-@Callable(cD)
465-func getNoLess (cZ,da) = {
466- let bY = cC(cD)
467- let bE = bY._1
468- let bF = bY._2
469- let cF = bY._3
470- let bn = bY._4
471- let bG = bY._5
472- if ((cZ > bE))
473- then throw(((("noLessThenAmtAsset failed: " + toString(bE)) + " < ") + toString(cZ)))
474- else if ((da > bF))
475- then throw(((("noLessThenPriceAsset failed: " + toString(bF)) + " < ") + toString(da)))
455+@Callable(cx)
456+func getNoLess (cT,cU) = {
457+ let bS = cw(cx)
458+ let by = bS._1
459+ let bz = bS._2
460+ let cz = bS._3
461+ let bh = bS._4
462+ let bA = bS._5
463+ if ((cT > by))
464+ then throw(((("noLessThenAmtAsset failed: " + toString(by)) + " < ") + toString(cT)))
465+ else if ((cU > bz))
466+ then throw(((("noLessThenPriceAsset failed: " + toString(bz)) + " < ") + toString(cU)))
476467 else {
477- let cY = invoke(as, "burn", [cF], [AttachedPayment(bn, cF)])
478- if ((cY == cY))
479- then bG
468+ let cS = invoke(an, "burn", [cz], [AttachedPayment(bh, cz)])
469+ if ((cS == cS))
470+ then bA
480471 else throw("Strict value is not equal to itself.")
481472 }
482473 }
483474
484475
485476
486-@Callable(cD)
487-func activate (db,dc) = if ((toString(cD.caller) != toString(as)))
477+@Callable(cx)
478+func activate (cV,cW) = if ((toString(cx.caller) != toString(an)))
488479 then throw("permissions denied")
489- else $Tuple2([StringEntry(V(), db), StringEntry(W(), dc)], "success")
480+ else $Tuple2([StringEntry(V(), cV), StringEntry(W(), cW)], "success")
490481
491482
492483
493-@Callable(cD)
494-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, av())
484+@Callable(cx)
485+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ap())
495486
496487
497488
498-@Callable(cD)
499-func getAccBalanceWrapperREADONLY (aP) = $Tuple2(nil, aO(aP))
489+@Callable(cx)
490+func getAccBalanceWrapperREADONLY (aJ) = $Tuple2(nil, aI(aJ))
500491
501492
502493
503-@Callable(cD)
504-func calcPricesWrapperREADONLY (aW,aX,bb) = {
505- let bk = ba(aW, aX, bb)
506- $Tuple2(nil, [toString(bk[0]), toString(bk[1]), toString(bk[2])])
494+@Callable(cx)
495+func calcPricesWrapperREADONLY (aQ,aR,aV) = {
496+ let be = aU(aQ, aR, aV)
497+ $Tuple2(nil, [toString(be[0]), toString(be[1]), toString(be[2])])
507498 }
508499
509500
510501
511-@Callable(cD)
502+@Callable(cx)
512503 func toX18WrapperREADONLY (B,C) = $Tuple2(nil, toString(A(B, C)))
513504
514505
515506
516-@Callable(cD)
507+@Callable(cx)
517508 func fromX18WrapperREADONLY (E,F) = $Tuple2(nil, D(parseBigIntValue(E), F))
518509
519510
520511
521-@Callable(cD)
522-func calcPriceBigIntWrapperREADONLY (aR,aS) = $Tuple2(nil, toString(aQ(parseBigIntValue(aR), parseBigIntValue(aS))))
512+@Callable(cx)
513+func calcPriceBigIntWrapperREADONLY (aL,aM) = $Tuple2(nil, toString(aK(parseBigIntValue(aL), parseBigIntValue(aM))))
523514
524515
525516
526-@Callable(cD)
527-func estimatePutOperationWrapperREADONLY (bm,bI,bJ,bK,bL,bM,S,bN,bO) = {
528- let dd = bH(bm, bI, bJ, bK, bL, bM, S, bN, bO)
529- let de = dd
530- let cg = de._1
531- let ck = de._2
532- let bz = de._3
533- let bu = de._4
534- let bw = de._5
535- let bt = de._6
536- let bp = de._7
537- let bs = de._8
538- let cn = de._9
539- let cl = de._10
540- let cm = de._11
541- let df = de._12
542- let dg = de._13
543- $Tuple2(nil, $Tuple13(cg, ck, toString(bz), bu, bw, bt, bp, bs, cn, cl, cm, df, dg))
517+@Callable(cx)
518+func estimatePutOperationWrapperREADONLY (bg,bC,bD,bE,bF,bG,S,bH,bI) = {
519+ let cX = bB(bg, bC, bD, bE, bF, bG, S, bH, bI)
520+ let cY = cX
521+ let ca = cY._1
522+ let ce = cY._2
523+ let bt = cY._3
524+ let bo = cY._4
525+ let bq = cY._5
526+ let bn = cY._6
527+ let bj = cY._7
528+ let bm = cY._8
529+ let ch = cY._9
530+ let cf = cY._10
531+ let cg = cY._11
532+ let cZ = cY._12
533+ let da = cY._13
534+ $Tuple2(nil, $Tuple13(ca, ce, bt, bo, bq, bn, bj, bm, ch, cf, cg, cZ, da))
544535 }
545536
546537
547538
548-@Callable(cD)
549-func estimateGetOperationWrapperREADONLY (bm,bn,bo,S) = {
550- let dd = bl(bm, bn, bo, addressFromStringValue(S))
551- let dh = dd
552- let bE = dh._1
553- let bF = dh._2
554- let bq = dh._3
555- let br = dh._4
556- let bu = dh._5
557- let bw = dh._6
558- let bt = dh._7
559- let by = dh._8
560- let bs = dh._9
561- let bG = dh._10
562- $Tuple2(nil, $Tuple10(bE, bF, bq, br, bu, bw, bt, toString(by), bs, bG))
539+@Callable(cx)
540+func estimateGetOperationWrapperREADONLY (bg,bh,bi,S) = {
541+ let cX = bf(bg, bh, bi, addressFromStringValue(S))
542+ let db = cX
543+ let by = db._1
544+ let bz = db._2
545+ let bk = db._3
546+ let bl = db._4
547+ let bo = db._5
548+ let bq = db._6
549+ let bn = db._7
550+ let bs = db._8
551+ let bm = db._9
552+ let bA = db._10
553+ $Tuple2(nil, $Tuple10(by, bz, bk, bl, bo, bq, bn, toString(bs), bm, bA))
563554 }
564555
565556
566557
567-@Callable(cD)
558+@Callable(cx)
568559 func statsREADONLY () = {
569- let bc = av()
570- let bp = fromBase58String(bc[n])
571- let cq = bc[o]
572- let cr = bc[p]
573- let bR = bc[s]
574- let bS = bc[t]
575- let bd = parseIntValue(bc[q])
576- let be = parseIntValue(bc[r])
577- let di = valueOrErrorMessage(assetInfo(bp), (("Asset " + toBase58String(bp)) + " doesn't exist")).quantity
578- let cs = aO(cq)
579- let ct = aO(cr)
580- let dj = ba(cs, ct, di)
581- let bz = 0
582- let dk = D(dj[1], b)
583- let dl = D(dj[2], b)
584- let dm = value(getInteger(as, ai(toString(this))))
585- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cs), toString(ct), toString(di), toString(bz), toString(dk), toString(dl), toString(dm)], f))
560+ let aW = ap()
561+ let bj = fromBase58String(aW[n])
562+ let ck = aW[o]
563+ let cl = aW[p]
564+ let bL = aW[s]
565+ let bM = aW[t]
566+ let aX = parseIntValue(aW[q])
567+ let aY = parseIntValue(aW[r])
568+ let dc = valueOrErrorMessage(assetInfo(bj), (("Asset " + toBase58String(bj)) + " doesn't exist")).quantity
569+ let cm = aI(ck)
570+ let cn = aI(cl)
571+ let dd = aU(cm, cn, dc)
572+ let bt = 0
573+ let de = D(dd[1], b)
574+ let df = D(dd[2], b)
575+ let dg = value(getInteger(an, ah(toString(this))))
576+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cm), toString(cn), toString(dc), toString(bt), toString(de), toString(df), toString(dg)], f))
586577 }
587578
588579
589580
590-@Callable(cD)
591-func evaluatePutByAmountAssetREADONLY (bJ) = {
592- let bc = av()
593- let bp = fromBase58String(bc[n])
594- let bP = bc[o]
595- let bq = fromBase58String(bP)
596- let bQ = bc[p]
597- let br = fromBase58String(bQ)
598- let bd = parseIntValue(bc[q])
599- let be = parseIntValue(bc[r])
600- let bs = bc[m]
601- let di = valueOrErrorMessage(assetInfo(bp), (("Asset " + toBase58String(bp)) + " doesn't exist")).quantity
602- let cs = aO(bP)
603- let ct = aO(bQ)
604- let aY = A(cs, bd)
605- let aZ = A(ct, be)
606- let by = if ((di == 0))
581+@Callable(cx)
582+func evaluatePutByAmountAssetREADONLY (bD) = {
583+ let aW = ap()
584+ let bj = fromBase58String(aW[n])
585+ let bJ = aW[o]
586+ let bk = fromBase58String(bJ)
587+ let bK = aW[p]
588+ let bl = fromBase58String(bK)
589+ let aX = parseIntValue(aW[q])
590+ let aY = parseIntValue(aW[r])
591+ let bm = aW[m]
592+ let dc = valueOrErrorMessage(assetInfo(bj), (("Asset " + toBase58String(bj)) + " doesn't exist")).quantity
593+ let cm = aI(bJ)
594+ let cn = aI(bK)
595+ let aS = A(cm, aX)
596+ let aT = A(cn, aY)
597+ let bs = if ((dc == 0))
607598 then e
608- else aQ(aZ, aY)
609- let bV = A(bJ, bd)
610- let bW = fraction(bV, by, d)
611- let bL = D(bW, be)
612- let cJ = bH("", 500000, bJ, bq, bL, br, "", true, false)
613- let cg = cJ._1
614- let dn = cJ._3
615- let bu = cJ._4
616- let bw = cJ._5
617- let bt = cJ._6
618- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cg), toString(D(by, b)), toString(bu), toString(bw), toString(bt), bs, toString(bJ), toString(bL)], f))
599+ else aK(aT, aS)
600+ let bP = A(bD, aX)
601+ let bQ = fraction(bP, bs, d)
602+ let bF = D(bQ, aY)
603+ let cD = bB("", 500000, bD, bk, bF, bl, "", true, false)
604+ let ca = cD._1
605+ let dh = cD._3
606+ let bo = cD._4
607+ let bq = cD._5
608+ let bn = cD._6
609+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ca), toString(D(bs, b)), toString(bo), toString(bq), toString(bn), bm, toString(bD), toString(bF)], f))
619610 }
620611
621612
622613
623-@Callable(cD)
624-func evaluatePutByPriceAssetREADONLY (bL) = {
625- let bc = av()
626- let bp = fromBase58String(bc[n])
627- let bP = bc[o]
628- let bq = fromBase58String(bP)
629- let bQ = bc[p]
630- let br = fromBase58String(bQ)
631- let bd = parseIntValue(bc[q])
632- let be = parseIntValue(bc[r])
633- let bs = bc[m]
634- let di = valueOrErrorMessage(assetInfo(bp), (("Asset " + toBase58String(bp)) + " doesn't exist")).quantity
635- let do = aO(bP)
636- let dp = aO(bQ)
637- let dq = A(do, bd)
638- let dr = A(dp, be)
639- let by = if ((di == 0))
614+@Callable(cx)
615+func evaluatePutByPriceAssetREADONLY (bF) = {
616+ let aW = ap()
617+ let bj = fromBase58String(aW[n])
618+ let bJ = aW[o]
619+ let bk = fromBase58String(bJ)
620+ let bK = aW[p]
621+ let bl = fromBase58String(bK)
622+ let aX = parseIntValue(aW[q])
623+ let aY = parseIntValue(aW[r])
624+ let bm = aW[m]
625+ let dc = valueOrErrorMessage(assetInfo(bj), (("Asset " + toBase58String(bj)) + " doesn't exist")).quantity
626+ let di = aI(bJ)
627+ let dj = aI(bK)
628+ let dk = A(di, aX)
629+ let dl = A(dj, aY)
630+ let bs = if ((dc == 0))
640631 then e
641- else aQ(dr, dq)
642- let bW = A(bL, be)
643- let bV = fraction(bW, d, by)
644- let bJ = D(bV, bd)
645- let cJ = bH("", 500000, bJ, bq, bL, br, "", true, false)
646- let cg = cJ._1
647- let dn = cJ._3
648- let bu = cJ._4
649- let bw = cJ._5
650- let bt = cJ._6
651- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cg), toString(D(by, b)), toString(bu), toString(bw), toString(bt), bs, toString(bJ), toString(bL)], f))
632+ else aK(dl, dk)
633+ let bQ = A(bF, aY)
634+ let bP = fraction(bQ, d, bs)
635+ let bD = D(bP, aX)
636+ let cD = bB("", 500000, bD, bk, bF, bl, "", true, false)
637+ let ca = cD._1
638+ let dh = cD._3
639+ let bo = cD._4
640+ let bq = cD._5
641+ let bn = cD._6
642+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ca), toString(D(bs, b)), toString(bo), toString(bq), toString(bn), bm, toString(bD), toString(bF)], f))
652643 }
653644
654645
655646
656-@Callable(cD)
657-func evaluateGetREADONLY (ds,dt) = {
658- let bY = bl("", ds, dt, this)
659- let bE = bY._1
660- let bF = bY._2
661- let bu = bY._5
662- let bw = bY._6
663- let bt = bY._7
664- let bz = bY._8
665- let bs = parseIntValue(bY._9)
666- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bE), toString(bF), toString(bu), toString(bw), toString(bt), toString(bz), toString(bs)], f))
647+@Callable(cx)
648+func evaluateGetREADONLY (dm,dn) = {
649+ let bS = bf("", dm, dn, this)
650+ let by = bS._1
651+ let bz = bS._2
652+ let bo = bS._5
653+ let bq = bS._6
654+ let bn = bS._7
655+ let bt = bS._8
656+ let bm = parseIntValue(bS._9)
657+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(by), toString(bz), toString(bo), toString(bq), toString(bn), toString(bt), toString(bm)], f))
667658 }
668659
669660
670-@Verifier(du)
671-func dv () = {
672- let dw = du
673- if ($isInstanceOf(dw, "Order"))
661+@Verifier(do)
662+func dp () = {
663+ let dq = do
664+ if ($isInstanceOf(dq, "Order"))
674665 then {
675- let cp = dw
676- let dx = au()
677- let al = co(cp)
678- let am = sigVerify(cp.bodyBytes, cp.proofs[0], cp.senderPublicKey)
679- let an = sigVerify(cp.bodyBytes, cp.proofs[1], dx)
680- if (if (if (al)
681- then am
682- else false)
683- then an
684- else false)
685- then true
686- else ak(al, am, an)
666+ let cj = dq
667+ if (ci(cj))
668+ then sigVerify(cj.bodyBytes, cj.proofs[0], cj.senderPublicKey)
669+ else false
687670 }
688671 else {
689- let dy = valueOrElse(getString(this, M()), g)
690- if ((dy == g))
691- then sigVerify(du.bodyBytes, du.proofs[0], du.senderPublicKey)
692- else sigVerify(du.bodyBytes, du.proofs[0], fromBase58String(dy))
672+ let dr = valueOrElse(getString(this, M()), g)
673+ if ((dr == g))
674+ then sigVerify(do.bodyBytes, do.proofs[0], do.senderPublicKey)
675+ else sigVerify(do.bodyBytes, do.proofs[0], fromBase58String(dr))
693676 }
694677 }
695678
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 8
55
66 let b = 100000000
77
88 let c = toBigInt(100000000)
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = toBigInt(0)
1313
1414 let f = "__"
1515
1616 let g = ""
1717
1818 let h = 1
1919
2020 let i = 2
2121
2222 let j = 3
2323
2424 let k = 4
2525
2626 let l = 1
2727
2828 let m = 2
2929
3030 let n = 3
3131
3232 let o = 4
3333
3434 let p = 5
3535
3636 let q = 6
3737
3838 let r = 7
3939
4040 let s = 8
4141
4242 let t = 9
4343
4444 let u = 10
4545
4646 let v = 1
4747
4848 let w = 2
4949
5050 let x = 3
5151
5252 let y = 1
5353
5454 let z = 7
5555
5656 func A (B,C) = fraction(toBigInt(B), d, toBigInt(C))
5757
5858
5959 func D (E,F) = toInt(fraction(E, toBigInt(F), d))
6060
6161
6262 func G (H,I,J) = fraction(H, I, J)
6363
6464
6565 func K (E) = if ((e > 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)], f)
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 (P,Q) = makeString(["%s%s%d%d__K_history", toString(P), toString(Q)], f)
9595
9696
9797 func Y () = "%s__factoryConfig"
9898
9999
100-func Z () = "%s%s__matcher__publicKey"
100+func Z (aa) = (("%s%s%s__" + aa) + "__mappings__poolContract2LpAsset")
101101
102102
103-func aa (ab) = (("%s%s%s__" + ab) + "__mappings__poolContract2LpAsset")
103+func ab (ac,ad) = (((("%d%d%s__" + ac) + "__") + ad) + "__config")
104104
105105
106-func ac (ad,ae) = (((("%d%d%s__" + ad) + "__") + ae) + "__config")
106+func ae (af) = ("%s%s%s__mappings__baseAsset2internalId__" + af)
107107
108108
109-func af (ag) = ("%s%s%s__mappings__baseAsset2internalId__" + ag)
109+func ag () = "%s__shutdown"
110110
111111
112-func ah () = "%s__shutdown"
112+func ah (ai) = ("%s%s__poolWeight__" + ai)
113113
114114
115-func ai (aj) = ("%s%s__poolWeight__" + aj)
115+func aj (ak,al) = valueOrErrorMessage(getString(ak, al), makeString(["mandatory ", toString(ak), ".", al, " is not defined"], ""))
116116
117117
118-func ak (al,am,an) = throw(((((("order validation failed: orderValid=" + toString(al)) + " senderValid=") + toString(am)) + " matcherValid=") + toString(an)))
118+func am (ak,al) = valueOrErrorMessage(getInteger(ak, al), makeString(["mandatory ", toString(ak), ".", al, " is not defined"], ""))
119119
120120
121-func ao (ap,aq) = valueOrErrorMessage(getString(ap, aq), makeString(["mandatory ", toString(ap), ".", aq, " is not defined"], ""))
121+let an = addressFromStringValue(aj(this, L()))
122+
123+func ao () = valueOrElse(getBoolean(an, ag()), false)
122124
123125
124-func ar (ap,aq) = valueOrErrorMessage(getInteger(ap, aq), makeString(["mandatory ", toString(ap), ".", aq, " is not defined"], ""))
125-
126-
127-let as = addressFromStringValue(ao(this, L()))
128-
129-func at () = valueOrElse(getBoolean(as, ah()), false)
130-
131-
132-func au () = fromBase58String(ao(as, Z()))
133-
134-
135-func av () = {
136- let aw = ao(this, V())
137- let ax = ao(this, W())
138- let ae = ar(as, af(ax))
139- let ad = ar(as, af(aw))
140- split(ao(as, ac(toString(ad), toString(ae))), f)
126+func ap () = {
127+ let aq = aj(this, V())
128+ let ar = aj(this, W())
129+ let ad = am(an, ae(ar))
130+ let ac = am(an, ae(aq))
131+ split(aj(an, ab(toString(ac), toString(ad))), f)
141132 }
142133
143134
144-func ay () = split(ao(as, Y()), f)
135+func as () = split(aj(an, Y()), f)
145136
146137
147-func az (aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(aA), toString(aB), toString(aC), toString(aD), toString(aE), toString(aF), toString(aG), toString(aH), toString(aI), toString(aJ)], f)
138+func at (au,av,aw,ax,ay,az,aA,aB,aC,aD) = makeString(["%d%d%d%d%d%d%d%d%d%d", toString(au), toString(av), toString(aw), toString(ax), toString(ay), toString(az), toString(aA), toString(aB), toString(aC), toString(aD)], f)
148139
149140
150-func aK (aL,aM,aN,aD,aG,aH) = makeString(["%d%d%d%d%d%d", toString(aL), toString(aM), toString(aN), toString(aD), toString(aG), toString(aH)], f)
141+func aE (aF,aG,aH,ax,aA,aB) = makeString(["%d%d%d%d%d%d", toString(aF), toString(aG), toString(aH), toString(ax), toString(aA), toString(aB)], f)
151142
152143
153-func aO (aP) = if ((aP == "WAVES"))
144+func aI (aJ) = if ((aJ == "WAVES"))
154145 then wavesBalance(this).available
155- else assetBalance(this, fromBase58String(aP))
146+ else assetBalance(this, fromBase58String(aJ))
156147
157148
158-func aQ (aR,aS) = fraction(aR, d, aS)
149+func aK (aL,aM) = fraction(aL, d, aM)
159150
160151
161-func aT (aU,aV,aW,aX) = {
162- let aY = A(aW, aU)
163- let aZ = A(aX, aV)
164- aQ(aZ, aY)
152+func aN (aO,aP,aQ,aR) = {
153+ let aS = A(aQ, aO)
154+ let aT = A(aR, aP)
155+ aK(aT, aS)
165156 }
166157
167158
168-func ba (aW,aX,bb) = {
169- let bc = av()
170- let bd = parseIntValue(bc[q])
171- let be = parseIntValue(bc[r])
172- let bf = aT(bd, be, aW, aX)
173- let aS = A(aW, bd)
174- let aR = A(aX, be)
175- let bg = A(bb, b)
176- let bh = aQ(aS, bg)
177- let bi = aQ(aR, bg)
178-[bf, bh, bi]
159+func aU (aQ,aR,aV) = {
160+ let aW = ap()
161+ let aX = parseIntValue(aW[q])
162+ let aY = parseIntValue(aW[r])
163+ let aZ = aN(aX, aY, aQ, aR)
164+ let aM = A(aQ, aX)
165+ let aL = A(aR, aY)
166+ let ba = A(aV, b)
167+ let bb = aK(aM, ba)
168+ let bc = aK(aL, ba)
169+[aZ, bb, bc]
179170 }
180171
181172
182-func bj (aW,aX,bb) = {
183- let bk = ba(aW, aX, bb)
184-[D(bk[0], b), D(bk[1], b), D(bk[2], b)]
173+func bd (aQ,aR,aV) = {
174+ let be = aU(aQ, aR, aV)
175+[D(be[0], b), D(be[1], b), D(be[2], b)]
185176 }
186177
187178
188-func bl (bm,bn,bo,S) = {
189- let bc = av()
190- let bp = bc[n]
191- let bq = bc[o]
192- let br = bc[p]
193- let aU = parseIntValue(bc[q])
194- let aV = parseIntValue(bc[r])
195- let bs = bc[m]
196- let bt = valueOrErrorMessage(assetInfo(fromBase58String(bp)), (("Asset " + bp) + " doesn't exist")).quantity
197- if ((bp != bn))
179+func bf (bg,bh,bi,S) = {
180+ let aW = ap()
181+ let bj = aW[n]
182+ let bk = aW[o]
183+ let bl = aW[p]
184+ let aO = parseIntValue(aW[q])
185+ let aP = parseIntValue(aW[r])
186+ let bm = aW[m]
187+ let bn = valueOrErrorMessage(assetInfo(fromBase58String(bj)), (("Asset " + bj) + " doesn't exist")).quantity
188+ if ((bj != bh))
198189 then throw("Invalid asset passed.")
199190 else {
200- let bu = aO(bq)
201- let bv = A(bu, aU)
202- let bw = aO(br)
203- let bx = A(bw, aV)
204- let by = aQ(bx, bv)
205- let bz = D(by, b)
206- let bA = A(bo, b)
207- let bB = A(bt, b)
208- let bC = fraction(bv, bA, bB)
209- let bD = fraction(bx, bA, bB)
210- let bE = D(bC, aU)
211- let bF = D(bD, aV)
212- let bG = if ((bm == ""))
191+ let bo = aI(bk)
192+ let bp = A(bo, aO)
193+ let bq = aI(bl)
194+ let br = A(bq, aP)
195+ let bs = aK(br, bp)
196+ let bt = D(bs, b)
197+ let bu = A(bi, b)
198+ let bv = A(bn, b)
199+ let bw = fraction(bp, bu, bv)
200+ let bx = fraction(br, bu, bv)
201+ let by = D(bw, aO)
202+ let bz = D(bx, aP)
203+ let bA = if ((bg == ""))
213204 then nil
214- else [ScriptTransfer(S, bE, if ((bq == "WAVES"))
205+ else [ScriptTransfer(S, by, if ((bk == "WAVES"))
215206 then unit
216- else fromBase58String(bq)), ScriptTransfer(S, bF, if ((br == "WAVES"))
207+ else fromBase58String(bk)), ScriptTransfer(S, bz, if ((bl == "WAVES"))
217208 then unit
218- else fromBase58String(br)), StringEntry(U(toString(S), bm), aK(bE, bF, bo, bz, height, lastBlock.timestamp)), IntegerEntry(N(), bz), IntegerEntry(O(height, lastBlock.timestamp), bz)]
219- $Tuple10(bE, bF, bq, br, bu, bw, bt, by, bs, bG)
209+ else fromBase58String(bl)), StringEntry(U(toString(S), bg), aE(by, bz, bi, bt, height, lastBlock.timestamp)), IntegerEntry(N(), bt), IntegerEntry(O(height, lastBlock.timestamp), bt)]
210+ $Tuple10(by, bz, bk, bl, bo, bq, bn, bs, bm, bA)
220211 }
221212 }
222213
223214
224-func bH (bm,bI,bJ,bK,bL,bM,S,bN,bO) = {
225- let bc = av()
226- let bp = fromBase58String(bc[n])
227- let bP = bc[o]
228- let bQ = bc[p]
229- let bR = bc[s]
230- let bS = bc[t]
231- let bd = parseIntValue(bc[q])
232- let be = parseIntValue(bc[r])
233- let bs = bc[m]
234- let bt = valueOrErrorMessage(assetInfo(bp), (("Asset " + toBase58String(bp)) + " doesn't exist")).quantity
235- let bT = toBase58String(valueOrElse(bK, fromBase58String("WAVES")))
236- let bU = toBase58String(valueOrElse(bM, fromBase58String("WAVES")))
237- if (if ((bP != bT))
215+func bB (bg,bC,bD,bE,bF,bG,S,bH,bI) = {
216+ let aW = ap()
217+ let bj = fromBase58String(aW[n])
218+ let bJ = aW[o]
219+ let bK = aW[p]
220+ let bL = aW[s]
221+ let bM = aW[t]
222+ let aX = parseIntValue(aW[q])
223+ let aY = parseIntValue(aW[r])
224+ let bm = aW[m]
225+ let bn = valueOrErrorMessage(assetInfo(bj), (("Asset " + toBase58String(bj)) + " doesn't exist")).quantity
226+ let bN = toBase58String(valueOrElse(bE, fromBase58String("WAVES")))
227+ let bO = toBase58String(valueOrElse(bG, fromBase58String("WAVES")))
228+ if (if ((bJ != bN))
238229 then true
239- else (bQ != bU))
230+ else (bK != bO))
240231 then throw("Invalid amt or price asset passed.")
241232 else {
242- let bu = if (bN)
243- then aO(bP)
244- else (aO(bP) - bJ)
245- let bw = if (bN)
246- then aO(bQ)
247- else (aO(bQ) - bL)
248- let bV = A(bJ, bd)
249- let bW = A(bL, be)
250- let bX = aQ(bW, bV)
251- let bv = A(bu, bd)
252- let bx = A(bw, be)
253- let bY = if ((bt == 0))
233+ let bo = if (bH)
234+ then aI(bJ)
235+ else (aI(bJ) - bD)
236+ let bq = if (bH)
237+ then aI(bK)
238+ else (aI(bK) - bF)
239+ let bP = A(bD, aX)
240+ let bQ = A(bF, aY)
241+ let bR = aK(bQ, bP)
242+ let bp = A(bo, aX)
243+ let br = A(bq, aY)
244+ let bS = if ((bn == 0))
254245 then {
255- let by = e
256- let bZ = e
257- let bg = pow((bV * bW), 0, toBigInt(5), 1, 0, DOWN)
258- $Tuple5(D(bg, b), D(bV, bd), D(bW, be), aQ((bx + bW), (bv + bV)), bZ)
246+ let bs = e
247+ let bT = e
248+ let ba = pow((bP * bQ), 0, toBigInt(5), 1, 0, DOWN)
249+ $Tuple5(D(ba, b), D(bP, aX), D(bQ, aY), aK((br + bQ), (bp + bP)), bT)
259250 }
260251 else {
261- let by = aQ(bx, bv)
262- let bZ = fraction(K((by - bX)), d, by)
263- let ca = A(bI, b)
264- if (if ((by != e))
265- then (bZ > ca)
252+ let bs = aK(br, bp)
253+ let bT = fraction(K((bs - bR)), d, bs)
254+ let bU = A(bC, b)
255+ if (if ((bs != e))
256+ then (bT > bU)
266257 else false)
267- then throw(((("Price slippage " + toString(bZ)) + " exceeded the passed limit of ") + toString(ca)))
258+ then throw(((("Price slippage " + toString(bT)) + " exceeded the passed limit of ") + toString(bU)))
268259 else {
269- let bB = A(bt, b)
270- let cb = fraction(bV, by, d)
271- let cc = fraction(bW, d, by)
272- let cd = if ((cb > bW))
273- then $Tuple2(cc, bW)
274- else $Tuple2(bV, cb)
275- let ce = cd._1
276- let cf = cd._2
277- let bg = fraction(bB, cf, bx)
278- $Tuple5(D(bg, b), D(ce, bd), D(cf, be), by, bZ)
260+ let bv = A(bn, b)
261+ let bV = fraction(bP, bs, d)
262+ let bW = fraction(bQ, d, bs)
263+ let bX = if ((bV > bQ))
264+ then $Tuple2(bW, bQ)
265+ else $Tuple2(bP, bV)
266+ let bY = bX._1
267+ let bZ = bX._2
268+ let ba = fraction(bv, bZ, br)
269+ $Tuple5(D(ba, b), D(bY, aX), D(bZ, aY), bs, bT)
279270 }
280271 }
281- let cg = bY._1
282- let ch = bY._2
283- let ci = bY._3
284- let bz = D(bY._4, b)
285- let cj = D(bY._5, b)
286- if ((0 >= cg))
272+ let ca = bS._1
273+ let cb = bS._2
274+ let cc = bS._3
275+ let bt = D(bS._4, b)
276+ let cd = D(bS._5, b)
277+ if ((0 >= ca))
287278 then throw("Invalid calculations. LP calculated is less than zero.")
288279 else {
289- let ck = if (!(bO))
280+ let ce = if (!(bI))
290281 then 0
291- else cg
292- let cl = (bJ - ch)
293- let cm = (bL - ci)
294- let cn = [IntegerEntry(N(), bz), IntegerEntry(O(height, lastBlock.timestamp), bz), StringEntry(R(S, bm), az(ch, ci, ck, bz, bI, cj, height, lastBlock.timestamp, cl, cm))]
295- $Tuple13(cg, ck, bz, bu, bw, bt, bp, bs, cn, cl, cm, bK, bM)
282+ else ca
283+ let cf = (bD - cb)
284+ let cg = (bF - cc)
285+ let ch = [IntegerEntry(N(), bt), IntegerEntry(O(height, lastBlock.timestamp), bt), StringEntry(R(S, bg), at(cb, cc, ce, bt, bC, cd, height, lastBlock.timestamp, cf, cg))]
286+ $Tuple13(ca, ce, bt, bo, bq, bn, bj, bm, ch, cf, cg, bE, bG)
296287 }
297288 }
298289 }
299290
300291
301-func co (cp) = {
302- let bc = av()
303- let cq = bc[o]
304- let cr = bc[p]
305- let bs = parseIntValue(bc[m])
306- let bd = parseIntValue(bc[q])
307- let be = parseIntValue(bc[r])
308- let cs = aO(cq)
309- let ct = aO(cr)
310- let by = if ((cp.orderType == Buy))
311- then aT(bd, be, (cs + cp.amount), ct)
312- else aT(bd, be, (cs - cp.amount), ct)
313- let bz = D(by, b)
314- if (if (if (at())
292+func ci (cj) = {
293+ let aW = ap()
294+ let ck = aW[o]
295+ let cl = aW[p]
296+ let bm = parseIntValue(aW[m])
297+ let aX = parseIntValue(aW[q])
298+ let aY = parseIntValue(aW[r])
299+ let cm = aI(ck)
300+ let cn = aI(cl)
301+ let bs = if ((cj.orderType == Buy))
302+ then aN(aX, aY, (cm + cj.amount), cn)
303+ else aN(aX, aY, (cm - cj.amount), cn)
304+ let bt = D(bs, b)
305+ if (if (if (ao())
315306 then true
316- else (bs == j))
307+ else (bm == j))
317308 then true
318- else (bs == k))
309+ else (bm == k))
319310 then throw("Exchange operations disabled")
320311 else {
321- let cu = cp.assetPair.amountAsset
322- let cv = if ((cu == unit))
312+ let co = cj.assetPair.amountAsset
313+ let cp = if ((co == unit))
323314 then "WAVES"
324- else toBase58String(value(cu))
325- let cw = cp.assetPair.priceAsset
326- let cx = if ((cw == unit))
315+ else toBase58String(value(co))
316+ let cq = cj.assetPair.priceAsset
317+ let cr = if ((cq == unit))
327318 then "WAVES"
328- else toBase58String(value(cw))
329- if (if ((cv != cq))
319+ else toBase58String(value(cq))
320+ if (if ((cp != ck))
330321 then true
331- else (cx != cr))
322+ else (cr != cl))
332323 then throw("Wrong order assets.")
333324 else {
334- let cy = cp.price
335- let cz = fraction(b, be, bd)
336- let cA = G(cy, b, cz)
337- let cB = if ((cp.orderType == Buy))
338- then (bz >= cA)
339- else (cA >= bz)
325+ let cs = cj.price
326+ let ct = fraction(b, aY, aX)
327+ let cu = G(cs, b, ct)
328+ let cv = if ((cj.orderType == Buy))
329+ then (bt >= cu)
330+ else (cu >= bt)
340331 true
341332 }
342333 }
343334 }
344335
345336
346-func cC (cD) = if ((size(cD.payments) != 1))
337+func cw (cx) = if ((size(cx.payments) != 1))
347338 then throw("exactly 1 payment is expected")
348339 else {
349- let cE = value(cD.payments[0])
350- let bn = value(cE.assetId)
351- let cF = cE.amount
352- let bY = bl(toBase58String(cD.transactionId), toBase58String(bn), cF, cD.caller)
353- let bE = bY._1
354- let bF = bY._2
355- let bs = parseIntValue(bY._9)
356- let bG = bY._10
357- if (if (at())
340+ let cy = value(cx.payments[0])
341+ let bh = value(cy.assetId)
342+ let cz = cy.amount
343+ let bS = bf(toBase58String(cx.transactionId), toBase58String(bh), cz, cx.caller)
344+ let by = bS._1
345+ let bz = bS._2
346+ let bm = parseIntValue(bS._9)
347+ let bA = bS._10
348+ if (if (ao())
358349 then true
359- else (bs == k))
360- then throw(("Get operation is blocked by admin. Status = " + toString(bs)))
361- else $Tuple5(bE, bF, cF, bn, bG)
350+ else (bm == k))
351+ then throw(("Get operation is blocked by admin. Status = " + toString(bm)))
352+ else $Tuple5(by, bz, cz, bh, bA)
362353 }
363354
364355
365-func cG (cD,bI,bO) = if ((size(cD.payments) != 2))
356+func cA (cx,bC,bI) = if ((size(cx.payments) != 2))
366357 then throw("exactly 2 payments are expected")
367358 else {
368- let cH = value(cD.payments[0])
369- let cI = value(cD.payments[1])
370- let cJ = bH(toBase58String(cD.transactionId), bI, cH.amount, cH.assetId, cI.amount, cI.assetId, toString(cD.caller), false, bO)
371- let bs = parseIntValue(cJ._8)
372- if (if (if (at())
359+ let cB = value(cx.payments[0])
360+ let cC = value(cx.payments[1])
361+ let cD = bB(toBase58String(cx.transactionId), bC, cB.amount, cB.assetId, cC.amount, cC.assetId, toString(cx.caller), false, bI)
362+ let bm = parseIntValue(cD._8)
363+ if (if (if (ao())
373364 then true
374- else (bs == i))
365+ else (bm == i))
375366 then true
376- else (bs == k))
377- then throw(("Put operation is blocked by admin. Status = " + toString(bs)))
378- else cJ
367+ else (bm == k))
368+ then throw(("Put operation is blocked by admin. Status = " + toString(bm)))
369+ else cD
379370 }
380371
381372
382-@Callable(cD)
383-func constructor (as,cK) = if ((cD.caller != this))
373+@Callable(cx)
374+func constructor (an,cE) = if ((cx.caller != this))
384375 then throw("permissions denied")
385- else [StringEntry(L(), as), StringEntry(M(), cK)]
376+ else [StringEntry(L(), an), StringEntry(M(), cE)]
386377
387378
388379
389-@Callable(cD)
390-func put (bI,cL) = {
391- let cM = ay()
392- let cN = valueOrErrorMessage(addressFromString(cM[y]), "Error. Incorrect staking address.")
393- let cO = valueOrErrorMessage(addressFromString(cM[z]), "Error. Incorrect slippage contract address.")
394- if ((0 > bI))
380+@Callable(cx)
381+func put (bC,cF) = {
382+ let cG = as()
383+ let cH = valueOrErrorMessage(addressFromString(cG[y]), "Error. Incorrect staking address.")
384+ let cI = valueOrErrorMessage(addressFromString(cG[z]), "Error. Incorrect slippage contract address.")
385+ if ((0 > bC))
395386 then throw("Invalid slippageTolerance passed")
396387 else {
397- let cJ = cG(cD, bI, true)
398- let ck = cJ._2
399- let bp = cJ._7
400- let bG = cJ._9
401- let cl = cJ._10
402- let cm = cJ._11
403- let cP = cJ._12
404- let cQ = cJ._13
405- let cR = invoke(as, "emit", [ck], nil)
406- if ((cR == cR))
388+ let cD = cA(cx, bC, true)
389+ let ce = cD._2
390+ let bj = cD._7
391+ let bA = cD._9
392+ let cf = cD._10
393+ let cg = cD._11
394+ let cJ = cD._12
395+ let cK = cD._13
396+ let cL = invoke(an, "emit", [ce], nil)
397+ if ((cL == cL))
407398 then {
408- let cS = if ((cl > 0))
409- then invoke(cO, "put", nil, [AttachedPayment(cP, cl)])
399+ let cM = if ((cf > 0))
400+ then invoke(cI, "put", nil, [AttachedPayment(cJ, cf)])
410401 else nil
411- if ((cS == cS))
402+ if ((cM == cM))
412403 then {
413- let cT = if ((cm > 0))
414- then invoke(cO, "put", nil, [AttachedPayment(cQ, cm)])
404+ let cN = if ((cg > 0))
405+ then invoke(cI, "put", nil, [AttachedPayment(cK, cg)])
415406 else nil
416- if ((cT == cT))
407+ if ((cN == cN))
417408 then {
418- let cU = if (cL)
409+ let cO = if (cF)
419410 then {
420- let cV = invoke(cN, "stake", nil, [AttachedPayment(bp, ck)])
421- if ((cV == cV))
411+ let cP = invoke(cH, "stake", nil, [AttachedPayment(bj, ce)])
412+ if ((cP == cP))
422413 then nil
423414 else throw("Strict value is not equal to itself.")
424415 }
425- else [ScriptTransfer(cD.caller, ck, bp)]
426- (bG ++ cU)
416+ else [ScriptTransfer(cx.caller, ce, bj)]
417+ (bA ++ cO)
427418 }
428419 else throw("Strict value is not equal to itself.")
429420 }
430421 else throw("Strict value is not equal to itself.")
431422 }
432423 else throw("Strict value is not equal to itself.")
433424 }
434425 }
435426
436427
437428
438-@Callable(cD)
439-func putForFree (cW) = if ((0 > cW))
429+@Callable(cx)
430+func putForFree (cQ) = if ((0 > cQ))
440431 then throw("Invalid value passed")
441432 else {
442- let cJ = cG(cD, cW, false)
443- cJ._9
433+ let cD = cA(cx, cQ, false)
434+ cD._9
444435 }
445436
446437
447438
448-@Callable(cD)
439+@Callable(cx)
449440 func get () = {
450- let bY = cC(cD)
451- let cX = bY._1
452- let bF = bY._2
453- let cF = bY._3
454- let bn = bY._4
455- let bG = bY._5
456- let cY = invoke(as, "burn", [cF], [AttachedPayment(bn, cF)])
457- if ((cY == cY))
458- then bG
441+ let bS = cw(cx)
442+ let cR = bS._1
443+ let bz = bS._2
444+ let cz = bS._3
445+ let bh = bS._4
446+ let bA = bS._5
447+ let cS = invoke(an, "burn", [cz], [AttachedPayment(bh, cz)])
448+ if ((cS == cS))
449+ then bA
459450 else throw("Strict value is not equal to itself.")
460451 }
461452
462453
463454
464-@Callable(cD)
465-func getNoLess (cZ,da) = {
466- let bY = cC(cD)
467- let bE = bY._1
468- let bF = bY._2
469- let cF = bY._3
470- let bn = bY._4
471- let bG = bY._5
472- if ((cZ > bE))
473- then throw(((("noLessThenAmtAsset failed: " + toString(bE)) + " < ") + toString(cZ)))
474- else if ((da > bF))
475- then throw(((("noLessThenPriceAsset failed: " + toString(bF)) + " < ") + toString(da)))
455+@Callable(cx)
456+func getNoLess (cT,cU) = {
457+ let bS = cw(cx)
458+ let by = bS._1
459+ let bz = bS._2
460+ let cz = bS._3
461+ let bh = bS._4
462+ let bA = bS._5
463+ if ((cT > by))
464+ then throw(((("noLessThenAmtAsset failed: " + toString(by)) + " < ") + toString(cT)))
465+ else if ((cU > bz))
466+ then throw(((("noLessThenPriceAsset failed: " + toString(bz)) + " < ") + toString(cU)))
476467 else {
477- let cY = invoke(as, "burn", [cF], [AttachedPayment(bn, cF)])
478- if ((cY == cY))
479- then bG
468+ let cS = invoke(an, "burn", [cz], [AttachedPayment(bh, cz)])
469+ if ((cS == cS))
470+ then bA
480471 else throw("Strict value is not equal to itself.")
481472 }
482473 }
483474
484475
485476
486-@Callable(cD)
487-func activate (db,dc) = if ((toString(cD.caller) != toString(as)))
477+@Callable(cx)
478+func activate (cV,cW) = if ((toString(cx.caller) != toString(an)))
488479 then throw("permissions denied")
489- else $Tuple2([StringEntry(V(), db), StringEntry(W(), dc)], "success")
480+ else $Tuple2([StringEntry(V(), cV), StringEntry(W(), cW)], "success")
490481
491482
492483
493-@Callable(cD)
494-func getPoolConfigWrapperREADONLY () = $Tuple2(nil, av())
484+@Callable(cx)
485+func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ap())
495486
496487
497488
498-@Callable(cD)
499-func getAccBalanceWrapperREADONLY (aP) = $Tuple2(nil, aO(aP))
489+@Callable(cx)
490+func getAccBalanceWrapperREADONLY (aJ) = $Tuple2(nil, aI(aJ))
500491
501492
502493
503-@Callable(cD)
504-func calcPricesWrapperREADONLY (aW,aX,bb) = {
505- let bk = ba(aW, aX, bb)
506- $Tuple2(nil, [toString(bk[0]), toString(bk[1]), toString(bk[2])])
494+@Callable(cx)
495+func calcPricesWrapperREADONLY (aQ,aR,aV) = {
496+ let be = aU(aQ, aR, aV)
497+ $Tuple2(nil, [toString(be[0]), toString(be[1]), toString(be[2])])
507498 }
508499
509500
510501
511-@Callable(cD)
502+@Callable(cx)
512503 func toX18WrapperREADONLY (B,C) = $Tuple2(nil, toString(A(B, C)))
513504
514505
515506
516-@Callable(cD)
507+@Callable(cx)
517508 func fromX18WrapperREADONLY (E,F) = $Tuple2(nil, D(parseBigIntValue(E), F))
518509
519510
520511
521-@Callable(cD)
522-func calcPriceBigIntWrapperREADONLY (aR,aS) = $Tuple2(nil, toString(aQ(parseBigIntValue(aR), parseBigIntValue(aS))))
512+@Callable(cx)
513+func calcPriceBigIntWrapperREADONLY (aL,aM) = $Tuple2(nil, toString(aK(parseBigIntValue(aL), parseBigIntValue(aM))))
523514
524515
525516
526-@Callable(cD)
527-func estimatePutOperationWrapperREADONLY (bm,bI,bJ,bK,bL,bM,S,bN,bO) = {
528- let dd = bH(bm, bI, bJ, bK, bL, bM, S, bN, bO)
529- let de = dd
530- let cg = de._1
531- let ck = de._2
532- let bz = de._3
533- let bu = de._4
534- let bw = de._5
535- let bt = de._6
536- let bp = de._7
537- let bs = de._8
538- let cn = de._9
539- let cl = de._10
540- let cm = de._11
541- let df = de._12
542- let dg = de._13
543- $Tuple2(nil, $Tuple13(cg, ck, toString(bz), bu, bw, bt, bp, bs, cn, cl, cm, df, dg))
517+@Callable(cx)
518+func estimatePutOperationWrapperREADONLY (bg,bC,bD,bE,bF,bG,S,bH,bI) = {
519+ let cX = bB(bg, bC, bD, bE, bF, bG, S, bH, bI)
520+ let cY = cX
521+ let ca = cY._1
522+ let ce = cY._2
523+ let bt = cY._3
524+ let bo = cY._4
525+ let bq = cY._5
526+ let bn = cY._6
527+ let bj = cY._7
528+ let bm = cY._8
529+ let ch = cY._9
530+ let cf = cY._10
531+ let cg = cY._11
532+ let cZ = cY._12
533+ let da = cY._13
534+ $Tuple2(nil, $Tuple13(ca, ce, bt, bo, bq, bn, bj, bm, ch, cf, cg, cZ, da))
544535 }
545536
546537
547538
548-@Callable(cD)
549-func estimateGetOperationWrapperREADONLY (bm,bn,bo,S) = {
550- let dd = bl(bm, bn, bo, addressFromStringValue(S))
551- let dh = dd
552- let bE = dh._1
553- let bF = dh._2
554- let bq = dh._3
555- let br = dh._4
556- let bu = dh._5
557- let bw = dh._6
558- let bt = dh._7
559- let by = dh._8
560- let bs = dh._9
561- let bG = dh._10
562- $Tuple2(nil, $Tuple10(bE, bF, bq, br, bu, bw, bt, toString(by), bs, bG))
539+@Callable(cx)
540+func estimateGetOperationWrapperREADONLY (bg,bh,bi,S) = {
541+ let cX = bf(bg, bh, bi, addressFromStringValue(S))
542+ let db = cX
543+ let by = db._1
544+ let bz = db._2
545+ let bk = db._3
546+ let bl = db._4
547+ let bo = db._5
548+ let bq = db._6
549+ let bn = db._7
550+ let bs = db._8
551+ let bm = db._9
552+ let bA = db._10
553+ $Tuple2(nil, $Tuple10(by, bz, bk, bl, bo, bq, bn, toString(bs), bm, bA))
563554 }
564555
565556
566557
567-@Callable(cD)
558+@Callable(cx)
568559 func statsREADONLY () = {
569- let bc = av()
570- let bp = fromBase58String(bc[n])
571- let cq = bc[o]
572- let cr = bc[p]
573- let bR = bc[s]
574- let bS = bc[t]
575- let bd = parseIntValue(bc[q])
576- let be = parseIntValue(bc[r])
577- let di = valueOrErrorMessage(assetInfo(bp), (("Asset " + toBase58String(bp)) + " doesn't exist")).quantity
578- let cs = aO(cq)
579- let ct = aO(cr)
580- let dj = ba(cs, ct, di)
581- let bz = 0
582- let dk = D(dj[1], b)
583- let dl = D(dj[2], b)
584- let dm = value(getInteger(as, ai(toString(this))))
585- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cs), toString(ct), toString(di), toString(bz), toString(dk), toString(dl), toString(dm)], f))
560+ let aW = ap()
561+ let bj = fromBase58String(aW[n])
562+ let ck = aW[o]
563+ let cl = aW[p]
564+ let bL = aW[s]
565+ let bM = aW[t]
566+ let aX = parseIntValue(aW[q])
567+ let aY = parseIntValue(aW[r])
568+ let dc = valueOrErrorMessage(assetInfo(bj), (("Asset " + toBase58String(bj)) + " doesn't exist")).quantity
569+ let cm = aI(ck)
570+ let cn = aI(cl)
571+ let dd = aU(cm, cn, dc)
572+ let bt = 0
573+ let de = D(dd[1], b)
574+ let df = D(dd[2], b)
575+ let dg = value(getInteger(an, ah(toString(this))))
576+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(cm), toString(cn), toString(dc), toString(bt), toString(de), toString(df), toString(dg)], f))
586577 }
587578
588579
589580
590-@Callable(cD)
591-func evaluatePutByAmountAssetREADONLY (bJ) = {
592- let bc = av()
593- let bp = fromBase58String(bc[n])
594- let bP = bc[o]
595- let bq = fromBase58String(bP)
596- let bQ = bc[p]
597- let br = fromBase58String(bQ)
598- let bd = parseIntValue(bc[q])
599- let be = parseIntValue(bc[r])
600- let bs = bc[m]
601- let di = valueOrErrorMessage(assetInfo(bp), (("Asset " + toBase58String(bp)) + " doesn't exist")).quantity
602- let cs = aO(bP)
603- let ct = aO(bQ)
604- let aY = A(cs, bd)
605- let aZ = A(ct, be)
606- let by = if ((di == 0))
581+@Callable(cx)
582+func evaluatePutByAmountAssetREADONLY (bD) = {
583+ let aW = ap()
584+ let bj = fromBase58String(aW[n])
585+ let bJ = aW[o]
586+ let bk = fromBase58String(bJ)
587+ let bK = aW[p]
588+ let bl = fromBase58String(bK)
589+ let aX = parseIntValue(aW[q])
590+ let aY = parseIntValue(aW[r])
591+ let bm = aW[m]
592+ let dc = valueOrErrorMessage(assetInfo(bj), (("Asset " + toBase58String(bj)) + " doesn't exist")).quantity
593+ let cm = aI(bJ)
594+ let cn = aI(bK)
595+ let aS = A(cm, aX)
596+ let aT = A(cn, aY)
597+ let bs = if ((dc == 0))
607598 then e
608- else aQ(aZ, aY)
609- let bV = A(bJ, bd)
610- let bW = fraction(bV, by, d)
611- let bL = D(bW, be)
612- let cJ = bH("", 500000, bJ, bq, bL, br, "", true, false)
613- let cg = cJ._1
614- let dn = cJ._3
615- let bu = cJ._4
616- let bw = cJ._5
617- let bt = cJ._6
618- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cg), toString(D(by, b)), toString(bu), toString(bw), toString(bt), bs, toString(bJ), toString(bL)], f))
599+ else aK(aT, aS)
600+ let bP = A(bD, aX)
601+ let bQ = fraction(bP, bs, d)
602+ let bF = D(bQ, aY)
603+ let cD = bB("", 500000, bD, bk, bF, bl, "", true, false)
604+ let ca = cD._1
605+ let dh = cD._3
606+ let bo = cD._4
607+ let bq = cD._5
608+ let bn = cD._6
609+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ca), toString(D(bs, b)), toString(bo), toString(bq), toString(bn), bm, toString(bD), toString(bF)], f))
619610 }
620611
621612
622613
623-@Callable(cD)
624-func evaluatePutByPriceAssetREADONLY (bL) = {
625- let bc = av()
626- let bp = fromBase58String(bc[n])
627- let bP = bc[o]
628- let bq = fromBase58String(bP)
629- let bQ = bc[p]
630- let br = fromBase58String(bQ)
631- let bd = parseIntValue(bc[q])
632- let be = parseIntValue(bc[r])
633- let bs = bc[m]
634- let di = valueOrErrorMessage(assetInfo(bp), (("Asset " + toBase58String(bp)) + " doesn't exist")).quantity
635- let do = aO(bP)
636- let dp = aO(bQ)
637- let dq = A(do, bd)
638- let dr = A(dp, be)
639- let by = if ((di == 0))
614+@Callable(cx)
615+func evaluatePutByPriceAssetREADONLY (bF) = {
616+ let aW = ap()
617+ let bj = fromBase58String(aW[n])
618+ let bJ = aW[o]
619+ let bk = fromBase58String(bJ)
620+ let bK = aW[p]
621+ let bl = fromBase58String(bK)
622+ let aX = parseIntValue(aW[q])
623+ let aY = parseIntValue(aW[r])
624+ let bm = aW[m]
625+ let dc = valueOrErrorMessage(assetInfo(bj), (("Asset " + toBase58String(bj)) + " doesn't exist")).quantity
626+ let di = aI(bJ)
627+ let dj = aI(bK)
628+ let dk = A(di, aX)
629+ let dl = A(dj, aY)
630+ let bs = if ((dc == 0))
640631 then e
641- else aQ(dr, dq)
642- let bW = A(bL, be)
643- let bV = fraction(bW, d, by)
644- let bJ = D(bV, bd)
645- let cJ = bH("", 500000, bJ, bq, bL, br, "", true, false)
646- let cg = cJ._1
647- let dn = cJ._3
648- let bu = cJ._4
649- let bw = cJ._5
650- let bt = cJ._6
651- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(cg), toString(D(by, b)), toString(bu), toString(bw), toString(bt), bs, toString(bJ), toString(bL)], f))
632+ else aK(dl, dk)
633+ let bQ = A(bF, aY)
634+ let bP = fraction(bQ, d, bs)
635+ let bD = D(bP, aX)
636+ let cD = bB("", 500000, bD, bk, bF, bl, "", true, false)
637+ let ca = cD._1
638+ let dh = cD._3
639+ let bo = cD._4
640+ let bq = cD._5
641+ let bn = cD._6
642+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d%d", toString(ca), toString(D(bs, b)), toString(bo), toString(bq), toString(bn), bm, toString(bD), toString(bF)], f))
652643 }
653644
654645
655646
656-@Callable(cD)
657-func evaluateGetREADONLY (ds,dt) = {
658- let bY = bl("", ds, dt, this)
659- let bE = bY._1
660- let bF = bY._2
661- let bu = bY._5
662- let bw = bY._6
663- let bt = bY._7
664- let bz = bY._8
665- let bs = parseIntValue(bY._9)
666- $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(bE), toString(bF), toString(bu), toString(bw), toString(bt), toString(bz), toString(bs)], f))
647+@Callable(cx)
648+func evaluateGetREADONLY (dm,dn) = {
649+ let bS = bf("", dm, dn, this)
650+ let by = bS._1
651+ let bz = bS._2
652+ let bo = bS._5
653+ let bq = bS._6
654+ let bn = bS._7
655+ let bt = bS._8
656+ let bm = parseIntValue(bS._9)
657+ $Tuple2(nil, makeString(["%d%d%d%d%d%d%d", toString(by), toString(bz), toString(bo), toString(bq), toString(bn), toString(bt), toString(bm)], f))
667658 }
668659
669660
670-@Verifier(du)
671-func dv () = {
672- let dw = du
673- if ($isInstanceOf(dw, "Order"))
661+@Verifier(do)
662+func dp () = {
663+ let dq = do
664+ if ($isInstanceOf(dq, "Order"))
674665 then {
675- let cp = dw
676- let dx = au()
677- let al = co(cp)
678- let am = sigVerify(cp.bodyBytes, cp.proofs[0], cp.senderPublicKey)
679- let an = sigVerify(cp.bodyBytes, cp.proofs[1], dx)
680- if (if (if (al)
681- then am
682- else false)
683- then an
684- else false)
685- then true
686- else ak(al, am, an)
666+ let cj = dq
667+ if (ci(cj))
668+ then sigVerify(cj.bodyBytes, cj.proofs[0], cj.senderPublicKey)
669+ else false
687670 }
688671 else {
689- let dy = valueOrElse(getString(this, M()), g)
690- if ((dy == g))
691- then sigVerify(du.bodyBytes, du.proofs[0], du.senderPublicKey)
692- else sigVerify(du.bodyBytes, du.proofs[0], fromBase58String(dy))
672+ let dr = valueOrElse(getString(this, M()), g)
673+ if ((dr == g))
674+ then sigVerify(do.bodyBytes, do.proofs[0], do.senderPublicKey)
675+ else sigVerify(do.bodyBytes, do.proofs[0], fromBase58String(dr))
693676 }
694677 }
695678

github/deemru/w8io/873ac7e 
238.96 ms