tx · 72W8fZGPGKWhpTMcctoAmgKWS81Vzk7kpU6S4457fidV

3N9Q1fto4gNiBzBhunuF57xU7chekeJBzJb:  -0.01000000 Waves

2021.11.24 01:25 [1804275] smart account 3N9Q1fto4gNiBzBhunuF57xU7chekeJBzJb > SELF 0.00000000 Waves

{ "type": 13, "id": "72W8fZGPGKWhpTMcctoAmgKWS81Vzk7kpU6S4457fidV", "fee": 1000000, "feeAssetId": null, "timestamp": 1637706412678, "version": 1, "sender": "3N9Q1fto4gNiBzBhunuF57xU7chekeJBzJb", "senderPublicKey": "5LCbyfeLnA6WFFq4M6L7AEzy8ktT8sL9A5JXoyuaxCCJ", "proofs": [ "3zM6k9pBbmDmEZCncRQ3HS43n8uzQLsiDK1fzWGqVnoHJd4oE9CwMhPh6wVNJuUeLdDi3PuNYPaP9XL3JeAtJvke" ], "script": "base64:AAIFAAAAAAAAABoIAhIDCgEIEgASBAoCCAESAwoBCBIECgIICAAAADoAAAAABlNDQUxFOAAAAAAAAAAACAAAAAAFTVVMVDgAAAAAAAX14QAAAAAAB1NDQUxFMTgAAAAAAAAAABIAAAAABk1VTFQxOAkAATYAAAABAA3gtrOnZAAAAAAAAANTRVACAAAAAl9fAAAAAA5QT09MV0VJR0hUTVVMVAUAAAAFTVVMVDgBAAAAD2dldFN0cmluZ09yRmFpbAAAAAEAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQiAAAAAQUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgIAAAAPbWFuZGF0b3J5IHRoaXMuBQAAAANrZXkCAAAADyBpcyBub3QgZGVmaW5lZAEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAptYW5kYXRvcnkgCQAEJQAAAAEFAAAAB2FkZHJlc3MCAAAAAS4FAAAAA2tleQIAAAAPIGlzIG5vdCBkZWZpbmVkAQAAAAxnZXRJbnRPclplcm8AAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQAAAAAAAAAAAAEAAAAPZ2V0SW50T3JEZWZhdWx0AAAAAwAAAAdhZGRyZXNzAAAAA2tleQAAAApkZWZhdWx0VmFsCQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQUAAAAKZGVmYXVsdFZhbAEAAAAMZ2V0SW50T3JGYWlsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAICAAAAD21hbmRhdG9yeSB0aGlzLgUAAAADa2V5AgAAAA8gaXMgbm90IGRlZmluZWQBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAIAAAAcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwAAAAAYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwAAAAAAAAAAABAAAAABlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwAAAAAAAAAAACAAAAABRJZHhGYWN0b3J5Q2ZnSWRvRGFwcAAAAAAAAAAAAwAAAAAVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwAAAAAAAAAAAEAAAAABlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwAAAAAAAAAAAFAAAAABVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAAAAAAAAAAAAYAAAAAGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAAAAAAAAAAAAcBAAAADWtleUZhY3RvcnlDZmcAAAAAAgAAABElc19fZmFjdG9yeUNvbmZpZwEAAAAaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmcAAAABAAAACmxwQXNzZXRTdHIJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgUAAAAKbHBBc3NldFN0cgkABEwAAAACAgAAAB5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFAAAAA25pbAUAAAADU0VQAQAAABBrZXlGYWN0b3J5THBMaXN0AAAAAAIAAAAQJXNfX2xwVG9rZW5zTGlzdAEAAAAma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MAAAABAAAACmxwQXNzZXRTdHIJAAS5AAAAAgkABEwAAAACAgAAAAYlcyVzJXMJAARMAAAAAgUAAAAKbHBBc3NldFN0cgkABEwAAAACAgAAAB5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFAAAAA25pbAUAAAADU0VQAQAAABRrZXlGYWN0b3J5UG9vbFdlaWdodAAAAAEAAAAPY29udHJhY3RBZGRyZXNzCQAEuQAAAAIJAARMAAAAAgIAAAAEJXMlcwkABEwAAAACAgAAAApwb29sV2VpZ2h0CQAETAAAAAIFAAAAD2NvbnRyYWN0QWRkcmVzcwUAAAADbmlsBQAAAANTRVABAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAQAAAA9nZXRTdHJpbmdPckZhaWwAAAABCQEAAAARa2V5RmFjdG9yeUFkZHJlc3MAAAAAAQAAAApyZWFkTHBMaXN0AAAAAAkABLUAAAACCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIJAQAAABhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwAAAAACQEAAAAQa2V5RmFjdG9yeUxwTGlzdAAAAAACAAAAAAUAAAADU0VQAQAAABRyZWFkRmFjdG9yeUNmZ09yRmFpbAAAAAEAAAAHZmFjdG9yeQkABLUAAAACCQEAAAAYZ2V0U3RyaW5nQnlBZGRyZXNzT3JGYWlsAAAAAgUAAAAHZmFjdG9yeQkBAAAADWtleUZhY3RvcnlDZmcAAAAABQAAAANTRVABAAAAGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbAAAAAEAAAAKZmFjdG9yeUNmZwkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQkAAZEAAAACBQAAAApmYWN0b3J5Q2ZnBQAAABlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwAQAAABhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAZSWR4RmFjdG9yeUNmZ0VtaXNzaW9uRGFwcAEAAAAXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwAAAABAAAACmZhY3RvcnlDZmcJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEJAAGRAAAAAgUAAAAKZmFjdG9yeUNmZwUAAAAYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwAQAAAB5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQAAAAAAgAAABslcyVzX19yYXRlUGVyQmxvY2tfX2N1cnJlbnQBAAAAIWtleUVtaXNzaW9uUmF0ZVBlckJsb2NrTWF4Q3VycmVudAAAAAACAAAAHiVzJXNfX3JhdGVQZXJCbG9ja01heF9fY3VycmVudAEAAAAVa2V5RW1pc3Npb25TdGFydEJsb2NrAAAAAAIA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AAAAAgUAAAAJbHBBc3NldElkCQAETAAAAAIFAAAABHR5cGUJAARMAAAAAgkAAaQAAAABBQAAAAZoZWlnaHQJAARMAAAAAgkAAaQAAAABCAUAAAAJbGFzdEJsb2NrAAAACXRpbWVzdGFtcAkABEwAAAACCQABpAAAAAEFAAAABmFtb3VudAUAAAADbmlsBQAAAANTRVABAAAAFU9wZXJhdGlvbkhpc3RvcnlFbnRyeQAAAAUAAAAEdHlwZQAAAAt1c2VyQWRkcmVzcwAAAAlscEFzc2V0SWQAAAAGYW1vdW50AAAABHR4SWQJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABlrZXlPcGVyYXRpb25IaXN0b3J5UmVjb3JkAAAAAwUAAAAEdHlwZQUAAAALdXNlckFkZHJlc3MJAAJYAAAAAQUAAAAEdHhJZAkBAAAAE2Zvcm1hdEhpc3RvcnlSZWNvcmQAAAAEBQAAAAt1c2VyQWRkcmVzcwUAAAAJbHBBc3NldElkBQAAAAR0eXBlBQAAAAZhbW91bnQAAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbAAAAAAAAAAACmZhY3RvcnlDZmcJAQAAABRyZWFkRmFjdG9yeUNmZ09yRmFpbAAAAAEFAAAAD2ZhY3RvcnlDb250cmFjdAAAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbAAAAAEFAAAACmZhY3RvcnlDZmcBAAAAG2NhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdAAAAAQAAAAMc3Rha2VkQnlVc2VyAAAAJnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWQMDCQAAAAAAAAIFAAAAJnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0T3JaZXJvAAAAAAAAAAAACQAAZgAAAAIFAAAADHN0YWtlZEJ5VXNlcgAAAAAAAAAAAAcAAAAAAAAAAAADCQAAAAAAAAIFAAAADHN0YWtlZEJ5VXNlcgAAAAAAAAAAAAUAAAASd3hQZXJMcEludGVncmFsTmV3AwMJAABmAAAAAgUAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8AAAAAAAAAAAAJAABmAAAAAgUAAAAMc3Rha2VkQnlVc2VyAAAAAAAAAAAABwkBAAAADGdldEludE9yRmFpbAAAAAIFAAAABHRoaXMFAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZCQAAAgAAAAECAAAALWNhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdDogdW5leHBlY3RlZCBzdGF0ZQEAAAAVcmVmcmVzaEludGVncmFsVmFsdWVzAAAABAAAAAxscEFzc2V0SWRTdHIAAAAOdXNlckFkZHJlc3NTdHIAAAAOcG9vbEFkZHJlc3NTdHIAAAANbHBEZWx0YUFtb3VudAQAAAAPc3Rha2VkQnlVc2VyS0VZCQEAAAAPa2V5U3Rha2VkQnlVc2VyAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIFAAAADGxwQXNzZXRJZFN0cgQAAAAOc3Rha2VkVG90YWxLRVkJAQAAAA5rZXlTdGFrZWRUb3RhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAMc3Rha2VkQnlVc2VyCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAAD3N0YWtlZEJ5VXNlcktFWQQAAAALc3Rha2VkVG90YWwJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAOc3Rha2VkVG90YWxLRVkEAAAACnBvb2xXZWlnaHQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAFGtleUZhY3RvcnlQb29sV2VpZ2h0AAAAAQUAAAAOcG9vbEFkZHJlc3NTdHIEAAAAEmVtaXNzaW9uU3RhcnRCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAABVrZXlFbWlzc2lvblN0YXJ0QmxvY2sAAAAABAAAABJ3eEVtaXNzaW9uUGVyQmxvY2sJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAQAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawkAAGsAAAADBQAAABJ3eEVtaXNzaW9uUGVyQmxvY2sFAAAACnBvb2xXZWlnaHQJAABoAAAAAgUAAAAOUE9PTFdFSUdIVE1VTFQAAAAAAAAAAAMEAAAAEnd4UGVyTHBJbnRlZ3JhbEtFWQkBAAAAEmtleVd4UGVyTHBJbnRlZ3JhbAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodEtFWQkBAAAAH2tleVd4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHQAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAEHd4VG9DbGFpbVVzZXJLRVkJAQAAABBrZXlXeFRvQ2xhaW1Vc2VyAAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRLRVkJAQAAACNrZXlXeFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodAAAAAIFAAAADGxwQXNzZXRJZFN0cgUAAAAOdXNlckFkZHJlc3NTdHIEAAAACnd4UGVyTHBLRVkJAQAAAAprZXlXeFBlckxwAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAABp3eFBlckxwSW50ZWdyYWxVc2VyTGFzdEtFWQkBAAAAGmtleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0AAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAcd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodAkBAAAAD2dldEludE9yRGVmYXVsdAAAAAMFAAAABHRoaXMFAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHRLRVkFAAAAEmVtaXNzaW9uU3RhcnRCbG9jawQAAAAPd3hQZXJMcEludGVncmFsCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAASd3hQZXJMcEludGVncmFsS0VZBAAAAA13eFRvQ2xhaW1Vc2VyCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAQd3hUb0NsYWltVXNlcktFWQQAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8JAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWQQAAAANd3hQZXJMcE9yWmVybwkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAACnd4UGVyTHBLRVkEAAAAAmRoCQABlgAAAAEJAARMAAAAAgkAAGUAAAACBQAAAAZoZWlnaHQFAAAAHHd4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHQJAARMAAAAAgAAAAAAAAAAAAUAAAADbmlsBAAAAAd3eFBlckxwAwkBAAAAAiE9AAAAAgUAAAANd3hQZXJMcE9yWmVybwAAAAAAAAAAAAUAAAANd3hQZXJMcE9yWmVybwkAAGsAAAADBQAAABZwb29sV3hFbWlzc2lvblBlckJsb2NrBQAAAAVNVUxUOAUAAAALc3Rha2VkVG90YWwEAAAADnN0YWtlZFRvdGFsTmV3CQAAZAAAAAIFAAAAC3N0YWtlZFRvdGFsBQAAAA1scERlbHRhQW1vdW50BAAAABJ3eFBlckxwSW50ZWdyYWxOZXcJAABkAAAAAgUAAAAPd3hQZXJMcEludGVncmFsCQAAaAAAAAIFAAAAB3d4UGVyTHAFAAAAAmRoBAAAABd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdAkBAAAAG2NhbGNXeFBlckxwSW50ZWdyYWxVc2VyTGFzdAAAAAQFAAAADHN0YWtlZEJ5VXNlcgUAAAAmd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHRPclplcm8FAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkEAAAAEHd4VG9DbGFpbVVzZXJOZXcJAABkAAAAAgUAAAANd3hUb0NsYWltVXNlcgkAAGsAAAADCQAAZQAAAAIFAAAAEnd4UGVyTHBJbnRlZ3JhbE5ldwUAAAAXd3hQZXJMcEludGVncmFsVXNlckxhc3QFAAAADHN0YWtlZEJ5VXNlcgUAAAAFTVVMVDgEAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0TmV3BQAAABJ3eFBlckxwSW50ZWdyYWxOZXcEAAAACnd4UGVyTHBOZXcJAABpAAAAAgUAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawUAAAAOc3Rha2VkVG90YWxOZXcEAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHROZXcFAAAABmhlaWdodAQAAAAjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHROZXcFAAAABmhlaWdodAQAAAAFZGVidWcJAAS5AAAAAgkABEwAAAACCQABpAAAAAEFAAAAEHd4VG9DbGFpbVVzZXJOZXcJAARMAAAAAgkAAaQAAAABBQAAABJ3eFBlckxwSW50ZWdyYWxOZXcJAARMAAAAAgkAAaQAAAABBQAAABd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdAkABEwAAAACCQABpAAAAAEFAAAADHN0YWtlZEJ5VXNlcgkABEwAAAACCQABpAAAAAEFAAAAAmRoCQAETAAAAAIJAAGkAAAAAQUAAAAHd3hQZXJMcAkABEwAAAACCQABpAAAAAEFAAAAC3N0YWtlZFRvdGFsCQAETAAAAAIJAAGkAAAAAQUAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawkABEwAAAACCQABpAAAAAEFAAAAEnd4RW1pc3Npb25QZXJCbG9jawkABEwAAAACCQABpAAAAAEFAAAACnBvb2xXZWlnaHQFAAAAA25pbAIAAAACOjoJAAUVAAAAAwUAAAAQd3hUb0NsYWltVXNlck5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAASd3hQZXJMcEludGVncmFsS0VZBQAAABJ3eFBlckxwSW50ZWdyYWxOZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHRLRVkFAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHROZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAEHd4VG9DbGFpbVVzZXJLRVkFAAAAEHd4VG9DbGFpbVVzZXJOZXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0S0VZBQAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAKd3hQZXJMcEtFWQUAAAAKd3hQZXJMcE5ldwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAad3hQZXJMcEludGVncmFsVXNlckxhc3RLRVkFAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0TmV3BQAAAANuaWwFAAAABWRlYnVnAAAABQAAAAFpAQAAAAtjb25zdHJ1Y3RvcgAAAAEAAAARZmFjdG9yeUFkZHJlc3NTdHIDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAObm90IGF1dGhvcml6ZWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEWtleUZhY3RvcnlBZGRyZXNzAAAAAAUAAAARZmFjdG9yeUFkZHJlc3NTdHIFAAAAA25pbAAAAAFpAQAAAAVzdGFrZQAAAAADCQEAAAACIT0AAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQAAAgAAAAECAAAANGludmFsaWQgcGF5bWVudCAtIGV4YWN0IG9uZSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEAAAAA3BtdAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAJbHBBc3NldElkCQEAAAAFdmFsdWUAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAADGxwQXNzZXRJZFN0cgkAAlgAAAABBQAAAAlscEFzc2V0SWQEAAAABmFtb3VudAgFAAAAA3BtdAAAAAZhbW91bnQEAAAADnBvb2xBZGRyZXNzU3RyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmcAAAABBQAAAAxscEFzc2V0SWRTdHIJAAEsAAAAAgIAAAAVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQAAAAxscEFzc2V0SWRTdHIEAAAACWNhbGxlclN0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAADnVzZXJBZGRyZXNzU3RyAwkAAAAAAAACBQAAAAljYWxsZXJTdHIFAAAADnBvb2xBZGRyZXNzU3RyCQAEJQAAAAEIBQAAAAFpAAAADG9yaWdpbkNhbGxlcgUAAAAJY2FsbGVyU3RyBAAAAA9zdGFrZWRCeVVzZXJLRVkJAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBAAAAA5zdGFrZWRUb3RhbEtFWQkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAPc3Rha2VkQnlVc2VyS0VZBAAAAAtzdGFrZWRUb3RhbAkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA5zdGFrZWRUb3RhbEtFWQQAAAAKcG9vbFdlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAPZmFjdG9yeUNvbnRyYWN0CQEAAAAUa2V5RmFjdG9yeVBvb2xXZWlnaHQAAAABBQAAAA5wb29sQWRkcmVzc1N0cgQAAAASZW1pc3Npb25TdGFydEJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAAEAAAAEnd4RW1pc3Npb25QZXJCbG9jawkBAAAADGdldEludE9yRmFpbAAAAAIFAAAAEGVtaXNzaW9uQ29udHJhY3QJAQAAAB5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQAAAAABAAAABZwb29sV3hFbWlzc2lvblBlckJsb2NrCQAAawAAAAMFAAAAEnd4RW1pc3Npb25QZXJCbG9jawUAAAAKcG9vbFdlaWdodAkAAGgAAAACBQAAAA5QT09MV0VJR0hUTVVMVAAAAAAAAAAAAwQAAAASd3hQZXJMcEludGVncmFsS0VZCQEAAAASa2V5V3hQZXJMcEludGVncmFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAB93eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0S0VZCQEAAAAfa2V5V3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodAAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAQd3hUb0NsYWltVXNlcktFWQkBAAAAEGtleVd4VG9DbGFpbVVzZXIAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAACN3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodEtFWQkBAAAAI2tleVd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0AAAAAgUAAAAMbHBBc3NldElkU3RyBQAAAA51c2VyQWRkcmVzc1N0cgQAAAAKd3hQZXJMcEtFWQkBAAAACmtleVd4UGVyTHAAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZCQEAAAAaa2V5V3hQZXJMcEludGVncmFsVXNlckxhc3QAAAACBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBAAAABx3eFBlckxwSW50ZWdyYWxMYXN0VXBkSGVpZ2h0CQEAAAAPZ2V0SW50T3JEZWZhdWx0AAAAAwUAAAAEdGhpcwUAAAAfd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodEtFWQUAAAASZW1pc3Npb25TdGFydEJsb2NrBAAAAA93eFBlckxwSW50ZWdyYWwJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABJ3eFBlckxwSW50ZWdyYWxLRVkEAAAADXd4VG9DbGFpbVVzZXIJAQAAAAxnZXRJbnRPclplcm8AAAACBQAAAAR0aGlzBQAAABB3eFRvQ2xhaW1Vc2VyS0VZBAAAACB3eFBlckxwSW50ZWdyYWxVc2VyTGFzdFVwZEhlaWdodAkBAAAADGdldEludE9yWmVybwAAAAIFAAAABHRoaXMFAAAAI3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0S0VZBAAAAA13eFBlckxwT3JaZXJvCQEAAAAMZ2V0SW50T3JaZXJvAAAAAgUAAAAEdGhpcwUAAAAKd3hQZXJMcEtFWQQAAAACZGgJAAGWAAAAAQkABEwAAAACCQAAZQAAAAIFAAAABmhlaWdodAUAAAAcd3hQZXJMcEludGVncmFsTGFzdFVwZEhlaWdodAkABEwAAAACAAAAAAAAAAAABQAAAANuaWwEAAAAB3d4UGVyTHADCQEAAAACIT0AAAACBQAAAA13eFBlckxwT3JaZXJvAAAAAAAAAAAABQAAAA13eFBlckxwT3JaZXJvCQAAaQAAAAIFAAAAFnBvb2xXeEVtaXNzaW9uUGVyQmxvY2sFAAAAC3N0YWtlZFRvdGFsBAAAAA5zdGFrZWRUb3RhbE5ldwkAAGQAAAACBQAAAAtzdGFrZWRUb3RhbAUAAAAGYW1vdW50BAAAABJ3eFBlckxwSW50ZWdyYWxOZXcJAABkAAAAAgUAAAAPd3hQZXJMcEludGVncmFsCQAAaAAAAAIFAAAAB3d4UGVyTHAFAAAAAmRoBAAAABd3eFBlckxwSW50ZWdyYWxVc2VyTGFzdAMDCQAAAAAAAAIFAAAAIHd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0VXBkSGVpZ2h0AAAAAAAAAAAACQAAZgAAAAIFAAAADHN0YWtlZEJ5VXNlcgAAAAAAAAAAAAcAAAAAAAAAAAADCQAAAAAAAAIFAAAADHN0YWtlZEJ5VXNlcgAAAAAAAAAAAAUAAAASd3hQZXJMcEludGVncmFsTmV3AwMJAABmAAAAAgUAAAAgd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHQAAAAAAAAAAAAJAABmAAAAAgUAAAAMc3Rha2VkQnlVc2VyAAAAAAAAAAAABwkBAAAADGdldEludE9yRmFpbAAAAAIFAAAABHRoaXMFAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0S0VZCQAAAgAAAAECAAAAEUludmFsaWQgY29uZGl0aW9uBAAAABB3eFRvQ2xhaW1Vc2VyTmV3CQAAZAAAAAIFAAAADXd4VG9DbGFpbVVzZXIJAABoAAAAAgkAAGUAAAACBQAAABJ3eFBlckxwSW50ZWdyYWxOZXcFAAAAF3d4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0BQAAAAxzdGFrZWRCeVVzZXIEAAAAGnd4UGVyTHBJbnRlZ3JhbFVzZXJMYXN0TmV3BQAAABJ3eFBlckxwSW50ZWdyYWxOZXcEAAAACnd4UGVyTHBOZXcJAABpAAAAAgUAAAAWcG9vbFd4RW1pc3Npb25QZXJCbG9jawUAAAAOc3Rha2VkVG90YWxOZXcEAAAAH3d4UGVyTHBJbnRlZ3JhbExhc3RVcGRIZWlnaHROZXcFAAAABmhlaWdodAQAAAAjd3hQZXJMcEludGVncmFsVXNlckxhc3RVcGRIZWlnaHROZXcFAAAABmhlaWdodAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAPc3Rha2VkQnlVc2VyS0VZCQAAZAAAAAIFAAAADHN0YWtlZEJ5VXNlcgUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA5zdGFrZWRUb3RhbEtFWQUAAAAOc3Rha2VkVG90YWxOZXcJAARMAAAAAgkBAAAAFU9wZXJhdGlvbkhpc3RvcnlFbnRyeQAAAAUCAAAABXN0YWtlBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBQAAAAZhbW91bnQIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAAAAAFpAQAAAAd1bnN0YWtlAAAAAgAAAAxscEFzc2V0SWRTdHIAAAAGYW1vdW50BAAAAA51c2VyQWRkcmVzc1N0cgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIEAAAACWxwQXNzZXRJZAkAAlkAAAABBQAAAAxscEFzc2V0SWRTdHIDCQEAAAABIQAAAAEJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAAD2ZhY3RvcnlDb250cmFjdAkBAAAAGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nAAAAAQUAAAAMbHBBc3NldElkU3RyCQAAAgAAAAEJAAEsAAAAAgIAAAAVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQAAAAxscEFzc2V0SWRTdHIEAAAAD3N0YWtlZEJ5VXNlcktFWQkBAAAAD2tleVN0YWtlZEJ5VXNlcgAAAAIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAAxscEFzc2V0SWRTdHIEAAAADnN0YWtlZFRvdGFsS0VZCQEAAAAOa2V5U3Rha2VkVG90YWwAAAABBQAAAAxscEFzc2V0SWRTdHIEAAAADHN0YWtlZEJ5VXNlcgkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA9zdGFrZWRCeVVzZXJLRVkEAAAAC3N0YWtlZFRvdGFsCQEAAAAKcmVhZFN0YWtlZAAAAAEFAAAADnN0YWtlZFRvdGFsS0VZAwkAAGYAAAACBQAAAAZhbW91bnQFAAAADHN0YWtlZEJ5VXNlcgkAAAIAAAABAgAAACRwYXNzZWQgYW1vdW50IGlzIGxlc3MgdGhlbiBhdmFpbGFibGUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAD3N0YWtlZEJ5VXNlcktFWQkAAGUAAAACBQAAAAxzdGFrZWRCeVVzZXIFAAAABmFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAOc3Rha2VkVG90YWxLRVkJAABlAAAAAgUAAAALc3Rha2VkVG90YWwFAAAABmFtb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABmFtb3VudAUAAAAJbHBBc3NldElkCQAETAAAAAIJAQAAABVPcGVyYXRpb25IaXN0b3J5RW50cnkAAAAFAgAAAAd1bnN0YWtlBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBQAAAAZhbW91bnQIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQFAAAAA25pbAAAAAFpAQAAAAdjbGFpbVd4AAAAAQAAAAxscEFzc2V0SWRTdHIJAAACAAAAAQIAAAASdGVtcG9yYXJ5IGRpc2FibGVkAAAAAWkBAAAAD2NsYWltV3hSRUFET05MWQAAAAIAAAAMbHBBc3NldElkU3RyAAAADnVzZXJBZGRyZXNzU3RyBAAAAA9zdGFrZWRCeVVzZXJLRVkJAQAAAA9rZXlTdGFrZWRCeVVzZXIAAAACBQAAAA51c2VyQWRkcmVzc1N0cgUAAAAMbHBBc3NldElkU3RyBAAAAA5zdGFrZWRUb3RhbEtFWQkBAAAADmtleVN0YWtlZFRvdGFsAAAAAQUAAAAMbHBBc3NldElkU3RyBAAAAAxzdGFrZWRCeVVzZXIJAQAAAApyZWFkU3Rha2VkAAAAAQUAAAAPc3Rha2VkQnlVc2VyS0VZBAAAAAtzdGFrZWRUb3RhbAkBAAAACnJlYWRTdGFrZWQAAAABBQAAAA5zdGFrZWRUb3RhbEtFWQQAAAAOcG9vbEFkZHJlc3NTdHIJAQAAABhnZXRTdHJpbmdCeUFkZHJlc3NPckZhaWwAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAACZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcwAAAAEFAAAADGxwQXNzZXRJZFN0cgQAAAAOcG9vbFdlaWdodE11bHQFAAAABU1VTFQ4BAAAAApwb29sV2VpZ2h0CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAA9mYWN0b3J5Q29udHJhY3QJAQAAABRrZXlGYWN0b3J5UG9vbFdlaWdodAAAAAEFAAAADnBvb2xBZGRyZXNzU3RyBAAAABJ3eEVtaXNzaW9uUGVyQmxvY2sJAQAAAAxnZXRJbnRPckZhaWwAAAACBQAAABBlbWlzc2lvbkNvbnRyYWN0CQEAAAAea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50AAAAAAQAAAASZW1pc3Npb25TdGFydEJsb2NrCQEAAAAMZ2V0SW50T3JGYWlsAAAAAgUAAAAQZW1pc3Npb25Db250cmFjdAkBAAAAFWtleUVtaXNzaW9uU3RhcnRCbG9jawAAAAAEAAAADHBhc3NlZEJsb2NrcwMJAABmAAAAAgUAAAASZW1pc3Npb25TdGFydEJsb2NrBQAAAAZoZWlnaHQAAAAAAAAAAAAJAABlAAAAAgUAAAAGaGVpZ2h0BQAAABJlbWlzc2lvblN0YXJ0QmxvY2sEAAAADnBvb2xXeEVtaXNzaW9uCQAAawAAAAMJAABoAAAAAgUAAAASd3hFbWlzc2lvblBlckJsb2NrBQAAAAxwYXNzZWRCbG9ja3MFAAAACnBvb2xXZWlnaHQFAAAADnBvb2xXZWlnaHRNdWx0BAAAAAx1c2VyV3hSZXdhcmQJAABrAAAAAwUAAAAOcG9vbFd4RW1pc3Npb24FAAAADHN0YWtlZEJ5VXNlcgUAAAALc3Rha2VkVG90YWwEAAAADSR0MDE3MTE2MTcyMzMJAQAAABVyZWZyZXNoSW50ZWdyYWxWYWx1ZXMAAAAEBQAAAAxscEFzc2V0SWRTdHIFAAAADnVzZXJBZGRyZXNzU3RyBQAAAA5wb29sQWRkcmVzc1N0cgAAAAAAAAAAAAQAAAAQd3hUb0NsYWltVXNlck5ldwgFAAAADSR0MDE3MTE2MTcyMzMAAAACXzEEAAAADWludGVncmFsU3RhdGUIBQAAAA0kdDAxNzExNjE3MjMzAAAAAl8yBAAAAAVkZWJ1ZwgFAAAADSR0MDE3MTE2MTcyMzMAAAACXzMJAAUUAAAAAgUAAAADbmlsCQAEuQAAAAIJAARMAAAAAgIAAAAKJXMlcyVkJWQlcwkABEwAAAACBQAAAAxscEFzc2V0SWRTdHIJAARMAAAAAgUAAAAOdXNlckFkZHJlc3NTdHIJAARMAAAAAgkAAaQAAAABBQAAAAx1c2VyV3hSZXdhcmQJAARMAAAAAgIAAAABMAkABEwAAAACBQAAAAVkZWJ1ZwUAAAADbmlsBQAAAANTRVAAAAAARXxPnQ==", "chainId": 84, "height": 1804275, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6Ff3wkdLMLwHxMVPVNanDmQnHDHEXEF13UYoBnQkaggv Next: B7jw4ffAMNnYp6gZvdY82ZezFCAikLNkxK5GVLb5QJSD Diff:
OldNewDifferences
153153
154154 let ar = J(I)
155155
156-@Callable(as)
157-func constructor (at) = if ((as.caller != this))
156+func as (at,au,av,aw) = if (if ((au == 0))
157+ then (at > 0)
158+ else false)
159+ then 0
160+ else if ((at == 0))
161+ then av
162+ else if (if ((au > 0))
163+ then (at > 0)
164+ else false)
165+ then n(this, aw)
166+ else throw("calcWxPerLpIntegralUserLast: unexpected state")
167+
168+
169+func ax (S,R,ay,az) = {
170+ let aA = Q(R, S)
171+ let aB = T(S)
172+ let at = U(aA)
173+ let aC = U(aB)
174+ let aD = getIntegerValue(aq, B(ay))
175+ let aE = n(ar, N())
176+ let aF = n(ar, L())
177+ let aG = fraction(aF, aD, (f * 3))
178+ let aH = ad(S)
179+ let aI = ae(S)
180+ let aJ = af(S, R)
181+ let aK = ag(S, R)
182+ let aL = ah(S)
183+ let aw = ai(S, R)
184+ let aM = l(this, aI, aE)
185+ let aN = k(this, aH)
186+ let aO = k(this, aJ)
187+ let au = k(this, aK)
188+ let aP = k(this, aL)
189+ let aQ = max([(height - aM), 0])
190+ let aR = if ((aP != 0))
191+ then aP
192+ else fraction(aG, b, aC)
193+ let aS = (aC + az)
194+ let av = (aN + (aR * aQ))
195+ let aT = as(at, au, av, aw)
196+ let aU = (aO + fraction((av - aT), at, b))
197+ let aV = av
198+ let aW = (aG / aS)
199+ let aX = height
200+ let aY = height
201+ let aZ = makeString([toString(aU), toString(av), toString(aT), toString(at), toString(aQ), toString(aR), toString(aC), toString(aG), toString(aF), toString(aD)], "::")
202+ $Tuple3(aU, [IntegerEntry(aH, av), IntegerEntry(aI, aX), IntegerEntry(aJ, aU), IntegerEntry(aK, aY), IntegerEntry(aL, aW), IntegerEntry(aw, aV)], aZ)
203+ }
204+
205+
206+@Callable(ba)
207+func constructor (bb) = if ((ba.caller != this))
158208 then throw("not authorized")
159- else [StringEntry(o(), at)]
209+ else [StringEntry(o(), bb)]
160210
161211
162212
163-@Callable(as)
164-func stake () = if ((size(as.payments) != 1))
213+@Callable(ba)
214+func stake () = if ((size(ba.payments) != 1))
165215 then throw("invalid payment - exact one payment must be attached")
166216 else {
167- let au = as.payments[0]
168- let W = value(au.assetId)
217+ let bc = ba.payments[0]
218+ let W = value(bc.assetId)
169219 let S = toBase58String(W)
170- let an = au.amount
171- let av = valueOrErrorMessage(getString(aq, x(S)), ("unsupported lp asset " + S))
172- let aw = toString(as.caller)
173- let R = if ((aw == av))
174- then toString(as.originCaller)
175- else aw
176- let ax = Q(R, S)
177- let ay = T(S)
178- let az = U(ax)
179- let aA = U(ay)
180- let aB = getIntegerValue(aq, B(av))
181- let aC = n(ar, N())
182- let aD = n(ar, L())
183- let aE = fraction(aD, aB, (f * 3))
184- let aF = ad(S)
185- let aG = ae(S)
186- let aH = af(S, R)
187- let aI = ag(S, R)
188- let aJ = ah(S)
189- let aK = ai(S, R)
190- let aL = l(this, aG, aC)
191- let aM = k(this, aF)
220+ let an = bc.amount
221+ let ay = valueOrErrorMessage(getString(aq, x(S)), ("unsupported lp asset " + S))
222+ let bd = toString(ba.caller)
223+ let R = if ((bd == ay))
224+ then toString(ba.originCaller)
225+ else bd
226+ let aA = Q(R, S)
227+ let aB = T(S)
228+ let at = U(aA)
229+ let aC = U(aB)
230+ let aD = getIntegerValue(aq, B(ay))
231+ let aE = n(ar, N())
232+ let aF = n(ar, L())
233+ let aG = fraction(aF, aD, (f * 3))
234+ let aH = ad(S)
235+ let aI = ae(S)
236+ let aJ = af(S, R)
237+ let aK = ag(S, R)
238+ let aL = ah(S)
239+ let aw = ai(S, R)
240+ let aM = l(this, aI, aE)
192241 let aN = k(this, aH)
193- let aO = k(this, aI)
194- let aP = k(this, aJ)
195- let aQ = max([(height - aL), 0])
242+ let aO = k(this, aJ)
243+ let be = k(this, aK)
244+ let aP = k(this, aL)
245+ let aQ = max([(height - aM), 0])
196246 let aR = if ((aP != 0))
197247 then aP
198- else (aE / aA)
199- let aS = (aA + an)
200- let aT = (aM + (aR * aQ))
201- let aU = if (if ((aO == 0))
202- then (az > 0)
248+ else (aG / aC)
249+ let aS = (aC + an)
250+ let av = (aN + (aR * aQ))
251+ let aT = if (if ((be == 0))
252+ then (at > 0)
203253 else false)
204254 then 0
205- else if ((az == 0))
206- then aT
207- else if (if ((aO > 0))
208- then (az > 0)
255+ else if ((at == 0))
256+ then av
257+ else if (if ((be > 0))
258+ then (at > 0)
209259 else false)
210- then n(this, aK)
260+ then n(this, aw)
211261 else throw("Invalid condition")
212- let aV = (aN + ((aT - aU) * az))
213- let aW = aT
214- let aX = (aE / aS)
262+ let aU = (aO + ((av - aT) * at))
263+ let aV = av
264+ let aW = (aG / aS)
265+ let aX = height
215266 let aY = height
216- let aZ = height
217-[IntegerEntry(ax, (az + an)), IntegerEntry(ay, aS), ao("stake", R, S, an, as.transactionId)]
267+[IntegerEntry(aA, (at + an)), IntegerEntry(aB, aS), ao("stake", R, S, an, ba.transactionId)]
218268 }
219269
220270
221271
222-@Callable(as)
272+@Callable(ba)
223273 func unstake (S,an) = {
224- let R = toString(as.caller)
274+ let R = toString(ba.caller)
225275 let W = fromBase58String(S)
226276 if (!(isDefined(getString(aq, x(S)))))
227277 then throw(("unsupported lp asset " + S))
228278 else {
229- let ax = Q(R, S)
230- let ay = T(S)
231- let az = U(ax)
232- let aA = U(ay)
233- if ((an > az))
279+ let aA = Q(R, S)
280+ let aB = T(S)
281+ let at = U(aA)
282+ let aC = U(aB)
283+ if ((an > at))
234284 then throw("passed amount is less then available")
235- else [IntegerEntry(ax, (az - an)), IntegerEntry(ay, (aA - an)), ScriptTransfer(as.caller, an, W), ao("unstake", R, S, an, as.transactionId)]
285+ else [IntegerEntry(aA, (at - an)), IntegerEntry(aB, (aC - an)), ScriptTransfer(ba.caller, an, W), ao("unstake", R, S, an, ba.transactionId)]
236286 }
237287 }
238288
239289
240290
241-@Callable(as)
291+@Callable(ba)
242292 func claimWx (S) = throw("temporary disabled")
243293
244294
245295
246-@Callable(as)
296+@Callable(ba)
247297 func claimWxREADONLY (S,R) = {
248- let ax = Q(R, S)
249- let ay = T(S)
250- let az = U(ax)
251- let aA = U(ay)
252- let av = i(aq, A(S))
253- let ba = b
254- let aB = getIntegerValue(aq, B(av))
255- let aD = n(ar, L())
256- let aC = n(ar, N())
257- let bb = if ((aC > height))
298+ let aA = Q(R, S)
299+ let aB = T(S)
300+ let at = U(aA)
301+ let aC = U(aB)
302+ let ay = i(aq, A(S))
303+ let bf = b
304+ let aD = getIntegerValue(aq, B(ay))
305+ let aF = n(ar, L())
306+ let aE = n(ar, N())
307+ let bg = if ((aE > height))
258308 then 0
259- else (height - aC)
260- let bc = fraction((aD * bb), aB, ba)
261- let bd = fraction(bc, az, aA)
262- let aE = fraction(aD, aB, f)
263- let an = 0
264- let aF = ad(S)
265- let aG = ae(S)
266- let aH = af(S, R)
267- let aI = ag(S, R)
268- let aJ = ah(S)
269- let aK = ai(S, R)
270- let aL = l(this, aG, aC)
271- let aM = k(this, aF)
272- let aN = k(this, aH)
273- let aO = k(this, aI)
274- let aP = k(this, aJ)
275- let aQ = max([(height - aL), 0])
276- let aR = if ((aP != 0))
277- then aP
278- else fraction(aE, b, aA)
279- let aS = (aA + an)
280- let aT = (aM + (aR * aQ))
281- let aU = if (if ((aO == 0))
282- then (az > 0)
283- else false)
284- then 0
285- else if ((az == 0))
286- then aT
287- else if (if ((aO > 0))
288- then (az > 0)
289- else false)
290- then n(this, aK)
291- else throw("Invalid condition")
292- let aV = (aN + fraction((aT - aU), az, b))
293- let aW = aT
294- let aX = (aE / aS)
295- let aY = height
296- let aZ = height
297- let be = ((((((((((((((((((toString(aV) + "::") + toString(aT)) + "::") + toString(aU)) + "::") + toString(az)) + "::") + toString(aQ)) + "::") + toString(aR)) + "::") + toString(aA)) + "::") + toString(aE)) + "::") + toString(aD)) + "::") + toString(aB))
298- $Tuple2(nil, makeString(["%s%s%d%s", S, R, toString(bd), "0", be], e))
309+ else (height - aE)
310+ let bh = fraction((aF * bg), aD, bf)
311+ let bi = fraction(bh, at, aC)
312+ let bj = ax(S, R, ay, 0)
313+ let aU = bj._1
314+ let bk = bj._2
315+ let aZ = bj._3
316+ $Tuple2(nil, makeString(["%s%s%d%d%s", S, R, toString(bi), "0", aZ], e))
299317 }
300318
301319
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 = 18
99
1010 let d = toBigInt(1000000000000000000)
1111
1212 let e = "__"
1313
1414 let f = b
1515
1616 func g (h) = valueOrErrorMessage(getString(h), (("mandatory this." + h) + " is not defined"))
1717
1818
1919 func i (j,h) = valueOrErrorMessage(getString(j, h), (((("mandatory " + toString(j)) + ".") + h) + " is not defined"))
2020
2121
2222 func k (j,h) = valueOrElse(getInteger(j, h), 0)
2323
2424
2525 func l (j,h,m) = valueOrElse(getInteger(j, h), m)
2626
2727
2828 func n (j,h) = valueOrErrorMessage(getInteger(j, h), (("mandatory this." + h) + " is not defined"))
2929
3030
3131 func o () = "%s%s__config__factoryAddress"
3232
3333
3434 let p = 1
3535
3636 let q = 2
3737
3838 let r = 3
3939
4040 let s = 4
4141
4242 let t = 5
4343
4444 let u = 6
4545
4646 let v = 7
4747
4848 func w () = "%s__factoryConfig"
4949
5050
5151 func x (y) = makeString(["%s%s%s", y, "mappings__lpAsset2PoolContract"], e)
5252
5353
5454 func z () = "%s__lpTokensList"
5555
5656
5757 func A (y) = makeString(["%s%s%s", y, "mappings__lpAsset2PoolContract"], e)
5858
5959
6060 func B (C) = makeString(["%s%s", "poolWeight", C], e)
6161
6262
6363 func D () = addressFromStringValue(g(o()))
6464
6565
6666 func E () = split(valueOrElse(getString(D(), z()), ""), e)
6767
6868
6969 func F (G) = split(i(G, w()), e)
7070
7171
7272 func H (I) = addressFromStringValue(I[q])
7373
7474
7575 func J (I) = addressFromStringValue(I[t])
7676
7777
7878 func K (I) = addressFromStringValue(I[p])
7979
8080
8181 func L () = "%s%s__ratePerBlock__current"
8282
8383
8484 func M () = "%s%s__ratePerBlockMax__current"
8585
8686
8787 func N () = "%s%s__emission__startBlock"
8888
8989
9090 func O () = "%s%s__emission__duration"
9191
9292
9393 func P () = "%s%s__emission__endBlock"
9494
9595
9696 func Q (R,S) = makeString(["%s%s%s__staked", R, S], e)
9797
9898
9999 func T (S) = ("%s%s%s__staked__total__" + S)
100100
101101
102102 func U (h) = valueOrElse(getInteger(this, h), 0)
103103
104104
105105 func V (W) = makeString(["%s%s%s", W, "total", "bal"], e)
106106
107107
108108 func X (W,Y) = makeString(["%s%s%s", W, Y, "bal"], e)
109109
110110
111111 func Z (W) = makeString(["%s%s%s", W, "total", "balINT"], e)
112112
113113
114114 func aa (W,Y) = makeString(["%s%s%s", W, Y, "balINT"], e)
115115
116116
117117 func ab (W) = makeString(["%s%s%s", W, "total", "lastUpd"], e)
118118
119119
120120 func ac (W,Y) = makeString(["%s%s%s", W, Y, "lastUpd"], e)
121121
122122
123123 func ad (W) = makeString(["%s%s%s%s", W, "common", "lpInt"], e)
124124
125125
126126 func ae (W) = makeString(["%s%s%s%s", W, "common", "lpIntH"], e)
127127
128128
129129 func af (W,Y) = makeString(["%s%s%s%s", W, Y, "lpInt"], e)
130130
131131
132132 func ag (W,Y) = makeString(["%s%s%s%s", W, Y, "lpIntH"], e)
133133
134134
135135 func ah (W) = makeString(["%s", W, "wxPerLp"], e)
136136
137137
138138 func ai (W,Y) = makeString(["%s%s%s%s", W, Y, "uIntL"], e)
139139
140140
141141 func aj (ak,Y,al) = makeString(["%s%s%s%s__history", ak, Y, al], e)
142142
143143
144144 func am (Y,W,ak,an) = makeString(["%s%s%s%d%d%d", Y, W, ak, toString(height), toString(lastBlock.timestamp), toString(an)], e)
145145
146146
147147 func ao (ak,Y,W,an,ap) = StringEntry(aj(ak, Y, toBase58String(ap)), am(Y, W, ak, an))
148148
149149
150150 let aq = D()
151151
152152 let I = F(aq)
153153
154154 let ar = J(I)
155155
156-@Callable(as)
157-func constructor (at) = if ((as.caller != this))
156+func as (at,au,av,aw) = if (if ((au == 0))
157+ then (at > 0)
158+ else false)
159+ then 0
160+ else if ((at == 0))
161+ then av
162+ else if (if ((au > 0))
163+ then (at > 0)
164+ else false)
165+ then n(this, aw)
166+ else throw("calcWxPerLpIntegralUserLast: unexpected state")
167+
168+
169+func ax (S,R,ay,az) = {
170+ let aA = Q(R, S)
171+ let aB = T(S)
172+ let at = U(aA)
173+ let aC = U(aB)
174+ let aD = getIntegerValue(aq, B(ay))
175+ let aE = n(ar, N())
176+ let aF = n(ar, L())
177+ let aG = fraction(aF, aD, (f * 3))
178+ let aH = ad(S)
179+ let aI = ae(S)
180+ let aJ = af(S, R)
181+ let aK = ag(S, R)
182+ let aL = ah(S)
183+ let aw = ai(S, R)
184+ let aM = l(this, aI, aE)
185+ let aN = k(this, aH)
186+ let aO = k(this, aJ)
187+ let au = k(this, aK)
188+ let aP = k(this, aL)
189+ let aQ = max([(height - aM), 0])
190+ let aR = if ((aP != 0))
191+ then aP
192+ else fraction(aG, b, aC)
193+ let aS = (aC + az)
194+ let av = (aN + (aR * aQ))
195+ let aT = as(at, au, av, aw)
196+ let aU = (aO + fraction((av - aT), at, b))
197+ let aV = av
198+ let aW = (aG / aS)
199+ let aX = height
200+ let aY = height
201+ let aZ = makeString([toString(aU), toString(av), toString(aT), toString(at), toString(aQ), toString(aR), toString(aC), toString(aG), toString(aF), toString(aD)], "::")
202+ $Tuple3(aU, [IntegerEntry(aH, av), IntegerEntry(aI, aX), IntegerEntry(aJ, aU), IntegerEntry(aK, aY), IntegerEntry(aL, aW), IntegerEntry(aw, aV)], aZ)
203+ }
204+
205+
206+@Callable(ba)
207+func constructor (bb) = if ((ba.caller != this))
158208 then throw("not authorized")
159- else [StringEntry(o(), at)]
209+ else [StringEntry(o(), bb)]
160210
161211
162212
163-@Callable(as)
164-func stake () = if ((size(as.payments) != 1))
213+@Callable(ba)
214+func stake () = if ((size(ba.payments) != 1))
165215 then throw("invalid payment - exact one payment must be attached")
166216 else {
167- let au = as.payments[0]
168- let W = value(au.assetId)
217+ let bc = ba.payments[0]
218+ let W = value(bc.assetId)
169219 let S = toBase58String(W)
170- let an = au.amount
171- let av = valueOrErrorMessage(getString(aq, x(S)), ("unsupported lp asset " + S))
172- let aw = toString(as.caller)
173- let R = if ((aw == av))
174- then toString(as.originCaller)
175- else aw
176- let ax = Q(R, S)
177- let ay = T(S)
178- let az = U(ax)
179- let aA = U(ay)
180- let aB = getIntegerValue(aq, B(av))
181- let aC = n(ar, N())
182- let aD = n(ar, L())
183- let aE = fraction(aD, aB, (f * 3))
184- let aF = ad(S)
185- let aG = ae(S)
186- let aH = af(S, R)
187- let aI = ag(S, R)
188- let aJ = ah(S)
189- let aK = ai(S, R)
190- let aL = l(this, aG, aC)
191- let aM = k(this, aF)
220+ let an = bc.amount
221+ let ay = valueOrErrorMessage(getString(aq, x(S)), ("unsupported lp asset " + S))
222+ let bd = toString(ba.caller)
223+ let R = if ((bd == ay))
224+ then toString(ba.originCaller)
225+ else bd
226+ let aA = Q(R, S)
227+ let aB = T(S)
228+ let at = U(aA)
229+ let aC = U(aB)
230+ let aD = getIntegerValue(aq, B(ay))
231+ let aE = n(ar, N())
232+ let aF = n(ar, L())
233+ let aG = fraction(aF, aD, (f * 3))
234+ let aH = ad(S)
235+ let aI = ae(S)
236+ let aJ = af(S, R)
237+ let aK = ag(S, R)
238+ let aL = ah(S)
239+ let aw = ai(S, R)
240+ let aM = l(this, aI, aE)
192241 let aN = k(this, aH)
193- let aO = k(this, aI)
194- let aP = k(this, aJ)
195- let aQ = max([(height - aL), 0])
242+ let aO = k(this, aJ)
243+ let be = k(this, aK)
244+ let aP = k(this, aL)
245+ let aQ = max([(height - aM), 0])
196246 let aR = if ((aP != 0))
197247 then aP
198- else (aE / aA)
199- let aS = (aA + an)
200- let aT = (aM + (aR * aQ))
201- let aU = if (if ((aO == 0))
202- then (az > 0)
248+ else (aG / aC)
249+ let aS = (aC + an)
250+ let av = (aN + (aR * aQ))
251+ let aT = if (if ((be == 0))
252+ then (at > 0)
203253 else false)
204254 then 0
205- else if ((az == 0))
206- then aT
207- else if (if ((aO > 0))
208- then (az > 0)
255+ else if ((at == 0))
256+ then av
257+ else if (if ((be > 0))
258+ then (at > 0)
209259 else false)
210- then n(this, aK)
260+ then n(this, aw)
211261 else throw("Invalid condition")
212- let aV = (aN + ((aT - aU) * az))
213- let aW = aT
214- let aX = (aE / aS)
262+ let aU = (aO + ((av - aT) * at))
263+ let aV = av
264+ let aW = (aG / aS)
265+ let aX = height
215266 let aY = height
216- let aZ = height
217-[IntegerEntry(ax, (az + an)), IntegerEntry(ay, aS), ao("stake", R, S, an, as.transactionId)]
267+[IntegerEntry(aA, (at + an)), IntegerEntry(aB, aS), ao("stake", R, S, an, ba.transactionId)]
218268 }
219269
220270
221271
222-@Callable(as)
272+@Callable(ba)
223273 func unstake (S,an) = {
224- let R = toString(as.caller)
274+ let R = toString(ba.caller)
225275 let W = fromBase58String(S)
226276 if (!(isDefined(getString(aq, x(S)))))
227277 then throw(("unsupported lp asset " + S))
228278 else {
229- let ax = Q(R, S)
230- let ay = T(S)
231- let az = U(ax)
232- let aA = U(ay)
233- if ((an > az))
279+ let aA = Q(R, S)
280+ let aB = T(S)
281+ let at = U(aA)
282+ let aC = U(aB)
283+ if ((an > at))
234284 then throw("passed amount is less then available")
235- else [IntegerEntry(ax, (az - an)), IntegerEntry(ay, (aA - an)), ScriptTransfer(as.caller, an, W), ao("unstake", R, S, an, as.transactionId)]
285+ else [IntegerEntry(aA, (at - an)), IntegerEntry(aB, (aC - an)), ScriptTransfer(ba.caller, an, W), ao("unstake", R, S, an, ba.transactionId)]
236286 }
237287 }
238288
239289
240290
241-@Callable(as)
291+@Callable(ba)
242292 func claimWx (S) = throw("temporary disabled")
243293
244294
245295
246-@Callable(as)
296+@Callable(ba)
247297 func claimWxREADONLY (S,R) = {
248- let ax = Q(R, S)
249- let ay = T(S)
250- let az = U(ax)
251- let aA = U(ay)
252- let av = i(aq, A(S))
253- let ba = b
254- let aB = getIntegerValue(aq, B(av))
255- let aD = n(ar, L())
256- let aC = n(ar, N())
257- let bb = if ((aC > height))
298+ let aA = Q(R, S)
299+ let aB = T(S)
300+ let at = U(aA)
301+ let aC = U(aB)
302+ let ay = i(aq, A(S))
303+ let bf = b
304+ let aD = getIntegerValue(aq, B(ay))
305+ let aF = n(ar, L())
306+ let aE = n(ar, N())
307+ let bg = if ((aE > height))
258308 then 0
259- else (height - aC)
260- let bc = fraction((aD * bb), aB, ba)
261- let bd = fraction(bc, az, aA)
262- let aE = fraction(aD, aB, f)
263- let an = 0
264- let aF = ad(S)
265- let aG = ae(S)
266- let aH = af(S, R)
267- let aI = ag(S, R)
268- let aJ = ah(S)
269- let aK = ai(S, R)
270- let aL = l(this, aG, aC)
271- let aM = k(this, aF)
272- let aN = k(this, aH)
273- let aO = k(this, aI)
274- let aP = k(this, aJ)
275- let aQ = max([(height - aL), 0])
276- let aR = if ((aP != 0))
277- then aP
278- else fraction(aE, b, aA)
279- let aS = (aA + an)
280- let aT = (aM + (aR * aQ))
281- let aU = if (if ((aO == 0))
282- then (az > 0)
283- else false)
284- then 0
285- else if ((az == 0))
286- then aT
287- else if (if ((aO > 0))
288- then (az > 0)
289- else false)
290- then n(this, aK)
291- else throw("Invalid condition")
292- let aV = (aN + fraction((aT - aU), az, b))
293- let aW = aT
294- let aX = (aE / aS)
295- let aY = height
296- let aZ = height
297- let be = ((((((((((((((((((toString(aV) + "::") + toString(aT)) + "::") + toString(aU)) + "::") + toString(az)) + "::") + toString(aQ)) + "::") + toString(aR)) + "::") + toString(aA)) + "::") + toString(aE)) + "::") + toString(aD)) + "::") + toString(aB))
298- $Tuple2(nil, makeString(["%s%s%d%s", S, R, toString(bd), "0", be], e))
309+ else (height - aE)
310+ let bh = fraction((aF * bg), aD, bf)
311+ let bi = fraction(bh, at, aC)
312+ let bj = ax(S, R, ay, 0)
313+ let aU = bj._1
314+ let bk = bj._2
315+ let aZ = bj._3
316+ $Tuple2(nil, makeString(["%s%s%d%d%s", S, R, toString(bi), "0", aZ], e))
299317 }
300318
301319

github/deemru/w8io/169f3d6 
53.07 ms