tx · B3dPSHTSBhqHxBvazhqsacBKmpAh3U8YXCyXZZUojSdC

3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy:  -0.02700000 Waves

2023.03.27 17:57 [2508515] smart account 3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy > SELF 0.00000000 Waves

{ "type": 13, "id": "B3dPSHTSBhqHxBvazhqsacBKmpAh3U8YXCyXZZUojSdC", "fee": 2700000, "feeAssetId": null, "timestamp": 1679929053829, "version": 2, "chainId": 84, "sender": "3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy", "senderPublicKey": "9W33iCCNfmFxUbiC6XZcH5x7f6xfwC7Jb3BoExT5q2PV", "proofs": [ "c9angpL8YU7yAT7NeuwAazC218gQfjbbRg7U5fTUdAcuSSNBTX3yRRJmwH1DKYsp928JG8t1cVRX9iSTjjqyxHn" ], "script": "base64:BgLULwgCEggKBggIAQEBCBIFCgMBCAISAwoBARIDCgEBEgQKAggIEgQKAggIEgMKAQgSAwoBCBIDCgEIEgQKAggBEgASABIFCgMICAQSAwoBCBIDCgEIEgQKAggIEgQKAggIEgMKAQgSACIDU0VQIgZTQ0FMRTgiBU1VTFQ4Ig5QT09MV0VJR0hUTVVMVCIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIEc3RyZiIHYWRkcmVzcyIDa2V5IgNpb3oiA2lvZCIKZGVmYXVsdFZhbCIDaW9mIgNhYnMiA3ZhbCIDYWFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgJhaSIGdmFsSW50IhtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MiHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbCIWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZSIacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQiE3JlZmVycmFsUHJvZ3JhbU5hbWUiEWtleUZhY3RvcnlBZGRyZXNzIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCINa2V5RmFjdG9yeUNmZyIQa2V5RmFjdG9yeUxwTGlzdCIma2V5RmFjdG9yeUxwQXNzZXRUb1Bvb2xDb250cmFjdEFkZHJlc3MiCmxwQXNzZXRTdHIiFGtleUZhY3RvcnlQb29sV2VpZ2h0Ig9jb250cmFjdEFkZHJlc3MiG2tleUZhY3RvcnlQb29sV2VpZ2h0SGlzdG9yeSILcG9vbEFkZHJlc3MiA251bSIYcmVhZEZhY3RvcnlBZGRyZXNzT3JGYWlsIgpyZWFkTHBMaXN0IhRyZWFkRmFjdG9yeUNmZ09yRmFpbCIHZmFjdG9yeSIYZ2V0Qm9vc3RpbmdBZGRyZXNzT3JGYWlsIgpmYWN0b3J5Q2ZnIhhnZXRFbWlzc2lvbkFkZHJlc3NPckZhaWwiF2dldFN0YWtpbmdBZGRyZXNzT3JGYWlsIhlnZXRHd3hSZXdhcmRBZGRyZXNzT3JGYWlsIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIea2V5RW1pc3Npb25SYXRlUGVyQmxvY2tDdXJyZW50IiFrZXlFbWlzc2lvblJhdGVQZXJCbG9ja01heEN1cnJlbnQiFWtleUVtaXNzaW9uU3RhcnRCbG9jayIda2V5Qm9vc3RpbmdWMkxhc3RVcGRhdGVIZWlnaHQiFWtleUJvb3N0aW5nVjJJbnRlZ3JhbCIba2V5RW1pc3Npb25EdXJhdGlvbkluQmxvY2tzIhNrZXlFbWlzc2lvbkVuZEJsb2NrIg1rZXlOZXh0UGVyaW9kIh9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0Ig1JZHhDZmdBc3NldElkIhNJZHhDZmdNaW5Mb2NrQW1vdW50IhVJZHhDZmdNaW5Mb2NrRHVyYXRpb24iFUlkeENmZ01heExvY2tEdXJhdGlvbiISSWR4Q2ZnTWF0aENvbnRyYWN0IglrZXlDb25maWciFXJlYWRDb25maWdBcnJheU9yRmFpbCIMbWF0aENvbnRyYWN0Ig1mb3JtYXRDb25maWdTIgdhc3NldElkIg1taW5Mb2NrQW1vdW50Ig9taW5Mb2NrRHVyYXRpb24iD21heExvY2tEdXJhdGlvbiIMZm9ybWF0Q29uZmlnIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCILbXVzdE1hbmFnZXIiAWkiAnBkIgJwayIOSWR4TG9ja1VzZXJOdW0iDUlkeExvY2tBbW91bnQiDElkeExvY2tTdGFydCIPSWR4TG9ja0R1cmF0aW9uIg1JZHhMb2NrUGFyYW1LIg1JZHhMb2NrUGFyYW1CIhNrZXlMb2NrUGFyYW1zUmVjb3JkIgt1c2VyQWRkcmVzcyIacmVhZExvY2tQYXJhbXNSZWNvcmRPckZhaWwiF2Zvcm1hdExvY2tQYXJhbXNSZWNvcmRTIgd1c2VyTnVtIgZhbW91bnQiBXN0YXJ0IghkdXJhdGlvbiIGcGFyYW1LIgZwYXJhbUIiEGxhc3RVcGRUaW1lc3RhbXAiCWd3eEFtb3VudCIWZm9ybWF0TG9ja1BhcmFtc1JlY29yZCIOa2V5TmV4dFVzZXJOdW0iEmtleVVzZXIyTnVtTWFwcGluZyISa2V5TnVtMlVzZXJNYXBwaW5nIhZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50IhZrZXlMb2NrUGFyYW1TdGFydEJsb2NrIhRrZXlMb2NrUGFyYW1EdXJhdGlvbiINa2V5TG9ja1BhcmFtSyINa2V5TG9ja1BhcmFtQiIVa2V5TG9ja1BhcmFtQnlQZXJpb2RLIgZwZXJpb2QiFWtleUxvY2tQYXJhbUJ5UGVyaW9kQiIXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQiIGtleVN0YXRzTG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIhJrZXlTdGF0c0xvY2tzQ291bnQiEmtleVN0YXRzVXNlcnNDb3VudCIga2V5VXNlckJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiImtleVVzZXJMcEJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiCWxwQXNzZXRJZCIXa2V5VXNlck1heEJvb3N0SU5URUdSQUwiGGtleVRvdGFsTWF4Qm9vc3RJTlRFR1JBTCIha2V5VXNlckJvb3N0QXZhbGFpYmxlVG9DbGFpbVRvdGFsIhNrZXlVc2VyQm9vc3RDbGFpbWVkIhFrZXlUb3RhbENhY2hlZEd3eCIba2V5VG90YWxDYWNoZWRHd3hDb3JyZWN0aXZlIgdrZXlWb3RlIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiBWVwb2NoIhVrZXlTdGFydEhlaWdodEJ5RXBvY2giEWtleUN1cnJlbnRFcG9jaFVpIhVrZXlWb3RpbmdSZXN1bHRTdGFrZWQiDGxwQXNzZXRJZFN0ciIda2V5Vm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiJWtleVZvdGluZ1Jlc3VsdFN0YWtlZExhc3RVcGRhdGVIZWlnaHQiIWtleVZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdCIVa2V5Vm90ZVN0YWtlZEludGVncmFsIh1rZXlWb3RlU3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIZa2V5Vm90ZVN0YWtlZEludGVncmFsTGFzdCIPa2V5U3Rha2VkQnlVc2VyIg51c2VyQWRkcmVzc1N0ciIPZmFjdG9yeUNvbnRyYWN0IhBlbWlzc2lvbkNvbnRyYWN0Ig9zdGFraW5nQ29udHJhY3QiEWd3eFJld2FyZENvbnRyYWN0IhZscFN0YWtpbmdQb29sc0NvbnRyYWN0IhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0Igpib29zdENvZWZmIgFAIhFnZXRUb3RhbENhY2hlZEd3eCIHY29ycmVjdCIOY3VycmVudEVwb2NoVWkiDmtleVRhcmdldEVwb2NoIhF0YXJnZXRFcG9jaE9wdGlvbiIRdG90YWxDYWNoZWRHd3hSYXciFWlzQ29ycmVjdGlvbkFjdGl2YXRlZCIKY29ycmVjdGl2ZSIMSGlzdG9yeUVudHJ5IgR0eXBlIgR1c2VyIglsb2NrU3RhcnQiAWsiAWIiCmhpc3RvcnlLRVkiC2hpc3RvcnlEQVRBIgpTdGF0c0VudHJ5Ig50b3RhbExvY2tlZEluYyILZHVyYXRpb25JbmMiDGxvY2tDb3VudEluYyINdXNlcnNDb3VudEluYyIbbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzS0VZIg1sb2Nrc0NvdW50S0VZIg11c2Vyc0NvdW50S0VZIg50b3RhbEFtb3VudEtFWSIYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIgpsb2Nrc0NvdW50Igp1c2Vyc0NvdW50Igt0b3RhbEFtb3VudCINY2FsY0d3eEFtb3VudCIEa1JhdyIEYlJhdyIBaCIFU0NBTEUiD0xvY2tQYXJhbXNFbnRyeSINdXNlckFtb3VudEtFWSINc3RhcnRCbG9ja0tFWSILZHVyYXRpb25LRVkiBGtLRVkiBGJLRVkiDGtCeVBlcmlvZEtFWSIMYkJ5UGVyaW9kS0VZIiJleHRyYWN0T3B0aW9uYWxQYXltZW50QW1vdW50T3JGYWlsIg9leHBlY3RlZEFzc2V0SWQiA3BtdCIZY2FsY1VzZXJHd3hBbW91bnRBdEhlaWdodCIMdGFyZ2V0SGVpZ2h0IgVFTVBUWSISdXNlcjJOdW1NYXBwaW5nS0VZIg1nd3hBbW91bnRDYWxjIhRjYWxjQ3VycmVudEd3eEFtb3VudCIaZ2V0Vm90aW5nRW1pc3Npb25FcG9jaEluZm8iDSR0MDE3MDYyMTczNTIiEmxhc3RGaW5hbGl6ZWRFcG9jaCIXY3VycmVudEVwb2NoU3RhcnRIZWlnaHQiGGdldFBvb2xBc3NldHNCeUxwQXNzZXRJZCIQaWR4QW1vdW50QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIgdwb29sQ2ZnIhRnZXRVc2VyVm90ZUZpbmFsaXplZCINJHQwMTgwNDMxODEyMyINJHQwMTgxMjYxODIwMSILdXNlclZvdGVLZXkiCHVzZXJWb3RlIhFnZXRVc2VyVm90ZVN0YWtlZCIMc3Rha2VkQnlVc2VyIhVnZXRWb3RpbmdSZXN1bHRTdGFrZWQiDSR0MDE4NzQ1MTg4MjUiF3ZvdGluZ1Jlc3VsdFN0YWtlZFN0YXJ0IhJ2b3RpbmdSZXN1bHRTdGFrZWQiHWdldFZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIg0kdDAxOTE4NzE5MjY3Ih52b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbFByZXYiInZvdGluZ1Jlc3VsdFN0YWtlZExhc3RVcGRhdGVIZWlnaHQiHHZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsRGgiGnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsIiFyZWZyZXNoVm90aW5nUmVzdWx0U3Rha2VkSW50ZWdyYWwiD3N0YWtlZFZvdGVEZWx0YSINJHQwMjAxMDQyMDE4NCIVdm90aW5nUmVzdWx0U3Rha2VkTmV3IhlnZXRVc2VyVm90ZVN0YWtlZEludGVncmFsIg0kdDAyMDc5NTIwODc1Ig51c2VyVm90ZVN0YWtlZCIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbFByZXYiHnVzZXJWb3RlU3Rha2VkTGFzdFVwZGF0ZUhlaWdodCIYdXNlclZvdGVTdGFrZWRJbnRlZ3JhbERoIhZ1c2VyVm90ZVN0YWtlZEludGVncmFsIhlyZWZyZXNoVm90ZVN0YWtlZEludGVncmFsIgRlZGdlIg0kdDAyMTY2MzIxNzQzIhF1c2VyVm90ZUZpbmFsaXplZCIHYWN0aW9ucyITdm90aW5nUmVzdWx0QWN0aW9ucyILdm90ZUFjdGlvbnMiG2dldFN0YWtlZFZvdGVzSW50ZWdyYWxzRGlmZiINJHQwMjI1OTcyMjY3NyIddXNlclZvdGVTdGFrZWRJbnRlZ3JhbExhc3RLZXkiGnVzZXJWb3RlU3Rha2VkSW50ZWdyYWxMYXN0IiF2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbExhc3RLZXkiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdCIadXNlclZvdGVTdGFrZWRJbnRlZ3JhbERpZmYiHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsRGlmZiIccmVmcmVzaEJvb3N0RW1pc3Npb25JbnRlZ3JhbCISd3hFbWlzc2lvblBlckJsb2NrIiBib29zdGluZ1YyTGFzdFVwZGF0ZUhlaWdodE9wdGlvbiIYYm9vc3RpbmdWMkluZ2VyZ2FsT3B0aW9uIgtlbWlzc2lvbkVuZCICZGgiEGxhc3RVcGRhdGVIZWlnaHQiFWJvb3N0RW1pc3Npb25QZXJCbG9jayIZYm9vc3RFbWlzc2lvbkludGVncmFsUHJldiIVYm9vc3RFbWlzc2lvbkludGVncmFsIhRpbnRlcm5hbENsYWltV3hCb29zdCIIcmVhZE9ubHkiEHVzZXJSZWNvcmRPcHRpb24iD3VzZXJSZWNvcmRBcnJheSIKdXNlck51bVN0ciIIRU1QVFlTVFIiCnBvb2xXZWlnaHQiDnBvb2xBZGRyZXNzU3RyIiJ1c2VyTHBCb29zdEVtaXNzaW9uTGFzdEludGVncmFsS0VZIiB1c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRlZ3JhbEtFWSIddXNlckJvb3N0RW1pc3Npb25MYXN0SW50ZWdyYWwiGXVzZXJCb29zdEVtaXNzaW9uSW50ZWdyYWwiDSR0MDI2Mjc4MjY0MTciG3N0YWtlZFZvdGVzSW50ZWdyYWxzQWN0aW9ucyIUdXNlclZvdGVJbnRlZ3JhbERpZmYiFnRvdGFsVm90ZXNJbnRlZ3JhbERpZmYiHXBvb2xVc2VyQm9vc3RFbWlzc2lvbkludGVncmFsIiF1c2VyQm9vc3RBdmFsaWFibGVUb0NsYWltVG90YWxOZXciCWRhdGFTdGF0ZSIFZGVidWciC2xvY2tBY3Rpb25zIghjZmdBcnJheSIKYXNzZXRJZFN0ciIJcG10QW1vdW50Ig5uZXh0VXNlck51bUtFWSIOdXNlcklzRXhpc3RpbmciB2NvZWZmWDgiDmdXeEFtb3VudFN0YXJ0IhNnV3hQYXJhbXNSZXN1bHRMaXN0IgNhcnIiEWZhY3RvcnlBZGRyZXNzU3RyIg5sb2NrQXNzZXRJZFN0ciILbWluRHVyYXRpb24iC21heER1cmF0aW9uIgtjaGVja0NhbGxlciIPcmVmZXJyZXJBZGRyZXNzIglzaWduYXR1cmUiDSR0MDMxMDA3MzEwNzIiEWxvY2tBY3Rpb25zUmVzdWx0Ig9yZWZlcnJhbEFkZHJlc3MiBnJlZkludiIRdXBkYXRlUmVmQWN0aXZpdHkiDSR0MDMxNTMwMzE1OTUiDWRlbHRhRHVyYXRpb24iCnVzZXJBbW91bnQiDGxvY2tEdXJhdGlvbiIHbG9ja0VuZCIRcmVtYWluaW5nRHVyYXRpb24iDXVzZXJBbW91bnROZXciD2xvY2tEdXJhdGlvbk5ldyIMbG9ja1N0YXJ0TmV3IgtjdXJyVXNlckd3eCIHZ3d4RGlmZiIXdG90YWxDYWNoZWRHd3hDb3JyZWN0ZWQiDSR0MDM0NjgyMzQ3ODQiEnVzZXJCb29zdEF2YWlsYWJsZSINJHQwMzQ5MTYzNTAxNyIQbWF4RGVsdGFEdXJhdGlvbiIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXmLAQABYQICX18AAWIACAABYwCAwtcvAAFkBQFjAQFlAQFmCQC5CQIJAMwIAgIOYm9vc3RpbmcucmlkZToJAMwIAgUBZgUDbmlsAgEgAQFnAQFmCQACAQkBAWUBBQFmAQFoAgFpAWoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQFpBQFqCQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQFqAg8gaXMgbm90IGRlZmluZWQBAWsCAWkBagkBC3ZhbHVlT3JFbHNlAgkAmggCBQFpBQFqAAABAWwDAWkBagFtCQELdmFsdWVPckVsc2UCCQCaCAIFAWkFAWoFAW0BAW4CAWkBagkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAWkFAWoJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAWoCDyBpcyBub3QgZGVmaW5lZAEBbwEBcAMJAGYCAAAFAXAJAQEtAQUBcAUBcAEBcQEBcAQBcgUBcAMJAAECBQFyAglMaXN0W0FueV0EAXMFAXIFAXMJAAIBAhtmYWlsIHRvIGNhc3QgaW50byBMaXN0W0FueV0BAXQBAXAEAXIFAXADCQABAgUBcgIDSW50BAF1BQFyBQF1CQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50AQF2AAkAuQkCCQDMCAICBCVzJXMJAMwIAgIGY29uZmlnCQDMCAICGHJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcwUDbmlsBQFhAAF3CQERQGV4dHJOYXRpdmUoMTA2MikBCQEBaAIFBHRoaXMJAQF2AAABeAkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgILcHJvZ3JhbU5hbWUFA25pbAUBYQABeQIGd3hsb2NrAAF6CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAXgFAXkBAUEAAhwlcyVzX19jb25maWdfX2ZhY3RvcnlBZGRyZXNzAAFCAAEAAUMAAgABRAADAAFFAAQAAUYABQABRwAGAAFIAAcAAUkACAABSgAJAAFLAAoAAUwACwEBTQACESVzX19mYWN0b3J5Q29uZmlnAQFOAAIQJXNfX2xwVG9rZW5zTGlzdAEBTwEBUAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQFQCQDMCAICHm1hcHBpbmdzX19scEFzc2V0MlBvb2xDb250cmFjdAUDbmlsBQFhAQFRAQFSCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgpwb29sV2VpZ2h0CQDMCAIFAVIFA25pbAUBYQEBUwIBVAFVCQCsAgIJAKwCAgkArAICAhIlcyVzX19wb29sV2VpZ2h0X18FAVQCAl9fCQCkAwEFAVUBAVYACQERQGV4dHJOYXRpdmUoMTA2MikBCQEBaAIFBHRoaXMJAQFBAAEBVwAJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCCQEBVgAJAQFOAAIABQFhAQFYAQFZCQC1CQIJAQFoAgUBWQkBAU0ABQFhAQFaAQJhYQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYQUBQwECYWIBAmFhCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFhBQFGAQJhYwECYWEJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWEFAUIBAmFkAQJhYQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYQUBSwECYWUAAhQlc19fbWFuYWdlclB1YmxpY0tleQECYWYAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAmFnAAIbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQJhaAACHiVzJXNfX3JhdGVQZXJCbG9ja01heF9fY3VycmVudAECYWkAAholcyVzX19lbWlzc2lvbl9fc3RhcnRCbG9jawECYWoAAhwlcyVzX19ib29zdGluZ1YyX19zdGFydEJsb2NrAQJhawACGiVzJXNfX2Jvb3N0aW5nVjJfX2ludGVncmFsAQJhbAACGCVzJXNfX2VtaXNzaW9uX19kdXJhdGlvbgECYW0AAhglcyVzX19lbWlzc2lvbl9fZW5kQmxvY2sBAmFuAAIOJXNfX25leHRQZXJpb2QBAmFvAAIoJXMlc19fZ3d4UmV3YXJkRW1pc3Npb25QYXJ0X19zdGFydEhlaWdodAACYXAAAQACYXEAAgACYXIAAwACYXMABAACYXQABQECYXUAAgolc19fY29uZmlnAQJhdgAJALUJAgkBAWgCBQR0aGlzCQECYXUABQFhAAJhdwkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCCQECYXYABQJhdAECYXgFAmF5AmF6AmFBAmFCAmF3CQC5CQIJAMwIAgIIJXMlZCVkJWQJAMwIAgUCYXkJAMwIAgUCYXoJAMwIAgUCYUEJAMwIAgUCYUIJAMwIAgUCYXcFA25pbAUBYQECYUMFAmF5AmF6AmFBAmFCAmF3CQECYXgFBQJheQkApAMBBQJhegkApAMBBQJhQQkApAMBBQJhQgUCYXcBAmFEAAQBcgkAoggBCQECYWUAAwkAAQIFAXICBlN0cmluZwQCYUUFAXIJANkEAQUCYUUDCQABAgUBcgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhRgAEAXIJAKIIAQkBAmFmAAMJAAECBQFyAgZTdHJpbmcEAmFFBQFyCQDZBAEFAmFFAwkAAQIFAXICBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYUcBAmFIBAJhSQkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAFyCQECYUQAAwkAAQIFAXICCkJ5dGVWZWN0b3IEAmFKBQFyAwkAAAIIBQJhSA9jYWxsZXJQdWJsaWNLZXkFAmFKBgUCYUkDCQABAgUBcgIEVW5pdAMJAAACCAUCYUgGY2FsbGVyBQR0aGlzBgUCYUkJAAIBAgtNYXRjaCBlcnJvcgACYUsAAQACYUwAAgACYU0AAwACYU4ABAACYU8ABQACYVAABgECYVEBAmFSCQC5CQIJAMwIAgIKJXMlc19fbG9jawkAzAgCBQJhUgUDbmlsBQFhAQJhUwECYVIJALUJAgkBAWgCBQR0aGlzCQECYVEBBQJhUgUBYQECYVQIAmFVAmFWAmFXAmFYAmFZAmFaAmJhAmJiCQC5CQIJAMwIAgIQJWQlZCVkJWQlZCVkJWQlZAkAzAgCBQJhVQkAzAgCBQJhVgkAzAgCBQJhVwkAzAgCBQJhWAkAzAgCBQJhWQkAzAgCBQJhWgkAzAgCBQJiYQkAzAgCBQJiYgUDbmlsBQFhAQJiYwcCYVUCYVYCYVcCYVgCYVkCYVoCYmIJAQJhVAgFAmFVCQCkAwEFAmFWCQCkAwEFAmFXCQCkAwEFAmFYCQCkAwEFAmFZCQCkAwEFAmFaCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQCkAwEFAmJiAQJiZAACDyVzX19uZXh0VXNlck51bQECYmUBAmFSCQC5CQIJAMwIAgIZJXMlcyVzX19tYXBwaW5nX191c2VyMm51bQkAzAgCBQJhUgUDbmlsBQFhAQJiZgEBVQkAuQkCCQDMCAICGSVzJXMlc19fbWFwcGluZ19fbnVtMnVzZXIJAMwIAgUBVQUDbmlsBQFhAQJiZwECYVUJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFVCQDMCAICBmFtb3VudAUDbmlsBQFhAQJiaAECYVUJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFVCQDMCAICBXN0YXJ0BQNuaWwFAWEBAmJpAQJhVQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVUJAMwIAgIIZHVyYXRpb24FA25pbAUBYQECYmoBAmFVCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVQkAzAgCAgFrBQNuaWwFAWEBAmJrAQJhVQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVUJAMwIAgIBYgUDbmlsBQFhAQJibAICYVUCYm0JALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCBQJhVQkAzAgCAgFrCQDMCAIFAmJtBQNuaWwFAWEBAmJuAgJhVQJibQkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIFAmFVCQDMCAICAWIJAMwIAgUCYm0FA25pbAUBYQECYm8AAh4lcyVzX19zdGF0c19fYWN0aXZlVG90YWxMb2NrZWQBAmJwAAIlJXMlc19fc3RhdHNfX2xvY2tzRHVyYXRpb25TdW1JbkJsb2NrcwECYnEAAhclcyVzX19zdGF0c19fbG9ja3NDb3VudAECYnIAAh0lcyVzX19zdGF0c19fYWN0aXZlVXNlcnNDb3VudAECYnMBAmFVCQC5CQIJAMwIAgIgJXMlZF9fdXNlckJvb3N0RW1pc3Npb25MYXN0SW50VjIJAMwIAgUCYVUFA25pbAUBYQECYnQCAmFVAmJ1CQC5CQIJAMwIAgIgJXMlZF9fdXNlckJvb3N0RW1pc3Npb25MYXN0SW50VjIJAMwIAgUCYVUJAMwIAgUCYnUFA25pbAUBYQECYnYBAmFVCQC5CQIJAMwIAgIRJXMlZF9fbWF4Qm9vc3RJbnQJAMwIAgUCYVUFA25pbAUBYQECYncAAhglcyVzX19tYXhCb29zdEludF9fdG90YWwBAmJ4AQJhVQkAuQkCCQDMCAICJCVzJWRfX3VzZXJCb29zdEF2YWxpYWJsZVRvQ2xhaW1Ub3RhbAkAzAgCBQJhVQUDbmlsBQFhAQJieQECYVUJALkJAgkAzAgCAhYlcyVkX191c2VyQm9vc3RDbGFpbWVkCQDMCAIFAmFVBQNuaWwFAWEBAmJ6AAIWJXMlc19fZ3d4Q2FjaGVkX190b3RhbAECYkEAAhwlc19fZ3d4Q2FjaGVkVG90YWxDb3JyZWN0aXZlAQJiQgQCYkMCYkQBaQJiRQkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQJiQwkAzAgCBQJiRAkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJiRQUDbmlsBQFhAQJiRgECYkUJALkJAgkAzAgCAgQlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIJAKQDAQUCYkUFA25pbAUBYQECYkcACQC5CQIJAMwIAgICJXMJAMwIAgIOY3VycmVudEVwb2NoVWkFA25pbAUBYQECYkgCAmJJAmJFCQC5CQIJAMwIAgIGJXMlcyVkCQDMCAICEnZvdGluZ1Jlc3VsdFN0YWtlZAkAzAgCBQJiSQkAzAgCCQCkAwEFAmJFBQNuaWwFAWEBAmJKAgJiSQJiRQkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAhp2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbAkAzAgCBQJiSQkAzAgCCQCkAwEFAmJFBQNuaWwFAWEBAmJLAgJiSQJiRQkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAip2b3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbExhc3RVcGRhdGVIZWlnaHQJAMwIAgUCYkkJAMwIAgkApAMBBQJiRQUDbmlsBQFhAQJiTAMCYkkBaQJiRQkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICHnZvdGluZ1Jlc3VsdFN0YWtlZEludGVncmFsTGFzdAkAzAgCBQJiSQkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJiRQUDbmlsBQFhAQJiTQMCYkkBaQJiRQkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICEnZvdGVTdGFrZWRJbnRlZ3JhbAkAzAgCBQJiSQkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJiRQUDbmlsBQFhAQJiTgMCYkkBaQJiRQkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICInZvdGVTdGFrZWRJbnRlZ3JhbExhc3RVcGRhdGVIZWlnaHQJAMwIAgUCYkkJAMwIAgkApQgBBQFpCQDMCAIJAKQDAQUCYkUFA25pbAUBYQECYk8DAmJJAWkCYkUJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAhZ2b3RlU3Rha2VkSW50ZWdyYWxMYXN0CQDMCAIFAmJJCQDMCAIJAKUIAQUBaQkAzAgCCQCkAwEFAmJFBQNuaWwFAWEBAmJQAgJiUQJiSQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZzdGFrZWQJAMwIAgUCYlEJAMwIAgUCYkkFA25pbAUBYQACYlIJAQFWAAACYWEJAQFYAQUCYlIAAmJTCQECYWIBBQJhYQACYlQJAQJhYwEFAmFhAAJiVQkBAmFkAQUCYWEAAmJWCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJALkJAgkAzAgCAgIlcwkAzAgCAhZscFN0YWtpbmdQb29sc0NvbnRyYWN0BQNuaWwFAWEJAQFlAQIubHBfc3Rha2luZ19wb29scyBjb250cmFjdCBhZGRyZXNzIGlzIHVuZGVmaW5lZAkBAWUBAilpbnZhbGlkIGxwX3N0YWtpbmdfcG9vbHMgY29udHJhY3QgYWRkcmVzcwACYlcJALkJAgkAzAgCAgIlcwkAzAgCAhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BQNuaWwFAWEAAmJYCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQJiUgUCYlcAAmJZCgACYloJAPwHBAUCYlMCFWdldEJvb3N0Q29lZmZSRUFET05MWQUDbmlsBQNuaWwDCQABAgUCYloCA0ludAUCYloJAAIBCQCsAgIJAAMBBQJiWgIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AQJjYQECY2IEAmNjCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJiWAkBAmJHAAQCY2QJALkJAgkAzAgCAgQlcyVzCQDMCAICKXRvdGFsQ2FjaGVkR3d4Q29ycmVjdGlvbl9fYWN0aXZhdGlvbkVwb2NoBQNuaWwFAWEEAmNlCQCaCAIFBHRoaXMFAmNkBAJjZgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYnoAAAAEAmNnAwkBCWlzRGVmaW5lZAEFAmNlCQBnAgUCY2MJAQV2YWx1ZQEFAmNlBwQCY2gDAwUCY2cFAmNiBwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkEAAAAAAAkAlgMBCQDMCAIAAAkAzAgCCQBkAgUCY2YFAmNoBQNuaWwBAmNpCAJjagJjawJhVgJjbAJhWAJjbQJjbgJhSAQCY28JALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQJjagkAzAgCBQJjawkAzAgCCQDYBAEIBQJhSA10cmFuc2FjdGlvbklkBQNuaWwFAWEEAmNwCQC5CQIJAMwIAgIOJWQlZCVkJWQlZCVkJWQJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUCYVYJAMwIAgkApAMBBQJjbAkAzAgCCQCkAwEFAmFYCQDMCAIJAKQDAQUCY20JAMwIAgkApAMBBQJjbgUDbmlsBQFhCQELU3RyaW5nRW50cnkCBQJjbwUCY3ABAmNxBAJjcgJjcwJjdAJjdQQCY3YJAQJicAAEAmN3CQECYnEABAJjeAkBAmJyAAQCY3kJAQJibwAEAmN6CQEBawIFBHRoaXMFAmN2BAJjQQkBAWsCBQR0aGlzBQJjdwQCY0IJAQFrAgUEdGhpcwUCY3gEAmNDCQEBawIFBHRoaXMFAmN5CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjdgkAZAIFAmN6BQJjcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3cJAGQCBQJjQQUCY3QJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN4CQBkAgUCY0IFAmN1CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjeQkAZAIFAmNDBQJjcgUDbmlsAQJjRAMCY0UCY0YCY0cEAmNIAOgHCQBpAgkAZAIJAGgCBQJjRQUCY0cFAmNGBQJjSAECY0kIAmFSAmFVAmFWAmFXAmFYAmNtAmNuAmJtBAJjSgkBAmJnAQUCYVUEAmNLCQECYmgBBQJhVQQCY0wJAQJiaQEFAmFVBAJjTQkBAmJqAQUCYVUEAmNOCQECYmsBBQJhVQQCY08JAQJibAIFAmFVBQJibQQCY1AJAQJibgIFAmFVBQJibQQCYmIJAQJjRAMFAmNtBQJjbgUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjSgUCYVYJAMwIAgkBDEludGVnZXJFbnRyeQIFAmNLBQJhVwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY0wFAmFYCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjTQUCY20JAMwIAgkBDEludGVnZXJFbnRyeQIFAmNOBQJjbgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY08FAmNtCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjUAUCY24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFRAQUCYVIJAQJiYwcFAmFVBQJhVgUCYVcFAmFYBQJjbQUCY24FAmJiBQNuaWwBAmNRAgJhSAJjUgMJAGYCCQCQAwEIBQJhSAhwYXltZW50cwABCQACAQIbb25seSBvbmUgcGF5bWVudCBpcyBhbGxvd2VkAwkAAAIJAJADAQgFAmFICHBheW1lbnRzAAAAAAQCY1MJAJEDAggFAmFICHBheW1lbnRzAAADCQECIT0CCQEFdmFsdWUBCAUCY1MHYXNzZXRJZAUCY1IJAAIBAhtpbnZhbGlkIGFzc2V0IGlkIGluIHBheW1lbnQIBQJjUwZhbW91bnQBAmNUAgJhUgJjVQQCY1YCBWVtcHR5BAJjVwkBAmJlAQUCYVIEAmFVCQELdmFsdWVPckVsc2UCCQCiCAEFAmNXBQJjVgQCY20JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmJqAQUCYVUAAAQCY24JAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmJrAQUCYVUAAAQCY1gJAQJjRAMFAmNtBQJjbgUCY1UEAmJiAwkAZgIAAAUCY1gAAAUCY1gFAmJiAQJjWQECYVIJAQJjVAIFAmFSBQZoZWlnaHQBAmNaAAQCZGEEAmNjCQEFdmFsdWUBCQCaCAIFAmJYCQECYkcABAJkYgkAZQIFAmNjAAEDCQBmAgAABQJkYgkBAWcBAg1pbnZhbGlkIGVwb2NoCQCUCgIFAmNjBQJkYgQCY2MIBQJkYQJfMQQCZGIIBQJkYQJfMgQCZGMJAQV2YWx1ZQEJAJoIAgUCYlgJAQJiRgEFAmNjCQCUCgIFAmRiBQJkYwECZGQBAmJJBAJkZQAEBAJkZgAFBAJkZwoAAmJaCQD8BwQFAmJSAiBnZXRQb29sQ29uZmlnQnlMcEFzc2V0SWRSRUFET05MWQkAzAgCBQJiSQUDbmlsBQNuaWwDCQABAgUCYloCCUxpc3RbQW55XQUCYloJAAIBCQCsAgIJAAMBBQJiWgIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldBAJiQwoAAmJaCQCRAwIFAmRnBQJkZQMJAAECBQJiWgIGU3RyaW5nBQJiWgkAAgEJAKwCAgkAAwEFAmJaAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmJECgACYloJAJEDAgUCZGcFAmRmAwkAAQIFAmJaAgZTdHJpbmcFAmJaCQACAQkArAICCQADAQUCYloCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwkAlAoCBQJiQwUCYkQBAmRoAgJiSQJiUQQCYVIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmJRBAJkaQkBAmNaAAQCZGIIBQJkaQJfMQQCZGMIBQJkaQJfMgQCZGoJAQJkZAEFAmJJBAJiQwgFAmRqAl8xBAJiRAgFAmRqAl8yBAJkawkBAmJCBAUCYkMFAmJEBQJhUgUCZGIEAmRsCQELdmFsdWVPckVsc2UCCQCaCAIFAmJYBQJkawAABQJkbAECZG0CAmJJAmJRBAJkbgkBC3ZhbHVlT3JFbHNlAgkAmggCBQJiVAkBAmJQAgUCYlEFAmJJAAAEAmRsCQECZGgCBQJiSQUCYlEDCQAAAgUCZG4AAAAABQJkbAECZG8BAmJJBAJkcAkBAmNaAAQCZGIIBQJkcAJfMQQCZGMIBQJkcAJfMgQCZHEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYlgJAQJiSAIFAmJJBQJkYgAABAJkcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkgCBQJiSQUCZGIFAmRxBQJkcgECZHMBAmJJBAJkdAkBAmNaAAQCZGIIBQJkdAJfMQQCZGMIBQJkdAJfMgQCZHIJAQJkbwEFAmJJBAJkdQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYkoCBQJiSQUCZGIAAAQCZHYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJLAgUCYkkFAmRiBQJkYwQCZHcJAGUCBQZoZWlnaHQFAmR2BAJkeAkAZAIJAGgCBQJkdwUCZHIFAmR1BQJkeAECZHkCAmJJAmR6BAJkQQkBAmNaAAQCZGIIBQJkQQJfMQQCZGMIBQJkQQJfMgQCZHIJAQJkbwEFAmJJBAJkQgkAZAIFAmRyBQJkegQCZHgJAQJkcwEFAmJJCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYkgCBQJiSQUCZGIFAmRCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYksCBQJiSQUCZGIFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJKAgUCYkkFAmRiBQJkeAUDbmlsAQJkQwICYkkCYlEEAmRECQECY1oABAJkYggFAmREAl8xBAJkYwgFAmREAl8yBAJhUgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYlEEAmRFCQECZG0CBQJiSQUCYlEEAmRGCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiTQMFAmJJBQJhUgUCZGIAAAQCZEcJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmJOAwUCYkkFAmFSBQJkYgUCZGMEAmRICQBlAgUGaGVpZ2h0BQJkRwQCZEkJAGQCCQBoAgUCZEgFAmRFBQJkRgUCZEkBAmRKAwJiSQJiUQJkSwQCZEwJAQJjWgAEAmRiCAUCZEwCXzEEAmRjCAUCZEwCXzIEAmFSCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiUQQCZE0JAQJkaAIFAmJJBQJiUQQCZE4DCQAAAgUCZE0AAAUDbmlsBAJkegMFAmRLBQJkTQkBAS0BBQJkTQQCZE8JAQJkeQIFAmJJBQJkegQCZEkJAQJkQwIFAmJJBQJiUQQCZFAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiTgMFAmJJBQJhUgUCZGIFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJNAwUCYkkFAmFSBQJkYgUCZEkFA25pbAkAzggCBQJkTwUCZFAFAmROAQJkUQICYkkCYlEEAmRSCQECY1oABAJkYggFAmRSAl8xBAJkYwgFAmRSAl8yBAJhUgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYlEEAmRTCQECYk8DBQJiSQUCYVIFAmRiBAJkVAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJkUwAABAJkVQkBAmJMAwUCYkkFAmFSBQJkYgQCZFYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCZFUAAAQCZEkJAQJkQwIFAmJJBQJiUQQCZHgJAQJkcwEFAmJJBAJkVwkAZQIFAmRJBQJkVAQCZFgJAGUCBQJkeAUCZFYJAJUKAwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZFMFAmRJCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkVQUCZHgFA25pbAUCZFcFAmRYAQJkWQAEAmRaCQEBbgIFAmJTCQECYWcABAJlYQkAmggCBQR0aGlzCQECYWoABAJlYgkAmggCBQR0aGlzCQECYWsABAJlYwkBAW4CBQJiUwkBAmFtAAQCY0cDCQBmAgUGaGVpZ2h0BQJlYwUCZWMFBmhlaWdodAQCZWQEAXIFAmVhAwkAAQIFAXICA0ludAQCZWUFAXIJAJYDAQkAzAgCCQBlAgUCY0cFAmVlCQDMCAIAAAUDbmlsAwkAAQIFAXICBFVuaXQAAAkAAgECC01hdGNoIGVycm9yBAJlZgkAaQIJAGgCBQJkWgkAZQIFAmJZAAEFAmJZBAJlZwkBC3ZhbHVlT3JFbHNlAgUCZWIAAAQCZWgJAGQCCQBoAgUCZWYFAmVkBQJlZwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsABQJlaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFqAAUGaGVpZ2h0BQNuaWwFAmVoAQJlaQMCYkkCYlECZWoEAmVrCQCdCAIFBHRoaXMJAQJhUQEFAmJRAwkAAAIFAmVrBQR1bml0CQCVCgMAAAUDbmlsAhV1c2VyUmVjb3JkOjppczo6ZW1wdHkEAmVsCQC1CQIJAQV2YWx1ZQEFAmVrBQFhBAJlbQkAkQMCBQJlbAUCYUsEAmVuAgVlbXB0eQQCZW8DCQECIT0CBQJiSQUCZW4EAmVwCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUCYlIJAQFPAQUCYkkJAKwCAgIVdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJiSQkBEUBleHRyTmF0aXZlKDEwNTApAgUCYlIJAQFRAQUCZXADBQJlagAACQACAQkArAICAihub3QgcmVhZG9ubHkgbW9kZTogdW5zdXBwb3J0ZWQgbHAgYXNzZXQgBQJiSQQCZXEJAQJidAIFAmVtBQJiSQQCZXIJAQJicwEFAmVtBAJlcwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJlcQkBAWsCBQR0aGlzBQJlcgQCZWgICQECZFkAAl8yBAJldAkAZQIFAmVoBQJlcwMJAGYCAAAFAmV0CQACAQISd3JvbmcgY2FsY3VsYXRpb25zBAJldQkBAmRRAgUCYkkFAmJRBAJldggFAmV1Al8xBAJldwgFAmV1Al8yBAJleAgFAmV1Al8zBAJleQkAawMFAmV0BQJlbwUBZAQCZXoDCQAAAgUCZXgAAAAACQBrAwUCZXkFAmV3BQJleAQCZUEJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCZXEFAmVoBQNuaWwFAmV2BAJlQgkAuQkCCQDMCAIJAKQDAQUCZXMJAMwIAgkApAMBBQJldAkAzAgCCQCkAwEFAmVvCQDMCAIJAKQDAQUCZXcJAMwIAgkApAMBBQJleAUDbmlsAgE6CQCVCgMFAmV6BQJlQQUCZUIBAmVDAgJhSAJhWAQCZUQJAQJhdgAEAmVFCQCRAwIFAmVEBQJhcAQCYXkJANkEAQUCZUUEAmF6CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUQFAmFxBAJhQQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVEBQJhcgQCYUIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlRAUCYXMDCQECIT0CCQCQAwEIBQJhSAhwYXltZW50cwABCQACAQI0aW52YWxpZCBwYXltZW50IC0gZXhhY3Qgb25lIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQCY1MJAJEDAggFAmFICHBheW1lbnRzAAAEAmVGCAUCY1MGYW1vdW50AwkBAiE9AgUCYXkJAQV2YWx1ZQEIBQJjUwdhc3NldElkCQACAQkArAICCQCsAgICHmludmFsaWQgYXNzZXQgaXMgaW4gcGF5bWVudCAtIAUCZUUCDCBpcyBleHBlY3RlZAQCZUcJAQJiZAAEAmJRCQClCAEIBQJhSAZjYWxsZXIEAmVICQEJaXNEZWZpbmVkAQkAoggBCQECYmUBBQJiUQQCZW0DBQJlSAkBBXZhbHVlAQkAoggBCQECYmUBBQJiUQkApAMBCQEBbgIFBHRoaXMFAmVHBAJhVQkBDXBhcnNlSW50VmFsdWUBBQJlbQQCY2wFBmhlaWdodAQCY0sJAQJiaAEFAmVtBAJjTAkBAmJpAQUCZW0EAmNKCQECYmcBBQJlbQMDCQBmAgUCYXoFAmVGCQECIT0CCAUCYUgGY2FsbGVyBQJiVgcJAAIBCQCsAgICImFtb3VudCBpcyBsZXNzIHRoZW4gbWluTG9ja0Ftb3VudD0JAKQDAQUCYXoDCQBmAgUCYUEFAmFYCQACAQkArAICAi1wYXNzZWQgZHVyYXRpb24gaXMgbGVzcyB0aGVuIG1pbkxvY2tEdXJhdGlvbj0JAKQDAQUCYUEDCQBmAgUCYVgFAmFCCQACAQkArAICAjBwYXNzZWQgZHVyYXRpb24gaXMgZ3JlYXRlciB0aGVuIG1heExvY2tEdXJhdGlvbj0JAKQDAQUCYUIDAwUCZUgJAGcCCQBkAgkBAW4CBQR0aGlzBQJjSwkBAW4CBQR0aGlzBQJjTAUCY2wHCQACAQI2dGhlcmUgaXMgYW4gYWN0aXZlIGxvY2sgLSBjb25zaWRlciB0byB1c2UgaW5jcmVhc2VMb2NrAwkAZgIJAQFrAgUEdGhpcwUCY0oAAAkAAgEJAKwCAgI0dGhlcmUgYXJlIGxvY2tlZCBXWHMgLSBjb25zaWRlciB0byB1c2UgaW5jcmVhc2VMb2NrIAUCY0oEAmVJCQBrAwUCYVgFAWMFAmFCBAJlSgkAawMFAmVGBQJlSQUBYwQCZUsJAQFxAQkA/AcEBQJhdwIVY2FsY0d3eFBhcmFtc1JFQURPTkxZCQDMCAIFAmVKCQDMCAIFAmNsCQDMCAIFAmFYBQNuaWwFA25pbAQCY20JAQF0AQkAkQMCBQJlSwAABAJjbgkBAXQBCQCRAwIFAmVLAAEEAmJtCQCkAwEJAQF0AQkAkQMCBQJlSwACBAJjZgkBAmNhAQcEAmVyCQECYnMBBQJlbQQCZWgICQECZFkAAl8yBAJlTAMFAmVIBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVHCQBkAgUCYVUAAQkAzAgCCQELU3RyaW5nRW50cnkCCQECYmUBBQJiUQUCZW0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJmAQUCZW0FAmJRBQNuaWwJAJQKAgkAzggCCQDNCAIJAM4IAgkAzggCBQJlTAkBAmNJCAUCYlEFAmVtBQJlRgUCY2wFAmFYBQJjbQUCY24FAmJtCQECY3EEBQJlRgUCYVgAAQMFAmVIAAAAAQkBAmNpCAIEbG9jawUCYlEFAmVGBQJjbAUCYVgFAmNtBQJjbgUCYUgJAMwIAgkBDEludGVnZXJFbnRyeQIFAmVyBQJlaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJ6AAkAZAIFAmNmBQJlSgUDbmlsBQJlShMCYUgBC2NvbnN0cnVjdG9yBgJlTQJlTgJhegJlTwJlUAJhdwQCZVEJAQJhRwEFAmFIAwkAAAIFAmVRBQJlUQkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYmQAAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF1AAkBAmFDBQUCZU4FAmF6BQJlTwUCZVAFAmF3CQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFBAAUCZU0FA25pbAkBAmNxBAAAAAAAAAAACQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFIAQdsb2NrUmVmAwJhWAJlUgJlUwQCZVQJAQJlQwIFAmFIBQJhWAQCZVUIBQJlVAJfMQQCZUoIBQJlVAJfMgQCZVYJAKUIAQgFAmFIBmNhbGxlcgQCZVcDAwkAAAIFAmVSAgAGCQAAAgUCZVMBAAUEdW5pdAkA/AcEBQF3AgpjcmVhdGVQYWlyCQDMCAIFAXoJAMwIAgUCZVIJAMwIAgUCZVYJAMwIAgUCZVMFA25pbAUDbmlsAwkAAAIFAmVXBQJlVwQCZVgJAPwHBAUCYXcCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgkApQgBCAUCYUgGY2FsbGVyCQDMCAIFAmVKBQNuaWwFA25pbAMJAAACBQJlWAUCZVgJAJQKAgUCZVUFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUgBBGxvY2sBAmFYBAJlWQkBAmVDAgUCYUgFAmFYBAJlVQgFAmVZAl8xBAJlSggFAmVZAl8yBAJlWAkA/AcEBQJhdwIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCCQClCAEIBQJhSAZjYWxsZXIJAMwIAgUCZUoFA25pbAUDbmlsAwkAAAIFAmVYBQJlWAkAlAoCBQJlVQUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSAEMaW5jcmVhc2VMb2NrAQJlWgQCZUQJAQJhdgAEAmVFCQCRAwIFAmVEBQJhcAQCYXkJANkEAQUCZUUEAmFBCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUQFAmFyBAJhQgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVEBQJhcwQCZUYJAQJjUQIFAmFIBQJheQQCYlEJAKUIAQgFAmFIBmNhbGxlcgQCZWwJAQJhUwEFAmJRBAJlbQkAkQMCBQJlbAUCYUsEAmZhCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWwFAmFMBAJjbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVsBQJhTQQCZmIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbAUCYU4EAmZjCQBkAgUCY2wFAmZiBAJmZAkAlgMBCQDMCAIJAGUCBQJmYwUGaGVpZ2h0CQDMCAIAAAUDbmlsBAJmZQkAZAIFAmZhBQJlRgQCZmYJAGQCBQJmZAUCZVoDCQBmAgAABQJlWgkAAgECGmR1cmF0aW9uIGlzIGxlc3MgdGhlbiB6ZXJvAwkAZgIFAmFBBQJmZgkAAgEJAKwCAgItbG9ja0R1cmF0aW9uTmV3IGlzIGxlc3MgdGhlbiBtaW5Mb2NrRHVyYXRpb249CQCkAwEFAmFBAwkAZgIFAmZmBQJhQgkAAgEJAKwCAgJEZGVsdGFEdXJhdGlvbiArIGV4aXN0ZWRMb2NrRHVyYXRpb24gaXMgZ3JlYXRlciB0aGVuIG1heExvY2tEdXJhdGlvbj0JAKQDAQUCYUIEAmVJCQBrAwUCZmYFAWMFAmFCBAJlSgkAawMFAmZlBQJlSQUBYwQCZVgJAPwHBAUCYXcCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgkApQgBCAUCYUgGY2FsbGVyCQDMCAIFAmVKBQNuaWwFA25pbAMJAAACBQJlWAUCZVgEAmZnBQZoZWlnaHQEAmVLCQEBcQEJAPwHBAUCYXcCFWNhbGNHd3hQYXJhbXNSRUFET05MWQkAzAgCBQJlSgkAzAgCBQJmZwkAzAgCBQJmZgUDbmlsBQNuaWwEAmNtCQEBdAEJAJEDAgUCZUsAAAQCY24JAQF0AQkAkQMCBQJlSwABBAJibQkApAMBCQEBdAEJAJEDAgUCZUsAAgQCZmgJAQJjWQEFAmJRBAJmaQkAZQIFAmVKBQJmaAMJAGYCAAAFAmZpCQACAQkArAICAhhnd3hEaWZmIGlzIGxlc3MgdGhlbiAwOiAJAKQDAQUCZmkEAmNmCQECY2EBBwQCZmoJAQJjYQEGCQDOCAIJAM0IAgkAzggCCQECY0kIBQJiUQUCZW0FAmZlBQJmZwUCZmYFAmNtBQJjbgUCYm0JAQJjcQQFAmVGBQJlWgAAAAAJAQJjaQgCBGxvY2sFAmJRBQJlRgUCY2wFAmZmBQJjbQUCY24FAmFICQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYnoACQBkAgUCY2YFAmZpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUgBDGNsYWltV3hCb29zdAICYkkCYlEDCQECIT0CBQJiVAgFAmFIBmNhbGxlcgkAAgECEnBlcm1pc3Npb25zIGRlbmllZAQCZmsJAQJlaQMFAmJJBQJiUQcEAmZsCAUCZmsCXzEEAmVBCAUCZmsCXzIEAmVCCAUCZmsCXzMJAJQKAgUCZUEJAMwIAgUCZmwFA25pbAJhSAEUY2xhaW1XeEJvb3N0UkVBRE9OTFkCAmJJAmJRBAJmbQkBAmVpAwUCYkkFAmJRBgQCZmwIBQJmbQJfMQQCZUEIBQJmbQJfMgQCZUIIBQJmbQJfMwkAlAoCBQNuaWwJAMwIAgUCZmwJAMwIAgUCZUIFA25pbAJhSAEGdW5sb2NrAQJhUgQCZWwJAQJhUwEFAmFSBAJlbQkAkQMCBQJlbAUCYUsEAmZhCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZWwFAmFMBAJjbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVsBQJhTQQCZmIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbAUCYU4EAmZjCQBkAgUCY2wFAmZiBAJlRAkBAmF2AAQCYXkJANkEAQkAkQMCBQJlRAUCYXADCQBnAgUCZmMFBmhlaWdodAkAAgEJAKwCAgkArAICAgV3YWl0IAkApAMBBQJmYwIKIHRvIHVubG9jawMJAGcCAAAFAmZhCQACAQIRbm90aGluZyB0byB1bmxvY2sEAmJtCQELdmFsdWVPckVsc2UCCQCaCAIFAmF3CQECYW4AAAAJAM0IAgkAzQgCCQDOCAIJAQJjSQgFAmFSBQJlbQAABQJjbAUCZmIAAAAACQCkAwEFAmJtCQECY3EECQEBLQEFAmZhAAAAAAD///////////8BCQECY2kIAgZ1bmxvY2sFAmFSBQJmYQUCY2wFAmZiAAAAAAUCYUgJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAmFSBQJmYQUCYXkCYUgBE2d3eFVzZXJJbmZvUkVBRE9OTFkBAmFSBAJiYgkBAmNZAQUCYVIJAJQKAgUDbmlsCQDMCAIFAmJiBQNuaWwCYUgBF3VzZXJNYXhEdXJhdGlvblJFQURPTkxZAQJiUQQCZUQJAQJhdgAEAmFCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZUQFAmFzBAJlawkAnQgCBQR0aGlzCQECYVEBBQJiUQMJAAACBQJlawUEdW5pdAkAlAoCBQNuaWwJAJQKAgIEbG9jawUCYUIEAmVsCQC1CQIJAQV2YWx1ZQEFAmVrBQFhBAJjbAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmVsBQJhTQQCZmIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJlbAUCYU4EAmZjCQBkAgUCY2wFAmZiBAJmZAkAlgMBCQDMCAIJAGUCBQJmYwUGaGVpZ2h0CQDMCAIAAAUDbmlsBAJmbgkAZQIFAmFCBQJmZAkAlAoCBQNuaWwJAJQKAgIMaW5jcmVhc2VMb2NrBQJmbgJhSAEgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkCAmFSAmNVBAJiYgkBAmNUAgUCYVIFAmNVCQCUCgIFA25pbAUCYmICYUgBGWdldFRvdGFsQ2FjaGVkR3d4UkVBRE9OTFkACQCUCgIFA25pbAkBAmNhAQYCYUgBFW9uQm9vc3RFbWlzc2lvblVwZGF0ZQAEAmVRAwkAAAIIBQJhSAZjYWxsZXIFAmJTBgkBAmFHAQUCYUgDCQAAAgUCZVEFAmVRCQECZFkACQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFIARJvblN0YWtlZFZvdGVVcGRhdGUDAmJJAmJRAmRLBAJlUQMJAAACCAUCYUgGY2FsbGVyBQJiVAYJAQJhRwEFAmFIAwkAAAIFAmVRBQJlUQQCZE4JAQJkSgMFAmJJBQJiUQUCZEsJAJQKAgUCZE4FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUgBHWdldFZvdGluZ1Jlc3VsdFN0YWtlZFJFQURPTkxZAQJiSQkAlAoCBQNuaWwJAQJkbwEFAmJJAmFIASVnZXRWb3RpbmdSZXN1bHRTdGFrZWRJbnRlZ3JhbFJFQURPTkxZAQJiSQkAlAoCBQNuaWwJAQJkcwEFAmJJAmFIARxnZXRVc2VyVm90ZUZpbmFsaXplZFJFQURPTkxZAgJiSQJiUQkAlAoCBQNuaWwJAQJkaAIFAmJJBQJiUQJhSAEhZ2V0VXNlclZvdGVTdGFrZWRJbnRlZ3JhbFJFQURPTkxZAgJiSQJiUQkAlAoCBQNuaWwJAQJkQwIFAmJJBQJiUQJhSAEKc2V0TWFuYWdlcgECZm8EAmVRCQECYUcBBQJhSAMJAAACBQJlUQUCZVEEAmZwCQDZBAEFAmZvAwkAAAIFAmZwBQJmcAkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYABQJmbwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFIAQ5jb25maXJtTWFuYWdlcgAEAmZxCQECYUYABAJmcgMJAQlpc0RlZmluZWQBBQJmcQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZnIFAmZyBAJmcwMJAAACCAUCYUgPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJmcQYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZnMFAmZzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhZQAJANgEAQkBBXZhbHVlAQUCZnEJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFmAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJmdAECZnUABAJmdgQBcgkBAmFEAAMJAAECBQFyAgpCeXRlVmVjdG9yBAJhSgUBcgUCYUoDCQABAgUBcgIEVW5pdAgFAmZ0D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJmdAlib2R5Qnl0ZXMJAJEDAggFAmZ0BnByb29mcwAABQJmdsKUUk4=", "height": 2508515, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: RstxjT3A62mftuWWm7EP7AU1SbwQNdj9X6DRhbcaBkr Next: 4THcn7Ks9pm4T91eUrorvHvzBTNusSHv7wFnk862wsxX Diff:
OldNewDifferences
9393 func M () = "%s__factoryConfig"
9494
9595
96-func N (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
96+func N () = "%s__lpTokensList"
9797
9898
99-func P () = "%s__lpTokensList"
99+func O (P) = makeString(["%s%s%s", P, "mappings__lpAsset2PoolContract"], a)
100100
101101
102-func Q (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
102+func Q (R) = makeString(["%s%s", "poolWeight", R], a)
103103
104104
105-func R (S) = makeString(["%s%s", "poolWeight", S], a)
105+func S (T,U) = ((("%s%s__poolWeight__" + T) + "__") + toString(U))
106106
107107
108-func T (U,V) = ((("%s%s__poolWeight__" + U) + "__") + toString(V))
108+func V () = addressFromStringValue(h(this, A()))
109109
110110
111-func W () = addressFromStringValue(h(this, A()))
111+func W () = split(valueOrElse(getString(V(), N()), ""), a)
112112
113113
114-func X () = split(valueOrElse(getString(W(), P()), ""), a)
114+func X (Y) = split(h(Y, M()), a)
115115
116116
117-func Y (Z) = split(h(Z, M()), a)
117+func Z (aa) = addressFromStringValue(aa[C])
118118
119119
120-func aa (ab) = addressFromStringValue(ab[C])
120+func ab (aa) = addressFromStringValue(aa[F])
121121
122122
123-func ac (ab) = addressFromStringValue(ab[F])
123+func ac (aa) = addressFromStringValue(aa[B])
124124
125125
126-func ad (ab) = addressFromStringValue(ab[B])
126+func ad (aa) = addressFromStringValue(aa[K])
127127
128128
129-func ae (ab) = addressFromStringValue(ab[K])
129+func ae () = "%s__managerPublicKey"
130130
131131
132-func af () = "%s__managerPublicKey"
132+func af () = "%s__pendingManagerPublicKey"
133133
134134
135-func ag () = "%s__pendingManagerPublicKey"
135+func ag () = "%s%s__ratePerBlock__current"
136136
137137
138-func ah () = "%s%s__ratePerBlock__current"
138+func ah () = "%s%s__ratePerBlockMax__current"
139139
140140
141-func ai () = "%s%s__ratePerBlockMax__current"
141+func ai () = "%s%s__emission__startBlock"
142142
143143
144-func aj () = "%s%s__emission__startBlock"
144+func aj () = "%s%s__boostingV2__startBlock"
145145
146146
147-func ak () = "%s%s__boostingV2__startBlock"
147+func ak () = "%s%s__boostingV2__integral"
148148
149149
150-func al () = "%s%s__boostingV2__integral"
150+func al () = "%s%s__emission__duration"
151151
152152
153-func am () = "%s%s__emission__duration"
153+func am () = "%s%s__emission__endBlock"
154154
155155
156-func an () = "%s%s__emission__endBlock"
156+func an () = "%s__nextPeriod"
157157
158158
159-func ao () = "%s__nextPeriod"
159+func ao () = "%s%s__gwxRewardEmissionPart__startHeight"
160160
161161
162-func ap () = "%s%s__gwxRewardEmissionPart__startHeight"
162+let ap = 1
163+
164+let aq = 2
165+
166+let ar = 3
167+
168+let as = 4
169+
170+let at = 5
171+
172+func au () = "%s__config"
163173
164174
165-let aq = 1
166-
167-let ar = 2
168-
169-let as = 3
170-
171-let at = 4
172-
173-let au = 5
174-
175-func av () = "%s__config"
175+func av () = split(h(this, au()), a)
176176
177177
178-func aw () = split(h(this, av()), a)
178+let aw = addressFromStringValue(av()[at])
179+
180+func ax (ay,az,aA,aB,aw) = makeString(["%s%d%d%d", ay, az, aA, aB, aw], a)
179181
180182
181-let ax = addressFromStringValue(aw()[au])
182-
183-func ay (az,aA,aB,aC,ax) = makeString(["%s%d%d%d", az, aA, aB, aC, ax], a)
183+func aC (ay,az,aA,aB,aw) = ax(ay, toString(az), toString(aA), toString(aB), aw)
184184
185185
186-func aD (az,aA,aB,aC,ax) = ay(az, toString(aA), toString(aB), toString(aC), ax)
187-
188-
189-func aE () = {
190- let r = getString(af())
186+func aD () = {
187+ let r = getString(ae())
191188 if ($isInstanceOf(r, "String"))
192189 then {
193- let aF = r
194- fromBase58String(aF)
190+ let aE = r
191+ fromBase58String(aE)
195192 }
196193 else if ($isInstanceOf(r, "Unit"))
197194 then unit
199196 }
200197
201198
202-func aG () = {
203- let r = getString(ag())
199+func aF () = {
200+ let r = getString(af())
204201 if ($isInstanceOf(r, "String"))
205202 then {
206- let aF = r
207- fromBase58String(aF)
203+ let aE = r
204+ fromBase58String(aE)
208205 }
209206 else if ($isInstanceOf(r, "Unit"))
210207 then unit
212209 }
213210
214211
215-func aH (aI) = {
216- let aJ = throw("Permission denied")
217- let r = aE()
212+func aG (aH) = {
213+ let aI = throw("Permission denied")
214+ let r = aD()
218215 if ($isInstanceOf(r, "ByteVector"))
219216 then {
220- let aK = r
221- if ((aI.callerPublicKey == aK))
217+ let aJ = r
218+ if ((aH.callerPublicKey == aJ))
222219 then true
223- else aJ
220+ else aI
224221 }
225222 else if ($isInstanceOf(r, "Unit"))
226- then if ((aI.caller == this))
223+ then if ((aH.caller == this))
227224 then true
228- else aJ
225+ else aI
229226 else throw("Match error")
230227 }
231228
232229
233-let aL = 1
230+let aK = 1
234231
235-let aM = 2
232+let aL = 2
236233
237-let aN = 3
234+let aM = 3
238235
239-let aO = 4
236+let aN = 4
240237
241-let aP = 5
238+let aO = 5
242239
243-let aQ = 6
240+let aP = 6
244241
245-func aR (aS) = makeString(["%s%s__lock", aS], a)
242+func aQ (aR) = makeString(["%s%s__lock", aR], a)
246243
247244
248-func aT (aS) = split(h(this, aR(aS)), a)
245+func aS (aR) = split(h(this, aQ(aR)), a)
249246
250247
251-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)
248+func aT (aU,aV,aW,aX,aY,aZ,ba,bb) = makeString(["%d%d%d%d%d%d%d%d", aU, aV, aW, aX, aY, aZ, ba, bb], a)
252249
253250
254-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))
251+func bc (aU,aV,aW,aX,aY,aZ,bb) = aT(aU, toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ), toString(lastBlock.timestamp), toString(bb))
255252
256253
257-func be () = "%s__nextUserNum"
254+func bd () = "%s__nextUserNum"
258255
259256
260-func bf (aS) = makeString(["%s%s%s__mapping__user2num", aS], a)
257+func be (aR) = makeString(["%s%s%s__mapping__user2num", aR], a)
261258
262259
263-func bg (V) = makeString(["%s%s%s__mapping__num2user", V], a)
260+func bf (U) = makeString(["%s%s%s__mapping__num2user", U], a)
264261
265262
266-func bh (aV) = makeString(["%s%d%s__paramByUserNum", aV, "amount"], a)
263+func bg (aU) = makeString(["%s%d%s__paramByUserNum", aU, "amount"], a)
267264
268265
269-func bi (aV) = makeString(["%s%d%s__paramByUserNum", aV, "start"], a)
266+func bh (aU) = makeString(["%s%d%s__paramByUserNum", aU, "start"], a)
270267
271268
272-func bj (aV) = makeString(["%s%d%s__paramByUserNum", aV, "duration"], a)
269+func bi (aU) = makeString(["%s%d%s__paramByUserNum", aU, "duration"], a)
273270
274271
275-func bk (aV) = makeString(["%s%d%s__paramByUserNum", aV, "k"], a)
272+func bj (aU) = makeString(["%s%d%s__paramByUserNum", aU, "k"], a)
276273
277274
278-func bl (aV) = makeString(["%s%d%s__paramByUserNum", aV, "b"], a)
275+func bk (aU) = makeString(["%s%d%s__paramByUserNum", aU, "b"], a)
279276
280277
281-func bm (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "k", bn], a)
278+func bl (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "k", bm], a)
282279
283280
284-func bo (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "b", bn], a)
281+func bn (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "b", bm], a)
285282
286283
287-func bp () = "%s%s__stats__activeTotalLocked"
284+func bo () = "%s%s__stats__activeTotalLocked"
288285
289286
290-func bq () = "%s%s__stats__locksDurationSumInBlocks"
287+func bp () = "%s%s__stats__locksDurationSumInBlocks"
291288
292289
293-func br () = "%s%s__stats__locksCount"
290+func bq () = "%s%s__stats__locksCount"
294291
295292
296-func bs () = "%s%s__stats__activeUsersCount"
293+func br () = "%s%s__stats__activeUsersCount"
297294
298295
299-func bt (aV) = makeString(["%s%d__userBoostEmissionLastIntV2", aV], a)
296+func bs (aU) = makeString(["%s%d__userBoostEmissionLastIntV2", aU], a)
300297
301298
302-func bu (aV,bv) = makeString(["%s%d__userBoostEmissionLastIntV2", aV, bv], a)
299+func bt (aU,bu) = makeString(["%s%d__userBoostEmissionLastIntV2", aU, bu], a)
303300
304301
305-func bw (aV) = makeString(["%s%d__maxBoostInt", aV], a)
302+func bv (aU) = makeString(["%s%d__maxBoostInt", aU], a)
306303
307304
308-func bx () = "%s%s__maxBoostInt__total"
305+func bw () = "%s%s__maxBoostInt__total"
309306
310307
311-func by (aV) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aV], a)
308+func bx (aU) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aU], a)
312309
313310
314-func bz (aV) = makeString(["%s%d__userBoostClaimed", aV], a)
311+func by (aU) = makeString(["%s%d__userBoostClaimed", aU], a)
315312
316313
317-func bA () = "%s%s__gwxCached__total"
314+func bz () = "%s%s__gwxCached__total"
318315
319316
320-func bB () = "%s__gwxCachedTotalCorrective"
317+func bA () = "%s__gwxCachedTotalCorrective"
321318
322319
323-func bC (bD,bE,i,bF) = makeString(["%s%s%s%s%d", "vote", bD, bE, toString(i), toString(bF)], a)
320+func bB (bC,bD,i,bE) = makeString(["%s%s%s%s%d", "vote", bC, bD, toString(i), toString(bE)], a)
324321
325322
326-func bG (bF) = makeString(["%s%d", "startHeight", toString(bF)], a)
323+func bF (bE) = makeString(["%s%d", "startHeight", toString(bE)], a)
327324
328325
329-func bH () = makeString(["%s", "currentEpochUi"], a)
326+func bG () = makeString(["%s", "currentEpochUi"], a)
330327
331328
332-func bI (bJ,bF) = makeString(["%s%s%d", "votingResultStaked", bJ, toString(bF)], a)
329+func bH (bI,bE) = makeString(["%s%s%d", "votingResultStaked", bI, toString(bE)], a)
333330
334331
335-func bK (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegral", bJ, toString(bF)], a)
332+func bJ (bI,bE) = makeString(["%s%s%d", "votingResultStakedIntegral", bI, toString(bE)], a)
336333
337334
338-func bL (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bJ, toString(bF)], a)
335+func bK (bI,bE) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bI, toString(bE)], a)
339336
340337
341-func bM (bJ,i,bF) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bJ, toString(i), toString(bF)], a)
338+func bL (bI,i,bE) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bI, toString(i), toString(bE)], a)
342339
343340
344-func bN (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegral", bJ, toString(i), toString(bF)], a)
341+func bM (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegral", bI, toString(i), toString(bE)], a)
345342
346343
347-func bO (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bJ, toString(i), toString(bF)], a)
344+func bN (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bI, toString(i), toString(bE)], a)
348345
349346
350-func bP (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bJ, toString(i), toString(bF)], a)
347+func bO (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bI, toString(i), toString(bE)], a)
351348
352349
353-func bQ (bR,bJ) = makeString(["%s%s%s", "staked", bR, bJ], a)
350+func bP (bQ,bI) = makeString(["%s%s%s", "staked", bQ, bI], a)
354351
355352
356-let bS = W()
353+let bR = V()
357354
358-let ab = Y(bS)
355+let aa = X(bR)
359356
360-let bT = ac(ab)
357+let bS = ab(aa)
361358
362-let bU = ad(ab)
359+let bT = ac(aa)
363360
364-let bV = ae(ab)
361+let bU = ad(aa)
365362
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"))
363+let bV = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), e("lp_staking_pools contract address is undefined"))), e("invalid lp_staking_pools contract address"))
367364
368-let bX = makeString(["%s", "votingEmissionContract"], a)
365+let bW = makeString(["%s", "votingEmissionContract"], a)
369366
370-let bY = addressFromStringValue(getStringValue(bS, bX))
367+let bX = addressFromStringValue(getStringValue(bR, bW))
371368
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"))
369+let bY = {
370+ let bZ = invoke(bS, "getBoostCoeffREADONLY", nil, nil)
371+ if ($isInstanceOf(bZ, "Int"))
372+ then bZ
373+ else throw(($getType(bZ) + " couldn't be cast to Int"))
377374 }
378375
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))
376+func ca (cb) = {
377+ let cc = getIntegerValue(bX, bG())
378+ let cd = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
379+ let ce = getInteger(this, cd)
380+ let cf = valueOrElse(getInteger(this, bz()), 0)
381+ let cg = if (isDefined(ce))
382+ then (cc >= value(ce))
386383 else false
387- let ci = if (if (ch)
388- then cc
384+ let ch = if (if (cg)
385+ then cb
389386 else false)
390- then valueOrElse(getInteger(this, bB()), 0)
387+ then valueOrElse(getInteger(this, bA()), 0)
391388 else 0
392- max([0, (cg + ci)])
389+ max([0, (cf + ch)])
393390 }
394391
395392
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)
393+func ci (cj,ck,aV,cl,aX,cm,cn,aH) = {
394+ let co = makeString(["%s%s%s%s__history", cj, ck, toBase58String(aH.transactionId)], a)
395+ let cp = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aV), toString(cl), toString(aX), toString(cm), toString(cn)], a)
396+ StringEntry(co, cp)
400397 }
401398
402399
403-func cr (cs,ct,cu,cv) = {
400+func cq (cr,cs,ct,cu) = {
401+ let cv = bp()
404402 let cw = bq()
405403 let cx = br()
406- let cy = bs()
407- let cz = bp()
404+ let cy = bo()
405+ let cz = k(this, cv)
408406 let cA = k(this, cw)
409407 let cB = k(this, cx)
410408 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))]
409+[IntegerEntry(cv, (cz + cs)), IntegerEntry(cw, (cA + ct)), IntegerEntry(cx, (cB + cu)), IntegerEntry(cy, (cC + cr))]
413410 }
414411
415412
416-func cE (cF,cG,cH) = {
417- let cI = 1000
418- (((cF * cH) + cG) / cI)
413+func cD (cE,cF,cG) = {
414+ let cH = 1000
415+ (((cE * cG) + cF) / cH)
419416 }
420417
421418
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))]
419+func cI (aR,aU,aV,aW,aX,cm,cn,bm) = {
420+ let cJ = bg(aU)
421+ let cK = bh(aU)
422+ let cL = bi(aU)
423+ let cM = bj(aU)
424+ let cN = bk(aU)
425+ let cO = bl(aU, bm)
426+ let cP = bn(aU, bm)
427+ let bb = cD(cm, cn, height)
428+[IntegerEntry(cJ, aV), IntegerEntry(cK, aW), IntegerEntry(cL, aX), IntegerEntry(cM, cm), IntegerEntry(cN, cn), IntegerEntry(cO, cm), IntegerEntry(cP, cn), StringEntry(aQ(aR), bc(aU, aV, aW, aX, cm, cn, bb))]
432429 }
433430
434431
435-func cR (aI,cS) = if ((size(aI.payments) > 1))
432+func cQ (aH,cR) = if ((size(aH.payments) > 1))
436433 then throw("only one payment is allowed")
437- else if ((size(aI.payments) == 0))
434+ else if ((size(aH.payments) == 0))
438435 then 0
439436 else {
440- let cT = aI.payments[0]
441- if ((value(cT.assetId) != cS))
437+ let cS = aH.payments[0]
438+ if ((value(cS.assetId) != cR))
442439 then throw("invalid asset id in payment")
443- else cT.amount
440+ else cS.amount
444441 }
445442
446443
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))
444+func cT (aR,cU) = {
445+ let cV = "empty"
446+ let cW = be(aR)
447+ let aU = valueOrElse(getString(cW), cV)
448+ let cm = valueOrElse(getInteger(bj(aU)), 0)
449+ let cn = valueOrElse(getInteger(bk(aU)), 0)
450+ let cX = cD(cm, cn, cU)
451+ let bb = if ((0 > cX))
455452 then 0
456- else cY
457- bc
453+ else cX
454+ bb
458455 }
459456
460457
461-func cZ (aS) = cU(aS, height)
458+func cY (aR) = cT(aR, height)
462459
463460
464-func da () = {
465- let db = {
466- let cd = value(getInteger(bY, bH()))
467- let dc = (cd - 1)
468- if ((0 > dc))
461+func cZ () = {
462+ let da = {
463+ let cc = value(getInteger(bX, bG()))
464+ let db = (cc - 1)
465+ if ((0 > db))
469466 then g("invalid epoch")
470- else $Tuple2(cd, dc)
467+ else $Tuple2(cc, db)
471468 }
472- let cd = db._1
473- let dc = db._2
474- let dd = value(getInteger(bY, bG(cd)))
475- $Tuple2(dc, dd)
469+ let cc = da._1
470+ let db = da._2
471+ let dc = value(getInteger(bX, bF(cc)))
472+ $Tuple2(db, dc)
476473 }
477474
478475
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]"))
476+func dd (bI) = {
477+ let de = 4
478+ let df = 5
479+ let dg = {
480+ let bZ = invoke(bR, "getPoolConfigByLpAssetIdREADONLY", [bI], nil)
481+ if ($isInstanceOf(bZ, "List[Any]"))
482+ then bZ
483+ else throw(($getType(bZ) + " couldn't be cast to List[Any]"))
484+ }
485+ let bC = {
486+ let bZ = dg[de]
487+ if ($isInstanceOf(bZ, "String"))
488+ then bZ
489+ else throw(($getType(bZ) + " couldn't be cast to String"))
487490 }
488491 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"))
492+ let bZ = dg[df]
493+ if ($isInstanceOf(bZ, "String"))
494+ then bZ
495+ else throw(($getType(bZ) + " couldn't be cast to String"))
493496 }
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"))
499- }
500- $Tuple2(bD, bE)
497+ $Tuple2(bC, bD)
501498 }
502499
503500
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)
514- dm
501+func dh (bI,bQ) = {
502+ let aR = addressFromStringValue(bQ)
503+ let di = cZ()
504+ let db = di._1
505+ let dc = di._2
506+ let dj = dd(bI)
507+ let bC = dj._1
508+ let bD = dj._2
509+ let dk = bB(bC, bD, aR, db)
510+ let dl = valueOrElse(getInteger(bX, dk), 0)
511+ dl
515512 }
516513
517514
518-func dn (bJ,bR) = {
519- let do = valueOrElse(getInteger(bU, bQ(bR, bJ)), 0)
520- let dm = di(bJ, bR)
521- if ((do == 0))
515+func dm (bI,bQ) = {
516+ let dn = valueOrElse(getInteger(bT, bP(bQ, bI)), 0)
517+ let dl = dh(bI, bQ)
518+ if ((dn == 0))
522519 then 0
523- else dm
520+ else dl
524521 }
525522
526523
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)
533- ds
524+func do (bI) = {
525+ let dp = cZ()
526+ let db = dp._1
527+ let dc = dp._2
528+ let dq = valueOrElse(getInteger(bX, bH(bI, db)), 0)
529+ let dr = valueOrElse(getInteger(this, bH(bI, db)), dq)
530+ dr
534531 }
535532
536533
537-func dt (bJ) = {
538- let du = da()
539- let dc = du._1
540- let dd = du._2
541- let ds = dp(bJ)
542- let dv = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
543- let dw = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
544- let dx = (height - dw)
545- let dy = ((dx * ds) + dv)
546- dy
534+func ds (bI) = {
535+ let dt = cZ()
536+ let db = dt._1
537+ let dc = dt._2
538+ let dr = do(bI)
539+ let du = valueOrElse(getInteger(this, bJ(bI, db)), 0)
540+ let dv = valueOrElse(getInteger(this, bK(bI, db)), dc)
541+ let dw = (height - dv)
542+ let dx = ((dw * dr) + du)
543+ dx
547544 }
548545
549546
550-func dz (bJ,dA) = {
551- let dB = da()
552- let dc = dB._1
553- let dd = dB._2
554- let ds = dp(bJ)
555- let dC = (ds + dA)
556- let dy = dt(bJ)
557-[IntegerEntry(bI(bJ, dc), dC), IntegerEntry(bL(bJ, dc), height), IntegerEntry(bK(bJ, dc), dy)]
547+func dy (bI,dz) = {
548+ let dA = cZ()
549+ let db = dA._1
550+ let dc = dA._2
551+ let dr = do(bI)
552+ let dB = (dr + dz)
553+ let dx = ds(bI)
554+[IntegerEntry(bH(bI, db), dB), IntegerEntry(bK(bI, db), height), IntegerEntry(bJ(bI, db), dx)]
558555 }
559556
560557
561-func dD (bJ,bR) = {
562- let dE = da()
563- let dc = dE._1
564- let dd = dE._2
565- let aS = addressFromStringValue(bR)
566- let dF = dn(bJ, bR)
567- let dG = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
568- let dH = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
569- let dI = (height - dH)
570- let dJ = ((dI * dF) + dG)
571- dJ
558+func dC (bI,bQ) = {
559+ let dD = cZ()
560+ let db = dD._1
561+ let dc = dD._2
562+ let aR = addressFromStringValue(bQ)
563+ let dE = dm(bI, bQ)
564+ let dF = valueOrElse(getInteger(this, bM(bI, aR, db)), 0)
565+ let dG = valueOrElse(getInteger(this, bN(bI, aR, db)), dc)
566+ let dH = (height - dG)
567+ let dI = ((dH * dE) + dF)
568+ dI
572569 }
573570
574571
575-func dK (bJ,bR,dL) = {
576- let dM = da()
577- let dc = dM._1
578- let dd = dM._2
579- let aS = addressFromStringValue(bR)
580- let dN = di(bJ, bR)
581- let dO = if ((dN == 0))
572+func dJ (bI,bQ,dK) = {
573+ let dL = cZ()
574+ let db = dL._1
575+ let dc = dL._2
576+ let aR = addressFromStringValue(bQ)
577+ let dM = dh(bI, bQ)
578+ let dN = if ((dM == 0))
582579 then nil
583580 else {
584- let dA = if (dL)
585- then dN
586- else -(dN)
587- let dP = dz(bJ, dA)
588- let dJ = dD(bJ, bR)
589- let dQ = [IntegerEntry(bO(bJ, aS, dc), height), IntegerEntry(bN(bJ, aS, dc), dJ)]
590- (dP ++ dQ)
581+ let dz = if (dK)
582+ then dM
583+ else -(dM)
584+ let dO = dy(bI, dz)
585+ let dI = dC(bI, bQ)
586+ let dP = [IntegerEntry(bN(bI, aR, db), height), IntegerEntry(bM(bI, aR, db), dI)]
587+ (dO ++ dP)
591588 }
592- dO
589+ dN
593590 }
594591
595592
596-func dR (bJ,bR) = {
597- let dS = da()
598- let dc = dS._1
599- let dd = dS._2
600- let aS = addressFromStringValue(bR)
601- let dT = bP(bJ, aS, dc)
602- let dU = valueOrElse(getInteger(this, dT), 0)
603- let dV = bM(bJ, aS, dc)
604- let dW = valueOrElse(getInteger(this, dV), 0)
605- let dJ = dD(bJ, bR)
606- let dy = dt(bJ)
607- let dX = (dJ - dU)
608- let dY = (dy - dW)
609- $Tuple3([IntegerEntry(dT, dJ), IntegerEntry(dV, dy)], dX, dY)
593+func dQ (bI,bQ) = {
594+ let dR = cZ()
595+ let db = dR._1
596+ let dc = dR._2
597+ let aR = addressFromStringValue(bQ)
598+ let dS = bO(bI, aR, db)
599+ let dT = valueOrElse(getInteger(this, dS), 0)
600+ let dU = bL(bI, aR, db)
601+ let dV = valueOrElse(getInteger(this, dU), 0)
602+ let dI = dC(bI, bQ)
603+ let dx = ds(bI)
604+ let dW = (dI - dT)
605+ let dX = (dx - dV)
606+ $Tuple3([IntegerEntry(dS, dI), IntegerEntry(dU, dx)], dW, dX)
610607 }
611608
612609
613-func dZ () = {
614- let ea = n(bT, ah())
610+func dY () = {
611+ let dZ = n(bS, ag())
612+ let ea = getInteger(this, aj())
615613 let eb = getInteger(this, ak())
616- let ec = getInteger(this, al())
617- let ed = n(bT, an())
618- let cH = if ((height > ed))
619- then ed
614+ let ec = n(bS, am())
615+ let cG = if ((height > ec))
616+ then ec
620617 else height
621- let ee = {
622- let r = eb
618+ let ed = {
619+ let r = ea
623620 if ($isInstanceOf(r, "Int"))
624621 then {
625- let ef = r
626- max([(cH - ef), 0])
622+ let ee = r
623+ max([(cG - ee), 0])
627624 }
628625 else if ($isInstanceOf(r, "Unit"))
629626 then 0
630627 else throw("Match error")
631628 }
632- let eg = ((ea * (bZ - 1)) / bZ)
633- let eh = valueOrElse(ec, 0)
634- let ei = ((eg * ee) + eh)
635- $Tuple2([IntegerEntry(al(), ei), IntegerEntry(ak(), height)], ei)
629+ let ef = ((dZ * (bY - 1)) / bY)
630+ let eg = valueOrElse(eb, 0)
631+ let eh = ((ef * ed) + eg)
632+ $Tuple2([IntegerEntry(ak(), eh), IntegerEntry(aj(), height)], eh)
636633 }
637634
638635
639-func ej (bJ,bR,ek) = {
640- let el = getString(this, aR(bR))
641- if ((el == unit))
636+func ei (bI,bQ,ej) = {
637+ let ek = getString(this, aQ(bQ))
638+ if ((ek == unit))
642639 then $Tuple3(0, nil, "userRecord::is::empty")
643640 else {
644- let em = split(value(el), a)
645- let en = em[aL]
646- let eo = "empty"
647- let ep = if ((bJ != eo))
641+ let el = split(value(ek), a)
642+ let em = el[aK]
643+ let en = "empty"
644+ let eo = if ((bI != en))
648645 then {
649- let eq = valueOrErrorMessage(getString(bS, N(bJ)), ("unsupported lp asset " + bJ))
650- getIntegerValue(bS, R(eq))
646+ let ep = valueOrErrorMessage(getString(bR, O(bI)), ("unsupported lp asset " + bI))
647+ getIntegerValue(bR, Q(ep))
651648 }
652- else if (ek)
649+ else if (ej)
653650 then 0
654- else throw(("not readonly mode: unsupported lp asset " + bJ))
655- let er = bu(en, bJ)
656- let es = bt(en)
657- let et = valueOrElse(getInteger(this, er), k(this, es))
658- let ei = dZ()._2
659- let eu = (ei - et)
660- if ((0 > eu))
651+ else throw(("not readonly mode: unsupported lp asset " + bI))
652+ let eq = bt(em, bI)
653+ let er = bs(em)
654+ let es = valueOrElse(getInteger(this, eq), k(this, er))
655+ let eh = dY()._2
656+ let et = (eh - es)
657+ if ((0 > et))
661658 then throw("wrong calculations")
662659 else {
663- let ev = dR(bJ, bR)
664- let ew = ev._1
665- let ex = ev._2
666- let ey = ev._3
667- let ez = fraction(eu, ep, d)
668- let eA = if ((ey == 0))
660+ let eu = dQ(bI, bQ)
661+ let ev = eu._1
662+ let ew = eu._2
663+ let ex = eu._3
664+ let ey = fraction(et, eo, d)
665+ let ez = if ((ex == 0))
669666 then 0
670- else fraction(ez, ex, ey)
671- let eB = ([IntegerEntry(er, ei)] ++ ew)
672- let eC = makeString([toString(et), toString(eu), toString(ep), toString(ex), toString(ey)], ":")
673- $Tuple3(eA, eB, eC)
667+ else fraction(ey, ew, ex)
668+ let eA = ([IntegerEntry(eq, eh)] ++ ev)
669+ let eB = makeString([toString(es), toString(et), toString(eo), toString(ew), toString(ex)], ":")
670+ $Tuple3(ez, eA, eB)
674671 }
675672 }
676673 }
677674
678675
679-func eD (aI,aY) = {
680- let eE = aw()
681- let eF = eE[aq]
682- let az = fromBase58String(eF)
683- let aA = parseIntValue(eE[ar])
684- let aB = parseIntValue(eE[as])
685- let aC = parseIntValue(eE[at])
686- if ((size(aI.payments) != 1))
676+func eC (aH,aX) = {
677+ let eD = av()
678+ let eE = eD[ap]
679+ let ay = fromBase58String(eE)
680+ let az = parseIntValue(eD[aq])
681+ let aA = parseIntValue(eD[ar])
682+ let aB = parseIntValue(eD[as])
683+ if ((size(aH.payments) != 1))
687684 then throw("invalid payment - exact one payment must be attached")
688685 else {
689- let cT = aI.payments[0]
690- let eG = cT.amount
691- if ((az != value(cT.assetId)))
692- then throw((("invalid asset is in payment - " + eF) + " is expected"))
686+ let cS = aH.payments[0]
687+ let eF = cS.amount
688+ if ((ay != value(cS.assetId)))
689+ then throw((("invalid asset is in payment - " + eE) + " is expected"))
693690 else {
694- let eH = be()
695- let bR = toString(aI.caller)
696- let eI = isDefined(getString(bf(bR)))
697- let en = if (eI)
698- then value(getString(bf(bR)))
699- else toString(n(this, eH))
700- let aV = parseIntValue(en)
701- let cm = height
702- let cL = bi(en)
703- let cM = bj(en)
704- let cK = bh(en)
705- if (if ((aA > eG))
706- then (aI.caller != bW)
691+ let eG = bd()
692+ let bQ = toString(aH.caller)
693+ let eH = isDefined(getString(be(bQ)))
694+ let em = if (eH)
695+ then value(getString(be(bQ)))
696+ else toString(n(this, eG))
697+ let aU = parseIntValue(em)
698+ let cl = height
699+ let cK = bh(em)
700+ let cL = bi(em)
701+ let cJ = bg(em)
702+ if (if ((az > eF))
703+ then (aH.caller != bV)
707704 else false)
708- then throw(("amount is less then minLockAmount=" + toString(aA)))
709- else if ((aB > aY))
710- then throw(("passed duration is less then minLockDuration=" + toString(aB)))
711- else if ((aY > aC))
712- then throw(("passed duration is greater then maxLockDuration=" + toString(aC)))
713- else if (if (eI)
714- then ((n(this, cL) + n(this, cM)) >= cm)
705+ then throw(("amount is less then minLockAmount=" + toString(az)))
706+ else if ((aA > aX))
707+ then throw(("passed duration is less then minLockDuration=" + toString(aA)))
708+ else if ((aX > aB))
709+ then throw(("passed duration is greater then maxLockDuration=" + toString(aB)))
710+ else if (if (eH)
711+ then ((n(this, cK) + n(this, cL)) >= cl)
715712 else false)
716713 then throw("there is an active lock - consider to use increaseLock")
717- else if ((k(this, cK) > 0))
718- then throw(("there are locked WXs - consider to use increaseLock " + cK))
714+ else if ((k(this, cJ) > 0))
715+ then throw(("there are locked WXs - consider to use increaseLock " + cJ))
719716 else {
720- let eJ = fraction(aY, c, aC)
721- let eK = fraction(eG, eJ, c)
722- let eL = q(invoke(ax, "calcGwxParamsREADONLY", [eK, cm, aY], nil))
723- let cn = t(eL[0])
724- let co = t(eL[1])
725- let bn = toString(t(eL[2]))
726- let cg = cb(false)
727- let es = bt(en)
728- let ei = dZ()._2
729- let eM = if (eI)
717+ let eI = fraction(aX, c, aB)
718+ let eJ = fraction(eF, eI, c)
719+ let eK = q(invoke(aw, "calcGwxParamsREADONLY", [eJ, cl, aX], nil))
720+ let cm = t(eK[0])
721+ let cn = t(eK[1])
722+ let bm = toString(t(eK[2]))
723+ let cf = ca(false)
724+ let er = bs(em)
725+ let eh = dY()._2
726+ let eL = if (eH)
730727 then nil
731- else [IntegerEntry(eH, (aV + 1)), StringEntry(bf(bR), en), StringEntry(bg(en), bR)]
732- $Tuple2(((((eM ++ cJ(bR, en, eG, cm, aY, cn, co, bn)) ++ cr(eG, aY, 1, if (eI)
728+ else [IntegerEntry(eG, (aU + 1)), StringEntry(be(bQ), em), StringEntry(bf(em), bQ)]
729+ $Tuple2(((((eL ++ cI(bQ, em, eF, cl, aX, cm, cn, bm)) ++ cq(eF, aX, 1, if (eH)
733730 then 0
734- else 1)) :+ cj("lock", bR, eG, cm, aY, cn, co, aI)) ++ [IntegerEntry(es, ei), IntegerEntry(bA(), (cg + eK))]), eK)
731+ else 1)) :+ ci("lock", bQ, eF, cl, aX, cm, cn, aH)) ++ [IntegerEntry(er, eh), IntegerEntry(bz(), (cf + eJ))]), eJ)
735732 }
736733 }
737734 }
738735 }
739736
740737
741-@Callable(aI)
742-func constructor (eN,eO,aA,eP,eQ,ax) = {
743- let eR = aH(aI)
744- if ((eR == eR))
745- then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eO, aA, eP, eQ, ax)), StringEntry(A(), eN)] ++ cr(0, 0, 0, 0))
738+@Callable(aH)
739+func constructor (eM,eN,az,eO,eP,aw) = {
740+ let eQ = aG(aH)
741+ if ((eQ == eQ))
742+ then ([IntegerEntry(bd(), 0), StringEntry(au(), aC(eN, az, eO, eP, aw)), StringEntry(A(), eM)] ++ cq(0, 0, 0, 0))
746743 else throw("Strict value is not equal to itself.")
747744 }
748745
749746
750747
751-@Callable(aI)
752-func lockRef (aY,eS,eT) = {
753- let eU = eD(aI, aY)
754- let eV = eU._1
755- let eK = eU._2
756- let eW = toString(aI.caller)
757- let eX = if (if ((eS == ""))
748+@Callable(aH)
749+func lockRef (aX,eR,eS) = {
750+ let eT = eC(aH, aX)
751+ let eU = eT._1
752+ let eJ = eT._2
753+ let eV = toString(aH.caller)
754+ let eW = if (if ((eR == ""))
758755 then true
759- else (eT == base58''))
756+ else (eS == base58''))
760757 then unit
761- else invoke(w, "createPair", [z, eS, eW, eT], nil)
762- if ((eX == eX))
758+ else invoke(w, "createPair", [z, eR, eV, eS], nil)
759+ if ((eW == eW))
763760 then {
764- let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
765- if ((eY == eY))
766- then $Tuple2(eV, unit)
761+ let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
762+ if ((eX == eX))
763+ then $Tuple2(eU, unit)
767764 else throw("Strict value is not equal to itself.")
768765 }
769766 else throw("Strict value is not equal to itself.")
771768
772769
773770
774-@Callable(aI)
775-func lock (aY) = {
776- let eZ = eD(aI, aY)
777- let eV = eZ._1
778- let eK = eZ._2
779- let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
780- if ((eY == eY))
781- then $Tuple2(eV, unit)
771+@Callable(aH)
772+func lock (aX) = {
773+ let eY = eC(aH, aX)
774+ let eU = eY._1
775+ let eJ = eY._2
776+ let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
777+ if ((eX == eX))
778+ then $Tuple2(eU, unit)
782779 else throw("Strict value is not equal to itself.")
783780 }
784781
785782
786783
787-@Callable(aI)
788-func increaseLock (fa) = {
789- let eE = aw()
790- let eF = eE[aq]
791- let az = fromBase58String(eF)
792- let aB = parseIntValue(eE[as])
793- let aC = parseIntValue(eE[at])
794- let eG = cR(aI, az)
795- let bR = toString(aI.caller)
796- let em = aT(bR)
797- let en = em[aL]
798- let fb = parseIntValue(em[aM])
799- let cm = parseIntValue(em[aN])
800- let fc = parseIntValue(em[aO])
801- let fd = (cm + fc)
802- let fe = max([(fd - height), 0])
803- let ff = (fb + eG)
804- let fg = (fe + fa)
805- if ((0 > fa))
784+@Callable(aH)
785+func increaseLock (eZ) = {
786+ let eD = av()
787+ let eE = eD[ap]
788+ let ay = fromBase58String(eE)
789+ let aA = parseIntValue(eD[ar])
790+ let aB = parseIntValue(eD[as])
791+ let eF = cQ(aH, ay)
792+ let bQ = toString(aH.caller)
793+ let el = aS(bQ)
794+ let em = el[aK]
795+ let fa = parseIntValue(el[aL])
796+ let cl = parseIntValue(el[aM])
797+ let fb = parseIntValue(el[aN])
798+ let fc = (cl + fb)
799+ let fd = max([(fc - height), 0])
800+ let fe = (fa + eF)
801+ let ff = (fd + eZ)
802+ if ((0 > eZ))
806803 then throw("duration is less then zero")
807- else if ((aB > fg))
808- then throw(("lockDurationNew is less then minLockDuration=" + toString(aB)))
809- else if ((fg > aC))
810- then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aC)))
804+ else if ((aA > ff))
805+ then throw(("lockDurationNew is less then minLockDuration=" + toString(aA)))
806+ else if ((ff > aB))
807+ then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
811808 else {
812- let eJ = fraction(fg, c, aC)
813- let eK = fraction(ff, eJ, c)
814- let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
815- if ((eY == eY))
809+ let eI = fraction(ff, c, aB)
810+ let eJ = fraction(fe, eI, c)
811+ let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
812+ if ((eX == eX))
816813 then {
817- let fh = height
818- let eL = q(invoke(ax, "calcGwxParamsREADONLY", [eK, fh, fg], nil))
819- let cn = t(eL[0])
820- let co = t(eL[1])
821- let bn = toString(t(eL[2]))
822- let fi = cZ(bR)
823- let fj = (eK - fi)
824- if ((0 > fj))
825- then throw(("gwxDiff is less then 0: " + toString(fj)))
814+ let fg = height
815+ let eK = q(invoke(aw, "calcGwxParamsREADONLY", [eJ, fg, ff], nil))
816+ let cm = t(eK[0])
817+ let cn = t(eK[1])
818+ let bm = toString(t(eK[2]))
819+ let fh = cY(bQ)
820+ let fi = (eJ - fh)
821+ if ((0 > fi))
822+ then throw(("gwxDiff is less then 0: " + toString(fi)))
826823 else {
827- let cg = cb(false)
828- let fk = cb(true)
829- (((cJ(bR, en, ff, fh, fg, cn, co, bn) ++ cr(eG, fa, 0, 0)) :+ cj("lock", bR, eG, cm, fg, cn, co, aI)) ++ [IntegerEntry(bA(), (cg + fj))])
824+ let cf = ca(false)
825+ let fj = ca(true)
826+ (((cI(bQ, em, fe, fg, ff, cm, cn, bm) ++ cq(eF, eZ, 0, 0)) :+ ci("lock", bQ, eF, cl, ff, cm, cn, aH)) ++ [IntegerEntry(bz(), (cf + fi))])
830827 }
831828 }
832829 else throw("Strict value is not equal to itself.")
835832
836833
837834
838-@Callable(aI)
839-func claimWxBoost (bJ,bR) = if ((bU != aI.caller))
835+@Callable(aH)
836+func claimWxBoost (bI,bQ) = if ((bT != aH.caller))
840837 then throw("permissions denied")
841838 else {
842- let fl = ej(bJ, bR, false)
843- let fm = fl._1
844- let eB = fl._2
845- let eC = fl._3
846- $Tuple2(eB, [fm])
839+ let fk = ei(bI, bQ, false)
840+ let fl = fk._1
841+ let eA = fk._2
842+ let eB = fk._3
843+ $Tuple2(eA, [fl])
847844 }
848845
849846
850847
851-@Callable(aI)
852-func claimWxBoostREADONLY (bJ,bR) = {
853- let fn = ej(bJ, bR, true)
854- let fm = fn._1
855- let eB = fn._2
856- let eC = fn._3
857- $Tuple2(nil, [fm, eC])
848+@Callable(aH)
849+func claimWxBoostREADONLY (bI,bQ) = {
850+ let fm = ei(bI, bQ, true)
851+ let fl = fm._1
852+ let eA = fm._2
853+ let eB = fm._3
854+ $Tuple2(nil, [fl, eB])
858855 }
859856
860857
861858
862-@Callable(aI)
863-func unlock (aS) = {
864- let em = aT(aS)
865- let en = em[aL]
866- let fb = parseIntValue(em[aM])
867- let cm = parseIntValue(em[aN])
868- let fc = parseIntValue(em[aO])
869- let fd = (cm + fc)
870- let eE = aw()
871- let az = fromBase58String(eE[aq])
872- if ((fd >= height))
873- then throw((("wait " + toString(fd)) + " to unlock"))
874- else if ((0 >= fb))
859+@Callable(aH)
860+func unlock (aR) = {
861+ let el = aS(aR)
862+ let em = el[aK]
863+ let fa = parseIntValue(el[aL])
864+ let cl = parseIntValue(el[aM])
865+ let fb = parseIntValue(el[aN])
866+ let fc = (cl + fb)
867+ let eD = av()
868+ let ay = fromBase58String(eD[ap])
869+ if ((fc >= height))
870+ then throw((("wait " + toString(fc)) + " to unlock"))
871+ else if ((0 >= fa))
875872 then throw("nothing to unlock")
876873 else {
877- let bn = valueOrElse(getInteger(ax, ao()), 0)
878- (((cJ(aS, en, 0, cm, fc, 0, 0, toString(bn)) ++ cr(-(fb), 0, 0, -1)) :+ cj("unlock", aS, fb, cm, fc, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), fb, az))
874+ let bm = valueOrElse(getInteger(aw, an()), 0)
875+ (((cI(aR, em, 0, cl, fb, 0, 0, toString(bm)) ++ cq(-(fa), 0, 0, -1)) :+ ci("unlock", aR, fa, cl, fb, 0, 0, aH)) :+ ScriptTransfer(addressFromStringValue(aR), fa, ay))
879876 }
880877 }
881878
882879
883880
884-@Callable(aI)
885-func gwxUserInfoREADONLY (aS) = {
886- let bc = cZ(aS)
887- $Tuple2(nil, [bc])
881+@Callable(aH)
882+func gwxUserInfoREADONLY (aR) = {
883+ let bb = cY(aR)
884+ $Tuple2(nil, [bb])
888885 }
889886
890887
891888
892-@Callable(aI)
893-func userMaxDurationREADONLY (bR) = {
894- let eE = aw()
895- let aC = parseIntValue(eE[at])
896- let el = getString(this, aR(bR))
897- if ((el == unit))
898- then $Tuple2(nil, $Tuple2("lock", aC))
889+@Callable(aH)
890+func userMaxDurationREADONLY (bQ) = {
891+ let eD = av()
892+ let aB = parseIntValue(eD[as])
893+ let ek = getString(this, aQ(bQ))
894+ if ((ek == unit))
895+ then $Tuple2(nil, $Tuple2("lock", aB))
899896 else {
900- let em = split(value(el), a)
901- let cm = parseIntValue(em[aN])
902- let fc = parseIntValue(em[aO])
903- let fd = (cm + fc)
904- let fe = max([(fd - height), 0])
905- let fo = (aC - fe)
906- $Tuple2(nil, $Tuple2("increaseLock", fo))
897+ let el = split(value(ek), a)
898+ let cl = parseIntValue(el[aM])
899+ let fb = parseIntValue(el[aN])
900+ let fc = (cl + fb)
901+ let fd = max([(fc - height), 0])
902+ let fn = (aB - fd)
903+ $Tuple2(nil, $Tuple2("increaseLock", fn))
907904 }
908905 }
909906
910907
911908
912-@Callable(aI)
913-func getUserGwxAmountAtHeightREADONLY (aS,cV) = {
914- let bc = cU(aS, cV)
915- $Tuple2(nil, bc)
909+@Callable(aH)
910+func getUserGwxAmountAtHeightREADONLY (aR,cU) = {
911+ let bb = cT(aR, cU)
912+ $Tuple2(nil, bb)
916913 }
917914
918915
919916
920-@Callable(aI)
921-func getTotalCachedGwxREADONLY () = $Tuple2(nil, cb(true))
917+@Callable(aH)
918+func getTotalCachedGwxREADONLY () = $Tuple2(nil, ca(true))
922919
923920
924921
925-@Callable(aI)
922+@Callable(aH)
926923 func onBoostEmissionUpdate () = {
927- let eR = if ((aI.caller == bT))
924+ let eQ = if ((aH.caller == bS))
928925 then true
929- else aH(aI)
930- if ((eR == eR))
931- then dZ()
926+ else aG(aH)
927+ if ((eQ == eQ))
928+ then dY()
932929 else throw("Strict value is not equal to itself.")
933930 }
934931
935932
936933
937-@Callable(aI)
938-func onStakedVoteUpdate (bJ,bR,dL) = {
939- let eR = if ((aI.caller == bU))
934+@Callable(aH)
935+func onStakedVoteUpdate (bI,bQ,dK) = {
936+ let eQ = if ((aH.caller == bT))
940937 then true
941- else aH(aI)
942- if ((eR == eR))
938+ else aG(aH)
939+ if ((eQ == eQ))
943940 then {
944- let dO = dK(bJ, bR, dL)
945- $Tuple2(dO, unit)
941+ let dN = dJ(bI, bQ, dK)
942+ $Tuple2(dN, unit)
946943 }
947944 else throw("Strict value is not equal to itself.")
948945 }
949946
950947
951948
952-@Callable(aI)
953-func getVotingResultStakedREADONLY (bJ) = $Tuple2(nil, dp(bJ))
949+@Callable(aH)
950+func getVotingResultStakedREADONLY (bI) = $Tuple2(nil, do(bI))
954951
955952
956953
957-@Callable(aI)
958-func getVotingResultStakedIntegralREADONLY (bJ) = $Tuple2(nil, dt(bJ))
954+@Callable(aH)
955+func getVotingResultStakedIntegralREADONLY (bI) = $Tuple2(nil, ds(bI))
959956
960957
961958
962-@Callable(aI)
963-func getUserVoteFinalizedREADONLY (bJ,bR) = $Tuple2(nil, di(bJ, bR))
959+@Callable(aH)
960+func getUserVoteFinalizedREADONLY (bI,bQ) = $Tuple2(nil, dh(bI, bQ))
964961
965962
966963
967-@Callable(aI)
968-func getUserVoteStakedIntegralREADONLY (bJ,bR) = $Tuple2(nil, dD(bJ, bR))
964+@Callable(aH)
965+func getUserVoteStakedIntegralREADONLY (bI,bQ) = $Tuple2(nil, dC(bI, bQ))
969966
970967
971968
972-@Callable(aI)
973-func setManager (fp) = {
974- let eR = aH(aI)
975- if ((eR == eR))
969+@Callable(aH)
970+func setManager (fo) = {
971+ let eQ = aG(aH)
972+ if ((eQ == eQ))
976973 then {
977- let fq = fromBase58String(fp)
978- if ((fq == fq))
979- then [StringEntry(ag(), fp)]
974+ let fp = fromBase58String(fo)
975+ if ((fp == fp))
976+ then [StringEntry(af(), fo)]
980977 else throw("Strict value is not equal to itself.")
981978 }
982979 else throw("Strict value is not equal to itself.")
984981
985982
986983
987-@Callable(aI)
984+@Callable(aH)
988985 func confirmManager () = {
989- let fr = aG()
990- let fs = if (isDefined(fr))
986+ let fq = aF()
987+ let fr = if (isDefined(fq))
991988 then true
992989 else throw("No pending manager")
993- if ((fs == fs))
990+ if ((fr == fr))
994991 then {
995- let ft = if ((aI.callerPublicKey == value(fr)))
992+ let fs = if ((aH.callerPublicKey == value(fq)))
996993 then true
997994 else throw("You are not pending manager")
998- if ((ft == ft))
999- then [StringEntry(af(), toBase58String(value(fr))), DeleteEntry(ag())]
995+ if ((fs == fs))
996+ then [StringEntry(ae(), toBase58String(value(fq))), DeleteEntry(af())]
1000997 else throw("Strict value is not equal to itself.")
1001998 }
1002999 else throw("Strict value is not equal to itself.")
10031000 }
10041001
10051002
1006-@Verifier(fu)
1007-func fv () = {
1008- let fw = {
1009- let r = aE()
1003+@Verifier(ft)
1004+func fu () = {
1005+ let fv = {
1006+ let r = aD()
10101007 if ($isInstanceOf(r, "ByteVector"))
10111008 then {
1012- let aK = r
1013- aK
1009+ let aJ = r
1010+ aJ
10141011 }
10151012 else if ($isInstanceOf(r, "Unit"))
1016- then fu.senderPublicKey
1013+ then ft.senderPublicKey
10171014 else throw("Match error")
10181015 }
1019- sigVerify(fu.bodyBytes, fu.proofs[0], fw)
1016+ sigVerify(ft.bodyBytes, ft.proofs[0], fv)
10201017 }
10211018
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
96-func N (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
96+func N () = "%s__lpTokensList"
9797
9898
99-func P () = "%s__lpTokensList"
99+func O (P) = makeString(["%s%s%s", P, "mappings__lpAsset2PoolContract"], a)
100100
101101
102-func Q (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
102+func Q (R) = makeString(["%s%s", "poolWeight", R], a)
103103
104104
105-func R (S) = makeString(["%s%s", "poolWeight", S], a)
105+func S (T,U) = ((("%s%s__poolWeight__" + T) + "__") + toString(U))
106106
107107
108-func T (U,V) = ((("%s%s__poolWeight__" + U) + "__") + toString(V))
108+func V () = addressFromStringValue(h(this, A()))
109109
110110
111-func W () = addressFromStringValue(h(this, A()))
111+func W () = split(valueOrElse(getString(V(), N()), ""), a)
112112
113113
114-func X () = split(valueOrElse(getString(W(), P()), ""), a)
114+func X (Y) = split(h(Y, M()), a)
115115
116116
117-func Y (Z) = split(h(Z, M()), a)
117+func Z (aa) = addressFromStringValue(aa[C])
118118
119119
120-func aa (ab) = addressFromStringValue(ab[C])
120+func ab (aa) = addressFromStringValue(aa[F])
121121
122122
123-func ac (ab) = addressFromStringValue(ab[F])
123+func ac (aa) = addressFromStringValue(aa[B])
124124
125125
126-func ad (ab) = addressFromStringValue(ab[B])
126+func ad (aa) = addressFromStringValue(aa[K])
127127
128128
129-func ae (ab) = addressFromStringValue(ab[K])
129+func ae () = "%s__managerPublicKey"
130130
131131
132-func af () = "%s__managerPublicKey"
132+func af () = "%s__pendingManagerPublicKey"
133133
134134
135-func ag () = "%s__pendingManagerPublicKey"
135+func ag () = "%s%s__ratePerBlock__current"
136136
137137
138-func ah () = "%s%s__ratePerBlock__current"
138+func ah () = "%s%s__ratePerBlockMax__current"
139139
140140
141-func ai () = "%s%s__ratePerBlockMax__current"
141+func ai () = "%s%s__emission__startBlock"
142142
143143
144-func aj () = "%s%s__emission__startBlock"
144+func aj () = "%s%s__boostingV2__startBlock"
145145
146146
147-func ak () = "%s%s__boostingV2__startBlock"
147+func ak () = "%s%s__boostingV2__integral"
148148
149149
150-func al () = "%s%s__boostingV2__integral"
150+func al () = "%s%s__emission__duration"
151151
152152
153-func am () = "%s%s__emission__duration"
153+func am () = "%s%s__emission__endBlock"
154154
155155
156-func an () = "%s%s__emission__endBlock"
156+func an () = "%s__nextPeriod"
157157
158158
159-func ao () = "%s__nextPeriod"
159+func ao () = "%s%s__gwxRewardEmissionPart__startHeight"
160160
161161
162-func ap () = "%s%s__gwxRewardEmissionPart__startHeight"
162+let ap = 1
163+
164+let aq = 2
165+
166+let ar = 3
167+
168+let as = 4
169+
170+let at = 5
171+
172+func au () = "%s__config"
163173
164174
165-let aq = 1
166-
167-let ar = 2
168-
169-let as = 3
170-
171-let at = 4
172-
173-let au = 5
174-
175-func av () = "%s__config"
175+func av () = split(h(this, au()), a)
176176
177177
178-func aw () = split(h(this, av()), a)
178+let aw = addressFromStringValue(av()[at])
179+
180+func ax (ay,az,aA,aB,aw) = makeString(["%s%d%d%d", ay, az, aA, aB, aw], a)
179181
180182
181-let ax = addressFromStringValue(aw()[au])
182-
183-func ay (az,aA,aB,aC,ax) = makeString(["%s%d%d%d", az, aA, aB, aC, ax], a)
183+func aC (ay,az,aA,aB,aw) = ax(ay, toString(az), toString(aA), toString(aB), aw)
184184
185185
186-func aD (az,aA,aB,aC,ax) = ay(az, toString(aA), toString(aB), toString(aC), ax)
187-
188-
189-func aE () = {
190- let r = getString(af())
186+func aD () = {
187+ let r = getString(ae())
191188 if ($isInstanceOf(r, "String"))
192189 then {
193- let aF = r
194- fromBase58String(aF)
190+ let aE = r
191+ fromBase58String(aE)
195192 }
196193 else if ($isInstanceOf(r, "Unit"))
197194 then unit
198195 else throw("Match error")
199196 }
200197
201198
202-func aG () = {
203- let r = getString(ag())
199+func aF () = {
200+ let r = getString(af())
204201 if ($isInstanceOf(r, "String"))
205202 then {
206- let aF = r
207- fromBase58String(aF)
203+ let aE = r
204+ fromBase58String(aE)
208205 }
209206 else if ($isInstanceOf(r, "Unit"))
210207 then unit
211208 else throw("Match error")
212209 }
213210
214211
215-func aH (aI) = {
216- let aJ = throw("Permission denied")
217- let r = aE()
212+func aG (aH) = {
213+ let aI = throw("Permission denied")
214+ let r = aD()
218215 if ($isInstanceOf(r, "ByteVector"))
219216 then {
220- let aK = r
221- if ((aI.callerPublicKey == aK))
217+ let aJ = r
218+ if ((aH.callerPublicKey == aJ))
222219 then true
223- else aJ
220+ else aI
224221 }
225222 else if ($isInstanceOf(r, "Unit"))
226- then if ((aI.caller == this))
223+ then if ((aH.caller == this))
227224 then true
228- else aJ
225+ else aI
229226 else throw("Match error")
230227 }
231228
232229
233-let aL = 1
230+let aK = 1
234231
235-let aM = 2
232+let aL = 2
236233
237-let aN = 3
234+let aM = 3
238235
239-let aO = 4
236+let aN = 4
240237
241-let aP = 5
238+let aO = 5
242239
243-let aQ = 6
240+let aP = 6
244241
245-func aR (aS) = makeString(["%s%s__lock", aS], a)
242+func aQ (aR) = makeString(["%s%s__lock", aR], a)
246243
247244
248-func aT (aS) = split(h(this, aR(aS)), a)
245+func aS (aR) = split(h(this, aQ(aR)), a)
249246
250247
251-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)
248+func aT (aU,aV,aW,aX,aY,aZ,ba,bb) = makeString(["%d%d%d%d%d%d%d%d", aU, aV, aW, aX, aY, aZ, ba, bb], a)
252249
253250
254-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))
251+func bc (aU,aV,aW,aX,aY,aZ,bb) = aT(aU, toString(aV), toString(aW), toString(aX), toString(aY), toString(aZ), toString(lastBlock.timestamp), toString(bb))
255252
256253
257-func be () = "%s__nextUserNum"
254+func bd () = "%s__nextUserNum"
258255
259256
260-func bf (aS) = makeString(["%s%s%s__mapping__user2num", aS], a)
257+func be (aR) = makeString(["%s%s%s__mapping__user2num", aR], a)
261258
262259
263-func bg (V) = makeString(["%s%s%s__mapping__num2user", V], a)
260+func bf (U) = makeString(["%s%s%s__mapping__num2user", U], a)
264261
265262
266-func bh (aV) = makeString(["%s%d%s__paramByUserNum", aV, "amount"], a)
263+func bg (aU) = makeString(["%s%d%s__paramByUserNum", aU, "amount"], a)
267264
268265
269-func bi (aV) = makeString(["%s%d%s__paramByUserNum", aV, "start"], a)
266+func bh (aU) = makeString(["%s%d%s__paramByUserNum", aU, "start"], a)
270267
271268
272-func bj (aV) = makeString(["%s%d%s__paramByUserNum", aV, "duration"], a)
269+func bi (aU) = makeString(["%s%d%s__paramByUserNum", aU, "duration"], a)
273270
274271
275-func bk (aV) = makeString(["%s%d%s__paramByUserNum", aV, "k"], a)
272+func bj (aU) = makeString(["%s%d%s__paramByUserNum", aU, "k"], a)
276273
277274
278-func bl (aV) = makeString(["%s%d%s__paramByUserNum", aV, "b"], a)
275+func bk (aU) = makeString(["%s%d%s__paramByUserNum", aU, "b"], a)
279276
280277
281-func bm (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "k", bn], a)
278+func bl (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "k", bm], a)
282279
283280
284-func bo (aV,bn) = makeString(["%s%d%s%d__paramByPeriod", aV, "b", bn], a)
281+func bn (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "b", bm], a)
285282
286283
287-func bp () = "%s%s__stats__activeTotalLocked"
284+func bo () = "%s%s__stats__activeTotalLocked"
288285
289286
290-func bq () = "%s%s__stats__locksDurationSumInBlocks"
287+func bp () = "%s%s__stats__locksDurationSumInBlocks"
291288
292289
293-func br () = "%s%s__stats__locksCount"
290+func bq () = "%s%s__stats__locksCount"
294291
295292
296-func bs () = "%s%s__stats__activeUsersCount"
293+func br () = "%s%s__stats__activeUsersCount"
297294
298295
299-func bt (aV) = makeString(["%s%d__userBoostEmissionLastIntV2", aV], a)
296+func bs (aU) = makeString(["%s%d__userBoostEmissionLastIntV2", aU], a)
300297
301298
302-func bu (aV,bv) = makeString(["%s%d__userBoostEmissionLastIntV2", aV, bv], a)
299+func bt (aU,bu) = makeString(["%s%d__userBoostEmissionLastIntV2", aU, bu], a)
303300
304301
305-func bw (aV) = makeString(["%s%d__maxBoostInt", aV], a)
302+func bv (aU) = makeString(["%s%d__maxBoostInt", aU], a)
306303
307304
308-func bx () = "%s%s__maxBoostInt__total"
305+func bw () = "%s%s__maxBoostInt__total"
309306
310307
311-func by (aV) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aV], a)
308+func bx (aU) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aU], a)
312309
313310
314-func bz (aV) = makeString(["%s%d__userBoostClaimed", aV], a)
311+func by (aU) = makeString(["%s%d__userBoostClaimed", aU], a)
315312
316313
317-func bA () = "%s%s__gwxCached__total"
314+func bz () = "%s%s__gwxCached__total"
318315
319316
320-func bB () = "%s__gwxCachedTotalCorrective"
317+func bA () = "%s__gwxCachedTotalCorrective"
321318
322319
323-func bC (bD,bE,i,bF) = makeString(["%s%s%s%s%d", "vote", bD, bE, toString(i), toString(bF)], a)
320+func bB (bC,bD,i,bE) = makeString(["%s%s%s%s%d", "vote", bC, bD, toString(i), toString(bE)], a)
324321
325322
326-func bG (bF) = makeString(["%s%d", "startHeight", toString(bF)], a)
323+func bF (bE) = makeString(["%s%d", "startHeight", toString(bE)], a)
327324
328325
329-func bH () = makeString(["%s", "currentEpochUi"], a)
326+func bG () = makeString(["%s", "currentEpochUi"], a)
330327
331328
332-func bI (bJ,bF) = makeString(["%s%s%d", "votingResultStaked", bJ, toString(bF)], a)
329+func bH (bI,bE) = makeString(["%s%s%d", "votingResultStaked", bI, toString(bE)], a)
333330
334331
335-func bK (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegral", bJ, toString(bF)], a)
332+func bJ (bI,bE) = makeString(["%s%s%d", "votingResultStakedIntegral", bI, toString(bE)], a)
336333
337334
338-func bL (bJ,bF) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bJ, toString(bF)], a)
335+func bK (bI,bE) = makeString(["%s%s%d", "votingResultStakedIntegralLastUpdateHeight", bI, toString(bE)], a)
339336
340337
341-func bM (bJ,i,bF) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bJ, toString(i), toString(bF)], a)
338+func bL (bI,i,bE) = makeString(["%s%s%s%d", "votingResultStakedIntegralLast", bI, toString(i), toString(bE)], a)
342339
343340
344-func bN (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegral", bJ, toString(i), toString(bF)], a)
341+func bM (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegral", bI, toString(i), toString(bE)], a)
345342
346343
347-func bO (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bJ, toString(i), toString(bF)], a)
344+func bN (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegralLastUpdateHeight", bI, toString(i), toString(bE)], a)
348345
349346
350-func bP (bJ,i,bF) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bJ, toString(i), toString(bF)], a)
347+func bO (bI,i,bE) = makeString(["%s%s%s%d", "voteStakedIntegralLast", bI, toString(i), toString(bE)], a)
351348
352349
353-func bQ (bR,bJ) = makeString(["%s%s%s", "staked", bR, bJ], a)
350+func bP (bQ,bI) = makeString(["%s%s%s", "staked", bQ, bI], a)
354351
355352
356-let bS = W()
353+let bR = V()
357354
358-let ab = Y(bS)
355+let aa = X(bR)
359356
360-let bT = ac(ab)
357+let bS = ab(aa)
361358
362-let bU = ad(ab)
359+let bT = ac(aa)
363360
364-let bV = ae(ab)
361+let bU = ad(aa)
365362
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"))
363+let bV = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), e("lp_staking_pools contract address is undefined"))), e("invalid lp_staking_pools contract address"))
367364
368-let bX = makeString(["%s", "votingEmissionContract"], a)
365+let bW = makeString(["%s", "votingEmissionContract"], a)
369366
370-let bY = addressFromStringValue(getStringValue(bS, bX))
367+let bX = addressFromStringValue(getStringValue(bR, bW))
371368
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"))
369+let bY = {
370+ let bZ = invoke(bS, "getBoostCoeffREADONLY", nil, nil)
371+ if ($isInstanceOf(bZ, "Int"))
372+ then bZ
373+ else throw(($getType(bZ) + " couldn't be cast to Int"))
377374 }
378375
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))
376+func ca (cb) = {
377+ let cc = getIntegerValue(bX, bG())
378+ let cd = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
379+ let ce = getInteger(this, cd)
380+ let cf = valueOrElse(getInteger(this, bz()), 0)
381+ let cg = if (isDefined(ce))
382+ then (cc >= value(ce))
386383 else false
387- let ci = if (if (ch)
388- then cc
384+ let ch = if (if (cg)
385+ then cb
389386 else false)
390- then valueOrElse(getInteger(this, bB()), 0)
387+ then valueOrElse(getInteger(this, bA()), 0)
391388 else 0
392- max([0, (cg + ci)])
389+ max([0, (cf + ch)])
393390 }
394391
395392
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)
393+func ci (cj,ck,aV,cl,aX,cm,cn,aH) = {
394+ let co = makeString(["%s%s%s%s__history", cj, ck, toBase58String(aH.transactionId)], a)
395+ let cp = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aV), toString(cl), toString(aX), toString(cm), toString(cn)], a)
396+ StringEntry(co, cp)
400397 }
401398
402399
403-func cr (cs,ct,cu,cv) = {
400+func cq (cr,cs,ct,cu) = {
401+ let cv = bp()
404402 let cw = bq()
405403 let cx = br()
406- let cy = bs()
407- let cz = bp()
404+ let cy = bo()
405+ let cz = k(this, cv)
408406 let cA = k(this, cw)
409407 let cB = k(this, cx)
410408 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))]
409+[IntegerEntry(cv, (cz + cs)), IntegerEntry(cw, (cA + ct)), IntegerEntry(cx, (cB + cu)), IntegerEntry(cy, (cC + cr))]
413410 }
414411
415412
416-func cE (cF,cG,cH) = {
417- let cI = 1000
418- (((cF * cH) + cG) / cI)
413+func cD (cE,cF,cG) = {
414+ let cH = 1000
415+ (((cE * cG) + cF) / cH)
419416 }
420417
421418
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))]
419+func cI (aR,aU,aV,aW,aX,cm,cn,bm) = {
420+ let cJ = bg(aU)
421+ let cK = bh(aU)
422+ let cL = bi(aU)
423+ let cM = bj(aU)
424+ let cN = bk(aU)
425+ let cO = bl(aU, bm)
426+ let cP = bn(aU, bm)
427+ let bb = cD(cm, cn, height)
428+[IntegerEntry(cJ, aV), IntegerEntry(cK, aW), IntegerEntry(cL, aX), IntegerEntry(cM, cm), IntegerEntry(cN, cn), IntegerEntry(cO, cm), IntegerEntry(cP, cn), StringEntry(aQ(aR), bc(aU, aV, aW, aX, cm, cn, bb))]
432429 }
433430
434431
435-func cR (aI,cS) = if ((size(aI.payments) > 1))
432+func cQ (aH,cR) = if ((size(aH.payments) > 1))
436433 then throw("only one payment is allowed")
437- else if ((size(aI.payments) == 0))
434+ else if ((size(aH.payments) == 0))
438435 then 0
439436 else {
440- let cT = aI.payments[0]
441- if ((value(cT.assetId) != cS))
437+ let cS = aH.payments[0]
438+ if ((value(cS.assetId) != cR))
442439 then throw("invalid asset id in payment")
443- else cT.amount
440+ else cS.amount
444441 }
445442
446443
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))
444+func cT (aR,cU) = {
445+ let cV = "empty"
446+ let cW = be(aR)
447+ let aU = valueOrElse(getString(cW), cV)
448+ let cm = valueOrElse(getInteger(bj(aU)), 0)
449+ let cn = valueOrElse(getInteger(bk(aU)), 0)
450+ let cX = cD(cm, cn, cU)
451+ let bb = if ((0 > cX))
455452 then 0
456- else cY
457- bc
453+ else cX
454+ bb
458455 }
459456
460457
461-func cZ (aS) = cU(aS, height)
458+func cY (aR) = cT(aR, height)
462459
463460
464-func da () = {
465- let db = {
466- let cd = value(getInteger(bY, bH()))
467- let dc = (cd - 1)
468- if ((0 > dc))
461+func cZ () = {
462+ let da = {
463+ let cc = value(getInteger(bX, bG()))
464+ let db = (cc - 1)
465+ if ((0 > db))
469466 then g("invalid epoch")
470- else $Tuple2(cd, dc)
467+ else $Tuple2(cc, db)
471468 }
472- let cd = db._1
473- let dc = db._2
474- let dd = value(getInteger(bY, bG(cd)))
475- $Tuple2(dc, dd)
469+ let cc = da._1
470+ let db = da._2
471+ let dc = value(getInteger(bX, bF(cc)))
472+ $Tuple2(db, dc)
476473 }
477474
478475
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]"))
476+func dd (bI) = {
477+ let de = 4
478+ let df = 5
479+ let dg = {
480+ let bZ = invoke(bR, "getPoolConfigByLpAssetIdREADONLY", [bI], nil)
481+ if ($isInstanceOf(bZ, "List[Any]"))
482+ then bZ
483+ else throw(($getType(bZ) + " couldn't be cast to List[Any]"))
484+ }
485+ let bC = {
486+ let bZ = dg[de]
487+ if ($isInstanceOf(bZ, "String"))
488+ then bZ
489+ else throw(($getType(bZ) + " couldn't be cast to String"))
487490 }
488491 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"))
492+ let bZ = dg[df]
493+ if ($isInstanceOf(bZ, "String"))
494+ then bZ
495+ else throw(($getType(bZ) + " couldn't be cast to String"))
493496 }
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"))
499- }
500- $Tuple2(bD, bE)
497+ $Tuple2(bC, bD)
501498 }
502499
503500
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)
514- dm
501+func dh (bI,bQ) = {
502+ let aR = addressFromStringValue(bQ)
503+ let di = cZ()
504+ let db = di._1
505+ let dc = di._2
506+ let dj = dd(bI)
507+ let bC = dj._1
508+ let bD = dj._2
509+ let dk = bB(bC, bD, aR, db)
510+ let dl = valueOrElse(getInteger(bX, dk), 0)
511+ dl
515512 }
516513
517514
518-func dn (bJ,bR) = {
519- let do = valueOrElse(getInteger(bU, bQ(bR, bJ)), 0)
520- let dm = di(bJ, bR)
521- if ((do == 0))
515+func dm (bI,bQ) = {
516+ let dn = valueOrElse(getInteger(bT, bP(bQ, bI)), 0)
517+ let dl = dh(bI, bQ)
518+ if ((dn == 0))
522519 then 0
523- else dm
520+ else dl
524521 }
525522
526523
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)
533- ds
524+func do (bI) = {
525+ let dp = cZ()
526+ let db = dp._1
527+ let dc = dp._2
528+ let dq = valueOrElse(getInteger(bX, bH(bI, db)), 0)
529+ let dr = valueOrElse(getInteger(this, bH(bI, db)), dq)
530+ dr
534531 }
535532
536533
537-func dt (bJ) = {
538- let du = da()
539- let dc = du._1
540- let dd = du._2
541- let ds = dp(bJ)
542- let dv = valueOrElse(getInteger(this, bK(bJ, dc)), 0)
543- let dw = valueOrElse(getInteger(this, bL(bJ, dc)), dd)
544- let dx = (height - dw)
545- let dy = ((dx * ds) + dv)
546- dy
534+func ds (bI) = {
535+ let dt = cZ()
536+ let db = dt._1
537+ let dc = dt._2
538+ let dr = do(bI)
539+ let du = valueOrElse(getInteger(this, bJ(bI, db)), 0)
540+ let dv = valueOrElse(getInteger(this, bK(bI, db)), dc)
541+ let dw = (height - dv)
542+ let dx = ((dw * dr) + du)
543+ dx
547544 }
548545
549546
550-func dz (bJ,dA) = {
551- let dB = da()
552- let dc = dB._1
553- let dd = dB._2
554- let ds = dp(bJ)
555- let dC = (ds + dA)
556- let dy = dt(bJ)
557-[IntegerEntry(bI(bJ, dc), dC), IntegerEntry(bL(bJ, dc), height), IntegerEntry(bK(bJ, dc), dy)]
547+func dy (bI,dz) = {
548+ let dA = cZ()
549+ let db = dA._1
550+ let dc = dA._2
551+ let dr = do(bI)
552+ let dB = (dr + dz)
553+ let dx = ds(bI)
554+[IntegerEntry(bH(bI, db), dB), IntegerEntry(bK(bI, db), height), IntegerEntry(bJ(bI, db), dx)]
558555 }
559556
560557
561-func dD (bJ,bR) = {
562- let dE = da()
563- let dc = dE._1
564- let dd = dE._2
565- let aS = addressFromStringValue(bR)
566- let dF = dn(bJ, bR)
567- let dG = valueOrElse(getInteger(this, bN(bJ, aS, dc)), 0)
568- let dH = valueOrElse(getInteger(this, bO(bJ, aS, dc)), dd)
569- let dI = (height - dH)
570- let dJ = ((dI * dF) + dG)
571- dJ
558+func dC (bI,bQ) = {
559+ let dD = cZ()
560+ let db = dD._1
561+ let dc = dD._2
562+ let aR = addressFromStringValue(bQ)
563+ let dE = dm(bI, bQ)
564+ let dF = valueOrElse(getInteger(this, bM(bI, aR, db)), 0)
565+ let dG = valueOrElse(getInteger(this, bN(bI, aR, db)), dc)
566+ let dH = (height - dG)
567+ let dI = ((dH * dE) + dF)
568+ dI
572569 }
573570
574571
575-func dK (bJ,bR,dL) = {
576- let dM = da()
577- let dc = dM._1
578- let dd = dM._2
579- let aS = addressFromStringValue(bR)
580- let dN = di(bJ, bR)
581- let dO = if ((dN == 0))
572+func dJ (bI,bQ,dK) = {
573+ let dL = cZ()
574+ let db = dL._1
575+ let dc = dL._2
576+ let aR = addressFromStringValue(bQ)
577+ let dM = dh(bI, bQ)
578+ let dN = if ((dM == 0))
582579 then nil
583580 else {
584- let dA = if (dL)
585- then dN
586- else -(dN)
587- let dP = dz(bJ, dA)
588- let dJ = dD(bJ, bR)
589- let dQ = [IntegerEntry(bO(bJ, aS, dc), height), IntegerEntry(bN(bJ, aS, dc), dJ)]
590- (dP ++ dQ)
581+ let dz = if (dK)
582+ then dM
583+ else -(dM)
584+ let dO = dy(bI, dz)
585+ let dI = dC(bI, bQ)
586+ let dP = [IntegerEntry(bN(bI, aR, db), height), IntegerEntry(bM(bI, aR, db), dI)]
587+ (dO ++ dP)
591588 }
592- dO
589+ dN
593590 }
594591
595592
596-func dR (bJ,bR) = {
597- let dS = da()
598- let dc = dS._1
599- let dd = dS._2
600- let aS = addressFromStringValue(bR)
601- let dT = bP(bJ, aS, dc)
602- let dU = valueOrElse(getInteger(this, dT), 0)
603- let dV = bM(bJ, aS, dc)
604- let dW = valueOrElse(getInteger(this, dV), 0)
605- let dJ = dD(bJ, bR)
606- let dy = dt(bJ)
607- let dX = (dJ - dU)
608- let dY = (dy - dW)
609- $Tuple3([IntegerEntry(dT, dJ), IntegerEntry(dV, dy)], dX, dY)
593+func dQ (bI,bQ) = {
594+ let dR = cZ()
595+ let db = dR._1
596+ let dc = dR._2
597+ let aR = addressFromStringValue(bQ)
598+ let dS = bO(bI, aR, db)
599+ let dT = valueOrElse(getInteger(this, dS), 0)
600+ let dU = bL(bI, aR, db)
601+ let dV = valueOrElse(getInteger(this, dU), 0)
602+ let dI = dC(bI, bQ)
603+ let dx = ds(bI)
604+ let dW = (dI - dT)
605+ let dX = (dx - dV)
606+ $Tuple3([IntegerEntry(dS, dI), IntegerEntry(dU, dx)], dW, dX)
610607 }
611608
612609
613-func dZ () = {
614- let ea = n(bT, ah())
610+func dY () = {
611+ let dZ = n(bS, ag())
612+ let ea = getInteger(this, aj())
615613 let eb = getInteger(this, ak())
616- let ec = getInteger(this, al())
617- let ed = n(bT, an())
618- let cH = if ((height > ed))
619- then ed
614+ let ec = n(bS, am())
615+ let cG = if ((height > ec))
616+ then ec
620617 else height
621- let ee = {
622- let r = eb
618+ let ed = {
619+ let r = ea
623620 if ($isInstanceOf(r, "Int"))
624621 then {
625- let ef = r
626- max([(cH - ef), 0])
622+ let ee = r
623+ max([(cG - ee), 0])
627624 }
628625 else if ($isInstanceOf(r, "Unit"))
629626 then 0
630627 else throw("Match error")
631628 }
632- let eg = ((ea * (bZ - 1)) / bZ)
633- let eh = valueOrElse(ec, 0)
634- let ei = ((eg * ee) + eh)
635- $Tuple2([IntegerEntry(al(), ei), IntegerEntry(ak(), height)], ei)
629+ let ef = ((dZ * (bY - 1)) / bY)
630+ let eg = valueOrElse(eb, 0)
631+ let eh = ((ef * ed) + eg)
632+ $Tuple2([IntegerEntry(ak(), eh), IntegerEntry(aj(), height)], eh)
636633 }
637634
638635
639-func ej (bJ,bR,ek) = {
640- let el = getString(this, aR(bR))
641- if ((el == unit))
636+func ei (bI,bQ,ej) = {
637+ let ek = getString(this, aQ(bQ))
638+ if ((ek == unit))
642639 then $Tuple3(0, nil, "userRecord::is::empty")
643640 else {
644- let em = split(value(el), a)
645- let en = em[aL]
646- let eo = "empty"
647- let ep = if ((bJ != eo))
641+ let el = split(value(ek), a)
642+ let em = el[aK]
643+ let en = "empty"
644+ let eo = if ((bI != en))
648645 then {
649- let eq = valueOrErrorMessage(getString(bS, N(bJ)), ("unsupported lp asset " + bJ))
650- getIntegerValue(bS, R(eq))
646+ let ep = valueOrErrorMessage(getString(bR, O(bI)), ("unsupported lp asset " + bI))
647+ getIntegerValue(bR, Q(ep))
651648 }
652- else if (ek)
649+ else if (ej)
653650 then 0
654- else throw(("not readonly mode: unsupported lp asset " + bJ))
655- let er = bu(en, bJ)
656- let es = bt(en)
657- let et = valueOrElse(getInteger(this, er), k(this, es))
658- let ei = dZ()._2
659- let eu = (ei - et)
660- if ((0 > eu))
651+ else throw(("not readonly mode: unsupported lp asset " + bI))
652+ let eq = bt(em, bI)
653+ let er = bs(em)
654+ let es = valueOrElse(getInteger(this, eq), k(this, er))
655+ let eh = dY()._2
656+ let et = (eh - es)
657+ if ((0 > et))
661658 then throw("wrong calculations")
662659 else {
663- let ev = dR(bJ, bR)
664- let ew = ev._1
665- let ex = ev._2
666- let ey = ev._3
667- let ez = fraction(eu, ep, d)
668- let eA = if ((ey == 0))
660+ let eu = dQ(bI, bQ)
661+ let ev = eu._1
662+ let ew = eu._2
663+ let ex = eu._3
664+ let ey = fraction(et, eo, d)
665+ let ez = if ((ex == 0))
669666 then 0
670- else fraction(ez, ex, ey)
671- let eB = ([IntegerEntry(er, ei)] ++ ew)
672- let eC = makeString([toString(et), toString(eu), toString(ep), toString(ex), toString(ey)], ":")
673- $Tuple3(eA, eB, eC)
667+ else fraction(ey, ew, ex)
668+ let eA = ([IntegerEntry(eq, eh)] ++ ev)
669+ let eB = makeString([toString(es), toString(et), toString(eo), toString(ew), toString(ex)], ":")
670+ $Tuple3(ez, eA, eB)
674671 }
675672 }
676673 }
677674
678675
679-func eD (aI,aY) = {
680- let eE = aw()
681- let eF = eE[aq]
682- let az = fromBase58String(eF)
683- let aA = parseIntValue(eE[ar])
684- let aB = parseIntValue(eE[as])
685- let aC = parseIntValue(eE[at])
686- if ((size(aI.payments) != 1))
676+func eC (aH,aX) = {
677+ let eD = av()
678+ let eE = eD[ap]
679+ let ay = fromBase58String(eE)
680+ let az = parseIntValue(eD[aq])
681+ let aA = parseIntValue(eD[ar])
682+ let aB = parseIntValue(eD[as])
683+ if ((size(aH.payments) != 1))
687684 then throw("invalid payment - exact one payment must be attached")
688685 else {
689- let cT = aI.payments[0]
690- let eG = cT.amount
691- if ((az != value(cT.assetId)))
692- then throw((("invalid asset is in payment - " + eF) + " is expected"))
686+ let cS = aH.payments[0]
687+ let eF = cS.amount
688+ if ((ay != value(cS.assetId)))
689+ then throw((("invalid asset is in payment - " + eE) + " is expected"))
693690 else {
694- let eH = be()
695- let bR = toString(aI.caller)
696- let eI = isDefined(getString(bf(bR)))
697- let en = if (eI)
698- then value(getString(bf(bR)))
699- else toString(n(this, eH))
700- let aV = parseIntValue(en)
701- let cm = height
702- let cL = bi(en)
703- let cM = bj(en)
704- let cK = bh(en)
705- if (if ((aA > eG))
706- then (aI.caller != bW)
691+ let eG = bd()
692+ let bQ = toString(aH.caller)
693+ let eH = isDefined(getString(be(bQ)))
694+ let em = if (eH)
695+ then value(getString(be(bQ)))
696+ else toString(n(this, eG))
697+ let aU = parseIntValue(em)
698+ let cl = height
699+ let cK = bh(em)
700+ let cL = bi(em)
701+ let cJ = bg(em)
702+ if (if ((az > eF))
703+ then (aH.caller != bV)
707704 else false)
708- then throw(("amount is less then minLockAmount=" + toString(aA)))
709- else if ((aB > aY))
710- then throw(("passed duration is less then minLockDuration=" + toString(aB)))
711- else if ((aY > aC))
712- then throw(("passed duration is greater then maxLockDuration=" + toString(aC)))
713- else if (if (eI)
714- then ((n(this, cL) + n(this, cM)) >= cm)
705+ then throw(("amount is less then minLockAmount=" + toString(az)))
706+ else if ((aA > aX))
707+ then throw(("passed duration is less then minLockDuration=" + toString(aA)))
708+ else if ((aX > aB))
709+ then throw(("passed duration is greater then maxLockDuration=" + toString(aB)))
710+ else if (if (eH)
711+ then ((n(this, cK) + n(this, cL)) >= cl)
715712 else false)
716713 then throw("there is an active lock - consider to use increaseLock")
717- else if ((k(this, cK) > 0))
718- then throw(("there are locked WXs - consider to use increaseLock " + cK))
714+ else if ((k(this, cJ) > 0))
715+ then throw(("there are locked WXs - consider to use increaseLock " + cJ))
719716 else {
720- let eJ = fraction(aY, c, aC)
721- let eK = fraction(eG, eJ, c)
722- let eL = q(invoke(ax, "calcGwxParamsREADONLY", [eK, cm, aY], nil))
723- let cn = t(eL[0])
724- let co = t(eL[1])
725- let bn = toString(t(eL[2]))
726- let cg = cb(false)
727- let es = bt(en)
728- let ei = dZ()._2
729- let eM = if (eI)
717+ let eI = fraction(aX, c, aB)
718+ let eJ = fraction(eF, eI, c)
719+ let eK = q(invoke(aw, "calcGwxParamsREADONLY", [eJ, cl, aX], nil))
720+ let cm = t(eK[0])
721+ let cn = t(eK[1])
722+ let bm = toString(t(eK[2]))
723+ let cf = ca(false)
724+ let er = bs(em)
725+ let eh = dY()._2
726+ let eL = if (eH)
730727 then nil
731- else [IntegerEntry(eH, (aV + 1)), StringEntry(bf(bR), en), StringEntry(bg(en), bR)]
732- $Tuple2(((((eM ++ cJ(bR, en, eG, cm, aY, cn, co, bn)) ++ cr(eG, aY, 1, if (eI)
728+ else [IntegerEntry(eG, (aU + 1)), StringEntry(be(bQ), em), StringEntry(bf(em), bQ)]
729+ $Tuple2(((((eL ++ cI(bQ, em, eF, cl, aX, cm, cn, bm)) ++ cq(eF, aX, 1, if (eH)
733730 then 0
734- else 1)) :+ cj("lock", bR, eG, cm, aY, cn, co, aI)) ++ [IntegerEntry(es, ei), IntegerEntry(bA(), (cg + eK))]), eK)
731+ else 1)) :+ ci("lock", bQ, eF, cl, aX, cm, cn, aH)) ++ [IntegerEntry(er, eh), IntegerEntry(bz(), (cf + eJ))]), eJ)
735732 }
736733 }
737734 }
738735 }
739736
740737
741-@Callable(aI)
742-func constructor (eN,eO,aA,eP,eQ,ax) = {
743- let eR = aH(aI)
744- if ((eR == eR))
745- then ([IntegerEntry(be(), 0), StringEntry(av(), aD(eO, aA, eP, eQ, ax)), StringEntry(A(), eN)] ++ cr(0, 0, 0, 0))
738+@Callable(aH)
739+func constructor (eM,eN,az,eO,eP,aw) = {
740+ let eQ = aG(aH)
741+ if ((eQ == eQ))
742+ then ([IntegerEntry(bd(), 0), StringEntry(au(), aC(eN, az, eO, eP, aw)), StringEntry(A(), eM)] ++ cq(0, 0, 0, 0))
746743 else throw("Strict value is not equal to itself.")
747744 }
748745
749746
750747
751-@Callable(aI)
752-func lockRef (aY,eS,eT) = {
753- let eU = eD(aI, aY)
754- let eV = eU._1
755- let eK = eU._2
756- let eW = toString(aI.caller)
757- let eX = if (if ((eS == ""))
748+@Callable(aH)
749+func lockRef (aX,eR,eS) = {
750+ let eT = eC(aH, aX)
751+ let eU = eT._1
752+ let eJ = eT._2
753+ let eV = toString(aH.caller)
754+ let eW = if (if ((eR == ""))
758755 then true
759- else (eT == base58''))
756+ else (eS == base58''))
760757 then unit
761- else invoke(w, "createPair", [z, eS, eW, eT], nil)
762- if ((eX == eX))
758+ else invoke(w, "createPair", [z, eR, eV, eS], nil)
759+ if ((eW == eW))
763760 then {
764- let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
765- if ((eY == eY))
766- then $Tuple2(eV, unit)
761+ let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
762+ if ((eX == eX))
763+ then $Tuple2(eU, unit)
767764 else throw("Strict value is not equal to itself.")
768765 }
769766 else throw("Strict value is not equal to itself.")
770767 }
771768
772769
773770
774-@Callable(aI)
775-func lock (aY) = {
776- let eZ = eD(aI, aY)
777- let eV = eZ._1
778- let eK = eZ._2
779- let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
780- if ((eY == eY))
781- then $Tuple2(eV, unit)
771+@Callable(aH)
772+func lock (aX) = {
773+ let eY = eC(aH, aX)
774+ let eU = eY._1
775+ let eJ = eY._2
776+ let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
777+ if ((eX == eX))
778+ then $Tuple2(eU, unit)
782779 else throw("Strict value is not equal to itself.")
783780 }
784781
785782
786783
787-@Callable(aI)
788-func increaseLock (fa) = {
789- let eE = aw()
790- let eF = eE[aq]
791- let az = fromBase58String(eF)
792- let aB = parseIntValue(eE[as])
793- let aC = parseIntValue(eE[at])
794- let eG = cR(aI, az)
795- let bR = toString(aI.caller)
796- let em = aT(bR)
797- let en = em[aL]
798- let fb = parseIntValue(em[aM])
799- let cm = parseIntValue(em[aN])
800- let fc = parseIntValue(em[aO])
801- let fd = (cm + fc)
802- let fe = max([(fd - height), 0])
803- let ff = (fb + eG)
804- let fg = (fe + fa)
805- if ((0 > fa))
784+@Callable(aH)
785+func increaseLock (eZ) = {
786+ let eD = av()
787+ let eE = eD[ap]
788+ let ay = fromBase58String(eE)
789+ let aA = parseIntValue(eD[ar])
790+ let aB = parseIntValue(eD[as])
791+ let eF = cQ(aH, ay)
792+ let bQ = toString(aH.caller)
793+ let el = aS(bQ)
794+ let em = el[aK]
795+ let fa = parseIntValue(el[aL])
796+ let cl = parseIntValue(el[aM])
797+ let fb = parseIntValue(el[aN])
798+ let fc = (cl + fb)
799+ let fd = max([(fc - height), 0])
800+ let fe = (fa + eF)
801+ let ff = (fd + eZ)
802+ if ((0 > eZ))
806803 then throw("duration is less then zero")
807- else if ((aB > fg))
808- then throw(("lockDurationNew is less then minLockDuration=" + toString(aB)))
809- else if ((fg > aC))
810- then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aC)))
804+ else if ((aA > ff))
805+ then throw(("lockDurationNew is less then minLockDuration=" + toString(aA)))
806+ else if ((ff > aB))
807+ then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
811808 else {
812- let eJ = fraction(fg, c, aC)
813- let eK = fraction(ff, eJ, c)
814- let eY = invoke(ax, "updateReferralActivity", [toString(aI.caller), eK], nil)
815- if ((eY == eY))
809+ let eI = fraction(ff, c, aB)
810+ let eJ = fraction(fe, eI, c)
811+ let eX = invoke(aw, "updateReferralActivity", [toString(aH.caller), eJ], nil)
812+ if ((eX == eX))
816813 then {
817- let fh = height
818- let eL = q(invoke(ax, "calcGwxParamsREADONLY", [eK, fh, fg], nil))
819- let cn = t(eL[0])
820- let co = t(eL[1])
821- let bn = toString(t(eL[2]))
822- let fi = cZ(bR)
823- let fj = (eK - fi)
824- if ((0 > fj))
825- then throw(("gwxDiff is less then 0: " + toString(fj)))
814+ let fg = height
815+ let eK = q(invoke(aw, "calcGwxParamsREADONLY", [eJ, fg, ff], nil))
816+ let cm = t(eK[0])
817+ let cn = t(eK[1])
818+ let bm = toString(t(eK[2]))
819+ let fh = cY(bQ)
820+ let fi = (eJ - fh)
821+ if ((0 > fi))
822+ then throw(("gwxDiff is less then 0: " + toString(fi)))
826823 else {
827- let cg = cb(false)
828- let fk = cb(true)
829- (((cJ(bR, en, ff, fh, fg, cn, co, bn) ++ cr(eG, fa, 0, 0)) :+ cj("lock", bR, eG, cm, fg, cn, co, aI)) ++ [IntegerEntry(bA(), (cg + fj))])
824+ let cf = ca(false)
825+ let fj = ca(true)
826+ (((cI(bQ, em, fe, fg, ff, cm, cn, bm) ++ cq(eF, eZ, 0, 0)) :+ ci("lock", bQ, eF, cl, ff, cm, cn, aH)) ++ [IntegerEntry(bz(), (cf + fi))])
830827 }
831828 }
832829 else throw("Strict value is not equal to itself.")
833830 }
834831 }
835832
836833
837834
838-@Callable(aI)
839-func claimWxBoost (bJ,bR) = if ((bU != aI.caller))
835+@Callable(aH)
836+func claimWxBoost (bI,bQ) = if ((bT != aH.caller))
840837 then throw("permissions denied")
841838 else {
842- let fl = ej(bJ, bR, false)
843- let fm = fl._1
844- let eB = fl._2
845- let eC = fl._3
846- $Tuple2(eB, [fm])
839+ let fk = ei(bI, bQ, false)
840+ let fl = fk._1
841+ let eA = fk._2
842+ let eB = fk._3
843+ $Tuple2(eA, [fl])
847844 }
848845
849846
850847
851-@Callable(aI)
852-func claimWxBoostREADONLY (bJ,bR) = {
853- let fn = ej(bJ, bR, true)
854- let fm = fn._1
855- let eB = fn._2
856- let eC = fn._3
857- $Tuple2(nil, [fm, eC])
848+@Callable(aH)
849+func claimWxBoostREADONLY (bI,bQ) = {
850+ let fm = ei(bI, bQ, true)
851+ let fl = fm._1
852+ let eA = fm._2
853+ let eB = fm._3
854+ $Tuple2(nil, [fl, eB])
858855 }
859856
860857
861858
862-@Callable(aI)
863-func unlock (aS) = {
864- let em = aT(aS)
865- let en = em[aL]
866- let fb = parseIntValue(em[aM])
867- let cm = parseIntValue(em[aN])
868- let fc = parseIntValue(em[aO])
869- let fd = (cm + fc)
870- let eE = aw()
871- let az = fromBase58String(eE[aq])
872- if ((fd >= height))
873- then throw((("wait " + toString(fd)) + " to unlock"))
874- else if ((0 >= fb))
859+@Callable(aH)
860+func unlock (aR) = {
861+ let el = aS(aR)
862+ let em = el[aK]
863+ let fa = parseIntValue(el[aL])
864+ let cl = parseIntValue(el[aM])
865+ let fb = parseIntValue(el[aN])
866+ let fc = (cl + fb)
867+ let eD = av()
868+ let ay = fromBase58String(eD[ap])
869+ if ((fc >= height))
870+ then throw((("wait " + toString(fc)) + " to unlock"))
871+ else if ((0 >= fa))
875872 then throw("nothing to unlock")
876873 else {
877- let bn = valueOrElse(getInteger(ax, ao()), 0)
878- (((cJ(aS, en, 0, cm, fc, 0, 0, toString(bn)) ++ cr(-(fb), 0, 0, -1)) :+ cj("unlock", aS, fb, cm, fc, 0, 0, aI)) :+ ScriptTransfer(addressFromStringValue(aS), fb, az))
874+ let bm = valueOrElse(getInteger(aw, an()), 0)
875+ (((cI(aR, em, 0, cl, fb, 0, 0, toString(bm)) ++ cq(-(fa), 0, 0, -1)) :+ ci("unlock", aR, fa, cl, fb, 0, 0, aH)) :+ ScriptTransfer(addressFromStringValue(aR), fa, ay))
879876 }
880877 }
881878
882879
883880
884-@Callable(aI)
885-func gwxUserInfoREADONLY (aS) = {
886- let bc = cZ(aS)
887- $Tuple2(nil, [bc])
881+@Callable(aH)
882+func gwxUserInfoREADONLY (aR) = {
883+ let bb = cY(aR)
884+ $Tuple2(nil, [bb])
888885 }
889886
890887
891888
892-@Callable(aI)
893-func userMaxDurationREADONLY (bR) = {
894- let eE = aw()
895- let aC = parseIntValue(eE[at])
896- let el = getString(this, aR(bR))
897- if ((el == unit))
898- then $Tuple2(nil, $Tuple2("lock", aC))
889+@Callable(aH)
890+func userMaxDurationREADONLY (bQ) = {
891+ let eD = av()
892+ let aB = parseIntValue(eD[as])
893+ let ek = getString(this, aQ(bQ))
894+ if ((ek == unit))
895+ then $Tuple2(nil, $Tuple2("lock", aB))
899896 else {
900- let em = split(value(el), a)
901- let cm = parseIntValue(em[aN])
902- let fc = parseIntValue(em[aO])
903- let fd = (cm + fc)
904- let fe = max([(fd - height), 0])
905- let fo = (aC - fe)
906- $Tuple2(nil, $Tuple2("increaseLock", fo))
897+ let el = split(value(ek), a)
898+ let cl = parseIntValue(el[aM])
899+ let fb = parseIntValue(el[aN])
900+ let fc = (cl + fb)
901+ let fd = max([(fc - height), 0])
902+ let fn = (aB - fd)
903+ $Tuple2(nil, $Tuple2("increaseLock", fn))
907904 }
908905 }
909906
910907
911908
912-@Callable(aI)
913-func getUserGwxAmountAtHeightREADONLY (aS,cV) = {
914- let bc = cU(aS, cV)
915- $Tuple2(nil, bc)
909+@Callable(aH)
910+func getUserGwxAmountAtHeightREADONLY (aR,cU) = {
911+ let bb = cT(aR, cU)
912+ $Tuple2(nil, bb)
916913 }
917914
918915
919916
920-@Callable(aI)
921-func getTotalCachedGwxREADONLY () = $Tuple2(nil, cb(true))
917+@Callable(aH)
918+func getTotalCachedGwxREADONLY () = $Tuple2(nil, ca(true))
922919
923920
924921
925-@Callable(aI)
922+@Callable(aH)
926923 func onBoostEmissionUpdate () = {
927- let eR = if ((aI.caller == bT))
924+ let eQ = if ((aH.caller == bS))
928925 then true
929- else aH(aI)
930- if ((eR == eR))
931- then dZ()
926+ else aG(aH)
927+ if ((eQ == eQ))
928+ then dY()
932929 else throw("Strict value is not equal to itself.")
933930 }
934931
935932
936933
937-@Callable(aI)
938-func onStakedVoteUpdate (bJ,bR,dL) = {
939- let eR = if ((aI.caller == bU))
934+@Callable(aH)
935+func onStakedVoteUpdate (bI,bQ,dK) = {
936+ let eQ = if ((aH.caller == bT))
940937 then true
941- else aH(aI)
942- if ((eR == eR))
938+ else aG(aH)
939+ if ((eQ == eQ))
943940 then {
944- let dO = dK(bJ, bR, dL)
945- $Tuple2(dO, unit)
941+ let dN = dJ(bI, bQ, dK)
942+ $Tuple2(dN, unit)
946943 }
947944 else throw("Strict value is not equal to itself.")
948945 }
949946
950947
951948
952-@Callable(aI)
953-func getVotingResultStakedREADONLY (bJ) = $Tuple2(nil, dp(bJ))
949+@Callable(aH)
950+func getVotingResultStakedREADONLY (bI) = $Tuple2(nil, do(bI))
954951
955952
956953
957-@Callable(aI)
958-func getVotingResultStakedIntegralREADONLY (bJ) = $Tuple2(nil, dt(bJ))
954+@Callable(aH)
955+func getVotingResultStakedIntegralREADONLY (bI) = $Tuple2(nil, ds(bI))
959956
960957
961958
962-@Callable(aI)
963-func getUserVoteFinalizedREADONLY (bJ,bR) = $Tuple2(nil, di(bJ, bR))
959+@Callable(aH)
960+func getUserVoteFinalizedREADONLY (bI,bQ) = $Tuple2(nil, dh(bI, bQ))
964961
965962
966963
967-@Callable(aI)
968-func getUserVoteStakedIntegralREADONLY (bJ,bR) = $Tuple2(nil, dD(bJ, bR))
964+@Callable(aH)
965+func getUserVoteStakedIntegralREADONLY (bI,bQ) = $Tuple2(nil, dC(bI, bQ))
969966
970967
971968
972-@Callable(aI)
973-func setManager (fp) = {
974- let eR = aH(aI)
975- if ((eR == eR))
969+@Callable(aH)
970+func setManager (fo) = {
971+ let eQ = aG(aH)
972+ if ((eQ == eQ))
976973 then {
977- let fq = fromBase58String(fp)
978- if ((fq == fq))
979- then [StringEntry(ag(), fp)]
974+ let fp = fromBase58String(fo)
975+ if ((fp == fp))
976+ then [StringEntry(af(), fo)]
980977 else throw("Strict value is not equal to itself.")
981978 }
982979 else throw("Strict value is not equal to itself.")
983980 }
984981
985982
986983
987-@Callable(aI)
984+@Callable(aH)
988985 func confirmManager () = {
989- let fr = aG()
990- let fs = if (isDefined(fr))
986+ let fq = aF()
987+ let fr = if (isDefined(fq))
991988 then true
992989 else throw("No pending manager")
993- if ((fs == fs))
990+ if ((fr == fr))
994991 then {
995- let ft = if ((aI.callerPublicKey == value(fr)))
992+ let fs = if ((aH.callerPublicKey == value(fq)))
996993 then true
997994 else throw("You are not pending manager")
998- if ((ft == ft))
999- then [StringEntry(af(), toBase58String(value(fr))), DeleteEntry(ag())]
995+ if ((fs == fs))
996+ then [StringEntry(ae(), toBase58String(value(fq))), DeleteEntry(af())]
1000997 else throw("Strict value is not equal to itself.")
1001998 }
1002999 else throw("Strict value is not equal to itself.")
10031000 }
10041001
10051002
1006-@Verifier(fu)
1007-func fv () = {
1008- let fw = {
1009- let r = aE()
1003+@Verifier(ft)
1004+func fu () = {
1005+ let fv = {
1006+ let r = aD()
10101007 if ($isInstanceOf(r, "ByteVector"))
10111008 then {
1012- let aK = r
1013- aK
1009+ let aJ = r
1010+ aJ
10141011 }
10151012 else if ($isInstanceOf(r, "Unit"))
1016- then fu.senderPublicKey
1013+ then ft.senderPublicKey
10171014 else throw("Match error")
10181015 }
1019- sigVerify(fu.bodyBytes, fu.proofs[0], fw)
1016+ sigVerify(ft.bodyBytes, ft.proofs[0], fv)
10201017 }
10211018

github/deemru/w8io/873ac7e 
510.00 ms