tx · J4yBN261bq3dkFdNev3X6agcLXU6hredbUo21P4Q1UL1

3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy:  -0.02600000 Waves

2023.08.11 18:05 [2706081] smart account 3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy > SELF 0.00000000 Waves

{ "type": 13, "id": "J4yBN261bq3dkFdNev3X6agcLXU6hredbUo21P4Q1UL1", "fee": 2600000, "feeAssetId": null, "timestamp": 1691766319364, "version": 2, "chainId": 84, "sender": "3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy", "senderPublicKey": "9W33iCCNfmFxUbiC6XZcH5x7f6xfwC7Jb3BoExT5q2PV", "proofs": [ "4YxyoBSM6fnZtqt8Atxp1FRfPKZqH5FexfPG6zvP9Ug5d95yvUYhKUwvysTa1iNdCzdcSZV4a4nFRzDP73Lyqp1C" ], "script": "base64:BgKKLggCEggKBggIAQEBCBIFCgMBCAISAwoBARIECgIICBIECgIICBIDCgEIEgMKAQgSAwoBCBIECgIIARIDCgEIEgASABIFCgMICAQSAwoBCBIDCgEIEgQKAggIEgQKAggIIgNTRVAiBlNDQUxFOCIFTVVMVDgiDlBPT0xXRUlHSFRNVUxUIhBjb250cmFjdEZpbGVuYW1lIgdTQ0FMRTE4IgZNVUxUMTgiCE1VTFQxOEJJIhVkdXJhdGlvbk1vbnRoc0FsbG93ZWQiC2Jsb2Nrc0luRGF5Ig1ibG9ja3NJbk1vbnRoIgd3cmFwRXJyIgNtc2ciCHRocm93RXJyIg9nZXRTdHJpbmdPckZhaWwiB2FkZHJlc3MiA2tleSIMZ2V0SW50T3JaZXJvIg9nZXRJbnRPckRlZmF1bHQiCmRlZmF1bHRWYWwiDGdldEludE9yRmFpbCIDYWJzIgN2YWwiDmVuc3VyZVBvc2l0aXZlIgF2IgFtIhtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MiHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbCIWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZSIacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQiE3JlZmVycmFsUHJvZ3JhbU5hbWUiEWtleUZhY3RvcnlBZGRyZXNzIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCINa2V5RmFjdG9yeUNmZyIma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiCmxwQXNzZXRTdHIiFGtleUZhY3RvcnlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiG2tleUZhY3RvcnlQb29sV2VpZ2h0SGlzdG9yeSILcG9vbEFkZHJlc3MiA251bSIYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsIhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIhNrZXlNYW5hZ2VyUHVibGljS2V5IhZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzIh5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQiIWtleUVtaXNzaW9uUmF0ZVBlckJsb2NrTWF4Q3VycmVudCIVa2V5RW1pc3Npb25TdGFydEJsb2NrIh1rZXlCb29zdGluZ1YyTGFzdFVwZGF0ZUhlaWdodCIVa2V5Qm9vc3RpbmdWMkludGVncmFsIhtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MiE2tleUVtaXNzaW9uRW5kQmxvY2siGWtleU5leHRQZXJnZXRJbnRPckRlZmF1bHQiH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQiDUlkeENmZ0Fzc2V0SWQiE0lkeENmZ01pbkxvY2tBbW91bnQiFUlkeENmZ01pbkxvY2tEdXJhdGlvbiIVSWR4Q2ZnTWF4TG9ja0R1cmF0aW9uIhJJZHhDZmdNYXRoQ29udHJhY3QiFElkeENmZ0Jsb2Nrc0luUGVyaW9kIglrZXlDb25maWciFXJlYWRDb25maWdBcnJheU9yRmFpbCIIY2ZnQXJyYXkiB2Fzc2V0SWQiDW1pbkxvY2tBbW91bnQiD21pbkxvY2tEdXJhdGlvbiIPbWF4TG9ja0R1cmF0aW9uIgxtYXRoQ29udHJhY3QiDmJsb2Nrc0luUGVyaW9kIg1mb3JtYXRDb25maWdTIgxmb3JtYXRDb25maWciHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMiByRtYXRjaDAiAXMiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiE21hbmFnZXJWYXVsdEFkZHJlc3MiC211c3RNYW5hZ2VyIgFpIgJwZCICcGsiDUlkeExvY2tBbW91bnQiDElkeExvY2tTdGFydCIPSWR4TG9ja0R1cmF0aW9uIhpJZHhMb2NrTGFzdFVwZGF0ZVRpbWVzdGFtcCIQSWR4TG9ja0d3eEFtb3VudCIQSWR4TG9ja1d4Q2xhaW1lZCITa2V5TG9ja1BhcmFtc1JlY29yZCILdXNlckFkZHJlc3MiBHR4SWQiAWIiGnJlYWRMb2NrUGFyYW1zUmVjb3JkT3JGYWlsIhVrZXlVc2VyR3d4QW1vdW50VG90YWwiFmZvcm1hdExvY2tQYXJhbXNSZWNvcmQiBmFtb3VudCIFc3RhcnQiCGR1cmF0aW9uIglnd3hBbW91bnQiCXd4Q2xhaW1lZCIOa2V5TmV4dFVzZXJOdW0iEmtleVVzZXIyTnVtTWFwcGluZyISa2V5TnVtMlVzZXJNYXBwaW5nIhdrZXlMb2NrUGFyYW1Ub3RhbEFtb3VudCIga2V5U3RhdHNMb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MiEmtleVN0YXRzTG9ja3NDb3VudCISa2V5U3RhdHNVc2Vyc0NvdW50IiBrZXlVc2VyQm9vc3RFbWlzc2lvbkxhc3RJTlRFR1JBTCIHdXNlck51bSIia2V5VXNlckxwQm9vc3RFbWlzc2lvbkxhc3RJTlRFR1JBTCIJbHBBc3NldElkIhdrZXlVc2VyTWF4Qm9vc3RJTlRFR1JBTCIYa2V5VG90YWxNYXhCb29zdElOVEVHUkFMIiFrZXlVc2VyQm9vc3RBdmFsYWlibGVUb0NsYWltVG90YWwiE2tleVVzZXJCb29zdENsYWltZWQiC2tleUd3eFRvdGFsIgdrZXlWb3RlIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiBWVwb2NoIhVrZXlTdGFydEhlaWdodEJ5RXBvY2giEWtleUN1cnJlbnRFcG9jaFVpIhVrZXlWb3RpbmdSZXN1bHRTdGFrZWQiDGxwQXNzZXRJZFN0ciIda2V5Vm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiJWtleVZvdGluZ1Jlc3VsdFN0YWtlZExhc3RVcGRhdGVIZWlnaHQiIWtleVZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdCIVa2V5Vm90ZVN0YWtlZEludGVncmFsIh1rZXlWb3RlU3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIZa2V5Vm90ZVN0YWtlZEludGVncmFsTGFzdCIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIPZmFjdG9yeUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0Ig9zdGFraW5nQ29udHJhY3QiEWd3eFJld2FyZENvbnRyYWN0IhZscFN0YWtpbmdQb29sc0NvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0Ih1rZXlWb3RpbmdFbWlzc2lvblJhdGVDb250cmFjdCIKYm9vc3RDb2VmZiIBQCIZdXNlck51bWJlckJ5QWRkcmVzc09yRmFpbCIRZ2V0R3d4QW1vdW50VG90YWwiEmdldExvY2tlZEd3eEFtb3VudCIMZnVuY3Rpb25OYW1lIhp2b3RpbmdFbWlzc2lvblJhdGVDb250cmFjdCIYbG9ja2VkVm90aW5nRW1pc3Npb25SYXRlIhRsb2NrZWRWb3RpbmdFbWlzc2lvbiIGbG9ja2VkIgxIaXN0b3J5RW50cnkiBHR5cGUiBHVzZXIiCWxvY2tTdGFydCIKaGlzdG9yeUtFWSILaGlzdG9yeURBVEEiClN0YXRzRW50cnkiDnRvdGFsTG9ja2VkSW5jIgtkdXJhdGlvbkluYyIMbG9ja0NvdW50SW5jIg11c2Vyc0NvdW50SW5jIhtsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3NLRVkiDWxvY2tzQ291bnRLRVkiDXVzZXJzQ291bnRLRVkiDnRvdGFsQW1vdW50S0VZIhhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MiCmxvY2tzQ291bnQiCnVzZXJzQ291bnQiC3RvdGFsQW1vdW50Ig9Mb2NrUGFyYW1zRW50cnkiImV4dHJhY3RPcHRpb25hbFBheW1lbnRBbW91bnRPckZhaWwiD2V4cGVjdGVkQXNzZXRJZCIDcG10IhVnZXRVc2VyR3d4QW1vdW50VG90YWwiGmdldFZvdGluZ0VtaXNzaW9uRXBvY2hJbmZvIg0kdDAxNTIxNDE1NTA0Ig5jdXJyZW50RXBvY2hVaSISbGFzdEZpbmFsaXplZEVwb2NoIhdjdXJyZW50RXBvY2hTdGFydEhlaWdodCIYZ2V0UG9vbEFzc2V0c0J5THBBc3NldElkIhBpZHhBbW91bnRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiB3Bvb2xDZmciFGdldFVzZXJWb3RlRmluYWxpemVkIg0kdDAxNjE5NTE2Mjc1Ig0kdDAxNjI3ODE2MzUzIgt1c2VyVm90ZUtleSIIdXNlclZvdGUiEWdldFVzZXJWb3RlU3Rha2VkIgxzdGFrZWRCeVVzZXIiFWdldFZvdGluZ1Jlc3VsdFN0YWtlZCINJHQwMTY4OTcxNjk3NyIXdm90aW5nUmVzdWx0U3Rha2VkU3RhcnQiEnZvdGluZ1Jlc3VsdFN0YWtlZCIdZ2V0Vm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiDSR0MDE3MzM5MTc0MTkiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsUHJldiIidm90aW5nUmVzdWx0U3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIcdm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxEaCIadm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiIXJlZnJlc2hWb3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbCIPc3Rha2VkVm90ZURlbHRhIg0kdDAxODI1NjE4MzM2IhV2b3RpbmdSZXN1bHRTdGFrZWROZXciGWdldFVzZXJWb3RlU3Rha2VkSW50ZWdyYWwiDSR0MDE4OTQ3MTkwMjciDnVzZXJWb3RlU3Rha2VkIhp1c2VyVm90ZVN0YWtlZEludGVncmFsUHJldiIedXNlclZvdGVTdGFrZWRMYXN0VXBkYXRlSGVpZ2h0Ihh1c2VyVm90ZVN0YWtlZEludGVncmFsRGgiFnVzZXJWb3RlU3Rha2VkSW50ZWdyYWwiGXJlZnJlc2hWb3RlU3Rha2VkSW50ZWdyYWwiBGVkZ2UiDSR0MDE5ODE1MTk4OTUiEXVzZXJWb3RlRmluYWxpemVkIgdhY3Rpb25zIhN2b3RpbmdSZXN1bHRBY3Rpb25zIgt2b3RlQWN0aW9ucyIbZ2V0U3Rha2VkVm90ZXNJbnRlZ3JhbHNEaWZmIg0kdDAyMDc0OTIwODI5Ih11c2VyVm90ZVN0YWtlZEludGVncmFsTGFzdEtleSIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbExhc3QiIXZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdEtleSIedm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxMYXN0Ihp1c2VyVm90ZVN0YWtlZEludGVncmFsRGlmZiIedm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxEaWZmIhxyZWZyZXNoQm9vc3RFbWlzc2lvbkludGVncmFsIhJ3eEVtaXNzaW9uUGVyQmxvY2siIGJvb3N0aW5nVjJMYXN0VXBkYXRlSGVpZ2h0T3B0aW9uIhhib29zdGluZ1YySW5nZXJnYWxPcHRpb24iC2VtaXNzaW9uRW5kIgFoIgJkaCIQbGFzdFVwZGF0ZUhlaWdodCIVYm9vc3RFbWlzc2lvblBlckJsb2NrIhlib29zdEVtaXNzaW9uSW50ZWdyYWxQcmV2IhVib29zdEVtaXNzaW9uSW50ZWdyYWwiFGludGVybmFsQ2xhaW1XeEJvb3N0IghyZWFkT25seSIIRU1QVFlTVFIiCnBvb2xXZWlnaHQiDnBvb2xBZGRyZXNzU3RyIiJ1c2VyTHBCb29zdEVtaXNzaW9uTGFzdEludGVncmFsS0VZIiB1c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRlZ3JhbEtFWSIddXNlckJvb3N0RW1pc3Npb25MYXN0SW50ZWdyYWwiGXVzZXJCb29zdEVtaXNzaW9uSW50ZWdyYWwiDSR0MDI0MzcxMjQ1MTAiG3N0YWtlZFZvdGVzSW50ZWdyYWxzQWN0aW9ucyIUdXNlclZvdGVJbnRlZ3JhbERpZmYiFnRvdGFsVm90ZXNJbnRlZ3JhbERpZmYiHXBvb2xVc2VyQm9vc3RFbWlzc2lvbkludGVncmFsIiF1c2VyQm9vc3RBdmFsaWFibGVUb0NsYWltVG90YWxOZXciCWRhdGFTdGF0ZSIFZGVidWciC2xvY2tBY3Rpb25zIg5kdXJhdGlvbk1vbnRocyIKYXNzZXRJZFN0ciIJcG10QW1vdW50Ig5uZXh0VXNlck51bUtFWSIOdXNlcklzRXhpc3RpbmciCnVzZXJOdW1TdHIiDmdXeEFtb3VudFN0YXJ0Ig5nd3hBbW91bnRUb3RhbCISdXNlckd3eEFtb3VudFRvdGFsIgxnd3hSZXdhcmRJbnYiA2FyciIRZ2V0V3hXaXRoZHJhd2FibGUiCnR4SWRPcHRpb24iD3VzZXJSZWNvcmRBcnJheSIKdXNlckFtb3VudCIMbG9ja0R1cmF0aW9uIgdsb2NrRW5kIgF0IghleHBvbmVudCIOd3hXaXRoZHJhd2FibGUiEWZhY3RvcnlBZGRyZXNzU3RyIg5sb2NrQXNzZXRJZFN0ciILbWluRHVyYXRpb24iC21heER1cmF0aW9uIgtjaGVja0NhbGxlciIPcmVmZXJyZXJBZGRyZXNzIglzaWduYXR1cmUiDSR0MDI5MzA5MjkzNzQiEWxvY2tBY3Rpb25zUmVzdWx0Ig9yZWZlcnJhbEFkZHJlc3MiBnJlZkludiIRdXBkYXRlUmVmQWN0aXZpdHkiDSR0MDI5ODMyMjk4OTciDSR0MDMwMjA3MzAzMDkiEnVzZXJCb29zdEF2YWlsYWJsZSINJHQwMzA0NDEzMDU0MiIHdHhJZFN0ciIJZ3d4QnVybmVkIgxnd3hSZW1haW5pbmciD2xvY2tlZEd3eEFtb3VudCIVdXNlckd3eEFtb3VudFRvdGFsTmV3Igx0YXJnZXRIZWlnaHQiAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleZABAAFhAgJfXwABYgAIAAFjAIDC1y8AAWQFAWMAAWUCDWJvb3N0aW5nLnJpZGUAAWYAEgABZwCAgJC7utat8A0AAWgJALYCAQUBZwABaQkAzAgCAAEJAMwIAgADCQDMCAIABgkAzAgCAAwJAMwIAgAYCQDMCAIAMAUDbmlsAAFqAKALAAFrAJjWAgEBbAEBbQkAuQkCCQDMCAIFAWUJAMwIAgICOiAJAMwIAgUBbQUDbmlsAgABAW4BAW0JAAIBCQEBbAEFAW0BAW8CAXABcQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAXAFAXEJAQFsAQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBcQIPIGlzIG5vdCBkZWZpbmVkAQFyAgFwAXEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUBcAUBcQAAAQFzAwFwAXEBdAkBC3ZhbHVlT3JFbHNlAgkAmggCBQFwBQFxBQF0AQF1AgFwAXEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQFwBQFxCQEBbAEJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAXECDyBpcyBub3QgZGVmaW5lZAEBdgEBdwMJAGYCAAAFAXcJAQEtAQUBdwUBdwEBeAIBeQF6AwkAZwIFAXkAAAUBeQkBAW4BCQCsAgIJAQt2YWx1ZU9yRWxzZQIFAXoCBXZhbHVlAhMgc2hvdWxkIGJlIHBvc2l0aXZlAQFBAAkAuQkCCQDMCAICBCVzJXMJAMwIAgIGY29uZmlnCQDMCAICGHJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcwUDbmlsBQFhAAFCCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBbwIFBHRoaXMJAQFBAAABQwkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgILcHJvZ3JhbU5hbWUFA25pbAUBYQABRAIGd3hsb2NrAAFFCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAUMFAUQBAUYAAhwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzAAFHAAEAAUgAAgABSQADAAFKAAQAAUsABQABTAAGAAFNAAcAAU4ACAABTwAJAAFQAAoAAVEACwEBUgACESVzX19mYWN0b3J5Q29uZmlnAQFTAQFUCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAIFAVQJAMwIAgIebWFwcGluZ3NfX2xwQXNzZXQyUG9vbENvbnRyYWN0BQNuaWwFAWEBAVUBAVYJALkJAgkAzAgCAgQlcyVzCQDMCAICCnBvb2xXZWlnaHQJAMwIAgUBVgUDbmlsBQFhAQFXAgFYAVkJAKwCAgkArAICCQCsAgICEiVzJXNfX3Bvb2xXZWlnaHRfXwUBWAICX18JAKQDAQUBWQEBWgAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFvAgUEdGhpcwkBAUYAAQJhYQECYWIJALUJAgkBAW8CBQJhYgkBAVIABQFhAQJhYwECYWQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWQFAUgBAmFlAQJhZAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhZAUBSwECYWYBAmFkCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFkBQFHAQJhZwECYWQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWQFAVABAmFoAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAmFpAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBAmFqAAIbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQJhawACHiVzJXNfX3JhdGVQZXJCbG9ja01heF9fY3VycmVudAECYWwAAholcyVzX19lbWlzc2lvbl9fc3RhcnRCbG9jawECYW0AAhwlcyVzX19ib29zdGluZ1YyX19zdGFydEJsb2NrAQJhbgACGiVzJXNfX2Jvb3N0aW5nVjJfX2ludGVncmFsAQJhbwACGCVzJXNfX2VtaXNzaW9uX19kdXJhdGlvbgECYXAAAhglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAmFxAAIOJXNfX25leHRQZXJpb2QBAmFyAAIoJXMlc19fZ3d4UmV3YXJkRW1pc3Npb25QYXJ0X19zdGFydEhlaWdodAACYXMAAQACYXQAAgACYXUAAwACYXYABAACYXcABQACYXgABgECYXkAAgolc19fY29uZmlnAQJhegAJALUJAgkBAW8CBQR0aGlzCQECYXkABQFhAAJhQQkBAmF6AAACYUIJANkEAQkAkQMCBQJhQQUCYXMAAmFDCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQJhQQUCYXQJAQFsAQIXaW52YWxpZCBtaW4gbG9jayBhbW91bnQAAmFECQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQJhQQUCYXUJAQFsAQIZaW52YWxpZCBtaW4gbG9jayBkdXJhdGlvbgACYUUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFAmFBBQJhdgkBAWwBAhlpbnZhbGlkIG1heCBsb2NrIGR1cmF0aW9uAAJhRgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUCYUEFAmF3CQEBbAECHWludmFsaWQgbWF0aCBjb250cmFjdCBhZGRyZXNzAAJhRwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUCYUEFAmF4CQEBbAECGGludmFsaWQgYmxvY2tzIGluIHBlcmlvZAECYUgFAmFCAmFDAmFEAmFF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RAUDbmlsBQFhAQJiRgAJALkJAgkAzAgCAgIlcwkAzAgCAg5jdXJyZW50RXBvY2hVaQUDbmlsBQFhAQJiRwICYkgCYkQJALkJAgkAzAgCAgYlcyVzJWQJAMwIAgISdm90aW5nUmVzdWx0U3Rha2VkCQDMCAIFAmJICQDMCAIJAKQDAQUCYkQFA25pbAUBYQECYkkCAmJIAmJECQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICGnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsCQDMCAIFAmJICQDMCAIJAKQDAQUCYkQFA25pbAUBYQECYkoCAmJIAmJECQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICKnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdFVwZGF0ZUhlaWdodAkAzAgCBQJiSAkAzAgCCQCkAwEFAmJEBQNuaWwFAWEBAmJLAwJiSAFwAmJECQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIedm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxMYXN0CQDMCAIFAmJICQDMCAIJAKUIAQUBcAkAzAgCCQCkAwEFAmJEBQNuaWwFAWEBAmJMAwJiSAFwAmJECQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgISdm90ZVN0YWtlZEludGVncmFsCQDMCAIFAmJICQDMCAIJAKUIAQUBcAkAzAgCCQCkAwEFAmJEBQNuaWwFAWEBAmJNAwJiSAFwAmJECQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIidm90ZVN0YWtlZEludGVncmFsTGFzdFVwZGF0ZUhlaWdodAkAzAgCBQJiSAkAzAgCCQClCAEFAXAJAMwIAgkApAMBBQJiRAUDbmlsBQFhAQJiTgMCYkgBcAJiRAkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICFnZvdGVTdGFrZWRJbnRlZ3JhbExhc3QJAMwIAgUCYkgJAMwIAgkApQgBBQFwCQDMCAIJAKQDAQUCYkQFA25pbAUBYQECYk8CAmJQAmJICQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICBnN0YWtlZAkAzAgCBQJiUAkAzAgCBQJiSAUDbmlsBQFhAAJiUQkBAVoAAAJhZAkBAmFhAQUCYlEAAmJSCQECYWUBBQJhZAACYlMJAQJhZgEFAmFkAAJiVAkBAmFnAQUCYWQAAmJVCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJALkJAgkAzAgCAgIlcwkAzAgCAhZscFN0YWtpbmdQb29sc0NvbnRyYWN0BQNuaWwFAWEJAQFsAQIubHBfc3Rha2luZ19wb29scyBjb250cmFjdCBhZGRyZXNzIGlzIHVuZGVmaW5lZAkBAWwBAilpbnZhbGlkIGxwX3N0YWtpbmdfcG9vbHMgY29udHJhY3QgYWRkcmVzcwACYlYJALkJAgkAzAgCAgIlcwkAzAgCAhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BQNuaWwFAWEAAmJXCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQJiUQUCYlYAAmJYCQC5CQIJAMwIAgICJXMJAMwIAgIadm90aW5nRW1pc3Npb25SYXRlQ29udHJhY3QFA25pbAUBYQACYlkKAAJiWgkA/AcEBQJiUgIVZ2V0Qm9vc3RDb2VmZlJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJiWgIDSW50BQJiWgkAAgEJAKwCAgkAAwEFAmJaAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmNhAQJhWgQCYUsJAJ0IAgUEdGhpcwkBAmJsAQkApQgBBQJhWgMJAAECBQJhSwIGU3RyaW5nBAJhTAUCYUsJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBBQJhTAkBAWwBAhNpbnZhbGlkIHVzZXIgbnVtYmVyAwkAAQIFAmFLAgRVbml0CQEBbgECDGludmFsaWQgdXNlcgkAAgECC01hdGNoIGVycm9yAQJjYgAJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJ6AAAAAQJjYwECYVoEAmNkAhJnZXRMb2NrZWRHd3hBbW91bnQEAmNlCQETdmFsdWVPckVycm9yTWVzc2FnZQIEAmFLCQCdCAIFAmJXBQJiWAMJAAECBQJhSwIEVW5pdAUEdW5pdAMJAAECBQJhSwIGU3RyaW5nBAJhTAUCYUsJAKYIAQUCYUwJAAIBAgtNYXRjaCBlcnJvcgkBAWwBAiRpbnZhbGlkIHZvdGluZyBlbWlzc2lvbiByYXRlIGFkZHJlc3MEAmNmCgACYloJAPwHBAUCYlcFAmNkCQDMCAIJAKUIAQUCYVoFA25pbAUDbmlsAwkAAQIFAmJaAgNJbnQFAmJaCQACAQkArAICCQADAQUCYloCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCY2cKAAJiWgkA/AcEBQJjZQUCY2QJAMwIAgkApQgBBQJhWgUDbmlsBQNuaWwDCQABAgUCYloCA0ludAUCYloJAAIBCQCsAgIJAAMBBQJiWgIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJjaAkAlgMBCQDMCAIFAmNmCQDMCAIFAmNnBQNuaWwFAmNoAQJjaQcCY2oCY2sCYmYCY2wCYmgCYmkCYVAEAmNtCQC5CQIJAMwIAgIRJXMlcyVzJXNfX2hpc3RvcnkJAMwIAgUCY2oJAMwIAgUCY2sJAMwIAgkA2AQBCAUCYVANdHJhbnNhY3Rpb25JZAUDbmlsBQFhBAJjbgkAuQkCCQDMCAICDiVkJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFAmJmCQDMCAIJAKQDAQUCY2wJAMwIAgkApAMBBQJiaAkAzAgCCQCkAwEFAmJpBQNuaWwFAWEJAQtTdHJpbmdFbnRyeQIFAmNtBQJjbgECY28EAmNwAmNxAmNyAmNzBAJjdAkBAmJvAAQCY3UJAQJicAAEAmN2CQECYnEABAJjdwkBAmJuAAQCY3gJAQFyAgUEdGhpcwUCY3QEAmN5CQEBcgIFBHRoaXMFAmN1BAJjegkBAXICBQR0aGlzBQJjdgQCY0EJAQFyAgUEdGhpcwUCY3cJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN0CQBkAgUCY3gFAmNxCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjdQkAZAIFAmN5BQJjcgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3YJAGQCBQJjegUCY3MJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN3CQBkAgUCY0EFAmNwBQNuaWwBAmNCBwJhWgJiYQJiZgJiZwJiaAJiaQJiagkAzAgCCQELU3RyaW5nRW50cnkCCQECYVkCBQJhWgUCYmEJ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CQBpAgkAaAIFAmRICQBlAgUCYlkAAQUCYlkEAmRQCQELdmFsdWVPckVsc2UCBQJkSgAABAJkUQkAZAIJAGgCBQJkTwUCZE0FAmRQCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbgAFAmRRCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW0ABQZoZWlnaHQFA25pbAUCZFEBAmRSAwJiSAJiUAJkUwQCYVoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQJiUAkBAWwBAhRpbnZhbGlkIHVzZXIgYWRkcmVzcwQCYnMJAQJjYQEFAmFaAwkAAAIFAmJzBQJicwQCZFQCBWVtcHR5BAJkVQMJAQIhPQIFAmJIBQJkVAQCZFYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJiUQkBAVMBBQJiSAkBAWwBCQCsAgICFXVuc3VwcG9ydGVkIGxwIGFzc2V0IAUCYkgJARFAZXh0ck5hdGl2ZSgxMDUwKQIFAmJRCQEBVQEFAmRWAwUCZFMAAAkBAW4BCQCsAgICKG5vdCByZWFkb25seSBtb2RlOiB1bnN1cHBvcnRlZCBscCBhc3NldCAFAmJIBAJkVwkBAmJ0AgUCYnMFAmJIBAJkWAkBAmJyAQUCYnMEAmRZCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmRXCQEBcgIFBHRoaXMFAmRYBAJkUQgJAQJkRwACXzIEAmRaCQBlAgUCZFEFAmRZAwkAZgIAAAUCZFoJAQFuAQISd3JvbmcgY2FsY3VsYXRpb25zBAJlYQkBAmR5AgUCYkgFAmJQBAJlYggFAmVhAl8xBAJlYwgFAmVhAl8yBAJlZAgFAmVhAl8zBAJlZQkAawMFAmRaBQJkVQUBZAQCZWYDCQAAAgUCZWQAAAAACQBrAwUCZWUFAmVjBQJlZAQCZWcJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZFcFAmRRBQNuaWwFAmViBAJlaAkAuQkCCQDMCAIJAKQDAQUCZFkJAMwIAgkApAMBBQJkWgkAzAgCCQCkAwEFAmRVCQDMCAIJAKQDAQUCZWMJAMwIAgkApAMBBQJlZAUDbmlsAgE6CQCVCgMFAmVmBQJlZwUCZWgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmVpAgJhUAJlagMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIFAWkFAmVqCQEBbgECEGludmFsaWQgZHVyYXRpb24EAmJoCQBoAgUCZWoFAWsEAmVrCQDYBAEFAmFCAwkBAiE9AgkAkAMBCAUCYVAIcGF5bWVudHMAAQkBAW4BAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjRQkAkQMCCAUCYVAIcGF5bWVudHMAAAQCZWwIBQJjRQZhbW91bnQDCQECIT0CBQJhQgkBBXZhbHVlAQgFAmNFB2Fzc2V0SWQJAQFuAQkArAICCQCsAgICHmludmFsaWQgYXNzZXQgaXMgaW4gcGF5bWVudCAtIAUCZWsCDCBpcyBleHBlY3RlZAQCZW0JAQJiawAEAmFaCAUCYVAGY2FsbGVyBAJiUAkApQgBBQJhWgQCZW4JAQlpc0RlZmluZWQBCQCiCAEJAQJibAEFAmJQBAJlbwMFAmVuCQEFdmFsdWUBCQCiCAEJAQJibAEFAmJQCQCkAwEJAQF1AgUEdGhpcwUCZW0EAmJzCQENcGFyc2VJbnRWYWx1ZQEFAmVvBAJjbAUGaGVpZ2h0AwMJAGYCBQJhQwUCZWwJAQIhPQIFAmFaBQJiVQcJAQFuAQkArAICAiJhbW91bnQgaXMgbGVzcyB0aGVuIG1pbkxvY2tBbW91bnQ9CQCkAwEFAmFDAwkAZgIFAmFEBQJiaAkBAW4BCQCsAgICLXBhc3NlZCBkdXJhdGlvbiBpcyBsZXNzIHRoZW4gbWluTG9ja0R1cmF0aW9uPQkApAMBBQJhRAMJAGYCBQJiaAUCYUUJAQFuAQkArAICAjBwYXNzZWQgZHVyYXRpb24gaXMgZ3JlYXRlciB0aGVuIG1heExvY2tEdXJhdGlvbj0JAKQDAQUCYUUEAmVwCQBrAwUCZWwFAmJoBQJhRQQCZXEJAQJjYgAEAmRYCQECYnIBBQJicwQCZFEICQECZEcAAl8yBAJlcgkBAmNGAQUCYVoEAmVzCQD9BwQFAmJUAhFyZWZyZXNoVXNlclJld2FyZAkAzAgCCAUCYVoFYnl0ZXMFA25pbAUDbmlsAwkAAAIFAmVzBQJlcwQCZXQDBQJlbgUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlbQkAZAIFAmJzAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJsAQUCYlAFAmVvCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJibQEFAmVvBQJiUAUDbmlsCQCUCgIJAM4IAgkAzQgCCQDOCAIJAM4IAgUCZXQJAQJjQgcFAmFaCAUCYVANdHJhbnNhY3Rpb25JZAUCZWwFAmNsBQJiaAUCZXAAAAkBAmNvBAUCZWwFAmJoAAEDBQJlbgAAAAEJAQJjaQcCBGxvY2sFAmJQBQJlbAUCY2wFAmJoBQJlcAUCYVAJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRYBQJkUQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJ6AAkAZAIFAmVxBQJlcAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJkAQUCYVoJAGQCBQJlcgUCZXAFA25pbAUCZXAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmV1AgJhWgJldgQCZXcJAQJiYwIFAmFaBQJldgQCZXgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJldwUCYVMEAmNsCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZXcFAmFUBAJleQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmV3BQJhVQQCZXoJAGQCBQJjbAUCZXkEAmJqCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZXcFAmFYBAJlQQkAaQIJAGUCBQZoZWlnaHQFAmNsBQJhRwQCZUIJALwCAwkAtgIBBQJlQQkAuQICCQC2AgEJAGgCAAgFAmFHBQFoCQC2AgEFAmV5BAJlQwMJAGYCBQZoZWlnaHQFAmV6BQJleAkAZQIJAKADAQkAvAIDCQC2AgEFAmV4CQC4AgIFAWgJAHYGCQC2AgEABQABBQJlQgUBZgUBZgUERE9XTgUBaAUCYmoFAmVDEQJhUAELY29uc3RydWN0b3IGAmVEAmVFAmFDAmVGAmVHAmFGBAJlSAkBAmFPAQUCYVADCQAAAgUCZUgFAmVICQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiawAAAAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXkACQECYUkFBQJlRQUCYUMFAmVGBQJlRwUCYUYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUYABQJlRAUDbmlsCQECY28EAAAAAAAAAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYVABB2xvY2tSZWYDAmJoAmVJAmVKBAJlSwkBAmVpAgUCYVAFAmJoBAJlTAgFAmVLAl8xBAJlcAgFAmVLAl8yBAJlTQkApQgBCAUCYVAGY2FsbGVyBAJlTgMDCQAAAgUCZUkCAAYJAAACBQJlSgEABQR1bml0CQD8BwQFAUICCmNyZWF0ZVBhaXIJAMwIAgUBRQkAzAgCBQJlSQkAzAgCBQJlTQkAzAgCBQJlSgUDbmlsBQNuaWwDCQAAAgUCZU4FAmVOBAJlTwkA/AcEBQJhRgIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCCQClCAEIBQJhUAZjYWxsZXIJAMwIAgUCZXAFA25pbAUDbmlsAwkAAAIFAmVPBQJlTwkAlAoCBQJlTAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhUAEEbG9jawECYmgEAmVQCQECZWkCBQJhUAUCYmgEAmVMCAUCZVACXzEEAmVwCAUCZVACXzIEAmVPCQD8BwQFAmFGAhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIJAKUIAQgFAmFQBmNhbGxlcgkAzAgCBQJlcAUDbmlsBQNuaWwDCQAAAgUCZU8FAmVPCQCUCgIFAmVMBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFQAQxjbGFpbVd4Qm9vc3QCAmJIAmJQAwkBAiE9AgUCYlMIBQJhUAZjYWxsZXIJAQFuAQIScGVybWlzc2lvbnMgZGVuaWVkBAJlUQkBAmRSAwUCYkgFAmJQBwQCZVIIBQJlUQJfMQQCZWcIBQJlUQJfMgQCZWgIBQJlUQJfMwkAlAoCBQJlZwkAzAgCBQJlUgUDbmlsAmFQARRjbGFpbVd4Qm9vc3RSRUFET05MWQICYkgCYlAEAmVTCQECZFIDBQJiSAUCYlAGBAJlUggFAmVTAl8xBAJlZwgFAmVTAl8yBAJlaAgFAmVTAl8zCQCUCgIFA25pbAkAzAgCBQJlUgkAzAgCBQJlaAUDbmlsAmFQAQZ1bmxvY2sBAmVUBAJhWggFAmFQBmNhbGxlcgQCYlAJAKUIAQUCYVoEAmJhCQDZBAEFAmVUBAJldwkBAmJjAgUCYVoDCQAAAgUCZVQCAAUEdW5pdAUCYmEEAmV4CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZXcFAmFTBAJjbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmV3BQJhVAQCZXkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJldwUCYVUEAmJqCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZXcFAmFYBAJiaQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmV3BQJhVwQCZUEJAGkCCQBlAgUGaGVpZ2h0BQJjbAUCYUcEAmVDCQECZXUCBQJhWgMJAAACBQJlVAIABQR1bml0BQJiYQQCZXAJAGsDBQJleAUCZXkFAmFFBAJlVQkAlwMBCQDMCAIJAGsDCQBoAgUCZUEFAmFHBQJlcAUCYUUJAMwIAgUCYmkFA25pbAQCZVYJAQF4AgkAZQIFAmJpBQJlVQIMZ3d4UmVtYWluaW5nBAJlVwkBAmNjAQUCYVoDCQBnAgAABQJleAkBAW4BAhFub3RoaW5nIHRvIHVubG9jawQCZXEJAQJjYgAEAmVyCQECY0YBBQJhWgQCZVgJAQF4AgkAZQIFAmVyBQJlVQIVdXNlckd3eEFtb3VudFRvdGFsTmV3AwkAZgIFAmVXBQJlWAkBAW4BCQCsAgICE2xvY2tlZCBnd3ggYW1vdW50OiAJAKQDAQUCZVcEAmVzCQD9BwQFAmJUAhFyZWZyZXNoVXNlclJld2FyZAkAzAgCCAUCYVoFYnl0ZXMFA25pbAUDbmlsAwkAAAIFAmVzBQJlcwkAzggCCQDNCAIJAM0IAgkAzggCCQECY0IHBQJhWgUCYmEFAmV4BQJjbAUCZXkFAmVWCQBkAgUCYmoFAmVDCQECY28ECQEBLQEFAmVDAAAAAAAACQECY2kHAgZ1bmxvY2sFAmJQBQJlQwUCY2wFAmV5BQJlVQUCYVAJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFaBQJlQwUCYUIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiegAJAQF4AgkAZQIFAmVxBQJlVQIIZ3d4VG90YWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiZAEFAmFaBQJlWAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFQARNnd3hVc2VySW5mb1JFQURPTkxZAQJiUAQCYVoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQJiUAkBAWwBAhRpbnZhbGlkIHVzZXIgYWRkcmVzcwQCYmkJAQJjRgEFAmFaCQCUCgIFA25pbAkAzAgCBQJiaQUDbmlsAmFQARd1c2VyTWF4RHVyYXRpb25SRUFET05MWQECYlAJAJQKAgUDbmlsCQCUCgICDGluY3JlYXNlTG9jawUCYUUCYVABIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZAgJiUAJlWQQCYVoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQJiUAkBAWwBAhRpbnZhbGlkIHVzZXIgYWRkcmVzcwQCYmkJAQJjRgEFAmFaCQCUCgIFA25pbAUCYmkCYVABEGdldFVzZXJHd3hBbW91bnQBAmJQBAJhWgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFAmJQCQEBbAECFGludmFsaWQgdXNlciBhZGRyZXNzBAJiaQkBAmNGAQUCYVoJAJQKAgUDbmlsBQJiaQJhUAETZ2V0R3d4VG90YWxSRUFET05MWQAJAJQKAgUDbmlsCQECY2IAAmFQARVvbkJvb3N0RW1pc3Npb25VcGRhdGUABAJlSAMJAAACCAUCYVAGY2FsbGVyBQJiUgYJAQJhTwEFAmFQAwkAAAIFAmVIBQJlSAkBAmRHAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhUAESb25TdGFrZWRWb3RlVXBkYXRlAwJiSAJiUAJkcwQCZUgDCQAAAggFAmFQBmNhbGxlcgUCYlMGCQECYU8BBQJhUAMJAAACBQJlSAUCZUgEAmR2CQECZHIDBQJiSAUCYlAFAmRzCQCUCgIFAmR2BQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFQAR1nZXRWb3RpbmdSZXN1bHRTdGFrZWRSRUFET05MWQECYkgJAJQKAgUDbmlsCQECY1cBBQJiSAJhUAElZ2V0Vm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxSRUFET05MWQECYkgJAJQKAgUDbmlsCQECZGEBBQJiSAJhUAEcZ2V0VXNlclZvdGVGaW5hbGl6ZWRSRUFET05MWQICYkgCYlAJAJQKAgUDbmlsCQECY1ACBQJiSAUCYlACYVABIWdldFVzZXJWb3RlU3Rha2VkSW50ZWdyYWxSRUFET05MWQICYkgCYlAJAJQKAgUDbmlsCQECZGsCBQJiSAUCYlABAmVaAQJmYQAEAmZiBAJhSwkBAmFNAAMJAAECBQJhSwIKQnl0ZVZlY3RvcgQCYVIFAmFLBQJhUgMJAAECBQJhSwIEVW5pdAgFAmVaD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJlWglib2R5Qnl0ZXMJAJEDAggFAmVaBnByb29mcwAABQJmYvMpV50=", "height": 2706081, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5mLpGSjrJ9FY9CnVPpc53f3Rku6vtNeMtpswhY5LcNi6 Next: HNuyo542xzNyJZ8fWbNgw4Y9zsDqt61JkAmxSk7M3QJc Diff:
OldNewDifferences
1717
1818 let h = toBigInt(g)
1919
20-let i = 1440
20+let i = [1, 3, 6, 12, 24, 48]
2121
22-let j = 43800
22+let j = 1440
2323
24-func k (l) = makeString([e, ": ", l], "")
24+let k = 43800
25+
26+func l (m) = makeString([e, ": ", m], "")
2527
2628
27-func m (l) = throw(k(l))
29+func n (m) = throw(l(m))
2830
2931
30-func n (o,p) = valueOrErrorMessage(getString(o, p), k((("mandatory this." + p) + " is not defined")))
32+func o (p,q) = valueOrErrorMessage(getString(p, q), l((("mandatory this." + q) + " is not defined")))
3133
3234
33-func q (o,p) = valueOrElse(getInteger(o, p), 0)
35+func r (p,q) = valueOrElse(getInteger(p, q), 0)
3436
3537
36-func r (o,p,s) = valueOrElse(getInteger(o, p), s)
38+func s (p,q,t) = valueOrElse(getInteger(p, q), t)
3739
3840
39-func t (o,p) = valueOrErrorMessage(getInteger(o, p), k((("mandatory this." + p) + " is not defined")))
41+func u (p,q) = valueOrErrorMessage(getInteger(p, q), l((("mandatory this." + q) + " is not defined")))
4042
4143
42-func u (v) = if ((0 > v))
43- then -(v)
44- else v
44+func v (w) = if ((0 > w))
45+ then -(w)
46+ else w
4547
4648
47-func w (x,y) = if ((x >= 0))
48- then x
49- else m((valueOrElse(y, "value") + " should be positive"))
49+func x (y,z) = if ((y >= 0))
50+ then y
51+ else n((valueOrElse(z, "value") + " should be positive"))
5052
5153
52-func z () = makeString(["%s%s", "config", "referralsContractAddress"], a)
54+func A () = makeString(["%s%s", "config", "referralsContractAddress"], a)
5355
5456
55-let A = addressFromStringValue(n(this, z()))
57+let B = addressFromStringValue(o(this, A()))
5658
57-let B = makeString(["%s%s", "referral", "programName"], a)
59+let C = makeString(["%s%s", "referral", "programName"], a)
5860
59-let C = "wxlock"
61+let D = "wxlock"
6062
61-let D = valueOrElse(getString(this, B), C)
63+let E = valueOrElse(getString(this, C), D)
6264
63-func E () = "%s%s__config__factoryAddress"
65+func F () = "%s%s__config__factoryAddress"
6466
6567
66-let F = 1
68+let G = 1
6769
68-let G = 2
70+let H = 2
6971
70-let H = 3
72+let I = 3
7173
72-let I = 4
74+let J = 4
7375
74-let J = 5
76+let K = 5
7577
76-let K = 6
78+let L = 6
7779
78-let L = 7
80+let M = 7
7981
80-let M = 8
82+let N = 8
8183
82-let N = 9
84+let O = 9
8385
84-let O = 10
86+let P = 10
8587
86-let P = 11
88+let Q = 11
8789
88-func Q () = "%s__factoryConfig"
90+func R () = "%s__factoryConfig"
8991
9092
91-func R (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], a)
93+func S (T) = makeString(["%s%s%s", T, "mappings__lpAsset2PoolContract"], a)
9294
9395
94-func T (U) = makeString(["%s%s", "poolWeight", U], a)
96+func U (V) = makeString(["%s%s", "poolWeight", V], a)
9597
9698
97-func V (W,X) = ((("%s%s__poolWeight__" + W) + "__") + toString(X))
99+func W (X,Y) = ((("%s%s__poolWeight__" + X) + "__") + toString(Y))
98100
99101
100-func Y () = addressFromStringValue(n(this, E()))
102+func Z () = addressFromStringValue(o(this, F()))
101103
102104
103-func Z (aa) = split(n(aa, Q()), a)
105+func aa (ab) = split(o(ab, R()), a)
104106
105107
106-func ab (ac) = addressFromStringValue(ac[G])
108+func ac (ad) = addressFromStringValue(ad[H])
107109
108110
109-func ad (ac) = addressFromStringValue(ac[J])
111+func ae (ad) = addressFromStringValue(ad[K])
110112
111113
112-func ae (ac) = addressFromStringValue(ac[F])
114+func af (ad) = addressFromStringValue(ad[G])
113115
114116
115-func af (ac) = addressFromStringValue(ac[O])
117+func ag (ad) = addressFromStringValue(ad[P])
116118
117119
118-func ag () = "%s__managerPublicKey"
120+func ah () = "%s__managerPublicKey"
119121
120122
121-func ah () = "%s__managerVaultAddress"
123+func ai () = "%s__managerVaultAddress"
122124
123125
124-func ai () = "%s%s__ratePerBlock__current"
126+func aj () = "%s%s__ratePerBlock__current"
125127
126128
127-func aj () = "%s%s__ratePerBlockMax__current"
129+func ak () = "%s%s__ratePerBlockMax__current"
128130
129131
130-func ak () = "%s%s__emission__startBlock"
132+func al () = "%s%s__emission__startBlock"
131133
132134
133-func al () = "%s%s__boostingV2__startBlock"
135+func am () = "%s%s__boostingV2__startBlock"
134136
135137
136-func am () = "%s%s__boostingV2__integral"
138+func an () = "%s%s__boostingV2__integral"
137139
138140
139-func an () = "%s%s__emission__duration"
141+func ao () = "%s%s__emission__duration"
140142
141143
142-func ao () = "%s%s__emission__endBlock"
144+func ap () = "%s%s__emission__endBlock"
143145
144146
145-func ap () = "%s__nextPeriod"
147+func aq () = "%s__nextPeriod"
146148
147149
148-func aq () = "%s%s__gwxRewardEmissionPart__startHeight"
150+func ar () = "%s%s__gwxRewardEmissionPart__startHeight"
149151
150152
151-let ar = 1
153+let as = 1
152154
153-let as = 2
155+let at = 2
154156
155-let at = 3
157+let au = 3
156158
157-let au = 4
159+let av = 4
158160
159-let av = 5
161+let aw = 5
160162
161-let aw = 6
163+let ax = 6
162164
163-func ax () = "%s__config"
165+func ay () = "%s__config"
164166
165167
166-func ay () = split(n(this, ax()), a)
168+func az () = split(o(this, ay()), a)
167169
168170
169-let az = ay()
171+let aA = az()
170172
171-let aA = fromBase58String(az[ar])
173+let aB = fromBase58String(aA[as])
172174
173-let aB = valueOrErrorMessage(parseInt(az[as]), k("invalid min lock amount"))
175+let aC = valueOrErrorMessage(parseInt(aA[at]), l("invalid min lock amount"))
174176
175-let aC = valueOrErrorMessage(parseInt(az[at]), k("invalid min lock duration"))
177+let aD = valueOrErrorMessage(parseInt(aA[au]), l("invalid min lock duration"))
176178
177-let aD = valueOrErrorMessage(parseInt(az[au]), k("invalid max lock duration"))
179+let aE = valueOrErrorMessage(parseInt(aA[av]), l("invalid max lock duration"))
178180
179-let aE = valueOrErrorMessage(addressFromString(az[av]), k("invalid math contract address"))
181+let aF = valueOrErrorMessage(addressFromString(aA[aw]), l("invalid math contract address"))
180182
181-let aF = valueOrErrorMessage(parseInt(az[aw]), k("invalid blocks in period"))
183+let aG = valueOrErrorMessage(parseInt(aA[ax]), l("invalid blocks in period"))
182184
183-func aG (aA,aB,aC,aD,aE) = makeString(["%s%d%d%d%s", aA, aB, aC, aD, aE], a)
185+func aH (aB,aC,aD,aE,aF) = makeString(["%s%d%d%d%s", aB, aC, aD, aE, aF], a)
184186
185187
186-func aH (aA,aB,aC,aD,aE) = aG(aA, toString(aB), toString(aC), toString(aD), aE)
188+func aI (aB,aC,aD,aE,aF) = aH(aB, toString(aC), toString(aD), toString(aE), aF)
187189
188190
189-func aI () = {
190- let aJ = getString(ah())
191- if ($isInstanceOf(aJ, "String"))
191+func aJ () = {
192+ let aK = getString(ai())
193+ if ($isInstanceOf(aK, "String"))
192194 then {
193- let aK = aJ
194- addressFromStringValue(aK)
195+ let aL = aK
196+ addressFromStringValue(aL)
195197 }
196198 else this
197199 }
198200
199201
200-func aL () = {
201- let aM = aI()
202- let aJ = getString(aM, ag())
203- if ($isInstanceOf(aJ, "String"))
202+func aM () = {
203+ let aN = aJ()
204+ let aK = getString(aN, ah())
205+ if ($isInstanceOf(aK, "String"))
204206 then {
205- let aK = aJ
206- fromBase58String(aK)
207+ let aL = aK
208+ fromBase58String(aL)
207209 }
208- else if ($isInstanceOf(aJ, "Unit"))
210+ else if ($isInstanceOf(aK, "Unit"))
209211 then unit
210212 else throw("Match error")
211213 }
212214
213215
214-func aN (aO) = {
215- let aP = m("Permission denied")
216- let aJ = aL()
217- if ($isInstanceOf(aJ, "ByteVector"))
216+func aO (aP) = {
217+ let aQ = n("Permission denied")
218+ let aK = aM()
219+ if ($isInstanceOf(aK, "ByteVector"))
218220 then {
219- let aQ = aJ
220- if ((aO.callerPublicKey == aQ))
221+ let aR = aK
222+ if ((aP.callerPublicKey == aR))
221223 then true
222- else aP
224+ else aQ
223225 }
224- else if ($isInstanceOf(aJ, "Unit"))
225- then if ((aO.caller == this))
226+ else if ($isInstanceOf(aK, "Unit"))
227+ then if ((aP.caller == this))
226228 then true
227- else aP
229+ else aQ
228230 else throw("Match error")
229231 }
230232
231233
232-let aR = 1
234+let aS = 1
233235
234-let aS = 2
236+let aT = 2
235237
236-let aT = 3
238+let aU = 3
237239
238-let aU = 4
240+let aV = 4
239241
240-let aV = 5
242+let aW = 5
241243
242-let aW = 6
244+let aX = 6
243245
244-func aX (aY,aZ) = makeString(["%s%s%s__lock", toString(aY), {
245- let aJ = aZ
246- if ($isInstanceOf(aJ, "ByteVector"))
246+func aY (aZ,ba) = makeString(["%s%s%s__lock", toString(aZ), {
247+ let aK = ba
248+ if ($isInstanceOf(aK, "ByteVector"))
247249 then {
248- let ba = aJ
249- toBase58String(ba)
250+ let bb = aK
251+ toBase58String(bb)
250252 }
251- else if ($isInstanceOf(aJ, "Unit"))
253+ else if ($isInstanceOf(aK, "Unit"))
252254 then "legacy"
253255 else throw("Match error")
254256 }], a)
255257
256258
257-func bb (aY,aZ) = split(n(this, aX(aY, aZ)), a)
259+func bc (aZ,ba) = split(o(this, aY(aZ, ba)), a)
258260
259261
260-func bc (aY) = makeString(["%s%s__gwxAmountTotal", toString(aY)], a)
262+func bd (aZ) = makeString(["%s%s__gwxAmountTotal", toString(aZ)], a)
261263
262264
263-func bd (be,bf,bg,bh,bi) = makeString(["%d%d%d%d%d%d%d", toString(be), toString(bf), toString(bg), toString(lastBlock.timestamp), toString(bh), toString(bi)], a)
265+func be (bf,bg,bh,bi,bj) = makeString(["%d%d%d%d%d%d%d", toString(bf), toString(bg), toString(bh), toString(lastBlock.timestamp), toString(bi), toString(bj)], a)
264266
265267
266-func bj () = "%s__nextUserNum"
268+func bk () = "%s__nextUserNum"
267269
268270
269-func bk (aY) = makeString(["%s%s%s__mapping__user2num", aY], a)
271+func bl (aZ) = makeString(["%s%s%s__mapping__user2num", aZ], a)
270272
271273
272-func bl (X) = makeString(["%s%s%s__mapping__num2user", X], a)
274+func bm (Y) = makeString(["%s%s%s__mapping__num2user", Y], a)
273275
274276
275-func bm () = "%s%s__stats__activeTotalLocked"
277+func bn () = "%s%s__stats__activeTotalLocked"
276278
277279
278-func bn () = "%s%s__stats__locksDurationSumInBlocks"
280+func bo () = "%s%s__stats__locksDurationSumInBlocks"
279281
280282
281-func bo () = "%s%s__stats__locksCount"
283+func bp () = "%s%s__stats__locksCount"
282284
283285
284-func bp () = "%s%s__stats__activeUsersCount"
286+func bq () = "%s%s__stats__activeUsersCount"
285287
286288
287-func bq (br) = makeString(["%s%d__userBoostEmissionLastIntV2", toString(br)], a)
289+func br (bs) = makeString(["%s%d__userBoostEmissionLastIntV2", toString(bs)], a)
288290
289291
290-func bs (br,bt) = makeString(["%s%d__userBoostEmissionLastIntV2", toString(br), bt], a)
292+func bt (bs,bu) = makeString(["%s%d__userBoostEmissionLastIntV2", toString(bs), bu], a)
291293
292294
293-func bu (br) = makeString(["%s%d__maxBoostInt", toString(br)], a)
295+func bv (bs) = makeString(["%s%d__maxBoostInt", toString(bs)], a)
294296
295297
296-func bv () = "%s%s__maxBoostInt__total"
298+func bw () = "%s%s__maxBoostInt__total"
297299
298300
299-func bw (br) = makeString(["%s%d__userBoostAvaliableToClaimTotal", toString(br)], a)
301+func bx (bs) = makeString(["%s%d__userBoostAvaliableToClaimTotal", toString(bs)], a)
300302
301303
302-func bx (br) = makeString(["%s%d__userBoostClaimed", toString(br)], a)
304+func by (bs) = makeString(["%s%d__userBoostClaimed", toString(bs)], a)
303305
304306
305-func by () = "%s%s__gwx__total"
307+func bz () = "%s%s__gwx__total"
306308
307309
308-func bz (bA,bB,o,bC) = makeString(["%s%s%s%s%d", "vote", bA, bB, toString(o), toString(bC)], a)
310+func bA (bB,bC,p,bD) = makeString(["%s%s%s%s%d", "vote", bB, bC, toString(p), toString(bD)], a)
309311
310312
311-func bD (bC) = makeString(["%s%d", "startHeight", toString(bC)], a)
313+func bE (bD) = makeString(["%s%d", "startHeight", toString(bD)], a)
312314
313315
314-func bE () = makeString(["%s", "currentEpochUi"], a)
316+func bF () = makeString(["%s", "currentEpochUi"], a)
315317
316318
317-func bF (bG,bC) = makeString(["%s%s%d", "votingResultStaked", bG, toString(bC)], a)
319+func bG (bH,bD) = makeString(["%s%s%d", "votingResultStaked", bH, toString(bD)], a)
318320
319321
320-func bH (bG,bC) = makeString(["%s%s%d", "votingResultStakedIntegral", bG, toString(bC)], a)
322+func bI (bH,bD) = makeString(["%s%s%d", "votingResultStakedIntegral", bH, toString(bD)], a)
321323
322324
323-func bI (bG,bC) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bG, toString(bC)], a)
325+func bJ (bH,bD) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bH, toString(bD)], a)
324326
325327
326-func bJ (bG,o,bC) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bG, toString(o), toString(bC)], a)
328+func bK (bH,p,bD) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bH, toString(p), toString(bD)], a)
327329
328330
329-func bK (bG,o,bC) = makeString(["%s%s%s%d", "voteStakedIntegral", bG, toString(o), toString(bC)], a)
331+func bL (bH,p,bD) = makeString(["%s%s%s%d", "voteStakedIntegral", bH, toString(p), toString(bD)], a)
330332
331333
332-func bL (bG,o,bC) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bG, toString(o), toString(bC)], a)
334+func bM (bH,p,bD) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bH, toString(p), toString(bD)], a)
333335
334336
335-func bM (bG,o,bC) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bG, toString(o), toString(bC)], a)
337+func bN (bH,p,bD) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bH, toString(p), toString(bD)], a)
336338
337339
338-func bN (bO,bG) = makeString(["%s%s%s", "staked", bO, bG], a)
340+func bO (bP,bH) = makeString(["%s%s%s", "staked", bP, bH], a)
339341
340342
341-let bP = Y()
343+let bQ = Z()
342344
343-let ac = Z(bP)
345+let ad = aa(bQ)
344346
345-let bQ = ad(ac)
347+let bR = ae(ad)
346348
347-let bR = ae(ac)
349+let bS = af(ad)
348350
349-let bS = af(ac)
351+let bT = ag(ad)
350352
351-let bT = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), k("lp_staking_pools contract address is undefined"))), k("invalid lp_staking_pools contract address"))
353+let bU = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), l("lp_staking_pools contract address is undefined"))), l("invalid lp_staking_pools contract address"))
352354
353-let bU = makeString(["%s", "votingEmissionContract"], a)
355+let bV = makeString(["%s", "votingEmissionContract"], a)
354356
355-let bV = addressFromStringValue(getStringValue(bP, bU))
357+let bW = addressFromStringValue(getStringValue(bQ, bV))
356358
357-let bW = makeString(["%s", "votingEmissionRateContract"], a)
359+let bX = makeString(["%s", "votingEmissionRateContract"], a)
358360
359-let bX = {
360- let bY = invoke(bQ, "getBoostCoeffREADONLY", nil, nil)
361- if ($isInstanceOf(bY, "Int"))
362- then bY
363- else throw(($getType(bY) + " couldn't be cast to Int"))
361+let bY = {
362+ let bZ = invoke(bR, "getBoostCoeffREADONLY", nil, nil)
363+ if ($isInstanceOf(bZ, "Int"))
364+ then bZ
365+ else throw(($getType(bZ) + " couldn't be cast to Int"))
364366 }
365367
366-func bZ (aY) = {
367- let aJ = getString(this, bk(toString(aY)))
368- if ($isInstanceOf(aJ, "String"))
368+func ca (aZ) = {
369+ let aK = getString(this, bl(toString(aZ)))
370+ if ($isInstanceOf(aK, "String"))
369371 then {
370- let aK = aJ
371- valueOrErrorMessage(parseInt(aK), k("invalid user number"))
372+ let aL = aK
373+ valueOrErrorMessage(parseInt(aL), l("invalid user number"))
372374 }
373- else if ($isInstanceOf(aJ, "Unit"))
374- then m("invalid user")
375+ else if ($isInstanceOf(aK, "Unit"))
376+ then n("invalid user")
375377 else throw("Match error")
376378 }
377379
378380
379-func ca () = valueOrElse(getInteger(this, by()), 0)
381+func cb () = valueOrElse(getInteger(this, bz()), 0)
380382
381383
382-func cb (aY) = {
383- let cc = "getLockedGwxAmount"
384- let cd = valueOrErrorMessage({
385- let aJ = getString(bV, bW)
386- if ($isInstanceOf(aJ, "Unit"))
384+func cc (aZ) = {
385+ let cd = "getLockedGwxAmount"
386+ let ce = valueOrErrorMessage({
387+ let aK = getString(bW, bX)
388+ if ($isInstanceOf(aK, "Unit"))
387389 then unit
388- else if ($isInstanceOf(aJ, "String"))
390+ else if ($isInstanceOf(aK, "String"))
389391 then {
390- let aK = aJ
391- addressFromString(aK)
392+ let aL = aK
393+ addressFromString(aL)
392394 }
393395 else throw("Match error")
394- }, k("invalid voting emission rate address"))
395- let ce = {
396- let bY = invoke(bV, cc, [toString(aY)], nil)
397- if ($isInstanceOf(bY, "Int"))
398- then bY
399- else throw(($getType(bY) + " couldn't be cast to Int"))
396+ }, l("invalid voting emission rate address"))
397+ let cf = {
398+ let bZ = invoke(bW, cd, [toString(aZ)], nil)
399+ if ($isInstanceOf(bZ, "Int"))
400+ then bZ
401+ else throw(($getType(bZ) + " couldn't be cast to Int"))
400402 }
401- let cf = {
402- let bY = invoke(cd, cc, [toString(aY)], nil)
403- if ($isInstanceOf(bY, "Int"))
404- then bY
405- else throw(($getType(bY) + " couldn't be cast to Int"))
403+ let cg = {
404+ let bZ = invoke(ce, cd, [toString(aZ)], nil)
405+ if ($isInstanceOf(bZ, "Int"))
406+ then bZ
407+ else throw(($getType(bZ) + " couldn't be cast to Int"))
406408 }
407- let cg = max([ce, cf])
408- cg
409+ let ch = max([cf, cg])
410+ ch
409411 }
410412
411413
412-func ch (ci,cj,be,ck,bg,bh,aO) = {
413- let cl = makeString(["%s%s%s%s__history", ci, cj, toBase58String(aO.transactionId)], a)
414- let cm = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(be), toString(ck), toString(bg), toString(bh)], a)
415- StringEntry(cl, cm)
414+func ci (cj,ck,bf,cl,bh,bi,aP) = {
415+ let cm = makeString(["%s%s%s%s__history", cj, ck, toBase58String(aP.transactionId)], a)
416+ let cn = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(bf), toString(cl), toString(bh), toString(bi)], a)
417+ StringEntry(cm, cn)
416418 }
417419
418420
419-func cn (co,cp,cq,cr) = {
420- let cs = bn()
421+func co (cp,cq,cr,cs) = {
421422 let ct = bo()
422423 let cu = bp()
423- let cv = bm()
424- let cw = q(this, cs)
425- let cx = q(this, ct)
426- let cy = q(this, cu)
427- let cz = q(this, cv)
428-[IntegerEntry(cs, (cw + cp)), IntegerEntry(ct, (cx + cq)), IntegerEntry(cu, (cy + cr)), IntegerEntry(cv, (cz + co))]
424+ let cv = bq()
425+ let cw = bn()
426+ let cx = r(this, ct)
427+ let cy = r(this, cu)
428+ let cz = r(this, cv)
429+ let cA = r(this, cw)
430+[IntegerEntry(ct, (cx + cq)), IntegerEntry(cu, (cy + cr)), IntegerEntry(cv, (cz + cs)), IntegerEntry(cw, (cA + cp))]
429431 }
430432
431433
432-func cA (aY,aZ,be,bf,bg,bh,bi) = [StringEntry(aX(aY, aZ), bd(be, bf, bg, bh, bi))]
434+func cB (aZ,ba,bf,bg,bh,bi,bj) = [StringEntry(aY(aZ, ba), be(bf, bg, bh, bi, bj))]
433435
434436
435-func cB (aO,cC) = if ((size(aO.payments) > 1))
436- then m("only one payment is allowed")
437- else if ((size(aO.payments) == 0))
437+func cC (aP,cD) = if ((size(aP.payments) > 1))
438+ then n("only one payment is allowed")
439+ else if ((size(aP.payments) == 0))
438440 then 0
439441 else {
440- let cD = aO.payments[0]
441- if ((value(cD.assetId) != cC))
442- then m("invalid asset id in payment")
443- else cD.amount
442+ let cE = aP.payments[0]
443+ if ((value(cE.assetId) != cD))
444+ then n("invalid asset id in payment")
445+ else cE.amount
444446 }
445447
446448
447-func cE (aY) = valueOrElse(getInteger(this, bc(aY)), 0)
449+func cF (aZ) = valueOrElse(getInteger(this, bd(aZ)), 0)
448450
449451
450-func cF () = {
451- let cG = {
452- let cH = value(getInteger(bV, bE()))
453- let cI = (cH - 1)
454- if ((0 > cI))
455- then m("invalid epoch")
456- else $Tuple2(cH, cI)
452+func cG () = {
453+ let cH = {
454+ let cI = value(getInteger(bW, bF()))
455+ let cJ = (cI - 1)
456+ if ((0 > cJ))
457+ then n("invalid epoch")
458+ else $Tuple2(cI, cJ)
457459 }
458- let cH = cG._1
459- let cI = cG._2
460- let cJ = value(getInteger(bV, bD(cH)))
461- $Tuple2(cI, cJ)
460+ let cI = cH._1
461+ let cJ = cH._2
462+ let cK = value(getInteger(bW, bE(cI)))
463+ $Tuple2(cJ, cK)
462464 }
463465
464466
465-func cK (bG) = {
466- let cL = 4
467- let cM = 5
468- let cN = {
469- let bY = invoke(bP, "getPoolConfigByLpAssetIdREADONLY", [bG], nil)
470- if ($isInstanceOf(bY, "List[Any]"))
471- then bY
472- else throw(($getType(bY) + " couldn't be cast to List[Any]"))
473- }
474- let bA = {
475- let bY = cN[cL]
476- if ($isInstanceOf(bY, "String"))
477- then bY
478- else throw(($getType(bY) + " couldn't be cast to String"))
467+func cL (bH) = {
468+ let cM = 4
469+ let cN = 5
470+ let cO = {
471+ let bZ = invoke(bQ, "getPoolConfigByLpAssetIdREADONLY", [bH], nil)
472+ if ($isInstanceOf(bZ, "List[Any]"))
473+ then bZ
474+ else throw(($getType(bZ) + " couldn't be cast to List[Any]"))
479475 }
480476 let bB = {
481- let bY = cN[cM]
482- if ($isInstanceOf(bY, "String"))
483- then bY
484- else throw(($getType(bY) + " couldn't be cast to String"))
477+ let bZ = cO[cM]
478+ if ($isInstanceOf(bZ, "String"))
479+ then bZ
480+ else throw(($getType(bZ) + " couldn't be cast to String"))
485481 }
486- $Tuple2(bA, bB)
482+ let bC = {
483+ let bZ = cO[cN]
484+ if ($isInstanceOf(bZ, "String"))
485+ then bZ
486+ else throw(($getType(bZ) + " couldn't be cast to String"))
487+ }
488+ $Tuple2(bB, bC)
487489 }
488490
489491
490-func cO (bG,bO) = {
491- let aY = addressFromStringValue(bO)
492- let cP = cF()
493- let cI = cP._1
494- let cJ = cP._2
495- let cQ = cK(bG)
496- let bA = cQ._1
497- let bB = cQ._2
498- let cR = bz(bA, bB, aY, cI)
499- let cS = valueOrElse(getInteger(bV, cR), 0)
500- cS
492+func cP (bH,bP) = {
493+ let aZ = addressFromStringValue(bP)
494+ let cQ = cG()
495+ let cJ = cQ._1
496+ let cK = cQ._2
497+ let cR = cL(bH)
498+ let bB = cR._1
499+ let bC = cR._2
500+ let cS = bA(bB, bC, aZ, cJ)
501+ let cT = valueOrElse(getInteger(bW, cS), 0)
502+ cT
501503 }
502504
503505
504-func cT (bG,bO) = {
505- let cU = valueOrElse(getInteger(bR, bN(bO, bG)), 0)
506- let cS = cO(bG, bO)
507- if ((cU == 0))
506+func cU (bH,bP) = {
507+ let cV = valueOrElse(getInteger(bS, bO(bP, bH)), 0)
508+ let cT = cP(bH, bP)
509+ if ((cV == 0))
508510 then 0
509- else cS
511+ else cT
510512 }
511513
512514
513-func cV (bG) = {
514- let cW = cF()
515- let cI = cW._1
516- let cJ = cW._2
517- let cX = valueOrElse(getInteger(bV, bF(bG, cI)), 0)
518- let cY = valueOrElse(getInteger(this, bF(bG, cI)), cX)
519- cY
515+func cW (bH) = {
516+ let cX = cG()
517+ let cJ = cX._1
518+ let cK = cX._2
519+ let cY = valueOrElse(getInteger(bW, bG(bH, cJ)), 0)
520+ let cZ = valueOrElse(getInteger(this, bG(bH, cJ)), cY)
521+ cZ
520522 }
521523
522524
523-func cZ (bG) = {
524- let da = cF()
525- let cI = da._1
526- let cJ = da._2
527- let cY = cV(bG)
528- let db = valueOrElse(getInteger(this, bH(bG, cI)), 0)
529- let dc = valueOrElse(getInteger(this, bI(bG, cI)), cJ)
530- let dd = (height - dc)
531- let de = ((dd * cY) + db)
532- de
525+func da (bH) = {
526+ let db = cG()
527+ let cJ = db._1
528+ let cK = db._2
529+ let cZ = cW(bH)
530+ let dc = valueOrElse(getInteger(this, bI(bH, cJ)), 0)
531+ let dd = valueOrElse(getInteger(this, bJ(bH, cJ)), cK)
532+ let de = (height - dd)
533+ let df = ((de * cZ) + dc)
534+ df
533535 }
534536
535537
536-func df (bG,dg) = {
537- let dh = cF()
538- let cI = dh._1
539- let cJ = dh._2
540- let cY = cV(bG)
541- let di = (cY + dg)
542- let de = cZ(bG)
543-[IntegerEntry(bF(bG, cI), di), IntegerEntry(bI(bG, cI), height), IntegerEntry(bH(bG, cI), de)]
538+func dg (bH,dh) = {
539+ let di = cG()
540+ let cJ = di._1
541+ let cK = di._2
542+ let cZ = cW(bH)
543+ let dj = (cZ + dh)
544+ let df = da(bH)
545+[IntegerEntry(bG(bH, cJ), dj), IntegerEntry(bJ(bH, cJ), height), IntegerEntry(bI(bH, cJ), df)]
544546 }
545547
546548
547-func dj (bG,bO) = {
548- let dk = cF()
549- let cI = dk._1
550- let cJ = dk._2
551- let aY = addressFromStringValue(bO)
552- let dl = cT(bG, bO)
553- let dm = valueOrElse(getInteger(this, bK(bG, aY, cI)), 0)
554- let dn = valueOrElse(getInteger(this, bL(bG, aY, cI)), cJ)
555- let do = (height - dn)
556- let dp = ((do * dl) + dm)
557- dp
549+func dk (bH,bP) = {
550+ let dl = cG()
551+ let cJ = dl._1
552+ let cK = dl._2
553+ let aZ = addressFromStringValue(bP)
554+ let dm = cU(bH, bP)
555+ let dn = valueOrElse(getInteger(this, bL(bH, aZ, cJ)), 0)
556+ let do = valueOrElse(getInteger(this, bM(bH, aZ, cJ)), cK)
557+ let dp = (height - do)
558+ let dq = ((dp * dm) + dn)
559+ dq
558560 }
559561
560562
561-func dq (bG,bO,dr) = {
562- let ds = cF()
563- let cI = ds._1
564- let cJ = ds._2
565- let aY = addressFromStringValue(bO)
566- let dt = cO(bG, bO)
567- let du = if ((dt == 0))
563+func dr (bH,bP,ds) = {
564+ let dt = cG()
565+ let cJ = dt._1
566+ let cK = dt._2
567+ let aZ = addressFromStringValue(bP)
568+ let du = cP(bH, bP)
569+ let dv = if ((du == 0))
568570 then nil
569571 else {
570- let dg = if (dr)
571- then dt
572- else -(dt)
573- let dv = df(bG, dg)
574- let dp = dj(bG, bO)
575- let dw = [IntegerEntry(bL(bG, aY, cI), height), IntegerEntry(bK(bG, aY, cI), dp)]
576- (dv ++ dw)
572+ let dh = if (ds)
573+ then du
574+ else -(du)
575+ let dw = dg(bH, dh)
576+ let dq = dk(bH, bP)
577+ let dx = [IntegerEntry(bM(bH, aZ, cJ), height), IntegerEntry(bL(bH, aZ, cJ), dq)]
578+ (dw ++ dx)
577579 }
578- du
580+ dv
579581 }
580582
581583
582-func dx (bG,bO) = {
583- let dy = cF()
584- let cI = dy._1
585- let cJ = dy._2
586- let aY = addressFromStringValue(bO)
587- let dz = bM(bG, aY, cI)
588- let dA = valueOrElse(getInteger(this, dz), 0)
589- let dB = bJ(bG, aY, cI)
590- let dC = valueOrElse(getInteger(this, dB), 0)
591- let dp = dj(bG, bO)
592- let de = cZ(bG)
593- let dD = (dp - dA)
594- let dE = (de - dC)
595- $Tuple3([IntegerEntry(dz, dp), IntegerEntry(dB, de)], dD, dE)
584+func dy (bH,bP) = {
585+ let dz = cG()
586+ let cJ = dz._1
587+ let cK = dz._2
588+ let aZ = addressFromStringValue(bP)
589+ let dA = bN(bH, aZ, cJ)
590+ let dB = valueOrElse(getInteger(this, dA), 0)
591+ let dC = bK(bH, aZ, cJ)
592+ let dD = valueOrElse(getInteger(this, dC), 0)
593+ let dq = dk(bH, bP)
594+ let df = da(bH)
595+ let dE = (dq - dB)
596+ let dF = (df - dD)
597+ $Tuple3([IntegerEntry(dA, dq), IntegerEntry(dC, df)], dE, dF)
596598 }
597599
598600
599-func dF () = {
600- let dG = t(bQ, ai())
601- let dH = getInteger(this, al())
601+func dG () = {
602+ let dH = u(bR, aj())
602603 let dI = getInteger(this, am())
603- let dJ = t(bQ, ao())
604- let dK = if ((height > dJ))
605- then dJ
604+ let dJ = getInteger(this, an())
605+ let dK = u(bR, ap())
606+ let dL = if ((height > dK))
607+ then dK
606608 else height
607- let dL = {
608- let aJ = dH
609- if ($isInstanceOf(aJ, "Int"))
609+ let dM = {
610+ let aK = dI
611+ if ($isInstanceOf(aK, "Int"))
610612 then {
611- let dM = aJ
612- max([(dK - dM), 0])
613+ let dN = aK
614+ max([(dL - dN), 0])
613615 }
614- else if ($isInstanceOf(aJ, "Unit"))
616+ else if ($isInstanceOf(aK, "Unit"))
615617 then 0
616618 else throw("Match error")
617619 }
618- let dN = ((dG * (bX - 1)) / bX)
619- let dO = valueOrElse(dI, 0)
620- let dP = ((dN * dL) + dO)
621- $Tuple2([IntegerEntry(am(), dP), IntegerEntry(al(), height)], dP)
620+ let dO = ((dH * (bY - 1)) / bY)
621+ let dP = valueOrElse(dJ, 0)
622+ let dQ = ((dO * dM) + dP)
623+ $Tuple2([IntegerEntry(an(), dQ), IntegerEntry(am(), height)], dQ)
622624 }
623625
624626
625-func dQ (bG,bO,dR) = {
626- let aY = valueOrErrorMessage(addressFromString(bO), k("invalid user address"))
627- let br = bZ(aY)
628- if ((br == br))
627+func dR (bH,bP,dS) = {
628+ let aZ = valueOrErrorMessage(addressFromString(bP), l("invalid user address"))
629+ let bs = ca(aZ)
630+ if ((bs == bs))
629631 then {
630- let dS = "empty"
631- let dT = if ((bG != dS))
632+ let dT = "empty"
633+ let dU = if ((bH != dT))
632634 then {
633- let dU = valueOrErrorMessage(getString(bP, R(bG)), k(("unsupported lp asset " + bG)))
634- getIntegerValue(bP, T(dU))
635+ let dV = valueOrErrorMessage(getString(bQ, S(bH)), l(("unsupported lp asset " + bH)))
636+ getIntegerValue(bQ, U(dV))
635637 }
636- else if (dR)
638+ else if (dS)
637639 then 0
638- else m(("not readonly mode: unsupported lp asset " + bG))
639- let dV = bs(br, bG)
640- let dW = bq(br)
641- let dX = valueOrElse(getInteger(this, dV), q(this, dW))
642- let dP = dF()._2
643- let dY = (dP - dX)
644- if ((0 > dY))
645- then m("wrong calculations")
640+ else n(("not readonly mode: unsupported lp asset " + bH))
641+ let dW = bt(bs, bH)
642+ let dX = br(bs)
643+ let dY = valueOrElse(getInteger(this, dW), r(this, dX))
644+ let dQ = dG()._2
645+ let dZ = (dQ - dY)
646+ if ((0 > dZ))
647+ then n("wrong calculations")
646648 else {
647- let dZ = dx(bG, bO)
648- let ea = dZ._1
649- let eb = dZ._2
650- let ec = dZ._3
651- let ed = fraction(dY, dT, d)
652- let ee = if ((ec == 0))
649+ let ea = dy(bH, bP)
650+ let eb = ea._1
651+ let ec = ea._2
652+ let ed = ea._3
653+ let ee = fraction(dZ, dU, d)
654+ let ef = if ((ed == 0))
653655 then 0
654- else fraction(ed, eb, ec)
655- let ef = ([IntegerEntry(dV, dP)] ++ ea)
656- let eg = makeString([toString(dX), toString(dY), toString(dT), toString(eb), toString(ec)], ":")
657- $Tuple3(ee, ef, eg)
656+ else fraction(ee, ec, ed)
657+ let eg = ([IntegerEntry(dW, dQ)] ++ eb)
658+ let eh = makeString([toString(dY), toString(dZ), toString(dU), toString(ec), toString(ed)], ":")
659+ $Tuple3(ef, eg, eh)
658660 }
659661 }
660662 else throw("Strict value is not equal to itself.")
661663 }
662664
663665
664-func eh (aO,ei) = {
665- let ej = [1, 3, 6, 12, 24, 48]
666- if (!(containsElement(ej, ei)))
667- then m("invalid duration")
668- else {
669- let bg = (ei * j)
670- let ek = toBase58String(aA)
671- if ((size(aO.payments) != 1))
672- then m("invalid payment - exact one payment must be attached")
673- else {
674- let cD = aO.payments[0]
675- let el = cD.amount
676- if ((aA != value(cD.assetId)))
677- then m((("invalid asset is in payment - " + ek) + " is expected"))
678- else {
679- let em = bj()
680- let aY = aO.caller
681- let bO = toString(aY)
682- let en = isDefined(getString(bk(bO)))
683- let eo = if (en)
684- then value(getString(bk(bO)))
685- else toString(t(this, em))
686- let br = parseIntValue(eo)
687- let ck = height
688- if (if ((aB > el))
689- then (aY != bT)
690- else false)
691- then m(("amount is less then minLockAmount=" + toString(aB)))
692- else if ((aC > bg))
693- then m(("passed duration is less then minLockDuration=" + toString(aC)))
694- else if ((bg > aD))
695- then m(("passed duration is greater then maxLockDuration=" + toString(aD)))
696- else {
697- let ep = fraction(bg, c, aD)
698- let eq = fraction(el, ep, c)
699- let er = ca()
700- let dW = bq(br)
701- let dP = dF()._2
702- let es = cE(aY)
703- let et = reentrantInvoke(bS, "refreshUserReward", [aY.bytes], nil)
704- if ((et == et))
705- then {
706- let eu = if (en)
707- then nil
708- else [IntegerEntry(em, (br + 1)), StringEntry(bk(bO), eo), StringEntry(bl(eo), bO)]
709- $Tuple2(((((eu ++ cA(aY, aO.transactionId, el, ck, bg, eq, 0)) ++ cn(el, bg, 1, if (en)
710- then 0
711- else 1)) :+ ch("lock", bO, el, ck, bg, eq, aO)) ++ [IntegerEntry(dW, dP), IntegerEntry(by(), (er + eq)), IntegerEntry(bc(aY), (es + eq))]), eq)
712- }
713- else throw("Strict value is not equal to itself.")
714- }
715- }
716- }
717- }
666+func ei (aP,ej) = if (!(containsElement(i, ej)))
667+ then n("invalid duration")
668+ else {
669+ let bh = (ej * k)
670+ let ek = toBase58String(aB)
671+ if ((size(aP.payments) != 1))
672+ then n("invalid payment - exact one payment must be attached")
673+ else {
674+ let cE = aP.payments[0]
675+ let el = cE.amount
676+ if ((aB != value(cE.assetId)))
677+ then n((("invalid asset is in payment - " + ek) + " is expected"))
678+ else {
679+ let em = bk()
680+ let aZ = aP.caller
681+ let bP = toString(aZ)
682+ let en = isDefined(getString(bl(bP)))
683+ let eo = if (en)
684+ then value(getString(bl(bP)))
685+ else toString(u(this, em))
686+ let bs = parseIntValue(eo)
687+ let cl = height
688+ if (if ((aC > el))
689+ then (aZ != bU)
690+ else false)
691+ then n(("amount is less then minLockAmount=" + toString(aC)))
692+ else if ((aD > bh))
693+ then n(("passed duration is less then minLockDuration=" + toString(aD)))
694+ else if ((bh > aE))
695+ then n(("passed duration is greater then maxLockDuration=" + toString(aE)))
696+ else {
697+ let ep = fraction(el, bh, aE)
698+ let eq = cb()
699+ let dX = br(bs)
700+ let dQ = dG()._2
701+ let er = cF(aZ)
702+ let es = reentrantInvoke(bT, "refreshUserReward", [aZ.bytes], nil)
703+ if ((es == es))
704+ then {
705+ let et = if (en)
706+ then nil
707+ else [IntegerEntry(em, (bs + 1)), StringEntry(bl(bP), eo), StringEntry(bm(eo), bP)]
708+ $Tuple2(((((et ++ cB(aZ, aP.transactionId, el, cl, bh, ep, 0)) ++ co(el, bh, 1, if (en)
709+ then 0
710+ else 1)) :+ ci("lock", bP, el, cl, bh, ep, aP)) ++ [IntegerEntry(dX, dQ), IntegerEntry(bz(), (eq + ep)), IntegerEntry(bd(aZ), (er + ep))]), ep)
711+ }
712+ else throw("Strict value is not equal to itself.")
713+ }
714+ }
715+ }
716+ }
717+
718+
719+func eu (aZ,ev) = {
720+ let ew = bc(aZ, ev)
721+ let ex = parseIntValue(ew[aS])
722+ let cl = parseIntValue(ew[aT])
723+ let ey = parseIntValue(ew[aU])
724+ let ez = (cl + ey)
725+ let bj = parseIntValue(ew[aX])
726+ let eA = ((height - cl) / aG)
727+ let eB = fraction(toBigInt(eA), (toBigInt((8 * aG)) * h), toBigInt(ey))
728+ let eC = if ((height > ez))
729+ then ex
730+ else (toInt(fraction(toBigInt(ex), (h - pow(toBigInt(5), 1, eB, f, f, DOWN)), h)) - bj)
731+ eC
718732 }
719733
720734
721-func ev (aY,ew) = {
722- let ex = bb(aY, ew)
723- let ey = parseIntValue(ex[aR])
724- let ck = parseIntValue(ex[aS])
725- let ez = parseIntValue(ex[aT])
726- let eA = (ck + ez)
727- let bi = parseIntValue(ex[aW])
728- let bh = parseIntValue(ex[aV])
729- let eB = ((height - ck) / aF)
730- let eC = fraction(toBigInt(eB), (toBigInt((8 * aF)) * h), toBigInt(ez))
731- let eD = if ((height > eA))
732- then ey
733- else (toInt(fraction(toBigInt(ey), (h - pow(toBigInt(5), 1, eC, f, f, DOWN)), h)) - bi)
734- eD
735- }
736-
737-
738-@Callable(aO)
739-func constructor (eE,eF,aB,eG,eH,aE) = {
740- let eI = aN(aO)
741- if ((eI == eI))
742- then ([IntegerEntry(bj(), 0), StringEntry(ax(), aH(eF, aB, eG, eH, aE)), StringEntry(E(), eE)] ++ cn(0, 0, 0, 0))
735+@Callable(aP)
736+func constructor (eD,eE,aC,eF,eG,aF) = {
737+ let eH = aO(aP)
738+ if ((eH == eH))
739+ then ([IntegerEntry(bk(), 0), StringEntry(ay(), aI(eE, aC, eF, eG, aF)), StringEntry(F(), eD)] ++ co(0, 0, 0, 0))
743740 else throw("Strict value is not equal to itself.")
744741 }
745742
746743
747744
748-@Callable(aO)
749-func lockRef (bg,eJ,eK) = {
750- let eL = eh(aO, bg)
751- let eM = eL._1
752- let eq = eL._2
753- let eN = toString(aO.caller)
754- let eO = if (if ((eJ == ""))
745+@Callable(aP)
746+func lockRef (bh,eI,eJ) = {
747+ let eK = ei(aP, bh)
748+ let eL = eK._1
749+ let ep = eK._2
750+ let eM = toString(aP.caller)
751+ let eN = if (if ((eI == ""))
755752 then true
756- else (eK == base58''))
753+ else (eJ == base58''))
757754 then unit
758- else invoke(A, "createPair", [D, eJ, eN, eK], nil)
759- if ((eO == eO))
755+ else invoke(B, "createPair", [E, eI, eM, eJ], nil)
756+ if ((eN == eN))
760757 then {
761- let eP = invoke(aE, "updateReferralActivity", [toString(aO.caller), eq], nil)
762- if ((eP == eP))
763- then $Tuple2(eM, unit)
758+ let eO = invoke(aF, "updateReferralActivity", [toString(aP.caller), ep], nil)
759+ if ((eO == eO))
760+ then $Tuple2(eL, unit)
764761 else throw("Strict value is not equal to itself.")
765762 }
766763 else throw("Strict value is not equal to itself.")
768765
769766
770767
771-@Callable(aO)
772-func lock (bg) = {
773- let eQ = eh(aO, bg)
774- let eM = eQ._1
775- let eq = eQ._2
776- let eP = invoke(aE, "updateReferralActivity", [toString(aO.caller), eq], nil)
777- if ((eP == eP))
778- then $Tuple2(eM, unit)
768+@Callable(aP)
769+func lock (bh) = {
770+ let eP = ei(aP, bh)
771+ let eL = eP._1
772+ let ep = eP._2
773+ let eO = invoke(aF, "updateReferralActivity", [toString(aP.caller), ep], nil)
774+ if ((eO == eO))
775+ then $Tuple2(eL, unit)
779776 else throw("Strict value is not equal to itself.")
780777 }
781778
782779
783780
784-@Callable(aO)
785-func claimWxBoost (bG,bO) = if ((bR != aO.caller))
786- then m("permissions denied")
781+@Callable(aP)
782+func claimWxBoost (bH,bP) = if ((bS != aP.caller))
783+ then n("permissions denied")
787784 else {
788- let eR = dQ(bG, bO, false)
789- let eS = eR._1
790- let ef = eR._2
791- let eg = eR._3
792- $Tuple2(ef, [eS])
785+ let eQ = dR(bH, bP, false)
786+ let eR = eQ._1
787+ let eg = eQ._2
788+ let eh = eQ._3
789+ $Tuple2(eg, [eR])
793790 }
794791
795792
796793
797-@Callable(aO)
798-func claimWxBoostREADONLY (bG,bO) = {
799- let eT = dQ(bG, bO, true)
800- let eS = eT._1
801- let ef = eT._2
802- let eg = eT._3
803- $Tuple2(nil, [eS, eg])
794+@Callable(aP)
795+func claimWxBoostREADONLY (bH,bP) = {
796+ let eS = dR(bH, bP, true)
797+ let eR = eS._1
798+ let eg = eS._2
799+ let eh = eS._3
800+ $Tuple2(nil, [eR, eh])
804801 }
805802
806803
807804
808-@Callable(aO)
809-func unlock (eU) = {
810- let aY = aO.caller
811- let bO = toString(aY)
812- let aZ = fromBase58String(eU)
813- let ex = bb(aY, if ((eU == ""))
805+@Callable(aP)
806+func unlock (eT) = {
807+ let aZ = aP.caller
808+ let bP = toString(aZ)
809+ let ba = fromBase58String(eT)
810+ let ew = bc(aZ, if ((eT == ""))
814811 then unit
815- else aZ)
816- let ey = parseIntValue(ex[aR])
817- let ck = parseIntValue(ex[aS])
818- let ez = parseIntValue(ex[aT])
819- let eA = (ck + ez)
820- let bi = parseIntValue(ex[aW])
821- let bh = parseIntValue(ex[aV])
822- let eB = ((height - ck) / aF)
823- let eD = ev(aY, if ((eU == ""))
812+ else ba)
813+ let ex = parseIntValue(ew[aS])
814+ let cl = parseIntValue(ew[aT])
815+ let ey = parseIntValue(ew[aU])
816+ let bj = parseIntValue(ew[aX])
817+ let bi = parseIntValue(ew[aW])
818+ let eA = ((height - cl) / aG)
819+ let eC = eu(aZ, if ((eT == ""))
824820 then unit
825- else aZ)
826- let ep = fraction(ez, c, aD)
827- let eq = fraction(ey, ep, c)
828- let eV = min([fraction((eB * aF), eq, aD), bh])
829- let eW = w((bh - eV), "gwxRemaining")
830- let eX = cb(aY)
831- if ((0 >= ey))
832- then m("nothing to unlock")
821+ else ba)
822+ let ep = fraction(ex, ey, aE)
823+ let eU = min([fraction((eA * aG), ep, aE), bi])
824+ let eV = x((bi - eU), "gwxRemaining")
825+ let eW = cc(aZ)
826+ if ((0 >= ex))
827+ then n("nothing to unlock")
833828 else {
834- let er = ca()
835- let es = cE(aY)
836- let eY = w((es - eV), "userGwxAmountTotalNew")
837- if ((eX > eY))
838- then m(("locked gwx amount: " + toString(eX)))
829+ let eq = cb()
830+ let er = cF(aZ)
831+ let eX = x((er - eU), "userGwxAmountTotalNew")
832+ if ((eW > eX))
833+ then n(("locked gwx amount: " + toString(eW)))
839834 else {
840- let et = reentrantInvoke(bS, "refreshUserReward", [aY.bytes], nil)
841- if ((et == et))
842- then ((((cA(aY, aZ, ey, ck, ez, eW, (bi + eD)) ++ cn(-(eD), 0, 0, 0)) :+ ch("unlock", bO, eD, ck, ez, eV, aO)) :+ ScriptTransfer(aY, eD, aA)) ++ [IntegerEntry(by(), w((er - eV), "gwxTotal")), IntegerEntry(bc(aY), eY)])
835+ let es = reentrantInvoke(bT, "refreshUserReward", [aZ.bytes], nil)
836+ if ((es == es))
837+ then ((((cB(aZ, ba, ex, cl, ey, eV, (bj + eC)) ++ co(-(eC), 0, 0, 0)) :+ ci("unlock", bP, eC, cl, ey, eU, aP)) :+ ScriptTransfer(aZ, eC, aB)) ++ [IntegerEntry(bz(), x((eq - eU), "gwxTotal")), IntegerEntry(bd(aZ), eX)])
843838 else throw("Strict value is not equal to itself.")
844839 }
845840 }
847842
848843
849844
850-@Callable(aO)
851-func gwxUserInfoREADONLY (bO) = {
852- let aY = valueOrErrorMessage(addressFromString(bO), k("invalid user address"))
853- let bh = cE(aY)
854- $Tuple2(nil, [bh])
845+@Callable(aP)
846+func gwxUserInfoREADONLY (bP) = {
847+ let aZ = valueOrErrorMessage(addressFromString(bP), l("invalid user address"))
848+ let bi = cF(aZ)
849+ $Tuple2(nil, [bi])
855850 }
856851
857852
858853
859-@Callable(aO)
860-func userMaxDurationREADONLY (bO) = $Tuple2(nil, $Tuple2("increaseLock", aD))
854+@Callable(aP)
855+func userMaxDurationREADONLY (bP) = $Tuple2(nil, $Tuple2("increaseLock", aE))
861856
862857
863858
864-@Callable(aO)
865-func getUserGwxAmountAtHeightREADONLY (bO,eZ) = {
866- let aY = valueOrErrorMessage(addressFromString(bO), k("invalid user address"))
867- let bh = cE(aY)
868- $Tuple2(nil, bh)
859+@Callable(aP)
860+func getUserGwxAmountAtHeightREADONLY (bP,eY) = {
861+ let aZ = valueOrErrorMessage(addressFromString(bP), l("invalid user address"))
862+ let bi = cF(aZ)
863+ $Tuple2(nil, bi)
869864 }
870865
871866
872867
873-@Callable(aO)
874-func getUserGwxAmount (bO) = {
875- let aY = valueOrErrorMessage(addressFromString(bO), k("invalid user address"))
876- let bh = cE(aY)
877- $Tuple2(nil, bh)
868+@Callable(aP)
869+func getUserGwxAmount (bP) = {
870+ let aZ = valueOrErrorMessage(addressFromString(bP), l("invalid user address"))
871+ let bi = cF(aZ)
872+ $Tuple2(nil, bi)
878873 }
879874
880875
881876
882-@Callable(aO)
883-func getGwxTotalREADONLY () = $Tuple2(nil, ca())
877+@Callable(aP)
878+func getGwxTotalREADONLY () = $Tuple2(nil, cb())
884879
885880
886881
887-@Callable(aO)
882+@Callable(aP)
888883 func onBoostEmissionUpdate () = {
889- let eI = if ((aO.caller == bQ))
884+ let eH = if ((aP.caller == bR))
890885 then true
891- else aN(aO)
892- if ((eI == eI))
893- then dF()
886+ else aO(aP)
887+ if ((eH == eH))
888+ then dG()
894889 else throw("Strict value is not equal to itself.")
895890 }
896891
897892
898893
899-@Callable(aO)
900-func onStakedVoteUpdate (bG,bO,dr) = {
901- let eI = if ((aO.caller == bR))
894+@Callable(aP)
895+func onStakedVoteUpdate (bH,bP,ds) = {
896+ let eH = if ((aP.caller == bS))
902897 then true
903- else aN(aO)
904- if ((eI == eI))
898+ else aO(aP)
899+ if ((eH == eH))
905900 then {
906- let du = dq(bG, bO, dr)
907- $Tuple2(du, unit)
901+ let dv = dr(bH, bP, ds)
902+ $Tuple2(dv, unit)
908903 }
909904 else throw("Strict value is not equal to itself.")
910905 }
911906
912907
913908
914-@Callable(aO)
915-func getVotingResultStakedREADONLY (bG) = $Tuple2(nil, cV(bG))
909+@Callable(aP)
910+func getVotingResultStakedREADONLY (bH) = $Tuple2(nil, cW(bH))
916911
917912
918913
919-@Callable(aO)
920-func getVotingResultStakedIntegralREADONLY (bG) = $Tuple2(nil, cZ(bG))
914+@Callable(aP)
915+func getVotingResultStakedIntegralREADONLY (bH) = $Tuple2(nil, da(bH))
921916
922917
923918
924-@Callable(aO)
925-func getUserVoteFinalizedREADONLY (bG,bO) = $Tuple2(nil, cO(bG, bO))
919+@Callable(aP)
920+func getUserVoteFinalizedREADONLY (bH,bP) = $Tuple2(nil, cP(bH, bP))
926921
927922
928923
929-@Callable(aO)
930-func getUserVoteStakedIntegralREADONLY (bG,bO) = $Tuple2(nil, dj(bG, bO))
924+@Callable(aP)
925+func getUserVoteStakedIntegralREADONLY (bH,bP) = $Tuple2(nil, dk(bH, bP))
931926
932927
933-@Verifier(fa)
934-func fb () = {
935- let fc = {
936- let aJ = aL()
937- if ($isInstanceOf(aJ, "ByteVector"))
928+@Verifier(eZ)
929+func fa () = {
930+ let fb = {
931+ let aK = aM()
932+ if ($isInstanceOf(aK, "ByteVector"))
938933 then {
939- let aQ = aJ
940- aQ
934+ let aR = aK
935+ aR
941936 }
942- else if ($isInstanceOf(aJ, "Unit"))
943- then fa.senderPublicKey
937+ else if ($isInstanceOf(aK, "Unit"))
938+ then eZ.senderPublicKey
944939 else throw("Match error")
945940 }
946- sigVerify(fa.bodyBytes, fa.proofs[0], fc)
941+ sigVerify(eZ.bodyBytes, eZ.proofs[0], fb)
947942 }
948943
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 8
77
88 let c = 100000000
99
1010 let d = c
1111
1212 let e = "boosting.ride"
1313
1414 let f = 18
1515
1616 let g = 1000000000000000000
1717
1818 let h = toBigInt(g)
1919
20-let i = 1440
20+let i = [1, 3, 6, 12, 24, 48]
2121
22-let j = 43800
22+let j = 1440
2323
24-func k (l) = makeString([e, ": ", l], "")
24+let k = 43800
25+
26+func l (m) = makeString([e, ": ", m], "")
2527
2628
27-func m (l) = throw(k(l))
29+func n (m) = throw(l(m))
2830
2931
30-func n (o,p) = valueOrErrorMessage(getString(o, p), k((("mandatory this." + p) + " is not defined")))
32+func o (p,q) = valueOrErrorMessage(getString(p, q), l((("mandatory this." + q) + " is not defined")))
3133
3234
33-func q (o,p) = valueOrElse(getInteger(o, p), 0)
35+func r (p,q) = valueOrElse(getInteger(p, q), 0)
3436
3537
36-func r (o,p,s) = valueOrElse(getInteger(o, p), s)
38+func s (p,q,t) = valueOrElse(getInteger(p, q), t)
3739
3840
39-func t (o,p) = valueOrErrorMessage(getInteger(o, p), k((("mandatory this." + p) + " is not defined")))
41+func u (p,q) = valueOrErrorMessage(getInteger(p, q), l((("mandatory this." + q) + " is not defined")))
4042
4143
42-func u (v) = if ((0 > v))
43- then -(v)
44- else v
44+func v (w) = if ((0 > w))
45+ then -(w)
46+ else w
4547
4648
47-func w (x,y) = if ((x >= 0))
48- then x
49- else m((valueOrElse(y, "value") + " should be positive"))
49+func x (y,z) = if ((y >= 0))
50+ then y
51+ else n((valueOrElse(z, "value") + " should be positive"))
5052
5153
52-func z () = makeString(["%s%s", "config", "referralsContractAddress"], a)
54+func A () = makeString(["%s%s", "config", "referralsContractAddress"], a)
5355
5456
55-let A = addressFromStringValue(n(this, z()))
57+let B = addressFromStringValue(o(this, A()))
5658
57-let B = makeString(["%s%s", "referral", "programName"], a)
59+let C = makeString(["%s%s", "referral", "programName"], a)
5860
59-let C = "wxlock"
61+let D = "wxlock"
6062
61-let D = valueOrElse(getString(this, B), C)
63+let E = valueOrElse(getString(this, C), D)
6264
63-func E () = "%s%s__config__factoryAddress"
65+func F () = "%s%s__config__factoryAddress"
6466
6567
66-let F = 1
68+let G = 1
6769
68-let G = 2
70+let H = 2
6971
70-let H = 3
72+let I = 3
7173
72-let I = 4
74+let J = 4
7375
74-let J = 5
76+let K = 5
7577
76-let K = 6
78+let L = 6
7779
78-let L = 7
80+let M = 7
7981
80-let M = 8
82+let N = 8
8183
82-let N = 9
84+let O = 9
8385
84-let O = 10
86+let P = 10
8587
86-let P = 11
88+let Q = 11
8789
88-func Q () = "%s__factoryConfig"
90+func R () = "%s__factoryConfig"
8991
9092
91-func R (S) = makeString(["%s%s%s", S, "mappings__lpAsset2PoolContract"], a)
93+func S (T) = makeString(["%s%s%s", T, "mappings__lpAsset2PoolContract"], a)
9294
9395
94-func T (U) = makeString(["%s%s", "poolWeight", U], a)
96+func U (V) = makeString(["%s%s", "poolWeight", V], a)
9597
9698
97-func V (W,X) = ((("%s%s__poolWeight__" + W) + "__") + toString(X))
99+func W (X,Y) = ((("%s%s__poolWeight__" + X) + "__") + toString(Y))
98100
99101
100-func Y () = addressFromStringValue(n(this, E()))
102+func Z () = addressFromStringValue(o(this, F()))
101103
102104
103-func Z (aa) = split(n(aa, Q()), a)
105+func aa (ab) = split(o(ab, R()), a)
104106
105107
106-func ab (ac) = addressFromStringValue(ac[G])
108+func ac (ad) = addressFromStringValue(ad[H])
107109
108110
109-func ad (ac) = addressFromStringValue(ac[J])
111+func ae (ad) = addressFromStringValue(ad[K])
110112
111113
112-func ae (ac) = addressFromStringValue(ac[F])
114+func af (ad) = addressFromStringValue(ad[G])
113115
114116
115-func af (ac) = addressFromStringValue(ac[O])
117+func ag (ad) = addressFromStringValue(ad[P])
116118
117119
118-func ag () = "%s__managerPublicKey"
120+func ah () = "%s__managerPublicKey"
119121
120122
121-func ah () = "%s__managerVaultAddress"
123+func ai () = "%s__managerVaultAddress"
122124
123125
124-func ai () = "%s%s__ratePerBlock__current"
126+func aj () = "%s%s__ratePerBlock__current"
125127
126128
127-func aj () = "%s%s__ratePerBlockMax__current"
129+func ak () = "%s%s__ratePerBlockMax__current"
128130
129131
130-func ak () = "%s%s__emission__startBlock"
132+func al () = "%s%s__emission__startBlock"
131133
132134
133-func al () = "%s%s__boostingV2__startBlock"
135+func am () = "%s%s__boostingV2__startBlock"
134136
135137
136-func am () = "%s%s__boostingV2__integral"
138+func an () = "%s%s__boostingV2__integral"
137139
138140
139-func an () = "%s%s__emission__duration"
141+func ao () = "%s%s__emission__duration"
140142
141143
142-func ao () = "%s%s__emission__endBlock"
144+func ap () = "%s%s__emission__endBlock"
143145
144146
145-func ap () = "%s__nextPeriod"
147+func aq () = "%s__nextPeriod"
146148
147149
148-func aq () = "%s%s__gwxRewardEmissionPart__startHeight"
150+func ar () = "%s%s__gwxRewardEmissionPart__startHeight"
149151
150152
151-let ar = 1
153+let as = 1
152154
153-let as = 2
155+let at = 2
154156
155-let at = 3
157+let au = 3
156158
157-let au = 4
159+let av = 4
158160
159-let av = 5
161+let aw = 5
160162
161-let aw = 6
163+let ax = 6
162164
163-func ax () = "%s__config"
165+func ay () = "%s__config"
164166
165167
166-func ay () = split(n(this, ax()), a)
168+func az () = split(o(this, ay()), a)
167169
168170
169-let az = ay()
171+let aA = az()
170172
171-let aA = fromBase58String(az[ar])
173+let aB = fromBase58String(aA[as])
172174
173-let aB = valueOrErrorMessage(parseInt(az[as]), k("invalid min lock amount"))
175+let aC = valueOrErrorMessage(parseInt(aA[at]), l("invalid min lock amount"))
174176
175-let aC = valueOrErrorMessage(parseInt(az[at]), k("invalid min lock duration"))
177+let aD = valueOrErrorMessage(parseInt(aA[au]), l("invalid min lock duration"))
176178
177-let aD = valueOrErrorMessage(parseInt(az[au]), k("invalid max lock duration"))
179+let aE = valueOrErrorMessage(parseInt(aA[av]), l("invalid max lock duration"))
178180
179-let aE = valueOrErrorMessage(addressFromString(az[av]), k("invalid math contract address"))
181+let aF = valueOrErrorMessage(addressFromString(aA[aw]), l("invalid math contract address"))
180182
181-let aF = valueOrErrorMessage(parseInt(az[aw]), k("invalid blocks in period"))
183+let aG = valueOrErrorMessage(parseInt(aA[ax]), l("invalid blocks in period"))
182184
183-func aG (aA,aB,aC,aD,aE) = makeString(["%s%d%d%d%s", aA, aB, aC, aD, aE], a)
185+func aH (aB,aC,aD,aE,aF) = makeString(["%s%d%d%d%s", aB, aC, aD, aE, aF], a)
184186
185187
186-func aH (aA,aB,aC,aD,aE) = aG(aA, toString(aB), toString(aC), toString(aD), aE)
188+func aI (aB,aC,aD,aE,aF) = aH(aB, toString(aC), toString(aD), toString(aE), aF)
187189
188190
189-func aI () = {
190- let aJ = getString(ah())
191- if ($isInstanceOf(aJ, "String"))
191+func aJ () = {
192+ let aK = getString(ai())
193+ if ($isInstanceOf(aK, "String"))
192194 then {
193- let aK = aJ
194- addressFromStringValue(aK)
195+ let aL = aK
196+ addressFromStringValue(aL)
195197 }
196198 else this
197199 }
198200
199201
200-func aL () = {
201- let aM = aI()
202- let aJ = getString(aM, ag())
203- if ($isInstanceOf(aJ, "String"))
202+func aM () = {
203+ let aN = aJ()
204+ let aK = getString(aN, ah())
205+ if ($isInstanceOf(aK, "String"))
204206 then {
205- let aK = aJ
206- fromBase58String(aK)
207+ let aL = aK
208+ fromBase58String(aL)
207209 }
208- else if ($isInstanceOf(aJ, "Unit"))
210+ else if ($isInstanceOf(aK, "Unit"))
209211 then unit
210212 else throw("Match error")
211213 }
212214
213215
214-func aN (aO) = {
215- let aP = m("Permission denied")
216- let aJ = aL()
217- if ($isInstanceOf(aJ, "ByteVector"))
216+func aO (aP) = {
217+ let aQ = n("Permission denied")
218+ let aK = aM()
219+ if ($isInstanceOf(aK, "ByteVector"))
218220 then {
219- let aQ = aJ
220- if ((aO.callerPublicKey == aQ))
221+ let aR = aK
222+ if ((aP.callerPublicKey == aR))
221223 then true
222- else aP
224+ else aQ
223225 }
224- else if ($isInstanceOf(aJ, "Unit"))
225- then if ((aO.caller == this))
226+ else if ($isInstanceOf(aK, "Unit"))
227+ then if ((aP.caller == this))
226228 then true
227- else aP
229+ else aQ
228230 else throw("Match error")
229231 }
230232
231233
232-let aR = 1
234+let aS = 1
233235
234-let aS = 2
236+let aT = 2
235237
236-let aT = 3
238+let aU = 3
237239
238-let aU = 4
240+let aV = 4
239241
240-let aV = 5
242+let aW = 5
241243
242-let aW = 6
244+let aX = 6
243245
244-func aX (aY,aZ) = makeString(["%s%s%s__lock", toString(aY), {
245- let aJ = aZ
246- if ($isInstanceOf(aJ, "ByteVector"))
246+func aY (aZ,ba) = makeString(["%s%s%s__lock", toString(aZ), {
247+ let aK = ba
248+ if ($isInstanceOf(aK, "ByteVector"))
247249 then {
248- let ba = aJ
249- toBase58String(ba)
250+ let bb = aK
251+ toBase58String(bb)
250252 }
251- else if ($isInstanceOf(aJ, "Unit"))
253+ else if ($isInstanceOf(aK, "Unit"))
252254 then "legacy"
253255 else throw("Match error")
254256 }], a)
255257
256258
257-func bb (aY,aZ) = split(n(this, aX(aY, aZ)), a)
259+func bc (aZ,ba) = split(o(this, aY(aZ, ba)), a)
258260
259261
260-func bc (aY) = makeString(["%s%s__gwxAmountTotal", toString(aY)], a)
262+func bd (aZ) = makeString(["%s%s__gwxAmountTotal", toString(aZ)], a)
261263
262264
263-func bd (be,bf,bg,bh,bi) = makeString(["%d%d%d%d%d%d%d", toString(be), toString(bf), toString(bg), toString(lastBlock.timestamp), toString(bh), toString(bi)], a)
265+func be (bf,bg,bh,bi,bj) = makeString(["%d%d%d%d%d%d%d", toString(bf), toString(bg), toString(bh), toString(lastBlock.timestamp), toString(bi), toString(bj)], a)
264266
265267
266-func bj () = "%s__nextUserNum"
268+func bk () = "%s__nextUserNum"
267269
268270
269-func bk (aY) = makeString(["%s%s%s__mapping__user2num", aY], a)
271+func bl (aZ) = makeString(["%s%s%s__mapping__user2num", aZ], a)
270272
271273
272-func bl (X) = makeString(["%s%s%s__mapping__num2user", X], a)
274+func bm (Y) = makeString(["%s%s%s__mapping__num2user", Y], a)
273275
274276
275-func bm () = "%s%s__stats__activeTotalLocked"
277+func bn () = "%s%s__stats__activeTotalLocked"
276278
277279
278-func bn () = "%s%s__stats__locksDurationSumInBlocks"
280+func bo () = "%s%s__stats__locksDurationSumInBlocks"
279281
280282
281-func bo () = "%s%s__stats__locksCount"
283+func bp () = "%s%s__stats__locksCount"
282284
283285
284-func bp () = "%s%s__stats__activeUsersCount"
286+func bq () = "%s%s__stats__activeUsersCount"
285287
286288
287-func bq (br) = makeString(["%s%d__userBoostEmissionLastIntV2", toString(br)], a)
289+func br (bs) = makeString(["%s%d__userBoostEmissionLastIntV2", toString(bs)], a)
288290
289291
290-func bs (br,bt) = makeString(["%s%d__userBoostEmissionLastIntV2", toString(br), bt], a)
292+func bt (bs,bu) = makeString(["%s%d__userBoostEmissionLastIntV2", toString(bs), bu], a)
291293
292294
293-func bu (br) = makeString(["%s%d__maxBoostInt", toString(br)], a)
295+func bv (bs) = makeString(["%s%d__maxBoostInt", toString(bs)], a)
294296
295297
296-func bv () = "%s%s__maxBoostInt__total"
298+func bw () = "%s%s__maxBoostInt__total"
297299
298300
299-func bw (br) = makeString(["%s%d__userBoostAvaliableToClaimTotal", toString(br)], a)
301+func bx (bs) = makeString(["%s%d__userBoostAvaliableToClaimTotal", toString(bs)], a)
300302
301303
302-func bx (br) = makeString(["%s%d__userBoostClaimed", toString(br)], a)
304+func by (bs) = makeString(["%s%d__userBoostClaimed", toString(bs)], a)
303305
304306
305-func by () = "%s%s__gwx__total"
307+func bz () = "%s%s__gwx__total"
306308
307309
308-func bz (bA,bB,o,bC) = makeString(["%s%s%s%s%d", "vote", bA, bB, toString(o), toString(bC)], a)
310+func bA (bB,bC,p,bD) = makeString(["%s%s%s%s%d", "vote", bB, bC, toString(p), toString(bD)], a)
309311
310312
311-func bD (bC) = makeString(["%s%d", "startHeight", toString(bC)], a)
313+func bE (bD) = makeString(["%s%d", "startHeight", toString(bD)], a)
312314
313315
314-func bE () = makeString(["%s", "currentEpochUi"], a)
316+func bF () = makeString(["%s", "currentEpochUi"], a)
315317
316318
317-func bF (bG,bC) = makeString(["%s%s%d", "votingResultStaked", bG, toString(bC)], a)
319+func bG (bH,bD) = makeString(["%s%s%d", "votingResultStaked", bH, toString(bD)], a)
318320
319321
320-func bH (bG,bC) = makeString(["%s%s%d", "votingResultStakedIntegral", bG, toString(bC)], a)
322+func bI (bH,bD) = makeString(["%s%s%d", "votingResultStakedIntegral", bH, toString(bD)], a)
321323
322324
323-func bI (bG,bC) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bG, toString(bC)], a)
325+func bJ (bH,bD) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bH, toString(bD)], a)
324326
325327
326-func bJ (bG,o,bC) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bG, toString(o), toString(bC)], a)
328+func bK (bH,p,bD) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bH, toString(p), toString(bD)], a)
327329
328330
329-func bK (bG,o,bC) = makeString(["%s%s%s%d", "voteStakedIntegral", bG, toString(o), toString(bC)], a)
331+func bL (bH,p,bD) = makeString(["%s%s%s%d", "voteStakedIntegral", bH, toString(p), toString(bD)], a)
330332
331333
332-func bL (bG,o,bC) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bG, toString(o), toString(bC)], a)
334+func bM (bH,p,bD) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bH, toString(p), toString(bD)], a)
333335
334336
335-func bM (bG,o,bC) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bG, toString(o), toString(bC)], a)
337+func bN (bH,p,bD) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bH, toString(p), toString(bD)], a)
336338
337339
338-func bN (bO,bG) = makeString(["%s%s%s", "staked", bO, bG], a)
340+func bO (bP,bH) = makeString(["%s%s%s", "staked", bP, bH], a)
339341
340342
341-let bP = Y()
343+let bQ = Z()
342344
343-let ac = Z(bP)
345+let ad = aa(bQ)
344346
345-let bQ = ad(ac)
347+let bR = ae(ad)
346348
347-let bR = ae(ac)
349+let bS = af(ad)
348350
349-let bS = af(ac)
351+let bT = ag(ad)
350352
351-let bT = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), k("lp_staking_pools contract address is undefined"))), k("invalid lp_staking_pools contract address"))
353+let bU = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), l("lp_staking_pools contract address is undefined"))), l("invalid lp_staking_pools contract address"))
352354
353-let bU = makeString(["%s", "votingEmissionContract"], a)
355+let bV = makeString(["%s", "votingEmissionContract"], a)
354356
355-let bV = addressFromStringValue(getStringValue(bP, bU))
357+let bW = addressFromStringValue(getStringValue(bQ, bV))
356358
357-let bW = makeString(["%s", "votingEmissionRateContract"], a)
359+let bX = makeString(["%s", "votingEmissionRateContract"], a)
358360
359-let bX = {
360- let bY = invoke(bQ, "getBoostCoeffREADONLY", nil, nil)
361- if ($isInstanceOf(bY, "Int"))
362- then bY
363- else throw(($getType(bY) + " couldn't be cast to Int"))
361+let bY = {
362+ let bZ = invoke(bR, "getBoostCoeffREADONLY", nil, nil)
363+ if ($isInstanceOf(bZ, "Int"))
364+ then bZ
365+ else throw(($getType(bZ) + " couldn't be cast to Int"))
364366 }
365367
366-func bZ (aY) = {
367- let aJ = getString(this, bk(toString(aY)))
368- if ($isInstanceOf(aJ, "String"))
368+func ca (aZ) = {
369+ let aK = getString(this, bl(toString(aZ)))
370+ if ($isInstanceOf(aK, "String"))
369371 then {
370- let aK = aJ
371- valueOrErrorMessage(parseInt(aK), k("invalid user number"))
372+ let aL = aK
373+ valueOrErrorMessage(parseInt(aL), l("invalid user number"))
372374 }
373- else if ($isInstanceOf(aJ, "Unit"))
374- then m("invalid user")
375+ else if ($isInstanceOf(aK, "Unit"))
376+ then n("invalid user")
375377 else throw("Match error")
376378 }
377379
378380
379-func ca () = valueOrElse(getInteger(this, by()), 0)
381+func cb () = valueOrElse(getInteger(this, bz()), 0)
380382
381383
382-func cb (aY) = {
383- let cc = "getLockedGwxAmount"
384- let cd = valueOrErrorMessage({
385- let aJ = getString(bV, bW)
386- if ($isInstanceOf(aJ, "Unit"))
384+func cc (aZ) = {
385+ let cd = "getLockedGwxAmount"
386+ let ce = valueOrErrorMessage({
387+ let aK = getString(bW, bX)
388+ if ($isInstanceOf(aK, "Unit"))
387389 then unit
388- else if ($isInstanceOf(aJ, "String"))
390+ else if ($isInstanceOf(aK, "String"))
389391 then {
390- let aK = aJ
391- addressFromString(aK)
392+ let aL = aK
393+ addressFromString(aL)
392394 }
393395 else throw("Match error")
394- }, k("invalid voting emission rate address"))
395- let ce = {
396- let bY = invoke(bV, cc, [toString(aY)], nil)
397- if ($isInstanceOf(bY, "Int"))
398- then bY
399- else throw(($getType(bY) + " couldn't be cast to Int"))
396+ }, l("invalid voting emission rate address"))
397+ let cf = {
398+ let bZ = invoke(bW, cd, [toString(aZ)], nil)
399+ if ($isInstanceOf(bZ, "Int"))
400+ then bZ
401+ else throw(($getType(bZ) + " couldn't be cast to Int"))
400402 }
401- let cf = {
402- let bY = invoke(cd, cc, [toString(aY)], nil)
403- if ($isInstanceOf(bY, "Int"))
404- then bY
405- else throw(($getType(bY) + " couldn't be cast to Int"))
403+ let cg = {
404+ let bZ = invoke(ce, cd, [toString(aZ)], nil)
405+ if ($isInstanceOf(bZ, "Int"))
406+ then bZ
407+ else throw(($getType(bZ) + " couldn't be cast to Int"))
406408 }
407- let cg = max([ce, cf])
408- cg
409+ let ch = max([cf, cg])
410+ ch
409411 }
410412
411413
412-func ch (ci,cj,be,ck,bg,bh,aO) = {
413- let cl = makeString(["%s%s%s%s__history", ci, cj, toBase58String(aO.transactionId)], a)
414- let cm = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(be), toString(ck), toString(bg), toString(bh)], a)
415- StringEntry(cl, cm)
414+func ci (cj,ck,bf,cl,bh,bi,aP) = {
415+ let cm = makeString(["%s%s%s%s__history", cj, ck, toBase58String(aP.transactionId)], a)
416+ let cn = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(bf), toString(cl), toString(bh), toString(bi)], a)
417+ StringEntry(cm, cn)
416418 }
417419
418420
419-func cn (co,cp,cq,cr) = {
420- let cs = bn()
421+func co (cp,cq,cr,cs) = {
421422 let ct = bo()
422423 let cu = bp()
423- let cv = bm()
424- let cw = q(this, cs)
425- let cx = q(this, ct)
426- let cy = q(this, cu)
427- let cz = q(this, cv)
428-[IntegerEntry(cs, (cw + cp)), IntegerEntry(ct, (cx + cq)), IntegerEntry(cu, (cy + cr)), IntegerEntry(cv, (cz + co))]
424+ let cv = bq()
425+ let cw = bn()
426+ let cx = r(this, ct)
427+ let cy = r(this, cu)
428+ let cz = r(this, cv)
429+ let cA = r(this, cw)
430+[IntegerEntry(ct, (cx + cq)), IntegerEntry(cu, (cy + cr)), IntegerEntry(cv, (cz + cs)), IntegerEntry(cw, (cA + cp))]
429431 }
430432
431433
432-func cA (aY,aZ,be,bf,bg,bh,bi) = [StringEntry(aX(aY, aZ), bd(be, bf, bg, bh, bi))]
434+func cB (aZ,ba,bf,bg,bh,bi,bj) = [StringEntry(aY(aZ, ba), be(bf, bg, bh, bi, bj))]
433435
434436
435-func cB (aO,cC) = if ((size(aO.payments) > 1))
436- then m("only one payment is allowed")
437- else if ((size(aO.payments) == 0))
437+func cC (aP,cD) = if ((size(aP.payments) > 1))
438+ then n("only one payment is allowed")
439+ else if ((size(aP.payments) == 0))
438440 then 0
439441 else {
440- let cD = aO.payments[0]
441- if ((value(cD.assetId) != cC))
442- then m("invalid asset id in payment")
443- else cD.amount
442+ let cE = aP.payments[0]
443+ if ((value(cE.assetId) != cD))
444+ then n("invalid asset id in payment")
445+ else cE.amount
444446 }
445447
446448
447-func cE (aY) = valueOrElse(getInteger(this, bc(aY)), 0)
449+func cF (aZ) = valueOrElse(getInteger(this, bd(aZ)), 0)
448450
449451
450-func cF () = {
451- let cG = {
452- let cH = value(getInteger(bV, bE()))
453- let cI = (cH - 1)
454- if ((0 > cI))
455- then m("invalid epoch")
456- else $Tuple2(cH, cI)
452+func cG () = {
453+ let cH = {
454+ let cI = value(getInteger(bW, bF()))
455+ let cJ = (cI - 1)
456+ if ((0 > cJ))
457+ then n("invalid epoch")
458+ else $Tuple2(cI, cJ)
457459 }
458- let cH = cG._1
459- let cI = cG._2
460- let cJ = value(getInteger(bV, bD(cH)))
461- $Tuple2(cI, cJ)
460+ let cI = cH._1
461+ let cJ = cH._2
462+ let cK = value(getInteger(bW, bE(cI)))
463+ $Tuple2(cJ, cK)
462464 }
463465
464466
465-func cK (bG) = {
466- let cL = 4
467- let cM = 5
468- let cN = {
469- let bY = invoke(bP, "getPoolConfigByLpAssetIdREADONLY", [bG], nil)
470- if ($isInstanceOf(bY, "List[Any]"))
471- then bY
472- else throw(($getType(bY) + " couldn't be cast to List[Any]"))
473- }
474- let bA = {
475- let bY = cN[cL]
476- if ($isInstanceOf(bY, "String"))
477- then bY
478- else throw(($getType(bY) + " couldn't be cast to String"))
467+func cL (bH) = {
468+ let cM = 4
469+ let cN = 5
470+ let cO = {
471+ let bZ = invoke(bQ, "getPoolConfigByLpAssetIdREADONLY", [bH], nil)
472+ if ($isInstanceOf(bZ, "List[Any]"))
473+ then bZ
474+ else throw(($getType(bZ) + " couldn't be cast to List[Any]"))
479475 }
480476 let bB = {
481- let bY = cN[cM]
482- if ($isInstanceOf(bY, "String"))
483- then bY
484- else throw(($getType(bY) + " couldn't be cast to String"))
477+ let bZ = cO[cM]
478+ if ($isInstanceOf(bZ, "String"))
479+ then bZ
480+ else throw(($getType(bZ) + " couldn't be cast to String"))
485481 }
486- $Tuple2(bA, bB)
482+ let bC = {
483+ let bZ = cO[cN]
484+ if ($isInstanceOf(bZ, "String"))
485+ then bZ
486+ else throw(($getType(bZ) + " couldn't be cast to String"))
487+ }
488+ $Tuple2(bB, bC)
487489 }
488490
489491
490-func cO (bG,bO) = {
491- let aY = addressFromStringValue(bO)
492- let cP = cF()
493- let cI = cP._1
494- let cJ = cP._2
495- let cQ = cK(bG)
496- let bA = cQ._1
497- let bB = cQ._2
498- let cR = bz(bA, bB, aY, cI)
499- let cS = valueOrElse(getInteger(bV, cR), 0)
500- cS
492+func cP (bH,bP) = {
493+ let aZ = addressFromStringValue(bP)
494+ let cQ = cG()
495+ let cJ = cQ._1
496+ let cK = cQ._2
497+ let cR = cL(bH)
498+ let bB = cR._1
499+ let bC = cR._2
500+ let cS = bA(bB, bC, aZ, cJ)
501+ let cT = valueOrElse(getInteger(bW, cS), 0)
502+ cT
501503 }
502504
503505
504-func cT (bG,bO) = {
505- let cU = valueOrElse(getInteger(bR, bN(bO, bG)), 0)
506- let cS = cO(bG, bO)
507- if ((cU == 0))
506+func cU (bH,bP) = {
507+ let cV = valueOrElse(getInteger(bS, bO(bP, bH)), 0)
508+ let cT = cP(bH, bP)
509+ if ((cV == 0))
508510 then 0
509- else cS
511+ else cT
510512 }
511513
512514
513-func cV (bG) = {
514- let cW = cF()
515- let cI = cW._1
516- let cJ = cW._2
517- let cX = valueOrElse(getInteger(bV, bF(bG, cI)), 0)
518- let cY = valueOrElse(getInteger(this, bF(bG, cI)), cX)
519- cY
515+func cW (bH) = {
516+ let cX = cG()
517+ let cJ = cX._1
518+ let cK = cX._2
519+ let cY = valueOrElse(getInteger(bW, bG(bH, cJ)), 0)
520+ let cZ = valueOrElse(getInteger(this, bG(bH, cJ)), cY)
521+ cZ
520522 }
521523
522524
523-func cZ (bG) = {
524- let da = cF()
525- let cI = da._1
526- let cJ = da._2
527- let cY = cV(bG)
528- let db = valueOrElse(getInteger(this, bH(bG, cI)), 0)
529- let dc = valueOrElse(getInteger(this, bI(bG, cI)), cJ)
530- let dd = (height - dc)
531- let de = ((dd * cY) + db)
532- de
525+func da (bH) = {
526+ let db = cG()
527+ let cJ = db._1
528+ let cK = db._2
529+ let cZ = cW(bH)
530+ let dc = valueOrElse(getInteger(this, bI(bH, cJ)), 0)
531+ let dd = valueOrElse(getInteger(this, bJ(bH, cJ)), cK)
532+ let de = (height - dd)
533+ let df = ((de * cZ) + dc)
534+ df
533535 }
534536
535537
536-func df (bG,dg) = {
537- let dh = cF()
538- let cI = dh._1
539- let cJ = dh._2
540- let cY = cV(bG)
541- let di = (cY + dg)
542- let de = cZ(bG)
543-[IntegerEntry(bF(bG, cI), di), IntegerEntry(bI(bG, cI), height), IntegerEntry(bH(bG, cI), de)]
538+func dg (bH,dh) = {
539+ let di = cG()
540+ let cJ = di._1
541+ let cK = di._2
542+ let cZ = cW(bH)
543+ let dj = (cZ + dh)
544+ let df = da(bH)
545+[IntegerEntry(bG(bH, cJ), dj), IntegerEntry(bJ(bH, cJ), height), IntegerEntry(bI(bH, cJ), df)]
544546 }
545547
546548
547-func dj (bG,bO) = {
548- let dk = cF()
549- let cI = dk._1
550- let cJ = dk._2
551- let aY = addressFromStringValue(bO)
552- let dl = cT(bG, bO)
553- let dm = valueOrElse(getInteger(this, bK(bG, aY, cI)), 0)
554- let dn = valueOrElse(getInteger(this, bL(bG, aY, cI)), cJ)
555- let do = (height - dn)
556- let dp = ((do * dl) + dm)
557- dp
549+func dk (bH,bP) = {
550+ let dl = cG()
551+ let cJ = dl._1
552+ let cK = dl._2
553+ let aZ = addressFromStringValue(bP)
554+ let dm = cU(bH, bP)
555+ let dn = valueOrElse(getInteger(this, bL(bH, aZ, cJ)), 0)
556+ let do = valueOrElse(getInteger(this, bM(bH, aZ, cJ)), cK)
557+ let dp = (height - do)
558+ let dq = ((dp * dm) + dn)
559+ dq
558560 }
559561
560562
561-func dq (bG,bO,dr) = {
562- let ds = cF()
563- let cI = ds._1
564- let cJ = ds._2
565- let aY = addressFromStringValue(bO)
566- let dt = cO(bG, bO)
567- let du = if ((dt == 0))
563+func dr (bH,bP,ds) = {
564+ let dt = cG()
565+ let cJ = dt._1
566+ let cK = dt._2
567+ let aZ = addressFromStringValue(bP)
568+ let du = cP(bH, bP)
569+ let dv = if ((du == 0))
568570 then nil
569571 else {
570- let dg = if (dr)
571- then dt
572- else -(dt)
573- let dv = df(bG, dg)
574- let dp = dj(bG, bO)
575- let dw = [IntegerEntry(bL(bG, aY, cI), height), IntegerEntry(bK(bG, aY, cI), dp)]
576- (dv ++ dw)
572+ let dh = if (ds)
573+ then du
574+ else -(du)
575+ let dw = dg(bH, dh)
576+ let dq = dk(bH, bP)
577+ let dx = [IntegerEntry(bM(bH, aZ, cJ), height), IntegerEntry(bL(bH, aZ, cJ), dq)]
578+ (dw ++ dx)
577579 }
578- du
580+ dv
579581 }
580582
581583
582-func dx (bG,bO) = {
583- let dy = cF()
584- let cI = dy._1
585- let cJ = dy._2
586- let aY = addressFromStringValue(bO)
587- let dz = bM(bG, aY, cI)
588- let dA = valueOrElse(getInteger(this, dz), 0)
589- let dB = bJ(bG, aY, cI)
590- let dC = valueOrElse(getInteger(this, dB), 0)
591- let dp = dj(bG, bO)
592- let de = cZ(bG)
593- let dD = (dp - dA)
594- let dE = (de - dC)
595- $Tuple3([IntegerEntry(dz, dp), IntegerEntry(dB, de)], dD, dE)
584+func dy (bH,bP) = {
585+ let dz = cG()
586+ let cJ = dz._1
587+ let cK = dz._2
588+ let aZ = addressFromStringValue(bP)
589+ let dA = bN(bH, aZ, cJ)
590+ let dB = valueOrElse(getInteger(this, dA), 0)
591+ let dC = bK(bH, aZ, cJ)
592+ let dD = valueOrElse(getInteger(this, dC), 0)
593+ let dq = dk(bH, bP)
594+ let df = da(bH)
595+ let dE = (dq - dB)
596+ let dF = (df - dD)
597+ $Tuple3([IntegerEntry(dA, dq), IntegerEntry(dC, df)], dE, dF)
596598 }
597599
598600
599-func dF () = {
600- let dG = t(bQ, ai())
601- let dH = getInteger(this, al())
601+func dG () = {
602+ let dH = u(bR, aj())
602603 let dI = getInteger(this, am())
603- let dJ = t(bQ, ao())
604- let dK = if ((height > dJ))
605- then dJ
604+ let dJ = getInteger(this, an())
605+ let dK = u(bR, ap())
606+ let dL = if ((height > dK))
607+ then dK
606608 else height
607- let dL = {
608- let aJ = dH
609- if ($isInstanceOf(aJ, "Int"))
609+ let dM = {
610+ let aK = dI
611+ if ($isInstanceOf(aK, "Int"))
610612 then {
611- let dM = aJ
612- max([(dK - dM), 0])
613+ let dN = aK
614+ max([(dL - dN), 0])
613615 }
614- else if ($isInstanceOf(aJ, "Unit"))
616+ else if ($isInstanceOf(aK, "Unit"))
615617 then 0
616618 else throw("Match error")
617619 }
618- let dN = ((dG * (bX - 1)) / bX)
619- let dO = valueOrElse(dI, 0)
620- let dP = ((dN * dL) + dO)
621- $Tuple2([IntegerEntry(am(), dP), IntegerEntry(al(), height)], dP)
620+ let dO = ((dH * (bY - 1)) / bY)
621+ let dP = valueOrElse(dJ, 0)
622+ let dQ = ((dO * dM) + dP)
623+ $Tuple2([IntegerEntry(an(), dQ), IntegerEntry(am(), height)], dQ)
622624 }
623625
624626
625-func dQ (bG,bO,dR) = {
626- let aY = valueOrErrorMessage(addressFromString(bO), k("invalid user address"))
627- let br = bZ(aY)
628- if ((br == br))
627+func dR (bH,bP,dS) = {
628+ let aZ = valueOrErrorMessage(addressFromString(bP), l("invalid user address"))
629+ let bs = ca(aZ)
630+ if ((bs == bs))
629631 then {
630- let dS = "empty"
631- let dT = if ((bG != dS))
632+ let dT = "empty"
633+ let dU = if ((bH != dT))
632634 then {
633- let dU = valueOrErrorMessage(getString(bP, R(bG)), k(("unsupported lp asset " + bG)))
634- getIntegerValue(bP, T(dU))
635+ let dV = valueOrErrorMessage(getString(bQ, S(bH)), l(("unsupported lp asset " + bH)))
636+ getIntegerValue(bQ, U(dV))
635637 }
636- else if (dR)
638+ else if (dS)
637639 then 0
638- else m(("not readonly mode: unsupported lp asset " + bG))
639- let dV = bs(br, bG)
640- let dW = bq(br)
641- let dX = valueOrElse(getInteger(this, dV), q(this, dW))
642- let dP = dF()._2
643- let dY = (dP - dX)
644- if ((0 > dY))
645- then m("wrong calculations")
640+ else n(("not readonly mode: unsupported lp asset " + bH))
641+ let dW = bt(bs, bH)
642+ let dX = br(bs)
643+ let dY = valueOrElse(getInteger(this, dW), r(this, dX))
644+ let dQ = dG()._2
645+ let dZ = (dQ - dY)
646+ if ((0 > dZ))
647+ then n("wrong calculations")
646648 else {
647- let dZ = dx(bG, bO)
648- let ea = dZ._1
649- let eb = dZ._2
650- let ec = dZ._3
651- let ed = fraction(dY, dT, d)
652- let ee = if ((ec == 0))
649+ let ea = dy(bH, bP)
650+ let eb = ea._1
651+ let ec = ea._2
652+ let ed = ea._3
653+ let ee = fraction(dZ, dU, d)
654+ let ef = if ((ed == 0))
653655 then 0
654- else fraction(ed, eb, ec)
655- let ef = ([IntegerEntry(dV, dP)] ++ ea)
656- let eg = makeString([toString(dX), toString(dY), toString(dT), toString(eb), toString(ec)], ":")
657- $Tuple3(ee, ef, eg)
656+ else fraction(ee, ec, ed)
657+ let eg = ([IntegerEntry(dW, dQ)] ++ eb)
658+ let eh = makeString([toString(dY), toString(dZ), toString(dU), toString(ec), toString(ed)], ":")
659+ $Tuple3(ef, eg, eh)
658660 }
659661 }
660662 else throw("Strict value is not equal to itself.")
661663 }
662664
663665
664-func eh (aO,ei) = {
665- let ej = [1, 3, 6, 12, 24, 48]
666- if (!(containsElement(ej, ei)))
667- then m("invalid duration")
668- else {
669- let bg = (ei * j)
670- let ek = toBase58String(aA)
671- if ((size(aO.payments) != 1))
672- then m("invalid payment - exact one payment must be attached")
673- else {
674- let cD = aO.payments[0]
675- let el = cD.amount
676- if ((aA != value(cD.assetId)))
677- then m((("invalid asset is in payment - " + ek) + " is expected"))
678- else {
679- let em = bj()
680- let aY = aO.caller
681- let bO = toString(aY)
682- let en = isDefined(getString(bk(bO)))
683- let eo = if (en)
684- then value(getString(bk(bO)))
685- else toString(t(this, em))
686- let br = parseIntValue(eo)
687- let ck = height
688- if (if ((aB > el))
689- then (aY != bT)
690- else false)
691- then m(("amount is less then minLockAmount=" + toString(aB)))
692- else if ((aC > bg))
693- then m(("passed duration is less then minLockDuration=" + toString(aC)))
694- else if ((bg > aD))
695- then m(("passed duration is greater then maxLockDuration=" + toString(aD)))
696- else {
697- let ep = fraction(bg, c, aD)
698- let eq = fraction(el, ep, c)
699- let er = ca()
700- let dW = bq(br)
701- let dP = dF()._2
702- let es = cE(aY)
703- let et = reentrantInvoke(bS, "refreshUserReward", [aY.bytes], nil)
704- if ((et == et))
705- then {
706- let eu = if (en)
707- then nil
708- else [IntegerEntry(em, (br + 1)), StringEntry(bk(bO), eo), StringEntry(bl(eo), bO)]
709- $Tuple2(((((eu ++ cA(aY, aO.transactionId, el, ck, bg, eq, 0)) ++ cn(el, bg, 1, if (en)
710- then 0
711- else 1)) :+ ch("lock", bO, el, ck, bg, eq, aO)) ++ [IntegerEntry(dW, dP), IntegerEntry(by(), (er + eq)), IntegerEntry(bc(aY), (es + eq))]), eq)
712- }
713- else throw("Strict value is not equal to itself.")
714- }
715- }
716- }
717- }
666+func ei (aP,ej) = if (!(containsElement(i, ej)))
667+ then n("invalid duration")
668+ else {
669+ let bh = (ej * k)
670+ let ek = toBase58String(aB)
671+ if ((size(aP.payments) != 1))
672+ then n("invalid payment - exact one payment must be attached")
673+ else {
674+ let cE = aP.payments[0]
675+ let el = cE.amount
676+ if ((aB != value(cE.assetId)))
677+ then n((("invalid asset is in payment - " + ek) + " is expected"))
678+ else {
679+ let em = bk()
680+ let aZ = aP.caller
681+ let bP = toString(aZ)
682+ let en = isDefined(getString(bl(bP)))
683+ let eo = if (en)
684+ then value(getString(bl(bP)))
685+ else toString(u(this, em))
686+ let bs = parseIntValue(eo)
687+ let cl = height
688+ if (if ((aC > el))
689+ then (aZ != bU)
690+ else false)
691+ then n(("amount is less then minLockAmount=" + toString(aC)))
692+ else if ((aD > bh))
693+ then n(("passed duration is less then minLockDuration=" + toString(aD)))
694+ else if ((bh > aE))
695+ then n(("passed duration is greater then maxLockDuration=" + toString(aE)))
696+ else {
697+ let ep = fraction(el, bh, aE)
698+ let eq = cb()
699+ let dX = br(bs)
700+ let dQ = dG()._2
701+ let er = cF(aZ)
702+ let es = reentrantInvoke(bT, "refreshUserReward", [aZ.bytes], nil)
703+ if ((es == es))
704+ then {
705+ let et = if (en)
706+ then nil
707+ else [IntegerEntry(em, (bs + 1)), StringEntry(bl(bP), eo), StringEntry(bm(eo), bP)]
708+ $Tuple2(((((et ++ cB(aZ, aP.transactionId, el, cl, bh, ep, 0)) ++ co(el, bh, 1, if (en)
709+ then 0
710+ else 1)) :+ ci("lock", bP, el, cl, bh, ep, aP)) ++ [IntegerEntry(dX, dQ), IntegerEntry(bz(), (eq + ep)), IntegerEntry(bd(aZ), (er + ep))]), ep)
711+ }
712+ else throw("Strict value is not equal to itself.")
713+ }
714+ }
715+ }
716+ }
717+
718+
719+func eu (aZ,ev) = {
720+ let ew = bc(aZ, ev)
721+ let ex = parseIntValue(ew[aS])
722+ let cl = parseIntValue(ew[aT])
723+ let ey = parseIntValue(ew[aU])
724+ let ez = (cl + ey)
725+ let bj = parseIntValue(ew[aX])
726+ let eA = ((height - cl) / aG)
727+ let eB = fraction(toBigInt(eA), (toBigInt((8 * aG)) * h), toBigInt(ey))
728+ let eC = if ((height > ez))
729+ then ex
730+ else (toInt(fraction(toBigInt(ex), (h - pow(toBigInt(5), 1, eB, f, f, DOWN)), h)) - bj)
731+ eC
718732 }
719733
720734
721-func ev (aY,ew) = {
722- let ex = bb(aY, ew)
723- let ey = parseIntValue(ex[aR])
724- let ck = parseIntValue(ex[aS])
725- let ez = parseIntValue(ex[aT])
726- let eA = (ck + ez)
727- let bi = parseIntValue(ex[aW])
728- let bh = parseIntValue(ex[aV])
729- let eB = ((height - ck) / aF)
730- let eC = fraction(toBigInt(eB), (toBigInt((8 * aF)) * h), toBigInt(ez))
731- let eD = if ((height > eA))
732- then ey
733- else (toInt(fraction(toBigInt(ey), (h - pow(toBigInt(5), 1, eC, f, f, DOWN)), h)) - bi)
734- eD
735- }
736-
737-
738-@Callable(aO)
739-func constructor (eE,eF,aB,eG,eH,aE) = {
740- let eI = aN(aO)
741- if ((eI == eI))
742- then ([IntegerEntry(bj(), 0), StringEntry(ax(), aH(eF, aB, eG, eH, aE)), StringEntry(E(), eE)] ++ cn(0, 0, 0, 0))
735+@Callable(aP)
736+func constructor (eD,eE,aC,eF,eG,aF) = {
737+ let eH = aO(aP)
738+ if ((eH == eH))
739+ then ([IntegerEntry(bk(), 0), StringEntry(ay(), aI(eE, aC, eF, eG, aF)), StringEntry(F(), eD)] ++ co(0, 0, 0, 0))
743740 else throw("Strict value is not equal to itself.")
744741 }
745742
746743
747744
748-@Callable(aO)
749-func lockRef (bg,eJ,eK) = {
750- let eL = eh(aO, bg)
751- let eM = eL._1
752- let eq = eL._2
753- let eN = toString(aO.caller)
754- let eO = if (if ((eJ == ""))
745+@Callable(aP)
746+func lockRef (bh,eI,eJ) = {
747+ let eK = ei(aP, bh)
748+ let eL = eK._1
749+ let ep = eK._2
750+ let eM = toString(aP.caller)
751+ let eN = if (if ((eI == ""))
755752 then true
756- else (eK == base58''))
753+ else (eJ == base58''))
757754 then unit
758- else invoke(A, "createPair", [D, eJ, eN, eK], nil)
759- if ((eO == eO))
755+ else invoke(B, "createPair", [E, eI, eM, eJ], nil)
756+ if ((eN == eN))
760757 then {
761- let eP = invoke(aE, "updateReferralActivity", [toString(aO.caller), eq], nil)
762- if ((eP == eP))
763- then $Tuple2(eM, unit)
758+ let eO = invoke(aF, "updateReferralActivity", [toString(aP.caller), ep], nil)
759+ if ((eO == eO))
760+ then $Tuple2(eL, unit)
764761 else throw("Strict value is not equal to itself.")
765762 }
766763 else throw("Strict value is not equal to itself.")
767764 }
768765
769766
770767
771-@Callable(aO)
772-func lock (bg) = {
773- let eQ = eh(aO, bg)
774- let eM = eQ._1
775- let eq = eQ._2
776- let eP = invoke(aE, "updateReferralActivity", [toString(aO.caller), eq], nil)
777- if ((eP == eP))
778- then $Tuple2(eM, unit)
768+@Callable(aP)
769+func lock (bh) = {
770+ let eP = ei(aP, bh)
771+ let eL = eP._1
772+ let ep = eP._2
773+ let eO = invoke(aF, "updateReferralActivity", [toString(aP.caller), ep], nil)
774+ if ((eO == eO))
775+ then $Tuple2(eL, unit)
779776 else throw("Strict value is not equal to itself.")
780777 }
781778
782779
783780
784-@Callable(aO)
785-func claimWxBoost (bG,bO) = if ((bR != aO.caller))
786- then m("permissions denied")
781+@Callable(aP)
782+func claimWxBoost (bH,bP) = if ((bS != aP.caller))
783+ then n("permissions denied")
787784 else {
788- let eR = dQ(bG, bO, false)
789- let eS = eR._1
790- let ef = eR._2
791- let eg = eR._3
792- $Tuple2(ef, [eS])
785+ let eQ = dR(bH, bP, false)
786+ let eR = eQ._1
787+ let eg = eQ._2
788+ let eh = eQ._3
789+ $Tuple2(eg, [eR])
793790 }
794791
795792
796793
797-@Callable(aO)
798-func claimWxBoostREADONLY (bG,bO) = {
799- let eT = dQ(bG, bO, true)
800- let eS = eT._1
801- let ef = eT._2
802- let eg = eT._3
803- $Tuple2(nil, [eS, eg])
794+@Callable(aP)
795+func claimWxBoostREADONLY (bH,bP) = {
796+ let eS = dR(bH, bP, true)
797+ let eR = eS._1
798+ let eg = eS._2
799+ let eh = eS._3
800+ $Tuple2(nil, [eR, eh])
804801 }
805802
806803
807804
808-@Callable(aO)
809-func unlock (eU) = {
810- let aY = aO.caller
811- let bO = toString(aY)
812- let aZ = fromBase58String(eU)
813- let ex = bb(aY, if ((eU == ""))
805+@Callable(aP)
806+func unlock (eT) = {
807+ let aZ = aP.caller
808+ let bP = toString(aZ)
809+ let ba = fromBase58String(eT)
810+ let ew = bc(aZ, if ((eT == ""))
814811 then unit
815- else aZ)
816- let ey = parseIntValue(ex[aR])
817- let ck = parseIntValue(ex[aS])
818- let ez = parseIntValue(ex[aT])
819- let eA = (ck + ez)
820- let bi = parseIntValue(ex[aW])
821- let bh = parseIntValue(ex[aV])
822- let eB = ((height - ck) / aF)
823- let eD = ev(aY, if ((eU == ""))
812+ else ba)
813+ let ex = parseIntValue(ew[aS])
814+ let cl = parseIntValue(ew[aT])
815+ let ey = parseIntValue(ew[aU])
816+ let bj = parseIntValue(ew[aX])
817+ let bi = parseIntValue(ew[aW])
818+ let eA = ((height - cl) / aG)
819+ let eC = eu(aZ, if ((eT == ""))
824820 then unit
825- else aZ)
826- let ep = fraction(ez, c, aD)
827- let eq = fraction(ey, ep, c)
828- let eV = min([fraction((eB * aF), eq, aD), bh])
829- let eW = w((bh - eV), "gwxRemaining")
830- let eX = cb(aY)
831- if ((0 >= ey))
832- then m("nothing to unlock")
821+ else ba)
822+ let ep = fraction(ex, ey, aE)
823+ let eU = min([fraction((eA * aG), ep, aE), bi])
824+ let eV = x((bi - eU), "gwxRemaining")
825+ let eW = cc(aZ)
826+ if ((0 >= ex))
827+ then n("nothing to unlock")
833828 else {
834- let er = ca()
835- let es = cE(aY)
836- let eY = w((es - eV), "userGwxAmountTotalNew")
837- if ((eX > eY))
838- then m(("locked gwx amount: " + toString(eX)))
829+ let eq = cb()
830+ let er = cF(aZ)
831+ let eX = x((er - eU), "userGwxAmountTotalNew")
832+ if ((eW > eX))
833+ then n(("locked gwx amount: " + toString(eW)))
839834 else {
840- let et = reentrantInvoke(bS, "refreshUserReward", [aY.bytes], nil)
841- if ((et == et))
842- then ((((cA(aY, aZ, ey, ck, ez, eW, (bi + eD)) ++ cn(-(eD), 0, 0, 0)) :+ ch("unlock", bO, eD, ck, ez, eV, aO)) :+ ScriptTransfer(aY, eD, aA)) ++ [IntegerEntry(by(), w((er - eV), "gwxTotal")), IntegerEntry(bc(aY), eY)])
835+ let es = reentrantInvoke(bT, "refreshUserReward", [aZ.bytes], nil)
836+ if ((es == es))
837+ then ((((cB(aZ, ba, ex, cl, ey, eV, (bj + eC)) ++ co(-(eC), 0, 0, 0)) :+ ci("unlock", bP, eC, cl, ey, eU, aP)) :+ ScriptTransfer(aZ, eC, aB)) ++ [IntegerEntry(bz(), x((eq - eU), "gwxTotal")), IntegerEntry(bd(aZ), eX)])
843838 else throw("Strict value is not equal to itself.")
844839 }
845840 }
846841 }
847842
848843
849844
850-@Callable(aO)
851-func gwxUserInfoREADONLY (bO) = {
852- let aY = valueOrErrorMessage(addressFromString(bO), k("invalid user address"))
853- let bh = cE(aY)
854- $Tuple2(nil, [bh])
845+@Callable(aP)
846+func gwxUserInfoREADONLY (bP) = {
847+ let aZ = valueOrErrorMessage(addressFromString(bP), l("invalid user address"))
848+ let bi = cF(aZ)
849+ $Tuple2(nil, [bi])
855850 }
856851
857852
858853
859-@Callable(aO)
860-func userMaxDurationREADONLY (bO) = $Tuple2(nil, $Tuple2("increaseLock", aD))
854+@Callable(aP)
855+func userMaxDurationREADONLY (bP) = $Tuple2(nil, $Tuple2("increaseLock", aE))
861856
862857
863858
864-@Callable(aO)
865-func getUserGwxAmountAtHeightREADONLY (bO,eZ) = {
866- let aY = valueOrErrorMessage(addressFromString(bO), k("invalid user address"))
867- let bh = cE(aY)
868- $Tuple2(nil, bh)
859+@Callable(aP)
860+func getUserGwxAmountAtHeightREADONLY (bP,eY) = {
861+ let aZ = valueOrErrorMessage(addressFromString(bP), l("invalid user address"))
862+ let bi = cF(aZ)
863+ $Tuple2(nil, bi)
869864 }
870865
871866
872867
873-@Callable(aO)
874-func getUserGwxAmount (bO) = {
875- let aY = valueOrErrorMessage(addressFromString(bO), k("invalid user address"))
876- let bh = cE(aY)
877- $Tuple2(nil, bh)
868+@Callable(aP)
869+func getUserGwxAmount (bP) = {
870+ let aZ = valueOrErrorMessage(addressFromString(bP), l("invalid user address"))
871+ let bi = cF(aZ)
872+ $Tuple2(nil, bi)
878873 }
879874
880875
881876
882-@Callable(aO)
883-func getGwxTotalREADONLY () = $Tuple2(nil, ca())
877+@Callable(aP)
878+func getGwxTotalREADONLY () = $Tuple2(nil, cb())
884879
885880
886881
887-@Callable(aO)
882+@Callable(aP)
888883 func onBoostEmissionUpdate () = {
889- let eI = if ((aO.caller == bQ))
884+ let eH = if ((aP.caller == bR))
890885 then true
891- else aN(aO)
892- if ((eI == eI))
893- then dF()
886+ else aO(aP)
887+ if ((eH == eH))
888+ then dG()
894889 else throw("Strict value is not equal to itself.")
895890 }
896891
897892
898893
899-@Callable(aO)
900-func onStakedVoteUpdate (bG,bO,dr) = {
901- let eI = if ((aO.caller == bR))
894+@Callable(aP)
895+func onStakedVoteUpdate (bH,bP,ds) = {
896+ let eH = if ((aP.caller == bS))
902897 then true
903- else aN(aO)
904- if ((eI == eI))
898+ else aO(aP)
899+ if ((eH == eH))
905900 then {
906- let du = dq(bG, bO, dr)
907- $Tuple2(du, unit)
901+ let dv = dr(bH, bP, ds)
902+ $Tuple2(dv, unit)
908903 }
909904 else throw("Strict value is not equal to itself.")
910905 }
911906
912907
913908
914-@Callable(aO)
915-func getVotingResultStakedREADONLY (bG) = $Tuple2(nil, cV(bG))
909+@Callable(aP)
910+func getVotingResultStakedREADONLY (bH) = $Tuple2(nil, cW(bH))
916911
917912
918913
919-@Callable(aO)
920-func getVotingResultStakedIntegralREADONLY (bG) = $Tuple2(nil, cZ(bG))
914+@Callable(aP)
915+func getVotingResultStakedIntegralREADONLY (bH) = $Tuple2(nil, da(bH))
921916
922917
923918
924-@Callable(aO)
925-func getUserVoteFinalizedREADONLY (bG,bO) = $Tuple2(nil, cO(bG, bO))
919+@Callable(aP)
920+func getUserVoteFinalizedREADONLY (bH,bP) = $Tuple2(nil, cP(bH, bP))
926921
927922
928923
929-@Callable(aO)
930-func getUserVoteStakedIntegralREADONLY (bG,bO) = $Tuple2(nil, dj(bG, bO))
924+@Callable(aP)
925+func getUserVoteStakedIntegralREADONLY (bH,bP) = $Tuple2(nil, dk(bH, bP))
931926
932927
933-@Verifier(fa)
934-func fb () = {
935- let fc = {
936- let aJ = aL()
937- if ($isInstanceOf(aJ, "ByteVector"))
928+@Verifier(eZ)
929+func fa () = {
930+ let fb = {
931+ let aK = aM()
932+ if ($isInstanceOf(aK, "ByteVector"))
938933 then {
939- let aQ = aJ
940- aQ
934+ let aR = aK
935+ aR
941936 }
942- else if ($isInstanceOf(aJ, "Unit"))
943- then fa.senderPublicKey
937+ else if ($isInstanceOf(aK, "Unit"))
938+ then eZ.senderPublicKey
944939 else throw("Match error")
945940 }
946- sigVerify(fa.bodyBytes, fa.proofs[0], fc)
941+ sigVerify(eZ.bodyBytes, eZ.proofs[0], fb)
947942 }
948943

github/deemru/w8io/026f985 
338.36 ms