tx · 12yZeEmQxn2mM5zoUaNVe8BfiAjibCYzyHGrNZ8FWXyb

3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy:  -0.02800000 Waves

2023.03.15 11:15 [2490890] smart account 3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy > SELF 0.00000000 Waves

{ "type": 13, "id": "12yZeEmQxn2mM5zoUaNVe8BfiAjibCYzyHGrNZ8FWXyb", "fee": 2800000, "feeAssetId": null, "timestamp": 1678868162059, "version": 2, "chainId": 84, "sender": "3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy", "senderPublicKey": "9W33iCCNfmFxUbiC6XZcH5x7f6xfwC7Jb3BoExT5q2PV", "proofs": [ "2zUcoBvyBaySBBte6vbDZPS4nzcAHruCj5HHiehgwLBmv6xu9dBNaikpmqQahAeYAAwmoHeSsZ1BeUujn8YuVort" ], "script": "base64:BgLFLwgCEggKBggIAQEBCBIFCgMBCAISAwoBARIDCgEBEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggBEgASABIFCgMICAQSAwoBCBIECgIICBIDCgEIEgAiA1NFUCIGU0NBTEU4IgVNVUxUOCIOUE9PTFdFSUdIVE1VTFQiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiBHN0cmYiB2FkZHJlc3MiA2tleSIDaW96IgNpb2QiCmRlZmF1bHRWYWwiA2lvZiIDYWJzIgN2YWwiA2FhbCIHJG1hdGNoMCIKdmFsQW55THlzdCICYWkiBnZhbEludCIba2V5UmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzIh5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwiFmtleVJlZmVycmFsUHJvZ3JhbU5hbWUiGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0IhNyZWZlcnJhbFByb2dyYW1OYW1lIhFrZXlGYWN0b3J5QWRkcmVzcyIYSWR4RmFjdG9yeUNmZ1N0YWtpbmdEYXBwIhlJZHhGYWN0b3J5Q2ZnQm9vc3RpbmdEYXBwIhRJZHhGYWN0b3J5Q2ZnSWRvRGFwcCIVSWR4RmFjdG9yeUNmZ1RlYW1EYXBwIhlJZHhGYWN0b3J5Q2ZnRW1pc3Npb25EYXBwIhVJZHhGYWN0b3J5Q2ZnUmVzdERhcHAiGUlkeEZhY3RvcnlDZmdTbGlwcGFnZURhcHAiFElkeEZhY3RvcnlDZmdEYW9EYXBwIhpJZHhGYWN0b3J5Q2ZnTWFya2V0aW5nRGFwcCIaSWR4RmFjdG9yeUNmZ0d3eFJld2FyZERhcHAiFklkeEZhY3RvcnlDZmdCaXJkc0RhcHAiDWtleUZhY3RvcnlDZmciGmtleUZhY3RvcnlMcDJBc3NldHNNYXBwaW5nIgpscEFzc2V0U3RyIhBrZXlGYWN0b3J5THBMaXN0IiZrZXlGYWN0b3J5THBBc3NldFRvUG9vbENvbnRyYWN0QWRkcmVzcyIUa2V5RmFjdG9yeVBvb2xXZWlnaHQiD2NvbnRyYWN0QWRkcmVzcyIba2V5RmFjdG9yeVBvb2xXZWlnaHRIaXN0b3J5Igtwb29sQWRkcmVzcyIDbnVtIhhyZWFkRmFjdG9yeUFkZHJlc3NPckZhaWwiCnJlYWRMcExpc3QiFHJlYWRGYWN0b3J5Q2ZnT3JGYWlsIgdmYWN0b3J5IhhnZXRCb29zdGluZ0FkZHJlc3NPckZhaWwiCmZhY3RvcnlDZmciGGdldEVtaXNzaW9uQWRkcmVzc09yRmFpbCIXZ2V0U3Rha2luZ0FkZHJlc3NPckZhaWwiGWdldEd3eFJld2FyZEFkZHJlc3NPckZhaWwiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5Ih5rZXlFbWlzc2lvblJhdGVQZXJCbG9ja0N1cnJlbnQiIWtleUVtaXNzaW9uUmF0ZVBlckJsb2NrTWF4Q3VycmVudCIVa2V5RW1pc3Npb25TdGFydEJsb2NrIh1rZXlCb29zdGluZ1YyTGFzdFVwZGF0ZUhlaWdodCIVa2V5Qm9vc3RpbmdWMkludGVncmFsIhtrZXlFbWlzc2lvbkR1cmF0aW9uSW5CbG9ja3MiE2tleUVtaXNzaW9uRW5kQmxvY2siDWtleU5leHRQZXJpb2QiH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQiDUlkeENmZ0Fzc2V0SWQiE0lkeENmZ01pbkxvY2tBbW91bnQiFUlkeENmZ01pbkxvY2tEdXJhdGlvbiIVSWR4Q2ZnTWF4TG9ja0R1cmF0aW9uIhJJZHhDZmdNYXRoQ29udHJhY3QiCWtleUNvbmZpZyIVcmVhZENvbmZpZ0FycmF5T3JGYWlsIgxtYXRoQ29udHJhY3QiDWZvcm1hdENvbmZpZ1MiB2Fzc2V0SWQiDW1pbkxvY2tBbW91bnQiD21pbkxvY2tEdXJhdGlvbiIPbWF4TG9ja0R1cmF0aW9uIgxmb3JtYXRDb25maWciFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgttdXN0TWFuYWdlciIBaSICcGQiAnBrIg5JZHhMb2NrVXNlck51bSINSWR4TG9ja0Ftb3VudCIMSWR4TG9ja1N0YXJ0Ig9JZHhMb2NrRHVyYXRpb24iDUlkeExvY2tQYXJhbUsiDUlkeExvY2tQYXJhbUIiE2tleUxvY2tQYXJhbXNSZWNvcmQiC3VzZXJBZGRyZXNzIhpyZWFkTG9ja1BhcmFtc1JlY29yZE9yRmFpbCIXZm9ybWF0TG9ja1BhcmFtc1JlY29yZFMiB3VzZXJOdW0iBmFtb3VudCIFc3RhcnQiCGR1cmF0aW9uIgZwYXJhbUsiBnBhcmFtQiIQbGFzdFVwZFRpbWVzdGFtcCIJZ3d4QW1vdW50IhZmb3JtYXRMb2NrUGFyYW1zUmVjb3JkIg5rZXlOZXh0VXNlck51bSISa2V5VXNlcjJOdW1NYXBwaW5nIhJrZXlOdW0yVXNlck1hcHBpbmciFmtleUxvY2tQYXJhbVVzZXJBbW91bnQiFmtleUxvY2tQYXJhbVN0YXJ0QmxvY2siFGtleUxvY2tQYXJhbUR1cmF0aW9uIg1rZXlMb2NrUGFyYW1LIg1rZXlMb2NrUGFyYW1CIhVrZXlMb2NrUGFyYW1CeVBlcmlvZEsiBnBlcmlvZCIVa2V5TG9ja1BhcmFtQnlQZXJpb2RCIhdrZXlMb2NrUGFyYW1Ub3RhbEFtb3VudCIga2V5U3RhdHNMb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MiEmtleVN0YXRzTG9ja3NDb3VudCISa2V5U3RhdHNVc2Vyc0NvdW50IiBrZXlVc2VyQm9vc3RFbWlzc2lvbkxhc3RJTlRFR1JBTCIia2V5VXNlckxwQm9vc3RFbWlzc2lvbkxhc3RJTlRFR1JBTCIJbHBBc3NldElkIhdrZXlVc2VyTWF4Qm9vc3RJTlRFR1JBTCIYa2V5VG90YWxNYXhCb29zdElOVEVHUkFMIiFrZXlVc2VyQm9vc3RBdmFsYWlibGVUb0NsYWltVG90YWwiE2tleVVzZXJCb29zdENsYWltZWQiEWtleVRvdGFsQ2FjaGVkR3d4IhtrZXlUb3RhbENhY2hlZEd3eENvcnJlY3RpdmUiB2tleVZvdGUiDWFtb3VudEFzc2V0SWQiDHByaWNlQXNzZXRJZCIFZXBvY2giFWtleVN0YXJ0SGVpZ2h0QnlFcG9jaCIRa2V5Q3VycmVudEVwb2NoVWkiFWtleVZvdGluZ1Jlc3VsdFN0YWtlZCIMbHBBc3NldElkU3RyIh1rZXlWb3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbCIla2V5Vm90aW5nUmVzdWx0U3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIha2V5Vm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxMYXN0IhVrZXlWb3RlU3Rha2VkSW50ZWdyYWwiHWtleVZvdGVTdGFrZWRMYXN0VXBkYXRlSGVpZ2h0IhlrZXlWb3RlU3Rha2VkSW50ZWdyYWxMYXN0Ig9rZXlTdGFrZWRCeVVzZXIiDnVzZXJBZGRyZXNzU3RyIg9mYWN0b3J5Q29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiD3N0YWtpbmdDb250cmFjdCIRZ3d4UmV3YXJkQ29udHJhY3QiFmxwU3Rha2luZ1Bvb2xzQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiCmJvb3N0Q29lZmYiAUAiEWdldFRvdGFsQ2FjaGVkR3d4Igdjb3JyZWN0Ig5jdXJyZW50RXBvY2hVaSIOa2V5VGFyZ2V0RXBvY2giEXRhcmdldEVwb2NoT3B0aW9uIhF0b3RhbENhY2hlZEd3eFJhdyIVaXNDb3JyZWN0aW9uQWN0aXZhdGVkIgpjb3JyZWN0aXZlIgxIaXN0b3J5RW50cnkiBHR5cGUiBHVzZXIiCWxvY2tTdGFydCIBayIBYiIKaGlzdG9yeUtFWSILaGlzdG9yeURBVEEiClN0YXRzRW50cnkiDnRvdGFsTG9ja2VkSW5jIgtkdXJhdGlvbkluYyIMbG9ja0NvdW50SW5jIg11c2Vyc0NvdW50SW5jIhtsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3NLRVkiDWxvY2tzQ291bnRLRVkiDXVzZXJzQ291bnRLRVkiDnRvdGFsQW1vdW50S0VZIhhsb2Nrc0R1cmF0aW9uU3VtSW5CbG9ja3MiCmxvY2tzQ291bnQiCnVzZXJzQ291bnQiC3RvdGFsQW1vdW50Ig1jYWxjR3d4QW1vdW50IgRrUmF3IgRiUmF3IgFoIgVTQ0FMRSIPTG9ja1BhcmFtc0VudHJ5Ig11c2VyQW1vdW50S0VZIg1zdGFydEJsb2NrS0VZIgtkdXJhdGlvbktFWSIEa0tFWSIEYktFWSIMa0J5UGVyaW9kS0VZIgxiQnlQZXJpb2RLRVkiImV4dHJhY3RPcHRpb25hbFBheW1lbnRBbW91bnRPckZhaWwiD2V4cGVjdGVkQXNzZXRJZCIDcG10IhljYWxjVXNlckd3eEFtb3VudEF0SGVpZ2h0Igx0YXJnZXRIZWlnaHQiBUVNUFRZIhJ1c2VyMk51bU1hcHBpbmdLRVkiDWd3eEFtb3VudENhbGMiFGNhbGNDdXJyZW50R3d4QW1vdW50IhpnZXRWb3RpbmdFbWlzc2lvbkVwb2NoSW5mbyINJHQwMTcxOTAxNzQ4MCISbGFzdEZpbmFsaXplZEVwb2NoIhdjdXJyZW50RXBvY2hTdGFydEhlaWdodCIYZ2V0UG9vbEFzc2V0c0J5THBBc3NldElkIhBpZHhBbW91bnRBc3NldElkIg9pZHhQcmljZUFzc2V0SWQiB3Bvb2xDZmciFGdldFVzZXJWb3RlRmluYWxpemVkIg0kdDAxODE3MTE4MjUxIg0kdDAxODI1NDE4MzI5Igt1c2VyVm90ZUtleSIIdXNlclZvdGUiEWdldFVzZXJWb3RlU3Rha2VkIgxzdGFrZWRCeVVzZXIiFWdldFZvdGluZ1Jlc3VsdFN0YWtlZCINJHQwMTg4NzMxODk1MyIXdm90aW5nUmVzdWx0U3Rha2VkU3RhcnQiEnZvdGluZ1Jlc3VsdFN0YWtlZCIhcmVmcmVzaFZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIg9zdGFrZWRWb3RlRGVsdGEiDSR0MDE5NDc0MTk1NTQiFXZvdGluZ1Jlc3VsdFN0YWtlZE5ldyIddm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxLZXkiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsUHJldiIfdm90aW5nUmVzdWx0TGFzdFVwZGF0ZUhlaWdodEtleSIidm90aW5nUmVzdWx0U3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIcdm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWxEaCIadm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiGXJlZnJlc2hWb3RlU3Rha2VkSW50ZWdyYWwiBGVkZ2UiDSR0MDIwNzU0MjA4MzQiB2FjdGlvbnMiDSR0MDIxNDQ3MjE1NjYiE3ZvdGluZ1Jlc3VsdEFjdGlvbnMiDnVzZXJWb3RlU3Rha2VkIhl1c2VyVm90ZVN0YWtlZEludGVncmFsS2V5Ihp1c2VyVm90ZVN0YWtlZEludGVncmFsUHJldiIhdXNlclZvdGVTdGFrZWRMYXN0VXBkYXRlSGVpZ2h0S2V5Ih51c2VyVm90ZVN0YWtlZExhc3RVcGRhdGVIZWlnaHQiGHVzZXJWb3RlU3Rha2VkSW50ZWdyYWxEaCIWdXNlclZvdGVTdGFrZWRJbnRlZ3JhbCILdm90ZUFjdGlvbnMiG2dldFN0YWtlZFZvdGVzSW50ZWdyYWxzRGlmZiINJHQwMjI1NTgyMjYzOCIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbExhc3QiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdCIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbERpZmYiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsRGlmZiIccmVmcmVzaEJvb3N0RW1pc3Npb25JbnRlZ3JhbCISd3hFbWlzc2lvblBlckJsb2NrIiBib29zdGluZ1YyTGFzdFVwZGF0ZUhlaWdodE9wdGlvbiIYYm9vc3RpbmdWMkluZ2VyZ2FsT3B0aW9uIgtlbWlzc2lvbkVuZCICZGgiEGxhc3RVcGRhdGVIZWlnaHQiFWJvb3N0RW1pc3Npb25QZXJCbG9jayIZYm9vc3RFbWlzc2lvbkludGVncmFsUHJldiIVYm9vc3RFbWlzc2lvbkludGVncmFsIhRpbnRlcm5hbENsYWltV3hCb29zdCIIcmVhZE9ubHkiEHVzZXJSZWNvcmRPcHRpb24iD3VzZXJSZWNvcmRBcnJheSIKdXNlck51bVN0ciIIRU1QVFlTVFIiCnBvb2xXZWlnaHQiDnBvb2xBZGRyZXNzU3RyIiJ1c2VyTHBCb29zdEVtaXNzaW9uTGFzdEludGVncmFsS0VZIiB1c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRlZ3JhbEtFWSIddXNlckJvb3N0RW1pc3Npb25MYXN0SW50ZWdyYWwiGXVzZXJCb29zdEVtaXNzaW9uSW50ZWdyYWwiDSR0MDI3MTYzMjczMDIiG3N0YWtlZFZvdGVzSW50ZWdyYWxzQWN0aW9ucyIUdXNlclZvdGVJbnRlZ3JhbERpZmYiFnRvdGFsVm90ZXNJbnRlZ3JhbERpZmYiHXBvb2xVc2VyQm9vc3RFbWlzc2lvbkludGVncmFsIiF1c2VyQm9vc3RBdmFsaWFibGVUb0NsYWltVG90YWxOZXciCWRhdGFTdGF0ZSIFZGVidWciC2xvY2tBY3Rpb25zIghjZmdBcnJheSIKYXNzZXRJZFN0ciIJcG10QW1vdW50Ig5uZXh0VXNlck51bUtFWSIOdXNlcklzRXhpc3RpbmciB2NvZWZmWDgiDmdXeEFtb3VudFN0YXJ0IhNnV3hQYXJhbXNSZXN1bHRMaXN0IgNhcnIiEWZhY3RvcnlBZGRyZXNzU3RyIg5sb2NrQXNzZXRJZFN0ciILbWluRHVyYXRpb24iC21heER1cmF0aW9uIgtjaGVja0NhbGxlciIPcmVmZXJyZXJBZGRyZXNzIglzaWduYXR1cmUiDSR0MDMxODkyMzE5NTciEWxvY2tBY3Rpb25zUmVzdWx0Ig9yZWZlcnJhbEFkZHJlc3MiBnJlZkludiIRdXBkYXRlUmVmQWN0aXZpdHkiDSR0MDMyNDE1MzI0ODAiDWRlbHRhRHVyYXRpb24iCnVzZXJBbW91bnQiDGxvY2tEdXJhdGlvbiIHbG9ja0VuZCIRcmVtYWluaW5nRHVyYXRpb24iDXVzZXJBbW91bnROZXciD2xvY2tEdXJhdGlvbk5ldyIMbG9ja1N0YXJ0TmV3IgtjdXJyVXNlckd3eCIHZ3d4RGlmZiIXdG90YWxDYWNoZWRHd3hDb3JyZWN0ZWQiDSR0MDM1NTY3MzU2NjkiEnVzZXJCb29zdEF2YWlsYWJsZSINJHQwMzU4MDEzNTkwMiIQbWF4RGVsdGFEdXJhdGlvbiIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXmKAQABYQICX18AAWIACAABYwCAwtcvAAFkBQFjAQFlAQFmCQC5CQIJAMwIAgIOYm9vc3RpbmcucmlkZToJAMwIAgUBZgUDbmlsAgEgAQFnAQFmCQACAQkBAWUBBQFmAQFoAgFpAWoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQFpBQFqCQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQFqAg8gaXMgbm90IGRlZmluZWQBAWsCAWkBagkBC3ZhbHVlT3JFbHNlAgkAmggC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BQJhQQkApAMBBQJhQgkApAMBBQJhQwUCYXgBAmFFAAQBcgkAoggBCQECYWYAAwkAAQIFAXICBlN0cmluZwQCYUYFAXIJANkEAQUCYUYDCQABAgUBcgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhRwAEAXIJAKIIAQkBAmFnAAMJAAECBQFyAgZTdHJpbmcEAmFGBQFyCQDZBAEFAmFGAwkAAQIFAXICBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYUgBAmFJBAJhSgkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAFyCQECYUUAAwkAAQIFAXICCkJ5dGVWZWN0b3IEAmFLBQFyAwkAAAIIBQJhSQ9jYWxsZXJQdWJsaWNLZXkFAmFLBgUCYUoDCQABAgUBcgIEVW5pdAMJAAACCAUCYUkGY2FsbGVyBQR0aGlzBgUCYUoJAAIBAgtNYXRjaCBlcnJvcgACYUwAAQACYU0AAgACYU4AAwACYU8ABAACYVAABQACYVEABgECYVIBAmFTCQC5CQIJAMwIAgIKJXMlc19fbG9jawkAzAgCBQJhUwUDbmlsBQFhAQJhVAECYVMJALUJAgkBAWgCBQR0aGlzCQECYVIBBQJhUwUBYQECYVUIAmFWAmFXAmFYAmFZAmFaAmJhAmJiAmJjCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCBQJhVgkAzAgCBQJhVwkAzAgCBQJhWAkAzAgCBQJhWQkAzAgCBQJhWgkAzAgCBQJiYQkAzAgCBQJiYgkAzAgCBQJiYwUDbmlsBQFhAQJiZAcCYVYCYVcCYVgCYVkCYVoCYmECYmMJAQJhVQgFAmFWCQCkAwEFAmFXCQCkAwEFAmFYCQCkAwEFAmFZCQCkAwEFAmFaCQCkAwEFAmJhCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQCkAwEFAmJjAQJiZQACDyVzX19uZXh0VXNlck51bQECYmYBAmFTCQC5CQIJAMwIAgIZJXMlcyVzX19tYXBwaW5nX191c2VyMm51bQkAzAgCBQJhUwUDbmlsBQFhAQJiZwEBVgkAuQkCCQDMCAICGSVzJXMlc19fbWFwcGluZ19fbnVtMnVzZXIJAMwIAgUBVgUDbmlsBQFhAQJiaAECYVYJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFWCQDMCAICBmFtb3VudAUDbmlsBQFhAQJiaQECYVYJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFWCQDMCAICBXN0YXJ0BQNuaWwFAWEBAmJqAQJhVgkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVYJAMwIAgIIZHVyYXRpb24FA25pbAUBYQECYmsBAmFWCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVgkAzAgCAgFrBQNuaWwFAWEBAmJsAQJhVgkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVYJAMwIAgIBYgUDbmlsBQFhAQJibQICYVYCYm4JALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCBQJhVgkAzAgCAgFrCQDMCAIFAmJuBQNuaWwFAWEBAmJvAgJhVgJibgkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIFAmFWCQDMCAICAWIJAMwIAgUCYm4FA25pbAUBYQECYnAAAh4lcyVzX19zdGF0c19fYWN0aXZlVG90YWxMb2NrZWQBAmJxAAIlJXMlc19fc3RhdHNfX2xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwECYnIAAhclcyVzX19zdGF0c19fbG9ja3NDb3VudAECYnMAAh0lcyVzX19zdGF0c19fYWN0aXZlVXNlcnNDb3VudAECYnQBAmFWCQC5CQIJAMwIAgIgJXMlZF9fdXNlckJvb3N0RW1pc3Npb25MYXN0SW50VjIJAMwIAgUCYVYFA25pbAUBYQECYnUCAmFWAmJ2CQC5CQIJAMwIAgIgJXMlZF9fdXNlckJvb3N0RW1pc3Npb25MYXN0SW50VjIJAMwIAgUCYVYJAMwIAgUCYnYFA25pbAUBYQECYncBAmFWCQC5CQIJAMwIAgIRJXMlZF9fbWF4Qm9vc3RJbnQJAMwIAgUCYVYFA25pbAUBYQECYngAAhglcyVzX19tYXhCb29zdEludF9fdG90YWwBAmJ5AQJhVgkAuQkCCQDMCAICJCVz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AmNmCQCaCAIFBHRoaXMFAmNlBAJjZwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkEAAAAEAmNoAwkBCWlzRGVmaW5lZAEFAmNmCQBnAgUCY2QJAQV2YWx1ZQEFAmNmBwQCY2kDAwUCY2gFAmNjBwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkIAAAAAAAkAlgMBCQDMCAIAAAkAzAgCCQBkAgUCY2cFAmNpBQNuaWwBAmNqCAJjawJjbAJhVwJjbQJhWQJjbgJjbwJhSQQCY3AJALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQJjawkAzAgCBQJjbAkAzAgCCQDYBAEIBQJhSQ10cmFuc2FjdGlvbklkBQNuaWwFAWEEAmNxCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUCYVcJAMwIAgkApAMBBQJjbQkAzAgCCQCkAwEFAmFZCQDMCAIJAKQDAQUCY24JAMwIAgkApAMBBQJjbwUDbmlsBQFhCQELU3RyaW5nRW50cnkCBQJjcAUCY3EBAmNyBAJjcwJjdAJjdQJjdgQCY3cJAQJicQAEAmN4CQECYnIABAJjeQkBAmJzAAQCY3oJAQJicAAEAmNBCQEBawIFBHRoaXMFAmN3BAJjQgkBAWsCBQR0aGlzBQJjeAQCY0MJAQFrAgUEdGhpcwUCY3kEAmNECQEBawIFBHRoaXMFAmN6CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjdwkAZAIFAmNBBQJjdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3gJAGQCBQJjQgUCY3UJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN5CQBkAgUCY0MFAmN2CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjegkAZAIFAmNEBQJjcwUDbmlsAQJjRQMCY0YCY0cCY0gEAmNJAOgHCQBpAgkAZAIJAGgCBQJjRgUCY0gFAmNHBQJjSQECY0oIAmFTAmFWAmFXAmFYAmFZAmNuAmNvAmJuBAJjSwkBAmJoAQUCYVYEAmNMCQECYmkBBQJhVgQCY00JAQJiagEFAmFWBAJjTgkBAmJrAQUCYVYEAmNPCQECYmwBBQJhVgQCY1AJAQJibQIFAmFWBQJibgQCY1EJAQJibwIFAmFWBQJibgQCYmMJAQJjRQMFAmNuBQJjbwUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjSwUCYVcJAMwIAgkBDEludGVnZXJFbnRyeQIFAmNMBQJhWAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY00FAmFZCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjTgUCY24JAMwIAgkBDEludGVnZXJFbnRyeQIFAmNPBQJjbwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY1AFAmNuCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjUQUCY28JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFSAQUCYVMJAQJiZAcFAmFWBQJhVwUCYVgFAmFZBQJjbgUCY28FAmJjBQNuaWwBAmNSAgJhSQJjUwMJAGYCCQCQAwEIBQJhSQhwYXltZW50cwABCQACAQIbb25seSBvbmUgcGF5bWVudCBpcyBhbGxvd2VkAwkAAAIJAJADAQgFAmFJCHBheW1lbnRzAAAAAAQCY1QJAJEDAggFAmFJCHBheW1lbnRzAAADCQECIT0CCQEFdmFsdWUBCAUCY1QHYXNzZXRJZAUCY1MJAAIBAhtpbnZhbGlkIGFzc2V0IGlkIGluIHBheW1lbnQIBQJjVAZhbW91bnQBAmNVAgJhUwJjVgQCY1cCBWVtcHR5BAJjWAkBAmJmAQUCYVMEAmFWCQELdmFsdWVPckVsc2UCCQCiCAEFAmNYBQJjVwQCY24JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmJrAQUCYVYAAAQCY28JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmJsAQUCYVYAAAQCY1kJAQJjRQMFAmNuBQJjbwUCY1YEAmJjAwkAZgIAAAUCY1kAAAUCY1kFAmJjAQJjWgECYVMJAQJjVQIFAmFTBQZoZWlnaHQBAmRhAAQCZGIEAmNkCQEFdmFsdWUBCQCaCAIFAmJZCQECYkgABAJkYwkAZQIFAmNkAAEDCQBmAgAABQJkYwkBAWcBAg1pbnZhbGlkIGVwb2NoCQCUCgIFAmNkBQJkYwQCY2QIBQJkYgJfMQQCZGMIBQJkYgJfMgQCZGQJAQV2YWx1ZQEJAJoIAgUCYlkJAQJiRwEFAmNkCQCUCgIFAmRjBQJkZAECZGUBAmJKBAJkZgAEBAJkZwAFBAJkaAoAAmNhCQD8BwQFAmJTAiBnZXRQb29sQ29uZmlnQnlMcEFzc2V0SWRSRUFET05MWQkAzAgCBQJiSgUDbmlsBQNuaWwDCQABAgUCY2ECCUxpc3RbQW55XQUCY2EJAAIBCQCsAgIJAAMBBQJjYQIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldBAJiRAoAAmNhCQCRAwIFAmRoBQJkZgMJAAECBQJjYQIGU3RyaW5nBQJjYQkAAgEJAKwCAgkAAwEFAmNhAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmJFCgACY2EJAJEDAgUCZGgFAmRnAwkAAQIFAmNhAgZTdHJpbmcFAmNhCQACAQkArAICCQADAQUCY2ECGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAlAoCBQJiRAUCYkUBAmRpAgJiSgJiUgQCYVMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJSBAJkagkBAmRhAAQCZGMIBQJkagJfMQQCZGQIBQJkagJfMgQCZGsJAQJkZQEFAmJKBAJiRAgFAmRrAl8xBAJiRQgFAmRrAl8yBAJkbAkBAmJDBAUCYkQFAmJFBQJhUwUCZGMEAmRtCQELdmFsdWVPckVsc2UCCQCaCAIFAmJZBQJkbAAABQJkbQECZG4CAmJKAmJSBAJkbwkBC3ZhbHVlT3JFbHNlAgkAmggCBQJiVQkBAmJRAgUCYlIFAmJKAAAEAmRtCQECZGkCBQJiSgUCYlIDCQAAAgUCZG8AAAAABQJkbQECZHABAmJKBAJkcQkBAmRhAAQCZGMIBQJkcQJfMQQCZGQIBQJkcQJfMgQCZHIJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYlkJAQJiSQIFAmJKBQJkYwAABAJkcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkkCBQJiSgUCZGMFAmRyBQJkcwECZHQCAmJKAmR1BAJkdgkBAmRhAAQCZGMIBQJkdgJfMQQCZGQIBQJkdgJfMgQCZHMJAQJkcAEFAmJKBAJkdwkAZAIFAmRzBQJkdQQCZHgJAQJiSwIFAmJKBQJkYwQCZHkJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCZHgAAAQCZHoJAQJiTAIFAmJKBQJkYwQCZEEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCZHoFAmRkBAJkQgkAZQIFBmhlaWdodAUCZEEEAmRDCQBkAgkAaAIFAmRCBQJkcwUCZHkJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJJAgUCYkoFAmRjBQJkdwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZHoFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZHgFAmRDBQNuaWwFAmRDAQJkRAMCYkoCYlICZEUEAmRGCQECZGEABAJkYwgFAmRGAl8xBAJkZAgFAmRGAl8yBAJhUwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYlIEAmRmAAQEAmRnAAUEAmRoCgACY2EJAPwHBAUCYlMCIGdldFBvb2xDb25maWdCeUxwQXNzZXRJZFJFQURPTkxZCQDMCAIFAmJKBQNuaWwFA25pbAMJAAECBQJjYQIJTGlzdFtBbnldBQJjYQkAAgEJAKwCAgkAAwEFAmNhAh4gY291bGRuJ3QgYmUgY2FzdCB0byBMaXN0W0FueV0EAmJECgACY2EJAJEDAgUCZGgFAmRmAwkAAQIFAmNhAgZTdHJpbmcFAmNhCQACAQkArAICCQADAQUCY2ECGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCYkUKAAJjYQkAkQMCBQJkaAUCZGcDCQABAgUCY2ECBlN0cmluZwUCY2EJAAIBCQCsAgIJAAMBBQJjYQIbIGNvdWxkbid0IGJlIGNhc3QgdG8gU3RyaW5nBAJkbQkBC3ZhbHVlT3JFbHNlAgkAmggCBQJiWQkBAmJDBAUCYkQFAmJFBQJhUwUCZGMAAAQCZEcDCQAAAgUCZG0AAAUDbmlsBAJkdQMFAmRFBQJkbQkBAS0BBQJkbQQCZEgJAQJkdAIFAmJKBQJkdQQCZEkIBQJkSAJfMQQCZEMIBQJkSAJfMgQCZEoDBQJkRQAABQJkbQQCZEsJAQJiTgMFAmJKBQJhUwUCZGMEAmRMCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmRLAAAEAmRNCQECYk8DBQJiSgUCYVMFAmRjBAJkTgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJkTQUCZGQEAmRPCQBlAgUGaGVpZ2h0BQJkTgQCZFAJAGQCCQBoAgUCZE8FAmRKBQJkTAQCZFEJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRNBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRLBQJkUAUDbmlsCQDOCAIFAmRJBQJkUQUCZEcBAmRSAgJiSgJiUgQCZFMJAQJkYQAEAmRjCAUCZFMCXzEEAmRkCAUCZFMCXzIEAmFTCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiUgQCZEoJAQJkbgIFAmJKBQJiUgQCZHMJAQJkcAEFAmJKBAJkTAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYk4DBQJiSgUCYVMFAmRjAAAEAmR5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiSwIFAmJKBQJkYwAABAJkTgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYk8DBQJiSgUCYVMFAmRjBQJkZAQCZEEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJMAgUCYkoFAmRjBQJkZAQCZEsJAQJiUAMFAmJKBQJhUwUCZGMEAmRUCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmRLAAAEAmR4CQECYk0DBQJiSgUCYVMFAmRjBAJkVQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJkeAAABAJkTwkAZQIFBmhlaWdodAUCZE4EAmRCCQBlAgUGaGVpZ2h0BQJkQQQCZFAJAGQCCQBoAgUCZE8FAmRKBQJkTAQCZEMJAGQCCQBoAgUCZEIFAmRzBQJkeQQCZFYJAGUCBQJkUAUCZFQEAmRXCQBlAgUCZEMFAmRVCQCVCgMJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRLBQJkUAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZHgFAmRDBQNuaWwFAmRWBQJkVwECZFgABAJkWQkBAW4CBQJiVAkBAmFoAAQCZFoJAJoIAgUCYlQJAQJhawAEAmVhCQCaCAIFBHRoaXMJAQJhbAAEAmViCQEBbgIFAmJUCQECYW4ABAJjSAMJAGYCBQZoZWlnaHQFAmViBQJlYgUGaGVpZ2h0BAJlYwQBcgUCZFoDCQABAgUBcgIDSW50BAJlZAUBcgkAlgMBCQDMCAIJAGUCBQJjSAUCZWQJAMwIAgAABQNuaWwDCQABAgUBcgIEVW5pdAAACQACAQILTWF0Y2ggZXJyb3IEAmVlCQBpAgkAaAIFAmRZCQBlAgUCYloAAQUCYloEAmVmCQELdmFsdWVPckVsc2UCBQJlYQAABAJlZwkAZAIJAGgCBQJlZQUCZWMFAmVmCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbAAFAmVnCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsABQZoZWlnaHQFA25pbAUCZWcBAmVoAwJiSgJiUgJlaQQCZWoJAJ0IAgUEdGhpcwkBAmFSAQUCYlIDCQAAAgUCZWoFBHVuaXQJAJUKAwAABQNuaWwCFXVzZXJSZWNvcmQ6OmlzOjplbXB0eQQCZWsJALUJAgkBBXZhbHVlAQUCZWoFAWEEAmVsCQCRAwIFAmVrBQJhTAQCZW0CBWVtcHR5BAJlbgMJAQIhPQIFAmJKBQJlbQQCZW8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJiUwkBAU4BBQJiSgkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmJKCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJiUwkBAVIBBQJlbwMFAmVpAAAJAAIBCQCsAgICKG5vdCByZWFkb25seSBtb2RlOiB1bnN1cHBvcnRlZCBscCBhc3NldCAFAmJKBAJlcAkBAmJ1AgUCZWwFAmJKBAJlcQkBAmJ0AQUCZWwEAmVyCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmVwCQEBawIFBHRoaXMFAmVxBAJlZwgJAQJkWAACXzIEAmVzCQBlAgUCZWcFAmVyAwkAZgIAAAUCZXMJAAIBAhJ3cm9uZyBjYWxjdWxhdGlvbnMEAmV0CQECZFICBQJiSgUCYlIEAmV1CAUCZXQCXzEEAmV2CAUCZXQCXzIEAmV3CAUCZXQCXzMEAmV4CQBrAwUCZXMFAmVuBQFkBAJleQMJAAACBQJldwAAAAAJAGsDBQJleAUCZXYFAmV3BAJlegkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJlcAUCZWcFA25pbAUCZXUEAmVBCQC5CQIJAMwIAgkApAMBBQJlcgkAzAgCCQCkAwEFAmVzCQDMCAIJAKQDAQUCZW4JAMwIAgkApAMBBQJldgkAzAgCCQCkAwEFAmV3BQNuaWwCAToJAJUKAwUCZXkFAmV6BQJlQQECZUICAmFJAmFZBAJlQwkBAmF3AAQCZUQJAJEDAgUCZUMFAmFxBAJhegkA2QQBBQJlRAQCYUEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlQwUCYXIEAmFCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUMFAmFzBAJhQwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVDBQJhdAMJAQIhPQIJAJADAQgFAmFJCHBheW1lbnRzAAEJAAIBAjRpbnZhbGlkIHBheW1lbnQgLSBleGFjdCBvbmUgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBAJjVAkAkQMCCAUCYUkIcGF5bWVudHMAAAQCZUUIBQJjVAZhbW91bnQDCQECIT0CBQJhegkBBXZhbHVlAQgFAmNUB2Fzc2V0SWQJAAIBCQCsAgIJAKwCAgIeaW52YWxpZCBhc3NldCBpcyBpbiBwYXltZW50IC0gBQJlRAIMIGlzIGV4cGVjdGVkBAJlRgkBAmJlAAQCYlIJAKUIAQgFAmFJBmNhbGxlcgQCZUcJAQlpc0RlZmluZWQBCQCiCAEJAQJiZgEFAmJSBAJlbAMFAmVHCQEFdmFsdWUBCQCiCAEJAQJiZgEFAmJSCQCkAwEJAQFuAgUEdGhpcwUCZUYEAmFWCQENcGFyc2VJbnRWYWx1ZQEFAmVsBAJjbQUGaGVpZ2h0BAJjTAkBAmJpAQUCZWwEAmNNCQECYmoBBQJlbAQCY0sJAQJiaAEFAmVsAwMJAGYCBQJhQQUCZUUJAQIhPQIIBQJhSQZjYWxsZXIFAmJXBwkAAgEJAKwCAgIiYW1vdW50IGlzIGxlc3MgdGhlbiBtaW5Mb2NrQW1vdW50PQkApAMBBQJhQQMJAGYCBQJhQgUCYVkJAAIBCQCsAgICLXBhc3NlZCBkdXJhdGlvbiBpcyBsZXNzIHRoZW4gbWluTG9ja0R1cmF0aW9uPQkApAMBBQJhQgMJAGYCBQJhWQUCYUMJAAIBCQCsAgICMHBhc3NlZCBkdXJhdGlvbiBpcyBncmVhdGVyIHRoZW4gbWF4TG9ja0R1cmF0aW9uPQkApAMBBQJhQwMDBQJlRwkAZwIJAGQCCQEBbgIFBHRoaXMFAmNMCQEBbgIFBHRoaXMFAmNNBQJjbQcJAAIBAjZ0aGVyZSBpcyBhbiBhY3RpdmUgbG9jayAtIGNvbnNpZGVyIHRvIHVzZSBpbmNyZWFzZUxvY2sDCQBmAgkBAWsCBQR0aGlzBQJjSwAACQACAQkArAICAjR0aGVyZSBhcmUgbG9ja2VkIFdYcyAtIGNvbnNpZGVyIHRvIHVzZSBpbmNyZWFzZUxvY2sgBQJjSwQCZUgJAGsDBQJhWQUBYwUCYUMEAmVJCQBrAwUCZUUFAmVIBQFjBAJlSgkBAXEBCQD8BwQFAmF4AhVjYWxjR3d4UGFyYW1zUkVBRE9OTFkJAMwIAgUCZUkJAMwIAgUCY20JAMwIAgUCYVkFA25pbAUDbmlsBAJjbgkBAXQBCQCRAwIFAmVKAAAEAmNvCQEBdAEJAJEDAgUCZUoAAQQCYm4JAKQDAQkBAXQBCQCRAwIFAmVKAAIEAmNnCQECY2IBBwQCZXEJAQJidAEFAmVsBAJlZwgJAQJkWAACXzIEAmVLAwUCZUcFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZUYJAGQCBQJhVgABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZgEFAmJSBQJlbAkAzAgCCQELU3RyaW5nRW50cnkCCQECYmcBBQJlbAUCYlIFA25pbAkAlAoCCQDOCAIJAM0IAgkAzggCCQDOCAIFAmVLCQECY0oIBQJiUgUCZWwFAmVFBQJjbQUCYVkFAmNuBQJjbwUCYm4JAQJjcgQFAmVFBQJhWQABAwUCZUcAAAABCQECY2oIAgRsb2NrBQJiUgUCZUUFAmNtBQJhWQUCY24FAmNvBQJhSQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXEFAmVnCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYkEACQBkAgUCY2cFAmVJBQNuaWwFAmVJEQJhSQELY29uc3RydWN0b3IGAmVMAmVNAmFBAmVOAmVPAmF4BAJlUAkBAmFIAQUCYUkDCQAAAgUCZVAFAmVQCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiZQAAAAkAzAgCCQELU3RyaW5nRW50cnkCCQECYXYACQECYUQFBQJlTQUCYUEFAmVOBQJlTwUCYXgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUEABQJlTAUDbmlsCQECY3IEAAAAAAAAAAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBB2xvY2tSZWYDAmFZAmVRAmVSBAJlUwkBAmVCAgUCYUkFAmFZBAJlVAgFAmVTAl8xBAJlSQgFAmVTAl8yBAJlVQkApQgBCAUCYUkGY2FsbGVyBAJlVgMDCQAAAgUCZVECAAYJAAACBQJlUgEABQR1bml0CQD8BwQFAXcCCmNyZWF0ZVBhaXIJAMwIAgUBegkAzAgCBQJlUQkAzAgCBQJlVQkAzAgCBQJlUgUDbmlsBQNuaWwDCQAAAgUCZVYFAmVWBAJlVwkA/AcEBQJheAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCCQClCAEIBQJhSQZjYWxsZXIJAMwIAgUCZUkFA25pbAUDbmlsAwkAAAIFAmVXBQJlVwkAlAoCBQJlVAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEEbG9jawECYVkEAmVYCQECZUICBQJhSQUCYVkEAmVUCAUCZVgCXzEEAmVJCAUCZVgCXzIEAmVXCQD8BwQFAmF4AhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIJAKUIAQgFAmFJBmNhbGxlcgkAzAgCBQJlSQUDbmlsBQNuaWwDCQAAAgUCZVcFAmVXCQCUCgIFAmVUBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFJAQxpbmNyZWFzZUxvY2sBAmVZBAJlQwkBAmF3AAQCZUQJAJEDAgUCZUMFAmFxBAJhegkA2QQBBQJlRAQCYUIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlQwUCYXMEAmFDCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUMFAmF0BAJlRQkBAmNSAgUCYUkFAmF6BAJiUgkApQgBCAUCYUkGY2FsbGVyBAJlawkBAmFUAQUCYlIEAmVsCQCRAwIFAmVrBQJhTAQCZVoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlawUCYU0EAmNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWsFAmFOBAJmYQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVrBQJhTwQCZmIJAGQCBQJjbQUCZmEEAmZjCQCWAwEJAMwIAgkAZQIFAmZiBQZoZWlnaHQJAMwIAgAABQNuaWwEAmZkCQBkAgUCZVoFAmVFBAJmZQkAZAIFAmZjBQJlWQMJAGYCAAAFAmVZCQACAQIaZHVyYXRpb24gaXMgbGVzcyB0aGVuIHplcm8DCQBmAgUCYUIFAmZlCQACAQkArAICAi1sb2NrRHVyYXRpb25OZXcgaXMgbGVzcyB0aGVuIG1pbkxvY2tEdXJhdGlvbj0JAKQDAQUCYUIDCQBmAgUCZmUFAmFDCQACAQkArAICAkRkZWx0YUR1cmF0aW9uICsgZXhpc3RlZExvY2tEdXJhdGlvbiBpcyBncmVhdGVyIHRoZW4gbWF4TG9ja0R1cmF0aW9uPQkApAMBBQJhQwQCZUgJAGsDBQJmZQUBYwUCYUMEAmVJCQBrAwUCZmQFAmVIBQFjBAJlVwkA/AcEBQJheAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCCQClCAEIBQJhSQZjYWxsZXIJAMwIAgUCZUkFA25pbAUDbmlsAwkAAAIFAmVXBQJlVwQCZmYFBmhlaWdodAQCZUoJAQFxAQkA/AcEBQJheAIVY2FsY0d3eFBhcmFtc1JFQURPTkxZCQDMCAIFAmVJCQDMCAIFAmZmCQDMCAIFAmZlBQNuaWwFA25pbAQCY24JAQF0AQkAkQMCBQJlSgAABAJjbwkBAXQBCQCRAwIFAmVKAAEEAmJuCQCkAwEJAQF0AQkAkQMCBQJlSgACBAJmZwkBAmNaAQUCYlIEAmZoCQBlAgUCZUkFAmZnAwkAZgIAAAUCZmgJAAIBCQCsAgICGGd3eERpZmYgaXMgbGVzcyB0aGVuIDA6IAkApAMBBQJmaAQCY2cJAQJjYgEHBAJmaQkBAmNiAQYJAM4IAgkAzQgCCQDOCAIJAQJjSggFAmJSBQJlbAUCZmQFAmZmBQJmZQUCY24FAmNvBQJibgkBAmNyBAUCZUUFAmVZAAAAAAkBAmNqCAIEbG9jawUCYlIFAmVFBQJjbQUCZmUFAmNuBQJjbwUCYUkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiQQAJAGQCBQJjZwUCZmgFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEMY2xhaW1XeEJvb3N0AgJiSgJiUgMJAQIhPQIFAmJVCAUCYUkGY2FsbGVyCQACAQIScGVybWlzc2lvbnMgZGVuaWVkBAJmagkBAmVoAwUCYkoFAmJSBwQCZmsIBQJmagJfMQQCZXoIBQJmagJfMgQCZUEIBQJmagJfMwkAlAoCBQJlegkAzAgCBQJmawUDbmlsAmFJARRjbGFpbVd4Qm9vc3RSRUFET05MWQICYkoCYlIEAmZsCQECZWgDBQJiSgUCYlIGBAJmawgFAmZsAl8xBAJleggFAmZsAl8yBAJlQQgFAmZsAl8zCQCUCgIFA25pbAkAzAgCBQJmawkAzAgCBQJlQQUDbmlsAmFJAQZ1bmxvY2sBAmFTBAJlawkBAmFUAQUCYVMEAmVsCQCRAwIFAmVrBQJhTAQCZVoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlawUCYU0EAmNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWsFAmFOBAJmYQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVrBQJhTwQCZmIJAGQCBQJjbQUCZmEEAmVDCQECYXcABAJhegkA2QQBCQCRAwIFAmVDBQJhcQMJAGcCBQJmYgUGaGVpZ2h0CQACAQkArAICCQCsAgICBXdhaXQgCQCkAwEFAmZiAgogdG8gdW5sb2NrAwkAZwIAAAUCZVoJAAIBAhFub3RoaW5nIHRvIHVubG9jawQCYm4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYXgJAQJhbwAAAAkAzQgCCQDNCAIJAM4IAgkBAmNKCAUCYVMFAmVsAAAFAmNtBQJmYQAAAAAJAKQDAQUCYm4JAQJjcgQJAQEtAQUCZVoAAAAAAP///////////wEJAQJjaggCBnVubG9jawUCYVMFAmVaBQJjbQUCZmEAAAAABQJhSQkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVMFAmVaBQJhegJhSQETZ3d4VXNlckluZm9SRUFET05MWQECYVMEAmJjCQECY1oBBQJhUwkAlAoCBQNuaWwJAMwIAgUCYmMFA25pbAJhSQEXdXNlck1heER1cmF0aW9uUkVBRE9OTFkBAmJSBAJlQwkBAmF3AAQCYUMJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlQwUCYXQEAmVqCQCdCAIFBHRoaXMJAQJhUgEFAmJSAwkAAAIFAmVqBQR1bml0CQCUCgIFA25pbAkAlAoCAgRsb2NrBQJhQwQCZWsJALUJAgkBBXZhbHVlAQUCZWoFAWEEAmNtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWsFAmFOBAJmYQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVrBQJhTwQCZmIJAGQCBQJjbQUCZmEEAmZjCQCWAwEJAMwIAgkAZQIFAmZiBQZoZWlnaHQJAMwIAgAABQNuaWwEAmZtCQBlAgUCYUMFAmZjCQCUCgIFA25pbAkAlAoCAgxpbmNyZWFzZUxvY2sFAmZtAmFJASBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQICYVMCY1YEAmJjCQECY1UCBQJhUwUCY1YJAJQKAgUDbmlsBQJiYwJhSQEZZ2V0VG90YWxDYWNoZWRHd3hSRUFET05MWQAJAJQKAgUDbmlsCQECY2IBBgJhSQEVb25Cb29zdEVtaXNzaW9uVXBkYXRlAAQCZVADCQAAAggFAmFJBmNhbGxlcgUCYlQGCQECYUgBBQJhSQMJAAACBQJlUAUCZVAJAQJkWAAJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBEm9uU3Rha2VkVm90ZVVwZGF0ZQMCYkoCYlICZEUEAmVQAwkAAAIIBQJhSQZjYWxsZXIFAmJVBgkBAmFIAQUCYUkDCQAAAgUCZVAFAmVQBAJkRwkBAmREAwUCYkoFAmJSBQJkRQkAlAoCBQJkRwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEdZ2V0Vm90aW5nUmVzdWx0U3Rha2VkUkVBRE9OTFkBAmJKCQCUCgIFA25pbAkBAmRwAQUCYkoCYUkBHGdldFVzZXJWb3RlRmluYWxpemVkUkVBRE9OTFkCAmJKAmJSCQCUCgIFA25pbAkBAmRpAgUCYkoFAmJSAmFJAQpzZXRNYW5hZ2VyAQJmbgQCZVAJAQJhSAEFAmFJAwkAAAIFAmVQBQJlUAQCZm8JANkEAQUCZm4DCQAAAgUCZm8FAmZvCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZwAFAmZuBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBDmNvbmZpcm1NYW5hZ2VyAAQCZnAJAQJhRwAEAmZxAwkBCWlzRGVmaW5lZAEFAmZwBgkAAgECEk5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmcQUCZnEEAmZyAwkAAAIIBQJhSQ9jYWxsZXJQdWJsaWNLZXkJAQV2YWx1ZQEFAmZwBgkAAgECG1lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJmcgUCZnIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFmAAkA2AQBCQEFdmFsdWUBBQJmcAkAzAgCCQELRGVsZXRlRW50cnkBCQECYWcABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmZzAQJmdAAEAmZ1BAFyCQECYUUAAwkAAQIFAXICCkJ5dGVWZWN0b3IEAmFLBQFyBQJhSwMJAAECBQFyAgRVbml0CAUCZnMPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmZzCWJvZHlCeXRlcwkAkQMCCAUCZnMGcHJvb2ZzAAAFAmZ1IazonQ==", "height": 2490890, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2VJzFgHogPw7zKhEX9MPGZxoc47AriXfqNixh92oVFQb Next: 7p38ousfrmmnwAANUTtjcJDT1pbtJwYKiFWETf2a6zDx Diff:
OldNewDifferences
320320 func bB () = "%s__gwxCachedTotalCorrective"
321321
322322
323-let bC = W()
323+func bC (bD,bE,i,bF) = makeString(["%s%s%s%s%d", "vote", bD, bE, toString(i), toString(bF)], a)
324324
325-let ab = Y(bC)
326325
327-let bD = ac(ab)
326+func bG (bF) = makeString(["%s%d", "startHeight", toString(bF)], a)
328327
329-let bE = ad(ab)
330328
331-let bF = ae(ab)
329+func bH () = makeString(["%s", "currentEpochUi"], a)
332330
333-let bG = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), e("lp_staking_pools contract address is undefined"))), e("invalid lp_staking_pools contract address"))
334331
335-let bH = makeString(["%s", "votingEmissionContract"], a)
332+func bI (bJ,bF) = makeString(["%s%s%d", "votingResultStaked", bJ, toString(bF)], a)
336333
337-let bI = addressFromStringValue(getStringValue(bC, bH))
338334
339-let bJ = {
340- let bK = invoke(bD, "getBoostCoeffREADONLY", nil, nil)
341- if ($isInstanceOf(bK, "Int"))
342- then bK
343- else throw(($getType(bK) + " couldn't be cast to Int"))
335+func bK (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegral", bJ, toString(bF)], a)
336+
337+
338+func bL (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bJ, toString(bF)], a)
339+
340+
341+func bM (bJ,i,bF) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bJ, toString(i), toString(bF)], a)
342+
343+
344+func bN (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegral", bJ, toString(i), toString(bF)], a)
345+
346+
347+func bO (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bJ, toString(i), toString(bF)], a)
348+
349+
350+func bP (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bJ, toString(i), toString(bF)], a)
351+
352+
353+func bQ (bR,bJ) = makeString(["%s%s%s", "staked", bR, bJ], a)
354+
355+
356+let bS = W()
357+
358+let ab = Y(bS)
359+
360+let bT = ac(ab)
361+
362+let bU = ad(ab)
363+
364+let bV = ae(ab)
365+
366+let bW = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), e("lp_staking_pools contract address is undefined"))), e("invalid lp_staking_pools contract address"))
367+
368+let bX = makeString(["%s", "votingEmissionContract"], a)
369+
370+let bY = addressFromStringValue(getStringValue(bS, bX))
371+
372+let bZ = {
373+ let ca = invoke(bT, "getBoostCoeffREADONLY", nil, nil)
374+ if ($isInstanceOf(ca, "Int"))
375+ then ca
376+ else throw(($getType(ca) + " couldn't be cast to Int"))
344377 }
345378
346-func bL (bM) = {
347- let bN = makeString(["%s", "currentEpochUi"], a)
348- let bO = getIntegerValue(bI, bN)
349- let bP = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
350- let bQ = getInteger(this, bP)
351- let bR = valueOrElse(getInteger(this, bA()), 0)
352- let bS = if (isDefined(bQ))
353- then (bO >= value(bQ))
379+func cb (cc) = {
380+ let cd = getIntegerValue(bY, bH())
381+ let ce = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
382+ let cf = getInteger(this, ce)
383+ let cg = valueOrElse(getInteger(this, bA()), 0)
384+ let ch = if (isDefined(cf))
385+ then (cd >= value(cf))
354386 else false
355- let bT = if (if (bS)
356- then bM
387+ let ci = if (if (ch)
388+ then cc
357389 else false)
358390 then valueOrElse(getInteger(this, bB()), 0)
359391 else 0
360- max([0, (bR + bT)])
392+ max([0, (cg + ci)])
361393 }
362394
363395
364-func bU (bV,bW,aW,bX,aY,bY,bZ,aI) = {
365- let ca = makeString(["%s%s%s%s__history", bV, bW, toBase58String(aI.transactionId)], a)
366- let cb = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aW), toString(bX), toString(aY), toString(bY), toString(bZ)], a)
367- StringEntry(ca, cb)
396+func cj (ck,cl,aW,cm,aY,cn,co,aI) = {
397+ let cp = makeString(["%s%s%s%s__history", ck, cl, toBase58String(aI.transactionId)], a)
398+ let cq = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aW), toString(cm), toString(aY), toString(cn), toString(co)], a)
399+ StringEntry(cp, cq)
368400 }
369401
370402
371-func cc (cd,ce,cf,cg) = {
372- let ch = bq()
373- let ci = br()
374- let cj = bs()
375- let ck = bp()
376- let cl = k(this, ch)
377- let cm = k(this, ci)
378- let cn = k(this, cj)
379- let co = k(this, ck)
380-[IntegerEntry(ch, (cl + ce)), IntegerEntry(ci, (cm + cf)), IntegerEntry(cj, (cn + cg)), IntegerEntry(ck, (co + cd))]
403+func cr (cs,ct,cu,cv) = {
404+ let cw = bq()
405+ let cx = br()
406+ let cy = bs()
407+ let cz = bp()
408+ let cA = k(this, cw)
409+ let cB = k(this, cx)
410+ let cC = k(this, cy)
411+ let cD = k(this, cz)
412+[IntegerEntry(cw, (cA + ct)), IntegerEntry(cx, (cB + cu)), IntegerEntry(cy, (cC + cv)), IntegerEntry(cz, (cD + cs))]
381413 }
382414
383415
384-func cp (cq,cr,cs) = {
385- let ct = 1000
386- (((cq * cs) + cr) / ct)
416+func cE (cF,cG,cH) = {
417+ let cI = 1000
418+ (((cF * cH) + cG) / cI)
387419 }
388420
389421
390-func cu (aS,aV,aW,aX,aY,bY,bZ,bn) = {
391- let cv = bh(aV)
392- let cw = bi(aV)
393- let cx = bj(aV)
394- let cy = bk(aV)
395- let cz = bl(aV)
396- let cA = bm(aV, bn)
397- let cB = bo(aV, bn)
398- let bc = cp(bY, bZ, height)
399-[IntegerEntry(cv, aW), IntegerEntry(cw, aX), IntegerEntry(cx, aY), IntegerEntry(cy, bY), IntegerEntry(cz, bZ), IntegerEntry(cA, bY), IntegerEntry(cB, bZ), StringEntry(aR(aS), bd(aV, aW, aX, aY, bY, bZ, bc))]
422+func cJ (aS,aV,aW,aX,aY,cn,co,bn) = {
423+ let cK = bh(aV)
424+ let cL = bi(aV)
425+ let cM = bj(aV)
426+ let cN = bk(aV)
427+ let cO = bl(aV)
428+ let cP = bm(aV, bn)
429+ let cQ = bo(aV, bn)
430+ let bc = cE(cn, co, height)
431+[IntegerEntry(cK, aW), IntegerEntry(cL, aX), IntegerEntry(cM, aY), IntegerEntry(cN, cn), IntegerEntry(cO, co), IntegerEntry(cP, cn), IntegerEntry(cQ, co), StringEntry(aR(aS), bd(aV, aW, aX, aY, cn, co, bc))]
400432 }
401433
402434
403-func cC (aI,cD) = if ((size(aI.payments) > 1))
435+func cR (aI,cS) = if ((size(aI.payments) > 1))
404436 then throw("only one payment is allowed")
405437 else if ((size(aI.payments) == 0))
406438 then 0
407439 else {
408- let cE = aI.payments[0]
409- if ((value(cE.assetId) != cD))
440+ let cT = aI.payments[0]
441+ if ((value(cT.assetId) != cS))
410442 then throw("invalid asset id in payment")
411- else cE.amount
443+ else cT.amount
412444 }
413445
414446
415-func cF (aS,cG) = {
416- let cH = "empty"
417- let cI = bf(aS)
418- let aV = valueOrElse(getString(cI), cH)
419- let bY = valueOrElse(getInteger(bk(aV)), 0)
420- let bZ = valueOrElse(getInteger(bl(aV)), 0)
421- let cJ = cp(bY, bZ, cG)
422- let bc = if ((0 > cJ))
447+func cU (aS,cV) = {
448+ let cW = "empty"
449+ let cX = bf(aS)
450+ let aV = valueOrElse(getString(cX), cW)
451+ let cn = valueOrElse(getInteger(bk(aV)), 0)
452+ let co = valueOrElse(getInteger(bl(aV)), 0)
453+ let cY = cE(cn, co, cV)
454+ let bc = if ((0 > cY))
423455 then 0
424- else cJ
456+ else cY
425457 bc
426458 }
427459
428460
429-func cK (aS) = cF(aS, height)
461+func cZ (aS) = cU(aS, height)
430462
431463
432-func cL () = {
433- let bN = makeString(["%s", "currentEpochUi"], a)
434- let cM = {
435- let bO = value(getInteger(bI, bN))
436- let cN = (bO - 1)
437- if ((0 > cN))
464+func da () = {
465+ let db = {
466+ let cd = value(getInteger(bY, bH()))
467+ let dc = (cd - 1)
468+ if ((0 > dc))
438469 then g("invalid epoch")
439- else $Tuple2(bO, cN)
470+ else $Tuple2(cd, dc)
440471 }
441- let bO = cM._1
442- let cN = cM._2
443- func cO (cP) = makeString(["%s%d", "startHeight", toString(cP)], a)
444-
445- let cQ = value(getInteger(bI, cO(bO)))
446- $Tuple2(cN, cQ)
472+ let cd = db._1
473+ let dc = db._2
474+ let dd = value(getInteger(bY, bG(cd)))
475+ $Tuple2(dc, dd)
447476 }
448477
449478
450-func cR (cS) = {
451- let cT = 4
452- let cU = 5
453- let cV = {
454- let bK = invoke(bC, "getPoolConfigByLpAssetId", [cS], nil)
455- if ($isInstanceOf(bK, "List[Any]"))
456- then bK
457- else throw(($getType(bK) + " couldn't be cast to List[Any]"))
479+func de (bJ) = {
480+ let df = 4
481+ let dg = 5
482+ let dh = {
483+ let ca = invoke(bS, "getPoolConfigByLpAssetIdREADONLY", [bJ], nil)
484+ if ($isInstanceOf(ca, "List[Any]"))
485+ then ca
486+ else throw(($getType(ca) + " couldn't be cast to List[Any]"))
458487 }
459- let cW = {
460- let bK = cV[cT]
461- if ($isInstanceOf(bK, "String"))
462- then bK
463- else throw(($getType(bK) + " couldn't be cast to String"))
488+ let bD = {
489+ let ca = dh[df]
490+ if ($isInstanceOf(ca, "String"))
491+ then ca
492+ else throw(($getType(ca) + " couldn't be cast to String"))
464493 }
465- let cX = {
466- let bK = cV[cU]
467- if ($isInstanceOf(bK, "String"))
468- then bK
469- else throw(($getType(bK) + " couldn't be cast to String"))
494+ let bE = {
495+ let ca = dh[dg]
496+ if ($isInstanceOf(ca, "String"))
497+ then ca
498+ else throw(($getType(ca) + " couldn't be cast to String"))
470499 }
471- $Tuple2(cW, cX)
500+ $Tuple2(bD, bE)
472501 }
473502
474503
475-func cY (cW,cX,i,cP) = makeString(["%s%s%s%s%d", "vote", cW, cX, toString(i), toString(cP)], a)
476-
477-
478-func cZ (cS,cP) = makeString(["%s%s%d", "votingResultStaked", cS, toString(cP)], a)
479-
480-
481-func da (cS,cP) = makeString(["%s%s%d", "votingResultStakedIntegral", cS, toString(cP)], a)
482-
483-
484-func db (cS,cP) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", cS, toString(cP)], a)
485-
486-
487-func dc (cS,i,cP) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", cS, toString(i), toString(cP)], a)
488-
489-
490-func dd (cS,i,cP) = makeString(["%s%s%s%d", "voteStakedIntegral", cS, toString(i), toString(cP)], a)
491-
492-
493-func de (cS,i,cP) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", cS, toString(i), toString(cP)], a)
494-
495-
496-func df (cS,i,cP) = makeString(["%s%s%s%d", "voteStakedIntegralLast", cS, toString(i), toString(cP)], a)
497-
498-
499-func dg (dh,cS) = makeString(["%s%s%s", "staked", dh, cS], a)
500-
501-
502-func di (cS,dh) = {
503- let aS = addressFromStringValue(dh)
504- let dj = cL()
505- let cN = dj._1
506- let cQ = dj._2
507- let dk = cR(cS)
508- let cW = dk._1
509- let cX = dk._2
510- let dl = cY(cW, cX, aS, cN)
511- let dm = valueOrElse(getInteger(bI, dl), 0)
504+func di (bJ,bR) = {
505+ let aS = addressFromStringValue(bR)
506+ let dj = da()
507+ let dc = dj._1
508+ let dd = dj._2
509+ let dk = de(bJ)
510+ let bD = dk._1
511+ let bE = dk._2
512+ let dl = bC(bD, bE, aS, dc)
513+ let dm = valueOrElse(getInteger(bY, dl), 0)
512514 dm
513515 }
514516
515517
516-func dn (cS,dh) = {
517- let do = valueOrElse(getInteger(bE, dg(dh, cS)), 0)
518- let dm = di(cS, dh)
518+func dn (bJ,bR) = {
519+ let do = valueOrElse(getInteger(bU, bQ(bR, bJ)), 0)
520+ let dm = di(bJ, bR)
519521 if ((do == 0))
520522 then 0
521523 else dm
522524 }
523525
524526
525-func dp (cS) = {
526- let dq = cL()
527- let cN = dq._1
528- let cQ = dq._2
529- let dr = valueOrElse(getInteger(bI, cZ(cS, cN)), 0)
530- let ds = valueOrElse(getInteger(this, cZ(cS, cN)), dr)
527+func dp (bJ) = {
528+ let dq = da()
529+ let dc = dq._1
530+ let dd = dq._2
531+ let dr = valueOrElse(getInteger(bY, bI(bJ, dc)), 0)
532+ let ds = valueOrElse(getInteger(this, bI(bJ, dc)), dr)
531533 ds
532534 }
533535
534536
535-func dt (cS,du) = {
536- let dv = cL()
537- let cN = dv._1
538- let cQ = dv._2
539- let ds = dp(cS)
537+func dt (bJ,du) = {
538+ let dv = da()
539+ let dc = dv._1
540+ let dd = dv._2
541+ let ds = dp(bJ)
540542 let dw = (ds + du)
541- let dx = da(cS, cN)
543+ let dx = bK(bJ, dc)
542544 let dy = valueOrElse(getInteger(this, dx), 0)
543- let dz = db(cS, cN)
544- let dA = valueOrElse(getInteger(this, dz), cQ)
545+ let dz = bL(bJ, dc)
546+ let dA = valueOrElse(getInteger(this, dz), dd)
545547 let dB = (height - dA)
546548 let dC = ((dB * ds) + dy)
547- $Tuple2([IntegerEntry(cZ(cS, cN), dw), IntegerEntry(dz, height), IntegerEntry(dx, dC)], dC)
549+ $Tuple2([IntegerEntry(bI(bJ, dc), dw), IntegerEntry(dz, height), IntegerEntry(dx, dC)], dC)
548550 }
549551
550552
551-func dD (cS,dh,dE) = {
552- let dF = cL()
553- let cN = dF._1
554- let cQ = dF._2
555- let aS = addressFromStringValue(dh)
556- let cT = 4
557- let cU = 5
558- let cV = {
559- let bK = invoke(bC, "getPoolConfigByLpAssetId", [cS], nil)
560- if ($isInstanceOf(bK, "List[Any]"))
561- then bK
562- else throw(($getType(bK) + " couldn't be cast to List[Any]"))
553+func dD (bJ,bR,dE) = {
554+ let dF = da()
555+ let dc = dF._1
556+ let dd = dF._2
557+ let aS = addressFromStringValue(bR)
558+ let df = 4
559+ let dg = 5
560+ let dh = {
561+ let ca = invoke(bS, "getPoolConfigByLpAssetIdREADONLY", [bJ], nil)
562+ if ($isInstanceOf(ca, "List[Any]"))
563+ then ca
564+ else throw(($getType(ca) + " couldn't be cast to List[Any]"))
563565 }
564- let cW = {
565- let bK = cV[cT]
566- if ($isInstanceOf(bK, "String"))
567- then bK
568- else throw(($getType(bK) + " couldn't be cast to String"))
566+ let bD = {
567+ let ca = dh[df]
568+ if ($isInstanceOf(ca, "String"))
569+ then ca
570+ else throw(($getType(ca) + " couldn't be cast to String"))
569571 }
570- let cX = {
571- let bK = cV[cU]
572- if ($isInstanceOf(bK, "String"))
573- then bK
574- else throw(($getType(bK) + " couldn't be cast to String"))
572+ let bE = {
573+ let ca = dh[dg]
574+ if ($isInstanceOf(ca, "String"))
575+ then ca
576+ else throw(($getType(ca) + " couldn't be cast to String"))
575577 }
576- let dm = valueOrElse(getInteger(bI, cY(cW, cX, aS, cN)), 0)
578+ let dm = valueOrElse(getInteger(bY, bC(bD, bE, aS, dc)), 0)
577579 let dG = if ((dm == 0))
578580 then nil
579581 else {
580582 let du = if (dE)
581583 then dm
582584 else -(dm)
583- let dH = dt(cS, du)
585+ let dH = dt(bJ, du)
584586 let dI = dH._1
585587 let dC = dH._2
586588 let dJ = if (dE)
587589 then 0
588590 else dm
589- let dK = dd(cS, aS, cN)
591+ let dK = bN(bJ, aS, dc)
590592 let dL = valueOrElse(getInteger(this, dK), 0)
591- let dM = de(cS, aS, cN)
592- let dN = valueOrElse(getInteger(this, dM), cQ)
593+ let dM = bO(bJ, aS, dc)
594+ let dN = valueOrElse(getInteger(this, dM), dd)
593595 let dO = (height - dN)
594596 let dP = ((dO * dJ) + dL)
595597 let dQ = [IntegerEntry(dM, height), IntegerEntry(dK, dP)]
599601 }
600602
601603
602-func dR (cS,dh) = {
603- let dS = cL()
604- let cN = dS._1
605- let cQ = dS._2
606- let aS = addressFromStringValue(dh)
607- let dJ = dn(cS, dh)
608- let ds = dp(cS)
609- let dL = valueOrElse(getInteger(this, dd(cS, aS, cN)), 0)
610- let dy = valueOrElse(getInteger(this, da(cS, cN)), 0)
611- let dN = valueOrElse(getInteger(this, de(cS, aS, cN)), cQ)
612- let dA = valueOrElse(getInteger(this, db(cS, cN)), cQ)
613- let dK = df(cS, aS, cN)
604+func dR (bJ,bR) = {
605+ let dS = da()
606+ let dc = dS._1
607+ let dd = dS._2
608+ let aS = addressFromStringValue(bR)
609+ let dJ = dn(bJ, bR)
610+ let ds = dp(bJ)
611+ let dL = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
612+ let dy = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
613+ let dN = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
614+ let dA = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
615+ let dK = bP(bJ, aS, dc)
614616 let dT = valueOrElse(getInteger(this, dK), 0)
615- let dx = dc(cS, aS, cN)
617+ let dx = bM(bJ, aS, dc)
616618 let dU = valueOrElse(getInteger(this, dx), 0)
617619 let dO = (height - dN)
618620 let dB = (height - dA)
625627
626628
627629 func dX () = {
628- let dY = n(bD, ah())
629- let dZ = getInteger(bD, ak())
630+ let dY = n(bT, ah())
631+ let dZ = getInteger(bT, ak())
630632 let ea = getInteger(this, al())
631- let eb = n(bD, an())
632- let cs = if ((height > eb))
633+ let eb = n(bT, an())
634+ let cH = if ((height > eb))
633635 then eb
634636 else height
635637 let ec = {
637639 if ($isInstanceOf(r, "Int"))
638640 then {
639641 let ed = r
640- max([(cs - ed), 0])
642+ max([(cH - ed), 0])
641643 }
642644 else if ($isInstanceOf(r, "Unit"))
643645 then 0
644646 else throw("Match error")
645647 }
646- let ee = ((dY * (bJ - 1)) / bJ)
648+ let ee = ((dY * (bZ - 1)) / bZ)
647649 let ef = valueOrElse(ea, 0)
648650 let eg = ((ee * ec) + ef)
649651 $Tuple2([IntegerEntry(al(), eg), IntegerEntry(ak(), height)], eg)
650652 }
651653
652654
653-func eh (cS,dh,ei) = {
654- let ej = getString(this, aR(dh))
655+func eh (bJ,bR,ei) = {
656+ let ej = getString(this, aR(bR))
655657 if ((ej == unit))
656658 then $Tuple3(0, nil, "userRecord::is::empty")
657659 else {
658660 let ek = split(value(ej), a)
659661 let el = ek[aL]
660662 let em = "empty"
661- let en = if ((cS != em))
663+ let en = if ((bJ != em))
662664 then {
663- let eo = valueOrErrorMessage(getString(bC, N(cS)), ("unsupported lp asset " + cS))
664- getIntegerValue(bC, R(eo))
665+ let eo = valueOrErrorMessage(getString(bS, N(bJ)), ("unsupported lp asset " + bJ))
666+ getIntegerValue(bS, R(eo))
665667 }
666668 else if (ei)
667669 then 0
668- else throw(("not readonly mode: unsupported lp asset " + cS))
669- let ep = bu(el, cS)
670+ else throw(("not readonly mode: unsupported lp asset " + bJ))
671+ let ep = bu(el, bJ)
670672 let eq = bt(el)
671673 let er = valueOrElse(getInteger(this, ep), k(this, eq))
672674 let eg = dX()._2
674676 if ((0 > es))
675677 then throw("wrong calculations")
676678 else {
677- let et = dR(cS, dh)
679+ let et = dR(bJ, bR)
678680 let eu = et._1
679681 let ev = et._2
680682 let ew = et._3
700702 if ((size(aI.payments) != 1))
701703 then throw("invalid payment - exact one payment must be attached")
702704 else {
703- let cE = aI.payments[0]
704- let eE = cE.amount
705- if ((az != value(cE.assetId)))
705+ let cT = aI.payments[0]
706+ let eE = cT.amount
707+ if ((az != value(cT.assetId)))
706708 then throw((("invalid asset is in payment - " + eD) + " is expected"))
707709 else {
708710 let eF = be()
709- let dh = toString(aI.caller)
710- let eG = isDefined(getString(bf(dh)))
711+ let bR = toString(aI.caller)
712+ let eG = isDefined(getString(bf(bR)))
711713 let el = if (eG)
712- then value(getString(bf(dh)))
714+ then value(getString(bf(bR)))
713715 else toString(n(this, eF))
714716 let aV = parseIntValue(el)
715- let bX = height
716- let cw = bi(el)
717- let cx = bj(el)
718- let cv = bh(el)
717+ let cm = height
718+ let cL = bi(el)
719+ let cM = bj(el)
720+ let cK = bh(el)
719721 if (if ((aA > eE))
720- then (aI.caller != bG)
722+ then (aI.caller != bW)
721723 else false)
722724 then throw(("amount is less then minLockAmount=" + toString(aA)))
723725 else if ((aB > aY))
725727 else if ((aY > aC))
726728 then throw(("passed duration is greater then maxLockDuration=" + toString(aC)))
727729 else if (if (eG)
728- then ((n(this, cw) + n(this, cx)) >= bX)
730+ then ((n(this, cL) + n(this, cM)) >= cm)
729731 else false)
730732 then throw("there is an active lock - consider to use increaseLock")
731- else if ((k(this, cv) > 0))
732- then throw(("there are locked WXs - consider to use increaseLock " + cv))
733+ else if ((k(this, cK) > 0))
734+ then throw(("there are locked WXs - consider to use increaseLock " + cK))
733735 else {
734736 let eH = fraction(aY, c, aC)
735737 let eI = fraction(eE, eH, c)
736- let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, bX, aY], nil))
737- let bY = t(eJ[0])
738- let bZ = t(eJ[1])
738+ let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, cm, aY], nil))
739+ let cn = t(eJ[0])
740+ let co = t(eJ[1])
739741 let bn = toString(t(eJ[2]))
740- let bR = bL(false)
742+ let cg = cb(false)
741743 let eq = bt(el)
742744 let eg = dX()._2
743745 let eK = if (eG)
744746 then nil
745- else [IntegerEntry(eF, (aV + 1)), StringEntry(bf(dh), el), StringEntry(bg(el), dh)]
746- $Tuple2(((((eK ++ cu(dh, el, eE, bX, aY, bY, bZ, bn)) ++ cc(eE, aY, 1, if (eG)
747+ else [IntegerEntry(eF, (aV + 1)), StringEntry(bf(bR), el), StringEntry(bg(el), bR)]
748+ $Tuple2(((((eK ++ cJ(bR, el, eE, cm, aY, cn, co, bn)) ++ cr(eE, aY, 1, if (eG)
747749 then 0
748- else 1)) :+ bU("lock", dh, eE, bX, aY, bY, bZ, aI)) ++ [IntegerEntry(eq, eg), IntegerEntry(bA(), (bR + eI))]), eI)
750+ else 1)) :+ cj("lock", bR, eE, cm, aY, cn, co, aI)) ++ [IntegerEntry(eq, eg), IntegerEntry(bA(), (cg + eI))]), eI)
749751 }
750752 }
751753 }
756758 func constructor (eL,eM,aA,eN,eO,ax) = {
757759 let eP = aH(aI)
758760 if ((eP == eP))
759- then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eM, aA, eN, eO, ax)), StringEntry(A(), eL)] ++ cc(0, 0, 0, 0))
761+ then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eM, aA, eN, eO, ax)), StringEntry(A(), eL)] ++ cr(0, 0, 0, 0))
760762 else throw("Strict value is not equal to itself.")
761763 }
762764
805807 let az = fromBase58String(eD)
806808 let aB = parseIntValue(eC[as])
807809 let aC = parseIntValue(eC[at])
808- let eE = cC(aI, az)
809- let dh = toString(aI.caller)
810- let ek = aT(dh)
810+ let eE = cR(aI, az)
811+ let bR = toString(aI.caller)
812+ let ek = aT(bR)
811813 let el = ek[aL]
812814 let eZ = parseIntValue(ek[aM])
813- let bX = parseIntValue(ek[aN])
815+ let cm = parseIntValue(ek[aN])
814816 let fa = parseIntValue(ek[aO])
815- let fb = (bX + fa)
817+ let fb = (cm + fa)
816818 let fc = max([(fb - height), 0])
817819 let fd = (eZ + eE)
818820 let fe = (fc + eY)
830832 then {
831833 let ff = height
832834 let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, ff, fe], nil))
833- let bY = t(eJ[0])
834- let bZ = t(eJ[1])
835+ let cn = t(eJ[0])
836+ let co = t(eJ[1])
835837 let bn = toString(t(eJ[2]))
836- let fg = cK(dh)
838+ let fg = cZ(bR)
837839 let fh = (eI - fg)
838840 if ((0 > fh))
839841 then throw(("gwxDiff is less then 0: " + toString(fh)))
840842 else {
841- let bR = bL(false)
842- let fi = bL(true)
843- (((cu(dh, el, fd, ff, fe, bY, bZ, bn) ++ cc(eE, eY, 0, 0)) :+ bU("lock", dh, eE, bX, fe, bY, bZ, aI)) ++ [IntegerEntry(bA(), (bR + fh))])
843+ let cg = cb(false)
844+ let fi = cb(true)
845+ (((cJ(bR, el, fd, ff, fe, cn, co, bn) ++ cr(eE, eY, 0, 0)) :+ cj("lock", bR, eE, cm, fe, cn, co, aI)) ++ [IntegerEntry(bA(), (cg + fh))])
844846 }
845847 }
846848 else throw("Strict value is not equal to itself.")
850852
851853
852854 @Callable(aI)
853-func claimWxBoost (cS,dh) = if ((bE != aI.caller))
855+func claimWxBoost (bJ,bR) = if ((bU != aI.caller))
854856 then throw("permissions denied")
855857 else {
856- let fj = eh(cS, dh, false)
858+ let fj = eh(bJ, bR, false)
857859 let fk = fj._1
858860 let ez = fj._2
859861 let eA = fj._3
863865
864866
865867 @Callable(aI)
866-func claimWxBoostREADONLY (cS,dh) = {
867- let fl = eh(cS, dh, true)
868+func claimWxBoostREADONLY (bJ,bR) = {
869+ let fl = eh(bJ, bR, true)
868870 let fk = fl._1
869871 let ez = fl._2
870872 let eA = fl._3
878880 let ek = aT(aS)
879881 let el = ek[aL]
880882 let eZ = parseIntValue(ek[aM])
881- let bX = parseIntValue(ek[aN])
883+ let cm = parseIntValue(ek[aN])
882884 let fa = parseIntValue(ek[aO])
883- let fb = (bX + fa)
885+ let fb = (cm + fa)
884886 let eC = aw()
885887 let az = fromBase58String(eC[aq])
886888 if ((fb >= height))
889891 then throw("nothing to unlock")
890892 else {
891893 let bn = valueOrElse(getInteger(ax, ao()), 0)
892- (((cu(aS, el, 0, bX, fa, 0, 0, toString(bn)) ++ cc(-(eZ), 0, 0, -1)) :+ bU("unlock", aS, eZ, bX, fa, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), eZ, az))
894+ (((cJ(aS, el, 0, cm, fa, 0, 0, toString(bn)) ++ cr(-(eZ), 0, 0, -1)) :+ cj("unlock", aS, eZ, cm, fa, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), eZ, az))
893895 }
894896 }
895897
897899
898900 @Callable(aI)
899901 func gwxUserInfoREADONLY (aS) = {
900- let bc = cK(aS)
902+ let bc = cZ(aS)
901903 $Tuple2(nil, [bc])
902904 }
903905
904906
905907
906908 @Callable(aI)
907-func userMaxDurationREADONLY (dh) = {
909+func userMaxDurationREADONLY (bR) = {
908910 let eC = aw()
909911 let aC = parseIntValue(eC[at])
910- let ej = getString(this, aR(dh))
912+ let ej = getString(this, aR(bR))
911913 if ((ej == unit))
912914 then $Tuple2(nil, $Tuple2("lock", aC))
913915 else {
914916 let ek = split(value(ej), a)
915- let bX = parseIntValue(ek[aN])
917+ let cm = parseIntValue(ek[aN])
916918 let fa = parseIntValue(ek[aO])
917- let fb = (bX + fa)
919+ let fb = (cm + fa)
918920 let fc = max([(fb - height), 0])
919921 let fm = (aC - fc)
920922 $Tuple2(nil, $Tuple2("increaseLock", fm))
924926
925927
926928 @Callable(aI)
927-func getUserGwxAmountAtHeightREADONLY (aS,cG) = {
928- let bc = cF(aS, cG)
929+func getUserGwxAmountAtHeightREADONLY (aS,cV) = {
930+ let bc = cU(aS, cV)
929931 $Tuple2(nil, bc)
930932 }
931933
932934
933935
934936 @Callable(aI)
935-func getTotalCachedGwxREADONLY () = $Tuple2(nil, bL(true))
937+func getTotalCachedGwxREADONLY () = $Tuple2(nil, cb(true))
936938
937939
938940
939941 @Callable(aI)
940942 func onBoostEmissionUpdate () = {
941- let eP = if ((aI.caller == bD))
943+ let eP = if ((aI.caller == bT))
942944 then true
943945 else aH(aI)
944946 if ((eP == eP))
949951
950952
951953 @Callable(aI)
952-func onStakedVoteUpdate (cS,dh,dE) = {
953- let eP = if ((aI.caller == bE))
954+func onStakedVoteUpdate (bJ,bR,dE) = {
955+ let eP = if ((aI.caller == bU))
954956 then true
955957 else aH(aI)
956958 if ((eP == eP))
957959 then {
958- let dG = dD(cS, dh, dE)
960+ let dG = dD(bJ, bR, dE)
959961 $Tuple2(dG, unit)
960962 }
961963 else throw("Strict value is not equal to itself.")
964966
965967
966968 @Callable(aI)
967-func getVotingResultStakedREADONLY (cS) = $Tuple2(nil, dp(cS))
969+func getVotingResultStakedREADONLY (bJ) = $Tuple2(nil, dp(bJ))
968970
969971
970972
971973 @Callable(aI)
972-func getUserVoteFinalizedREADONLY (cS,dh) = $Tuple2(nil, di(cS, dh))
974+func getUserVoteFinalizedREADONLY (bJ,bR) = $Tuple2(nil, di(bJ, bR))
973975
974976
975977
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 func e (f) = makeString(["boosting.ride:", f], " ")
1313
1414
1515 func g (f) = throw(e(f))
1616
1717
1818 func h (i,j) = valueOrErrorMessage(getString(i, j), (("mandatory this." + j) + " is not defined"))
1919
2020
2121 func k (i,j) = valueOrElse(getInteger(i, j), 0)
2222
2323
2424 func l (i,j,m) = valueOrElse(getInteger(i, j), m)
2525
2626
2727 func n (i,j) = valueOrErrorMessage(getInteger(i, j), (("mandatory this." + j) + " is not defined"))
2828
2929
3030 func o (p) = if ((0 > p))
3131 then -(p)
3232 else p
3333
3434
3535 func q (p) = {
3636 let r = p
3737 if ($isInstanceOf(r, "List[Any]"))
3838 then {
3939 let s = r
4040 s
4141 }
4242 else throw("fail to cast into List[Any]")
4343 }
4444
4545
4646 func t (p) = {
4747 let r = p
4848 if ($isInstanceOf(r, "Int"))
4949 then {
5050 let u = r
5151 u
5252 }
5353 else throw("fail to cast into Int")
5454 }
5555
5656
5757 func v () = makeString(["%s%s", "config", "referralsContractAddress"], a)
5858
5959
6060 let w = addressFromStringValue(h(this, v()))
6161
6262 let x = makeString(["%s%s", "referral", "programName"], a)
6363
6464 let y = "wxlock"
6565
6666 let z = valueOrElse(getString(this, x), y)
6767
6868 func A () = "%s%s__config__factoryAddress"
6969
7070
7171 let B = 1
7272
7373 let C = 2
7474
7575 let D = 3
7676
7777 let E = 4
7878
7979 let F = 5
8080
8181 let G = 6
8282
8383 let H = 7
8484
8585 let I = 8
8686
8787 let J = 9
8888
8989 let K = 10
9090
9191 let L = 11
9292
9393 func M () = "%s__factoryConfig"
9494
9595
9696 func N (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
9797
9898
9999 func P () = "%s__lpTokensList"
100100
101101
102102 func Q (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
103103
104104
105105 func R (S) = makeString(["%s%s", "poolWeight", S], a)
106106
107107
108108 func T (U,V) = ((("%s%s__poolWeight__" + U) + "__") + toString(V))
109109
110110
111111 func W () = addressFromStringValue(h(this, A()))
112112
113113
114114 func X () = split(valueOrElse(getString(W(), P()), ""), a)
115115
116116
117117 func Y (Z) = split(h(Z, M()), a)
118118
119119
120120 func aa (ab) = addressFromStringValue(ab[C])
121121
122122
123123 func ac (ab) = addressFromStringValue(ab[F])
124124
125125
126126 func ad (ab) = addressFromStringValue(ab[B])
127127
128128
129129 func ae (ab) = addressFromStringValue(ab[K])
130130
131131
132132 func af () = "%s__managerPublicKey"
133133
134134
135135 func ag () = "%s__pendingManagerPublicKey"
136136
137137
138138 func ah () = "%s%s__ratePerBlock__current"
139139
140140
141141 func ai () = "%s%s__ratePerBlockMax__current"
142142
143143
144144 func aj () = "%s%s__emission__startBlock"
145145
146146
147147 func ak () = "%s%s__boostingV2__startBlock"
148148
149149
150150 func al () = "%s%s__boostingV2__integral"
151151
152152
153153 func am () = "%s%s__emission__duration"
154154
155155
156156 func an () = "%s%s__emission__endBlock"
157157
158158
159159 func ao () = "%s__nextPeriod"
160160
161161
162162 func ap () = "%s%s__gwxRewardEmissionPart__startHeight"
163163
164164
165165 let aq = 1
166166
167167 let ar = 2
168168
169169 let as = 3
170170
171171 let at = 4
172172
173173 let au = 5
174174
175175 func av () = "%s__config"
176176
177177
178178 func aw () = split(h(this, av()), a)
179179
180180
181181 let ax = addressFromStringValue(aw()[au])
182182
183183 func ay (az,aA,aB,aC,ax) = makeString(["%s%d%d%d", az, aA, aB, aC, ax], a)
184184
185185
186186 func aD (az,aA,aB,aC,ax) = ay(az, toString(aA), toString(aB), toString(aC), ax)
187187
188188
189189 func aE () = {
190190 let r = getString(af())
191191 if ($isInstanceOf(r, "String"))
192192 then {
193193 let aF = r
194194 fromBase58String(aF)
195195 }
196196 else if ($isInstanceOf(r, "Unit"))
197197 then unit
198198 else throw("Match error")
199199 }
200200
201201
202202 func aG () = {
203203 let r = getString(ag())
204204 if ($isInstanceOf(r, "String"))
205205 then {
206206 let aF = r
207207 fromBase58String(aF)
208208 }
209209 else if ($isInstanceOf(r, "Unit"))
210210 then unit
211211 else throw("Match error")
212212 }
213213
214214
215215 func aH (aI) = {
216216 let aJ = throw("Permission denied")
217217 let r = aE()
218218 if ($isInstanceOf(r, "ByteVector"))
219219 then {
220220 let aK = r
221221 if ((aI.callerPublicKey == aK))
222222 then true
223223 else aJ
224224 }
225225 else if ($isInstanceOf(r, "Unit"))
226226 then if ((aI.caller == this))
227227 then true
228228 else aJ
229229 else throw("Match error")
230230 }
231231
232232
233233 let aL = 1
234234
235235 let aM = 2
236236
237237 let aN = 3
238238
239239 let aO = 4
240240
241241 let aP = 5
242242
243243 let aQ = 6
244244
245245 func aR (aS) = makeString(["%s%s__lock", aS], a)
246246
247247
248248 func aT (aS) = split(h(this, aR(aS)), a)
249249
250250
251251 func aU (aV,aW,aX,aY,aZ,ba,bb,bc) = makeString(["%d%d%d%d%d%d%d%d", aV, aW, aX, aY, aZ, ba, bb, bc], a)
252252
253253
254254 func bd (aV,aW,aX,aY,aZ,ba,bc) = aU(aV, toString(aW), toString(aX), toString(aY), toString(aZ), toString(ba), toString(lastBlock.timestamp), toString(bc))
255255
256256
257257 func be () = "%s__nextUserNum"
258258
259259
260260 func bf (aS) = makeString(["%s%s%s__mapping__user2num", aS], a)
261261
262262
263263 func bg (V) = makeString(["%s%s%s__mapping__num2user", V], a)
264264
265265
266266 func bh (aV) = makeString(["%s%d%s__paramByUserNum", aV, "amount"], a)
267267
268268
269269 func bi (aV) = makeString(["%s%d%s__paramByUserNum", aV, "start"], a)
270270
271271
272272 func bj (aV) = makeString(["%s%d%s__paramByUserNum", aV, "duration"], a)
273273
274274
275275 func bk (aV) = makeString(["%s%d%s__paramByUserNum", aV, "k"], a)
276276
277277
278278 func bl (aV) = makeString(["%s%d%s__paramByUserNum", aV, "b"], a)
279279
280280
281281 func bm (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "k", bn], a)
282282
283283
284284 func bo (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "b", bn], a)
285285
286286
287287 func bp () = "%s%s__stats__activeTotalLocked"
288288
289289
290290 func bq () = "%s%s__stats__locksDurationSumInBlocks"
291291
292292
293293 func br () = "%s%s__stats__locksCount"
294294
295295
296296 func bs () = "%s%s__stats__activeUsersCount"
297297
298298
299299 func bt (aV) = makeString(["%s%d__userBoostEmissionLastIntV2", aV], a)
300300
301301
302302 func bu (aV,bv) = makeString(["%s%d__userBoostEmissionLastIntV2", aV, bv], a)
303303
304304
305305 func bw (aV) = makeString(["%s%d__maxBoostInt", aV], a)
306306
307307
308308 func bx () = "%s%s__maxBoostInt__total"
309309
310310
311311 func by (aV) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aV], a)
312312
313313
314314 func bz (aV) = makeString(["%s%d__userBoostClaimed", aV], a)
315315
316316
317317 func bA () = "%s%s__gwxCached__total"
318318
319319
320320 func bB () = "%s__gwxCachedTotalCorrective"
321321
322322
323-let bC = W()
323+func bC (bD,bE,i,bF) = makeString(["%s%s%s%s%d", "vote", bD, bE, toString(i), toString(bF)], a)
324324
325-let ab = Y(bC)
326325
327-let bD = ac(ab)
326+func bG (bF) = makeString(["%s%d", "startHeight", toString(bF)], a)
328327
329-let bE = ad(ab)
330328
331-let bF = ae(ab)
329+func bH () = makeString(["%s", "currentEpochUi"], a)
332330
333-let bG = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), e("lp_staking_pools contract address is undefined"))), e("invalid lp_staking_pools contract address"))
334331
335-let bH = makeString(["%s", "votingEmissionContract"], a)
332+func bI (bJ,bF) = makeString(["%s%s%d", "votingResultStaked", bJ, toString(bF)], a)
336333
337-let bI = addressFromStringValue(getStringValue(bC, bH))
338334
339-let bJ = {
340- let bK = invoke(bD, "getBoostCoeffREADONLY", nil, nil)
341- if ($isInstanceOf(bK, "Int"))
342- then bK
343- else throw(($getType(bK) + " couldn't be cast to Int"))
335+func bK (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegral", bJ, toString(bF)], a)
336+
337+
338+func bL (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bJ, toString(bF)], a)
339+
340+
341+func bM (bJ,i,bF) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bJ, toString(i), toString(bF)], a)
342+
343+
344+func bN (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegral", bJ, toString(i), toString(bF)], a)
345+
346+
347+func bO (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bJ, toString(i), toString(bF)], a)
348+
349+
350+func bP (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bJ, toString(i), toString(bF)], a)
351+
352+
353+func bQ (bR,bJ) = makeString(["%s%s%s", "staked", bR, bJ], a)
354+
355+
356+let bS = W()
357+
358+let ab = Y(bS)
359+
360+let bT = ac(ab)
361+
362+let bU = ad(ab)
363+
364+let bV = ae(ab)
365+
366+let bW = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), e("lp_staking_pools contract address is undefined"))), e("invalid lp_staking_pools contract address"))
367+
368+let bX = makeString(["%s", "votingEmissionContract"], a)
369+
370+let bY = addressFromStringValue(getStringValue(bS, bX))
371+
372+let bZ = {
373+ let ca = invoke(bT, "getBoostCoeffREADONLY", nil, nil)
374+ if ($isInstanceOf(ca, "Int"))
375+ then ca
376+ else throw(($getType(ca) + " couldn't be cast to Int"))
344377 }
345378
346-func bL (bM) = {
347- let bN = makeString(["%s", "currentEpochUi"], a)
348- let bO = getIntegerValue(bI, bN)
349- let bP = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
350- let bQ = getInteger(this, bP)
351- let bR = valueOrElse(getInteger(this, bA()), 0)
352- let bS = if (isDefined(bQ))
353- then (bO >= value(bQ))
379+func cb (cc) = {
380+ let cd = getIntegerValue(bY, bH())
381+ let ce = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
382+ let cf = getInteger(this, ce)
383+ let cg = valueOrElse(getInteger(this, bA()), 0)
384+ let ch = if (isDefined(cf))
385+ then (cd >= value(cf))
354386 else false
355- let bT = if (if (bS)
356- then bM
387+ let ci = if (if (ch)
388+ then cc
357389 else false)
358390 then valueOrElse(getInteger(this, bB()), 0)
359391 else 0
360- max([0, (bR + bT)])
392+ max([0, (cg + ci)])
361393 }
362394
363395
364-func bU (bV,bW,aW,bX,aY,bY,bZ,aI) = {
365- let ca = makeString(["%s%s%s%s__history", bV, bW, toBase58String(aI.transactionId)], a)
366- let cb = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aW), toString(bX), toString(aY), toString(bY), toString(bZ)], a)
367- StringEntry(ca, cb)
396+func cj (ck,cl,aW,cm,aY,cn,co,aI) = {
397+ let cp = makeString(["%s%s%s%s__history", ck, cl, toBase58String(aI.transactionId)], a)
398+ let cq = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aW), toString(cm), toString(aY), toString(cn), toString(co)], a)
399+ StringEntry(cp, cq)
368400 }
369401
370402
371-func cc (cd,ce,cf,cg) = {
372- let ch = bq()
373- let ci = br()
374- let cj = bs()
375- let ck = bp()
376- let cl = k(this, ch)
377- let cm = k(this, ci)
378- let cn = k(this, cj)
379- let co = k(this, ck)
380-[IntegerEntry(ch, (cl + ce)), IntegerEntry(ci, (cm + cf)), IntegerEntry(cj, (cn + cg)), IntegerEntry(ck, (co + cd))]
403+func cr (cs,ct,cu,cv) = {
404+ let cw = bq()
405+ let cx = br()
406+ let cy = bs()
407+ let cz = bp()
408+ let cA = k(this, cw)
409+ let cB = k(this, cx)
410+ let cC = k(this, cy)
411+ let cD = k(this, cz)
412+[IntegerEntry(cw, (cA + ct)), IntegerEntry(cx, (cB + cu)), IntegerEntry(cy, (cC + cv)), IntegerEntry(cz, (cD + cs))]
381413 }
382414
383415
384-func cp (cq,cr,cs) = {
385- let ct = 1000
386- (((cq * cs) + cr) / ct)
416+func cE (cF,cG,cH) = {
417+ let cI = 1000
418+ (((cF * cH) + cG) / cI)
387419 }
388420
389421
390-func cu (aS,aV,aW,aX,aY,bY,bZ,bn) = {
391- let cv = bh(aV)
392- let cw = bi(aV)
393- let cx = bj(aV)
394- let cy = bk(aV)
395- let cz = bl(aV)
396- let cA = bm(aV, bn)
397- let cB = bo(aV, bn)
398- let bc = cp(bY, bZ, height)
399-[IntegerEntry(cv, aW), IntegerEntry(cw, aX), IntegerEntry(cx, aY), IntegerEntry(cy, bY), IntegerEntry(cz, bZ), IntegerEntry(cA, bY), IntegerEntry(cB, bZ), StringEntry(aR(aS), bd(aV, aW, aX, aY, bY, bZ, bc))]
422+func cJ (aS,aV,aW,aX,aY,cn,co,bn) = {
423+ let cK = bh(aV)
424+ let cL = bi(aV)
425+ let cM = bj(aV)
426+ let cN = bk(aV)
427+ let cO = bl(aV)
428+ let cP = bm(aV, bn)
429+ let cQ = bo(aV, bn)
430+ let bc = cE(cn, co, height)
431+[IntegerEntry(cK, aW), IntegerEntry(cL, aX), IntegerEntry(cM, aY), IntegerEntry(cN, cn), IntegerEntry(cO, co), IntegerEntry(cP, cn), IntegerEntry(cQ, co), StringEntry(aR(aS), bd(aV, aW, aX, aY, cn, co, bc))]
400432 }
401433
402434
403-func cC (aI,cD) = if ((size(aI.payments) > 1))
435+func cR (aI,cS) = if ((size(aI.payments) > 1))
404436 then throw("only one payment is allowed")
405437 else if ((size(aI.payments) == 0))
406438 then 0
407439 else {
408- let cE = aI.payments[0]
409- if ((value(cE.assetId) != cD))
440+ let cT = aI.payments[0]
441+ if ((value(cT.assetId) != cS))
410442 then throw("invalid asset id in payment")
411- else cE.amount
443+ else cT.amount
412444 }
413445
414446
415-func cF (aS,cG) = {
416- let cH = "empty"
417- let cI = bf(aS)
418- let aV = valueOrElse(getString(cI), cH)
419- let bY = valueOrElse(getInteger(bk(aV)), 0)
420- let bZ = valueOrElse(getInteger(bl(aV)), 0)
421- let cJ = cp(bY, bZ, cG)
422- let bc = if ((0 > cJ))
447+func cU (aS,cV) = {
448+ let cW = "empty"
449+ let cX = bf(aS)
450+ let aV = valueOrElse(getString(cX), cW)
451+ let cn = valueOrElse(getInteger(bk(aV)), 0)
452+ let co = valueOrElse(getInteger(bl(aV)), 0)
453+ let cY = cE(cn, co, cV)
454+ let bc = if ((0 > cY))
423455 then 0
424- else cJ
456+ else cY
425457 bc
426458 }
427459
428460
429-func cK (aS) = cF(aS, height)
461+func cZ (aS) = cU(aS, height)
430462
431463
432-func cL () = {
433- let bN = makeString(["%s", "currentEpochUi"], a)
434- let cM = {
435- let bO = value(getInteger(bI, bN))
436- let cN = (bO - 1)
437- if ((0 > cN))
464+func da () = {
465+ let db = {
466+ let cd = value(getInteger(bY, bH()))
467+ let dc = (cd - 1)
468+ if ((0 > dc))
438469 then g("invalid epoch")
439- else $Tuple2(bO, cN)
470+ else $Tuple2(cd, dc)
440471 }
441- let bO = cM._1
442- let cN = cM._2
443- func cO (cP) = makeString(["%s%d", "startHeight", toString(cP)], a)
444-
445- let cQ = value(getInteger(bI, cO(bO)))
446- $Tuple2(cN, cQ)
472+ let cd = db._1
473+ let dc = db._2
474+ let dd = value(getInteger(bY, bG(cd)))
475+ $Tuple2(dc, dd)
447476 }
448477
449478
450-func cR (cS) = {
451- let cT = 4
452- let cU = 5
453- let cV = {
454- let bK = invoke(bC, "getPoolConfigByLpAssetId", [cS], nil)
455- if ($isInstanceOf(bK, "List[Any]"))
456- then bK
457- else throw(($getType(bK) + " couldn't be cast to List[Any]"))
479+func de (bJ) = {
480+ let df = 4
481+ let dg = 5
482+ let dh = {
483+ let ca = invoke(bS, "getPoolConfigByLpAssetIdREADONLY", [bJ], nil)
484+ if ($isInstanceOf(ca, "List[Any]"))
485+ then ca
486+ else throw(($getType(ca) + " couldn't be cast to List[Any]"))
458487 }
459- let cW = {
460- let bK = cV[cT]
461- if ($isInstanceOf(bK, "String"))
462- then bK
463- else throw(($getType(bK) + " couldn't be cast to String"))
488+ let bD = {
489+ let ca = dh[df]
490+ if ($isInstanceOf(ca, "String"))
491+ then ca
492+ else throw(($getType(ca) + " couldn't be cast to String"))
464493 }
465- let cX = {
466- let bK = cV[cU]
467- if ($isInstanceOf(bK, "String"))
468- then bK
469- else throw(($getType(bK) + " couldn't be cast to String"))
494+ let bE = {
495+ let ca = dh[dg]
496+ if ($isInstanceOf(ca, "String"))
497+ then ca
498+ else throw(($getType(ca) + " couldn't be cast to String"))
470499 }
471- $Tuple2(cW, cX)
500+ $Tuple2(bD, bE)
472501 }
473502
474503
475-func cY (cW,cX,i,cP) = makeString(["%s%s%s%s%d", "vote", cW, cX, toString(i), toString(cP)], a)
476-
477-
478-func cZ (cS,cP) = makeString(["%s%s%d", "votingResultStaked", cS, toString(cP)], a)
479-
480-
481-func da (cS,cP) = makeString(["%s%s%d", "votingResultStakedIntegral", cS, toString(cP)], a)
482-
483-
484-func db (cS,cP) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", cS, toString(cP)], a)
485-
486-
487-func dc (cS,i,cP) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", cS, toString(i), toString(cP)], a)
488-
489-
490-func dd (cS,i,cP) = makeString(["%s%s%s%d", "voteStakedIntegral", cS, toString(i), toString(cP)], a)
491-
492-
493-func de (cS,i,cP) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", cS, toString(i), toString(cP)], a)
494-
495-
496-func df (cS,i,cP) = makeString(["%s%s%s%d", "voteStakedIntegralLast", cS, toString(i), toString(cP)], a)
497-
498-
499-func dg (dh,cS) = makeString(["%s%s%s", "staked", dh, cS], a)
500-
501-
502-func di (cS,dh) = {
503- let aS = addressFromStringValue(dh)
504- let dj = cL()
505- let cN = dj._1
506- let cQ = dj._2
507- let dk = cR(cS)
508- let cW = dk._1
509- let cX = dk._2
510- let dl = cY(cW, cX, aS, cN)
511- let dm = valueOrElse(getInteger(bI, dl), 0)
504+func di (bJ,bR) = {
505+ let aS = addressFromStringValue(bR)
506+ let dj = da()
507+ let dc = dj._1
508+ let dd = dj._2
509+ let dk = de(bJ)
510+ let bD = dk._1
511+ let bE = dk._2
512+ let dl = bC(bD, bE, aS, dc)
513+ let dm = valueOrElse(getInteger(bY, dl), 0)
512514 dm
513515 }
514516
515517
516-func dn (cS,dh) = {
517- let do = valueOrElse(getInteger(bE, dg(dh, cS)), 0)
518- let dm = di(cS, dh)
518+func dn (bJ,bR) = {
519+ let do = valueOrElse(getInteger(bU, bQ(bR, bJ)), 0)
520+ let dm = di(bJ, bR)
519521 if ((do == 0))
520522 then 0
521523 else dm
522524 }
523525
524526
525-func dp (cS) = {
526- let dq = cL()
527- let cN = dq._1
528- let cQ = dq._2
529- let dr = valueOrElse(getInteger(bI, cZ(cS, cN)), 0)
530- let ds = valueOrElse(getInteger(this, cZ(cS, cN)), dr)
527+func dp (bJ) = {
528+ let dq = da()
529+ let dc = dq._1
530+ let dd = dq._2
531+ let dr = valueOrElse(getInteger(bY, bI(bJ, dc)), 0)
532+ let ds = valueOrElse(getInteger(this, bI(bJ, dc)), dr)
531533 ds
532534 }
533535
534536
535-func dt (cS,du) = {
536- let dv = cL()
537- let cN = dv._1
538- let cQ = dv._2
539- let ds = dp(cS)
537+func dt (bJ,du) = {
538+ let dv = da()
539+ let dc = dv._1
540+ let dd = dv._2
541+ let ds = dp(bJ)
540542 let dw = (ds + du)
541- let dx = da(cS, cN)
543+ let dx = bK(bJ, dc)
542544 let dy = valueOrElse(getInteger(this, dx), 0)
543- let dz = db(cS, cN)
544- let dA = valueOrElse(getInteger(this, dz), cQ)
545+ let dz = bL(bJ, dc)
546+ let dA = valueOrElse(getInteger(this, dz), dd)
545547 let dB = (height - dA)
546548 let dC = ((dB * ds) + dy)
547- $Tuple2([IntegerEntry(cZ(cS, cN), dw), IntegerEntry(dz, height), IntegerEntry(dx, dC)], dC)
549+ $Tuple2([IntegerEntry(bI(bJ, dc), dw), IntegerEntry(dz, height), IntegerEntry(dx, dC)], dC)
548550 }
549551
550552
551-func dD (cS,dh,dE) = {
552- let dF = cL()
553- let cN = dF._1
554- let cQ = dF._2
555- let aS = addressFromStringValue(dh)
556- let cT = 4
557- let cU = 5
558- let cV = {
559- let bK = invoke(bC, "getPoolConfigByLpAssetId", [cS], nil)
560- if ($isInstanceOf(bK, "List[Any]"))
561- then bK
562- else throw(($getType(bK) + " couldn't be cast to List[Any]"))
553+func dD (bJ,bR,dE) = {
554+ let dF = da()
555+ let dc = dF._1
556+ let dd = dF._2
557+ let aS = addressFromStringValue(bR)
558+ let df = 4
559+ let dg = 5
560+ let dh = {
561+ let ca = invoke(bS, "getPoolConfigByLpAssetIdREADONLY", [bJ], nil)
562+ if ($isInstanceOf(ca, "List[Any]"))
563+ then ca
564+ else throw(($getType(ca) + " couldn't be cast to List[Any]"))
563565 }
564- let cW = {
565- let bK = cV[cT]
566- if ($isInstanceOf(bK, "String"))
567- then bK
568- else throw(($getType(bK) + " couldn't be cast to String"))
566+ let bD = {
567+ let ca = dh[df]
568+ if ($isInstanceOf(ca, "String"))
569+ then ca
570+ else throw(($getType(ca) + " couldn't be cast to String"))
569571 }
570- let cX = {
571- let bK = cV[cU]
572- if ($isInstanceOf(bK, "String"))
573- then bK
574- else throw(($getType(bK) + " couldn't be cast to String"))
572+ let bE = {
573+ let ca = dh[dg]
574+ if ($isInstanceOf(ca, "String"))
575+ then ca
576+ else throw(($getType(ca) + " couldn't be cast to String"))
575577 }
576- let dm = valueOrElse(getInteger(bI, cY(cW, cX, aS, cN)), 0)
578+ let dm = valueOrElse(getInteger(bY, bC(bD, bE, aS, dc)), 0)
577579 let dG = if ((dm == 0))
578580 then nil
579581 else {
580582 let du = if (dE)
581583 then dm
582584 else -(dm)
583- let dH = dt(cS, du)
585+ let dH = dt(bJ, du)
584586 let dI = dH._1
585587 let dC = dH._2
586588 let dJ = if (dE)
587589 then 0
588590 else dm
589- let dK = dd(cS, aS, cN)
591+ let dK = bN(bJ, aS, dc)
590592 let dL = valueOrElse(getInteger(this, dK), 0)
591- let dM = de(cS, aS, cN)
592- let dN = valueOrElse(getInteger(this, dM), cQ)
593+ let dM = bO(bJ, aS, dc)
594+ let dN = valueOrElse(getInteger(this, dM), dd)
593595 let dO = (height - dN)
594596 let dP = ((dO * dJ) + dL)
595597 let dQ = [IntegerEntry(dM, height), IntegerEntry(dK, dP)]
596598 (dI ++ dQ)
597599 }
598600 dG
599601 }
600602
601603
602-func dR (cS,dh) = {
603- let dS = cL()
604- let cN = dS._1
605- let cQ = dS._2
606- let aS = addressFromStringValue(dh)
607- let dJ = dn(cS, dh)
608- let ds = dp(cS)
609- let dL = valueOrElse(getInteger(this, dd(cS, aS, cN)), 0)
610- let dy = valueOrElse(getInteger(this, da(cS, cN)), 0)
611- let dN = valueOrElse(getInteger(this, de(cS, aS, cN)), cQ)
612- let dA = valueOrElse(getInteger(this, db(cS, cN)), cQ)
613- let dK = df(cS, aS, cN)
604+func dR (bJ,bR) = {
605+ let dS = da()
606+ let dc = dS._1
607+ let dd = dS._2
608+ let aS = addressFromStringValue(bR)
609+ let dJ = dn(bJ, bR)
610+ let ds = dp(bJ)
611+ let dL = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
612+ let dy = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
613+ let dN = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
614+ let dA = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
615+ let dK = bP(bJ, aS, dc)
614616 let dT = valueOrElse(getInteger(this, dK), 0)
615- let dx = dc(cS, aS, cN)
617+ let dx = bM(bJ, aS, dc)
616618 let dU = valueOrElse(getInteger(this, dx), 0)
617619 let dO = (height - dN)
618620 let dB = (height - dA)
619621 let dP = ((dO * dJ) + dL)
620622 let dC = ((dB * ds) + dy)
621623 let dV = (dP - dT)
622624 let dW = (dC - dU)
623625 $Tuple3([IntegerEntry(dK, dP), IntegerEntry(dx, dC)], dV, dW)
624626 }
625627
626628
627629 func dX () = {
628- let dY = n(bD, ah())
629- let dZ = getInteger(bD, ak())
630+ let dY = n(bT, ah())
631+ let dZ = getInteger(bT, ak())
630632 let ea = getInteger(this, al())
631- let eb = n(bD, an())
632- let cs = if ((height > eb))
633+ let eb = n(bT, an())
634+ let cH = if ((height > eb))
633635 then eb
634636 else height
635637 let ec = {
636638 let r = dZ
637639 if ($isInstanceOf(r, "Int"))
638640 then {
639641 let ed = r
640- max([(cs - ed), 0])
642+ max([(cH - ed), 0])
641643 }
642644 else if ($isInstanceOf(r, "Unit"))
643645 then 0
644646 else throw("Match error")
645647 }
646- let ee = ((dY * (bJ - 1)) / bJ)
648+ let ee = ((dY * (bZ - 1)) / bZ)
647649 let ef = valueOrElse(ea, 0)
648650 let eg = ((ee * ec) + ef)
649651 $Tuple2([IntegerEntry(al(), eg), IntegerEntry(ak(), height)], eg)
650652 }
651653
652654
653-func eh (cS,dh,ei) = {
654- let ej = getString(this, aR(dh))
655+func eh (bJ,bR,ei) = {
656+ let ej = getString(this, aR(bR))
655657 if ((ej == unit))
656658 then $Tuple3(0, nil, "userRecord::is::empty")
657659 else {
658660 let ek = split(value(ej), a)
659661 let el = ek[aL]
660662 let em = "empty"
661- let en = if ((cS != em))
663+ let en = if ((bJ != em))
662664 then {
663- let eo = valueOrErrorMessage(getString(bC, N(cS)), ("unsupported lp asset " + cS))
664- getIntegerValue(bC, R(eo))
665+ let eo = valueOrErrorMessage(getString(bS, N(bJ)), ("unsupported lp asset " + bJ))
666+ getIntegerValue(bS, R(eo))
665667 }
666668 else if (ei)
667669 then 0
668- else throw(("not readonly mode: unsupported lp asset " + cS))
669- let ep = bu(el, cS)
670+ else throw(("not readonly mode: unsupported lp asset " + bJ))
671+ let ep = bu(el, bJ)
670672 let eq = bt(el)
671673 let er = valueOrElse(getInteger(this, ep), k(this, eq))
672674 let eg = dX()._2
673675 let es = (eg - er)
674676 if ((0 > es))
675677 then throw("wrong calculations")
676678 else {
677- let et = dR(cS, dh)
679+ let et = dR(bJ, bR)
678680 let eu = et._1
679681 let ev = et._2
680682 let ew = et._3
681683 let ex = fraction(es, en, d)
682684 let ey = if ((ew == 0))
683685 then 0
684686 else fraction(ex, ev, ew)
685687 let ez = ([IntegerEntry(ep, eg)] ++ eu)
686688 let eA = makeString([toString(er), toString(es), toString(en), toString(ev), toString(ew)], ":")
687689 $Tuple3(ey, ez, eA)
688690 }
689691 }
690692 }
691693
692694
693695 func eB (aI,aY) = {
694696 let eC = aw()
695697 let eD = eC[aq]
696698 let az = fromBase58String(eD)
697699 let aA = parseIntValue(eC[ar])
698700 let aB = parseIntValue(eC[as])
699701 let aC = parseIntValue(eC[at])
700702 if ((size(aI.payments) != 1))
701703 then throw("invalid payment - exact one payment must be attached")
702704 else {
703- let cE = aI.payments[0]
704- let eE = cE.amount
705- if ((az != value(cE.assetId)))
705+ let cT = aI.payments[0]
706+ let eE = cT.amount
707+ if ((az != value(cT.assetId)))
706708 then throw((("invalid asset is in payment - " + eD) + " is expected"))
707709 else {
708710 let eF = be()
709- let dh = toString(aI.caller)
710- let eG = isDefined(getString(bf(dh)))
711+ let bR = toString(aI.caller)
712+ let eG = isDefined(getString(bf(bR)))
711713 let el = if (eG)
712- then value(getString(bf(dh)))
714+ then value(getString(bf(bR)))
713715 else toString(n(this, eF))
714716 let aV = parseIntValue(el)
715- let bX = height
716- let cw = bi(el)
717- let cx = bj(el)
718- let cv = bh(el)
717+ let cm = height
718+ let cL = bi(el)
719+ let cM = bj(el)
720+ let cK = bh(el)
719721 if (if ((aA > eE))
720- then (aI.caller != bG)
722+ then (aI.caller != bW)
721723 else false)
722724 then throw(("amount is less then minLockAmount=" + toString(aA)))
723725 else if ((aB > aY))
724726 then throw(("passed duration is less then minLockDuration=" + toString(aB)))
725727 else if ((aY > aC))
726728 then throw(("passed duration is greater then maxLockDuration=" + toString(aC)))
727729 else if (if (eG)
728- then ((n(this, cw) + n(this, cx)) >= bX)
730+ then ((n(this, cL) + n(this, cM)) >= cm)
729731 else false)
730732 then throw("there is an active lock - consider to use increaseLock")
731- else if ((k(this, cv) > 0))
732- then throw(("there are locked WXs - consider to use increaseLock " + cv))
733+ else if ((k(this, cK) > 0))
734+ then throw(("there are locked WXs - consider to use increaseLock " + cK))
733735 else {
734736 let eH = fraction(aY, c, aC)
735737 let eI = fraction(eE, eH, c)
736- let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, bX, aY], nil))
737- let bY = t(eJ[0])
738- let bZ = t(eJ[1])
738+ let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, cm, aY], nil))
739+ let cn = t(eJ[0])
740+ let co = t(eJ[1])
739741 let bn = toString(t(eJ[2]))
740- let bR = bL(false)
742+ let cg = cb(false)
741743 let eq = bt(el)
742744 let eg = dX()._2
743745 let eK = if (eG)
744746 then nil
745- else [IntegerEntry(eF, (aV + 1)), StringEntry(bf(dh), el), StringEntry(bg(el), dh)]
746- $Tuple2(((((eK ++ cu(dh, el, eE, bX, aY, bY, bZ, bn)) ++ cc(eE, aY, 1, if (eG)
747+ else [IntegerEntry(eF, (aV + 1)), StringEntry(bf(bR), el), StringEntry(bg(el), bR)]
748+ $Tuple2(((((eK ++ cJ(bR, el, eE, cm, aY, cn, co, bn)) ++ cr(eE, aY, 1, if (eG)
747749 then 0
748- else 1)) :+ bU("lock", dh, eE, bX, aY, bY, bZ, aI)) ++ [IntegerEntry(eq, eg), IntegerEntry(bA(), (bR + eI))]), eI)
750+ else 1)) :+ cj("lock", bR, eE, cm, aY, cn, co, aI)) ++ [IntegerEntry(eq, eg), IntegerEntry(bA(), (cg + eI))]), eI)
749751 }
750752 }
751753 }
752754 }
753755
754756
755757 @Callable(aI)
756758 func constructor (eL,eM,aA,eN,eO,ax) = {
757759 let eP = aH(aI)
758760 if ((eP == eP))
759- then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eM, aA, eN, eO, ax)), StringEntry(A(), eL)] ++ cc(0, 0, 0, 0))
761+ then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eM, aA, eN, eO, ax)), StringEntry(A(), eL)] ++ cr(0, 0, 0, 0))
760762 else throw("Strict value is not equal to itself.")
761763 }
762764
763765
764766
765767 @Callable(aI)
766768 func lockRef (aY,eQ,eR) = {
767769 let eS = eB(aI, aY)
768770 let eT = eS._1
769771 let eI = eS._2
770772 let eU = toString(aI.caller)
771773 let eV = if (if ((eQ == ""))
772774 then true
773775 else (eR == base58''))
774776 then unit
775777 else invoke(w, "createPair", [z, eQ, eU, eR], nil)
776778 if ((eV == eV))
777779 then {
778780 let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
779781 if ((eW == eW))
780782 then $Tuple2(eT, unit)
781783 else throw("Strict value is not equal to itself.")
782784 }
783785 else throw("Strict value is not equal to itself.")
784786 }
785787
786788
787789
788790 @Callable(aI)
789791 func lock (aY) = {
790792 let eX = eB(aI, aY)
791793 let eT = eX._1
792794 let eI = eX._2
793795 let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
794796 if ((eW == eW))
795797 then $Tuple2(eT, unit)
796798 else throw("Strict value is not equal to itself.")
797799 }
798800
799801
800802
801803 @Callable(aI)
802804 func increaseLock (eY) = {
803805 let eC = aw()
804806 let eD = eC[aq]
805807 let az = fromBase58String(eD)
806808 let aB = parseIntValue(eC[as])
807809 let aC = parseIntValue(eC[at])
808- let eE = cC(aI, az)
809- let dh = toString(aI.caller)
810- let ek = aT(dh)
810+ let eE = cR(aI, az)
811+ let bR = toString(aI.caller)
812+ let ek = aT(bR)
811813 let el = ek[aL]
812814 let eZ = parseIntValue(ek[aM])
813- let bX = parseIntValue(ek[aN])
815+ let cm = parseIntValue(ek[aN])
814816 let fa = parseIntValue(ek[aO])
815- let fb = (bX + fa)
817+ let fb = (cm + fa)
816818 let fc = max([(fb - height), 0])
817819 let fd = (eZ + eE)
818820 let fe = (fc + eY)
819821 if ((0 > eY))
820822 then throw("duration is less then zero")
821823 else if ((aB > fe))
822824 then throw(("lockDurationNew is less then minLockDuration=" + toString(aB)))
823825 else if ((fe > aC))
824826 then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aC)))
825827 else {
826828 let eH = fraction(fe, c, aC)
827829 let eI = fraction(fd, eH, c)
828830 let eW = invoke(ax, "updateReferralActivity", [toString(aI.caller), eI], nil)
829831 if ((eW == eW))
830832 then {
831833 let ff = height
832834 let eJ = q(invoke(ax, "calcGwxParamsREADONLY", [eI, ff, fe], nil))
833- let bY = t(eJ[0])
834- let bZ = t(eJ[1])
835+ let cn = t(eJ[0])
836+ let co = t(eJ[1])
835837 let bn = toString(t(eJ[2]))
836- let fg = cK(dh)
838+ let fg = cZ(bR)
837839 let fh = (eI - fg)
838840 if ((0 > fh))
839841 then throw(("gwxDiff is less then 0: " + toString(fh)))
840842 else {
841- let bR = bL(false)
842- let fi = bL(true)
843- (((cu(dh, el, fd, ff, fe, bY, bZ, bn) ++ cc(eE, eY, 0, 0)) :+ bU("lock", dh, eE, bX, fe, bY, bZ, aI)) ++ [IntegerEntry(bA(), (bR + fh))])
843+ let cg = cb(false)
844+ let fi = cb(true)
845+ (((cJ(bR, el, fd, ff, fe, cn, co, bn) ++ cr(eE, eY, 0, 0)) :+ cj("lock", bR, eE, cm, fe, cn, co, aI)) ++ [IntegerEntry(bA(), (cg + fh))])
844846 }
845847 }
846848 else throw("Strict value is not equal to itself.")
847849 }
848850 }
849851
850852
851853
852854 @Callable(aI)
853-func claimWxBoost (cS,dh) = if ((bE != aI.caller))
855+func claimWxBoost (bJ,bR) = if ((bU != aI.caller))
854856 then throw("permissions denied")
855857 else {
856- let fj = eh(cS, dh, false)
858+ let fj = eh(bJ, bR, false)
857859 let fk = fj._1
858860 let ez = fj._2
859861 let eA = fj._3
860862 $Tuple2(ez, [fk])
861863 }
862864
863865
864866
865867 @Callable(aI)
866-func claimWxBoostREADONLY (cS,dh) = {
867- let fl = eh(cS, dh, true)
868+func claimWxBoostREADONLY (bJ,bR) = {
869+ let fl = eh(bJ, bR, true)
868870 let fk = fl._1
869871 let ez = fl._2
870872 let eA = fl._3
871873 $Tuple2(nil, [fk, eA])
872874 }
873875
874876
875877
876878 @Callable(aI)
877879 func unlock (aS) = {
878880 let ek = aT(aS)
879881 let el = ek[aL]
880882 let eZ = parseIntValue(ek[aM])
881- let bX = parseIntValue(ek[aN])
883+ let cm = parseIntValue(ek[aN])
882884 let fa = parseIntValue(ek[aO])
883- let fb = (bX + fa)
885+ let fb = (cm + fa)
884886 let eC = aw()
885887 let az = fromBase58String(eC[aq])
886888 if ((fb >= height))
887889 then throw((("wait " + toString(fb)) + " to unlock"))
888890 else if ((0 >= eZ))
889891 then throw("nothing to unlock")
890892 else {
891893 let bn = valueOrElse(getInteger(ax, ao()), 0)
892- (((cu(aS, el, 0, bX, fa, 0, 0, toString(bn)) ++ cc(-(eZ), 0, 0, -1)) :+ bU("unlock", aS, eZ, bX, fa, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), eZ, az))
894+ (((cJ(aS, el, 0, cm, fa, 0, 0, toString(bn)) ++ cr(-(eZ), 0, 0, -1)) :+ cj("unlock", aS, eZ, cm, fa, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), eZ, az))
893895 }
894896 }
895897
896898
897899
898900 @Callable(aI)
899901 func gwxUserInfoREADONLY (aS) = {
900- let bc = cK(aS)
902+ let bc = cZ(aS)
901903 $Tuple2(nil, [bc])
902904 }
903905
904906
905907
906908 @Callable(aI)
907-func userMaxDurationREADONLY (dh) = {
909+func userMaxDurationREADONLY (bR) = {
908910 let eC = aw()
909911 let aC = parseIntValue(eC[at])
910- let ej = getString(this, aR(dh))
912+ let ej = getString(this, aR(bR))
911913 if ((ej == unit))
912914 then $Tuple2(nil, $Tuple2("lock", aC))
913915 else {
914916 let ek = split(value(ej), a)
915- let bX = parseIntValue(ek[aN])
917+ let cm = parseIntValue(ek[aN])
916918 let fa = parseIntValue(ek[aO])
917- let fb = (bX + fa)
919+ let fb = (cm + fa)
918920 let fc = max([(fb - height), 0])
919921 let fm = (aC - fc)
920922 $Tuple2(nil, $Tuple2("increaseLock", fm))
921923 }
922924 }
923925
924926
925927
926928 @Callable(aI)
927-func getUserGwxAmountAtHeightREADONLY (aS,cG) = {
928- let bc = cF(aS, cG)
929+func getUserGwxAmountAtHeightREADONLY (aS,cV) = {
930+ let bc = cU(aS, cV)
929931 $Tuple2(nil, bc)
930932 }
931933
932934
933935
934936 @Callable(aI)
935-func getTotalCachedGwxREADONLY () = $Tuple2(nil, bL(true))
937+func getTotalCachedGwxREADONLY () = $Tuple2(nil, cb(true))
936938
937939
938940
939941 @Callable(aI)
940942 func onBoostEmissionUpdate () = {
941- let eP = if ((aI.caller == bD))
943+ let eP = if ((aI.caller == bT))
942944 then true
943945 else aH(aI)
944946 if ((eP == eP))
945947 then dX()
946948 else throw("Strict value is not equal to itself.")
947949 }
948950
949951
950952
951953 @Callable(aI)
952-func onStakedVoteUpdate (cS,dh,dE) = {
953- let eP = if ((aI.caller == bE))
954+func onStakedVoteUpdate (bJ,bR,dE) = {
955+ let eP = if ((aI.caller == bU))
954956 then true
955957 else aH(aI)
956958 if ((eP == eP))
957959 then {
958- let dG = dD(cS, dh, dE)
960+ let dG = dD(bJ, bR, dE)
959961 $Tuple2(dG, unit)
960962 }
961963 else throw("Strict value is not equal to itself.")
962964 }
963965
964966
965967
966968 @Callable(aI)
967-func getVotingResultStakedREADONLY (cS) = $Tuple2(nil, dp(cS))
969+func getVotingResultStakedREADONLY (bJ) = $Tuple2(nil, dp(bJ))
968970
969971
970972
971973 @Callable(aI)
972-func getUserVoteFinalizedREADONLY (cS,dh) = $Tuple2(nil, di(cS, dh))
974+func getUserVoteFinalizedREADONLY (bJ,bR) = $Tuple2(nil, di(bJ, bR))
973975
974976
975977
976978 @Callable(aI)
977979 func setManager (fn) = {
978980 let eP = aH(aI)
979981 if ((eP == eP))
980982 then {
981983 let fo = fromBase58String(fn)
982984 if ((fo == fo))
983985 then [StringEntry(ag(), fn)]
984986 else throw("Strict value is not equal to itself.")
985987 }
986988 else throw("Strict value is not equal to itself.")
987989 }
988990
989991
990992
991993 @Callable(aI)
992994 func confirmManager () = {
993995 let fp = aG()
994996 let fq = if (isDefined(fp))
995997 then true
996998 else throw("No pending manager")
997999 if ((fq == fq))
9981000 then {
9991001 let fr = if ((aI.callerPublicKey == value(fp)))
10001002 then true
10011003 else throw("You are not pending manager")
10021004 if ((fr == fr))
10031005 then [StringEntry(af(), toBase58String(value(fp))), DeleteEntry(ag())]
10041006 else throw("Strict value is not equal to itself.")
10051007 }
10061008 else throw("Strict value is not equal to itself.")
10071009 }
10081010
10091011
10101012 @Verifier(fs)
10111013 func ft () = {
10121014 let fu = {
10131015 let r = aE()
10141016 if ($isInstanceOf(r, "ByteVector"))
10151017 then {
10161018 let aK = r
10171019 aK
10181020 }
10191021 else if ($isInstanceOf(r, "Unit"))
10201022 then fs.senderPublicKey
10211023 else throw("Match error")
10221024 }
10231025 sigVerify(fs.bodyBytes, fs.proofs[0], fu)
10241026 }
10251027

github/deemru/w8io/169f3d6 
208.59 ms