tx · Exks2UkriPFqjRP5E8F3QS8vd8gYfCLqdJdYVVTQQwU1

3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy:  -0.02300000 Waves

2023.02.15 15:58 [2450754] smart account 3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy > SELF 0.00000000 Waves

{ "type": 13, "id": "Exks2UkriPFqjRP5E8F3QS8vd8gYfCLqdJdYVVTQQwU1", "fee": 2300000, "feeAssetId": null, "timestamp": 1676465943347, "version": 2, "chainId": 84, "sender": "3Myn55vLkduxbX3ZXfiDCZhaQsLxYp1kmCy", "senderPublicKey": "9W33iCCNfmFxUbiC6XZcH5x7f6xfwC7Jb3BoExT5q2PV", "proofs": [ "5ooLQnVwA4TFt8Ea9Sftt92mwwFx63oTgM5un41rmrnUAYh41wAuBN7cxjzVDvrhJcC1XD9VJn6fW1pDCgcAGDL5" ], "script": "base64:BgKbJggCEggKBggIAQEBCBIFCgMBCAISAwoBARIDCgEBEgQKAggIEgQKAggIEgMKAQgSAwoBCBIECgIIARIAEgMKAQgSACIDU0VQIgZTQ0FMRTgiBU1VTFQ4Ig5QT09MV0VJR0hUTVVMVCIHd3JhcEVyciIDbXNnIgh0aHJvd0VyciIEc3RyZiIHYWRkcmVzcyIDa2V5IgNpb3oiA2lvZCIKZGVmYXVsdFZhbCIDaW9mIgNhYnMiA3ZhbCIDYWFsIgckbWF0Y2gwIgp2YWxBbnlMeXN0IgJhaSIGdmFsSW50IhtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MiHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbCIWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZSIacmVmZXJyYWxQcm9ncmFtTmFtZURlZmF1bHQiE3JlZmVycmFsUHJvZ3JhbU5hbWUiEWtleUZhY3RvcnlBZGRyZXNzIhhJZHhGYWN0b3J5Q2ZnU3Rha2luZ0RhcHAiGUlkeEZhY3RvcnlDZmdCb29zdGluZ0RhcHAiFElkeEZhY3RvcnlDZmdJZG9EYXBwIhVJZHhGYWN0b3J5Q2ZnVGVhbURhcHAiGUlkeEZhY3RvcnlDZmdFbWlzc2lvbkRhcHAiFUlkeEZhY3RvcnlDZmdSZXN0RGFwcCIZSWR4RmFjdG9yeUNmZ1NsaXBwYWdlRGFwcCIUSWR4RmFjdG9yeUNmZ0Rhb0RhcHAiGklkeEZhY3RvcnlDZmdNYXJrZXRpbmdEYXBwIhpJZHhGYWN0b3J5Q2ZnR3d4UmV3YXJkRGFwcCIWSWR4RmFjdG9yeUNmZ0JpcmRzRGFwcCINa2V5RmFjdG9yeUNmZyIaa2V5RmFjdG9yeUxwMkFzc2V0c01hcHBpbmciCmxwQXNzZXRTdHIiEGtleUZhY3RvcnlMcExpc3QiJmtleUZhY3RvcnlMcEFzc2V0VG9Qb29sQ29udHJhY3RBZGRyZXNzIhRrZXlGYWN0b3J5UG9vbFdlaWdodCIPY29udHJhY3RBZGRyZXNzIhtrZXlGYWN0b3J5UG9vbFdlaWdodEhpc3RvcnkiC3Bvb2xBZGRyZXNzIgNudW0iGHJlYWRGYWN0b3J5QWRkcmVzc09yRmFpbCIKcmVhZExwTGlzdCIUcmVhZEZhY3RvcnlDZmdPckZhaWwiB2ZhY3RvcnkiGGdldEJvb3N0aW5nQWRkcmVzc09yRmFpbCIKZmFjdG9yeUNmZyIYZ2V0RW1pc3Npb25BZGRyZXNzT3JGYWlsIhdnZXRTdGFraW5nQWRkcmVzc09yRmFpbCIZZ2V0R3d4UmV3YXJkQWRkcmVzc09yRmFpbCITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiHmtleUVtaXNzaW9uUmF0ZVBlckJsb2NrQ3VycmVudCIha2V5RW1pc3Npb25SYXRlUGVyQmxvY2tNYXhDdXJyZW50IhVrZXlFbWlzc2lvblN0YXJ0QmxvY2siGGtleUJvb3N0aW5nVjJTdGFydEhlaWdodCIba2V5RW1pc3Npb25EdXJhdGlvbkluQmxvY2tzIhNrZXlFbWlzc2lvbkVuZEJsb2NrIg1rZXlOZXh0UGVyaW9kIh9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0Ig1JZHhDZmdBc3NldElkIhNJZHhDZmdNaW5Mb2NrQW1vdW50IhVJZHhDZmdNaW5Mb2NrRHVyYXRpb24iFUlkeENmZ01heExvY2tEdXJhdGlvbiISSWR4Q2ZnTWF0aENvbnRyYWN0IglrZXlDb25maWciFXJlYWRDb25maWdBcnJheU9yRmFpbCIMbWF0aENvbnRyYWN0Ig1mb3JtYXRDb25maWdTIgdhc3NldElkIg1taW5Mb2NrQW1vdW50Ig9taW5Mb2NrRHVyYXRpb24iD21heExvY2tEdXJhdGlvbiIMZm9ybWF0Q29uZmlnIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IgFzIh1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdCILbXVzdE1hbmFnZXIiAWkiAnBkIgJwayIOSWR4TG9ja1VzZXJOdW0iDUlkeExvY2tBbW91bnQiDElkeExvY2tTdGFydCIPSWR4TG9ja0R1cmF0aW9uIg1JZHhMb2NrUGFyYW1LIg1JZHhMb2NrUGFyYW1CIhNrZXlMb2NrUGFyYW1zUmVjb3JkIgt1c2VyQWRkcmVzcyIacmVhZExvY2tQYXJhbXNSZWNvcmRPckZhaWwiF2Zvcm1hdExvY2tQYXJhbXNSZWNvcmRTIgd1c2VyTnVtIgZhbW91bnQiBXN0YXJ0IghkdXJhdGlvbiIGcGFyYW1LIgZwYXJhbUIiEGxhc3RVcGRUaW1lc3RhbXAiCWd3eEFtb3VudCIWZm9ybWF0TG9ja1BhcmFtc1JlY29yZCIOa2V5TmV4dFVzZXJOdW0iEmtleVVzZXIyTnVtTWFwcGluZyISa2V5TnVtMlVzZXJNYXBwaW5nIhZrZXlMb2NrUGFyYW1Vc2VyQW1vdW50IhZrZXlMb2NrUGFyYW1TdGFydEJsb2NrIhRrZXlMb2NrUGFyYW1EdXJhdGlvbiINa2V5TG9ja1BhcmFtSyINa2V5TG9ja1BhcmFtQiIVa2V5TG9ja1BhcmFtQnlQZXJpb2RLIgZwZXJpb2QiFWtleUxvY2tQYXJhbUJ5UGVyaW9kQiIXa2V5TG9ja1BhcmFtVG90YWxBbW91bnQiIGtleVN0YXRzTG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIhJrZXlTdGF0c0xvY2tzQ291bnQiEmtleVN0YXRzVXNlcnNDb3VudCIga2V5VXNlckJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiImtleVVzZXJMcEJvb3N0RW1pc3Npb25MYXN0SU5URUdSQUwiCWxwQXNzZXRJZCIXa2V5VXNlck1heEJvb3N0SU5URUdSQUwiGGtleVRvdGFsTWF4Qm9vc3RJTlRFR1JBTCIha2V5VXNlckJvb3N0QXZhbGFpYmxlVG9DbGFpbVRvdGFsIhNrZXlVc2VyQm9vc3RDbGFpbWVkIhFrZXlUb3RhbENhY2hlZEd3eCIba2V5VG90YWxDYWNoZWRHd3hDb3JyZWN0aXZlIg9mYWN0b3J5Q29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiD3N0YWtpbmdDb250cmFjdCIRZ3d4UmV3YXJkQ29udHJhY3QiGWtleVZvdGluZ0VtaXNzaW9uQ29udHJhY3QiFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QiCmJvb3N0Q29lZmYiAUAiEWdldFRvdGFsQ2FjaGVkR3d4Igdjb3JyZWN0IhFrZXlDdXJyZW50RXBvY2hVaSIOY3VycmVudEVwb2NoVWkiDmtleVRhcmdldEVwb2NoIhF0YXJnZXRFcG9jaE9wdGlvbiIRdG90YWxDYWNoZWRHd3hSYXciFWlzQ29ycmVjdGlvbkFjdGl2YXRlZCIKY29ycmVjdGl2ZSIMSGlzdG9yeUVudHJ5IgR0eXBlIgR1c2VyIglsb2NrU3RhcnQiAWsiAWIiCmhpc3RvcnlLRVkiC2hpc3RvcnlEQVRBIgpTdGF0c0VudHJ5Ig50b3RhbExvY2tlZEluYyILZHVyYXRpb25JbmMiDGxvY2tDb3VudEluYyINdXNlcnNDb3VudEluYyIbbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzS0VZIg1sb2Nrc0NvdW50S0VZIg11c2Vyc0NvdW50S0VZIg50b3RhbEFtb3VudEtFWSIYbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzIgpsb2Nrc0NvdW50Igp1c2Vyc0NvdW50Igt0b3RhbEFtb3VudCINY2FsY0d3eEFtb3VudCIEa1JhdyIEYlJhdyIBaCIFU0NBTEUiD0xvY2tQYXJhbXNFbnRyeSINdXNlckFtb3VudEtFWSINc3RhcnRCbG9ja0tFWSILZHVyYXRpb25LRVkiBGtLRVkiBGJLRVkiDGtCeVBlcmlvZEtFWSIMYkJ5UGVyaW9kS0VZIiJleHRyYWN0T3B0aW9uYWxQYXltZW50QW1vdW50T3JGYWlsIg9leHBlY3RlZEFzc2V0SWQiA3BtdCIZY2FsY1VzZXJHd3hBbW91bnRBdEhlaWdodCIMdGFyZ2V0SGVpZ2h0IgVFTVBUWSISdXNlcjJOdW1NYXBwaW5nS0VZIg1nd3hBbW91bnRDYWxjIhRjYWxjQ3VycmVudEd3eEFtb3VudCITZ2V0Vm90ZUluZm9SRUFET05MWSIMbHBBc3NldElkU3RyIg51c2VyQWRkcmVzc1N0ciIQaWR4QW1vdW50QXNzZXRJZCIPaWR4UHJpY2VBc3NldElkIgdwb29sQ2ZnIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiD2tleUN1cnJlbnRFcG9jaCISbGFzdEZpbmFsaXplZEVwb2NoIgVlcG9jaCIHa2V5Vm90ZSIEcG9vbCIPa2V5Vm90aW5nUmVzdWx0Igh1c2VyVm90ZSIKcG9vbFJlc3VsdCIUaW50ZXJuYWxDbGFpbVd4Qm9vc3QiCHJlYWRPbmx5IhF1c2VyUmVjb3JkT3JFbXB0eSIPdXNlclJlY29yZEFycmF5Igp1c2VyTnVtU3RyIghFTVBUWVNUUiIKcG9vbFdlaWdodCIOcG9vbEFkZHJlc3NTdHIiEnd4RW1pc3Npb25QZXJCbG9jayIVYm9vc3RpbmdWMlN0YXJ0SGVpZ2h0IgtlbWlzc2lvbkVuZCICZGgiInVzZXJMcEJvb3N0RW1pc3Npb25MYXN0SW50ZWdyYWxLRVkiIHVzZXJCb29zdEVtaXNzaW9uTGFzdEludGVncmFsS0VZIh11c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRlZ3JhbCIVYm9vc3RFbWlzc2lvbkludGVncmFsIhl1c2VyQm9vc3RFbWlzc2lvbkludGVncmFsIgN1ZGgiBnVMYXN0SCIXdXNlck1heEJvb3N0SW50ZWdyYWxLRVkiGHRvdGFsTWF4Qm9vc3RJbnRlZ3JhbEtFWSIPdXNlck1heEJvb3N0SW50IhB0b3RhbE1heEJvb3N0SW50Ig0kdDAxODEyNDE4MjAyIgp0b3RhbFZvdGVzIiF1c2VyQm9vc3RBdmFsYWlibGVUb0NsYWltVG90YWxLRVkiHnVzZXJCb29zdEF2YWxpYWJsZVRvQ2xhaW1Ub3RhbCIdcG9vbFVzZXJCb29zdEVtaXNzaW9uSW50ZWdyYWwiIXVzZXJCb29zdEF2YWxpYWJsZVRvQ2xhaW1Ub3RhbE5ldyITdXNlckJvb3N0Q2xhaW1lZEtFWSIQdXNlckJvb3N0Q2xhaW1lZCISdXNlckJvb3N0QXZhaWxhYmxlIglkYXRhU3RhdGUiBWRlYnVnIgtsb2NrQWN0aW9ucyIIY2ZnQXJyYXkiCmFzc2V0SWRTdHIiCXBtdEFtb3VudCIObmV4dFVzZXJOdW1LRVkiDnVzZXJJc0V4aXN0aW5nIgdjb2VmZlg4Ig5nV3hBbW91bnRTdGFydCITZ1d4UGFyYW1zUmVzdWx0TGlzdCINZW1pc3Npb25TdGFydCIDYXJyIhFmYWN0b3J5QWRkcmVzc1N0ciIObG9ja0Fzc2V0SWRTdHIiC21pbkR1cmF0aW9uIgttYXhEdXJhdGlvbiILY2hlY2tDYWxsZXIiD3JlZmVycmVyQWRkcmVzcyIJc2lnbmF0dXJlIg0kdDAyNDE1NDI0MjE5IhFsb2NrQWN0aW9uc1Jlc3VsdCIPcmVmZXJyYWxBZGRyZXNzIgZyZWZJbnYiEXVwZGF0ZVJlZkFjdGl2aXR5Ig0kdDAyNDY3NzI0NzQyIg1kZWx0YUR1cmF0aW9uIgp1c2VyQW1vdW50Igxsb2NrRHVyYXRpb24iB2xvY2tFbmQiEXJlbWFpbmluZ0R1cmF0aW9uIg11c2VyQW1vdW50TmV3Ig9sb2NrRHVyYXRpb25OZXciDGxvY2tTdGFydE5ldyILY3VyclVzZXJHd3giB2d3eERpZmYiF3RvdGFsQ2FjaGVkR3d4Q29ycmVjdGVkIhJ1c2VyTWF4Qm9vc3RJbnROZXciGHJlbWFpbmluZ1VzZXJNYXhCb29zdEludCITdXNlck1heEJvb3N0SW50RGlmZiINJHQwMjk3MjMyOTgyNSINJHQwMjk5NTczMDA1OCIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXl1AAFhAgJfXwABYgAIAAFjAIDC1y8AAWQFAWMBAWUBAWYJALkJAgkAzAgCAg5ib29zdGluZy5yaWRlOgkAzAgCBQFmBQNuaWwCASABAWcBAWYJAAIBCQEBZQEFAWYBAWgCAWkBagkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFAWkFAWoJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAWoCDyBpcyBub3QgZGVmaW5lZAEBawIBaQFqCQELdmFsdWVPckVsc2UCCQCaCAIFAWkFAWoAAAEBbAMBaQFqAW0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUBaQUBagUBbQEBbgIBaQFqCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUBaQUBagkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBagIPIGlzIG5vdCBkZWZpbmVkAQFvAQFwAwkAZgIAAAUBcAkBAS0BBQFwBQFwAQFxAQFwBAFyBQFwAwkAAQIFAXICCUxpc3RbQW55XQQBcwUBcgUBcwkAAgECG2ZhaWwgdG8gY2FzdCBpbnRvIExpc3RbQW55XQEBdAEBcAQBcgUBcAMJAAECBQFyAgNJbnQEAXUFAXIFAXUJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBAXYACQC5CQIJAMwIAgIEJXMlcwkAzAgCAgZjb25maWcJAMwIAgIYcmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzBQNuaWwFAWEAAXcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFoAgUEdGhpcwkBAXYAAAF4CQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgtwcm9ncmFtTmFtZQUDbmlsBQFhAAF5AgZ3eGxvY2sAAXoJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUBeAUBeQEBQQACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MAAUIAAQABQwACAAFEAAMAAUUABAABRgAFAAFHAAYAAUgABwABSQAIAAFKAAkAAUsACgABTAALAQFNAAIRJXNfX2ZhY3RvcnlDb25maWcBAU4BAU8JALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUBTwkAzAgCAh5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFA25pbAUBYQEBUAACECVzX19scFRva2Vuc0xpc3QBAVEBAU8JALkJAgkAzAgCAgYlcyVzJXMJAMwIAgUBTwkAzAgCAh5tYXBwaW5nc19fbHBBc3NldDJQb29sQ29udHJhY3QFA25pbAUBYQEBUgEBUwkAuQkCCQDMCAICBCVzJXMJAMwIAgIKcG9vbFdlaWdodAkAzAgCBQFTBQNuaWwFAWEBAVQCAVUBVgkArAICCQCsAgIJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQFVAgJfXwkApAMBBQFWAQFXAAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAWgCBQR0aGlzCQEBQQABAVgACQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgkBAVcACQEBUAACAAUBYQEBWQEBWgkAtQkCCQEBaAIFAVoJAQFNAAUBYQECYWEBAmFiCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFiBQFDAQJhYwECYWIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUCYWIFAUYBAmFkAQJhYgkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJhYgUBQgECYWUBAmFiCQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIFAmFiBQFLAQJhZgACFCVzX19tYW5hZ2VyUHVibGljS2V5AQJhZwACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQECYWgAAhslcyVzX19yYXRlUGVyQmxvY2tfX2N1cnJlbnQBAmFpAAIeJXMlc19fcmF0ZVBlckJsb2NrTWF4X19jdXJyZW50AQJhagACGiVzJXNfX2VtaXNzaW9uX19zdGFydEJsb2NrAQJhawACHCVzJXNfX2Jvb3N0aW5nVjJfX3N0YXJ0QmxvY2sBAmFsAAIYJXMlc19fZW1pc3Npb25fX2R1cmF0aW9uAQJhbQACGCVzJXNfX2VtaXNzaW9uX19lbmRCbG9jawECYW4AAg4lc19fbmV4dFBlcmlvZAECYW8AAiglcyVzX19nd3hSZXdhcmRFbWlzc2lvblBhcnRfX3N0YXJ0SGVpZ2h0AAJhcAABAAJhcQACAAJhcgADAAJhcwAEAAJhdAAFAQJhdQACCiVzX19jb25maWcBAmF2AAkAtQkCCQEBaAIFBHRoaXMJAQJhdQAFAWEAAmF3CQERQGV4dHJOYXRpdmUoMTA2MikBCQCRAwIJAQJhdgAFAmF0AQJheAUCYXkCYXoCYUECYUICYXcJALkJAgkAzAgCAgglcyVkJWQlZAkAzAgCBQJheQkAzAgCBQJhegkAzAgCBQJhQQkAzAgCBQJhQgkAzAgCBQJhdwUDbmlsBQFhAQJhQwUCYXkCYXoCYUECYUICYXcJAQJheAUFAmF5CQCkAwEFAmF6CQCkAwEFAmFBCQCkAwEFAmFCBQJhdwECYUQABAFyCQCiCAEJAQJhZgADCQABAgUBcgIGU3RyaW5nBAJhRQUBcgkA2QQBBQJhRQMJAAECBQFyAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmFGAAQBcgkAoggBCQECYWcAAwkAAQIFAXICBlN0cmluZwQCYUUFAXIJANkEAQUCYUUDCQABAgUBcgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhRwECYUgEAmFJCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAXIJAQJhRAADCQABAgUBcgIKQnl0ZVZlY3RvcgQCYUoFAXIDCQAAAggFAmFID2NhbGxlclB1YmxpY0tleQUCYUoGBQJhSQMJAAECBQFyAgRVbml0AwkAAAIIBQJhSAZjYWxsZXIFBHRoaXMGBQJhSQkAAgECC01hdGNoIGVycm9yAAJhSwABAAJhTAACAAJhTQADAAJhTgAEAAJhTwAFAAJhUAAGAQJhUQECYVIJALkJAgkAzAgCAgolcyVzX19sb2NrCQDMCAIFAmFSBQNuaWwFAWEBAmFTAQJhUgkAtQkCCQEBaAIFBHRoaXMJAQJhUQEFAmFSBQFhAQJhVAgCYVUCYVYCYVcCYVgCYVkCYVoCYmECYmIJALkJAgkAzAgCAhAlZCVkJWQlZCVkJWQlZCVkCQDMCAIFAmFVCQDMCAIFAmFWCQDMCAIFAmFXCQDMCAIFAmFYCQDMCAIFAmFZCQDMCAIFAmFaCQDMCAIFAmJhCQDMCAIFAmJiBQNuaWwFAWEBAmJjBwJhVQJhVgJhVwJhWAJhWQJhWgJiYgkBAmFUCAUCYVUJAKQDAQUCYVYJAKQDAQUCYVcJAKQDAQUCYVgJAKQDAQUCYVkJAKQDAQUCYVoJAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAKQDAQUCYmIBAmJkAAIPJXNfX25leHRVc2VyTnVtAQJiZQECYVIJALkJAgkAzAgCAhklcyVzJXNfX21hcHBpbmdfX3VzZXIybnVtCQDMCAIFAmFSBQNuaWwFAWEBAmJmAQFWCQC5CQIJAMwIAgIZJXMlcyVzX19tYXBwaW5nX19udW0ydXNlcgkAzAgCBQFWBQNuaWwFAWEBAmJnAQJhVQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVUJAMwIAgIGYW1vdW50BQNuaWwFAWEBAmJoAQJhVQkAuQkCCQDMCAICFiVzJWQlc19fcGFyYW1CeVVzZXJOdW0JAMwIAgUCYVUJAMwIAgIFc3RhcnQFA25pbAUBYQECYmkBAmFVCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVQkAzAgCAghkdXJhdGlvbgUDbmlsBQFhAQJiagECYVUJALkJAgkAzAgCAhYlcyVkJXNfX3BhcmFtQnlVc2VyTnVtCQDMCAIFAmFVCQDMCAICAWsFA25pbAUBYQECYmsBAmFVCQC5CQIJAMwIAgIWJXMlZCVzX19wYXJhbUJ5VXNlck51bQkAzAgCBQJhVQkAzAgCAgFiBQNuaWwFAWEBAmJsAgJhVQJibQkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIFAmFVCQDMCAICAWsJAMwIAgUCYm0FA25pbAUBYQECYm4CAmFVAmJtCQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgUCYVUJAMwIAgIBYgkAzAgCBQJibQUDbmlsBQFhAQJibwACHiVzJXNfX3N0YXRzX19hY3RpdmVUb3RhbExvY2tlZAECYnAAAiUlcyVzX19zdGF0c19fbG9ja3NEdXJhdGlvblN1bUluQmxvY2tzAQJicQACFyVzJXNfX3N0YXRzX19sb2Nrc0NvdW50AQJicgACHSVzJXNfX3N0YXRzX19hY3RpdmVVc2Vyc0NvdW50AQJicwECYVUJALkJAgkAzAgCAiAlcyVkX191c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRWMgkAzAgCBQJhVQUDbmlsBQFhAQJidAICYVUCYnUJALkJAgkAzAgCAiAlcyVkX191c2VyQm9vc3RFbWlzc2lvbkxhc3RJbnRWMgkAzAgCBQJhVQkAzAgCBQJidQUDbmlsBQFhAQJidgECYVUJALkJAgkAzAgCAhElcyVkX19tYXhCb29zdEludAkAzAgCBQJhVQUDbmlsBQFhAQJidwACGCVzJXNfX21heEJvb3N0SW50X190b3RhbAECYngBAmFVCQC5CQIJAMwIAgIkJXMlZF9fdXNlckJvb3N0QXZhbGlhYmxlVG9DbGFpbVRvdGFsCQDMCAIFAmFVBQNuaWwFAWEBAmJ5AQJhVQkAuQkCCQDMCAICFiVzJWRfX3VzZXJCb29zdENsYWltZWQJAMwIAgUCYVUFA25pbAUBYQECYnoAAhYlcyVzX19nd3hDYWNoZWRfX3RvdGFsAQJiQQACHCVzX19nd3hDYWNoZWRUb3RhbENvcnJlY3RpdmUAAmJCCQEBVwAAAmFiCQEBWQEFAmJCAAJiQwkBAmFjAQUCYWIAAmJECQECYWQBBQJhYgACYkUJAQJhZQEFAmFiAAJiRgkAuQkCCQDMCAICAiVzCQDMCAICFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFA25pbAUBYQACYkcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFAmJCBQJiRgACYkgKAAJiSQkA/AcEBQJiQwIVZ2V0Qm9vc3RDb2VmZlJFQURPTkxZBQNuaWwFA25pbAMJAAECBQJiSQIDSW50BQJiSQkAAgEJAKwCAgkAAwEFAmJJAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQBAmJKAQJiSwQCYkwJALkJAgkAzAgCAgIlcwkAzAgCAg5jdXJyZW50RXBvY2hVaQUDbmlsBQFhBAJiTQkBEUBleHRyTmF0aXZlKDEwNTApAgUCYkcFAmJMBAJiTgkAuQkCCQDMCAICBCVzJXMJAMwIAgIpdG90YWxDYWNoZWRHd3hDb3JyZWN0aW9uX19hY3RpdmF0aW9uRXBvY2gFA25pbAUBYQQCYk8JAJoIAgUEdGhpcwUCYk4EAmJQCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiegAAAAQCYlEDCQEJaXNEZWZpbmVkAQUCYk8JAGcCBQJiTQkBBXZhbHVlAQUCYk8HBAJiUgMDBQJiUQUCYksHCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJiQQAAAAAACQCWAwEJAMwIAgAACQDMCAIJAGQCBQJiUAUCYlIFA25pbAECYlMIAmJUAmJVAmFWAmJWAmFYAmJXAmJYAmFIBAJiWQkAuQkCCQDMCAICESVzJXMlcyVzX19oaXN0b3J5CQDMCAIFAmJUCQDMCAIFAmJVCQDMCAIJANgEAQgFAmFIDXRyYW5zYWN0aW9uSWQFA25pbAUBYQQCYloJALkJAgkAzAgCAg4lZCVkJWQlZCVkJWQlZAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sGaGVpZ2h0CQDMCAIJAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkApAMBBQJhVgkAzAgCCQCkAwEFAmJWCQDMCAIJAKQDAQUCYVgJAMwIAgkApAMBBQJiVwkAzAgCCQCkAwEFAmJYBQNuaWwFAWEJAQtTdHJpbmdFbnRyeQIFAmJZBQJiWgECY2EEAmNiAmNjAmNkAmNlBAJjZgkBAmJwAAQCY2cJAQJicQAEAmNoCQECYnIABAJjaQkBAmJvAAQCY2oJAQFrAgUEdGhpcwUCY2YEAmNrCQEBawIFBHRoaXMFAmNnBAJjbAkBAWsCBQR0aGlzBQJjaAQCY20JAQFrAgUEdGhpcwUCY2kJAMwIAgkBDEludGVnZXJFbnRyeQIFAmNmCQBkAgUCY2oFAmNjCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjZwkAZAIFAmNrBQJjZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY2gJAGQCBQJjbAUCY2UJAMwIAgkBDEludGVnZXJFbnRyeQIFAmNpCQBkAgUCY20FAmNiBQNuaWwBAmNuAwJjbwJjcAJjcQQCY3IA6AcJAGkCCQBkAgkAaAIFAmNvBQJjcQUCY3AFAmNyAQJjcwgCYVICYVUCYVYCYVcCYVgCYlcCYlgCYm0EAmN0CQECYmcBBQJhVQQCY3UJAQJiaAEFAmFVBAJjdgkBAmJpAQUCYVUEAmN3CQECYmoBBQJhVQQCY3gJAQJiawEFAmFVBAJjeQkBAmJsAgUCYVUFAmJtBAJjegkBAmJuAgUCYVUFAmJtBAJiYgkBAmNuAwUCYlcFAmJYBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN0BQJhVgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3UFAmFXCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjdgUCYVgJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN3BQJiVwkAzAgCCQEMSW50ZWdlckVudHJ5AgUCY3gFAmJYCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJjeQUCYlcJAMwIAgkBDEludGVnZXJFbnRyeQIFAmN6BQJiWAkAzAgCCQELU3RyaW5nRW50cnkCCQECYVEBBQJhUgkBAmJjBwUCYVUFAmFWBQJhVwUCYVgFAmJXBQJiWAUCYmIFA25pbAECY0ECAmFIAmNCAwkAZgIJAJADAQgFAmFICHBheW1lbnRzAAEJAAIBAhtvbmx5IG9uZSBwYXltZW50IGlzIGFsbG93ZWQDCQAAAgkAkAMBCAUCYUgIcGF5bWVudHMAAAAABAJjQwkAkQMCCAUCYUgIcGF5bWVudHMAAAMJAQIhPQIJAQV2YWx1ZQEIBQJjQwdhc3NldElkBQJjQgkAAgECG2ludmFsaWQgYXNzZXQgaWQgaW4gcGF5bWVudAgFAmNDBmFtb3VudAECY0QCAmFSAmNFBAJjRgIFZW1wdHkEAmNHCQECYmUBBQJhUgQCYVUJAQt2YWx1ZU9yRWxzZQIJAKIIAQUCY0cFAmNGBAJiVwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYmoBBQJhVQAABAJiWAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYmsBBQJhVQAABAJjSAkBAmNuAwUCYlcFAmJYBQJjRQQCYmIDCQBmAgAABQJjSAAABQJjSAUCYmIBAmNJAQJhUgkBAmNEAgUCYVIFBmhlaWdodAECY0oCAmNLAmNMBAJhUgkBEUBleHRyTmF0aXZlKDEwNjIpAQUCY0wEAmNNAAQEAmNOAAUEAmNPCgACYkkJAPwHBAUCYkICGGdldFBvb2xDb25maWdCeUxwQXNzZXRJZAkAzAgCBQJjSwUDbmlsBQNuaWwDCQABAgUCYkkCCUxpc3RbQW55XQUCYkkJAAIBCQCsAgIJAAMBBQJiSQIeIGNvdWxkbid0IGJlIGNhc3QgdG8gTGlzdFtBbnldBAJjUAoAAmJJCQCRAwIFAmNPBQJjTQMJAAECBQJiSQIGU3RyaW5nBQJiSQkAAgEJAKwCAgkAAwEFAmJJAhsgY291bGRuJ3QgYmUgY2FzdCB0byBTdHJpbmcEAmNRCgACYkkJAJEDAgUCY08FAmNOAwkAAQIFAmJJAgZTdHJpbmcFAmJJCQACAQkArAICCQADAQUCYkkCGyBjb3VsZG4ndCBiZSBjYXN0IHRvIFN0cmluZwQCY1IJALkJAgkAzAgCAgIlcwkAzAgCAgxjdXJyZW50RXBvY2gFA25pbAUBYQQCY1MEAmNUCQBlAgkBBXZhbHVlAQkAmggCBQR0aGlzBQJjUgABAwkAZgIAAAUCY1QJAQFnAQINaW52YWxpZCBlcG9jaAUCY1QKAQJjVQMCY1YBaQJjVAkAuQkCCQDMCAICCiVzJXMlcyVzJWQJAMwIAgIEdm90ZQkAzAgCBQJjUAkAzAgCBQJjUQkAzAgCCQClCAEFAWkJAMwIAgkApAMBBQJjVAUDbmlsBQFhCgECY1cCAmNWAmNUCQC5CQIJAMwIAgIIJXMlcyVzJWQJAMwIAgIMdm90aW5nUmVzdWx0CQDMCAIFAmNQCQDMCAIFAmNRCQDMCAIJAKQDAQUCY1QFA25pbAUBYQQCY1YJAJQKAgUCY1AFAmNRBAJjWAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECY1UDBQJjVgUCYVIFAmNTAAAEAmNZCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQJjVwIFAmNWBQJjUwAACQCUCgIFAmNYBQJjWQECY1oDAmNLAmNMAmRhBAJjRgIFRU1QVFkEAmRiCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQJhUQEFAmNMBQJjRgMJAAACBQJkYgUCY0YJAJUKAwAABQNuaWwCFXVzZXJSZWNvcmQ6OmlzOjplbXB0eQQCZGMJALUJAgUCZGIFAWEEAmRkCQCRAwIFAmRjBQJhSwQCZGUCBWVtcHR5BAJkZgMJAQIhPQIFAmNLBQJkZQQCZGcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQJiQgkBAU4BBQJjSwkArAICAhV1bnN1cHBvcnRlZCBscCBhc3NldCAFAmNLCQERQGV4dHJOYXRpdmUoMTA1MCkCBQJiQgkBAVIBBQJkZwMFAmRhAAAJAAIBCQCsAgICKG5vdCByZWFkb25seSBtb2RlOiB1bnN1cHBvcnRlZCBscCBhc3NldCAFAmNLBAJkaAkBAW4CBQJiQwkBAmFoAAQCZGkJAQFuAgUCYkMJAQJhawAEAmRqCQEBbgIFAmJDCQECYW0ABAJjcQMJAGYCBQZoZWlnaHQFAmRqBQJkagUGaGVpZ2h0BAJkawkAlgMBCQDMCAIJAGUCBQJjcQUCZGkJAMwIAgAABQNuaWwEAmRsCQECYnQCBQJkZAUCY0sEAmRtCQECYnMBBQJkZAQCZG4JAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUCZGwJAQFrAgUEdGhpcwUCZG0EAmRvCQBpAgkAaAIJAGgCBQJkaAUCZGsJAGUCBQJiSAABBQJiSAQCZHAJAGUCBQJkbwUCZG4EAmRxCQBrAwUCZHAFAmJICQBoAgkAZQIFAmJIAAEFAmRoBAJkcgkAZQIFAmNxBQJkcQMJAGYCAAAFAmRwCQACAQISd3JvbmcgY2FsY3VsYXRpb25zBAJkcwkBAmJ2AQUCZGQEAmR0CQECYncABAJkdQkBAWsCBQR0aGlzBQJkcwQCZHYJAQFrAgUEdGhpcwUCZHQEAmR3CQECY0oCBQJjSwUCY0wEAmNYCAUCZHcCXzEEAmR4CAUCZHcCXzIEAmR5CQECYngBBQJkZAQCZHoJAQFrAgUEdGhpcwUCZHkEAmRBCQBrAwUCZHAFAmRmBQFkBAJkQgMJAAACBQJkeAAAAAAJAGsDBQJkQQUCY1gFAmR4BAJkQwkBAmJ5AQUCZGQEAmRECQEBawIFBHRoaXMFAmRDBAJkRQkAZQIFAmRCBQJkRAQCZEYJAMwIAgkBDEludGVnZXJFbnRyeQIFAmRsBQJkbwUDbmlsBAJkRwkAuQkCCQDMCAIJAKQDAQUCZG4JAMwIAgkApAMBBQJkcAkAzAgCCQCkAwEFAmRECQDMCAIJAKQDAQUCZEUJAMwIAgkApAMBBQJkZgkAzAgCCQCkAwEFAmNxCQDMCAIJAKQDAQUCZHEJAMwIAgkApAMBBQJkcgkAzAgCCQCkAwEFAmNYCQDMCAIJAKQDAQUCZHgFA25pbAIBOgkAlQoDBQJkQgUCZEYFAmRHAQJkSAICYUgCYVgEAmRJCQECYXYABAJkSgkAkQMCBQJkSQUCYXAEAmF5CQDZBAEFAmRKBAJhegkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRJBQJhcQQCYUEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkSQUCYXIEAmFCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZEkFAmFzAwkBAiE9AgkAkAMBCAUCYUgIcGF5bWVudHMAAQkAAgECNGludmFsaWQgcGF5bWVudCAtIGV4YWN0IG9uZSBwYXltZW50IG11c3QgYmUgYXR0YWNoZWQEAmNDCQCRAwIIBQJhSAhwYXltZW50cwAABAJkSwgFAmNDBmFtb3VudAMJAQIhPQIFAmF5CQEFdmFsdWUBCAUCY0MHYXNzZXRJZAkAAgEJAKwCAgkArAICAh5pbnZhbGlkIGFzc2V0IGlzIGluIHBheW1lbnQgLSAFAmRKAgwgaXMgZXhwZWN0ZWQEAmRMCQECYmQABAJjTAkApQgBCAUCYUgGY2FsbGVyBAJkTQkBCWlzRGVmaW5lZAEJAKIIAQkBAmJlAQUCY0wEAmRkAwUCZE0JAQV2YWx1ZQEJAKIIAQkBAmJlAQUCY0wJAKQDAQkBAW4CBQR0aGlzBQJkTAQCYVUJAQ1wYXJzZUludFZhbHVlAQUCZGQEAmJWBQZoZWlnaHQEAmN1CQECYmgBBQJkZAQCY3YJAQJiaQEFAmRkBAJjdAkBAmJnAQUCZGQDCQBmAgUCYXoFAmRLCQACAQkArAICAiJhbW91bnQgaXMgbGVzcyB0aGVuIG1pbkxvY2tBbW91bnQ9CQCkAwEFAmF6AwkAZgIFAmFBBQJhWAkAAgEJAKwCAgItcGFzc2VkIGR1cmF0aW9uIGlzIGxlc3MgdGhlbiBtaW5Mb2NrRHVyYXRpb249CQCkAwEFAmFBAwkAZgIFAmFYBQJhQgkAAgEJAKwCAgIwcGFzc2VkIGR1cmF0aW9uIGlzIGdyZWF0ZXIgdGhlbiBtYXhMb2NrRHVyYXRpb249CQCkAwEFAmFCAwMFAmRNCQBnAgkAZAIJAQFuAgUEdGhpcwUCY3UJAQFuAgUEdGhpcwUCY3YFAmJWBwkAAgECNnRoZXJlIGlzIGFuIGFjdGl2ZSBsb2NrIC0gY29uc2lkZXIgdG8gdXNlIGluY3JlYXNlTG9jawMJAGYCCQEBawIFBHRoaXMFAmN0AAAJAAIBCQCsAgICNHRoZXJlIGFyZSBsb2NrZWQgV1hzIC0gY29uc2lkZXIgdG8gdXNlIGluY3JlYXNlTG9jayAFAmN0BAJkTgkAawMFAmFYBQFjBQJhQgQCZE8JAGsDBQJkSwUCZE4FAWMEAmRQCQEBcQEJAPwHBAUCYXcCFWNhbGNHd3hQYXJhbXNSRUFET05MWQkAzAgCBQJkTwkAzAgCBQJiVgkAzAgCBQJhWAUDbmlsBQNuaWwEAmJXCQEBdAEJAJEDAgUCZFAAAAQCYlgJAQF0AQkAkQMCBQJkUAABBAJibQkApAMBCQEBdAEJAJEDAgUCZFAAAgQCZGgJAQFuAgUCYkMJAQJhaAAEAmRRCQEBbgIFAmJDCQECYWoABAJkagkBAW4CBQJiQwkBAmFtAAQCY3EDCQBmAgUGaGVpZ2h0BQJkagUCZGoFBmhlaWdodAQCZGsJAJYDAQkAzAgCCQBlAgUCY3EFAmRRCQDMCAIAAAUDbmlsBAJkbQkBAmJzAQUCZGQEAmRvCQBpAgkAaAIJAGgCBQJkaAUCZGsAAgADBAJkcwkBAmJ2AQUCZGQEAmR0CQECYncABAJkdQkAaQIJAGgCBQJkTwUCYVgAAgQCZHYJAQFrAgUEdGhpcwUCZHQEAmJQCQECYkoBBwQCZFIDBQJkTQUDbmlsCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkTAkAZAIFAmFVAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJlAQUCY0wFAmRkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJiZgEFAmRkBQJjTAUDbmlsCQCUCgIJAM4IAgkAzQgCCQDOCAIJAM4IAgUCZFIJAQJjcwgFAmNMBQJkZAUCZEsFAmJWBQJhWAUCYlcFAmJYBQJibQkBAmNhBAUCZEsFAmFYAAEDBQJkTQAAAAEJAQJiUwgCBGxvY2sFAmNMBQJkSwUCYlYFAmFYBQJiVwUCYlgFAmFICQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJkbQUCZG8JAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiegAJAGQCBQJiUAUCZE8FA25pbAUCZE8MAmFIAQtjb25zdHJ1Y3RvcgYCZFMCZFQCYXoCZFUCZFYCYXcEAmRXCQECYUcBBQJhSAMJAAACBQJkVwUCZFcJAM4IAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmJkAAAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhdQAJAQJhQwUFAmRUBQJhegUCZFUFAmRWBQJhdwkAzAgCCQELU3RyaW5nRW50cnkCCQEBQQAFAmRTBQNuaWwJAQJjYQQAAAAAAAAAAAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSAEHbG9ja1JlZgMCYVgCZFgCZFkEAmRaCQECZEgCBQJhSAUCYVgEAmVhCAUCZFoCXzEEAmRPCAUCZFoCXzIEAmViCQClCAEIBQJhSAZjYWxsZXIEAmVjAwMJAAACBQJkWAIABgkAAAIFAmRZAQAFBHVuaXQJAPwHBAUBdwIKY3JlYXRlUGFpcgkAzAgCBQF6CQDMCAIFAmRYCQDMCAIFAmViCQDMCAIFAmRZBQNuaWwFA25pbAMJAAACBQJlYwUCZWMEAmVkCQD8BwQFAmF3AhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIJAKUIAQgFAmFIBmNhbGxlcgkAzAgCBQJkTwUDbmlsBQNuaWwDCQAAAgUCZWQFAmVkCQCUCgIFAmVhBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFIAQRsb2NrAQJhWAQCZWUJAQJkSAIFAmFIBQJhWAQCZWEIBQJlZQJfMQQCZE8IBQJlZQJfMgQCZWQJAPwHBAUCYXcCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgkApQgBCAUCYUgGY2FsbGVyCQDMCAIFAmRPBQNuaWwFA25pbAMJAAACBQJlZAUCZWQJAJQKAgUCZWEFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUgBDGluY3JlYXNlTG9jawECZWYEAmRJCQECYXYABAJkSgkAkQMCBQJkSQUCYXAEAmF5CQDZBAEFAmRKBAJhQQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRJBQJhcgQCYUIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkSQUCYXMEAmRLCQECY0ECBQJhSAUCYXkEAmNMCQClCAEIBQJhSAZjYWxsZXIEAmRjCQECYVMBBQJjTAQCZGQJAJEDAgUCZGMFAmFLBAJlZwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQJhTAQCYlYJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUCYU0EAmVoCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGMFAmFOBAJlaQkAZAIFAmJWBQJlaAQCZWoJAJYDAQkAzAgCCQBlAgUCZWkFBmhlaWdodAkAzAgCAAAFA25pbAQCZWsJAGQCBQJlZwUCZEsEAmVsCQBkAgUCZWoFAmVmAwkAZgIAAAUCZWYJAAIBAhpkdXJhdGlvbiBpcyBsZXNzIHRoZW4gemVybwMJAGYCBQJhQQUCZWwJAAIBCQCsAgICLWxvY2tEdXJhdGlvbk5ldyBpcyBsZXNzIHRoZW4gbWluTG9ja0R1cmF0aW9uPQkApAMBBQJhQQMJAGYCBQJlbAUCYUIJAAIBCQCsAgICRGRlbHRhRHVyYXRpb24gKyBleGlzdGVkTG9ja0R1cmF0aW9uIGlzIGdyZWF0ZXIgdGhlbiBtYXhMb2NrRHVyYXRpb249CQCkAwEFAmFCBAJkTgkAawMFAmVsBQFjBQJhQgQCZE8JAGsDBQJlawUCZE4FAWMEAmVkCQD8BwQFAmF3AhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIJAKUIAQgFAmFIBmNhbGxlcgkAzAgCBQJkTwUDbmlsBQNuaWwDCQAAAgUCZWQFAmVkBAJlbQUGaGVpZ2h0BAJkUAkBAXEBCQD8BwQFAmF3AhVjYWxjR3d4UGFyYW1zUkVBRE9OTFkJAMwIAgUCZE8JAMwIAgUCZW0JAMwIAgUCZWwFA25pbAUDbmlsBAJiVwkBAXQBCQCRAwIFAmRQAAAEAmJYCQEBdAEJAJEDAgUCZFAAAQQCYm0JAKQDAQkBAXQBCQCRAwIFAmRQAAIEAmRoCQEBbgIFAmJDCQECYWgABAJkUQkBAW4CBQJiQwkBAmFqAAQCZGoJAQFuAgUCYkMJAQJhbQAEAmNxAwkAZgIFBmhlaWdodAUCZGoFAmRqBQZoZWlnaHQEAmRrCQCWAwEJAMwIAgkAZQIFAmNxBQJkUQkAzAgCAAAFA25pbAQCZG0JAQJicwEFAmRkBAJkbgkBAWsCBQR0aGlzBQJkbQQCZG8JAGkCCQBoAgkAaAIFAmRoBQJkawACAAMEAmRwCQBlAgUCZG8FAmRuAwkAZgIAAAUCZHAJAAIBAhJ3cm9uZyBjYWxjdWxhdGlvbnMEAmRzCQECYnYBBQJkZAQCZHQJAQJidwAEAmR1CQEBawIFBHRoaXMFAmRzBAJkdgkBAWsCBQR0aGlzBQJkdAQCZW4JAQJjSQEFAmNMBAJlbwkAZQIFAmRPBQJlbgMJAGYCAAAFAmVvCQACAQkArAICAhhnd3hEaWZmIGlzIGxlc3MgdGhlbiAwOiAJAKQDAQUCZW8EAmJQCQECYkoBBwQCZXAJAQJiSgEGBAJkeQkBAmJ4AQUCZGQEAmR6CQEBawIFBHRoaXMFAmR5BAJkQgkAawMFAmRwBQJlbgUCZXAEAmVxCQBpAgkAaAIFAmRPBQJlbAACBAJlcgkAaQIJAGgCBQJlbgUCZWoAAgQCZXMJAGUCBQJlcQUCZXIJAM4IAgkAzQgCCQDOCAIJAQJjcwgFAmNMBQJkZAUCZWsFAmVtBQJlbAUCYlcFAmJYBQJibQkBAmNhBAUCZEsFAmVmAAAAAAkBAmJTCAIEbG9jawUCY0wFAmRLBQJiVgUCZWwFAmJXBQJiWAUCYUgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJiegAJAGQCBQJiUAUCZW8FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSAEMY2xhaW1XeEJvb3N0AgJjSwJjTAMJAQIhPQIFAmJECAUCYUgGY2FsbGVyCQACAQIScGVybWlzc2lvbnMgZGVuaWVkBAJldAkBAmNaAwUCY0sFAmNMBwQCZEUIBQJldAJfMQQCZEYIBQJldAJfMgQCZEcIBQJldAJfMwkAlAoCBQJkRgkAzAgCBQJkRQUDbmlsAmFIARRjbGFpbVd4Qm9vc3RSRUFET05MWQICY0sCY0wEAmV1CQECY1oDBQJjSwUCY0wGBAJkRQgFAmV1Al8xBAJkRggFAmV1Al8yBAJkRwgFAmV1Al8zCQCUCgIFA25pbAkAzAgCBQJkRQkAzAgCBQJkRwUDbmlsAmFIAQZ1bmxvY2sBAmFSBAJkYwkBAmFTAQUCYVIEAmRkCQCRAwIFAmRjBQJhSwQCZWcJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJkYwUCYUwEAmJWCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCZGMFAmFNBAJlaAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmRjBQJhTgQCZWkJAGQCBQJiVgUCZWgEAmRJCQECYXYABAJheQkA2QQBCQCRAwIFAmRJBQJhcAMJAGcCBQJlaQUGaGVpZ2h0CQACAQkArAICCQCsAgICBXdhaXQgCQCkAwEFAmVpAgogdG8gdW5sb2NrAwkAZwIAAAUCZWcJAAIBAhFub3RoaW5nIHRvIHVubG9jawQCYm0JAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYXcJAQJhbgAAAAkAzQgCCQDNCAIJAM4IAgkBAmNzCAUCYVIFAmRkAAAFAmJWBQJlaAAAAAAJAKQDAQUCYm0JAQJjYQQJAQEtAQUCZWcAAAAAAP///////////wEJAQJiUwgCBnVubG9jawUCYVIFAmVnBQJiVgUCZWgAAAAABQJhSAkBDlNjcmlwdFRyYW5zZmVyAwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVIFAmVnBQJheQJhSAETZ3d4VXNlckluZm9SRUFET05MWQECYVIEAmJiCQECY0kBBQJhUgkAlAoCBQNuaWwJAMwIAgUCYmIFA25pbAJhSAEgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkCAmFSAmNFBAJiYgkBAmNEAgUCYVIFAmNFCQCUCgIFA25pbAUCYmICYUgBGWdldFRvdGFsQ2FjaGVkR3d4UkVBRE9OTFkACQCUCgIFA25pbAkBAmJKAQYCYUgBCnNldE1hbmFnZXIBAmV2BAJkVwkBAmFHAQUCYUgDCQAAAgUCZFcFAmRXBAJldwkA2QQBBQJldgMJAAACBQJldwUCZXcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFnAAUCZXYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSAEOY29uZmlybU1hbmFnZXIABAJleAkBAmFGAAQCZXkDCQEJaXNEZWZpbmVkAQUCZXgGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmV5BQJleQQCZXoDCQAAAggFAmFID2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCZXgGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmV6BQJlegkAzAgCCQELU3RyaW5nRW50cnkCCQECYWYACQDYBAEJAQV2YWx1ZQEFAmV4CQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhZwAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZUEBAmVCAAQCZUMEAXIJAQJhRAADCQABAgUBcgIKQnl0ZVZlY3RvcgQCYUoFAXIFAmFKAwkAAQIFAXICBFVuaXQIBQJlQQ9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZUEJYm9keUJ5dGVzCQCRAwIIBQJlQQZwcm9vZnMAAAUCZUMmWFT+", "height": 2450754, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2aqxbZWuHHMFndQpkSuvdwNXtU2oUhxgPx9M3XKQYnbL Next: BskLMfXpLaR9V9pDsWzAWTWriKeW8XPeQk4d2whGb51u Diff:
OldNewDifferences
99
1010 let d = c
1111
12-func e (f,g) = valueOrErrorMessage(getString(f, g), (("mandatory this." + g) + " is not defined"))
12+func e (f) = makeString(["boosting.ride:", f], " ")
1313
1414
15-func h (f,g) = valueOrElse(getInteger(f, g), 0)
15+func g (f) = throw(e(f))
1616
1717
18-func i (f,g,j) = valueOrElse(getInteger(f, g), j)
18+func h (i,j) = valueOrErrorMessage(getString(i, j), (("mandatory this." + j) + " is not defined"))
1919
2020
21-func k (f,g) = valueOrErrorMessage(getInteger(f, g), (("mandatory this." + g) + " is not defined"))
21+func k (i,j) = valueOrElse(getInteger(i, j), 0)
2222
2323
24-func l (m) = if ((0 > m))
25- then -(m)
26- else m
24+func l (i,j,m) = valueOrElse(getInteger(i, j), m)
2725
2826
29-func n (m) = {
30- let o = m
31- if ($isInstanceOf(o, "List[Any]"))
27+func n (i,j) = valueOrErrorMessage(getInteger(i, j), (("mandatory this." + j) + " is not defined"))
28+
29+
30+func o (p) = if ((0 > p))
31+ then -(p)
32+ else p
33+
34+
35+func q (p) = {
36+ let r = p
37+ if ($isInstanceOf(r, "List[Any]"))
3238 then {
33- let p = o
34- p
39+ let s = r
40+ s
3541 }
3642 else throw("fail to cast into List[Any]")
3743 }
3844
3945
40-func q (m) = {
41- let o = m
42- if ($isInstanceOf(o, "Int"))
46+func t (p) = {
47+ let r = p
48+ if ($isInstanceOf(r, "Int"))
4349 then {
44- let r = o
45- r
50+ let u = r
51+ u
4652 }
4753 else throw("fail to cast into Int")
4854 }
4955
5056
51-func s () = makeString(["%s%s", "config", "referralsContractAddress"], a)
57+func v () = makeString(["%s%s", "config", "referralsContractAddress"], a)
5258
5359
54-let t = addressFromStringValue(e(this, s()))
60+let w = addressFromStringValue(h(this, v()))
5561
56-let u = makeString(["%s%s", "referral", "programName"], a)
62+let x = makeString(["%s%s", "referral", "programName"], a)
5763
58-let v = "wxlock"
64+let y = "wxlock"
5965
60-let w = valueOrElse(getString(this, u), v)
66+let z = valueOrElse(getString(this, x), y)
6167
62-func x () = "%s%s__config__factoryAddress"
68+func A () = "%s%s__config__factoryAddress"
6369
6470
65-let y = 1
71+let B = 1
6672
67-let z = 2
73+let C = 2
6874
69-let A = 3
75+let D = 3
7076
71-let B = 4
77+let E = 4
7278
73-let C = 5
79+let F = 5
7480
75-let D = 6
81+let G = 6
7682
77-let E = 7
83+let H = 7
7884
79-let F = 8
85+let I = 8
8086
81-let G = 9
87+let J = 9
8288
83-let H = 10
89+let K = 10
8490
85-let I = 11
91+let L = 11
8692
87-func J () = "%s__factoryConfig"
93+func M () = "%s__factoryConfig"
8894
8995
90-func K (L) = makeString(["%s%s%s", L, "mappings__lpAsset2PoolContract"], a)
96+func N (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
9197
9298
93-func M () = "%s__lpTokensList"
99+func P () = "%s__lpTokensList"
94100
95101
96-func N (L) = makeString(["%s%s%s", L, "mappings__lpAsset2PoolContract"], a)
102+func Q (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
97103
98104
99-func O (P) = makeString(["%s%s", "poolWeight", P], a)
105+func R (S) = makeString(["%s%s", "poolWeight", S], a)
100106
101107
102-func Q (R,S) = ((("%s%s__poolWeight__" + R) + "__") + toString(S))
108+func T (U,V) = ((("%s%s__poolWeight__" + U) + "__") + toString(V))
103109
104110
105-func T () = addressFromStringValue(e(this, x()))
111+func W () = addressFromStringValue(h(this, A()))
106112
107113
108-func U () = split(valueOrElse(getString(T(), M()), ""), a)
114+func X () = split(valueOrElse(getString(W(), P()), ""), a)
109115
110116
111-func V (W) = split(e(W, J()), a)
117+func Y (Z) = split(h(Z, M()), a)
112118
113119
114-func X (Y) = addressFromStringValue(Y[z])
120+func aa (ab) = addressFromStringValue(ab[C])
115121
116122
117-func Z (Y) = addressFromStringValue(Y[C])
123+func ac (ab) = addressFromStringValue(ab[F])
118124
119125
120-func aa (Y) = addressFromStringValue(Y[y])
126+func ad (ab) = addressFromStringValue(ab[B])
121127
122128
123-func ab (Y) = addressFromStringValue(Y[H])
129+func ae (ab) = addressFromStringValue(ab[K])
124130
125131
126-func ac () = "%s__managerPublicKey"
132+func af () = "%s__managerPublicKey"
127133
128134
129-func ad () = "%s__pendingManagerPublicKey"
135+func ag () = "%s__pendingManagerPublicKey"
130136
131137
132-func ae () = "%s%s__ratePerBlock__current"
138+func ah () = "%s%s__ratePerBlock__current"
133139
134140
135-func af () = "%s%s__ratePerBlockMax__current"
141+func ai () = "%s%s__ratePerBlockMax__current"
136142
137143
138-func ag () = "%s%s__emission__startBlock"
144+func aj () = "%s%s__emission__startBlock"
139145
140146
141-func ah () = "%s%s__boostingV2__startBlock"
147+func ak () = "%s%s__boostingV2__startBlock"
142148
143149
144-func ai () = "%s%s__emission__duration"
150+func al () = "%s%s__emission__duration"
145151
146152
147-func aj () = "%s%s__emission__endBlock"
153+func am () = "%s%s__emission__endBlock"
148154
149155
150-func ak () = "%s__nextPeriod"
156+func an () = "%s__nextPeriod"
151157
152158
153-func al () = "%s%s__gwxRewardEmissionPart__startHeight"
159+func ao () = "%s%s__gwxRewardEmissionPart__startHeight"
154160
155161
156-let am = 1
162+let ap = 1
157163
158-let an = 2
164+let aq = 2
159165
160-let ao = 3
166+let ar = 3
161167
162-let ap = 4
168+let as = 4
163169
164-let aq = 5
170+let at = 5
165171
166-func ar () = "%s__config"
172+func au () = "%s__config"
167173
168174
169-func as () = split(e(this, ar()), a)
175+func av () = split(h(this, au()), a)
170176
171177
172-let at = addressFromStringValue(as()[aq])
178+let aw = addressFromStringValue(av()[at])
173179
174-func au (av,aw,ax,ay,at) = makeString(["%s%d%d%d", av, aw, ax, ay, at], a)
180+func ax (ay,az,aA,aB,aw) = makeString(["%s%d%d%d", ay, az, aA, aB, aw], a)
175181
176182
177-func az (av,aw,ax,ay,at) = au(av, toString(aw), toString(ax), toString(ay), at)
183+func aC (ay,az,aA,aB,aw) = ax(ay, toString(az), toString(aA), toString(aB), aw)
178184
179185
180-func aA () = {
181- let o = getString(ac())
182- if ($isInstanceOf(o, "String"))
186+func aD () = {
187+ let r = getString(af())
188+ if ($isInstanceOf(r, "String"))
183189 then {
184- let aB = o
185- fromBase58String(aB)
190+ let aE = r
191+ fromBase58String(aE)
186192 }
187- else if ($isInstanceOf(o, "Unit"))
193+ else if ($isInstanceOf(r, "Unit"))
188194 then unit
189195 else throw("Match error")
190196 }
191197
192198
193-func aC () = {
194- let o = getString(ad())
195- if ($isInstanceOf(o, "String"))
199+func aF () = {
200+ let r = getString(ag())
201+ if ($isInstanceOf(r, "String"))
196202 then {
197- let aB = o
198- fromBase58String(aB)
203+ let aE = r
204+ fromBase58String(aE)
199205 }
200- else if ($isInstanceOf(o, "Unit"))
206+ else if ($isInstanceOf(r, "Unit"))
201207 then unit
202208 else throw("Match error")
203209 }
204210
205211
206-func aD (aE) = {
207- let aF = throw("Permission denied")
208- let o = aA()
209- if ($isInstanceOf(o, "ByteVector"))
212+func aG (aH) = {
213+ let aI = throw("Permission denied")
214+ let r = aD()
215+ if ($isInstanceOf(r, "ByteVector"))
210216 then {
211- let aG = o
212- if ((aE.callerPublicKey == aG))
217+ let aJ = r
218+ if ((aH.callerPublicKey == aJ))
213219 then true
214- else aF
220+ else aI
215221 }
216- else if ($isInstanceOf(o, "Unit"))
217- then if ((aE.caller == this))
222+ else if ($isInstanceOf(r, "Unit"))
223+ then if ((aH.caller == this))
218224 then true
219- else aF
225+ else aI
220226 else throw("Match error")
221227 }
222228
223229
224-let aH = 1
230+let aK = 1
225231
226-let aI = 2
232+let aL = 2
227233
228-let aJ = 3
234+let aM = 3
229235
230-let aK = 4
236+let aN = 4
231237
232-let aL = 5
238+let aO = 5
233239
234-let aM = 6
240+let aP = 6
235241
236-func aN (aO) = makeString(["%s%s__lock", aO], a)
242+func aQ (aR) = makeString(["%s%s__lock", aR], a)
237243
238244
239-func aP (aO) = split(e(this, aN(aO)), a)
245+func aS (aR) = split(h(this, aQ(aR)), a)
240246
241247
242-func aQ (aR,aS,aT,aU,aV,aW,aX,aY) = makeString(["%d%d%d%d%d%d%d%d", aR, aS, aT, aU, aV, aW, aX, aY], 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)
243249
244250
245-func aZ (aR,aS,aT,aU,aV,aW,aY) = aQ(aR, toString(aS), toString(aT), toString(aU), toString(aV), toString(aW), toString(lastBlock.timestamp), toString(aY))
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))
246252
247253
248-func ba () = "%s__nextUserNum"
254+func bd () = "%s__nextUserNum"
249255
250256
251-func bb (aO) = makeString(["%s%s%s__mapping__user2num", aO], a)
257+func be (aR) = makeString(["%s%s%s__mapping__user2num", aR], a)
252258
253259
254-func bc (S) = makeString(["%s%s%s__mapping__num2user", S], a)
260+func bf (V) = makeString(["%s%s%s__mapping__num2user", V], a)
255261
256262
257-func bd (aR) = makeString(["%s%d%s__paramByUserNum", aR, "amount"], a)
263+func bg (aU) = makeString(["%s%d%s__paramByUserNum", aU, "amount"], a)
258264
259265
260-func be (aR) = makeString(["%s%d%s__paramByUserNum", aR, "start"], a)
266+func bh (aU) = makeString(["%s%d%s__paramByUserNum", aU, "start"], a)
261267
262268
263-func bf (aR) = makeString(["%s%d%s__paramByUserNum", aR, "duration"], a)
269+func bi (aU) = makeString(["%s%d%s__paramByUserNum", aU, "duration"], a)
264270
265271
266-func bg (aR) = makeString(["%s%d%s__paramByUserNum", aR, "k"], a)
272+func bj (aU) = makeString(["%s%d%s__paramByUserNum", aU, "k"], a)
267273
268274
269-func bh (aR) = makeString(["%s%d%s__paramByUserNum", aR, "b"], a)
275+func bk (aU) = makeString(["%s%d%s__paramByUserNum", aU, "b"], a)
270276
271277
272-func bi (aR,bj) = makeString(["%s%d%s%d__paramByPeriod", aR, "k", bj], a)
278+func bl (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "k", bm], a)
273279
274280
275-func bk (aR,bj) = makeString(["%s%d%s%d__paramByPeriod", aR, "b", bj], a)
281+func bn (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "b", bm], a)
276282
277283
278-func bl () = "%s%s__stats__activeTotalLocked"
284+func bo () = "%s%s__stats__activeTotalLocked"
279285
280286
281-func bm () = "%s%s__stats__locksDurationSumInBlocks"
287+func bp () = "%s%s__stats__locksDurationSumInBlocks"
282288
283289
284-func bn () = "%s%s__stats__locksCount"
290+func bq () = "%s%s__stats__locksCount"
285291
286292
287-func bo () = "%s%s__stats__activeUsersCount"
293+func br () = "%s%s__stats__activeUsersCount"
288294
289295
290-func bp (aR) = makeString(["%s%d__userBoostEmissionLastIntV2", aR], a)
296+func bs (aU) = makeString(["%s%d__userBoostEmissionLastIntV2", aU], a)
291297
292298
293-func bq (aR,br) = makeString(["%s%d__userBoostEmissionLastIntV2", aR, br], a)
299+func bt (aU,bu) = makeString(["%s%d__userBoostEmissionLastIntV2", aU, bu], a)
294300
295301
296-func bs (aR) = makeString(["%s%d__maxBoostInt", aR], a)
302+func bv (aU) = makeString(["%s%d__maxBoostInt", aU], a)
297303
298304
299-func bt () = "%s%s__maxBoostInt__total"
305+func bw () = "%s%s__maxBoostInt__total"
300306
301307
302-func bu (aR) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aR], a)
308+func bx (aU) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aU], a)
303309
304310
305-func bv (aR) = makeString(["%s%d__userBoostClaimed", aR], a)
311+func by (aU) = makeString(["%s%d__userBoostClaimed", aU], a)
306312
307313
308-func bw () = "%s%s__gwxCached__total"
314+func bz () = "%s%s__gwxCached__total"
309315
310316
311-func bx () = "%s__gwxCachedTotalCorrective"
317+func bA () = "%s__gwxCachedTotalCorrective"
312318
313319
314-let by = T()
320+let bB = W()
315321
316-let Y = V(by)
322+let ab = Y(bB)
317323
318-let bz = Z(Y)
324+let bC = ac(ab)
319325
320-let bA = aa(Y)
326+let bD = ad(ab)
321327
322-let bB = ab(Y)
328+let bE = ae(ab)
323329
324-let bC = makeString(["%s", "votingEmissionContract"], a)
330+let bF = makeString(["%s", "votingEmissionContract"], a)
325331
326-let bD = addressFromStringValue(getStringValue(by, bC))
332+let bG = addressFromStringValue(getStringValue(bB, bF))
327333
328-let bE = {
329- let bF = invoke(bz, "getBoostCoeffREADONLY", nil, nil)
330- if ($isInstanceOf(bF, "Int"))
331- then bF
332- else throw(($getType(bF) + " couldn't be cast to Int"))
334+let bH = {
335+ let bI = invoke(bC, "getBoostCoeffREADONLY", nil, nil)
336+ if ($isInstanceOf(bI, "Int"))
337+ then bI
338+ else throw(($getType(bI) + " couldn't be cast to Int"))
333339 }
334340
335-func bG (bH) = {
336- let bI = makeString(["%s", "currentEpochUi"], a)
337- let bJ = getIntegerValue(bD, bI)
338- let bK = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
339- let bL = getInteger(this, bK)
340- let bM = valueOrElse(getInteger(this, bw()), 0)
341- let bN = if (isDefined(bL))
342- then (bJ >= value(bL))
341+func bJ (bK) = {
342+ let bL = makeString(["%s", "currentEpochUi"], a)
343+ let bM = getIntegerValue(bG, bL)
344+ let bN = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
345+ let bO = getInteger(this, bN)
346+ let bP = valueOrElse(getInteger(this, bz()), 0)
347+ let bQ = if (isDefined(bO))
348+ then (bM >= value(bO))
343349 else false
344- let bO = if (if (bN)
345- then bH
350+ let bR = if (if (bQ)
351+ then bK
346352 else false)
347- then valueOrElse(getInteger(this, bx()), 0)
353+ then valueOrElse(getInteger(this, bA()), 0)
348354 else 0
349- max([0, (bM + bO)])
355+ max([0, (bP + bR)])
350356 }
351357
352358
353-func bP (bQ,bR,aS,bS,aU,bT,bU,aE) = {
354- let bV = makeString(["%s%s%s%s__history", bQ, bR, toBase58String(aE.transactionId)], a)
355- let bW = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aS), toString(bS), toString(aU), toString(bT), toString(bU)], a)
356- StringEntry(bV, bW)
359+func bS (bT,bU,aV,bV,aX,bW,bX,aH) = {
360+ let bY = makeString(["%s%s%s%s__history", bT, bU, toBase58String(aH.transactionId)], a)
361+ let bZ = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aV), toString(bV), toString(aX), toString(bW), toString(bX)], a)
362+ StringEntry(bY, bZ)
357363 }
358364
359365
360-func bX (bY,bZ,ca,cb) = {
361- let cc = bm()
362- let cd = bn()
363- let ce = bo()
364- let cf = bl()
365- let cg = h(this, cc)
366- let ch = h(this, cd)
367- let ci = h(this, ce)
368- let cj = h(this, cf)
369-[IntegerEntry(cc, (cg + bZ)), IntegerEntry(cd, (ch + ca)), IntegerEntry(ce, (ci + cb)), IntegerEntry(cf, (cj + bY))]
366+func ca (cb,cc,cd,ce) = {
367+ let cf = bp()
368+ let cg = bq()
369+ let ch = br()
370+ let ci = bo()
371+ let cj = k(this, cf)
372+ let ck = k(this, cg)
373+ let cl = k(this, ch)
374+ let cm = k(this, ci)
375+[IntegerEntry(cf, (cj + cc)), IntegerEntry(cg, (ck + cd)), IntegerEntry(ch, (cl + ce)), IntegerEntry(ci, (cm + cb))]
370376 }
371377
372378
373-func ck (cl,cm,cn) = {
374- let co = 1000
375- (((cl * cn) + cm) / co)
379+func cn (co,cp,cq) = {
380+ let cr = 1000
381+ (((co * cq) + cp) / cr)
376382 }
377383
378384
379-func cp (aO,aR,aS,aT,aU,bT,bU,bj) = {
380- let cq = bd(aR)
381- let cr = be(aR)
382- let cs = bf(aR)
383- let ct = bg(aR)
384- let cu = bh(aR)
385- let cv = bi(aR, bj)
386- let cw = bk(aR, bj)
387- let aY = ck(bT, bU, height)
388-[IntegerEntry(cq, aS), IntegerEntry(cr, aT), IntegerEntry(cs, aU), IntegerEntry(ct, bT), IntegerEntry(cu, bU), IntegerEntry(cv, bT), IntegerEntry(cw, bU), StringEntry(aN(aO), aZ(aR, aS, aT, aU, bT, bU, aY))]
385+func cs (aR,aU,aV,aW,aX,bW,bX,bm) = {
386+ let ct = bg(aU)
387+ let cu = bh(aU)
388+ let cv = bi(aU)
389+ let cw = bj(aU)
390+ let cx = bk(aU)
391+ let cy = bl(aU, bm)
392+ let cz = bn(aU, bm)
393+ let bb = cn(bW, bX, height)
394+[IntegerEntry(ct, aV), IntegerEntry(cu, aW), IntegerEntry(cv, aX), IntegerEntry(cw, bW), IntegerEntry(cx, bX), IntegerEntry(cy, bW), IntegerEntry(cz, bX), StringEntry(aQ(aR), bc(aU, aV, aW, aX, bW, bX, bb))]
389395 }
390396
391397
392-func cx (aE,cy) = if ((size(aE.payments) > 1))
398+func cA (aH,cB) = if ((size(aH.payments) > 1))
393399 then throw("only one payment is allowed")
394- else if ((size(aE.payments) == 0))
400+ else if ((size(aH.payments) == 0))
395401 then 0
396402 else {
397- let cz = aE.payments[0]
398- if ((value(cz.assetId) != cy))
403+ let cC = aH.payments[0]
404+ if ((value(cC.assetId) != cB))
399405 then throw("invalid asset id in payment")
400- else cz.amount
406+ else cC.amount
401407 }
402408
403409
404-func cA (aO,cB) = {
405- let cC = "empty"
406- let cD = bb(aO)
407- let aR = valueOrElse(getString(cD), cC)
408- let bT = valueOrElse(getInteger(bg(aR)), 0)
409- let bU = valueOrElse(getInteger(bh(aR)), 0)
410- let cE = ck(bT, bU, cB)
411- let aY = if ((0 > cE))
410+func cD (aR,cE) = {
411+ let cF = "empty"
412+ let cG = be(aR)
413+ let aU = valueOrElse(getString(cG), cF)
414+ let bW = valueOrElse(getInteger(bj(aU)), 0)
415+ let bX = valueOrElse(getInteger(bk(aU)), 0)
416+ let cH = cn(bW, bX, cE)
417+ let bb = if ((0 > cH))
412418 then 0
413- else cE
414- aY
419+ else cH
420+ bb
415421 }
416422
417423
418-func cF (aO) = cA(aO, height)
424+func cI (aR) = cD(aR, height)
419425
420426
421-func cG (cH,cI,cJ) = {
422- let cC = "EMPTY"
423- let cK = valueOrElse(getString(this, aN(cI)), cC)
424- if ((cK == cC))
427+func cJ (cK,cL) = {
428+ let aR = addressFromStringValue(cL)
429+ let cM = 4
430+ let cN = 5
431+ let cO = {
432+ let bI = invoke(bB, "getPoolConfigByLpAssetId", [cK], nil)
433+ if ($isInstanceOf(bI, "List[Any]"))
434+ then bI
435+ else throw(($getType(bI) + " couldn't be cast to List[Any]"))
436+ }
437+ let cP = {
438+ let bI = cO[cM]
439+ if ($isInstanceOf(bI, "String"))
440+ then bI
441+ else throw(($getType(bI) + " couldn't be cast to String"))
442+ }
443+ let cQ = {
444+ let bI = cO[cN]
445+ if ($isInstanceOf(bI, "String"))
446+ then bI
447+ else throw(($getType(bI) + " couldn't be cast to String"))
448+ }
449+ let cR = makeString(["%s", "currentEpoch"], a)
450+ let cS = {
451+ let cT = (value(getInteger(this, cR)) - 1)
452+ if ((0 > cT))
453+ then g("invalid epoch")
454+ else cT
455+ }
456+ func cU (cV,i,cT) = makeString(["%s%s%s%s%d", "vote", cP, cQ, toString(i), toString(cT)], a)
457+
458+ func cW (cV,cT) = makeString(["%s%s%s%d", "votingResult", cP, cQ, toString(cT)], a)
459+
460+ let cV = $Tuple2(cP, cQ)
461+ let cX = valueOrElse(getInteger(this, cU(cV, aR, cS)), 0)
462+ let cY = valueOrElse(getInteger(this, cW(cV, cS)), 0)
463+ $Tuple2(cX, cY)
464+ }
465+
466+
467+func cZ (cK,cL,da) = {
468+ let cF = "EMPTY"
469+ let db = valueOrElse(getString(this, aQ(cL)), cF)
470+ if ((db == cF))
425471 then $Tuple3(0, nil, "userRecord::is::empty")
426472 else {
427- let cL = split(cK, a)
428- let cM = cL[aH]
429- let cN = "empty"
430- let cO = if ((cH != cN))
473+ let dc = split(db, a)
474+ let dd = dc[aK]
475+ let de = "empty"
476+ let df = if ((cK != de))
431477 then {
432- let cP = valueOrErrorMessage(getString(by, K(cH)), ("unsupported lp asset " + cH))
433- getIntegerValue(by, O(cP))
478+ let dg = valueOrErrorMessage(getString(bB, N(cK)), ("unsupported lp asset " + cK))
479+ getIntegerValue(bB, R(dg))
434480 }
435- else if (cJ)
481+ else if (da)
436482 then 0
437- else throw(("not readonly mode: unsupported lp asset " + cH))
438- let cQ = k(bz, ae())
439- let cR = k(bz, ah())
440- let cS = k(bz, aj())
441- let cn = if ((height > cS))
442- then cS
483+ else throw(("not readonly mode: unsupported lp asset " + cK))
484+ let dh = n(bC, ah())
485+ let di = n(bC, ak())
486+ let dj = n(bC, am())
487+ let cq = if ((height > dj))
488+ then dj
443489 else height
444- let cT = max([(cn - cR), 0])
445- let cU = bq(cM, cH)
446- let cV = bp(cM)
447- let cW = valueOrElse(getInteger(this, cU), h(this, cV))
448- let cX = (((cQ * cT) * (bE - 1)) / bE)
449- let cY = (cX - cW)
450- let cZ = fraction(cY, bE, ((bE - 1) * cQ))
451- let da = (cn - cZ)
452- if ((0 > cY))
490+ let dk = max([(cq - di), 0])
491+ let dl = bt(dd, cK)
492+ let dm = bs(dd)
493+ let dn = valueOrElse(getInteger(this, dl), k(this, dm))
494+ let do = (((dh * dk) * (bH - 1)) / bH)
495+ let dp = (do - dn)
496+ let dq = fraction(dp, bH, ((bH - 1) * dh))
497+ let dr = (cq - dq)
498+ if ((0 > dp))
453499 then throw("wrong calculations")
454500 else {
455- let db = bs(cM)
456- let dc = bt()
457- let dd = h(this, db)
458- let de = h(this, dc)
459- let df = {
460- let bF = invoke(bD, "getVoteInfoREADONLY", [cH, cI], nil)
461- if ($isInstanceOf(bF, "(Int, Int)"))
462- then bF
463- else throw(($getType(bF) + " couldn't be cast to (Int, Int)"))
464- }
465- let dg = df._1
466- let dh = df._2
467- let di = bu(cM)
468- let dj = h(this, di)
469- let dk = fraction(cY, cO, d)
470- let dl = if ((dh == 0))
501+ let ds = bv(dd)
502+ let dt = bw()
503+ let du = k(this, ds)
504+ let dv = k(this, dt)
505+ let dw = cJ(cK, cL)
506+ let cX = dw._1
507+ let dx = dw._2
508+ let dy = bx(dd)
509+ let dz = k(this, dy)
510+ let dA = fraction(dp, df, d)
511+ let dB = if ((dx == 0))
471512 then 0
472- else fraction(dk, dg, dh)
473- let dm = bv(cM)
474- let dn = h(this, dm)
475- let do = (dl - dn)
476- let dp = [IntegerEntry(cU, cX)]
477- let dq = makeString([toString(cW), toString(cY), toString(dn), toString(do), toString(cO), toString(cn), toString(cZ), toString(da), toString(dg), toString(dh)], ":")
478- $Tuple3(dl, dp, dq)
513+ else fraction(dA, cX, dx)
514+ let dC = by(dd)
515+ let dD = k(this, dC)
516+ let dE = (dB - dD)
517+ let dF = [IntegerEntry(dl, do)]
518+ let dG = makeString([toString(dn), toString(dp), toString(dD), toString(dE), toString(df), toString(cq), toString(dq), toString(dr), toString(cX), toString(dx)], ":")
519+ $Tuple3(dB, dF, dG)
479520 }
480521 }
481522 }
482523
483524
484-func dr (aE,aU) = {
485- let ds = as()
486- let dt = ds[am]
487- let av = fromBase58String(dt)
488- let aw = parseIntValue(ds[an])
489- let ax = parseIntValue(ds[ao])
490- let ay = parseIntValue(ds[ap])
491- if ((size(aE.payments) != 1))
525+func dH (aH,aX) = {
526+ let dI = av()
527+ let dJ = dI[ap]
528+ let ay = fromBase58String(dJ)
529+ let az = parseIntValue(dI[aq])
530+ let aA = parseIntValue(dI[ar])
531+ let aB = parseIntValue(dI[as])
532+ if ((size(aH.payments) != 1))
492533 then throw("invalid payment - exact one payment must be attached")
493534 else {
494- let cz = aE.payments[0]
495- let du = cz.amount
496- if ((av != value(cz.assetId)))
497- then throw((("invalid asset is in payment - " + dt) + " is expected"))
535+ let cC = aH.payments[0]
536+ let dK = cC.amount
537+ if ((ay != value(cC.assetId)))
538+ then throw((("invalid asset is in payment - " + dJ) + " is expected"))
498539 else {
499- let dv = ba()
500- let cI = toString(aE.caller)
501- let dw = isDefined(getString(bb(cI)))
502- let cM = if (dw)
503- then value(getString(bb(cI)))
504- else toString(k(this, dv))
505- let aR = parseIntValue(cM)
506- let bS = height
507- let cr = be(cM)
508- let cs = bf(cM)
509- let cq = bd(cM)
510- if ((aw > du))
511- then throw(("amount is less then minLockAmount=" + toString(aw)))
512- else if ((ax > aU))
513- then throw(("passed duration is less then minLockDuration=" + toString(ax)))
514- else if ((aU > ay))
515- then throw(("passed duration is greater then maxLockDuration=" + toString(ay)))
516- else if (if (dw)
517- then ((k(this, cr) + k(this, cs)) >= bS)
540+ let dL = bd()
541+ let cL = toString(aH.caller)
542+ let dM = isDefined(getString(be(cL)))
543+ let dd = if (dM)
544+ then value(getString(be(cL)))
545+ else toString(n(this, dL))
546+ let aU = parseIntValue(dd)
547+ let bV = height
548+ let cu = bh(dd)
549+ let cv = bi(dd)
550+ let ct = bg(dd)
551+ if ((az > dK))
552+ then throw(("amount is less then minLockAmount=" + toString(az)))
553+ else if ((aA > aX))
554+ then throw(("passed duration is less then minLockDuration=" + toString(aA)))
555+ else if ((aX > aB))
556+ then throw(("passed duration is greater then maxLockDuration=" + toString(aB)))
557+ else if (if (dM)
558+ then ((n(this, cu) + n(this, cv)) >= bV)
518559 else false)
519560 then throw("there is an active lock - consider to use increaseLock")
520- else if ((h(this, cq) > 0))
521- then throw(("there are locked WXs - consider to use increaseLock " + cq))
561+ else if ((k(this, ct) > 0))
562+ then throw(("there are locked WXs - consider to use increaseLock " + ct))
522563 else {
523- let dx = fraction(aU, c, ay)
524- let dy = fraction(du, dx, c)
525- let dz = n(invoke(at, "calcGwxParamsREADONLY", [dy, bS, aU], nil))
526- let bT = q(dz[0])
527- let bU = q(dz[1])
528- let bj = toString(q(dz[2]))
529- let cQ = k(bz, ae())
530- let dA = k(bz, ag())
531- let cS = k(bz, aj())
532- let cn = if ((height > cS))
533- then cS
564+ let dN = fraction(aX, c, aB)
565+ let dO = fraction(dK, dN, c)
566+ let dP = q(invoke(aw, "calcGwxParamsREADONLY", [dO, bV, aX], nil))
567+ let bW = t(dP[0])
568+ let bX = t(dP[1])
569+ let bm = toString(t(dP[2]))
570+ let dh = n(bC, ah())
571+ let dQ = n(bC, aj())
572+ let dj = n(bC, am())
573+ let cq = if ((height > dj))
574+ then dj
534575 else height
535- let cT = max([(cn - dA), 0])
536- let cV = bp(cM)
537- let cX = (((cQ * cT) * 2) / 3)
538- let db = bs(cM)
539- let dc = bt()
540- let dd = ((dy * aU) / 2)
541- let de = h(this, dc)
542- let bM = bG(false)
543- let dB = if (dw)
576+ let dk = max([(cq - dQ), 0])
577+ let dm = bs(dd)
578+ let do = (((dh * dk) * 2) / 3)
579+ let ds = bv(dd)
580+ let dt = bw()
581+ let du = ((dO * aX) / 2)
582+ let dv = k(this, dt)
583+ let bP = bJ(false)
584+ let dR = if (dM)
544585 then nil
545- else [IntegerEntry(dv, (aR + 1)), StringEntry(bb(cI), cM), StringEntry(bc(cM), cI)]
546- $Tuple2(((((dB ++ cp(cI, cM, du, bS, aU, bT, bU, bj)) ++ bX(du, aU, 1, if (dw)
586+ else [IntegerEntry(dL, (aU + 1)), StringEntry(be(cL), dd), StringEntry(bf(dd), cL)]
587+ $Tuple2(((((dR ++ cs(cL, dd, dK, bV, aX, bW, bX, bm)) ++ ca(dK, aX, 1, if (dM)
547588 then 0
548- else 1)) :+ bP("lock", cI, du, bS, aU, bT, bU, aE)) ++ [IntegerEntry(cV, cX), IntegerEntry(bw(), (bM + dy))]), dy)
589+ else 1)) :+ bS("lock", cL, dK, bV, aX, bW, bX, aH)) ++ [IntegerEntry(dm, do), IntegerEntry(bz(), (bP + dO))]), dO)
549590 }
550591 }
551592 }
552593 }
553594
554595
555-@Callable(aE)
556-func constructor (dC,dD,aw,dE,dF,at) = {
557- let dG = aD(aE)
558- if ((dG == dG))
559- then ([IntegerEntry(ba(), 0), StringEntry(ar(), az(dD, aw, dE, dF, at)), StringEntry(x(), dC)] ++ bX(0, 0, 0, 0))
596+@Callable(aH)
597+func constructor (dS,dT,az,dU,dV,aw) = {
598+ let dW = aG(aH)
599+ if ((dW == dW))
600+ then ([IntegerEntry(bd(), 0), StringEntry(au(), aC(dT, az, dU, dV, aw)), StringEntry(A(), dS)] ++ ca(0, 0, 0, 0))
560601 else throw("Strict value is not equal to itself.")
561602 }
562603
563604
564605
565-@Callable(aE)
566-func lockRef (aU,dH,dI) = {
567- let dJ = dr(aE, aU)
568- let dK = dJ._1
569- let dy = dJ._2
570- let dL = toString(aE.caller)
571- let dM = if (if ((dH == ""))
606+@Callable(aH)
607+func lockRef (aX,dX,dY) = {
608+ let dZ = dH(aH, aX)
609+ let ea = dZ._1
610+ let dO = dZ._2
611+ let eb = toString(aH.caller)
612+ let ec = if (if ((dX == ""))
572613 then true
573- else (dI == base58''))
614+ else (dY == base58''))
574615 then unit
575- else invoke(t, "createPair", [w, dH, dL, dI], nil)
576- if ((dM == dM))
616+ else invoke(w, "createPair", [z, dX, eb, dY], nil)
617+ if ((ec == ec))
577618 then {
578- let dN = invoke(at, "updateReferralActivity", [toString(aE.caller), dy], nil)
579- if ((dN == dN))
580- then $Tuple2(dK, unit)
619+ let ed = invoke(aw, "updateReferralActivity", [toString(aH.caller), dO], nil)
620+ if ((ed == ed))
621+ then $Tuple2(ea, unit)
581622 else throw("Strict value is not equal to itself.")
582623 }
583624 else throw("Strict value is not equal to itself.")
585626
586627
587628
588-@Callable(aE)
589-func lock (aU) = {
590- let dO = dr(aE, aU)
591- let dK = dO._1
592- let dy = dO._2
593- let dN = invoke(at, "updateReferralActivity", [toString(aE.caller), dy], nil)
594- if ((dN == dN))
595- then $Tuple2(dK, unit)
629+@Callable(aH)
630+func lock (aX) = {
631+ let ee = dH(aH, aX)
632+ let ea = ee._1
633+ let dO = ee._2
634+ let ed = invoke(aw, "updateReferralActivity", [toString(aH.caller), dO], nil)
635+ if ((ed == ed))
636+ then $Tuple2(ea, unit)
596637 else throw("Strict value is not equal to itself.")
597638 }
598639
599640
600641
601-@Callable(aE)
602-func increaseLock (dP) = {
603- let ds = as()
604- let dt = ds[am]
605- let av = fromBase58String(dt)
606- let ax = parseIntValue(ds[ao])
607- let ay = parseIntValue(ds[ap])
608- let du = cx(aE, av)
609- let cI = toString(aE.caller)
610- let cL = aP(cI)
611- let cM = cL[aH]
612- let dQ = parseIntValue(cL[aI])
613- let bS = parseIntValue(cL[aJ])
614- let dR = parseIntValue(cL[aK])
615- let dS = (bS + dR)
616- let dT = max([(dS - height), 0])
617- let dU = (dQ + du)
618- let dV = (dT + dP)
619- if ((0 > dP))
642+@Callable(aH)
643+func increaseLock (ef) = {
644+ let dI = av()
645+ let dJ = dI[ap]
646+ let ay = fromBase58String(dJ)
647+ let aA = parseIntValue(dI[ar])
648+ let aB = parseIntValue(dI[as])
649+ let dK = cA(aH, ay)
650+ let cL = toString(aH.caller)
651+ let dc = aS(cL)
652+ let dd = dc[aK]
653+ let eg = parseIntValue(dc[aL])
654+ let bV = parseIntValue(dc[aM])
655+ let eh = parseIntValue(dc[aN])
656+ let ei = (bV + eh)
657+ let ej = max([(ei - height), 0])
658+ let ek = (eg + dK)
659+ let el = (ej + ef)
660+ if ((0 > ef))
620661 then throw("duration is less then zero")
621- else if ((ax > dV))
622- then throw(("lockDurationNew is less then minLockDuration=" + toString(ax)))
623- else if ((dV > ay))
624- then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(ay)))
662+ else if ((aA > el))
663+ then throw(("lockDurationNew is less then minLockDuration=" + toString(aA)))
664+ else if ((el > aB))
665+ then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
625666 else {
626- let dx = fraction(dV, c, ay)
627- let dy = fraction(dU, dx, c)
628- let dN = invoke(at, "updateReferralActivity", [toString(aE.caller), dy], nil)
629- if ((dN == dN))
667+ let dN = fraction(el, c, aB)
668+ let dO = fraction(ek, dN, c)
669+ let ed = invoke(aw, "updateReferralActivity", [toString(aH.caller), dO], nil)
670+ if ((ed == ed))
630671 then {
631- let dW = height
632- let dz = n(invoke(at, "calcGwxParamsREADONLY", [dy, dW, dV], nil))
633- let bT = q(dz[0])
634- let bU = q(dz[1])
635- let bj = toString(q(dz[2]))
636- let cQ = k(bz, ae())
637- let dA = k(bz, ag())
638- let cS = k(bz, aj())
639- let cn = if ((height > cS))
640- then cS
672+ let em = height
673+ let dP = q(invoke(aw, "calcGwxParamsREADONLY", [dO, em, el], nil))
674+ let bW = t(dP[0])
675+ let bX = t(dP[1])
676+ let bm = toString(t(dP[2]))
677+ let dh = n(bC, ah())
678+ let dQ = n(bC, aj())
679+ let dj = n(bC, am())
680+ let cq = if ((height > dj))
681+ then dj
641682 else height
642- let cT = max([(cn - dA), 0])
643- let cV = bp(cM)
644- let cW = h(this, cV)
645- let cX = (((cQ * cT) * 2) / 3)
646- let cY = (cX - cW)
647- if ((0 > cY))
683+ let dk = max([(cq - dQ), 0])
684+ let dm = bs(dd)
685+ let dn = k(this, dm)
686+ let do = (((dh * dk) * 2) / 3)
687+ let dp = (do - dn)
688+ if ((0 > dp))
648689 then throw("wrong calculations")
649690 else {
650- let db = bs(cM)
651- let dc = bt()
652- let dd = h(this, db)
653- let de = h(this, dc)
654- let dX = cF(cI)
655- let dY = (dy - dX)
656- if ((0 > dY))
657- then throw(("gwxDiff is less then 0: " + toString(dY)))
691+ let ds = bv(dd)
692+ let dt = bw()
693+ let du = k(this, ds)
694+ let dv = k(this, dt)
695+ let en = cI(cL)
696+ let eo = (dO - en)
697+ if ((0 > eo))
698+ then throw(("gwxDiff is less then 0: " + toString(eo)))
658699 else {
659- let bM = bG(false)
660- let dZ = bG(true)
661- let di = bu(cM)
662- let dj = h(this, di)
663- let dl = fraction(cY, dX, dZ)
664- let ea = ((dy * dV) / 2)
665- let eb = ((dX * dT) / 2)
666- let ec = (ea - eb)
667- (((cp(cI, cM, dU, dW, dV, bT, bU, bj) ++ bX(du, dP, 0, 0)) :+ bP("lock", cI, du, bS, dV, bT, bU, aE)) ++ [IntegerEntry(bw(), (bM + dY))])
700+ let bP = bJ(false)
701+ let ep = bJ(true)
702+ let dy = bx(dd)
703+ let dz = k(this, dy)
704+ let dB = fraction(dp, en, ep)
705+ let eq = ((dO * el) / 2)
706+ let er = ((en * ej) / 2)
707+ let es = (eq - er)
708+ (((cs(cL, dd, ek, em, el, bW, bX, bm) ++ ca(dK, ef, 0, 0)) :+ bS("lock", cL, dK, bV, el, bW, bX, aH)) ++ [IntegerEntry(bz(), (bP + eo))])
668709 }
669710 }
670711 }
674715
675716
676717
677-@Callable(aE)
678-func claimWxBoost (cH,cI) = if ((bA != aE.caller))
718+@Callable(aH)
719+func claimWxBoost (cK,cL) = if ((bD != aH.caller))
679720 then throw("permissions denied")
680721 else {
681- let ed = cG(cH, cI, false)
682- let do = ed._1
683- let dp = ed._2
684- let dq = ed._3
685- $Tuple2(dp, [do])
722+ let et = cZ(cK, cL, false)
723+ let dE = et._1
724+ let dF = et._2
725+ let dG = et._3
726+ $Tuple2(dF, [dE])
686727 }
687728
688729
689730
690-@Callable(aE)
691-func claimWxBoostREADONLY (cH,cI) = {
692- let ee = cG(cH, cI, true)
693- let do = ee._1
694- let dp = ee._2
695- let dq = ee._3
696- $Tuple2(nil, [do, dq])
731+@Callable(aH)
732+func claimWxBoostREADONLY (cK,cL) = {
733+ let eu = cZ(cK, cL, true)
734+ let dE = eu._1
735+ let dF = eu._2
736+ let dG = eu._3
737+ $Tuple2(nil, [dE, dG])
697738 }
698739
699740
700741
701-@Callable(aE)
702-func unlock (aO) = {
703- let cL = aP(aO)
704- let cM = cL[aH]
705- let dQ = parseIntValue(cL[aI])
706- let bS = parseIntValue(cL[aJ])
707- let dR = parseIntValue(cL[aK])
708- let dS = (bS + dR)
709- let ds = as()
710- let av = fromBase58String(ds[am])
711- if ((dS >= height))
712- then throw((("wait " + toString(dS)) + " to unlock"))
713- else if ((0 >= dQ))
742+@Callable(aH)
743+func unlock (aR) = {
744+ let dc = aS(aR)
745+ let dd = dc[aK]
746+ let eg = parseIntValue(dc[aL])
747+ let bV = parseIntValue(dc[aM])
748+ let eh = parseIntValue(dc[aN])
749+ let ei = (bV + eh)
750+ let dI = av()
751+ let ay = fromBase58String(dI[ap])
752+ if ((ei >= height))
753+ then throw((("wait " + toString(ei)) + " to unlock"))
754+ else if ((0 >= eg))
714755 then throw("nothing to unlock")
715756 else {
716- let bj = valueOrElse(getInteger(at, ak()), 0)
717- (((cp(aO, cM, 0, bS, dR, 0, 0, toString(bj)) ++ bX(-(dQ), 0, 0, -1)) :+ bP("unlock", aO, dQ, bS, dR, 0, 0, aE)) :+ ScriptTransfer(addressFromStringValue(aO), dQ, av))
757+ let bm = valueOrElse(getInteger(aw, an()), 0)
758+ (((cs(aR, dd, 0, bV, eh, 0, 0, toString(bm)) ++ ca(-(eg), 0, 0, -1)) :+ bS("unlock", aR, eg, bV, eh, 0, 0, aH)) :+ ScriptTransfer(addressFromStringValue(aR), eg, ay))
718759 }
719760 }
720761
721762
722763
723-@Callable(aE)
724-func gwxUserInfoREADONLY (aO) = {
725- let aY = cF(aO)
726- $Tuple2(nil, [aY])
764+@Callable(aH)
765+func gwxUserInfoREADONLY (aR) = {
766+ let bb = cI(aR)
767+ $Tuple2(nil, [bb])
727768 }
728769
729770
730771
731-@Callable(aE)
732-func getUserGwxAmountAtHeightREADONLY (aO,cB) = {
733- let aY = cA(aO, cB)
734- $Tuple2(nil, aY)
772+@Callable(aH)
773+func getUserGwxAmountAtHeightREADONLY (aR,cE) = {
774+ let bb = cD(aR, cE)
775+ $Tuple2(nil, bb)
735776 }
736777
737778
738779
739-@Callable(aE)
740-func getTotalCachedGwxREADONLY () = $Tuple2(nil, bG(true))
780+@Callable(aH)
781+func getTotalCachedGwxREADONLY () = $Tuple2(nil, bJ(true))
741782
742783
743784
744-@Callable(aE)
745-func setManager (ef) = {
746- let dG = aD(aE)
747- if ((dG == dG))
785+@Callable(aH)
786+func setManager (ev) = {
787+ let dW = aG(aH)
788+ if ((dW == dW))
748789 then {
749- let eg = fromBase58String(ef)
750- if ((eg == eg))
751- then [StringEntry(ad(), ef)]
790+ let ew = fromBase58String(ev)
791+ if ((ew == ew))
792+ then [StringEntry(ag(), ev)]
752793 else throw("Strict value is not equal to itself.")
753794 }
754795 else throw("Strict value is not equal to itself.")
756797
757798
758799
759-@Callable(aE)
800+@Callable(aH)
760801 func confirmManager () = {
761- let eh = aC()
762- let ei = if (isDefined(eh))
802+ let ex = aF()
803+ let ey = if (isDefined(ex))
763804 then true
764805 else throw("No pending manager")
765- if ((ei == ei))
806+ if ((ey == ey))
766807 then {
767- let ej = if ((aE.callerPublicKey == value(eh)))
808+ let ez = if ((aH.callerPublicKey == value(ex)))
768809 then true
769810 else throw("You are not pending manager")
770- if ((ej == ej))
771- then [StringEntry(ac(), toBase58String(value(eh))), DeleteEntry(ad())]
811+ if ((ez == ez))
812+ then [StringEntry(af(), toBase58String(value(ex))), DeleteEntry(ag())]
772813 else throw("Strict value is not equal to itself.")
773814 }
774815 else throw("Strict value is not equal to itself.")
775816 }
776817
777818
778-@Verifier(ek)
779-func el () = {
780- let em = {
781- let o = aA()
782- if ($isInstanceOf(o, "ByteVector"))
819+@Verifier(eA)
820+func eB () = {
821+ let eC = {
822+ let r = aD()
823+ if ($isInstanceOf(r, "ByteVector"))
783824 then {
784- let aG = o
785- aG
825+ let aJ = r
826+ aJ
786827 }
787- else if ($isInstanceOf(o, "Unit"))
788- then ek.senderPublicKey
828+ else if ($isInstanceOf(r, "Unit"))
829+ then eA.senderPublicKey
789830 else throw("Match error")
790831 }
791- sigVerify(ek.bodyBytes, ek.proofs[0], em)
832+ sigVerify(eA.bodyBytes, eA.proofs[0], eC)
792833 }
793834
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
12-func e (f,g) = valueOrErrorMessage(getString(f, g), (("mandatory this." + g) + " is not defined"))
12+func e (f) = makeString(["boosting.ride:", f], " ")
1313
1414
15-func h (f,g) = valueOrElse(getInteger(f, g), 0)
15+func g (f) = throw(e(f))
1616
1717
18-func i (f,g,j) = valueOrElse(getInteger(f, g), j)
18+func h (i,j) = valueOrErrorMessage(getString(i, j), (("mandatory this." + j) + " is not defined"))
1919
2020
21-func k (f,g) = valueOrErrorMessage(getInteger(f, g), (("mandatory this." + g) + " is not defined"))
21+func k (i,j) = valueOrElse(getInteger(i, j), 0)
2222
2323
24-func l (m) = if ((0 > m))
25- then -(m)
26- else m
24+func l (i,j,m) = valueOrElse(getInteger(i, j), m)
2725
2826
29-func n (m) = {
30- let o = m
31- if ($isInstanceOf(o, "List[Any]"))
27+func n (i,j) = valueOrErrorMessage(getInteger(i, j), (("mandatory this." + j) + " is not defined"))
28+
29+
30+func o (p) = if ((0 > p))
31+ then -(p)
32+ else p
33+
34+
35+func q (p) = {
36+ let r = p
37+ if ($isInstanceOf(r, "List[Any]"))
3238 then {
33- let p = o
34- p
39+ let s = r
40+ s
3541 }
3642 else throw("fail to cast into List[Any]")
3743 }
3844
3945
40-func q (m) = {
41- let o = m
42- if ($isInstanceOf(o, "Int"))
46+func t (p) = {
47+ let r = p
48+ if ($isInstanceOf(r, "Int"))
4349 then {
44- let r = o
45- r
50+ let u = r
51+ u
4652 }
4753 else throw("fail to cast into Int")
4854 }
4955
5056
51-func s () = makeString(["%s%s", "config", "referralsContractAddress"], a)
57+func v () = makeString(["%s%s", "config", "referralsContractAddress"], a)
5258
5359
54-let t = addressFromStringValue(e(this, s()))
60+let w = addressFromStringValue(h(this, v()))
5561
56-let u = makeString(["%s%s", "referral", "programName"], a)
62+let x = makeString(["%s%s", "referral", "programName"], a)
5763
58-let v = "wxlock"
64+let y = "wxlock"
5965
60-let w = valueOrElse(getString(this, u), v)
66+let z = valueOrElse(getString(this, x), y)
6167
62-func x () = "%s%s__config__factoryAddress"
68+func A () = "%s%s__config__factoryAddress"
6369
6470
65-let y = 1
71+let B = 1
6672
67-let z = 2
73+let C = 2
6874
69-let A = 3
75+let D = 3
7076
71-let B = 4
77+let E = 4
7278
73-let C = 5
79+let F = 5
7480
75-let D = 6
81+let G = 6
7682
77-let E = 7
83+let H = 7
7884
79-let F = 8
85+let I = 8
8086
81-let G = 9
87+let J = 9
8288
83-let H = 10
89+let K = 10
8490
85-let I = 11
91+let L = 11
8692
87-func J () = "%s__factoryConfig"
93+func M () = "%s__factoryConfig"
8894
8995
90-func K (L) = makeString(["%s%s%s", L, "mappings__lpAsset2PoolContract"], a)
96+func N (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
9197
9298
93-func M () = "%s__lpTokensList"
99+func P () = "%s__lpTokensList"
94100
95101
96-func N (L) = makeString(["%s%s%s", L, "mappings__lpAsset2PoolContract"], a)
102+func Q (O) = makeString(["%s%s%s", O, "mappings__lpAsset2PoolContract"], a)
97103
98104
99-func O (P) = makeString(["%s%s", "poolWeight", P], a)
105+func R (S) = makeString(["%s%s", "poolWeight", S], a)
100106
101107
102-func Q (R,S) = ((("%s%s__poolWeight__" + R) + "__") + toString(S))
108+func T (U,V) = ((("%s%s__poolWeight__" + U) + "__") + toString(V))
103109
104110
105-func T () = addressFromStringValue(e(this, x()))
111+func W () = addressFromStringValue(h(this, A()))
106112
107113
108-func U () = split(valueOrElse(getString(T(), M()), ""), a)
114+func X () = split(valueOrElse(getString(W(), P()), ""), a)
109115
110116
111-func V (W) = split(e(W, J()), a)
117+func Y (Z) = split(h(Z, M()), a)
112118
113119
114-func X (Y) = addressFromStringValue(Y[z])
120+func aa (ab) = addressFromStringValue(ab[C])
115121
116122
117-func Z (Y) = addressFromStringValue(Y[C])
123+func ac (ab) = addressFromStringValue(ab[F])
118124
119125
120-func aa (Y) = addressFromStringValue(Y[y])
126+func ad (ab) = addressFromStringValue(ab[B])
121127
122128
123-func ab (Y) = addressFromStringValue(Y[H])
129+func ae (ab) = addressFromStringValue(ab[K])
124130
125131
126-func ac () = "%s__managerPublicKey"
132+func af () = "%s__managerPublicKey"
127133
128134
129-func ad () = "%s__pendingManagerPublicKey"
135+func ag () = "%s__pendingManagerPublicKey"
130136
131137
132-func ae () = "%s%s__ratePerBlock__current"
138+func ah () = "%s%s__ratePerBlock__current"
133139
134140
135-func af () = "%s%s__ratePerBlockMax__current"
141+func ai () = "%s%s__ratePerBlockMax__current"
136142
137143
138-func ag () = "%s%s__emission__startBlock"
144+func aj () = "%s%s__emission__startBlock"
139145
140146
141-func ah () = "%s%s__boostingV2__startBlock"
147+func ak () = "%s%s__boostingV2__startBlock"
142148
143149
144-func ai () = "%s%s__emission__duration"
150+func al () = "%s%s__emission__duration"
145151
146152
147-func aj () = "%s%s__emission__endBlock"
153+func am () = "%s%s__emission__endBlock"
148154
149155
150-func ak () = "%s__nextPeriod"
156+func an () = "%s__nextPeriod"
151157
152158
153-func al () = "%s%s__gwxRewardEmissionPart__startHeight"
159+func ao () = "%s%s__gwxRewardEmissionPart__startHeight"
154160
155161
156-let am = 1
162+let ap = 1
157163
158-let an = 2
164+let aq = 2
159165
160-let ao = 3
166+let ar = 3
161167
162-let ap = 4
168+let as = 4
163169
164-let aq = 5
170+let at = 5
165171
166-func ar () = "%s__config"
172+func au () = "%s__config"
167173
168174
169-func as () = split(e(this, ar()), a)
175+func av () = split(h(this, au()), a)
170176
171177
172-let at = addressFromStringValue(as()[aq])
178+let aw = addressFromStringValue(av()[at])
173179
174-func au (av,aw,ax,ay,at) = makeString(["%s%d%d%d", av, aw, ax, ay, at], a)
180+func ax (ay,az,aA,aB,aw) = makeString(["%s%d%d%d", ay, az, aA, aB, aw], a)
175181
176182
177-func az (av,aw,ax,ay,at) = au(av, toString(aw), toString(ax), toString(ay), at)
183+func aC (ay,az,aA,aB,aw) = ax(ay, toString(az), toString(aA), toString(aB), aw)
178184
179185
180-func aA () = {
181- let o = getString(ac())
182- if ($isInstanceOf(o, "String"))
186+func aD () = {
187+ let r = getString(af())
188+ if ($isInstanceOf(r, "String"))
183189 then {
184- let aB = o
185- fromBase58String(aB)
190+ let aE = r
191+ fromBase58String(aE)
186192 }
187- else if ($isInstanceOf(o, "Unit"))
193+ else if ($isInstanceOf(r, "Unit"))
188194 then unit
189195 else throw("Match error")
190196 }
191197
192198
193-func aC () = {
194- let o = getString(ad())
195- if ($isInstanceOf(o, "String"))
199+func aF () = {
200+ let r = getString(ag())
201+ if ($isInstanceOf(r, "String"))
196202 then {
197- let aB = o
198- fromBase58String(aB)
203+ let aE = r
204+ fromBase58String(aE)
199205 }
200- else if ($isInstanceOf(o, "Unit"))
206+ else if ($isInstanceOf(r, "Unit"))
201207 then unit
202208 else throw("Match error")
203209 }
204210
205211
206-func aD (aE) = {
207- let aF = throw("Permission denied")
208- let o = aA()
209- if ($isInstanceOf(o, "ByteVector"))
212+func aG (aH) = {
213+ let aI = throw("Permission denied")
214+ let r = aD()
215+ if ($isInstanceOf(r, "ByteVector"))
210216 then {
211- let aG = o
212- if ((aE.callerPublicKey == aG))
217+ let aJ = r
218+ if ((aH.callerPublicKey == aJ))
213219 then true
214- else aF
220+ else aI
215221 }
216- else if ($isInstanceOf(o, "Unit"))
217- then if ((aE.caller == this))
222+ else if ($isInstanceOf(r, "Unit"))
223+ then if ((aH.caller == this))
218224 then true
219- else aF
225+ else aI
220226 else throw("Match error")
221227 }
222228
223229
224-let aH = 1
230+let aK = 1
225231
226-let aI = 2
232+let aL = 2
227233
228-let aJ = 3
234+let aM = 3
229235
230-let aK = 4
236+let aN = 4
231237
232-let aL = 5
238+let aO = 5
233239
234-let aM = 6
240+let aP = 6
235241
236-func aN (aO) = makeString(["%s%s__lock", aO], a)
242+func aQ (aR) = makeString(["%s%s__lock", aR], a)
237243
238244
239-func aP (aO) = split(e(this, aN(aO)), a)
245+func aS (aR) = split(h(this, aQ(aR)), a)
240246
241247
242-func aQ (aR,aS,aT,aU,aV,aW,aX,aY) = makeString(["%d%d%d%d%d%d%d%d", aR, aS, aT, aU, aV, aW, aX, aY], 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)
243249
244250
245-func aZ (aR,aS,aT,aU,aV,aW,aY) = aQ(aR, toString(aS), toString(aT), toString(aU), toString(aV), toString(aW), toString(lastBlock.timestamp), toString(aY))
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))
246252
247253
248-func ba () = "%s__nextUserNum"
254+func bd () = "%s__nextUserNum"
249255
250256
251-func bb (aO) = makeString(["%s%s%s__mapping__user2num", aO], a)
257+func be (aR) = makeString(["%s%s%s__mapping__user2num", aR], a)
252258
253259
254-func bc (S) = makeString(["%s%s%s__mapping__num2user", S], a)
260+func bf (V) = makeString(["%s%s%s__mapping__num2user", V], a)
255261
256262
257-func bd (aR) = makeString(["%s%d%s__paramByUserNum", aR, "amount"], a)
263+func bg (aU) = makeString(["%s%d%s__paramByUserNum", aU, "amount"], a)
258264
259265
260-func be (aR) = makeString(["%s%d%s__paramByUserNum", aR, "start"], a)
266+func bh (aU) = makeString(["%s%d%s__paramByUserNum", aU, "start"], a)
261267
262268
263-func bf (aR) = makeString(["%s%d%s__paramByUserNum", aR, "duration"], a)
269+func bi (aU) = makeString(["%s%d%s__paramByUserNum", aU, "duration"], a)
264270
265271
266-func bg (aR) = makeString(["%s%d%s__paramByUserNum", aR, "k"], a)
272+func bj (aU) = makeString(["%s%d%s__paramByUserNum", aU, "k"], a)
267273
268274
269-func bh (aR) = makeString(["%s%d%s__paramByUserNum", aR, "b"], a)
275+func bk (aU) = makeString(["%s%d%s__paramByUserNum", aU, "b"], a)
270276
271277
272-func bi (aR,bj) = makeString(["%s%d%s%d__paramByPeriod", aR, "k", bj], a)
278+func bl (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "k", bm], a)
273279
274280
275-func bk (aR,bj) = makeString(["%s%d%s%d__paramByPeriod", aR, "b", bj], a)
281+func bn (aU,bm) = makeString(["%s%d%s%d__paramByPeriod", aU, "b", bm], a)
276282
277283
278-func bl () = "%s%s__stats__activeTotalLocked"
284+func bo () = "%s%s__stats__activeTotalLocked"
279285
280286
281-func bm () = "%s%s__stats__locksDurationSumInBlocks"
287+func bp () = "%s%s__stats__locksDurationSumInBlocks"
282288
283289
284-func bn () = "%s%s__stats__locksCount"
290+func bq () = "%s%s__stats__locksCount"
285291
286292
287-func bo () = "%s%s__stats__activeUsersCount"
293+func br () = "%s%s__stats__activeUsersCount"
288294
289295
290-func bp (aR) = makeString(["%s%d__userBoostEmissionLastIntV2", aR], a)
296+func bs (aU) = makeString(["%s%d__userBoostEmissionLastIntV2", aU], a)
291297
292298
293-func bq (aR,br) = makeString(["%s%d__userBoostEmissionLastIntV2", aR, br], a)
299+func bt (aU,bu) = makeString(["%s%d__userBoostEmissionLastIntV2", aU, bu], a)
294300
295301
296-func bs (aR) = makeString(["%s%d__maxBoostInt", aR], a)
302+func bv (aU) = makeString(["%s%d__maxBoostInt", aU], a)
297303
298304
299-func bt () = "%s%s__maxBoostInt__total"
305+func bw () = "%s%s__maxBoostInt__total"
300306
301307
302-func bu (aR) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aR], a)
308+func bx (aU) = makeString(["%s%d__userBoostAvaliableToClaimTotal", aU], a)
303309
304310
305-func bv (aR) = makeString(["%s%d__userBoostClaimed", aR], a)
311+func by (aU) = makeString(["%s%d__userBoostClaimed", aU], a)
306312
307313
308-func bw () = "%s%s__gwxCached__total"
314+func bz () = "%s%s__gwxCached__total"
309315
310316
311-func bx () = "%s__gwxCachedTotalCorrective"
317+func bA () = "%s__gwxCachedTotalCorrective"
312318
313319
314-let by = T()
320+let bB = W()
315321
316-let Y = V(by)
322+let ab = Y(bB)
317323
318-let bz = Z(Y)
324+let bC = ac(ab)
319325
320-let bA = aa(Y)
326+let bD = ad(ab)
321327
322-let bB = ab(Y)
328+let bE = ae(ab)
323329
324-let bC = makeString(["%s", "votingEmissionContract"], a)
330+let bF = makeString(["%s", "votingEmissionContract"], a)
325331
326-let bD = addressFromStringValue(getStringValue(by, bC))
332+let bG = addressFromStringValue(getStringValue(bB, bF))
327333
328-let bE = {
329- let bF = invoke(bz, "getBoostCoeffREADONLY", nil, nil)
330- if ($isInstanceOf(bF, "Int"))
331- then bF
332- else throw(($getType(bF) + " couldn't be cast to Int"))
334+let bH = {
335+ let bI = invoke(bC, "getBoostCoeffREADONLY", nil, nil)
336+ if ($isInstanceOf(bI, "Int"))
337+ then bI
338+ else throw(($getType(bI) + " couldn't be cast to Int"))
333339 }
334340
335-func bG (bH) = {
336- let bI = makeString(["%s", "currentEpochUi"], a)
337- let bJ = getIntegerValue(bD, bI)
338- let bK = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
339- let bL = getInteger(this, bK)
340- let bM = valueOrElse(getInteger(this, bw()), 0)
341- let bN = if (isDefined(bL))
342- then (bJ >= value(bL))
341+func bJ (bK) = {
342+ let bL = makeString(["%s", "currentEpochUi"], a)
343+ let bM = getIntegerValue(bG, bL)
344+ let bN = makeString(["%s%s", "totalCachedGwxCorrection__activationEpoch"], a)
345+ let bO = getInteger(this, bN)
346+ let bP = valueOrElse(getInteger(this, bz()), 0)
347+ let bQ = if (isDefined(bO))
348+ then (bM >= value(bO))
343349 else false
344- let bO = if (if (bN)
345- then bH
350+ let bR = if (if (bQ)
351+ then bK
346352 else false)
347- then valueOrElse(getInteger(this, bx()), 0)
353+ then valueOrElse(getInteger(this, bA()), 0)
348354 else 0
349- max([0, (bM + bO)])
355+ max([0, (bP + bR)])
350356 }
351357
352358
353-func bP (bQ,bR,aS,bS,aU,bT,bU,aE) = {
354- let bV = makeString(["%s%s%s%s__history", bQ, bR, toBase58String(aE.transactionId)], a)
355- let bW = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aS), toString(bS), toString(aU), toString(bT), toString(bU)], a)
356- StringEntry(bV, bW)
359+func bS (bT,bU,aV,bV,aX,bW,bX,aH) = {
360+ let bY = makeString(["%s%s%s%s__history", bT, bU, toBase58String(aH.transactionId)], a)
361+ let bZ = makeString(["%d%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aV), toString(bV), toString(aX), toString(bW), toString(bX)], a)
362+ StringEntry(bY, bZ)
357363 }
358364
359365
360-func bX (bY,bZ,ca,cb) = {
361- let cc = bm()
362- let cd = bn()
363- let ce = bo()
364- let cf = bl()
365- let cg = h(this, cc)
366- let ch = h(this, cd)
367- let ci = h(this, ce)
368- let cj = h(this, cf)
369-[IntegerEntry(cc, (cg + bZ)), IntegerEntry(cd, (ch + ca)), IntegerEntry(ce, (ci + cb)), IntegerEntry(cf, (cj + bY))]
366+func ca (cb,cc,cd,ce) = {
367+ let cf = bp()
368+ let cg = bq()
369+ let ch = br()
370+ let ci = bo()
371+ let cj = k(this, cf)
372+ let ck = k(this, cg)
373+ let cl = k(this, ch)
374+ let cm = k(this, ci)
375+[IntegerEntry(cf, (cj + cc)), IntegerEntry(cg, (ck + cd)), IntegerEntry(ch, (cl + ce)), IntegerEntry(ci, (cm + cb))]
370376 }
371377
372378
373-func ck (cl,cm,cn) = {
374- let co = 1000
375- (((cl * cn) + cm) / co)
379+func cn (co,cp,cq) = {
380+ let cr = 1000
381+ (((co * cq) + cp) / cr)
376382 }
377383
378384
379-func cp (aO,aR,aS,aT,aU,bT,bU,bj) = {
380- let cq = bd(aR)
381- let cr = be(aR)
382- let cs = bf(aR)
383- let ct = bg(aR)
384- let cu = bh(aR)
385- let cv = bi(aR, bj)
386- let cw = bk(aR, bj)
387- let aY = ck(bT, bU, height)
388-[IntegerEntry(cq, aS), IntegerEntry(cr, aT), IntegerEntry(cs, aU), IntegerEntry(ct, bT), IntegerEntry(cu, bU), IntegerEntry(cv, bT), IntegerEntry(cw, bU), StringEntry(aN(aO), aZ(aR, aS, aT, aU, bT, bU, aY))]
385+func cs (aR,aU,aV,aW,aX,bW,bX,bm) = {
386+ let ct = bg(aU)
387+ let cu = bh(aU)
388+ let cv = bi(aU)
389+ let cw = bj(aU)
390+ let cx = bk(aU)
391+ let cy = bl(aU, bm)
392+ let cz = bn(aU, bm)
393+ let bb = cn(bW, bX, height)
394+[IntegerEntry(ct, aV), IntegerEntry(cu, aW), IntegerEntry(cv, aX), IntegerEntry(cw, bW), IntegerEntry(cx, bX), IntegerEntry(cy, bW), IntegerEntry(cz, bX), StringEntry(aQ(aR), bc(aU, aV, aW, aX, bW, bX, bb))]
389395 }
390396
391397
392-func cx (aE,cy) = if ((size(aE.payments) > 1))
398+func cA (aH,cB) = if ((size(aH.payments) > 1))
393399 then throw("only one payment is allowed")
394- else if ((size(aE.payments) == 0))
400+ else if ((size(aH.payments) == 0))
395401 then 0
396402 else {
397- let cz = aE.payments[0]
398- if ((value(cz.assetId) != cy))
403+ let cC = aH.payments[0]
404+ if ((value(cC.assetId) != cB))
399405 then throw("invalid asset id in payment")
400- else cz.amount
406+ else cC.amount
401407 }
402408
403409
404-func cA (aO,cB) = {
405- let cC = "empty"
406- let cD = bb(aO)
407- let aR = valueOrElse(getString(cD), cC)
408- let bT = valueOrElse(getInteger(bg(aR)), 0)
409- let bU = valueOrElse(getInteger(bh(aR)), 0)
410- let cE = ck(bT, bU, cB)
411- let aY = if ((0 > cE))
410+func cD (aR,cE) = {
411+ let cF = "empty"
412+ let cG = be(aR)
413+ let aU = valueOrElse(getString(cG), cF)
414+ let bW = valueOrElse(getInteger(bj(aU)), 0)
415+ let bX = valueOrElse(getInteger(bk(aU)), 0)
416+ let cH = cn(bW, bX, cE)
417+ let bb = if ((0 > cH))
412418 then 0
413- else cE
414- aY
419+ else cH
420+ bb
415421 }
416422
417423
418-func cF (aO) = cA(aO, height)
424+func cI (aR) = cD(aR, height)
419425
420426
421-func cG (cH,cI,cJ) = {
422- let cC = "EMPTY"
423- let cK = valueOrElse(getString(this, aN(cI)), cC)
424- if ((cK == cC))
427+func cJ (cK,cL) = {
428+ let aR = addressFromStringValue(cL)
429+ let cM = 4
430+ let cN = 5
431+ let cO = {
432+ let bI = invoke(bB, "getPoolConfigByLpAssetId", [cK], nil)
433+ if ($isInstanceOf(bI, "List[Any]"))
434+ then bI
435+ else throw(($getType(bI) + " couldn't be cast to List[Any]"))
436+ }
437+ let cP = {
438+ let bI = cO[cM]
439+ if ($isInstanceOf(bI, "String"))
440+ then bI
441+ else throw(($getType(bI) + " couldn't be cast to String"))
442+ }
443+ let cQ = {
444+ let bI = cO[cN]
445+ if ($isInstanceOf(bI, "String"))
446+ then bI
447+ else throw(($getType(bI) + " couldn't be cast to String"))
448+ }
449+ let cR = makeString(["%s", "currentEpoch"], a)
450+ let cS = {
451+ let cT = (value(getInteger(this, cR)) - 1)
452+ if ((0 > cT))
453+ then g("invalid epoch")
454+ else cT
455+ }
456+ func cU (cV,i,cT) = makeString(["%s%s%s%s%d", "vote", cP, cQ, toString(i), toString(cT)], a)
457+
458+ func cW (cV,cT) = makeString(["%s%s%s%d", "votingResult", cP, cQ, toString(cT)], a)
459+
460+ let cV = $Tuple2(cP, cQ)
461+ let cX = valueOrElse(getInteger(this, cU(cV, aR, cS)), 0)
462+ let cY = valueOrElse(getInteger(this, cW(cV, cS)), 0)
463+ $Tuple2(cX, cY)
464+ }
465+
466+
467+func cZ (cK,cL,da) = {
468+ let cF = "EMPTY"
469+ let db = valueOrElse(getString(this, aQ(cL)), cF)
470+ if ((db == cF))
425471 then $Tuple3(0, nil, "userRecord::is::empty")
426472 else {
427- let cL = split(cK, a)
428- let cM = cL[aH]
429- let cN = "empty"
430- let cO = if ((cH != cN))
473+ let dc = split(db, a)
474+ let dd = dc[aK]
475+ let de = "empty"
476+ let df = if ((cK != de))
431477 then {
432- let cP = valueOrErrorMessage(getString(by, K(cH)), ("unsupported lp asset " + cH))
433- getIntegerValue(by, O(cP))
478+ let dg = valueOrErrorMessage(getString(bB, N(cK)), ("unsupported lp asset " + cK))
479+ getIntegerValue(bB, R(dg))
434480 }
435- else if (cJ)
481+ else if (da)
436482 then 0
437- else throw(("not readonly mode: unsupported lp asset " + cH))
438- let cQ = k(bz, ae())
439- let cR = k(bz, ah())
440- let cS = k(bz, aj())
441- let cn = if ((height > cS))
442- then cS
483+ else throw(("not readonly mode: unsupported lp asset " + cK))
484+ let dh = n(bC, ah())
485+ let di = n(bC, ak())
486+ let dj = n(bC, am())
487+ let cq = if ((height > dj))
488+ then dj
443489 else height
444- let cT = max([(cn - cR), 0])
445- let cU = bq(cM, cH)
446- let cV = bp(cM)
447- let cW = valueOrElse(getInteger(this, cU), h(this, cV))
448- let cX = (((cQ * cT) * (bE - 1)) / bE)
449- let cY = (cX - cW)
450- let cZ = fraction(cY, bE, ((bE - 1) * cQ))
451- let da = (cn - cZ)
452- if ((0 > cY))
490+ let dk = max([(cq - di), 0])
491+ let dl = bt(dd, cK)
492+ let dm = bs(dd)
493+ let dn = valueOrElse(getInteger(this, dl), k(this, dm))
494+ let do = (((dh * dk) * (bH - 1)) / bH)
495+ let dp = (do - dn)
496+ let dq = fraction(dp, bH, ((bH - 1) * dh))
497+ let dr = (cq - dq)
498+ if ((0 > dp))
453499 then throw("wrong calculations")
454500 else {
455- let db = bs(cM)
456- let dc = bt()
457- let dd = h(this, db)
458- let de = h(this, dc)
459- let df = {
460- let bF = invoke(bD, "getVoteInfoREADONLY", [cH, cI], nil)
461- if ($isInstanceOf(bF, "(Int, Int)"))
462- then bF
463- else throw(($getType(bF) + " couldn't be cast to (Int, Int)"))
464- }
465- let dg = df._1
466- let dh = df._2
467- let di = bu(cM)
468- let dj = h(this, di)
469- let dk = fraction(cY, cO, d)
470- let dl = if ((dh == 0))
501+ let ds = bv(dd)
502+ let dt = bw()
503+ let du = k(this, ds)
504+ let dv = k(this, dt)
505+ let dw = cJ(cK, cL)
506+ let cX = dw._1
507+ let dx = dw._2
508+ let dy = bx(dd)
509+ let dz = k(this, dy)
510+ let dA = fraction(dp, df, d)
511+ let dB = if ((dx == 0))
471512 then 0
472- else fraction(dk, dg, dh)
473- let dm = bv(cM)
474- let dn = h(this, dm)
475- let do = (dl - dn)
476- let dp = [IntegerEntry(cU, cX)]
477- let dq = makeString([toString(cW), toString(cY), toString(dn), toString(do), toString(cO), toString(cn), toString(cZ), toString(da), toString(dg), toString(dh)], ":")
478- $Tuple3(dl, dp, dq)
513+ else fraction(dA, cX, dx)
514+ let dC = by(dd)
515+ let dD = k(this, dC)
516+ let dE = (dB - dD)
517+ let dF = [IntegerEntry(dl, do)]
518+ let dG = makeString([toString(dn), toString(dp), toString(dD), toString(dE), toString(df), toString(cq), toString(dq), toString(dr), toString(cX), toString(dx)], ":")
519+ $Tuple3(dB, dF, dG)
479520 }
480521 }
481522 }
482523
483524
484-func dr (aE,aU) = {
485- let ds = as()
486- let dt = ds[am]
487- let av = fromBase58String(dt)
488- let aw = parseIntValue(ds[an])
489- let ax = parseIntValue(ds[ao])
490- let ay = parseIntValue(ds[ap])
491- if ((size(aE.payments) != 1))
525+func dH (aH,aX) = {
526+ let dI = av()
527+ let dJ = dI[ap]
528+ let ay = fromBase58String(dJ)
529+ let az = parseIntValue(dI[aq])
530+ let aA = parseIntValue(dI[ar])
531+ let aB = parseIntValue(dI[as])
532+ if ((size(aH.payments) != 1))
492533 then throw("invalid payment - exact one payment must be attached")
493534 else {
494- let cz = aE.payments[0]
495- let du = cz.amount
496- if ((av != value(cz.assetId)))
497- then throw((("invalid asset is in payment - " + dt) + " is expected"))
535+ let cC = aH.payments[0]
536+ let dK = cC.amount
537+ if ((ay != value(cC.assetId)))
538+ then throw((("invalid asset is in payment - " + dJ) + " is expected"))
498539 else {
499- let dv = ba()
500- let cI = toString(aE.caller)
501- let dw = isDefined(getString(bb(cI)))
502- let cM = if (dw)
503- then value(getString(bb(cI)))
504- else toString(k(this, dv))
505- let aR = parseIntValue(cM)
506- let bS = height
507- let cr = be(cM)
508- let cs = bf(cM)
509- let cq = bd(cM)
510- if ((aw > du))
511- then throw(("amount is less then minLockAmount=" + toString(aw)))
512- else if ((ax > aU))
513- then throw(("passed duration is less then minLockDuration=" + toString(ax)))
514- else if ((aU > ay))
515- then throw(("passed duration is greater then maxLockDuration=" + toString(ay)))
516- else if (if (dw)
517- then ((k(this, cr) + k(this, cs)) >= bS)
540+ let dL = bd()
541+ let cL = toString(aH.caller)
542+ let dM = isDefined(getString(be(cL)))
543+ let dd = if (dM)
544+ then value(getString(be(cL)))
545+ else toString(n(this, dL))
546+ let aU = parseIntValue(dd)
547+ let bV = height
548+ let cu = bh(dd)
549+ let cv = bi(dd)
550+ let ct = bg(dd)
551+ if ((az > dK))
552+ then throw(("amount is less then minLockAmount=" + toString(az)))
553+ else if ((aA > aX))
554+ then throw(("passed duration is less then minLockDuration=" + toString(aA)))
555+ else if ((aX > aB))
556+ then throw(("passed duration is greater then maxLockDuration=" + toString(aB)))
557+ else if (if (dM)
558+ then ((n(this, cu) + n(this, cv)) >= bV)
518559 else false)
519560 then throw("there is an active lock - consider to use increaseLock")
520- else if ((h(this, cq) > 0))
521- then throw(("there are locked WXs - consider to use increaseLock " + cq))
561+ else if ((k(this, ct) > 0))
562+ then throw(("there are locked WXs - consider to use increaseLock " + ct))
522563 else {
523- let dx = fraction(aU, c, ay)
524- let dy = fraction(du, dx, c)
525- let dz = n(invoke(at, "calcGwxParamsREADONLY", [dy, bS, aU], nil))
526- let bT = q(dz[0])
527- let bU = q(dz[1])
528- let bj = toString(q(dz[2]))
529- let cQ = k(bz, ae())
530- let dA = k(bz, ag())
531- let cS = k(bz, aj())
532- let cn = if ((height > cS))
533- then cS
564+ let dN = fraction(aX, c, aB)
565+ let dO = fraction(dK, dN, c)
566+ let dP = q(invoke(aw, "calcGwxParamsREADONLY", [dO, bV, aX], nil))
567+ let bW = t(dP[0])
568+ let bX = t(dP[1])
569+ let bm = toString(t(dP[2]))
570+ let dh = n(bC, ah())
571+ let dQ = n(bC, aj())
572+ let dj = n(bC, am())
573+ let cq = if ((height > dj))
574+ then dj
534575 else height
535- let cT = max([(cn - dA), 0])
536- let cV = bp(cM)
537- let cX = (((cQ * cT) * 2) / 3)
538- let db = bs(cM)
539- let dc = bt()
540- let dd = ((dy * aU) / 2)
541- let de = h(this, dc)
542- let bM = bG(false)
543- let dB = if (dw)
576+ let dk = max([(cq - dQ), 0])
577+ let dm = bs(dd)
578+ let do = (((dh * dk) * 2) / 3)
579+ let ds = bv(dd)
580+ let dt = bw()
581+ let du = ((dO * aX) / 2)
582+ let dv = k(this, dt)
583+ let bP = bJ(false)
584+ let dR = if (dM)
544585 then nil
545- else [IntegerEntry(dv, (aR + 1)), StringEntry(bb(cI), cM), StringEntry(bc(cM), cI)]
546- $Tuple2(((((dB ++ cp(cI, cM, du, bS, aU, bT, bU, bj)) ++ bX(du, aU, 1, if (dw)
586+ else [IntegerEntry(dL, (aU + 1)), StringEntry(be(cL), dd), StringEntry(bf(dd), cL)]
587+ $Tuple2(((((dR ++ cs(cL, dd, dK, bV, aX, bW, bX, bm)) ++ ca(dK, aX, 1, if (dM)
547588 then 0
548- else 1)) :+ bP("lock", cI, du, bS, aU, bT, bU, aE)) ++ [IntegerEntry(cV, cX), IntegerEntry(bw(), (bM + dy))]), dy)
589+ else 1)) :+ bS("lock", cL, dK, bV, aX, bW, bX, aH)) ++ [IntegerEntry(dm, do), IntegerEntry(bz(), (bP + dO))]), dO)
549590 }
550591 }
551592 }
552593 }
553594
554595
555-@Callable(aE)
556-func constructor (dC,dD,aw,dE,dF,at) = {
557- let dG = aD(aE)
558- if ((dG == dG))
559- then ([IntegerEntry(ba(), 0), StringEntry(ar(), az(dD, aw, dE, dF, at)), StringEntry(x(), dC)] ++ bX(0, 0, 0, 0))
596+@Callable(aH)
597+func constructor (dS,dT,az,dU,dV,aw) = {
598+ let dW = aG(aH)
599+ if ((dW == dW))
600+ then ([IntegerEntry(bd(), 0), StringEntry(au(), aC(dT, az, dU, dV, aw)), StringEntry(A(), dS)] ++ ca(0, 0, 0, 0))
560601 else throw("Strict value is not equal to itself.")
561602 }
562603
563604
564605
565-@Callable(aE)
566-func lockRef (aU,dH,dI) = {
567- let dJ = dr(aE, aU)
568- let dK = dJ._1
569- let dy = dJ._2
570- let dL = toString(aE.caller)
571- let dM = if (if ((dH == ""))
606+@Callable(aH)
607+func lockRef (aX,dX,dY) = {
608+ let dZ = dH(aH, aX)
609+ let ea = dZ._1
610+ let dO = dZ._2
611+ let eb = toString(aH.caller)
612+ let ec = if (if ((dX == ""))
572613 then true
573- else (dI == base58''))
614+ else (dY == base58''))
574615 then unit
575- else invoke(t, "createPair", [w, dH, dL, dI], nil)
576- if ((dM == dM))
616+ else invoke(w, "createPair", [z, dX, eb, dY], nil)
617+ if ((ec == ec))
577618 then {
578- let dN = invoke(at, "updateReferralActivity", [toString(aE.caller), dy], nil)
579- if ((dN == dN))
580- then $Tuple2(dK, unit)
619+ let ed = invoke(aw, "updateReferralActivity", [toString(aH.caller), dO], nil)
620+ if ((ed == ed))
621+ then $Tuple2(ea, unit)
581622 else throw("Strict value is not equal to itself.")
582623 }
583624 else throw("Strict value is not equal to itself.")
584625 }
585626
586627
587628
588-@Callable(aE)
589-func lock (aU) = {
590- let dO = dr(aE, aU)
591- let dK = dO._1
592- let dy = dO._2
593- let dN = invoke(at, "updateReferralActivity", [toString(aE.caller), dy], nil)
594- if ((dN == dN))
595- then $Tuple2(dK, unit)
629+@Callable(aH)
630+func lock (aX) = {
631+ let ee = dH(aH, aX)
632+ let ea = ee._1
633+ let dO = ee._2
634+ let ed = invoke(aw, "updateReferralActivity", [toString(aH.caller), dO], nil)
635+ if ((ed == ed))
636+ then $Tuple2(ea, unit)
596637 else throw("Strict value is not equal to itself.")
597638 }
598639
599640
600641
601-@Callable(aE)
602-func increaseLock (dP) = {
603- let ds = as()
604- let dt = ds[am]
605- let av = fromBase58String(dt)
606- let ax = parseIntValue(ds[ao])
607- let ay = parseIntValue(ds[ap])
608- let du = cx(aE, av)
609- let cI = toString(aE.caller)
610- let cL = aP(cI)
611- let cM = cL[aH]
612- let dQ = parseIntValue(cL[aI])
613- let bS = parseIntValue(cL[aJ])
614- let dR = parseIntValue(cL[aK])
615- let dS = (bS + dR)
616- let dT = max([(dS - height), 0])
617- let dU = (dQ + du)
618- let dV = (dT + dP)
619- if ((0 > dP))
642+@Callable(aH)
643+func increaseLock (ef) = {
644+ let dI = av()
645+ let dJ = dI[ap]
646+ let ay = fromBase58String(dJ)
647+ let aA = parseIntValue(dI[ar])
648+ let aB = parseIntValue(dI[as])
649+ let dK = cA(aH, ay)
650+ let cL = toString(aH.caller)
651+ let dc = aS(cL)
652+ let dd = dc[aK]
653+ let eg = parseIntValue(dc[aL])
654+ let bV = parseIntValue(dc[aM])
655+ let eh = parseIntValue(dc[aN])
656+ let ei = (bV + eh)
657+ let ej = max([(ei - height), 0])
658+ let ek = (eg + dK)
659+ let el = (ej + ef)
660+ if ((0 > ef))
620661 then throw("duration is less then zero")
621- else if ((ax > dV))
622- then throw(("lockDurationNew is less then minLockDuration=" + toString(ax)))
623- else if ((dV > ay))
624- then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(ay)))
662+ else if ((aA > el))
663+ then throw(("lockDurationNew is less then minLockDuration=" + toString(aA)))
664+ else if ((el > aB))
665+ then throw(("deltaDuration + existedLockDuration is greater then maxLockDuration=" + toString(aB)))
625666 else {
626- let dx = fraction(dV, c, ay)
627- let dy = fraction(dU, dx, c)
628- let dN = invoke(at, "updateReferralActivity", [toString(aE.caller), dy], nil)
629- if ((dN == dN))
667+ let dN = fraction(el, c, aB)
668+ let dO = fraction(ek, dN, c)
669+ let ed = invoke(aw, "updateReferralActivity", [toString(aH.caller), dO], nil)
670+ if ((ed == ed))
630671 then {
631- let dW = height
632- let dz = n(invoke(at, "calcGwxParamsREADONLY", [dy, dW, dV], nil))
633- let bT = q(dz[0])
634- let bU = q(dz[1])
635- let bj = toString(q(dz[2]))
636- let cQ = k(bz, ae())
637- let dA = k(bz, ag())
638- let cS = k(bz, aj())
639- let cn = if ((height > cS))
640- then cS
672+ let em = height
673+ let dP = q(invoke(aw, "calcGwxParamsREADONLY", [dO, em, el], nil))
674+ let bW = t(dP[0])
675+ let bX = t(dP[1])
676+ let bm = toString(t(dP[2]))
677+ let dh = n(bC, ah())
678+ let dQ = n(bC, aj())
679+ let dj = n(bC, am())
680+ let cq = if ((height > dj))
681+ then dj
641682 else height
642- let cT = max([(cn - dA), 0])
643- let cV = bp(cM)
644- let cW = h(this, cV)
645- let cX = (((cQ * cT) * 2) / 3)
646- let cY = (cX - cW)
647- if ((0 > cY))
683+ let dk = max([(cq - dQ), 0])
684+ let dm = bs(dd)
685+ let dn = k(this, dm)
686+ let do = (((dh * dk) * 2) / 3)
687+ let dp = (do - dn)
688+ if ((0 > dp))
648689 then throw("wrong calculations")
649690 else {
650- let db = bs(cM)
651- let dc = bt()
652- let dd = h(this, db)
653- let de = h(this, dc)
654- let dX = cF(cI)
655- let dY = (dy - dX)
656- if ((0 > dY))
657- then throw(("gwxDiff is less then 0: " + toString(dY)))
691+ let ds = bv(dd)
692+ let dt = bw()
693+ let du = k(this, ds)
694+ let dv = k(this, dt)
695+ let en = cI(cL)
696+ let eo = (dO - en)
697+ if ((0 > eo))
698+ then throw(("gwxDiff is less then 0: " + toString(eo)))
658699 else {
659- let bM = bG(false)
660- let dZ = bG(true)
661- let di = bu(cM)
662- let dj = h(this, di)
663- let dl = fraction(cY, dX, dZ)
664- let ea = ((dy * dV) / 2)
665- let eb = ((dX * dT) / 2)
666- let ec = (ea - eb)
667- (((cp(cI, cM, dU, dW, dV, bT, bU, bj) ++ bX(du, dP, 0, 0)) :+ bP("lock", cI, du, bS, dV, bT, bU, aE)) ++ [IntegerEntry(bw(), (bM + dY))])
700+ let bP = bJ(false)
701+ let ep = bJ(true)
702+ let dy = bx(dd)
703+ let dz = k(this, dy)
704+ let dB = fraction(dp, en, ep)
705+ let eq = ((dO * el) / 2)
706+ let er = ((en * ej) / 2)
707+ let es = (eq - er)
708+ (((cs(cL, dd, ek, em, el, bW, bX, bm) ++ ca(dK, ef, 0, 0)) :+ bS("lock", cL, dK, bV, el, bW, bX, aH)) ++ [IntegerEntry(bz(), (bP + eo))])
668709 }
669710 }
670711 }
671712 else throw("Strict value is not equal to itself.")
672713 }
673714 }
674715
675716
676717
677-@Callable(aE)
678-func claimWxBoost (cH,cI) = if ((bA != aE.caller))
718+@Callable(aH)
719+func claimWxBoost (cK,cL) = if ((bD != aH.caller))
679720 then throw("permissions denied")
680721 else {
681- let ed = cG(cH, cI, false)
682- let do = ed._1
683- let dp = ed._2
684- let dq = ed._3
685- $Tuple2(dp, [do])
722+ let et = cZ(cK, cL, false)
723+ let dE = et._1
724+ let dF = et._2
725+ let dG = et._3
726+ $Tuple2(dF, [dE])
686727 }
687728
688729
689730
690-@Callable(aE)
691-func claimWxBoostREADONLY (cH,cI) = {
692- let ee = cG(cH, cI, true)
693- let do = ee._1
694- let dp = ee._2
695- let dq = ee._3
696- $Tuple2(nil, [do, dq])
731+@Callable(aH)
732+func claimWxBoostREADONLY (cK,cL) = {
733+ let eu = cZ(cK, cL, true)
734+ let dE = eu._1
735+ let dF = eu._2
736+ let dG = eu._3
737+ $Tuple2(nil, [dE, dG])
697738 }
698739
699740
700741
701-@Callable(aE)
702-func unlock (aO) = {
703- let cL = aP(aO)
704- let cM = cL[aH]
705- let dQ = parseIntValue(cL[aI])
706- let bS = parseIntValue(cL[aJ])
707- let dR = parseIntValue(cL[aK])
708- let dS = (bS + dR)
709- let ds = as()
710- let av = fromBase58String(ds[am])
711- if ((dS >= height))
712- then throw((("wait " + toString(dS)) + " to unlock"))
713- else if ((0 >= dQ))
742+@Callable(aH)
743+func unlock (aR) = {
744+ let dc = aS(aR)
745+ let dd = dc[aK]
746+ let eg = parseIntValue(dc[aL])
747+ let bV = parseIntValue(dc[aM])
748+ let eh = parseIntValue(dc[aN])
749+ let ei = (bV + eh)
750+ let dI = av()
751+ let ay = fromBase58String(dI[ap])
752+ if ((ei >= height))
753+ then throw((("wait " + toString(ei)) + " to unlock"))
754+ else if ((0 >= eg))
714755 then throw("nothing to unlock")
715756 else {
716- let bj = valueOrElse(getInteger(at, ak()), 0)
717- (((cp(aO, cM, 0, bS, dR, 0, 0, toString(bj)) ++ bX(-(dQ), 0, 0, -1)) :+ bP("unlock", aO, dQ, bS, dR, 0, 0, aE)) :+ ScriptTransfer(addressFromStringValue(aO), dQ, av))
757+ let bm = valueOrElse(getInteger(aw, an()), 0)
758+ (((cs(aR, dd, 0, bV, eh, 0, 0, toString(bm)) ++ ca(-(eg), 0, 0, -1)) :+ bS("unlock", aR, eg, bV, eh, 0, 0, aH)) :+ ScriptTransfer(addressFromStringValue(aR), eg, ay))
718759 }
719760 }
720761
721762
722763
723-@Callable(aE)
724-func gwxUserInfoREADONLY (aO) = {
725- let aY = cF(aO)
726- $Tuple2(nil, [aY])
764+@Callable(aH)
765+func gwxUserInfoREADONLY (aR) = {
766+ let bb = cI(aR)
767+ $Tuple2(nil, [bb])
727768 }
728769
729770
730771
731-@Callable(aE)
732-func getUserGwxAmountAtHeightREADONLY (aO,cB) = {
733- let aY = cA(aO, cB)
734- $Tuple2(nil, aY)
772+@Callable(aH)
773+func getUserGwxAmountAtHeightREADONLY (aR,cE) = {
774+ let bb = cD(aR, cE)
775+ $Tuple2(nil, bb)
735776 }
736777
737778
738779
739-@Callable(aE)
740-func getTotalCachedGwxREADONLY () = $Tuple2(nil, bG(true))
780+@Callable(aH)
781+func getTotalCachedGwxREADONLY () = $Tuple2(nil, bJ(true))
741782
742783
743784
744-@Callable(aE)
745-func setManager (ef) = {
746- let dG = aD(aE)
747- if ((dG == dG))
785+@Callable(aH)
786+func setManager (ev) = {
787+ let dW = aG(aH)
788+ if ((dW == dW))
748789 then {
749- let eg = fromBase58String(ef)
750- if ((eg == eg))
751- then [StringEntry(ad(), ef)]
790+ let ew = fromBase58String(ev)
791+ if ((ew == ew))
792+ then [StringEntry(ag(), ev)]
752793 else throw("Strict value is not equal to itself.")
753794 }
754795 else throw("Strict value is not equal to itself.")
755796 }
756797
757798
758799
759-@Callable(aE)
800+@Callable(aH)
760801 func confirmManager () = {
761- let eh = aC()
762- let ei = if (isDefined(eh))
802+ let ex = aF()
803+ let ey = if (isDefined(ex))
763804 then true
764805 else throw("No pending manager")
765- if ((ei == ei))
806+ if ((ey == ey))
766807 then {
767- let ej = if ((aE.callerPublicKey == value(eh)))
808+ let ez = if ((aH.callerPublicKey == value(ex)))
768809 then true
769810 else throw("You are not pending manager")
770- if ((ej == ej))
771- then [StringEntry(ac(), toBase58String(value(eh))), DeleteEntry(ad())]
811+ if ((ez == ez))
812+ then [StringEntry(af(), toBase58String(value(ex))), DeleteEntry(ag())]
772813 else throw("Strict value is not equal to itself.")
773814 }
774815 else throw("Strict value is not equal to itself.")
775816 }
776817
777818
778-@Verifier(ek)
779-func el () = {
780- let em = {
781- let o = aA()
782- if ($isInstanceOf(o, "ByteVector"))
819+@Verifier(eA)
820+func eB () = {
821+ let eC = {
822+ let r = aD()
823+ if ($isInstanceOf(r, "ByteVector"))
783824 then {
784- let aG = o
785- aG
825+ let aJ = r
826+ aJ
786827 }
787- else if ($isInstanceOf(o, "Unit"))
788- then ek.senderPublicKey
828+ else if ($isInstanceOf(r, "Unit"))
829+ then eA.senderPublicKey
789830 else throw("Match error")
790831 }
791- sigVerify(ek.bodyBytes, ek.proofs[0], em)
832+ sigVerify(eA.bodyBytes, eA.proofs[0], eC)
792833 }
793834

github/deemru/w8io/026f985 
349.42 ms