tx · AM4CJw4MDMfKEh2A6QJx5BF8PwCGTvh2KuWNsEpvw2Zc

3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE:  -0.01500000 Waves

2023.08.08 16:18 [2701664] smart account 3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE > SELF 0.00000000 Waves

{ "type": 13, "id": "AM4CJw4MDMfKEh2A6QJx5BF8PwCGTvh2KuWNsEpvw2Zc", "fee": 1500000, "feeAssetId": null, "timestamp": 1691500738052, "version": 2, "chainId": 84, "sender": "3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE", "senderPublicKey": "G349Uq3FTox7dRNLeAfAQeoACvwZ9iEnVSaHcEYn6j8J", "proofs": [ "2qGZqaFsUUxgrkLHfw7H3hwGkE9rvMabKgpdC1mXgu1t8CM4j8PEFaJ5J45JTg4uTLEFFmDk2GnQBaEsotRNDEYw" ], "script": "base64:BgKFFQgCEgMKAQISBgoEARgRARIECgIIARIAEgASAwoBCBIAEgQKAhgREgASAwoBCCIDU0VQIgVTQ0FMRSIFTVVMVDgiB01VTFQ4QkkiCnplcm9CaWdJbnQiFHByb2Nlc3NpbmdTdGFnZVRvdGFsIhVwcm9jZXNzaW5nU3RhZ2VTaGFyZXMiBk1VTFQxOCIITVVMVDE4QkkiC3dhdmVzU3RyaW5nIg5nZXROdW1iZXJCeUtleSIDa2V5Ig9nZXROdW1iZXJPckZhaWwiDmdldFN0cmluZ0J5S2V5Ig9nZXRTdHJpbmdPckZhaWwiDHBhcnNlQXNzZXRJZCIFaW5wdXQiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiA2FicyIDdmFsIglhYnNCaWdJbnQiC2tleU1heERlcHRoIg9tYXhEZXB0aERlZmF1bHQiCG1heERlcHRoIhFrZXlGYWN0b3J5QWRkcmVzcyIRZmFjdG9yeUFkZHJlc3NTdHIiD2ZhY3RvcnlDb250cmFjdCISa2V5RW1pc3Npb25BZGRyZXNzIhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IhNrZXlOdW1Ub1VzZXJNYXBwaW5nIgNudW0iFmtleVJlZmVycmFsUHJvZ3JhbU5hbWUiGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0IhNyZWZlcnJhbFByb2dyYW1OYW1lIhdrZXlSZWZlcnJhbE1pbkdXeEFtb3VudCIbcmVmZXJyYWxNaW5HV3hBbW91bnREZWZhdWx0IhRyZWZlcnJhbE1pbkdXeEFtb3VudCIZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZSIdcmVmZXJyZXJSZXdhcmRQZXJtaWxsZURlZmF1bHQiFnJlZmVycmVyUmV3YXJkUGVybWlsbGUiGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUiHXJlZmVycmFsUmV3YXJkUGVybWlsbGVEZWZhdWx0IhZyZWZlcnJhbFJld2FyZFBlcm1pbGxlIgtrZXlSZWZlcnJlciIPcmVmZXJyYWxBZGRyZXNzIhRrZXlVbmNsYWltZWRSZWZlcnJhbCILcHJvZ3JhbU5hbWUiDmNsYWltZXJBZGRyZXNzIhJlbWlzc2lvbkFkZHJlc3NTdHIiEGVtaXNzaW9uQ29udHJhY3QiDUlkeENmZ0Fzc2V0SWQiFklkeENmZ1BhY2VtYWtlckFkZHJlc3MiFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QiDklkeENmZ01heERlcHRoIglrZXlDb25maWciEmdldEVtaXNzaW9uQWRkcmVzcyIPZW1pc3Npb25BZGRyZXNzIgx3eEFzc2V0SWRTdHIiCXd4QXNzZXRJZCIVcmVhZENvbmZpZ0FycmF5T3JGYWlsIgxmb3JtYXRDb25maWciGm1hdGNoZXJQYWNlbWFrZXJBZGRyZXNzU3RyIhpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0ciIWYm9vc3RpbmdDb250cmFjdE9yRmFpbCIIY2ZnQXJyYXkiH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQiDWtleVVzZXJzQ291bnQiFmtleVJhdGVQZXJCbG9ja0N1cnJlbnQiGmtleUd3eEhvbGRlcnNSZXdhcmRDdXJyZW50IhdrZXlHd3hIb2xkZXJzUmV3YXJkTmV4dCIUa2V5UG9vbFdlaWdodFZpcnR1YWwiEGtleVVzZXJVbmNsYWltZWQiCXVzZXJJbmRleCIba2V5UmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzIh5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwiF2tleVRyYWRpbmdSZXdhcmRIaXN0b3J5IgR1c2VyIgFpIhBrZXlUcmFkaW5nUmV3YXJkIgt1c2VyQWRkcmVzcyIQa2V5TWF4UmVjaXBpZW50cyIMSGlzdG9yeUVudHJ5IgR0eXBlIgZhbW91bnQiCmhpc3RvcnlLRVkiC2hpc3RvcnlEQVRBIhNrZXlNYW5hZ2VyUHVibGljS2V5IhZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzIhxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzIgckbWF0Y2gwIgFzIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IhNtYW5hZ2VyVmF1bHRBZGRyZXNzIgttdXN0TWFuYWdlciICcGQiAnBrIhVnZXRVc2VySW5kZXhCeUFkZHJlc3MiEWNvbW1vbkNsYWltUmV3YXJkIgd1c2VySWR4IhN1c2VyVW5jbGFpbWVkT3B0aW9uIgF1IhBnZXRUcmFkaW5nUmV3YXJkIhdrZXlSZXdhcmRQZXJHd3hJbnRlZ3JhbCIcX3JlZnJlc2hSZXdhcmRQZXJHd3hJbnRlZ3JhbCIccmV3YXJkUGVyR3d4SW50ZWdyYWxQcmV2aW91cyIecmV3YXJkUGVyR3d4SW50ZWdyYWxMYXN0SGVpZ2h0IgxlbWlzc2lvblJhdGUiF2d3eEhvbGRlcnNSZXdhcmRDdXJyZW50Ig5nd3hBbW91bnRUb3RhbCIBQCICZGgiFHJld2FyZFBlckd3eEludGVncmFsIh9rZXlSZXdhcmRQZXJHd3hJbnRlZ3JhbFVzZXJMYXN0IhJfcmVmcmVzaFVzZXJSZXdhcmQiHHJld2FyZFBlckd3eEludGVncmFsVXNlckxhc3QiDXVzZXJJZHhPckZhaWwiDXVzZXJVbmNsYWltZWQiDSR0MDEwMzQ1MTA1NjIiG3Jld2FyZFBlckd3eEludGVncmFsQWN0aW9ucyINdXNlckd3eEFtb3VudCIKdXNlclJld2FyZCIQdXNlckFkZHJlc3NCeXRlcyILY2hlY2tDYWxsZXIiFXBheW1lbnRBbW91bnRMZWZ0T3ZlciINdXNlckFkZHJlc3NlcyIHcmV3YXJkcyILY3VycmVudEl0ZXIiBmNoZWNrcyITdHJhZGVSZXdhcmRJbnRlcm5hbCIXdHJhZGluZ1Jld2FyZEhpc3RvcnlLZXkiDmdXeEFtb3VudFN0YXJ0IghyZWZlcnJlciIRYWN0aXZlUmVmZXJyYWxJbnYiDnVzZXJBZGRyZXNzU3RyIg0kdDAxMjg3MzEyOTMwIgdhY3Rpb25zIgtjaGVja0Ftb3VudCILcmVmZXJyYWxJbnYiDnJlZmVycmVyUmV3YXJkIg5yZWZlcnJhbFJld2FyZCIPY2xhaW1lZFJlZmVycmFsIgt0b3RhbEFtb3VudCIHYWRkcmVzcyINJHQwMTQyNTcxNDMwNyIRcmVmZXJyYWxVbmNsYWltZWQiDmFyZ3NDb21wYXJpc29uIg1tYXhSZWNpcGllbnRzIgdwYXltZW50Ig5wYXltZW50QXNzZXRJZCINcGF5bWVudEFtb3VudCIRdXNlckFkZHJlc3NTdHJpbmciBnJld2FyZCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5UgABYQICX18AAWIA6AcAAWMAgMLXLwABZAkAtgIBBQFjAAFlCQC2AgEAAAABZgAAAAFnAAEAAWgAgICQu7rWrfANAAFpCQC2AgEFAWgAAWoCBVdBVkVTAQFrAQFsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWwAAAEBbQEBbAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAWwJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAWwCDyBpcyBub3QgZGVmaW5lZAEBbgEBbAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQFsAgABAW8BAWwJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQFsCQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQFsAg8gaXMgbm90IGRlZmluZWQBAXABAXEDCQAAAgUBcQUBagUEdW5pdAkA2QQBBQFxAQFyAQFzCQC5CQIJAMwIAgIQZ3d4X3Jld2FyZC5yaWRlOgkAzAgCBQFzBQNuaWwCASABAXQBAXMJAAIBCQEBcgEFAXMBAXUBAXYDCQBmAgAABQF2CQEBLQEFAXYFAXYBAXcBAXYDCQC/AgIFAWUFAXYJAL4CAQUBdgUBdgABeAIMJXNfX21heERlcHRoAAF5AB4AAXoJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBeAUBeQEBQQACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MAAUIJAQFvAQkBAUEAAAFDCQERQGV4dHJOYXRpdmUoMTA2MikBBQFCAQFEAAIdJXMlc19fY29uZmlnX19lbWlzc2lvbkFkZHJlc3MBAUUACQC5CQIJAMwIAgICJXMJAMwIAgIWdm90aW5nRW1pc3Npb25Db250cmFjdAUDbmlsBQFhAAFGCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQFDCQEBRQABAUcBAUgJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIHbWFwcGluZwkAzAgCAghudW0ydXNlcgkAzAgCCQCkAwEFAUgFA25pbAUBYQABSQkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgILcHJvZ3JhbU5hbWUFA25pbAUBYQABSgIGd3hsb2NrAAFLCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAUkFAUoAAUwJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICDG1pbkdXeEFtb3VudAUDbmlsBQFhAAFNCQBoAgD0AwUBYwABTgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFMBQFNAAFPCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAhZyZWZlcnJlclJld2FyZFBlcm1pbGxlBQNuaWwFAWEAAVAAMgABUQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFPBQFQAAFSCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAhZyZWZlcnJhbFJld2FyZFBlcm1pbGxlBQNuaWwFAWEAAVMAMgABVAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFSBQFTAQFVAQFWCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCHJlZmVycmVyCQDMCAIFAUsJAMwIAgUBVgUDbmlsBQFhAQFXAgFYAVkJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIRdW5jbGFpbWVkUmVmZXJyYWwJAMwIAgUBWAkAzAgCBQFZBQNuaWwFAWEAAVoJAQFvAQkBAUQAAAJhYQkBEUBleHRyTmF0aXZlKDEwNjIpAQUBWgACYWIAAQACYWMAAgACYWQAAwACYWUABAECYWYAAgolc19fY29uZmlnAQJhZwAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzCQEBRAAJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4JAQFEAAIPIGlzIG5vdCBkZWZpbmVkAAJhaAkBAmFnAAACYWkJAJEDAgkAtQkCCQEFdmFsdWUBCQCdCAIFAmFoCQECYWYABQFhAAEAAmFqCQDZBAEFAmFpAQJhawAJALUJAgkBAW8BCQECYWYABQFhAQJhbAQCYWkCYW0CYW4BegkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAIFAmFpCQDMCAIFAmFtCQDMCAIFAmFuCQDMCAIJAKQDAQUBegUDbmlsBQFhAQJhbwAEAmFwCQECYWsACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkAkQMCBQJhcAUCYWQCKGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MgaXMgbm90IGRlZmluZWQBAmFxAAIoJXMlc19fZ3d4UmV3YXJkRW1pc3Npb25QYXJ0X19zdGFydEhlaWdodAECYXIAAg8lc19fbmV4dFVzZXJOdW0BAmFzAAIbJXMlc19fcmF0ZVBlckJsb2NrX19jdXJyZW50AQJhdAACHyVzJXNfX2d3eEhvbGRlcnNSZXdhcmRfX2N1cnJlbnQBAmF1AAIcJXMlc19fZ3d4SG9sZGVyc1Jld2FyZF9fbmV4dAECYXYAAiAlcyVzX19wb29sV2VpZ2h0X19HV1h2aXJ0dWFsUE9PTAECYXcBAmF4CQC5CQIJAMwIAgIEJXMlZAkAzAgCAg11c2VyVW5jbGFpbWVkCQDMCAIJAKQDAQUCYXgFA25pbAUBYQECYXkACQC5CQIJAMwIAgIEJXMlcwkAzAgCAgZjb25maWcJAMwIAgIYcmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzBQNuaWwFAWEAAmF6CQERQGV4dHJOYXRpdmUoMTA2MikBCQEBbwEJAQJheQABAmFBAgJhQgJhQwkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAICDXRyYWRpbmdSZXdhcmQJAMwIAgIHaGlzdG9yeQkAzAgCBQJhQgkAzAgCCQDYBAEIBQJhQw10cmFuc2FjdGlvbklkBQNuaWwFAWEBAmFEAQJhRQkAuQkCCQDMCAICBCVzJXMJAMwIAgINdHJhZGluZ1Jld2FyZAkAzAgCBQJhRQUDbmlsBQFhAQJhRgAJALkJAgkAzAgCAgIlcwkAzAgCAg1tYXhSZWNpcGllbnRzBQNuaWwFAWEBAmFHBAJhSAJhQgJhSQJhQwQCYUoJALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQJhSAkAzAgCBQJhQgkAzAgCCQDYBAEIBQJhQw10cmFuc2FjdGlvbklkBQNuaWwFAWEEAmFLCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFAmFJBQNuaWwFAWEJAQtTdHJpbmdFbnRyeQIFAmFKBQJhSwECYUwAAhQlc19fbWFuYWdlclB1YmxpY0tleQECYU0AAhclc19fbWFuYWdlclZhdWx0QWRkcmVzcwECYU4ABAJhTwkAoggBCQECYU0AAwkAAQIFAmFPAgZTdHJpbmcEAmFQBQJhTwkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYVAFBHRoaXMBAmFRAAQCYVIJAQJhTgAEAmFPCQCdCAIFAmFSCQECYUwAAwkAAQIFAmFPAgZTdHJpbmcEAmFQBQJhTwkA2QQBBQJhUAMJAAECBQJhTwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhUwECYUMEAmFUCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmFPCQECYVEAAwkAAQIFAmFPAgpCeXRlVmVjdG9yBAJhVQUCYU8DCQAAAggFAmFDD2NhbGxlclB1YmxpY0tleQUCYVUGBQJhVAMJAAECBQJhTwIEVW5pdAMJAAACCAUCYUMGY2FsbGVyBQR0aGlzBgUCYVQJAAIBAgtNYXRjaCBlcnJvcgECYVYCAmFuAmFFBAFsCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIdXNlcjJudW0JAMwIAgUCYUUFA25pbAUBYQkBDXBhcnNlSW50VmFsdWUBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBB0FkZHJlc3MBCQDZBAEFAmFuBQFsCQCsAgIJAKwCAgkArAICAg1Vc2VyIGFkZHJlc3MgBQJhRQItIGlzIG5vdCBmb3VuZCBpbiBib29zdGluZyBjb250cmFjdCBkYXRhLCBrZXk9BQFsAQJhVwECYUUEAmFwCQECYWsABAJhWAkBAmFWAgkAkQMCBQJhcAUCYWQFAmFFBAJhWQkAnwgBCQECYXcBBQJhWAQCYU8FAmFZAwkAAQIFAmFPAgRVbml0CQCUCgIAAAUDbmlsAwkAAQIFAmFPAgNJbnQEAmFaBQJhTwkAlAoCBQJhWgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF3AQUCYVgAAAUDbmlsCQACAQILTWF0Y2ggZXJyb3IBAmJhAQJhRQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYUQBBQJhRQAAAQJiYgAJALkJAgkAzAgCAgIlcwkAzAgCAhRyZXdhcmRQZXJHd3hJbnRlZ3JhbAUDbmlsBQFhAQJiYwAEAmJkCQELdmFsdWVPckVsc2UCBAJhTwkAnQgCBQR0aGlzCQECYmIAAwkAAQIFAmFPAgZTdHJpbmcEAmFQBQJhTwkAqAMBBQJhUAMJAAECBQJhTwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yBQFlBAJiZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMJAQJhcQAJAQFyAQkArAICAghpbnZhbGlkIAkBAmFxAAQCYmYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQJhYQkBAmFzAAkBAXIBCQCsAgICCGludmFsaWQgCQECYXMABAJiZwkBC3ZhbHVlT3JFbHNlAgkAmggCBQJhYQkBAmF0AAAABAJiaAoAAmJpCQD8BwQJAQJhbwACE2dldEd3eFRvdGFsUkVBRE9OTFkFA25pbAUDbmlsAwkAAQIFAmJpAgNJbnQFAmJpCQACAQkArAICCQADAQUCYmkCGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCYmoJALYCAQkAZQIFBmhlaWdodAUCYmUEAmJrCQC3AgIFAmJkCQC8AgMFAmJqCQC5AgIJALkCAgkAtgIBBQJiZgkAtgIBBQJiZwUBaQkAuQICCQC2AgEFAmJoBQFkCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcQAFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCCQECYmIACQCmAwEFAmJrBQNuaWwFAmJrAQJibAECYUUJALkJAgkAzAgCAgQlcyVzCQDMCAICHHJld2FyZFBlckd3eEludGVncmFsVXNlckxhc3QJAMwIAgkApQgBBQJhRQUDbmlsBQFhAQJibQECYUUEAmJuCQELdmFsdWVPckVsc2UCBAJhTwkAnQgCBQR0aGlzCQECYmwBBQJhRQMJAAECBQJhTwIGU3RyaW5nBAJhUAUCYU8JAKgDAQUCYVADCQABAgUCYU8CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgUBZQQCYm8JAQJhVgIJAKUIAQkBAmFvAAkApQgBBQJhRQQCYnAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAmF3AQUCYm8AAAQCYnEJAQJiYwAEAmJyCAUCYnECXzEEAmJrCAUCYnECXzIEAmJzCgACYmkJAPwHBAkBAmFvAAIQZ2V0VXNlckd3eEFtb3VudAkAzAgCCQClCAEFAmFFBQNuaWwFA25pbAMJAAECBQJiaQIDSW50BQJiaQkAAgEJAKwCAgkAAwEFAmJpAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmJ0CQBkAgkAoAMBCQC8AgMJALYCAQUCYnMJALgCAgUCYmsFAmJuBQFpBQJicAkAlAoCCQDOCAIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmJsAQUCYUUJAKYDAQUCYmsFA25pbAUCYnIFAmJ0CgJhQwERcmVmcmVzaFVzZXJSZXdhcmQBAmJ1BAJidgMJAAACCAUCYUMGY2FsbGVyCQECYW8ABgkBAXQBAhFwZXJtaXNzaW9uIGRlbmllZAMJAAACBQJidgUCYnYJAQJibQEJAQdBZGRyZXNzAQUCYnUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUMBE3RyYWRlUmV3YXJkSW50ZXJuYWwEAmJ3AmJ4AmJ5AmJ6AwkAAAIFAmJ6CQCQAwEFAmJ4BQNuaWwEAmJBCQDMCAIDCQAAAggFAmFDBmNhbGxlcgUEdGhpcwYJAQF0AQIRUGVybWlzc2lvbiBkZW5pZWQJAMwIAgMJAGcCBQJidwkAkQMCBQJieQUCYnoGCQEBdAECHGluc3VmZmljaWVudCBwYXltZW50IGFzc2V0SWQFA25pbAMJAAACBQJiQQUCYkEEAmJCCQD8BwQFBHRoaXMCE3RyYWRlUmV3YXJkSW50ZXJuYWwJAMwIAgkAZQIFAmJ3CQCRAwIFAmJ5BQJiegkAzAgCBQJieAkAzAgCBQJieQkAzAgCCQBkAgUCYnoAAQUDbmlsBQNuaWwDCQAAAgUCYkIFAmJCBAJiQwkBAmFBAgkAkQMCBQJieAUCYnoFAmFDBAJhRQkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQJieAUCYnoJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYkMJAJEDAgUCYnkFAmJ6CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYUQBCQCRAwIFAmJ4BQJiegkAkQMCBQJieQUCYnoFA25pbAUCYkIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUMBFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkCAmFFAmJEBAJiRQkAnQgCBQJhegkBAVUBBQJhRQQCYkYDCQAAAgUCYkUFBHVuaXQFBHVuaXQJAPwHBAUCYXoCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgUBSwkAzAgCBQJhRQkAzAgCCQBnAgUCYkQFAU4FA25pbAUDbmlsAwkAAAIFAmJGBQJiRgkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUMBHXByb2Nlc3NQZW5kaW5nUGVyaW9kc0FuZFVzZXJzAAkAlAoCBQNuaWwJAQF0AQIKZGVwcmVjYXRlZAJhQwELY2xhaW1SZXdhcmQABAJhcAkBAmFrAAQCYUUIBQJhQwZjYWxsZXIEAmJHCQClCAEFAmFFBAJiSAkBAmFXAQUCYkcEAmFJCAUCYkgCXzEEAmJJCAUCYkgCXzIEAmJKAwkAZgIFAmFJAAAGCQACAQIQbm90aGluZyB0byBjbGFpbQMJAAACBQJiSgUCYkoEAmJzCgACYmkJAPwHBAkBAmFvAAIQZ2V0VXNlckd3eEFtb3VudAkAzAgCBQJiRwUDbmlsBQNuaWwDCQABAgUCYmkCA0ludAUCYmkJAAIBCQCsAgIJAAMBBQJiaQIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50BAJiRQkAnQgCBQJhegkBAVUBBQJiRwQCYkYDCQAAAgUCYkUFBHVuaXQFBHVuaXQJAPwHBAUCYXoCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgUBSwkAzAgCBQJhRQkAzAgCCQBnAgUCYnMFAU4FA25pbAUDbmlsAwkAAAIFAmJGBQJiRgQCYksDAwkAAAIFAmJFBQR1bml0BgkAZgIFAU4FAmJzBQR1bml0BAJiTAkAawMFAmFJBQFRBQFiBAJiTQkAawMFAmFJBQFUBQFiCQD8BwQFAmF6AgxpbmNVbmNsYWltZWQJAMwIAgUBSwkAzAgCBQJhRQkAzAgCBQJiTAkAzAgCBQJiTQUDbmlsBQNuaWwDCQAAAgUCYksFAmJLBAJiTgoAAmJpCQD8BwQFAmF6AgVjbGFpbQkAzAgCBQFLBQNuaWwFA25pbAMJAAECBQJiaQIDSW50BQJiaQkAAgEJAKwCAgkAAwEFAmJpAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQDCQAAAgUCYk4FAmJOBAJiTwkAZAIFAmFJBQJiTgkAlAoCCQDOCAIJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAmFDBmNhbGxlcgUCYUkJANkEAQkAkQMCBQJhcAUCYWIJAMwIAgkBAmFHBAIFY2xhaW0FAmJHBQJiTwUCYUMFA25pbAUCYkkFAmJPCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFDARNjbGFpbVJld2FyZFJFQURPTkxZAQJiUAQCYlEJAQJhVwEFAmJQBAJhSQgFAmJRAl8xBAJiSQgFAmJRAl8yBAJiUgkBC3ZhbHVlT3JFbHNlAgkAmggCBQJhegkBAVcCBQFLBQJiUAAABAJiTwkAZAIFAmFJBQJiUgkAlAoCBQNuaWwFAmJPAmFDARVvbkVtaXNzaW9uRm9yR3d4U3RhcnQAAwkBAiE9AggFAmFDBmNhbGxlcgUBQwkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFxAAUGaGVpZ2h0BQNuaWwCYUMBC3RyYWRlUmV3YXJkAgJieAJieQQCYlMJAAACCQCQAwEFAmJ4CQCQAwEFAmJ5BAJiVAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYUYAAAAEAmJVCQCRAwIIBQJhQwhwYXltZW50cwAABAJiVggFAmJVB2Fzc2V0SWQEAmJXCAUCYlUGYW1vdW50BAJiQQkAzAgCAwkAZwIFAmJUCQCQAwEFAmJ4BgkBAXQBAhNUb28gbWFueSByZWNpcGllbnRzCQDMCAIDBQJiUwYJAQF0AQIXQXJndW1lbnRzIHNpemUgbWlzbWF0Y2gJAMwIAgMJAAACBQJiVgUCYWoGCQEBdAECE1dyb25nIGFzc2V0IHBheW1lbnQFA25pbAMJAAACBQJiQQUCYkEEAmJCCQD8BwQFBHRoaXMCE3RyYWRlUmV3YXJkSW50ZXJuYWwJAMwIAgUCYlcJAMwIAgUCYngJAMwIAgUCYnkJAMwIAgAABQNuaWwFA25pbAMJAAACBQJiQgUCYkIJAJQKAgUDbmlsBQJiQgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhQwESY2xhaW1UcmFkaW5nUmV3YXJkAAQCYUUIBQJhQwZjYWxsZXIEAmJYCQClCAEFAmFFBAJiWQkBAmJhAQUCYlgDCQBmAgUCYlkAAAkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFFBQJiWQUCYWoJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhRAEFAmJYAAAFA25pbAUCYlkJAQF0AQIQbm90aGluZyB0byBjbGFpbQJhQwEaY2xhaW1UcmFkaW5nUmV3YXJkUkVBRE9OTFkBAmFFCQCUCgIFA25pbAkBAmJhAQUCYUUBAmJaAQJjYQAEAmNiBAJhTwkBAmFRAAMJAAECBQJhTwIKQnl0ZVZlY3RvcgQCYVUFAmFPBQJhVQMJAAECBQJhTwIEVW5pdAgFAmJaD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJiWglib2R5Qnl0ZXMJAJEDAggFAmJaBnByb29mcwAABQJjYpN3w5k=", "height": 2701664, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9zo1J28X6gnXZXw5PmvdzWGFXxG6N2quZEoyMsQegPw2 Next: APBEZEcYLZdwadZipwgJVCVNUhpr4gd6YV5ezYcrQqYK Diff:
OldNewDifferences
77
88 let c = 100000000
99
10-let d = toBigInt(0)
10+let d = toBigInt(c)
1111
12-let e = 0
12+let e = toBigInt(0)
1313
14-let f = 1
14+let f = 0
1515
16-let g = 1000000000000000000
16+let g = 1
1717
18-let h = toBigInt(g)
18+let h = 1000000000000000000
1919
20-let i = "WAVES"
20+let i = toBigInt(h)
2121
22-func j (k) = valueOrElse(getInteger(this, k), 0)
22+let j = "WAVES"
23+
24+func k (l) = valueOrElse(getInteger(this, l), 0)
2325
2426
25-func l (k) = valueOrErrorMessage(getInteger(this, k), (("mandatory this." + k) + " is not defined"))
27+func m (l) = valueOrErrorMessage(getInteger(this, l), (("mandatory this." + l) + " is not defined"))
2628
2729
28-func m (k) = valueOrElse(getString(this, k), "")
30+func n (l) = valueOrElse(getString(this, l), "")
2931
3032
31-func n (k) = valueOrErrorMessage(getString(this, k), (("mandatory this." + k) + " is not defined"))
33+func o (l) = valueOrErrorMessage(getString(this, l), (("mandatory this." + l) + " is not defined"))
3234
3335
34-func o (p) = if ((p == i))
36+func p (q) = if ((q == j))
3537 then unit
36- else fromBase58String(p)
38+ else fromBase58String(q)
3739
3840
39-func q (r) = makeString(["gwx_reward.ride:", r], " ")
41+func r (s) = makeString(["gwx_reward.ride:", s], " ")
4042
4143
42-func s (r) = throw(q(r))
44+func t (s) = throw(r(s))
4345
4446
45-func t (u) = if ((0 > u))
46- then -(u)
47- else u
47+func u (v) = if ((0 > v))
48+ then -(v)
49+ else v
4850
4951
50-func v (u) = if ((d > u))
51- then -(u)
52- else u
52+func w (v) = if ((e > v))
53+ then -(v)
54+ else v
5355
5456
55-let w = "%s__maxDepth"
57+let x = "%s__maxDepth"
5658
57-let x = 30
59+let y = 30
5860
59-let y = valueOrElse(getInteger(this, w), x)
61+let z = valueOrElse(getInteger(this, x), y)
6062
61-func z () = "%s%s__config__factoryAddress"
63+func A () = "%s%s__config__factoryAddress"
6264
6365
64-let A = n(z())
66+let B = o(A())
6567
66-let B = addressFromStringValue(A)
68+let C = addressFromStringValue(B)
6769
68-func C () = "%s%s__config__emissionAddress"
70+func D () = "%s%s__config__emissionAddress"
6971
7072
71-func D () = makeString(["%s", "votingEmissionContract"], a)
73+func E () = makeString(["%s", "votingEmissionContract"], a)
7274
7375
74-let E = addressFromStringValue(getStringValue(B, D()))
76+let F = addressFromStringValue(getStringValue(C, E()))
7577
76-func F (G) = makeString(["%s%s%s", "mapping", "num2user", toString(G)], a)
78+func G (H) = makeString(["%s%s%s", "mapping", "num2user", toString(H)], a)
7779
7880
79-let H = makeString(["%s%s", "referral", "programName"], a)
81+let I = makeString(["%s%s", "referral", "programName"], a)
8082
81-let I = "wxlock"
83+let J = "wxlock"
8284
83-let J = valueOrElse(getString(this, H), I)
85+let K = valueOrElse(getString(this, I), J)
8486
85-let K = makeString(["%s%s", "referral", "minGWxAmount"], a)
87+let L = makeString(["%s%s", "referral", "minGWxAmount"], a)
8688
87-let L = (500 * c)
89+let M = (500 * c)
8890
89-let M = valueOrElse(getInteger(this, K), L)
91+let N = valueOrElse(getInteger(this, L), M)
9092
91-let N = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
93+let O = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
9294
93-let O = 50
95+let P = 50
9496
95-let P = valueOrElse(getInteger(this, N), O)
97+let Q = valueOrElse(getInteger(this, O), P)
9698
97-let Q = makeString(["%s%s", "referral", "referralRewardPermille"], a)
99+let R = makeString(["%s%s", "referral", "referralRewardPermille"], a)
98100
99-let R = 50
101+let S = 50
100102
101-let S = valueOrElse(getInteger(this, Q), R)
103+let T = valueOrElse(getInteger(this, R), S)
102104
103-func T (U) = makeString(["%s%s%s", "referrer", J, U], a)
105+func U (V) = makeString(["%s%s%s", "referrer", K, V], a)
104106
105107
106-func V (W,X) = makeString(["%s%s%s", "unclaimedReferral", W, X], a)
108+func W (X,Y) = makeString(["%s%s%s", "unclaimedReferral", X, Y], a)
107109
108110
109-let Y = n(C())
111+let Z = o(D())
110112
111-let Z = addressFromStringValue(Y)
113+let aa = addressFromStringValue(Z)
112114
113-let aa = 1
115+let ab = 1
114116
115-let ab = 2
117+let ac = 2
116118
117-let ac = 3
119+let ad = 3
118120
119-let ad = 4
121+let ae = 4
120122
121-func ae () = "%s__config"
123+func af () = "%s__config"
122124
123125
124-func af () = addressFromStringValue(valueOrErrorMessage(getString(this, C()), (("mandatory this." + C()) + " is not defined")))
126+func ag () = addressFromStringValue(valueOrErrorMessage(getString(this, D()), (("mandatory this." + D()) + " is not defined")))
125127
126128
127-let ag = af()
129+let ah = ag()
128130
129-let ah = split(value(getString(ag, ae())), a)[1]
131+let ai = split(value(getString(ah, af())), a)[1]
130132
131-let ai = fromBase58String(ah)
133+let aj = fromBase58String(ai)
132134
133-func aj () = split(n(ae()), a)
135+func ak () = split(o(af()), a)
134136
135137
136-func ak (ah,al,am,y) = makeString(["%s%s%s%d", ah, al, am, toString(y)], a)
138+func al (ai,am,an,z) = makeString(["%s%s%s%d", ai, am, an, toString(z)], a)
137139
138140
139-func an () = {
140- let ao = aj()
141- valueOrErrorMessage(addressFromString(ao[ac]), "boosting contract address is not defined")
141+func ao () = {
142+ let ap = ak()
143+ valueOrErrorMessage(addressFromString(ap[ad]), "boosting contract address is not defined")
142144 }
143145
144146
145-func ap () = "%s%s__gwxRewardEmissionPart__startHeight"
147+func aq () = "%s%s__gwxRewardEmissionPart__startHeight"
146148
147149
148-func aq () = "%s__nextUserNum"
150+func ar () = "%s__nextUserNum"
149151
150152
151-func ar () = "%s%s__ratePerBlock__current"
153+func as () = "%s%s__ratePerBlock__current"
152154
153155
154-func as () = "%s%s__gwxHoldersReward__current"
156+func at () = "%s%s__gwxHoldersReward__current"
155157
156158
157-func at () = "%s%s__gwxHoldersReward__next"
159+func au () = "%s%s__gwxHoldersReward__next"
158160
159161
160-func au () = "%s%s__poolWeight__GWXvirtualPOOL"
162+func av () = "%s%s__poolWeight__GWXvirtualPOOL"
161163
162164
163-func av (aw) = makeString(["%s%d", "userUnclaimed", toString(aw)], a)
165+func aw (ax) = makeString(["%s%d", "userUnclaimed", toString(ax)], a)
164166
165167
166-func ax () = makeString(["%s%s", "config", "referralsContractAddress"], a)
168+func ay () = makeString(["%s%s", "config", "referralsContractAddress"], a)
167169
168170
169-let ay = addressFromStringValue(n(ax()))
171+let az = addressFromStringValue(o(ay()))
170172
171-func az (aA,aB) = makeString(["%s%s%s%s", "tradingReward", "history", aA, toBase58String(aB.transactionId)], a)
173+func aA (aB,aC) = makeString(["%s%s%s%s", "tradingReward", "history", aB, toBase58String(aC.transactionId)], a)
172174
173175
174-func aC (aD) = makeString(["%s%s", "tradingReward", aD], a)
176+func aD (aE) = makeString(["%s%s", "tradingReward", aE], a)
175177
176178
177-func aE () = makeString(["%s", "maxRecipients"], a)
179+func aF () = makeString(["%s", "maxRecipients"], a)
178180
179181
180-func aF (aG,aA,aH,aB) = {
181- let aI = makeString(["%s%s%s%s__history", aG, aA, toBase58String(aB.transactionId)], a)
182- let aJ = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aH)], a)
183- StringEntry(aI, aJ)
182+func aG (aH,aB,aI,aC) = {
183+ let aJ = makeString(["%s%s%s%s__history", aH, aB, toBase58String(aC.transactionId)], a)
184+ let aK = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aI)], a)
185+ StringEntry(aJ, aK)
184186 }
185187
186188
187-func aK () = "%s__managerPublicKey"
189+func aL () = "%s__managerPublicKey"
188190
189191
190-func aL () = "%s__managerVaultAddress"
192+func aM () = "%s__managerVaultAddress"
191193
192194
193-func aM () = {
194- let aN = getString(aL())
195- if ($isInstanceOf(aN, "String"))
195+func aN () = {
196+ let aO = getString(aM())
197+ if ($isInstanceOf(aO, "String"))
196198 then {
197- let aO = aN
198- addressFromStringValue(aO)
199+ let aP = aO
200+ addressFromStringValue(aP)
199201 }
200202 else this
201203 }
202204
203205
204-func aP () = {
205- let aQ = aM()
206- let aN = getString(aQ, aK())
207- if ($isInstanceOf(aN, "String"))
206+func aQ () = {
207+ let aR = aN()
208+ let aO = getString(aR, aL())
209+ if ($isInstanceOf(aO, "String"))
208210 then {
209- let aO = aN
210- fromBase58String(aO)
211+ let aP = aO
212+ fromBase58String(aP)
211213 }
212- else if ($isInstanceOf(aN, "Unit"))
214+ else if ($isInstanceOf(aO, "Unit"))
213215 then unit
214216 else throw("Match error")
215217 }
216218
217219
218-func aR (aB) = {
219- let aS = throw("Permission denied")
220- let aN = aP()
221- if ($isInstanceOf(aN, "ByteVector"))
220+func aS (aC) = {
221+ let aT = throw("Permission denied")
222+ let aO = aQ()
223+ if ($isInstanceOf(aO, "ByteVector"))
222224 then {
223- let aT = aN
224- if ((aB.callerPublicKey == aT))
225+ let aU = aO
226+ if ((aC.callerPublicKey == aU))
225227 then true
226- else aS
228+ else aT
227229 }
228- else if ($isInstanceOf(aN, "Unit"))
229- then if ((aB.caller == this))
230+ else if ($isInstanceOf(aO, "Unit"))
231+ then if ((aC.caller == this))
230232 then true
231- else aS
233+ else aT
232234 else throw("Match error")
233235 }
234236
235237
236-func aU (am,aD) = {
237- let k = makeString(["%s%s%s", "mapping", "user2num", aD], a)
238- parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(am)), k), ((("User address " + aD) + " is not found in boosting contract data, key=") + k)))
238+func aV (an,aE) = {
239+ let l = makeString(["%s%s%s", "mapping", "user2num", aE], a)
240+ parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(an)), l), ((("User address " + aE) + " is not found in boosting contract data, key=") + l)))
239241 }
240242
241243
242-func aV (aD) = {
243- let ao = aj()
244- let aW = aU(ao[ac], aD)
245- let aX = getInteger(av(aW))
246- let aN = aX
247- if ($isInstanceOf(aN, "Unit"))
244+func aW (aE) = {
245+ let ap = ak()
246+ let aX = aV(ap[ad], aE)
247+ let aY = getInteger(aw(aX))
248+ let aO = aY
249+ if ($isInstanceOf(aO, "Unit"))
248250 then $Tuple2(0, nil)
249- else if ($isInstanceOf(aN, "Int"))
251+ else if ($isInstanceOf(aO, "Int"))
250252 then {
251- let aY = aN
252- $Tuple2(aY, [IntegerEntry(av(aW), 0)])
253+ let aZ = aO
254+ $Tuple2(aZ, [IntegerEntry(aw(aX), 0)])
253255 }
254256 else throw("Match error")
255257 }
256258
257259
258-func aZ (aD) = valueOrElse(getInteger(this, aC(aD)), 0)
260+func ba (aE) = valueOrElse(getInteger(this, aD(aE)), 0)
259261
260262
261-func ba () = makeString(["%s", "rewardPerGwxIntegral"], a)
263+func bb () = makeString(["%s", "rewardPerGwxIntegral"], a)
262264
263265
264-func bb () = {
265- let bc = valueOrElse({
266- let aN = getString(this, ba())
267- if ($isInstanceOf(aN, "String"))
266+func bc () = {
267+ let bd = valueOrElse({
268+ let aO = getString(this, bb())
269+ if ($isInstanceOf(aO, "String"))
268270 then {
269- let aO = aN
270- parseBigInt(aO)
271+ let aP = aO
272+ parseBigInt(aP)
271273 }
272- else if ($isInstanceOf(aN, "Unit"))
274+ else if ($isInstanceOf(aO, "Unit"))
273275 then unit
274276 else throw("Match error")
275- }, d)
276- let bd = valueOrErrorMessage(getInteger(this, ap()), q(("invalid " + ap())))
277- let be = valueOrErrorMessage(getInteger(Z, ar()), q(("invalid " + ar())))
278- let bf = valueOrElse(getInteger(Z, as()), 0)
279- let bg = {
280- let bh = invoke(an(), "getGwxTotalREADONLY", nil, nil)
281- if ($isInstanceOf(bh, "Int"))
282- then bh
283- else throw(($getType(bh) + " couldn't be cast to Int"))
277+ }, e)
278+ let be = valueOrErrorMessage(getInteger(this, aq()), r(("invalid " + aq())))
279+ let bf = valueOrErrorMessage(getInteger(aa, as()), r(("invalid " + as())))
280+ let bg = valueOrElse(getInteger(aa, at()), 0)
281+ let bh = {
282+ let bi = invoke(ao(), "getGwxTotalREADONLY", nil, nil)
283+ if ($isInstanceOf(bi, "Int"))
284+ then bi
285+ else throw(($getType(bi) + " couldn't be cast to Int"))
284286 }
285- let bi = toBigInt((height - bd))
286- let bj = (bc + fraction(bi, ((toBigInt(be) * toBigInt(bf)) * h), toBigInt(bg)))
287- $Tuple2([IntegerEntry(ap(), height), StringEntry(ba(), toString(bj))], bj)
287+ let bj = toBigInt((height - be))
288+ let bk = (bd + fraction(bj, ((toBigInt(bf) * toBigInt(bg)) * i), (toBigInt(bh) * d)))
289+ $Tuple2([IntegerEntry(aq(), height), StringEntry(bb(), toString(bk))], bk)
288290 }
289291
290292
291-func bk (aD) = makeString(["%s%s", "rewardPerGwxIntegralUserLast", toString(aD)], a)
293+func bl (aE) = makeString(["%s%s", "rewardPerGwxIntegralUserLast", toString(aE)], a)
292294
293295
294-func bl (aD) = {
295- let bm = valueOrElse({
296- let aN = getString(this, bk(aD))
297- if ($isInstanceOf(aN, "String"))
296+func bm (aE) = {
297+ let bn = valueOrElse({
298+ let aO = getString(this, bl(aE))
299+ if ($isInstanceOf(aO, "String"))
298300 then {
299- let aO = aN
300- parseBigInt(aO)
301+ let aP = aO
302+ parseBigInt(aP)
301303 }
302- else if ($isInstanceOf(aN, "Unit"))
304+ else if ($isInstanceOf(aO, "Unit"))
303305 then unit
304306 else throw("Match error")
305- }, d)
306- let bn = aU(toString(an()), toString(aD))
307- let bo = valueOrElse(getInteger(av(bn)), 0)
308- let bp = bb()
309- let bq = bp._1
310- let bj = bp._2
311- let br = {
312- let bh = invoke(an(), "getUserGwxAmount", [toString(aD)], nil)
313- if ($isInstanceOf(bh, "Int"))
314- then bh
315- else throw(($getType(bh) + " couldn't be cast to Int"))
307+ }, e)
308+ let bo = aV(toString(ao()), toString(aE))
309+ let bp = valueOrElse(getInteger(aw(bo)), 0)
310+ let bq = bc()
311+ let br = bq._1
312+ let bk = bq._2
313+ let bs = {
314+ let bi = invoke(ao(), "getUserGwxAmount", [toString(aE)], nil)
315+ if ($isInstanceOf(bi, "Int"))
316+ then bi
317+ else throw(($getType(bi) + " couldn't be cast to Int"))
316318 }
317- let bs = (toInt(fraction(toBigInt(br), (bj - bm), h)) + bo)
318- $Tuple2(([StringEntry(bk(aD), toString(bj))] ++ bq), bs)
319+ let bt = (toInt(fraction(toBigInt(bs), (bk - bn), i)) + bp)
320+ $Tuple2(([StringEntry(bl(aE), toString(bk))] ++ br), bt)
319321 }
320322
321323
322-@Callable(aB)
323-func refreshUserReward (bt) = {
324- let bu = if ((aB.caller == an()))
324+@Callable(aC)
325+func refreshUserReward (bu) = {
326+ let bv = if ((aC.caller == ao()))
325327 then true
326- else s("permission denied")
327- if ((bu == bu))
328- then bl(Address(bt))
328+ else t("permission denied")
329+ if ((bv == bv))
330+ then bm(Address(bu))
329331 else throw("Strict value is not equal to itself.")
330332 }
331333
332334
333335
334-@Callable(aB)
335-func tradeRewardInternal (bv,bw,bx,by) = if ((by == size(bw)))
336+@Callable(aC)
337+func tradeRewardInternal (bw,bx,by,bz) = if ((bz == size(bx)))
336338 then nil
337339 else {
338- let bz = [if ((aB.caller == this))
340+ let bA = [if ((aC.caller == this))
339341 then true
340- else s("Permission denied"), if ((bv >= bx[by]))
342+ else t("Permission denied"), if ((bw >= by[bz]))
341343 then true
342- else s("insufficient payment assetId")]
343- if ((bz == bz))
344+ else t("insufficient payment assetId")]
345+ if ((bA == bA))
344346 then {
345- let bA = invoke(this, "tradeRewardInternal", [(bv - bx[by]), bw, bx, (by + 1)], nil)
346- if ((bA == bA))
347+ let bB = invoke(this, "tradeRewardInternal", [(bw - by[bz]), bx, by, (bz + 1)], nil)
348+ if ((bB == bB))
347349 then {
348- let bB = az(bw[by], aB)
349- let aD = addressFromStringValue(bw[by])
350- $Tuple2([IntegerEntry(bB, bx[by]), IntegerEntry(aC(bw[by]), bx[by])], bA)
350+ let bC = aA(bx[bz], aC)
351+ let aE = addressFromStringValue(bx[bz])
352+ $Tuple2([IntegerEntry(bC, by[bz]), IntegerEntry(aD(bx[bz]), by[bz])], bB)
351353 }
352354 else throw("Strict value is not equal to itself.")
353355 }
356358
357359
358360
359-@Callable(aB)
360-func updateReferralActivity (aD,bC) = {
361- let bD = getString(ay, T(aD))
362- let bE = if ((bD == unit))
361+@Callable(aC)
362+func updateReferralActivity (aE,bD) = {
363+ let bE = getString(az, U(aE))
364+ let bF = if ((bE == unit))
363365 then unit
364- else invoke(ay, "updateReferralActivity", [J, aD, (bC >= M)], nil)
365- if ((bE == bE))
366+ else invoke(az, "updateReferralActivity", [K, aE, (bD >= N)], nil)
367+ if ((bF == bF))
366368 then $Tuple2(nil, unit)
367369 else throw("Strict value is not equal to itself.")
368370 }
369371
370372
371373
372-@Callable(aB)
373-func processPendingPeriodsAndUsers () = $Tuple2(nil, s("deprecated"))
374+@Callable(aC)
375+func processPendingPeriodsAndUsers () = $Tuple2(nil, t("deprecated"))
374376
375377
376378
377-@Callable(aB)
379+@Callable(aC)
378380 func claimReward () = {
379- let ao = aj()
380- let aD = aB.caller
381- let bF = toString(aD)
382- let bG = aV(bF)
383- let aH = bG._1
384- let bH = bG._2
385- let bI = if ((aH > 0))
381+ let ap = ak()
382+ let aE = aC.caller
383+ let bG = toString(aE)
384+ let bH = aW(bG)
385+ let aI = bH._1
386+ let bI = bH._2
387+ let bJ = if ((aI > 0))
386388 then true
387389 else throw("nothing to claim")
388- if ((bI == bI))
390+ if ((bJ == bJ))
389391 then {
390- let br = {
391- let bh = invoke(an(), "getUserGwxAmount", [bF], nil)
392- if ($isInstanceOf(bh, "Int"))
393- then bh
394- else throw(($getType(bh) + " couldn't be cast to Int"))
392+ let bs = {
393+ let bi = invoke(ao(), "getUserGwxAmount", [bG], nil)
394+ if ($isInstanceOf(bi, "Int"))
395+ then bi
396+ else throw(($getType(bi) + " couldn't be cast to Int"))
395397 }
396- let bD = getString(ay, T(bF))
397- let bE = if ((bD == unit))
398+ let bE = getString(az, U(bG))
399+ let bF = if ((bE == unit))
398400 then unit
399- else invoke(ay, "updateReferralActivity", [J, aD, (br >= M)], nil)
400- if ((bE == bE))
401+ else invoke(az, "updateReferralActivity", [K, aE, (bs >= N)], nil)
402+ if ((bF == bF))
401403 then {
402- let bJ = if (if ((bD == unit))
404+ let bK = if (if ((bE == unit))
403405 then true
404- else (M > br))
406+ else (N > bs))
405407 then unit
406408 else {
407- let bK = fraction(aH, P, b)
408- let bL = fraction(aH, S, b)
409- invoke(ay, "incUnclaimed", [J, aD, bK, bL], nil)
409+ let bL = fraction(aI, Q, b)
410+ let bM = fraction(aI, T, b)
411+ invoke(az, "incUnclaimed", [K, aE, bL, bM], nil)
410412 }
411- if ((bJ == bJ))
413+ if ((bK == bK))
412414 then {
413- let bM = {
414- let bh = invoke(ay, "claim", [J], nil)
415- if ($isInstanceOf(bh, "Int"))
416- then bh
417- else throw(($getType(bh) + " couldn't be cast to Int"))
415+ let bN = {
416+ let bi = invoke(az, "claim", [K], nil)
417+ if ($isInstanceOf(bi, "Int"))
418+ then bi
419+ else throw(($getType(bi) + " couldn't be cast to Int"))
418420 }
419- if ((bM == bM))
421+ if ((bN == bN))
420422 then {
421- let bN = (aH + bM)
422- $Tuple2(([ScriptTransfer(aB.caller, aH, fromBase58String(ao[aa])), aF("claim", bF, bN, aB)] ++ bH), bN)
423+ let bO = (aI + bN)
424+ $Tuple2(([ScriptTransfer(aC.caller, aI, fromBase58String(ap[ab])), aG("claim", bG, bO, aC)] ++ bI), bO)
423425 }
424426 else throw("Strict value is not equal to itself.")
425427 }
432434
433435
434436
435-@Callable(aB)
436-func claimRewardREADONLY (bO) = {
437- let bP = aV(bO)
438- let aH = bP._1
439- let bH = bP._2
440- let bQ = valueOrElse(getInteger(ay, V(J, bO)), 0)
441- let bN = (aH + bQ)
442- $Tuple2(nil, bN)
437+@Callable(aC)
438+func claimRewardREADONLY (bP) = {
439+ let bQ = aW(bP)
440+ let aI = bQ._1
441+ let bI = bQ._2
442+ let bR = valueOrElse(getInteger(az, W(K, bP)), 0)
443+ let bO = (aI + bR)
444+ $Tuple2(nil, bO)
443445 }
444446
445447
446448
447-@Callable(aB)
448-func onEmissionForGwxStart () = if ((aB.caller != B))
449+@Callable(aC)
450+func onEmissionForGwxStart () = if ((aC.caller != C))
449451 then throw("permissions denied")
450- else [IntegerEntry(ap(), height)]
452+ else [IntegerEntry(aq(), height)]
451453
452454
453455
454-@Callable(aB)
455-func tradeReward (bw,bx) = {
456- let bR = (size(bw) == size(bx))
457- let bS = valueOrElse(getInteger(aE()), 0)
458- let bT = aB.payments[0]
459- let bU = bT.assetId
460- let bV = bT.amount
461- let bz = [if ((bS >= size(bw)))
456+@Callable(aC)
457+func tradeReward (bx,by) = {
458+ let bS = (size(bx) == size(by))
459+ let bT = valueOrElse(getInteger(aF()), 0)
460+ let bU = aC.payments[0]
461+ let bV = bU.assetId
462+ let bW = bU.amount
463+ let bA = [if ((bT >= size(bx)))
462464 then true
463- else s("Too many recipients"), if (bR)
465+ else t("Too many recipients"), if (bS)
464466 then true
465- else s("Arguments size mismatch"), if ((bU == ai))
467+ else t("Arguments size mismatch"), if ((bV == aj))
466468 then true
467- else s("Wrong asset payment")]
468- if ((bz == bz))
469+ else t("Wrong asset payment")]
470+ if ((bA == bA))
469471 then {
470- let bA = invoke(this, "tradeRewardInternal", [bV, bw, bx, 0], nil)
471- if ((bA == bA))
472- then $Tuple2(nil, bA)
472+ let bB = invoke(this, "tradeRewardInternal", [bW, bx, by, 0], nil)
473+ if ((bB == bB))
474+ then $Tuple2(nil, bB)
473475 else throw("Strict value is not equal to itself.")
474476 }
475477 else throw("Strict value is not equal to itself.")
477479
478480
479481
480-@Callable(aB)
482+@Callable(aC)
481483 func claimTradingReward () = {
482- let aD = aB.caller
483- let bW = toString(aD)
484- let bX = aZ(bW)
485- if ((bX > 0))
486- then $Tuple2([ScriptTransfer(aD, bX, ai), IntegerEntry(aC(bW), 0)], bX)
487- else s("nothing to claim")
484+ let aE = aC.caller
485+ let bX = toString(aE)
486+ let bY = ba(bX)
487+ if ((bY > 0))
488+ then $Tuple2([ScriptTransfer(aE, bY, aj), IntegerEntry(aD(bX), 0)], bY)
489+ else t("nothing to claim")
488490 }
489491
490492
491493
492-@Callable(aB)
493-func claimTradingRewardREADONLY (aD) = $Tuple2(nil, aZ(aD))
494+@Callable(aC)
495+func claimTradingRewardREADONLY (aE) = $Tuple2(nil, ba(aE))
494496
495497
496-@Verifier(bY)
497-func bZ () = {
498- let ca = {
499- let aN = aP()
500- if ($isInstanceOf(aN, "ByteVector"))
498+@Verifier(bZ)
499+func ca () = {
500+ let cb = {
501+ let aO = aQ()
502+ if ($isInstanceOf(aO, "ByteVector"))
501503 then {
502- let aT = aN
503- aT
504+ let aU = aO
505+ aU
504506 }
505- else if ($isInstanceOf(aN, "Unit"))
506- then bY.senderPublicKey
507+ else if ($isInstanceOf(aO, "Unit"))
508+ then bZ.senderPublicKey
507509 else throw("Match error")
508510 }
509- sigVerify(bY.bodyBytes, bY.proofs[0], ca)
511+ sigVerify(bZ.bodyBytes, bZ.proofs[0], cb)
510512 }
511513
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 1000
77
88 let c = 100000000
99
10-let d = toBigInt(0)
10+let d = toBigInt(c)
1111
12-let e = 0
12+let e = toBigInt(0)
1313
14-let f = 1
14+let f = 0
1515
16-let g = 1000000000000000000
16+let g = 1
1717
18-let h = toBigInt(g)
18+let h = 1000000000000000000
1919
20-let i = "WAVES"
20+let i = toBigInt(h)
2121
22-func j (k) = valueOrElse(getInteger(this, k), 0)
22+let j = "WAVES"
23+
24+func k (l) = valueOrElse(getInteger(this, l), 0)
2325
2426
25-func l (k) = valueOrErrorMessage(getInteger(this, k), (("mandatory this." + k) + " is not defined"))
27+func m (l) = valueOrErrorMessage(getInteger(this, l), (("mandatory this." + l) + " is not defined"))
2628
2729
28-func m (k) = valueOrElse(getString(this, k), "")
30+func n (l) = valueOrElse(getString(this, l), "")
2931
3032
31-func n (k) = valueOrErrorMessage(getString(this, k), (("mandatory this." + k) + " is not defined"))
33+func o (l) = valueOrErrorMessage(getString(this, l), (("mandatory this." + l) + " is not defined"))
3234
3335
34-func o (p) = if ((p == i))
36+func p (q) = if ((q == j))
3537 then unit
36- else fromBase58String(p)
38+ else fromBase58String(q)
3739
3840
39-func q (r) = makeString(["gwx_reward.ride:", r], " ")
41+func r (s) = makeString(["gwx_reward.ride:", s], " ")
4042
4143
42-func s (r) = throw(q(r))
44+func t (s) = throw(r(s))
4345
4446
45-func t (u) = if ((0 > u))
46- then -(u)
47- else u
47+func u (v) = if ((0 > v))
48+ then -(v)
49+ else v
4850
4951
50-func v (u) = if ((d > u))
51- then -(u)
52- else u
52+func w (v) = if ((e > v))
53+ then -(v)
54+ else v
5355
5456
55-let w = "%s__maxDepth"
57+let x = "%s__maxDepth"
5658
57-let x = 30
59+let y = 30
5860
59-let y = valueOrElse(getInteger(this, w), x)
61+let z = valueOrElse(getInteger(this, x), y)
6062
61-func z () = "%s%s__config__factoryAddress"
63+func A () = "%s%s__config__factoryAddress"
6264
6365
64-let A = n(z())
66+let B = o(A())
6567
66-let B = addressFromStringValue(A)
68+let C = addressFromStringValue(B)
6769
68-func C () = "%s%s__config__emissionAddress"
70+func D () = "%s%s__config__emissionAddress"
6971
7072
71-func D () = makeString(["%s", "votingEmissionContract"], a)
73+func E () = makeString(["%s", "votingEmissionContract"], a)
7274
7375
74-let E = addressFromStringValue(getStringValue(B, D()))
76+let F = addressFromStringValue(getStringValue(C, E()))
7577
76-func F (G) = makeString(["%s%s%s", "mapping", "num2user", toString(G)], a)
78+func G (H) = makeString(["%s%s%s", "mapping", "num2user", toString(H)], a)
7779
7880
79-let H = makeString(["%s%s", "referral", "programName"], a)
81+let I = makeString(["%s%s", "referral", "programName"], a)
8082
81-let I = "wxlock"
83+let J = "wxlock"
8284
83-let J = valueOrElse(getString(this, H), I)
85+let K = valueOrElse(getString(this, I), J)
8486
85-let K = makeString(["%s%s", "referral", "minGWxAmount"], a)
87+let L = makeString(["%s%s", "referral", "minGWxAmount"], a)
8688
87-let L = (500 * c)
89+let M = (500 * c)
8890
89-let M = valueOrElse(getInteger(this, K), L)
91+let N = valueOrElse(getInteger(this, L), M)
9092
91-let N = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
93+let O = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
9294
93-let O = 50
95+let P = 50
9496
95-let P = valueOrElse(getInteger(this, N), O)
97+let Q = valueOrElse(getInteger(this, O), P)
9698
97-let Q = makeString(["%s%s", "referral", "referralRewardPermille"], a)
99+let R = makeString(["%s%s", "referral", "referralRewardPermille"], a)
98100
99-let R = 50
101+let S = 50
100102
101-let S = valueOrElse(getInteger(this, Q), R)
103+let T = valueOrElse(getInteger(this, R), S)
102104
103-func T (U) = makeString(["%s%s%s", "referrer", J, U], a)
105+func U (V) = makeString(["%s%s%s", "referrer", K, V], a)
104106
105107
106-func V (W,X) = makeString(["%s%s%s", "unclaimedReferral", W, X], a)
108+func W (X,Y) = makeString(["%s%s%s", "unclaimedReferral", X, Y], a)
107109
108110
109-let Y = n(C())
111+let Z = o(D())
110112
111-let Z = addressFromStringValue(Y)
113+let aa = addressFromStringValue(Z)
112114
113-let aa = 1
115+let ab = 1
114116
115-let ab = 2
117+let ac = 2
116118
117-let ac = 3
119+let ad = 3
118120
119-let ad = 4
121+let ae = 4
120122
121-func ae () = "%s__config"
123+func af () = "%s__config"
122124
123125
124-func af () = addressFromStringValue(valueOrErrorMessage(getString(this, C()), (("mandatory this." + C()) + " is not defined")))
126+func ag () = addressFromStringValue(valueOrErrorMessage(getString(this, D()), (("mandatory this." + D()) + " is not defined")))
125127
126128
127-let ag = af()
129+let ah = ag()
128130
129-let ah = split(value(getString(ag, ae())), a)[1]
131+let ai = split(value(getString(ah, af())), a)[1]
130132
131-let ai = fromBase58String(ah)
133+let aj = fromBase58String(ai)
132134
133-func aj () = split(n(ae()), a)
135+func ak () = split(o(af()), a)
134136
135137
136-func ak (ah,al,am,y) = makeString(["%s%s%s%d", ah, al, am, toString(y)], a)
138+func al (ai,am,an,z) = makeString(["%s%s%s%d", ai, am, an, toString(z)], a)
137139
138140
139-func an () = {
140- let ao = aj()
141- valueOrErrorMessage(addressFromString(ao[ac]), "boosting contract address is not defined")
141+func ao () = {
142+ let ap = ak()
143+ valueOrErrorMessage(addressFromString(ap[ad]), "boosting contract address is not defined")
142144 }
143145
144146
145-func ap () = "%s%s__gwxRewardEmissionPart__startHeight"
147+func aq () = "%s%s__gwxRewardEmissionPart__startHeight"
146148
147149
148-func aq () = "%s__nextUserNum"
150+func ar () = "%s__nextUserNum"
149151
150152
151-func ar () = "%s%s__ratePerBlock__current"
153+func as () = "%s%s__ratePerBlock__current"
152154
153155
154-func as () = "%s%s__gwxHoldersReward__current"
156+func at () = "%s%s__gwxHoldersReward__current"
155157
156158
157-func at () = "%s%s__gwxHoldersReward__next"
159+func au () = "%s%s__gwxHoldersReward__next"
158160
159161
160-func au () = "%s%s__poolWeight__GWXvirtualPOOL"
162+func av () = "%s%s__poolWeight__GWXvirtualPOOL"
161163
162164
163-func av (aw) = makeString(["%s%d", "userUnclaimed", toString(aw)], a)
165+func aw (ax) = makeString(["%s%d", "userUnclaimed", toString(ax)], a)
164166
165167
166-func ax () = makeString(["%s%s", "config", "referralsContractAddress"], a)
168+func ay () = makeString(["%s%s", "config", "referralsContractAddress"], a)
167169
168170
169-let ay = addressFromStringValue(n(ax()))
171+let az = addressFromStringValue(o(ay()))
170172
171-func az (aA,aB) = makeString(["%s%s%s%s", "tradingReward", "history", aA, toBase58String(aB.transactionId)], a)
173+func aA (aB,aC) = makeString(["%s%s%s%s", "tradingReward", "history", aB, toBase58String(aC.transactionId)], a)
172174
173175
174-func aC (aD) = makeString(["%s%s", "tradingReward", aD], a)
176+func aD (aE) = makeString(["%s%s", "tradingReward", aE], a)
175177
176178
177-func aE () = makeString(["%s", "maxRecipients"], a)
179+func aF () = makeString(["%s", "maxRecipients"], a)
178180
179181
180-func aF (aG,aA,aH,aB) = {
181- let aI = makeString(["%s%s%s%s__history", aG, aA, toBase58String(aB.transactionId)], a)
182- let aJ = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aH)], a)
183- StringEntry(aI, aJ)
182+func aG (aH,aB,aI,aC) = {
183+ let aJ = makeString(["%s%s%s%s__history", aH, aB, toBase58String(aC.transactionId)], a)
184+ let aK = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aI)], a)
185+ StringEntry(aJ, aK)
184186 }
185187
186188
187-func aK () = "%s__managerPublicKey"
189+func aL () = "%s__managerPublicKey"
188190
189191
190-func aL () = "%s__managerVaultAddress"
192+func aM () = "%s__managerVaultAddress"
191193
192194
193-func aM () = {
194- let aN = getString(aL())
195- if ($isInstanceOf(aN, "String"))
195+func aN () = {
196+ let aO = getString(aM())
197+ if ($isInstanceOf(aO, "String"))
196198 then {
197- let aO = aN
198- addressFromStringValue(aO)
199+ let aP = aO
200+ addressFromStringValue(aP)
199201 }
200202 else this
201203 }
202204
203205
204-func aP () = {
205- let aQ = aM()
206- let aN = getString(aQ, aK())
207- if ($isInstanceOf(aN, "String"))
206+func aQ () = {
207+ let aR = aN()
208+ let aO = getString(aR, aL())
209+ if ($isInstanceOf(aO, "String"))
208210 then {
209- let aO = aN
210- fromBase58String(aO)
211+ let aP = aO
212+ fromBase58String(aP)
211213 }
212- else if ($isInstanceOf(aN, "Unit"))
214+ else if ($isInstanceOf(aO, "Unit"))
213215 then unit
214216 else throw("Match error")
215217 }
216218
217219
218-func aR (aB) = {
219- let aS = throw("Permission denied")
220- let aN = aP()
221- if ($isInstanceOf(aN, "ByteVector"))
220+func aS (aC) = {
221+ let aT = throw("Permission denied")
222+ let aO = aQ()
223+ if ($isInstanceOf(aO, "ByteVector"))
222224 then {
223- let aT = aN
224- if ((aB.callerPublicKey == aT))
225+ let aU = aO
226+ if ((aC.callerPublicKey == aU))
225227 then true
226- else aS
228+ else aT
227229 }
228- else if ($isInstanceOf(aN, "Unit"))
229- then if ((aB.caller == this))
230+ else if ($isInstanceOf(aO, "Unit"))
231+ then if ((aC.caller == this))
230232 then true
231- else aS
233+ else aT
232234 else throw("Match error")
233235 }
234236
235237
236-func aU (am,aD) = {
237- let k = makeString(["%s%s%s", "mapping", "user2num", aD], a)
238- parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(am)), k), ((("User address " + aD) + " is not found in boosting contract data, key=") + k)))
238+func aV (an,aE) = {
239+ let l = makeString(["%s%s%s", "mapping", "user2num", aE], a)
240+ parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(an)), l), ((("User address " + aE) + " is not found in boosting contract data, key=") + l)))
239241 }
240242
241243
242-func aV (aD) = {
243- let ao = aj()
244- let aW = aU(ao[ac], aD)
245- let aX = getInteger(av(aW))
246- let aN = aX
247- if ($isInstanceOf(aN, "Unit"))
244+func aW (aE) = {
245+ let ap = ak()
246+ let aX = aV(ap[ad], aE)
247+ let aY = getInteger(aw(aX))
248+ let aO = aY
249+ if ($isInstanceOf(aO, "Unit"))
248250 then $Tuple2(0, nil)
249- else if ($isInstanceOf(aN, "Int"))
251+ else if ($isInstanceOf(aO, "Int"))
250252 then {
251- let aY = aN
252- $Tuple2(aY, [IntegerEntry(av(aW), 0)])
253+ let aZ = aO
254+ $Tuple2(aZ, [IntegerEntry(aw(aX), 0)])
253255 }
254256 else throw("Match error")
255257 }
256258
257259
258-func aZ (aD) = valueOrElse(getInteger(this, aC(aD)), 0)
260+func ba (aE) = valueOrElse(getInteger(this, aD(aE)), 0)
259261
260262
261-func ba () = makeString(["%s", "rewardPerGwxIntegral"], a)
263+func bb () = makeString(["%s", "rewardPerGwxIntegral"], a)
262264
263265
264-func bb () = {
265- let bc = valueOrElse({
266- let aN = getString(this, ba())
267- if ($isInstanceOf(aN, "String"))
266+func bc () = {
267+ let bd = valueOrElse({
268+ let aO = getString(this, bb())
269+ if ($isInstanceOf(aO, "String"))
268270 then {
269- let aO = aN
270- parseBigInt(aO)
271+ let aP = aO
272+ parseBigInt(aP)
271273 }
272- else if ($isInstanceOf(aN, "Unit"))
274+ else if ($isInstanceOf(aO, "Unit"))
273275 then unit
274276 else throw("Match error")
275- }, d)
276- let bd = valueOrErrorMessage(getInteger(this, ap()), q(("invalid " + ap())))
277- let be = valueOrErrorMessage(getInteger(Z, ar()), q(("invalid " + ar())))
278- let bf = valueOrElse(getInteger(Z, as()), 0)
279- let bg = {
280- let bh = invoke(an(), "getGwxTotalREADONLY", nil, nil)
281- if ($isInstanceOf(bh, "Int"))
282- then bh
283- else throw(($getType(bh) + " couldn't be cast to Int"))
277+ }, e)
278+ let be = valueOrErrorMessage(getInteger(this, aq()), r(("invalid " + aq())))
279+ let bf = valueOrErrorMessage(getInteger(aa, as()), r(("invalid " + as())))
280+ let bg = valueOrElse(getInteger(aa, at()), 0)
281+ let bh = {
282+ let bi = invoke(ao(), "getGwxTotalREADONLY", nil, nil)
283+ if ($isInstanceOf(bi, "Int"))
284+ then bi
285+ else throw(($getType(bi) + " couldn't be cast to Int"))
284286 }
285- let bi = toBigInt((height - bd))
286- let bj = (bc + fraction(bi, ((toBigInt(be) * toBigInt(bf)) * h), toBigInt(bg)))
287- $Tuple2([IntegerEntry(ap(), height), StringEntry(ba(), toString(bj))], bj)
287+ let bj = toBigInt((height - be))
288+ let bk = (bd + fraction(bj, ((toBigInt(bf) * toBigInt(bg)) * i), (toBigInt(bh) * d)))
289+ $Tuple2([IntegerEntry(aq(), height), StringEntry(bb(), toString(bk))], bk)
288290 }
289291
290292
291-func bk (aD) = makeString(["%s%s", "rewardPerGwxIntegralUserLast", toString(aD)], a)
293+func bl (aE) = makeString(["%s%s", "rewardPerGwxIntegralUserLast", toString(aE)], a)
292294
293295
294-func bl (aD) = {
295- let bm = valueOrElse({
296- let aN = getString(this, bk(aD))
297- if ($isInstanceOf(aN, "String"))
296+func bm (aE) = {
297+ let bn = valueOrElse({
298+ let aO = getString(this, bl(aE))
299+ if ($isInstanceOf(aO, "String"))
298300 then {
299- let aO = aN
300- parseBigInt(aO)
301+ let aP = aO
302+ parseBigInt(aP)
301303 }
302- else if ($isInstanceOf(aN, "Unit"))
304+ else if ($isInstanceOf(aO, "Unit"))
303305 then unit
304306 else throw("Match error")
305- }, d)
306- let bn = aU(toString(an()), toString(aD))
307- let bo = valueOrElse(getInteger(av(bn)), 0)
308- let bp = bb()
309- let bq = bp._1
310- let bj = bp._2
311- let br = {
312- let bh = invoke(an(), "getUserGwxAmount", [toString(aD)], nil)
313- if ($isInstanceOf(bh, "Int"))
314- then bh
315- else throw(($getType(bh) + " couldn't be cast to Int"))
307+ }, e)
308+ let bo = aV(toString(ao()), toString(aE))
309+ let bp = valueOrElse(getInteger(aw(bo)), 0)
310+ let bq = bc()
311+ let br = bq._1
312+ let bk = bq._2
313+ let bs = {
314+ let bi = invoke(ao(), "getUserGwxAmount", [toString(aE)], nil)
315+ if ($isInstanceOf(bi, "Int"))
316+ then bi
317+ else throw(($getType(bi) + " couldn't be cast to Int"))
316318 }
317- let bs = (toInt(fraction(toBigInt(br), (bj - bm), h)) + bo)
318- $Tuple2(([StringEntry(bk(aD), toString(bj))] ++ bq), bs)
319+ let bt = (toInt(fraction(toBigInt(bs), (bk - bn), i)) + bp)
320+ $Tuple2(([StringEntry(bl(aE), toString(bk))] ++ br), bt)
319321 }
320322
321323
322-@Callable(aB)
323-func refreshUserReward (bt) = {
324- let bu = if ((aB.caller == an()))
324+@Callable(aC)
325+func refreshUserReward (bu) = {
326+ let bv = if ((aC.caller == ao()))
325327 then true
326- else s("permission denied")
327- if ((bu == bu))
328- then bl(Address(bt))
328+ else t("permission denied")
329+ if ((bv == bv))
330+ then bm(Address(bu))
329331 else throw("Strict value is not equal to itself.")
330332 }
331333
332334
333335
334-@Callable(aB)
335-func tradeRewardInternal (bv,bw,bx,by) = if ((by == size(bw)))
336+@Callable(aC)
337+func tradeRewardInternal (bw,bx,by,bz) = if ((bz == size(bx)))
336338 then nil
337339 else {
338- let bz = [if ((aB.caller == this))
340+ let bA = [if ((aC.caller == this))
339341 then true
340- else s("Permission denied"), if ((bv >= bx[by]))
342+ else t("Permission denied"), if ((bw >= by[bz]))
341343 then true
342- else s("insufficient payment assetId")]
343- if ((bz == bz))
344+ else t("insufficient payment assetId")]
345+ if ((bA == bA))
344346 then {
345- let bA = invoke(this, "tradeRewardInternal", [(bv - bx[by]), bw, bx, (by + 1)], nil)
346- if ((bA == bA))
347+ let bB = invoke(this, "tradeRewardInternal", [(bw - by[bz]), bx, by, (bz + 1)], nil)
348+ if ((bB == bB))
347349 then {
348- let bB = az(bw[by], aB)
349- let aD = addressFromStringValue(bw[by])
350- $Tuple2([IntegerEntry(bB, bx[by]), IntegerEntry(aC(bw[by]), bx[by])], bA)
350+ let bC = aA(bx[bz], aC)
351+ let aE = addressFromStringValue(bx[bz])
352+ $Tuple2([IntegerEntry(bC, by[bz]), IntegerEntry(aD(bx[bz]), by[bz])], bB)
351353 }
352354 else throw("Strict value is not equal to itself.")
353355 }
354356 else throw("Strict value is not equal to itself.")
355357 }
356358
357359
358360
359-@Callable(aB)
360-func updateReferralActivity (aD,bC) = {
361- let bD = getString(ay, T(aD))
362- let bE = if ((bD == unit))
361+@Callable(aC)
362+func updateReferralActivity (aE,bD) = {
363+ let bE = getString(az, U(aE))
364+ let bF = if ((bE == unit))
363365 then unit
364- else invoke(ay, "updateReferralActivity", [J, aD, (bC >= M)], nil)
365- if ((bE == bE))
366+ else invoke(az, "updateReferralActivity", [K, aE, (bD >= N)], nil)
367+ if ((bF == bF))
366368 then $Tuple2(nil, unit)
367369 else throw("Strict value is not equal to itself.")
368370 }
369371
370372
371373
372-@Callable(aB)
373-func processPendingPeriodsAndUsers () = $Tuple2(nil, s("deprecated"))
374+@Callable(aC)
375+func processPendingPeriodsAndUsers () = $Tuple2(nil, t("deprecated"))
374376
375377
376378
377-@Callable(aB)
379+@Callable(aC)
378380 func claimReward () = {
379- let ao = aj()
380- let aD = aB.caller
381- let bF = toString(aD)
382- let bG = aV(bF)
383- let aH = bG._1
384- let bH = bG._2
385- let bI = if ((aH > 0))
381+ let ap = ak()
382+ let aE = aC.caller
383+ let bG = toString(aE)
384+ let bH = aW(bG)
385+ let aI = bH._1
386+ let bI = bH._2
387+ let bJ = if ((aI > 0))
386388 then true
387389 else throw("nothing to claim")
388- if ((bI == bI))
390+ if ((bJ == bJ))
389391 then {
390- let br = {
391- let bh = invoke(an(), "getUserGwxAmount", [bF], nil)
392- if ($isInstanceOf(bh, "Int"))
393- then bh
394- else throw(($getType(bh) + " couldn't be cast to Int"))
392+ let bs = {
393+ let bi = invoke(ao(), "getUserGwxAmount", [bG], nil)
394+ if ($isInstanceOf(bi, "Int"))
395+ then bi
396+ else throw(($getType(bi) + " couldn't be cast to Int"))
395397 }
396- let bD = getString(ay, T(bF))
397- let bE = if ((bD == unit))
398+ let bE = getString(az, U(bG))
399+ let bF = if ((bE == unit))
398400 then unit
399- else invoke(ay, "updateReferralActivity", [J, aD, (br >= M)], nil)
400- if ((bE == bE))
401+ else invoke(az, "updateReferralActivity", [K, aE, (bs >= N)], nil)
402+ if ((bF == bF))
401403 then {
402- let bJ = if (if ((bD == unit))
404+ let bK = if (if ((bE == unit))
403405 then true
404- else (M > br))
406+ else (N > bs))
405407 then unit
406408 else {
407- let bK = fraction(aH, P, b)
408- let bL = fraction(aH, S, b)
409- invoke(ay, "incUnclaimed", [J, aD, bK, bL], nil)
409+ let bL = fraction(aI, Q, b)
410+ let bM = fraction(aI, T, b)
411+ invoke(az, "incUnclaimed", [K, aE, bL, bM], nil)
410412 }
411- if ((bJ == bJ))
413+ if ((bK == bK))
412414 then {
413- let bM = {
414- let bh = invoke(ay, "claim", [J], nil)
415- if ($isInstanceOf(bh, "Int"))
416- then bh
417- else throw(($getType(bh) + " couldn't be cast to Int"))
415+ let bN = {
416+ let bi = invoke(az, "claim", [K], nil)
417+ if ($isInstanceOf(bi, "Int"))
418+ then bi
419+ else throw(($getType(bi) + " couldn't be cast to Int"))
418420 }
419- if ((bM == bM))
421+ if ((bN == bN))
420422 then {
421- let bN = (aH + bM)
422- $Tuple2(([ScriptTransfer(aB.caller, aH, fromBase58String(ao[aa])), aF("claim", bF, bN, aB)] ++ bH), bN)
423+ let bO = (aI + bN)
424+ $Tuple2(([ScriptTransfer(aC.caller, aI, fromBase58String(ap[ab])), aG("claim", bG, bO, aC)] ++ bI), bO)
423425 }
424426 else throw("Strict value is not equal to itself.")
425427 }
426428 else throw("Strict value is not equal to itself.")
427429 }
428430 else throw("Strict value is not equal to itself.")
429431 }
430432 else throw("Strict value is not equal to itself.")
431433 }
432434
433435
434436
435-@Callable(aB)
436-func claimRewardREADONLY (bO) = {
437- let bP = aV(bO)
438- let aH = bP._1
439- let bH = bP._2
440- let bQ = valueOrElse(getInteger(ay, V(J, bO)), 0)
441- let bN = (aH + bQ)
442- $Tuple2(nil, bN)
437+@Callable(aC)
438+func claimRewardREADONLY (bP) = {
439+ let bQ = aW(bP)
440+ let aI = bQ._1
441+ let bI = bQ._2
442+ let bR = valueOrElse(getInteger(az, W(K, bP)), 0)
443+ let bO = (aI + bR)
444+ $Tuple2(nil, bO)
443445 }
444446
445447
446448
447-@Callable(aB)
448-func onEmissionForGwxStart () = if ((aB.caller != B))
449+@Callable(aC)
450+func onEmissionForGwxStart () = if ((aC.caller != C))
449451 then throw("permissions denied")
450- else [IntegerEntry(ap(), height)]
452+ else [IntegerEntry(aq(), height)]
451453
452454
453455
454-@Callable(aB)
455-func tradeReward (bw,bx) = {
456- let bR = (size(bw) == size(bx))
457- let bS = valueOrElse(getInteger(aE()), 0)
458- let bT = aB.payments[0]
459- let bU = bT.assetId
460- let bV = bT.amount
461- let bz = [if ((bS >= size(bw)))
456+@Callable(aC)
457+func tradeReward (bx,by) = {
458+ let bS = (size(bx) == size(by))
459+ let bT = valueOrElse(getInteger(aF()), 0)
460+ let bU = aC.payments[0]
461+ let bV = bU.assetId
462+ let bW = bU.amount
463+ let bA = [if ((bT >= size(bx)))
462464 then true
463- else s("Too many recipients"), if (bR)
465+ else t("Too many recipients"), if (bS)
464466 then true
465- else s("Arguments size mismatch"), if ((bU == ai))
467+ else t("Arguments size mismatch"), if ((bV == aj))
466468 then true
467- else s("Wrong asset payment")]
468- if ((bz == bz))
469+ else t("Wrong asset payment")]
470+ if ((bA == bA))
469471 then {
470- let bA = invoke(this, "tradeRewardInternal", [bV, bw, bx, 0], nil)
471- if ((bA == bA))
472- then $Tuple2(nil, bA)
472+ let bB = invoke(this, "tradeRewardInternal", [bW, bx, by, 0], nil)
473+ if ((bB == bB))
474+ then $Tuple2(nil, bB)
473475 else throw("Strict value is not equal to itself.")
474476 }
475477 else throw("Strict value is not equal to itself.")
476478 }
477479
478480
479481
480-@Callable(aB)
482+@Callable(aC)
481483 func claimTradingReward () = {
482- let aD = aB.caller
483- let bW = toString(aD)
484- let bX = aZ(bW)
485- if ((bX > 0))
486- then $Tuple2([ScriptTransfer(aD, bX, ai), IntegerEntry(aC(bW), 0)], bX)
487- else s("nothing to claim")
484+ let aE = aC.caller
485+ let bX = toString(aE)
486+ let bY = ba(bX)
487+ if ((bY > 0))
488+ then $Tuple2([ScriptTransfer(aE, bY, aj), IntegerEntry(aD(bX), 0)], bY)
489+ else t("nothing to claim")
488490 }
489491
490492
491493
492-@Callable(aB)
493-func claimTradingRewardREADONLY (aD) = $Tuple2(nil, aZ(aD))
494+@Callable(aC)
495+func claimTradingRewardREADONLY (aE) = $Tuple2(nil, ba(aE))
494496
495497
496-@Verifier(bY)
497-func bZ () = {
498- let ca = {
499- let aN = aP()
500- if ($isInstanceOf(aN, "ByteVector"))
498+@Verifier(bZ)
499+func ca () = {
500+ let cb = {
501+ let aO = aQ()
502+ if ($isInstanceOf(aO, "ByteVector"))
501503 then {
502- let aT = aN
503- aT
504+ let aU = aO
505+ aU
504506 }
505- else if ($isInstanceOf(aN, "Unit"))
506- then bY.senderPublicKey
507+ else if ($isInstanceOf(aO, "Unit"))
508+ then bZ.senderPublicKey
507509 else throw("Match error")
508510 }
509- sigVerify(bY.bodyBytes, bY.proofs[0], ca)
511+ sigVerify(bZ.bodyBytes, bZ.proofs[0], cb)
510512 }
511513

github/deemru/w8io/026f985 
173.30 ms