tx · 77KJAL8VDeNbFfSetA4fcofxJnikByPZ6EeAhAUf3gEx 3N8Q6WBsfWqxrqru7j45a6mCQoerJXforKJ: -0.01400000 Waves 2021.11.02 13:18 [1773233] smart account 3N8Q6WBsfWqxrqru7j45a6mCQoerJXforKJ > SELF 0.00000000 Waves
{ "type": 13, "id": "77KJAL8VDeNbFfSetA4fcofxJnikByPZ6EeAhAUf3gEx", "fee": 1400000, "feeAssetId": null, "timestamp": 1635848373274, "version": 2, "chainId": 84, "sender": "3N8Q6WBsfWqxrqru7j45a6mCQoerJXforKJ", "senderPublicKey": "7nazYRegcPktaf9fWB4axLnqNzxbPqPVDVcsDouPTPyR", "proofs": [ "3wwdTeoKm2NJazVZci1KQZFZcSgKdEjf1jjpQg59u8SjCWvBxWcUGuS9XHfRMjHw6Y35mi4hLZcvz1dmFwySc2dt" ], "script": "base64:AAIFAAAAAAAAACkIAhIKCggICAgICAgIARIJCgcICAgICAEIEgQKAggBEgMKAQESAwoBAQAAAC0AAAAAEWRlY2ltYWxzTXVsdFByaWNlCQAAaAAAAAIJAABoAAAAAgAAAAAAAAAAZAAAAAAAAAAD6AAAAAAAAAAD6AAAAAADU0VQAgAAAAJfXwAAAAAKUG9vbEFjdGl2ZQAAAAAAAAAAAQAAAAAPUG9vbFB1dERpc2FibGVkAAAAAAAAAAACAAAAABNQb29sTWF0Y2hlckRpc2FibGVkAAAAAAAAAAADAAAAAAxQb29sU2h1dGRvd24AAAAAAAAAAAQAAAAAEmlkeEludGVybmFsQXNzZXRJZAAAAAAAAAAAAQAAAAAPaWR4UmVzdXRBY3Rpb25zAAAAAAAAAAACAAAAACBpZHhJZkFzc2V0SWRDYWxjdWxhdGlvblBlcmZvcm1lZAAAAAAAAAAAAwAAAAAOaWR4UG9vbEFkZHJlc3MAAAAAAAAAAAEAAAAADWlkeFBvb2xTdGF0dXMAAAAAAAAAAAIAAAAAEGlkeFBvb2xMUEFzc2V0SWQAAAAAAAAAAAMAAAAADWlkeEFtdEFzc2V0SWQAAAAAAAAAAAQAAAAAD2lkeFByaWNlQXNzZXRJZAAAAAAAAAAABQAAAAAOaWR4QW10QXNzZXREY20AAAAAAAAAAAYAAAAAEGlkeFByaWNlQXNzZXREY20AAAAAAAAAAAcAAAAADmlkeElBbXRBc3NldElkAAAAAAAAAAAIAAAAABBpZHhJUHJpY2VBc3NldElkAAAAAAAAAAAJAAAAAA1pZHhMUEFzc2V0RGNtAAAAAAAAAAAKAAAAAAtpZHhQb29sVHlwZQAAAAAAAAAACwEAAAAQa2V5RmFjdG9yeUNvbmZpZwAAAAACAAAAESVzX19mYWN0b3J5Q29uZmlnAQAAAA9rZXlMcFRva2Vuc0xpc3QAAAAAAgAAABAlc19fbHBUb2tlbnNMaXN0AQAAABFrZXlQb29sU2NyaXB0SGFzaAAAAAACAAAAFiVzJXNfX3Bvb2xfX3NjcmlwdEhhc2gBAAAAEGtleVByaWNlRGVjaW1hbHMAAAAAAgAAABElc19fcHJpY2VEZWNpbWFscwEAAAATa2V5QWxsUG9vbHNTaHV0ZG93bgAAAAACAAAADCVzX19zaHV0ZG93bgEAAAAWa2V5TmV4dEludGVybmFsQXNzZXRJZAAAAAACAAAAFyVzX19uZXh0SW50ZXJuYWxBc3NldElkAQAAAA9rZXlQb29sVG9XZWlnaHQAAAABAAAAC3Bvb2xBZGRyZXNzCQABLAAAAAICAAAAEiVzJXNfX3Bvb2xXZWlnaHRfXwUAAAALcG9vbEFkZHJlc3MBAAAAH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQAAAABAAAAEWludGVybmFsQmFzZUFzc2V0CQABLAAAAAICAAAAKCVzJXMlZF9fbWFwcGluZ3NfX2ludGVybmFsMmJhc2VBc3NldElkX18JAAGkAAAAAQUAAAARaW50ZXJuYWxCYXNlQXNzZXQBAAAAH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQAAAABAAAADGJhc2VBc3NldFN0cgkAASwAAAACAgAAACglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQAAAAxiYXNlQXNzZXRTdHIBAAAADWtleVBvb2xDb25maWcAAAACAAAAE2Ftb3VudEFzc2V0SW50ZXJuYWwAAAAScHJpY2VBc3NldEludGVybmFsCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACCVkJWQlc19fBQAAABNhbW91bnRBc3NldEludGVybmFsAgAAAAJfXwUAAAAScHJpY2VBc3NldEludGVybmFsAgAAAAhfX2NvbmZpZwEAAAAda2V5TWFwcGluZ0xwQXNzZXRUb1Bvb2xBc3NldHMAAAABAAAACmxwQXNzZXRTdHIJAAEsAAAAAgkAASwAAAACAgAAAAglcyVzJXNfXwUAAAAKbHBBc3NldFN0cgIAAAAYX19tYXBwaW5nc19fbHBBc3NldDJQb29sAQAAAB1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldAAAAAIAAAAYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyAAAAF2ludGVybmFsUHJpY2VBc3NldElkU3RyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACiVkJWQlcyVzX18FAAAAGGludGVybmFsQW1vdW50QXNzZXRJZFN0cgIAAAACX18FAAAAF2ludGVybmFsUHJpY2VBc3NldElkU3RyAgAAAB5fX21hcHBpbmdzX19Qb29sQXNzZXRzMkxwQXNzZXQBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQAAABNwb29sQ29udHJhY3RBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgIAAAAIJXMlcyVzX18FAAAAE3Bvb2xDb250cmFjdEFkZHJlc3MCAAAAI19fbWFwcGluZ3NfX3Bvb2xDb250cmFjdDJQb29sQXNzZXRzAQAAAClrZXlNYXBwaW5nUG9vbEFzc2V0c1RvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAIAAAAYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyAAAAF2ludGVybmFsUHJpY2VBc3NldElkU3RyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACiVkJWQlcyVzX18JAAGkAAAAAQUAAAAYaW50ZXJuYWxBbW91bnRBc3NldElkU3RyAgAAAAJfXwkAAaQAAAABBQAAABdpbnRlcm5hbFByaWNlQXNzZXRJZFN0cgIAAAAjX19tYXBwaW5nc19fcG9vbEFzc2V0czJQb29sQ29udHJhY3QBAAAAHmtleU1hcHBpbmdQb29sQ29udHJhY1RvTFBBc3NldAAAAAEAAAATcG9vbENvbnRyYWN0QWRkcmVzcwkAASwAAAACCQABLAAAAAICAAAACCVzJXMlc19fBQAAABNwb29sQ29udHJhY3RBZGRyZXNzAgAAACBfX21hcHBpbmdzX19wb29sQ29udHJhY3QyTHBBc3NldAEAAAAqa2V5TWFwcGluZ1Bvb2xMUEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAQAAAApscEFzc2V0U3RyCQABLAAAAAIJAAEsAAAAAgIAAAAIJXMlcyVzX18FAAAACmxwQXNzZXRTdHICAAAAIF9fbWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0AQAAAA9nZXRTdHJpbmdPckZhaWwAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQkAASwAAAACAgAAABVObyBkYXRhIGZvciB0aGlzLmtleT0FAAAAA2tleQEAAAAQZ2V0Qm9vbGVhbk9yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5CQABLAAAAAICAAAAFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUAAAADa2V5AQAAAAxnZXRJbnRPckZhaWwAAAABAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQkAASwAAAACAgAAABVObyBkYXRhIGZvciB0aGlzLmtleT0FAAAAA2tleQEAAAAOZGF0YUZhY3RvcnlDZmcAAAAHAAAADnN0YWtpbmdBZGRyZXNzAAAAD2Jvb3N0aW5nQWRkcmVzcwAAAAtpZG9Db250cmFjdAAAAAx0ZWFtQ29udHJhY3QAAAAQZW1pc3Npb25Db250cmFjdAAAAAxyZXN0Q29udHJhY3QAAAAQc2xpcHBhZ2VDb250cmFjdAkABLkAAAACCQAETAAAAAICAAAADCVzJXMlcyVzJXMlcwkABEwAAAACBQAAAA5zdGFraW5nQWRkcmVzcwkABEwAAAACBQAAAA9ib29zdGluZ0FkZHJlc3MJAARMAAAAAgUAAAALaWRvQ29udHJhY3QJAARMAAAAAgUAAAAMdGVhbUNvbnRyYWN0CQAETAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAARMAAAAAgUAAAAMcmVzdENvbnRyYWN0CQAETAAAAAIFAAAAEHNsaXBwYWdlQ29udHJhY3QFAAAAA25pbAUAAAADU0VQAQAAAAtkYXRhUG9vbENmZwAAAAsAAAALcG9vbEFkZHJlc3MAAAAKcG9vbFN0YXR1cwAAAAlscEFzc2V0SWQAAAAOYW1vdW50QXNzZXRTdHIAAAANcHJpY2VBc3NldFN0cgAAABNhbW91bnRBc3NldERlY2ltYWxzAAAAEnByaWNlQXNzZXREZWNpbWFscwAAABVhbW91bnRBc3NldEludGVybmFsSWQAAAAUcHJpY2VBc3NldEludGVybmFsSWQAAAAPbHBBc3NldERlY2ltYWxzAAAACHBvb2xUeXBlCQAEuQAAAAIJAARMAAAAAgIAAAAWJXMlZCVzJXMlcyVkJWQlZCVkJWQlcwkABEwAAAACBQAAAAtwb29sQWRkcmVzcwkABEwAAAACBQAAAApwb29sU3RhdHVzCQAETAAAAAIFAAAACWxwQXNzZXRJZAkABEwAAAACBQAAAA5hbW91bnRBc3NldFN0cgkABEwAAAACBQAAAA1wcmljZUFzc2V0U3RyCQAETAAAAAIJAAGkAAAAAQUAAAATYW1vdW50QXNzZXREZWNpbWFscwkABEwAAAACCQABpAAAAAEFAAAAEnByaWNlQXNzZXREZWNpbWFscwkABEwAAAACCQABpAAAAAEFAAAAFWFtb3VudEFzc2V0SW50ZXJuYWxJZAkABEwAAAACCQABpAAAAAEFAAAAFHByaWNlQXNzZXRJbnRlcm5hbElkCQAETAAAAAIJAAGkAAAAAQUAAAAPbHBBc3NldERlY2ltYWxzCQAETAAAAAIFAAAACHBvb2xUeXBlBQAAAANuaWwFAAAAA1NFUAEAAAAVZGF0YU1hcHBpbmdQb29sQXNzZXRzAAAAAgAAABZpbnRlcm5hbEFtb3VudEFzc2V0U3RyAAAAFWludGVybmFsUHJpY2VBc3NldFN0cgkABLkAAAACCQAETAAAAAICAAAABCVkJWQJAARMAAAAAgkAAaQAAAABBQAAABZpbnRlcm5hbEFtb3VudEFzc2V0U3RyCQAETAAAAAIJAAGkAAAAAQUAAAAVaW50ZXJuYWxQcmljZUFzc2V0U3RyBQAAAANuaWwFAAAAA1NFUAEAAAANZ2V0UG9vbENvbmZpZwAAAAEAAAALcG9vbEFkZHJlc3MEAAAACnBvb2xBc3NldHMJAAS1AAAAAgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAAClrZXlNYXBwaW5nUG9vbENvbnRyYWN0QWRkcmVzc1RvUG9vbEFzc2V0cwAAAAEFAAAAC3Bvb2xBZGRyZXNzBQAAAANTRVAEAAAAE2Ftb3VudEFzc2V0SW50ZXJuYWwJAAGRAAAAAgUAAAAKcG9vbEFzc2V0cwAAAAAAAAAAAQQAAAAScHJpY2VBc3NldEludGVybmFsCQABkQAAAAIFAAAACnBvb2xBc3NldHMAAAAAAAAAAAIJAAS1AAAAAgkBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEJAQAAAA1rZXlQb29sQ29uZmlnAAAAAgUAAAATYW1vdW50QXNzZXRJbnRlcm5hbAUAAAAScHJpY2VBc3NldEludGVybmFsBQAAAANTRVABAAAAGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlAAAAAgAAAAphc3NldElkU3RyAAAAC2luY3JlbWVudG9yBAAAAA9pbnRlcm5hbEFzc2V0SWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQAAAABBQAAAAphc3NldElkU3RyAAAAAAAAAAAABAAAABhjdXJyZW50SW5kZXhPZkludGVybmFsSWQJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwkBAAAAFmtleU5leHRJbnRlcm5hbEFzc2V0SWQAAAAAAAAAAAAAAAAABAAAAAZyZXN1bHQDCQAAAAAAAAIFAAAAD2ludGVybmFsQXNzZXRJZAAAAAAAAAAAAAQAAAASbmV3SW50ZXJuYWxBc3NldElkCQAAZAAAAAIFAAAAGGN1cnJlbnRJbmRleE9mSW50ZXJuYWxJZAUAAAALaW5jcmVtZW50b3IJAAUVAAAAAwUAAAASbmV3SW50ZXJuYWxBc3NldElkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAWa2V5TmV4dEludGVybmFsQXNzZXRJZAAAAAAFAAAAEm5ld0ludGVybmFsQXNzZXRJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAH2tleU1hcHBpbmdzQmFzZUFzc2V0MmludGVybmFsSWQAAAABBQAAAAphc3NldElkU3RyBQAAABJuZXdJbnRlcm5hbEFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQAAAABBQAAABJuZXdJbnRlcm5hbEFzc2V0SWQFAAAACmFzc2V0SWRTdHIFAAAAA25pbAYJAAUVAAAAAwUAAAAPaW50ZXJuYWxBc3NldElkBQAAAANuaWwHBQAAAAZyZXN1bHQBAAAAF2NyZWF0ZUxwVG9rZW5zTGlzdEVudHJ5AAAAAQAAAApuZXdMcFRva2VuBAAAAAhscFRva2VucwkABB0AAAACBQAAAAR0aGlzCQEAAAAPa2V5THBUb2tlbnNMaXN0AAAAAAMJAQAAAAlpc0RlZmluZWQAAAABBQAAAAhscFRva2VucwkAASwAAAACCQABLAAAAAIJAQAAAAV2YWx1ZQAAAAEFAAAACGxwVG9rZW5zBQAAAANTRVAFAAAACm5ld0xwVG9rZW4FAAAACm5ld0xwVG9rZW4AAAAFAAAAAWkBAAAAC2NvbnN0cnVjdG9yAAAACAAAAA9zdGFraW5nQ29udHJhY3QAAAAQYm9vc3RpbmdDb250cmFjdAAAAAtpZG9Db250cmFjdAAAAAx0ZWFtQ29udHJhY3QAAAAQZW1pc3Npb25Db250cmFjdAAAAAxyZXN0Q29udHJhY3QAAAAQc2xwaXBhZ2VDb250cmFjdAAAAA1wcmljZURlY2ltYWxzAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAAAR0aGlzCQAAAgAAAAECAAAAEnBlcm1pc3Npb25zIGRlbmllZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQa2V5RmFjdG9yeUNvbmZpZwAAAAAJAQAAAA5kYXRhRmFjdG9yeUNmZwAAAAcFAAAAD3N0YWtpbmdDb250cmFjdAUAAAAQYm9vc3RpbmdDb250cmFjdAUAAAALaWRvQ29udHJhY3QFAAAADHRlYW1Db250cmFjdAUAAAAQZW1pc3Npb25Db250cmFjdAUAAAAMcmVzdENvbnRyYWN0BQAAABBzbHBpcGFnZUNvbnRyYWN0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAQa2V5UHJpY2VEZWNpbWFscwAAAAAFAAAADXByaWNlRGVjaW1hbHMFAAAAA25pbAAAAAFpAQAAAA9hY3RpdmF0ZU5ld1Bvb2wAAAAHAAAAC3Bvb2xBZGRyZXNzAAAADmFtb3VudEFzc2V0U3RyAAAADXByaWNlQXNzZXRTdHIAAAALbHBBc3NldE5hbWUAAAAMbHBBc3NldERlc2NyAAAACnBvb2xXZWlnaHQAAAAIcG9vbFR5cGUDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAScGVybWlzc2lvbnMgZGVuaWVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQiAAAAAQkBAAAAKWtleU1hcHBpbmdQb29sQ29udHJhY3RBZGRyZXNzVG9Qb29sQXNzZXRzAAAAAQUAAAALcG9vbEFkZHJlc3MJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAADVBvb2wgYWRkcmVzcyAFAAAAC3Bvb2xBZGRyZXNzAgAAABQgYWxyZWFkeSByZWdpc3RlcmVkLgQAAAAXaW50ZXJuYWxBbW91bnRBc3NldERhdGEJAQAAABpnZXRJbnRlcm5hbEFzc2V0SWRPckNyZWF0ZQAAAAIFAAAADmFtb3VudEFzc2V0U3RyAAAAAAAAAAABBAAAABVpbnRlcm5hbEFtb3VudEFzc2V0SWQIBQAAABdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YQAAAAJfMQQAAAAWaW50ZXJuYWxQcmljZUFzc2V0RGF0YQkBAAAAGmdldEludGVybmFsQXNzZXRJZE9yQ3JlYXRlAAAAAgUAAAANcHJpY2VBc3NldFN0cgMIBQAAABdpbnRlcm5hbEFtb3VudEFzc2V0RGF0YQAAAAJfMwAAAAAAAAAAAgAAAAAAAAAAAQQAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQIBQAAABZpbnRlcm5hbFByaWNlQXNzZXREYXRhAAAAAl8xBAAAABVwb29sQWNjb3VudFNjcmlwdEhhc2gJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkAA/EAAAABCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAAtwb29sQWRkcmVzcwkAASwAAAACAgAAAClObyBzY3JpcHQgaGFzIGJlZW4gZm91bmQgb24gcG9vbCBhY2NvdW50IAUAAAALcG9vbEFkZHJlc3MEAAAAHGV0aGFsb25Qb29sQWNjb3VudFNjcmlwdEhhc2gJAQAAABFAZXh0ck5hdGl2ZSgxMDU3KQAAAAEJAQAAABFrZXlQb29sU2NyaXB0SGFzaAAAAAAEAAAACnBvb2xDb25maWcJAAQdAAAAAgUAAAAEdGhpcwkBAAAADWtleVBvb2xDb25maWcAAAACCQABpAAAAAEFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAkAAaQAAAABBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAMJAQAAAAlpc0RlZmluZWQAAAABBQAAAApwb29sQ29uZmlnCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAFUG9vbCAFAAAADmFtb3VudEFzc2V0U3RyAgAAAAEvBQAAAA1wcmljZUFzc2V0U3RyAgAAABwgaGFzIGFscmVhZHkgYmVlbiBhY3RpdmF0ZWQuBAAAAA9wb29sQ29uZmlnVmFsdWUJAQAAAAV2YWx1ZQAAAAEJAAQdAAAAAgUAAAAEdGhpcwkBAAAADWtleVBvb2xDb25maWcAAAACCQABpAAAAAEFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAkAAaQAAAABBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAQAAAAUYW1vdW50QXNzZXRzRGVjaW1hbHMDCQAAAAAAAAIFAAAADmFtb3VudEFzc2V0U3RyAgAAAAVXQVZFUwUAAAARZGVjaW1hbHNNdWx0UHJpY2UJAABsAAAABgAAAAAAAAAACgAAAAAAAAAAAAgJAQAAAAV2YWx1ZQAAAAEJAAPsAAAAAQkAAlkAAAABBQAAAA5hbW91bnRBc3NldFN0cgAAAAhkZWNpbWFscwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgQAAAATcHJpY2VBc3NldHNEZWNpbWFscwMJAAAAAAAAAgUAAAANcHJpY2VBc3NldFN0cgIAAAAFV0FWRVMFAAAAEWRlY2ltYWxzTXVsdFByaWNlCQAAbAAAAAYAAAAAAAAAAAoAAAAAAAAAAAAICQEAAAAFdmFsdWUAAAABCQAD7AAAAAEJAAJZAAAAAQUAAAANcHJpY2VBc3NldFN0cgAAAAhkZWNpbWFscwAAAAAAAAAAAAAAAAAAAAAAAAUAAAAERE9XTgQAAAASbHBBc3NldElzc3VlQWN0aW9uCQAEQgAAAAUFAAAAC2xwQXNzZXROYW1lBQAAAAxscEFzc2V0RGVzY3IAAAAAAAAAAAEAAAAAAAAAAAgGBAAAAAlscEFzc2V0SWQJAAQ4AAAAAQUAAAASbHBBc3NldElzc3VlQWN0aW9uBAAAAAxscEFzc2V0SWRTdHIJAAJYAAAAAQUAAAAJbHBBc3NldElkBAAAABhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQJAAP8AAAABAkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAALcG9vbEFkZHJlc3MCAAAACGFjdGl2YXRlCQAETAAAAAIFAAAADmFtb3VudEFzc2V0U3RyCQAETAAAAAIFAAAADXByaWNlQXNzZXRTdHIFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAABhwb29sQWN0aXZhdGVJbnZva2VSZXN1bHQFAAAAGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdAMJAQAAAAIhPQAAAAIFAAAAGHBvb2xBY3RpdmF0ZUludm9rZVJlc3VsdAIAAAAHc3VjY2VzcwkAAAIAAAABAgAAACNQb29sIGluaXRpYWxpc2F0aW9uIGVycm9yIGhhcHBlbmVkLgkABRQAAAACCQAETgAAAAIJAAROAAAAAggFAAAAF2ludGVybmFsQW1vdW50QXNzZXREYXRhAAAAAl8yCAUAAAAWaW50ZXJuYWxQcmljZUFzc2V0RGF0YQAAAAJfMgkABEwAAAACBQAAABJscEFzc2V0SXNzdWVBY3Rpb24JAARMAAAAAgkBAAAABEJ1cm4AAAACBQAAAAlscEFzc2V0SWQAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADWtleVBvb2xDb25maWcAAAACCQABpAAAAAEFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAkAAaQAAAABBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAkBAAAAC2RhdGFQb29sQ2ZnAAAACwUAAAALcG9vbEFkZHJlc3MJAAGkAAAAAQUAAAAKUG9vbEFjdGl2ZQUAAAAMbHBBc3NldElkU3RyBQAAAA5hbW91bnRBc3NldFN0cgUAAAANcHJpY2VBc3NldFN0cgUAAAAUYW1vdW50QXNzZXRzRGVjaW1hbHMFAAAAE3ByaWNlQXNzZXRzRGVjaW1hbHMFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQFAAAAEWRlY2ltYWxzTXVsdFByaWNlBQAAAAhwb29sVHlwZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAda2V5TWFwcGluZ0xwQXNzZXRUb1Bvb2xBc3NldHMAAAABBQAAAAxscEFzc2V0SWRTdHIJAQAAABVkYXRhTWFwcGluZ1Bvb2xBc3NldHMAAAACBQAAABVpbnRlcm5hbEFtb3VudEFzc2V0SWQFAAAAFGludGVybmFsUHJpY2VBc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAB1rZXlNYXBwaW5nUG9vbEFzc2V0c1RvTHBhc3NldAAAAAIJAAGkAAAAAQUAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkCQABpAAAAAEFAAAAFGludGVybmFsUHJpY2VBc3NldElkCQABLAAAAAICAAAABCVzX18FAAAADGxwQXNzZXRJZFN0cgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAApa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMAAAABBQAAAAtwb29sQWRkcmVzcwkBAAAAFWRhdGFNYXBwaW5nUG9vbEFzc2V0cwAAAAIFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAKWtleU1hcHBpbmdQb29sQXNzZXRzVG9Qb29sQ29udHJhY3RBZGRyZXNzAAAAAgUAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkBQAAABRpbnRlcm5hbFByaWNlQXNzZXRJZAUAAAALcG9vbEFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAKmtleU1hcHBpbmdQb29sTFBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEFAAAADGxwQXNzZXRJZFN0cgUAAAALcG9vbEFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAHmtleU1hcHBpbmdQb29sQ29udHJhY1RvTFBBc3NldAAAAAEFAAAAC3Bvb2xBZGRyZXNzBQAAAAxscEFzc2V0SWRTdHIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAA9rZXlQb29sVG9XZWlnaHQAAAABBQAAAAtwb29sQWRkcmVzcwUAAAAKcG9vbFdlaWdodAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAPa2V5THBUb2tlbnNMaXN0AAAAAAkBAAAAF2NyZWF0ZUxwVG9rZW5zTGlzdEVudHJ5AAAAAQUAAAAMbHBBc3NldElkU3RyBQAAAANuaWwCAAAAB3N1Y2Nlc3MJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAAWkBAAAACm1hbmFnZVBvb2wAAAACAAAAC3Bvb2xBZGRyZXNzAAAACW5ld1N0YXR1cwMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABJwZXJtaXNzaW9ucyBkZW5pZWQEAAAACnBvb2xDb25maWcJAQAAAA1nZXRQb29sQ29uZmlnAAAAAQUAAAALcG9vbEFkZHJlc3MEAAAACnBvb2xTdGF0dXMJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAANaWR4UG9vbFN0YXR1cwQAAAAMbHBBc3NldElkU3RyCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAAEGlkeFBvb2xMUEFzc2V0SWQEAAAADmFtb3VudEFzc2V0U3RyCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAADWlkeEFtdEFzc2V0SWQEAAAADXByaWNlQXNzZXRTdHIJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAAPaWR4UHJpY2VBc3NldElkBAAAABRhbW91bnRBc3NldHNEZWNpbWFscwkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAADmlkeEFtdEFzc2V0RGNtBAAAABNwcmljZUFzc2V0c0RlY2ltYWxzCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAAQaWR4UHJpY2VBc3NldERjbQQAAAAVaW50ZXJuYWxBbW91bnRBc3NldElkCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAAOaWR4SUFtdEFzc2V0SWQEAAAAFGludGVybmFsUHJpY2VBc3NldElkCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAKcG9vbENvbmZpZwUAAAAQaWR4SVByaWNlQXNzZXRJZAQAAAAKbHBBc3NldERjbQkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAADWlkeExQQXNzZXREY20EAAAACHBvb2xUeXBlCQABkQAAAAIFAAAACnBvb2xDb25maWcFAAAAC2lkeFBvb2xUeXBlCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAAA1rZXlQb29sQ29uZmlnAAAAAgkAAaQAAAABBQAAABVpbnRlcm5hbEFtb3VudEFzc2V0SWQJAAGkAAAAAQUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQJAQAAAAtkYXRhUG9vbENmZwAAAAsFAAAAC3Bvb2xBZGRyZXNzCQABpAAAAAEFAAAACW5ld1N0YXR1cwUAAAAMbHBBc3NldElkU3RyBQAAAA5hbW91bnRBc3NldFN0cgUAAAANcHJpY2VBc3NldFN0cgUAAAAUYW1vdW50QXNzZXRzRGVjaW1hbHMFAAAAE3ByaWNlQXNzZXRzRGVjaW1hbHMFAAAAFWludGVybmFsQW1vdW50QXNzZXRJZAUAAAAUaW50ZXJuYWxQcmljZUFzc2V0SWQFAAAACmxwQXNzZXREY20FAAAACHBvb2xUeXBlBQAAAANuaWwAAAABaQEAAAAEZW1pdAAAAAEAAAAMYW1vdW50VG9FbWl0BAAAAAZjYWxsZXIIBQAAAAFpAAAABmNhbGxlcgQAAAAMb3JpZ2luQ2FsbGVyCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIEAAAAEGxwQXNzZXRSZXF1ZXN0ZWQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCIAAAABCQEAAAAea2V5TWFwcGluZ1Bvb2xDb250cmFjVG9MUEFzc2V0AAAAAQkABCUAAAABBQAAAAZjYWxsZXICAAAAHUludmFsaWQgTFAgYWRkcmVzcyBjYWxsZWQgbWUuBAAAAAdscEFzc2V0CQACWQAAAAEFAAAAEGxwQXNzZXRSZXF1ZXN0ZWQDCQAAZgAAAAIFAAAADGFtb3VudFRvRW1pdAAAAAAAAAAAAAkABRQAAAACCQAETAAAAAIJAQAAAAdSZWlzc3VlAAAAAwUAAAAHbHBBc3NldAUAAAAMYW1vdW50VG9FbWl0BgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADGFtb3VudFRvRW1pdAUAAAAHbHBBc3NldAUAAAADbmlsAgAAAAdzdWNjZXNzBQAAAANuaWwAAAABaQEAAAAEYnVybgAAAAEAAAAMYW1vdW50VG9CdXJuBAAAAAZjYWxsZXIIBQAAAAFpAAAABmNhbGxlcgQAAAAMb3JpZ2luQ2FsbGVyCAUAAAABaQAAAAxvcmlnaW5DYWxsZXIEAAAAB3BheW1lbnQJAQAAAAV2YWx1ZQAAAAEJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAEAAAADXBheW1lbnRBbW91bnQJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAAPaW5BbW91bnRBc3NldElkCQACWAAAAAEJAQAAAAV2YWx1ZQAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQEAAAAGmxwQXNzZXRSZXF1ZXN0ZWRGb3JCdXJuaW5nCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQkBAAAAHmtleU1hcHBpbmdQb29sQ29udHJhY1RvTFBBc3NldAAAAAEJAAQlAAAAAQUAAAAGY2FsbGVyAgAAAB1JbnZhbGlkIExQIGFkZHJlc3MgY2FsbGVkIG1lLgMJAQAAAAIhPQAAAAIFAAAAD2luQW1vdW50QXNzZXRJZAUAAAAabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmcJAAACAAAAAQIAAAAVSW52YWxpZCBhc3NldCBwYXNzZWQuAwkBAAAAAiE9AAAAAgUAAAAMYW1vdW50VG9CdXJuBQAAAA1wYXltZW50QW1vdW50CQAAAgAAAAECAAAAFkludmFsaWQgYW1vdW50IHBhc3NlZC4EAAAAB2xwQXNzZXQJAAJZAAAAAQUAAAAabHBBc3NldFJlcXVlc3RlZEZvckJ1cm5pbmcJAAUUAAAAAgkABEwAAAACCQEAAAAEQnVybgAAAAIFAAAAB2xwQXNzZXQFAAAADGFtb3VudFRvQnVybgUAAAADbmlsAgAAAAdzdWNjZXNzAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXnubYOh", "height": 1773233, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4EwB5dXLTaW2Tb7mQQVhxrr4EkZ1EUFFgVSzE24Qd8cS Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let a = | |
4 | + | let a = ((100 * 1000) * 1000) | |
5 | 5 | ||
6 | - | let b = | |
6 | + | let b = "__" | |
7 | 7 | ||
8 | - | let c = | |
8 | + | let c = 1 | |
9 | 9 | ||
10 | - | let d = | |
10 | + | let d = 2 | |
11 | 11 | ||
12 | - | let e = | |
12 | + | let e = 3 | |
13 | 13 | ||
14 | - | let f = | |
14 | + | let f = 4 | |
15 | 15 | ||
16 | - | let g = | |
16 | + | let g = 1 | |
17 | 17 | ||
18 | - | let h = | |
18 | + | let h = 2 | |
19 | 19 | ||
20 | - | let i = | |
20 | + | let i = 3 | |
21 | 21 | ||
22 | - | let j = | |
22 | + | let j = 1 | |
23 | 23 | ||
24 | - | let k = | |
24 | + | let k = 2 | |
25 | 25 | ||
26 | - | let l = | |
26 | + | let l = 3 | |
27 | 27 | ||
28 | - | let m = | |
28 | + | let m = 4 | |
29 | 29 | ||
30 | - | let n = | |
30 | + | let n = 5 | |
31 | 31 | ||
32 | - | let o = | |
32 | + | let o = 6 | |
33 | 33 | ||
34 | - | let p = | |
34 | + | let p = 7 | |
35 | 35 | ||
36 | - | let q = | |
36 | + | let q = 8 | |
37 | 37 | ||
38 | - | let r = | |
38 | + | let r = 9 | |
39 | 39 | ||
40 | - | let s = | |
40 | + | let s = 10 | |
41 | 41 | ||
42 | - | let t = | |
42 | + | let t = 11 | |
43 | 43 | ||
44 | - | let u = 10 | |
45 | - | ||
46 | - | let v = 1 | |
47 | - | ||
48 | - | let w = 2 | |
49 | - | ||
50 | - | let x = 3 | |
51 | - | ||
52 | - | let y = 1 | |
53 | - | ||
54 | - | let z = 7 | |
55 | - | ||
56 | - | func A (B,C) = fraction(toBigInt(B), d, toBigInt(C)) | |
44 | + | func u () = "%s__factoryConfig" | |
57 | 45 | ||
58 | 46 | ||
59 | - | func | |
47 | + | func v () = "%s__lpTokensList" | |
60 | 48 | ||
61 | 49 | ||
62 | - | func | |
50 | + | func w () = "%s%s__pool__scriptHash" | |
63 | 51 | ||
64 | 52 | ||
65 | - | func K (E) = if ((e > E)) | |
66 | - | then -(E) | |
67 | - | else E | |
53 | + | func x () = "%s__priceDecimals" | |
68 | 54 | ||
69 | 55 | ||
70 | - | func | |
56 | + | func y () = "%s__shutdown" | |
71 | 57 | ||
72 | 58 | ||
73 | - | func | |
59 | + | func z () = "%s__nextInternalAssetId" | |
74 | 60 | ||
75 | 61 | ||
76 | - | func | |
62 | + | func A (B) = ("%s%s__poolWeight__" + B) | |
77 | 63 | ||
78 | 64 | ||
79 | - | func | |
65 | + | func C (D) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(D)) | |
80 | 66 | ||
81 | 67 | ||
82 | - | func | |
68 | + | func E (F) = ("%s%s%s__mappings__baseAsset2internalId__" + F) | |
83 | 69 | ||
84 | 70 | ||
85 | - | func | |
71 | + | func G (H,I) = (((("%d%d%s__" + H) + "__") + I) + "__config") | |
86 | 72 | ||
87 | 73 | ||
88 | - | func | |
74 | + | func J (K) = (("%s%s%s__" + K) + "__mappings__lpAsset2Pool") | |
89 | 75 | ||
90 | 76 | ||
91 | - | func | |
77 | + | func L (M,N) = (((("%d%d%s%s__" + M) + "__") + N) + "__mappings__PoolAssets2LpAsset") | |
92 | 78 | ||
93 | 79 | ||
94 | - | func | |
80 | + | func O (P) = (("%s%s%s__" + P) + "__mappings__poolContract2PoolAssets") | |
95 | 81 | ||
96 | 82 | ||
97 | - | func | |
83 | + | func Q (M,N) = (((("%d%d%s%s__" + toString(M)) + "__") + toString(N)) + "__mappings__poolAssets2PoolContract") | |
98 | 84 | ||
99 | 85 | ||
100 | - | func | |
86 | + | func R (P) = (("%s%s%s__" + P) + "__mappings__poolContract2LpAsset") | |
101 | 87 | ||
102 | 88 | ||
103 | - | func | |
89 | + | func S (K) = (("%s%s%s__" + K) + "__mappings__lpAsset2PoolContract") | |
104 | 90 | ||
105 | 91 | ||
106 | - | func | |
92 | + | func T (U) = valueOrErrorMessage(getString(this, U), ("No data for this.key=" + U)) | |
107 | 93 | ||
108 | 94 | ||
109 | - | func | |
95 | + | func V (U) = valueOrErrorMessage(getBoolean(this, U), ("No data for this.key=" + U)) | |
110 | 96 | ||
111 | 97 | ||
112 | - | func | |
98 | + | func W (U) = valueOrErrorMessage(getInteger(this, U), ("No data for this.key=" + U)) | |
113 | 99 | ||
114 | 100 | ||
115 | - | func | |
101 | + | func X (Y,Z,aa,ab,ac,ad,ae) = makeString(["%s%s%s%s%s%s", Y, Z, aa, ab, ac, ad, ae], b) | |
116 | 102 | ||
117 | 103 | ||
118 | - | func | |
104 | + | func af (B,ag,ah,ai,aj,ak,al,am,an,ao,ap) = makeString(["%s%d%s%s%s%d%d%d%d%d%s", B, ag, ah, ai, aj, toString(ak), toString(al), toString(am), toString(an), toString(ao), ap], b) | |
119 | 105 | ||
120 | 106 | ||
121 | - | let an = addressFromStringValue(aj(this, L())) | |
122 | - | ||
123 | - | func ao () = valueOrElse(getBoolean(an, ag()), false) | |
107 | + | func aq (ar,as) = makeString(["%d%d", toString(ar), toString(as)], b) | |
124 | 108 | ||
125 | 109 | ||
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) | |
110 | + | func at (B) = { | |
111 | + | let au = split(T(O(B)), b) | |
112 | + | let H = au[1] | |
113 | + | let I = au[2] | |
114 | + | split(T(G(H, I)), b) | |
132 | 115 | } | |
133 | 116 | ||
134 | 117 | ||
135 | - | func as () = split(aj(an, Y()), f) | |
136 | - | ||
137 | - | ||
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) | |
139 | - | ||
140 | - | ||
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) | |
142 | - | ||
143 | - | ||
144 | - | func aI (aJ) = if ((aJ == "WAVES")) | |
145 | - | then wavesBalance(this).available | |
146 | - | else assetBalance(this, fromBase58String(aJ)) | |
147 | - | ||
148 | - | ||
149 | - | func aK (aL,aM) = fraction(aL, d, aM) | |
150 | - | ||
151 | - | ||
152 | - | func aN (aO,aP,aQ,aR) = { | |
153 | - | let aS = A(aQ, aO) | |
154 | - | let aT = A(aR, aP) | |
155 | - | aK(aT, aS) | |
118 | + | func av (aw,ax) = { | |
119 | + | let ay = valueOrElse(getInteger(this, E(aw)), 0) | |
120 | + | let az = valueOrElse(getInteger(this, z()), 0) | |
121 | + | let aA = if ((ay == 0)) | |
122 | + | then { | |
123 | + | let aB = (az + ax) | |
124 | + | $Tuple3(aB, [IntegerEntry(z(), aB), IntegerEntry(E(aw), aB), StringEntry(C(aB), aw)], true) | |
125 | + | } | |
126 | + | else $Tuple3(ay, nil, false) | |
127 | + | aA | |
156 | 128 | } | |
157 | 129 | ||
158 | 130 | ||
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] | |
131 | + | func aC (aD) = { | |
132 | + | let aE = getString(this, v()) | |
133 | + | if (isDefined(aE)) | |
134 | + | then ((value(aE) + b) + aD) | |
135 | + | else aD | |
170 | 136 | } | |
171 | 137 | ||
172 | 138 | ||
173 | - | ||
174 | - | ||
175 | - | ||
176 | - | | |
139 | + | @Callable(aF) | |
140 | + | func constructor (aG,aH,aa,ab,ac,ad,aI,aJ) = if ((aF.caller != this)) | |
141 | + | then throw("permissions denied") | |
142 | + | else [StringEntry(u(), X(aG, aH, aa, ab, ac, ad, aI)), IntegerEntry(x(), aJ)] | |
177 | 143 | ||
178 | 144 | ||
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)) | |
189 | - | then throw("Invalid asset passed.") | |
145 | + | ||
146 | + | @Callable(aF) | |
147 | + | func activateNewPool (B,ai,aj,aK,aL,aM,ap) = if ((aF.caller != this)) | |
148 | + | then throw("permissions denied") | |
149 | + | else if (isDefined(getString(O(B)))) | |
150 | + | then throw((("Pool address " + B) + " already registered.")) | |
190 | 151 | else { | |
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 == "")) | |
204 | - | then nil | |
205 | - | else [ScriptTransfer(S, by, if ((bk == "WAVES")) | |
206 | - | then unit | |
207 | - | else fromBase58String(bk)), ScriptTransfer(S, bz, if ((bl == "WAVES")) | |
208 | - | then unit | |
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) | |
152 | + | let aN = av(ai, 1) | |
153 | + | let aO = aN._1 | |
154 | + | let aP = av(aj, if (aN._3) | |
155 | + | then 2 | |
156 | + | else 1) | |
157 | + | let aQ = aP._1 | |
158 | + | let aR = valueOrErrorMessage(scriptHash(addressFromStringValue(B)), ("No script has been found on pool account " + B)) | |
159 | + | let aS = getBinaryValue(w()) | |
160 | + | let aT = getString(this, G(toString(aO), toString(aQ))) | |
161 | + | if (isDefined(aT)) | |
162 | + | then throw((((("Pool " + ai) + "/") + aj) + " has already been activated.")) | |
163 | + | else { | |
164 | + | let aU = value(getString(this, G(toString(aO), toString(aQ)))) | |
165 | + | let aV = if ((ai == "WAVES")) | |
166 | + | then a | |
167 | + | else pow(10, 0, value(assetInfo(fromBase58String(ai))).decimals, 0, 0, DOWN) | |
168 | + | let aW = if ((aj == "WAVES")) | |
169 | + | then a | |
170 | + | else pow(10, 0, value(assetInfo(fromBase58String(aj))).decimals, 0, 0, DOWN) | |
171 | + | let aX = Issue(aK, aL, 1, 8, true) | |
172 | + | let ah = calculateAssetId(aX) | |
173 | + | let aY = toBase58String(ah) | |
174 | + | let aZ = invoke(addressFromStringValue(B), "activate", [ai, aj], nil) | |
175 | + | if ((aZ == aZ)) | |
176 | + | then if ((aZ != "success")) | |
177 | + | then throw("Pool initialisation error happened.") | |
178 | + | else $Tuple2(((aN._2 ++ aP._2) ++ [aX, Burn(ah, 1), StringEntry(G(toString(aO), toString(aQ)), af(B, toString(c), aY, ai, aj, aV, aW, aO, aQ, a, ap)), StringEntry(J(aY), aq(aO, aQ)), StringEntry(L(toString(aO), toString(aQ)), ("%s__" + aY)), StringEntry(O(B), aq(aO, aQ)), StringEntry(Q(aO, aQ), B), StringEntry(S(aY), B), StringEntry(R(B), aY), IntegerEntry(A(B), aM), StringEntry(v(), aC(aY))]), "success") | |
179 | + | else throw("Strict value is not equal to itself.") | |
180 | + | } | |
211 | 181 | } | |
212 | - | } | |
213 | 182 | ||
214 | 183 | ||
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)) | |
229 | - | then true | |
230 | - | else (bK != bO)) | |
231 | - | then throw("Invalid amt or price asset passed.") | |
232 | - | else { | |
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)) | |
245 | - | then { | |
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) | |
250 | - | } | |
251 | - | else { | |
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) | |
257 | - | else false) | |
258 | - | then throw(((("Price slippage " + toString(bT)) + " exceeded the passed limit of ") + toString(bU))) | |
259 | - | else { | |
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) | |
270 | - | } | |
271 | - | } | |
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)) | |
278 | - | then throw("Invalid calculations. LP calculated is less than zero.") | |
279 | - | else { | |
280 | - | let ce = if (!(bI)) | |
281 | - | then 0 | |
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) | |
287 | - | } | |
288 | - | } | |
289 | - | } | |
290 | 184 | ||
291 | - | ||
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()) | |
306 | - | then true | |
307 | - | else (bm == j)) | |
308 | - | then true | |
309 | - | else (bm == k)) | |
310 | - | then throw("Exchange operations disabled") | |
311 | - | else { | |
312 | - | let co = cj.assetPair.amountAsset | |
313 | - | let cp = if ((co == unit)) | |
314 | - | then "WAVES" | |
315 | - | else toBase58String(value(co)) | |
316 | - | let cq = cj.assetPair.priceAsset | |
317 | - | let cr = if ((cq == unit)) | |
318 | - | then "WAVES" | |
319 | - | else toBase58String(value(cq)) | |
320 | - | if (if ((cp != ck)) | |
321 | - | then true | |
322 | - | else (cr != cl)) | |
323 | - | then throw("Wrong order assets.") | |
324 | - | else { | |
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) | |
331 | - | true | |
332 | - | } | |
333 | - | } | |
334 | - | } | |
335 | - | ||
336 | - | ||
337 | - | func cw (cx) = if ((size(cx.payments) != 1)) | |
338 | - | then throw("exactly 1 payment is expected") | |
185 | + | @Callable(aF) | |
186 | + | func managePool (B,ba) = if ((aF.caller != this)) | |
187 | + | then throw("permissions denied") | |
339 | 188 | else { | |
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()) | |
349 | - | then true | |
350 | - | else (bm == k)) | |
351 | - | then throw(("Get operation is blocked by admin. Status = " + toString(bm))) | |
352 | - | else $Tuple5(by, bz, cz, bh, bA) | |
189 | + | let aT = at(B) | |
190 | + | let ag = aT[k] | |
191 | + | let aY = aT[l] | |
192 | + | let ai = aT[m] | |
193 | + | let aj = aT[n] | |
194 | + | let aV = parseIntValue(aT[o]) | |
195 | + | let aW = parseIntValue(aT[p]) | |
196 | + | let aO = parseIntValue(aT[q]) | |
197 | + | let aQ = parseIntValue(aT[r]) | |
198 | + | let bb = parseIntValue(aT[s]) | |
199 | + | let ap = aT[t] | |
200 | + | [StringEntry(G(toString(aO), toString(aQ)), af(B, toString(ba), aY, ai, aj, aV, aW, aO, aQ, bb, ap))] | |
353 | 201 | } | |
354 | 202 | ||
355 | 203 | ||
356 | - | func cA (cx,bC,bI) = if ((size(cx.payments) != 2)) | |
357 | - | then throw("exactly 2 payments are expected") | |
358 | - | else { | |
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()) | |
364 | - | then true | |
365 | - | else (bm == i)) | |
366 | - | then true | |
367 | - | else (bm == k)) | |
368 | - | then throw(("Put operation is blocked by admin. Status = " + toString(bm))) | |
369 | - | else cD | |
370 | - | } | |
371 | 204 | ||
372 | - | ||
373 | - | @Callable(cx) | |
374 | - | func constructor (an,cE) = if ((cx.caller != this)) | |
375 | - | then throw("permissions denied") | |
376 | - | else [StringEntry(L(), an), StringEntry(M(), cE)] | |
377 | - | ||
378 | - | ||
379 | - | ||
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)) | |
386 | - | then throw("Invalid slippageTolerance passed") | |
387 | - | else { | |
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)) | |
398 | - | then { | |
399 | - | let cM = if ((cf > 0)) | |
400 | - | then invoke(cI, "put", nil, [AttachedPayment(cJ, cf)]) | |
401 | - | else nil | |
402 | - | if ((cM == cM)) | |
403 | - | then { | |
404 | - | let cN = if ((cg > 0)) | |
405 | - | then invoke(cI, "put", nil, [AttachedPayment(cK, cg)]) | |
406 | - | else nil | |
407 | - | if ((cN == cN)) | |
408 | - | then { | |
409 | - | let cO = if (cF) | |
410 | - | then { | |
411 | - | let cP = invoke(cH, "stake", nil, [AttachedPayment(bj, ce)]) | |
412 | - | if ((cP == cP)) | |
413 | - | then nil | |
414 | - | else throw("Strict value is not equal to itself.") | |
415 | - | } | |
416 | - | else [ScriptTransfer(cx.caller, ce, bj)] | |
417 | - | (bA ++ cO) | |
418 | - | } | |
419 | - | else throw("Strict value is not equal to itself.") | |
420 | - | } | |
421 | - | else throw("Strict value is not equal to itself.") | |
422 | - | } | |
423 | - | else throw("Strict value is not equal to itself.") | |
424 | - | } | |
205 | + | @Callable(aF) | |
206 | + | func emit (bc) = { | |
207 | + | let bd = aF.caller | |
208 | + | let be = aF.originCaller | |
209 | + | let bf = valueOrErrorMessage(getString(R(toString(bd))), "Invalid LP address called me.") | |
210 | + | let bg = fromBase58String(bf) | |
211 | + | if ((bc > 0)) | |
212 | + | then $Tuple2([Reissue(bg, bc, true), ScriptTransfer(aF.caller, bc, bg)], "success") | |
213 | + | else nil | |
425 | 214 | } | |
426 | 215 | ||
427 | 216 | ||
428 | 217 | ||
429 | - | @Callable(cx) | |
430 | - | func putForFree (cQ) = if ((0 > cQ)) | |
431 | - | then throw("Invalid value passed") | |
432 | - | else { | |
433 | - | let cD = cA(cx, cQ, false) | |
434 | - | cD._9 | |
435 | - | } | |
436 | - | ||
437 | - | ||
438 | - | ||
439 | - | @Callable(cx) | |
440 | - | func get () = { | |
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 | |
450 | - | else throw("Strict value is not equal to itself.") | |
451 | - | } | |
452 | - | ||
453 | - | ||
454 | - | ||
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))) | |
218 | + | @Callable(aF) | |
219 | + | func burn (bh) = { | |
220 | + | let bd = aF.caller | |
221 | + | let be = aF.originCaller | |
222 | + | let bi = value(aF.payments[0]) | |
223 | + | let bj = value(bi.amount) | |
224 | + | let bk = toBase58String(value(bi.assetId)) | |
225 | + | let bl = valueOrErrorMessage(getString(R(toString(bd))), "Invalid LP address called me.") | |
226 | + | if ((bk != bl)) | |
227 | + | then throw("Invalid asset passed.") | |
228 | + | else if ((bh != bj)) | |
229 | + | then throw("Invalid amount passed.") | |
467 | 230 | else { | |
468 | - | let cS = invoke(an, "burn", [cz], [AttachedPayment(bh, cz)]) | |
469 | - | if ((cS == cS)) | |
470 | - | then bA | |
471 | - | else throw("Strict value is not equal to itself.") | |
231 | + | let bg = fromBase58String(bl) | |
232 | + | $Tuple2([Burn(bg, bh)], "success") | |
472 | 233 | } | |
473 | 234 | } | |
474 | 235 | ||
475 | 236 | ||
476 | - | ||
477 | - | @Callable(cx) | |
478 | - | func activate (cV,cW) = if ((toString(cx.caller) != toString(an))) | |
479 | - | then throw("permissions denied") | |
480 | - | else $Tuple2([StringEntry(V(), cV), StringEntry(W(), cW)], "success") | |
481 | - | ||
482 | - | ||
483 | - | ||
484 | - | @Callable(cx) | |
485 | - | func getPoolConfigWrapperREADONLY () = $Tuple2(nil, ap()) | |
486 | - | ||
487 | - | ||
488 | - | ||
489 | - | @Callable(cx) | |
490 | - | func getAccBalanceWrapperREADONLY (aJ) = $Tuple2(nil, aI(aJ)) | |
491 | - | ||
492 | - | ||
493 | - | ||
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])]) | |
498 | - | } | |
499 | - | ||
500 | - | ||
501 | - | ||
502 | - | @Callable(cx) | |
503 | - | func toX18WrapperREADONLY (B,C) = $Tuple2(nil, toString(A(B, C))) | |
504 | - | ||
505 | - | ||
506 | - | ||
507 | - | @Callable(cx) | |
508 | - | func fromX18WrapperREADONLY (E,F) = $Tuple2(nil, D(parseBigIntValue(E), F)) | |
509 | - | ||
510 | - | ||
511 | - | ||
512 | - | @Callable(cx) | |
513 | - | func calcPriceBigIntWrapperREADONLY (aL,aM) = $Tuple2(nil, toString(aK(parseBigIntValue(aL), parseBigIntValue(aM)))) | |
514 | - | ||
515 | - | ||
516 | - | ||
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)) | |
535 | - | } | |
536 | - | ||
537 | - | ||
538 | - | ||
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)) | |
554 | - | } | |
555 | - | ||
556 | - | ||
557 | - | ||
558 | - | @Callable(cx) | |
559 | - | func statsREADONLY () = { | |
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)) | |
577 | - | } | |
578 | - | ||
579 | - | ||
580 | - | ||
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)) | |
598 | - | then e | |
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)) | |
610 | - | } | |
611 | - | ||
612 | - | ||
613 | - | ||
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)) | |
631 | - | then e | |
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)) | |
643 | - | } | |
644 | - | ||
645 | - | ||
646 | - | ||
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)) | |
658 | - | } | |
659 | - | ||
660 | - | ||
661 | - | @Verifier(do) | |
662 | - | func dp () = { | |
663 | - | let dq = do | |
664 | - | if ($isInstanceOf(dq, "Order")) | |
665 | - | then { | |
666 | - | let cj = dq | |
667 | - | if (ci(cj)) | |
668 | - | then sigVerify(cj.bodyBytes, cj.proofs[0], cj.senderPublicKey) | |
669 | - | else false | |
670 | - | } | |
671 | - | else { | |
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)) | |
676 | - | } | |
677 | - | } | |
237 | + | @Verifier(bm) | |
238 | + | func bn () = sigVerify(bm.bodyBytes, bm.proofs[0], bm.senderPublicKey) | |
678 | 239 |
github/deemru/w8io/169f3d6 173.60 ms ◑![]()