tx · 958jHzAm97nACCBdSrVUWCfUuN6RBimQU8Rf2Q2Wjz3k

3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE:  -0.01800000 Waves

2023.04.24 11:38 [2548400] smart account 3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE > SELF 0.00000000 Waves

{ "type": 13, "id": "958jHzAm97nACCBdSrVUWCfUuN6RBimQU8Rf2Q2Wjz3k", "fee": 1800000, "feeAssetId": null, "timestamp": 1682325588365, "version": 2, "chainId": 84, "sender": "3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE", "senderPublicKey": "G349Uq3FTox7dRNLeAfAQeoACvwZ9iEnVSaHcEYn6j8J", "proofs": [ "4WyRW2hyPzf3Bk8r9UnPNeQVMsvQaXLuHEAeenSMuQ3fiNHhjH3ivMfiCCBKYGrv5zsqKo1Xqss26uRRctVqGQtf" ], "script": "base64:BgKPGQgCEgQKAggBEgASAwoBARIAEgASABIDCgEIEgMKAQgSAwoBCBIFCgMBAQESBQoDAQEBEgASAwoBCBIHCgUICAgICBIDCgEIEgAiA1NFUCIFU0NBTEUiBU1VTFQ4Igp6ZXJvQmlnSW50IhRwcm9jZXNzaW5nU3RhZ2VUb3RhbCIVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzIg5nZXROdW1iZXJCeUtleSIDa2V5Ig9nZXROdW1iZXJPckZhaWwiDmdldFN0cmluZ0J5S2V5Ig9nZXRTdHJpbmdPckZhaWwiA2FicyIDdmFsIglhYnNCaWdJbnQiC2tleU1heERlcHRoIg9tYXhEZXB0aERlZmF1bHQiCG1heERlcHRoIhFrZXlGYWN0b3J5QWRkcmVzcyIRZmFjdG9yeUFkZHJlc3NTdHIiD2ZhY3RvcnlDb250cmFjdCISa2V5RW1pc3Npb25BZGRyZXNzIhNrZXlOdW1Ub1VzZXJNYXBwaW5nIgNudW0iFmtleVJlZmVycmFsUHJvZ3JhbU5hbWUiGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0IhNyZWZlcnJhbFByb2dyYW1OYW1lIhdrZXlSZWZlcnJhbE1pbkdXeEFtb3VudCIbcmVmZXJyYWxNaW5HV3hBbW91bnREZWZhdWx0IhRyZWZlcnJhbE1pbkdXeEFtb3VudCIZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZSIdcmVmZXJyZXJSZXdhcmRQZXJtaWxsZURlZmF1bHQiFnJlZmVycmVyUmV3YXJkUGVybWlsbGUiGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUiHXJlZmVycmFsUmV3YXJkUGVybWlsbGVEZWZhdWx0IhZyZWZlcnJhbFJld2FyZFBlcm1pbGxlIgtrZXlSZWZlcnJlciIPcmVmZXJyYWxBZGRyZXNzIhRrZXlVbmNsYWltZWRSZWZlcnJhbCILcHJvZ3JhbU5hbWUiDmNsYWltZXJBZGRyZXNzIhJlbWlzc2lvbkFkZHJlc3NTdHIiEGVtaXNzaW9uQ29udHJhY3QiDUlkeENmZ0Fzc2V0SWQiFklkeENmZ1BhY2VtYWtlckFkZHJlc3MiFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QiDklkeENmZ01heERlcHRoIglrZXlDb25maWciFXJlYWRDb25maWdBcnJheU9yRmFpbCIMZm9ybWF0Q29uZmlnIgx3eEFzc2V0SWRTdHIiGm1hdGNoZXJQYWNlbWFrZXJBZGRyZXNzU3RyIhpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0ciIWYm9vc3RpbmdDb250cmFjdE9yRmFpbCIIY2ZnQXJyYXkiH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQiDWtleVVzZXJzQ291bnQiFmtleVJhdGVQZXJCbG9ja0N1cnJlbnQiFGtleVBvb2xXZWlnaHRWaXJ0dWFsIhRrZXlOZXh0UHJvY2Vzc2VkVXNlciIPa2V5TGF0ZXN0UGVyaW9kIg1rZXlOZXh0UGVyaW9kIhJrZXlQcm9jZXNzaW5nU3RhZ2UiFmtleU5leHRQcm9jZXNzZWRQZXJpb2QiEGtleVVzZXJVbmNsYWltZWQiCXVzZXJJbmRleCIba2V5TmV4dFVubGFpbWVkUGVyaW9kT2ZVc2VyIhxrZXlMYXN0UHJvY2Vzc2VkUGVyaW9kT2ZVc2VyIhJrZXlIZWlnaHRGb3JQZXJpb2QiBnBlcmlvZCIda2V5QXV4RW1pc3Npb25SZXdhcmRGb3JQZXJpb2QiF2tleVRvdGFsQW1vdW50Rm9yUGVyaW9kIhFrZXlMYXN0UGF5b3V0SW5mbyIQUGVyaW9kUGF5b3V0SW5mbyINbWF0Y2hlclJld2FyZCIOZW1pc3Npb25SZXdhcmQiFGtleVBheW91dEhpc3RvcnlJbmZvIhdrZXlUb3RhbFdlaWdodEZvclBlcmlvZCIWa2V5VXNlcktWYWx1ZUZvclBlcmlvZCIWa2V5VXNlckJWYWx1ZUZvclBlcmlvZCIWa2V5VXNlcldlaWdodEZvclBlcmlvZCIba2V5UmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzIh5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwiDEhpc3RvcnlFbnRyeSIEdHlwZSIEdXNlciIGYW1vdW50IgFpIgpoaXN0b3J5S0VZIgtoaXN0b3J5REFUQSITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQiByRtYXRjaDAiAXMiHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0IgttdXN0TWFuYWdlciICcGQiAnBrIg5jYWxjVXNlcldlaWdodCIXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MiD2hlaWdodEZvclBlcmlvZCIFa0xhc3QiBGtLZXkiBGtSYXciC2tVc2VyV2VpZ2h0IgFrIgFiIgF3IgFwIgJwdiIWY2FsY1VzZXJXZWlnaHRGb3JDbGFpbSIQdXNlcldlaWdodE9yVW5pdCIVZ2V0VXNlckluZGV4QnlBZGRyZXNzIgt1c2VyQWRkcmVzcyIKbmV4dFBlcmlvZCIRY29tbW9uQ2xhaW1SZXdhcmQiB3VzZXJJZHgiE3VzZXJVbmNsYWltZWRPcHRpb24iAXUiDmdXeEFtb3VudFN0YXJ0IghyZWZlcnJlciIRYWN0aXZlUmVmZXJyYWxJbnYiD3Byb2Nlc3NpbmdTdGFnZSINY3VycmVudFBlcmlvZCILY3VycmVudFVzZXIiDGxhdGVzdFBlcmlvZCIKdXNlcnNDb3VudCIOdG90YWxXZWlnaHRLZXkiC3RvdGFsV2VpZ2h0Ig0kdDAxMjA4MjEyMTk4Igp1c2VyV2VpZ2h0Igt1c2VyQWN0aW9ucyIOdG90YWxXZWlnaHROZXciEXByb2Nlc3NpbmdBY3Rpb25zIhp1c2VyQW1vdW50TWF0Y2hlckZvclBlcmlvZCIbdXNlckFtb3VudEVtaXNzaW9uRm9yUGVyaW9kIg91c2VyVG90YWxBbW91bnQiC3JlZmVycmFsSW52Ig5yZWZlcnJlclJld2FyZCIOcmVmZXJyYWxSZXdhcmQiEHVuY2xhaW1lZEFjdGlvbnMiB2NvdW50ZXIiBnJlc3VsdCIBQCIHYXNzZXRJZCIGZGVsdGFIIgxlbWlzc2lvblJhdGUiBndlaWdodCIJYXV4QW1vdW50IgJlbSILbWF0Y2hlclBhcnQiCnBheW91dEluZm8iB2FkZHJlc3MiDSR0MDE3NTQwMTc1OTAiB2FjdGlvbnMiC2NoZWNrQW1vdW50IhJhbW91bnRGcm9tRW1pc3Npb24iD2NsYWltZWRSZWZlcnJhbCILdG90YWxBbW91bnQiDSR0MDE4MTYzMTgyMTMiEXJlZmVycmFsVW5jbGFpbWVkIg5nd3hBbW91bnRTdGFydCIPbG9ja1N0YXJ0SGVpZ2h0IhJsb2NrRHVyYXRpb25CbG9ja3MiDWxvY2tFbmRIZWlnaHQiDHNjYWxlOFBhcmFtSyIMc2NhbGU4UGFyYW1CIgx3eExvY2tBbW91bnQiDGxvY2tEdXJhdGlvbiIPbWF4TG9ja0R1cmF0aW9uIgdjb2VmZlg4Igt4MUJpZ0ludFN0ciILeDJCaWdJbnRTdHIiDGFtcEJpZ0ludFN0ciITYVByZWNpc2lvbkJpZ0ludFN0ciIYdGFyZ2V0UHJlY2lzaW9uQmlnSW50U3RyIgZuQ29pbnMiCmFQcmVjaXNpb24iD3RhcmdldFByZWNpc2lvbiICeDEiAngyIgNhbXAiA2FubiIDYXJyIgRjYWxjIgNhY2MiA2N1ciINJHQwMjA4NDYyMDg3MyIBZCIFZFByZXYiBWZvdW5kIgJkcCIFZE5leHQiBWREaWZmIg0kdDAyMTQ3MTIxNTM0IgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiC2NoZWNrQ2FsbGVyIhVjaGVja01hbmFnZXJQdWJsaWNLZXkiAnBtIgVoYXNQTSIHY2hlY2tQTSICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5TwABYQICX18AAWIA6AcAAWMAgMLXLwABZAkAtgIBAAAAAWUAAAABZgABAQFnAQFoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWgAAAEBaQEBaAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAWgJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAWgCDyBpcyBub3QgZGVmaW5lZAEBagEBaAkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQFoAgABAWsBAWgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQFoCQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQFoAg8gaXMgbm90IGRlZmluZWQBAWwBAW0DCQBmAgAABQFtCQEBLQEFAW0FAW0BAW4BAW0DCQC/AgIFAWQFAW0JAL4CAQUBbQUBbQABbwIMJXNfX21heERlcHRoAAFwAB4AAXEJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBbwUBcAEBcgACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MAAXMJAQFrAQkBAXIAAAF0CQERQGV4dHJOYXRpdmUoMTA2MikBBQFzAQF1AAIdJXMlc19fY29uZmlnX19lbWlzc2lvbkFkZHJlc3MBAXYBAXcJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIHbWFwcGluZwkAzAgCAghudW0ydXNlcgkAzAgCCQCkAwEFAXcFA25pbAUBYQABeAkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgILcHJvZ3JhbU5hbWUFA25pbAUBYQABeQIGd3hsb2NrAAF6CQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAXgFAXkAAUEJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICDG1pbkdXeEFtb3VudAUDbmlsBQFhAAFCCQBoAgD0AwUBYwABQwkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFBBQFCAAFECQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAhZyZWZlcnJlclJld2FyZFBlcm1pbGxlBQNuaWwFAWEAAUUAMgABRgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFEBQFFAAFHCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAhZyZWZlcnJhbFJld2FyZFBlcm1pbGxlBQNuaWwFAWEAAUgAMgABSQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFHBQFIAQFKAQFLCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCHJlZmVycmVyCQDMCAIFAXoJAMwIAgUBSwUDbmlsBQFhAQFMAgFNAU4JALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIRdW5jbGFpbWVkUmVmZXJyYWwJAMwIAgUBTQkAzAgCBQFOBQNuaWwFAWEAAU8JAQFrAQkBAXUAAAFQCQERQGV4dHJOYXRpdmUoMTA2MikBBQFPAAFRAAEAAVIAAgABUwADAAFUAAQBAVUAAgolc19fY29uZmlnAQFWAAkAtQkCCQEBawEJAQFVAAUBYQEBVwQBWAFZAVoBcQkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAIFAVgJAMwIAgUBWQkAzAgCBQFaCQDMCAIJAKQDAQUBcQUDbmlsBQFhAQJhYQAEAmFiCQEBVgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFiBQFTAihib29zdGluZyBjb250cmFjdCBhZGRyZXNzIGlzIG5vdCBkZWZpbmVkAQJhYwACKCVzJXNfX2d3eFJld2FyZEVtaXNzaW9uUGFydF9fc3RhcnRIZWlnaHQBAmFkAAIPJXNfX25leHRVc2VyTnVtAQJhZQACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAECYWYAAiAlcyVzX19wb29sV2VpZ2h0X19HV1h2aXJ0dWFsUE9PTAECYWcAAhUlc19fbmV4dFByb2Nlc3NlZFVzZXIBAmFoAAIQJXNfX2xhdGVzdFBlcmlvZAECYWkAAg4lc19fbmV4dFBlcmlvZAECYWoAAhMlc19fcHJvY2Vzc2luZ1N0YWdlAQJhawACFyVzX19uZXh0UHJvY2Vzc2VkUGVyaW9kAQJhbAECYW0JALkJAgkAzAgCAgQlcyVkCQDMCAICDXVzZXJVbmNsYWltZWQJAMwIAgkApAMBBQJhbQUDbmlsBQFhAQJhbgECYW0JALkJAgkAzAgCAhclcyVkX19uZXh0Q2xhaW1lZFBlcmlvZAkAzAgCCQCkAwEFAmFtBQNuaWwFAWEBAmFvAQJhbQkAuQkCCQDMCAICGSVzJWRfX2xhc3RQcm9jZXNzZWRQZXJpb2QJAMwIAgkApAMBBQJhbQUDbmlsBQFhAQJhcAECYXEJALkJAgkAzAgCAholcyVkX19zdGFydEhlaWdodEZvclBlcmlvZAkAzAgCCQCkAwEFAmFxBQNuaWwFAWEBAmFyAQJhcQkAuQkCCQDMCAICFyVzJWRfX2F1eEVtaXNzaW9uUmV3YXJkCQDMCAIJAKQDAQUCYXEFA25pbAUBYQECYXMBAmFxCQC5CQIJAMwIAgIaJXMlZF9fdG90YWxBbW91bnRGb3JQZXJpb2QJAMwIAgkApAMBBQJhcQUDbmlsBQFhAQJhdAACEiVzX19sYXN0UGF5b3V0SW5mbwECYXUDAmFxAmF2AmF3CQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIJAKQDAQUCYXEJAMwIAgkApAMBBQJhdgkAzAgCCQCkAwEFAmF3BQNuaWwFAWEBAmF4AQJhcQkAuQkCCQDMCAICGCVzJXMlZF9fcGF5b3V0c19faGlzdG9yeQkAzAgCCQCkAwEFAmFxBQNuaWwFAWEBAmF5AQJhcQkAuQkCCQDMCAICGiVzJWRfX3RvdGFsV2VpZ2h0Rm9yUGVyaW9kCQDMCAIJAKQDAQUCYXEFA25pbAUBYQECYXoCAmFxAmFtCQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgkApAMBBQJhbQkAzAgCAgFrCQDMCAIJAKQDAQUCYXEFA25pbAUBYQECYUECAmFxAmFtCQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgkApAMBBQJhbQkAzAgCAgFiCQDMCAIJAKQDAQUCYXEFA25pbAUBYQECYUICAmFxAmFtCQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgkApAMBBQJhbQkAzAgCAgZ3ZWlnaHQJAMwIAgkApAMBBQJhcQUDbmlsBQFhAQJhQwAJALkJAgkAzAgCAgQlcyVzCQDMCAICBmNvbmZpZwkAzAgCAhhyZWZlcnJhbHNDb250cmFjdEFkZHJlc3MFA25pbAUBYQACYUQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFrAQkBAmFDAAECYUUEAmFGAmFHAmFIAmFJBAJhSgkAuQkCCQDMCAICESVzJXMlcyVzX19oaXN0b3J5CQDMCAIFAmFGCQDMCAIFAmFHCQDMCAIJANgEAQgFAmFJDXRyYW5zYWN0aW9uSWQFA25pbAUBYQQCYUsJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUCYUgFA25pbAUBYQkBC1N0cmluZ0VudHJ5AgUCYUoFAmFLAQJhTAACFCVzX19tYW5hZ2VyUHVibGljS2V5AQJhTQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQECYU4ABAJhTwkAoggBCQECYUwAAwkAAQIFAmFPAgZTdHJpbmcEAmFQBQJhTwkA2QQBBQJhUAMJAAECBQJhTwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhUQAEAmFPCQCiCAEJAQJhTQADCQABAgUCYU8CBlN0cmluZwQCYVAFAmFPCQDZBAEFAmFQAwkAAQIFAmFPAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmFSAQJhSQQCYVMJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAQCYU8JAQJhTgADCQABAgUCYU8CCkJ5dGVWZWN0b3IEAmFUBQJhTwMJAAACCAUCYUkPY2FsbGVyUHVibGljS2V5BQJhVAYFAmFTAwkAAQIFAmFPAgRVbml0AwkAAAIIBQJhSQZjYWxsZXIFBHRoaXMGBQJhUwkAAgECC01hdGNoIGVycm9yAQJhVQQCYVYCYVcCYXECYW0EAmFYCQECYW8BBQJhbQQCYVkJAQJhegIFAmFxBQJhbQQCYVoJAJoIAgUCYVYFAmFZBAJiYQkBAmFCAgUCYXEFAmFtAwkBCWlzRGVmaW5lZAEFAmFaBAJiYgkBBXZhbHVlAQUCYVoEAmJjCQEFdmFsdWUBCQCaCAIFAmFWCQECYUECBQJhcQUCYW0EAmJkCQBkAgkAaAIFAmJiBQJhVwUCYmMDCQBmAgUCYmQAAAkAlAoCCQBpAgUCYmQFAWIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmFYBQJhcQkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYmEFAmJkBQNuaWwJAJQKAgAABQNuaWwEAmJlCQCaCAIFBHRoaXMFAmFYAwMJAQlpc0RlZmluZWQBBQJiZQkAZwIFAmFxCQEFdmFsdWUBBQJiZQcEAmJmCQEFdmFsdWUBBQJiZQQCYmIJAQV2YWx1ZQEJAJoIAgUCYVYJAQJhegIFAmJmBQJhbQQCYmMJAQV2YWx1ZQEJAJoIAgUCYVYJAQJhQQIFAmJmBQJhbQQCYmQJAGQCCQBoAgUCYmIFAmFXBQJiYwMJAGYCBQJiZAAACQCUCgIJAGkCBQJiZAUBYgkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYmEFAmJkBQNuaWwJAJQKAgAABQNuaWwJAJQKAgAABQNuaWwBAmJnBAJhVgJhVwJhcQJhbQQCYmEJAQJhQgIFAmFxBQJhbQQCYmgJAJ8IAQUCYmEEAmFPBQJiaAMJAAECBQJhTwIEVW5pdAAAAwkAAQIFAmFPAgNJbnQEAmJkBQJhTwkAaQIFAmJkBQFiCQACAQILTWF0Y2ggZXJyb3IBAmJpAgFaAmJqBAFoCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIdXNlcjJudW0JAMwIAgUCYmoFA25pbAUBYQkBDXBhcnNlSW50VmFsdWUBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBB0FkZHJlc3MBCQDZBAEFAVoFAWgJAKwCAgkArAICCQCsAgICDVVzZXIgYWRkcmVzcyAFAmJqAi0gaXMgbm90IGZvdW5kIGluIGJvb3N0aW5nIGNvbnRyYWN0IGRhdGEsIGtleT0FAWgBAmJrAAkBAWcBCQECYWkAAQJibAECYmoEAmFiCQEBVgAEAmJtCQECYmkCCQCRAwIFAmFiBQFTBQJiagQCYm4JAJ8IAQkBAmFsAQUCYm0EAmFPBQJibgMJAAECBQJhTwIEVW5pdAkAlAoCAAAFA25pbAMJAAECBQJhTwIDSW50BAJibwUCYU8JAJQKAgUCYm8JAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbAEFAmJtAAAFA25pbAkAAgECC01hdGNoIGVycm9yEAJhSQEWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQICYmoCYnAEAmJxCQCdCAIFAmFECQEBSgEFAmJqBAJicgMJAAACBQJicQUEdW5pdAUEdW5pdAkA/AcEBQJhRAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCBQF6CQDMCAIFAmJqCQDMCAIJAGcCBQJicAUBQwUDbmlsBQNuaWwDCQAAAgUCYnIFAmJyCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEOZmluYWxpemVIZWxwZXIABAJicwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYWoABQFlBAJidAkBAWcBCQECYWsABAJidQkBAWcBCQECYWcABAJidgkBAWcBCQECYWgABAJidwkBC3ZhbHVlT3JFbHNlAgkAmggCCQECYWEACQECYWQAAAAEAmJ4CQECYXkBBQJidAQCYnkJAQFnAQkBAmF5AQUCYnQEAmFXCQEBZwEJAQJhcAEFAmJ0AwkAZgIFAmJ0BQJidgkAlAoCBQNuaWwHAwkAAAIFAmJzBQFlBAJiegkBAmFVBAkBAmFhAAUCYVcFAmJ0BQJidQQCYkEIBQJiegJfMQQCYkIIBQJiegJfMgQCYkMJAGQCBQJieQUCYkEEAmJEAwkAZgIJAGUCBQJidwABBQJidQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAAkAZAIFAmJ1AAEFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFqAAUBZgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFnAAAABQNuaWwJAJQKAgkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJ4BQJiQwUDbmlsBQJiRAUCYkIGAwkAAAIFAmJzBQFmBAJiQQkBAmJnBAkBAmFhAAUCYVcFAmJ0BQJidQQCYkUJAGsDCQEBZwEJAQJhcwEFAmJ0BQJiQQUCYnkEAmJGCQBrAwkBAWcBCQECYXIBBQJidAUCYkEFAmJ5BAJiRwkAZAIFAmJGBQJiRQQCYm4JAJ8IAQkBAmFsAQUCYnUEAmJqCQERQGV4dHJOYXRpdmUoMTA1MykCCQECYWEACQEBdgEFAmJ1BAJicQkAnQgCBQJhRAkBAUoBBQJiagQCYnIDCQAAAgUCYnEFBHVuaXQFBHVuaXQJAPwHBAUCYUQCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgUBegkAzAgCBQJiagkAzAgCCQBnAgUCYkEFAUMFA25pbAUDbmlsAwkAAAIFAmJyBQJicgQCYkgDAwkAAAIFAmJxBQR1bml0BgkAZgIFAUMFAmJBBQR1bml0BAJiSQkAawMFAmJHBQFGBQFiBAJiSgkAawMFAmJHBQFJBQFiCQD8BwQFAmFEAgxpbmNVbmNsYWltZWQJAMwIAgUBegkAzAgCBQJiagkAzAgCBQJiSQkAzAgCBQJiSgUDbmlsBQNuaWwDCQAAAgUCYkgFAmJIBAJiSwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFsAQUCYnUJAGQCCQELdmFsdWVPckVsc2UCBQJibgAABQJiRwUDbmlsBAJiRAMJAGYCCQBlAgUCYncAAQUCYnUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZwAJAGQCBQJidQABBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhawAJAGQCBQJidAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWcAAAAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFqAAUDbmlsCQCUCgIJAM4IAgUCYksFAmJEBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECGGludmFsaWQgcHJvY2Vzc2luZyBzdGFnZQJhSQEPZmluYWxpemVXcmFwcGVyAQJiTAQCYk0KAAJiTgkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwDCQABAgUCYk4CB0Jvb2xlYW4FAmJOCQACAQkArAICCQADAQUCYk4CHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUCYk0FAmJNAwkBASEBBQJiTQMJAAACBQJiTAUBcQkAAgECEk5vdGhpbmcgdG8gcHJvY2VzcwkAlAoCBQNuaWwFBHVuaXQDCQBmAgUCYkwAAAkAlAoCBQNuaWwJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIJAGUCBQJiTAABBQNuaWwFA25pbAkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBHXByb2Nlc3NQZW5kaW5nUGVyaW9kc0FuZFVzZXJzAAkAlAoCBQNuaWwJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIFAXEFA25pbAUDbmlsAmFJAQdkZXBvc2l0AAQCYWIJAQFWAAMJAQIhPQIIBQJhSQZjYWxsZXIJAQdBZGRyZXNzAQkA2QQBCQCRAwIFAmFiBQFSCQACAQIUV3JvbmcgY2FsbGVyIGFkZHJlc3MEAmJPCQEFdmFsdWUBCAkBBXZhbHVlAQkAkQMCCAUCYUkIcGF5bWVudHMAAAdhc3NldElkAwkBAiE9AgUCYk8JANkEAQkAkQMCBQJhYgUBUQkAAgECE1dyb25nIHBheW1lbnQgYXNzZXQEAmFxCQECYmsABAJiUAkAZQIFBmhlaWdodAkBAWkBCQECYWMABAJiUQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFAVAJAQJhZQAJAKwCAgkArAICAhxtYW5kYXRvcnkgZW1pc3Npb25fY29udHJhY3QuCQECYWUAAg8gaXMgbm90IGRlZmluZWQEAmJSCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUBdAkBAmFmAAkArAICCQCsAgICG21hbmRhdG9yeSBmYWN0b3J5X2NvbnRyYWN0LgkBAmFmAAIPIGlzIG5vdCBkZWZpbmVkBAJiUwkAawMJAGgCBQJiUAUCYlIFAmJRBQFjBAJiVAkA/AcEBQFQAgRlbWl0CQDMCAIFAmJTBQNuaWwFA25pbAMJAAACBQJiVAUCYlQEAmJVCAkBBXZhbHVlAQkAkQMCCAUCYUkIcGF5bWVudHMAAAZhbW91bnQEAmJWCQECYXUDBQJhcQUCYlUFAmJTCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWgABQJhcQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFwAQUCYXEFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFyAQUCYXEFAmJTCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWMABQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcwEFAmFxBQJiVQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFpAAkAZAIFAmFxAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF0AAUCYlYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmF4AQUCYXEFAmJWBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBC2NsYWltUmV3YXJkAAQCYWIJAQFWAAQCYlcJAKUIAQgFAmFJBmNhbGxlcgQCYlgJAQJibAEFAmJXBAJhSAgFAmJYAl8xBAJiWQgFAmJYAl8yBAJiWgMJAGYCBQJhSAAABgkAAgECEE5vdGhpbmcgdG8gY2xhaW0DCQAAAgUCYloFAmJaBAJjYQAABAJjYgoAAmJOCQD8BwQFAmFEAgVjbGFpbQkAzAgCBQF6BQNuaWwFA25pbAMJAAECBQJiTgIDSW50BQJiTgkAAgEJAKwCAgkAAwEFAmJOAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEAmNjCQBkAgUCYUgFAmNiCQCUCgIJAM4IAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUCYUkGY2FsbGVyBQJjYwkA2QQBCQCRAwIFAmFiBQFRCQDMCAIJAQJhRQQCBWNsYWltBQJiVwUCYUgFAmFJBQNuaWwFAmJZCQDMCAIFAmNjCQDMCAIFAmNhBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYUkBE2NsYWltUmV3YXJkUkVBRE9OTFkBAmJXBAJjZAkBAmJsAQUCYlcEAmFICAUCY2QCXzEEAmJZCAUCY2QCXzIEAmNlCQELdmFsdWVPckVsc2UCCQCaCAIFAmFECQEBTAIFAXoFAmJXAAAEAmNjCQBkAgUCYUgFAmNlCQCUCgIFA25pbAUCY2MCYUkBHWxhdGVzdEZpbmFsaXplZFBlcmlvZFJFQURPTkxZAQJiVwkAlAoCBQNuaWwJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBAmFoAAD///////////8BAmFJASFsYXRlc3RGaW5hbGl6ZWRQZXJpb2RJbmZvUkVBRE9OTFkBAmJXCQCUCgIFA25pbAkBAWoBCQECYXQAAmFJARVjYWxjR3d4UGFyYW1zUkVBRE9OTFkDAmNmAmNnAmNoBAJjaQkAZAIFAmNnBQJjaAQCY2oJAQEtAQkAawMFAmNmBQFiBQJjaAQCY2sJAGgCCQBrAwUCY2YFAWIFAmNoBQJjaQkAlAoCBQNuaWwJAMwIAgUCY2oJAMwIAgUCY2sJAMwIAgkBAmJrAAUDbmlsAmFJARpjYWxjR3d4QW1vdW50U3RhcnRSRUFET05MWQMCY2wCY20CY24EAmNvCQBrAwUCY20FAWMFAmNuBAJicAkAawMFAmNsBQJjbwUBYwkAlAoCBQNuaWwJAMwIAgUCYnAFA25pbAJhSQEVb25FbWlzc2lvbkZvckd3eFN0YXJ0AAMJAQIhPQIIBQJhSQZjYWxsZXIFAXQJAAIBAhJwZXJtaXNzaW9ucyBkZW5pZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhYwAFBmhlaWdodAUDbmlsAmFJASNsYXRlc3RQZXJpb2RFbWlzc2lvblJld2FyZHNSRUFET05MWQECYlcEAmFxCQECYmsACQCUCgIFA25pbAkAzAgCCQEBZwEJAQJhcgEFAmFxBQNuaWwCYUkBBWNhbGNEBQJjcAJjcQJjcgJjcwJjdAQCY3UJALYCAQACBAJjdgkApwMBBQJjcwQCY3cJAKcDAQUCY3QEAmN4CQCnAwEFAmNwBAJjeQkApwMBBQJjcQQCY3oJALkCAgkApwMBBQJjcgUCY3YEAmFQCQC3AgIFAmN4BQJjeQMJAAACBQJhUAUBZAkAlAoCBQNuaWwJAKYDAQUBZAQCY0EJALkCAgUCY3oFAmN1BAJjQgkAzAgCAAAJAMwIAgABCQDMCAIAAgkAzAgCAAMJAMwIAgAECQDMCAIABQkAzAgCAAYFA25pbAoBAmNDAgJjRAJjRQQCY0YFAmNEBAJjRwgFAmNGAl8xBAJjSAgFAmNGAl8yBAJjSQgFAmNGAl8zAwkBAiE9AgUCY0kFBHVuaXQFAmNEBAJjSgkAugICCQC5AgIJALkCAgUCY0cFAmNHBQJjRwkAuQICCQC5AgIJALkCAgUCY3gFAmN5BQJjdQUCY3UEAmNLCQC6AgIJALkCAgkAtwICCQC6AgIJALkCAgUCY0EFAmFQBQJjdgkAuQICBQJjSgUCY3UFAmNHCQC3AgIJALoCAgkAuQICCQC4AgIFAmNBBQJjdgUCY0cFAmN2CQC5AgIJALcCAgUCY3UJALYCAQABBQJjSgQCY0wJAQFuAQkAuAICBQJjSwkBBXZhbHVlAQUCY0cDCQDAAgIFAmN3BQJjTAkAlQoDBQJjSwUCY0cFAmNFCQCVCgMFAmNLBQJjRwUEdW5pdAQCY00KAAJjTgUCY0IKAAJjTwkAkAMBBQJjTgoAAmNQCQCVCgMFAmFQBQR1bml0BQR1bml0CgECY1ECAmNSAmNTAwkAZwIFAmNTBQJjTwUCY1IJAQJjQwIFAmNSCQCRAwIFAmNOBQJjUwoBAmNUAgJjUgJjUwMJAGcCBQJjUwUCY08FAmNSCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNwkBAmNUAgkBAmNRAgkBAmNRAgkBAmNRAgkBAmNRAgkBAmNRAgkBAmNRAgkBAmNRAgUCY1AAAAABAAIAAwAEAAUABgAHBAJjSwgFAmNNAl8xBAJjSAgFAmNNAl8yBAJjSQgFAmNNAl8zAwkBAiE9AgUCY0kFBHVuaXQJAJQKAgUDbmlsCQCmAwEFAmNLBAJjTAkBAW4BCQC4AgIFAmNLCQEFdmFsdWUBBQJjSAkAAgEJAKwCAgIdRCBjYWxjdWxhdGlvbiBlcnJvciwgZERpZmYgPSAJAKYDAQUCY0wCYUkBCnNldE1hbmFnZXIBAmNVBAJjVgkBAmFSAQUCYUkDCQAAAgUCY1YFAmNWBAJjVwkA2QQBBQJjVQMJAAACBQJjVwUCY1cJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAmFNAAUCY1UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhSQEOY29uZmlybU1hbmFnZXIABAJjWAkBAmFRAAQCY1kDCQEJaXNEZWZpbmVkAQUCY1gGCQACAQISTm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNZBQJjWQQCY1oDCQAAAggFAmFJD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCY1gGCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmNaBQJjWgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUwACQDYBAEJAQV2YWx1ZQEFAmNYCQDMCAIJAQtEZWxldGVFbnRyeQEJAQJhTQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECZGEBAmRiAAQCZGMEAmFPCQECYU4AAwkAAQIFAmFPAgpCeXRlVmVjdG9yBAJhVAUCYU8FAmFUAwkAAQIFAmFPAgRVbml0CAUCZGEPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmRhCWJvZHlCeXRlcwkAkQMCCAUCZGEGcHJvb2ZzAAAFAmRj6gXGCA==", "height": 2548400, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 29mtBhKRAQh5dMH7TYqryWqcsiUQQSZiwH2q7VG5JL8L Next: 121KLAoDzyHyfc45Y69acyfxP1nJKnQE1VHsU4juyXwD Diff:
OldNewDifferences
1313
1414 let f = 1
1515
16-let g = "WAVES"
17-
18-func h (i) = valueOrElse(getInteger(this, i), 0)
16+func g (h) = valueOrElse(getInteger(this, h), 0)
1917
2018
21-func j (i) = valueOrErrorMessage(getInteger(this, i), (("mandatory this." + i) + " is not defined"))
19+func i (h) = valueOrErrorMessage(getInteger(this, h), (("mandatory this." + h) + " is not defined"))
2220
2321
24-func k (i) = valueOrElse(getString(this, i), "")
22+func j (h) = valueOrElse(getString(this, h), "")
2523
2624
27-func l (i) = valueOrErrorMessage(getString(this, i), (("mandatory this." + i) + " is not defined"))
25+func k (h) = valueOrErrorMessage(getString(this, h), (("mandatory this." + h) + " is not defined"))
2826
2927
30-func m (n) = if ((n == g))
31- then unit
32- else fromBase58String(n)
28+func l (m) = if ((0 > m))
29+ then -(m)
30+ else m
3331
3432
35-func o (p) = makeString(["gwx_reward.ride:", p], " ")
33+func n (m) = if ((d > m))
34+ then -(m)
35+ else m
3636
3737
38-func q (p) = throw(o(p))
38+let o = "%s__maxDepth"
39+
40+let p = 30
41+
42+let q = valueOrElse(getInteger(this, o), p)
43+
44+func r () = "%s%s__config__factoryAddress"
3945
4046
41-func r (s) = if ((0 > s))
42- then -(s)
43- else s
47+let s = k(r())
48+
49+let t = addressFromStringValue(s)
50+
51+func u () = "%s%s__config__emissionAddress"
4452
4553
46-func t (s) = if ((d > s))
47- then -(s)
48- else s
54+func v (w) = makeString(["%s%s%s", "mapping", "num2user", toString(w)], a)
4955
5056
51-let u = "%s__maxDepth"
57+let x = makeString(["%s%s", "referral", "programName"], a)
5258
53-let v = 30
59+let y = "wxlock"
5460
55-let w = valueOrElse(getInteger(this, u), v)
61+let z = valueOrElse(getString(this, x), y)
5662
57-func x () = "%s%s__config__factoryAddress"
63+let A = makeString(["%s%s", "referral", "minGWxAmount"], a)
64+
65+let B = (500 * c)
66+
67+let C = valueOrElse(getInteger(this, A), B)
68+
69+let D = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
70+
71+let E = 50
72+
73+let F = valueOrElse(getInteger(this, D), E)
74+
75+let G = makeString(["%s%s", "referral", "referralRewardPermille"], a)
76+
77+let H = 50
78+
79+let I = valueOrElse(getInteger(this, G), H)
80+
81+func J (K) = makeString(["%s%s%s", "referrer", z, K], a)
5882
5983
60-let y = l(x())
61-
62-let z = addressFromStringValue(y)
63-
64-func A () = "%s%s__config__emissionAddress"
84+func L (M,N) = makeString(["%s%s%s", "unclaimedReferral", M, N], a)
6585
6686
67-func B () = makeString(["%s", "votingEmissionContract"], a)
87+let O = k(u())
88+
89+let P = addressFromStringValue(O)
90+
91+let Q = 1
92+
93+let R = 2
94+
95+let S = 3
96+
97+let T = 4
98+
99+func U () = "%s__config"
68100
69101
70-let C = addressFromStringValue(getStringValue(z, B()))
71-
72-func D (E) = makeString(["%s%s%s", "mapping", "num2user", toString(E)], a)
102+func V () = split(k(U()), a)
73103
74104
75-let F = makeString(["%s%s", "referral", "programName"], a)
76-
77-let G = "wxlock"
78-
79-let H = valueOrElse(getString(this, F), G)
80-
81-let I = makeString(["%s%s", "referral", "minGWxAmount"], a)
82-
83-let J = (500 * c)
84-
85-let K = valueOrElse(getInteger(this, I), J)
86-
87-let L = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
88-
89-let M = 50
90-
91-let N = valueOrElse(getInteger(this, L), M)
92-
93-let O = makeString(["%s%s", "referral", "referralRewardPermille"], a)
94-
95-let P = 50
96-
97-let Q = valueOrElse(getInteger(this, O), P)
98-
99-func R (S) = makeString(["%s%s%s", "referrer", H, S], a)
105+func W (X,Y,Z,q) = makeString(["%s%s%s%d", X, Y, Z, toString(q)], a)
100106
101107
102-func T (U,V) = makeString(["%s%s%s", "unclaimedReferral", U, V], a)
103-
104-
105-let W = l(A())
106-
107-let X = addressFromStringValue(W)
108-
109-let Y = 1
110-
111-let Z = 2
112-
113-let aa = 3
114-
115-let ab = 4
116-
117-func ac () = "%s__config"
118-
119-
120-func ad () = addressFromStringValue(valueOrErrorMessage(getString(this, A()), (("mandatory this." + A()) + " is not defined")))
121-
122-
123-let ae = ad()
124-
125-let af = split(value(getString(ae, ac())), a)[1]
126-
127-let ag = fromBase58String(af)
128-
129-func ah () = split(l(ac()), a)
130-
131-
132-func ai (af,aj,ak,w) = makeString(["%s%s%s%d", af, aj, ak, toString(w)], a)
133-
134-
135-func al () = {
136- let am = ah()
137- valueOrErrorMessage(addressFromString(am[aa]), "boosting contract address is not defined")
108+func aa () = {
109+ let ab = V()
110+ valueOrErrorMessage(addressFromString(ab[S]), "boosting contract address is not defined")
138111 }
139112
140113
141-func an () = "%s%s__gwxRewardEmissionPart__startHeight"
114+func ac () = "%s%s__gwxRewardEmissionPart__startHeight"
142115
143116
144-func ao () = "%s__nextUserNum"
117+func ad () = "%s__nextUserNum"
145118
146119
147-func ap () = "%s%s__ratePerBlock__current"
120+func ae () = "%s%s__ratePerBlock__current"
148121
149122
150-func aq () = "%s%s__gwxHoldersReward__current"
123+func af () = "%s%s__poolWeight__GWXvirtualPOOL"
151124
152125
153-func ar () = "%s%s__gwxHoldersReward__next"
126+func ag () = "%s__nextProcessedUser"
154127
155128
156-func as () = "%s%s__poolWeight__GWXvirtualPOOL"
129+func ah () = "%s__latestPeriod"
157130
158131
159-func at () = "%s__nextProcessedUser"
132+func ai () = "%s__nextPeriod"
160133
161134
162-func au () = "%s__latestPeriod"
135+func aj () = "%s__processingStage"
163136
164137
165-func av () = "%s__nextPeriod"
138+func ak () = "%s__nextProcessedPeriod"
166139
167140
168-func aw () = "%s__processingStage"
141+func al (am) = makeString(["%s%d", "userUnclaimed", toString(am)], a)
169142
170143
171-func ax () = "%s__nextProcessedPeriod"
144+func an (am) = makeString(["%s%d__nextClaimedPeriod", toString(am)], a)
172145
173146
174-func ay (az) = makeString(["%s%d", "userUnclaimed", toString(az)], a)
147+func ao (am) = makeString(["%s%d__lastProcessedPeriod", toString(am)], a)
175148
176149
177-func aA (az) = makeString(["%s%d__nextClaimedPeriod", toString(az)], a)
150+func ap (aq) = makeString(["%s%d__startHeightForPeriod", toString(aq)], a)
178151
179152
180-func aB (az) = makeString(["%s%d__lastProcessedPeriod", toString(az)], a)
153+func ar (aq) = makeString(["%s%d__auxEmissionReward", toString(aq)], a)
181154
182155
183-func aC (aD) = makeString(["%s%d__startHeightForPeriod", toString(aD)], a)
156+func as (aq) = makeString(["%s%d__totalAmountForPeriod", toString(aq)], a)
184157
185158
186-func aE (aD) = makeString(["%s%d__auxEmissionReward", toString(aD)], a)
159+func at () = "%s__lastPayoutInfo"
187160
188161
189-func aF (aD) = makeString(["%s%d__totalAmountForPeriod", toString(aD)], a)
162+func au (aq,av,aw) = makeString(["%d%d%d", toString(aq), toString(av), toString(aw)], a)
190163
191164
192-func aG () = "%s__lastPayoutInfo"
165+func ax (aq) = makeString(["%s%s%d__payouts__history", toString(aq)], a)
193166
194167
195-func aH (aD,aI,aJ) = makeString(["%d%d%d", toString(aD), toString(aI), toString(aJ)], a)
168+func ay (aq) = makeString(["%s%d__totalWeightForPeriod", toString(aq)], a)
196169
197170
198-func aK (aD) = makeString(["%s%s%d__payouts__history", toString(aD)], a)
171+func az (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "k", toString(aq)], a)
199172
200173
201-func aL (aD) = makeString(["%s%d__totalWeightForPeriod", toString(aD)], a)
174+func aA (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "b", toString(aq)], a)
202175
203176
204-func aM (aD,az) = makeString(["%s%d%s%d__paramByPeriod", toString(az), "k", toString(aD)], a)
177+func aB (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "weight", toString(aq)], a)
205178
206179
207-func aN (aD,az) = makeString(["%s%d%s%d__paramByPeriod", toString(az), "b", toString(aD)], a)
180+func aC () = makeString(["%s%s", "config", "referralsContractAddress"], a)
208181
209182
210-func aO (aD,az) = makeString(["%s%d%s%d__paramByPeriod", toString(az), "weight", toString(aD)], a)
183+let aD = addressFromStringValue(k(aC()))
211184
212-
213-func aP () = makeString(["%s%s", "config", "referralsContractAddress"], a)
214-
215-
216-let aQ = addressFromStringValue(l(aP()))
217-
218-func aR (aS,aT) = makeString(["%s%s%s%s", "tradingReward", "history", aS, toBase58String(aT.transactionId)], a)
219-
220-
221-func aU () = makeString(["%s", "maxRecipients"], a)
222-
223-
224-func aV (aW,aS,aX,aT) = {
225- let aY = makeString(["%s%s%s%s__history", aW, aS, toBase58String(aT.transactionId)], a)
226- let aZ = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aX)], a)
227- StringEntry(aY, aZ)
185+func aE (aF,aG,aH,aI) = {
186+ let aJ = makeString(["%s%s%s%s__history", aF, aG, toBase58String(aI.transactionId)], a)
187+ let aK = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aH)], a)
188+ StringEntry(aJ, aK)
228189 }
229190
230191
231-func ba () = "%s__managerPublicKey"
192+func aL () = "%s__managerPublicKey"
232193
233194
234-func bb () = "%s__pendingManagerPublicKey"
195+func aM () = "%s__pendingManagerPublicKey"
235196
236197
237-func bc () = {
238- let bd = getString(ba())
239- if ($isInstanceOf(bd, "String"))
198+func aN () = {
199+ let aO = getString(aL())
200+ if ($isInstanceOf(aO, "String"))
240201 then {
241- let be = bd
242- fromBase58String(be)
202+ let aP = aO
203+ fromBase58String(aP)
243204 }
244- else if ($isInstanceOf(bd, "Unit"))
205+ else if ($isInstanceOf(aO, "Unit"))
245206 then unit
246207 else throw("Match error")
247208 }
248209
249210
250-func bf () = {
251- let bd = getString(bb())
252- if ($isInstanceOf(bd, "String"))
211+func aQ () = {
212+ let aO = getString(aM())
213+ if ($isInstanceOf(aO, "String"))
253214 then {
254- let be = bd
255- fromBase58String(be)
215+ let aP = aO
216+ fromBase58String(aP)
256217 }
257- else if ($isInstanceOf(bd, "Unit"))
218+ else if ($isInstanceOf(aO, "Unit"))
258219 then unit
259220 else throw("Match error")
260221 }
261222
262223
263-func bg (aT) = {
264- let bh = throw("Permission denied")
265- let bd = bc()
266- if ($isInstanceOf(bd, "ByteVector"))
224+func aR (aI) = {
225+ let aS = throw("Permission denied")
226+ let aO = aN()
227+ if ($isInstanceOf(aO, "ByteVector"))
267228 then {
268- let bi = bd
269- if ((aT.callerPublicKey == bi))
229+ let aT = aO
230+ if ((aI.callerPublicKey == aT))
270231 then true
271- else bh
232+ else aS
272233 }
273- else if ($isInstanceOf(bd, "Unit"))
274- then if ((aT.caller == this))
234+ else if ($isInstanceOf(aO, "Unit"))
235+ then if ((aI.caller == this))
275236 then true
276- else bh
237+ else aS
277238 else throw("Match error")
278239 }
279240
280241
281-func bj (bk,bl,aD,az) = {
282- let bm = aB(az)
283- let bn = aM(aD, az)
284- let bo = getInteger(bk, bn)
285- let bp = aO(aD, az)
286- if (isDefined(bo))
242+func aU (aV,aW,aq,am) = {
243+ let aX = ao(am)
244+ let aY = az(aq, am)
245+ let aZ = getInteger(aV, aY)
246+ let ba = aB(aq, am)
247+ if (isDefined(aZ))
287248 then {
288- let bq = value(bo)
289- let br = value(getInteger(bk, aN(aD, az)))
290- let bs = ((bq * bl) + br)
291- if ((bs > 0))
292- then $Tuple2((bs / b), [IntegerEntry(bm, aD), IntegerEntry(bp, bs)])
249+ let bb = value(aZ)
250+ let bc = value(getInteger(aV, aA(aq, am)))
251+ let bd = ((bb * aW) + bc)
252+ if ((bd > 0))
253+ then $Tuple2((bd / b), [IntegerEntry(aX, aq), IntegerEntry(ba, bd)])
293254 else $Tuple2(0, nil)
294255 }
295256 else {
296- let bt = getInteger(this, bm)
297- if (if (isDefined(bt))
298- then (aD >= value(bt))
257+ let be = getInteger(this, aX)
258+ if (if (isDefined(be))
259+ then (aq >= value(be))
299260 else false)
300261 then {
301- let bu = value(bt)
302- let bq = value(getInteger(bk, aM(bu, az)))
303- let br = value(getInteger(bk, aN(bu, az)))
304- let bs = ((bq * bl) + br)
305- if ((bs > 0))
306- then $Tuple2((bs / b), [IntegerEntry(bp, bs)])
262+ let bf = value(be)
263+ let bb = value(getInteger(aV, az(bf, am)))
264+ let bc = value(getInteger(aV, aA(bf, am)))
265+ let bd = ((bb * aW) + bc)
266+ if ((bd > 0))
267+ then $Tuple2((bd / b), [IntegerEntry(ba, bd)])
307268 else $Tuple2(0, nil)
308269 }
309270 else $Tuple2(0, nil)
311272 }
312273
313274
314-func bv (bk,bl,aD,az) = {
315- let bp = aO(aD, az)
316- let bw = getInteger(bp)
317- let bd = bw
318- if ($isInstanceOf(bd, "Unit"))
275+func bg (aV,aW,aq,am) = {
276+ let ba = aB(aq, am)
277+ let bh = getInteger(ba)
278+ let aO = bh
279+ if ($isInstanceOf(aO, "Unit"))
319280 then 0
320- else if ($isInstanceOf(bd, "Int"))
281+ else if ($isInstanceOf(aO, "Int"))
321282 then {
322- let bs = bd
323- (bs / b)
283+ let bd = aO
284+ (bd / b)
324285 }
325286 else throw("Match error")
326287 }
327288
328289
329-func bx (ak,by) = {
330- let i = makeString(["%s%s%s", "mapping", "user2num", by], a)
331- parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(ak)), i), ((("User address " + by) + " is not found in boosting contract data, key=") + i)))
290+func bi (Z,bj) = {
291+ let h = makeString(["%s%s%s", "mapping", "user2num", bj], a)
292+ parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(Z)), h), ((("User address " + bj) + " is not found in boosting contract data, key=") + h)))
332293 }
333294
334295
335-func bz () = h(av())
296+func bk () = g(ai())
336297
337298
338-func bA (by) = {
339- let am = ah()
340- let bB = bx(am[aa], by)
341- let bC = getInteger(ay(bB))
342- let bd = bC
343- if ($isInstanceOf(bd, "Unit"))
299+func bl (bj) = {
300+ let ab = V()
301+ let bm = bi(ab[S], bj)
302+ let bn = getInteger(al(bm))
303+ let aO = bn
304+ if ($isInstanceOf(aO, "Unit"))
344305 then $Tuple2(0, nil)
345- else if ($isInstanceOf(bd, "Int"))
306+ else if ($isInstanceOf(aO, "Int"))
346307 then {
347- let bD = bd
348- $Tuple2(bD, [IntegerEntry(ay(bB), 0)])
308+ let bo = aO
309+ $Tuple2(bo, [IntegerEntry(al(bm), 0)])
349310 }
350311 else throw("Match error")
351312 }
352313
353314
354-@Callable(aT)
355-func tradeRewardInternal (bE,bF,bG,bH) = if ((bH == size(bF)))
356- then nil
357- else {
358- let bI = [if ((aT.caller == this))
359- then true
360- else q("Permission denied"), if ((bE >= bG[bH]))
361- then true
362- else q("insufficient payment assetId")]
363- if ((bI == bI))
364- then {
365- let bJ = invoke(this, "tradeRewardInternal", [(bE - bG[bH]), bF, bG, (bH + 1)], nil)
366- if ((bJ == bJ))
367- then {
368- let bK = aR(bF[bH], aT)
369- let by = addressFromStringValue(bF[bH])
370- $Tuple2([IntegerEntry(bK, bG[bH]), ScriptTransfer(by, bG[bH], ag)], bJ)
371- }
372- else throw("Strict value is not equal to itself.")
373- }
374- else throw("Strict value is not equal to itself.")
375- }
376-
377-
378-
379-@Callable(aT)
380-func updateReferralActivity (by,bL) = {
381- let bM = getString(aQ, R(by))
382- let bN = if ((bM == unit))
315+@Callable(aI)
316+func updateReferralActivity (bj,bp) = {
317+ let bq = getString(aD, J(bj))
318+ let br = if ((bq == unit))
383319 then unit
384- else invoke(aQ, "updateReferralActivity", [H, by, (bL >= K)], nil)
385- if ((bN == bN))
320+ else invoke(aD, "updateReferralActivity", [z, bj, (bp >= C)], nil)
321+ if ((br == br))
386322 then $Tuple2(nil, unit)
387323 else throw("Strict value is not equal to itself.")
388324 }
389325
390326
391327
392-@Callable(aT)
328+@Callable(aI)
393329 func finalizeHelper () = {
394- let bO = valueOrElse(getInteger(aw()), e)
395- let bP = h(ax())
396- let bQ = h(at())
397- let bR = h(au())
398- let bS = valueOrElse(getInteger(al(), ao()), 0)
399- let bT = aL(bP)
400- let bU = h(aL(bP))
401- let bl = h(aC(bP))
402- if ((bP > bR))
330+ let bs = valueOrElse(getInteger(aj()), e)
331+ let bt = g(ak())
332+ let bu = g(ag())
333+ let bv = g(ah())
334+ let bw = valueOrElse(getInteger(aa(), ad()), 0)
335+ let bx = ay(bt)
336+ let by = g(ay(bt))
337+ let aW = g(ap(bt))
338+ if ((bt > bv))
403339 then $Tuple2(nil, false)
404- else if ((bO == e))
340+ else if ((bs == e))
405341 then {
406- let bV = bj(al(), bl, bP, bQ)
407- let bW = bV._1
408- let bX = bV._2
409- let bY = (bU + bW)
410- let bZ = if (((bS - 1) > bQ))
411- then [IntegerEntry(at(), (bQ + 1))]
412- else [IntegerEntry(aw(), f), IntegerEntry(at(), 0)]
413- $Tuple2((([IntegerEntry(bT, bY)] ++ bZ) ++ bX), true)
342+ let bz = aU(aa(), aW, bt, bu)
343+ let bA = bz._1
344+ let bB = bz._2
345+ let bC = (by + bA)
346+ let bD = if (((bw - 1) > bu))
347+ then [IntegerEntry(ag(), (bu + 1))]
348+ else [IntegerEntry(aj(), f), IntegerEntry(ag(), 0)]
349+ $Tuple2((([IntegerEntry(bx, bC)] ++ bD) ++ bB), true)
414350 }
415- else if ((bO == f))
351+ else if ((bs == f))
416352 then {
417- let bW = bv(al(), bl, bP, bQ)
418- let ca = fraction(h(aF(bP)), bW, bU)
419- let cb = fraction(h(aE(bP)), bW, bU)
420- let cc = (cb + ca)
421- let bC = getInteger(ay(bQ))
422- let by = getStringValue(al(), D(bQ))
423- let bM = getString(aQ, R(by))
424- let bN = if ((bM == unit))
353+ let bA = bg(aa(), aW, bt, bu)
354+ let bE = fraction(g(as(bt)), bA, by)
355+ let bF = fraction(g(ar(bt)), bA, by)
356+ let bG = (bF + bE)
357+ let bn = getInteger(al(bu))
358+ let bj = getStringValue(aa(), v(bu))
359+ let bq = getString(aD, J(bj))
360+ let br = if ((bq == unit))
425361 then unit
426- else invoke(aQ, "updateReferralActivity", [H, by, (bW >= K)], nil)
427- if ((bN == bN))
362+ else invoke(aD, "updateReferralActivity", [z, bj, (bA >= C)], nil)
363+ if ((br == br))
428364 then {
429- let cd = if (if ((bM == unit))
365+ let bH = if (if ((bq == unit))
430366 then true
431- else (K > bW))
367+ else (C > bA))
432368 then unit
433369 else {
434- let ce = fraction(cc, N, b)
435- let cf = fraction(cc, Q, b)
436- invoke(aQ, "incUnclaimed", [H, by, ce, cf], nil)
370+ let bI = fraction(bG, F, b)
371+ let bJ = fraction(bG, I, b)
372+ invoke(aD, "incUnclaimed", [z, bj, bI, bJ], nil)
437373 }
438- if ((cd == cd))
374+ if ((bH == bH))
439375 then {
440- let cg = [IntegerEntry(ay(bQ), (valueOrElse(bC, 0) + cc))]
441- let bZ = if (((bS - 1) > bQ))
442- then [IntegerEntry(at(), (bQ + 1))]
443- else [IntegerEntry(ax(), (bP + 1)), IntegerEntry(at(), 0), DeleteEntry(aw())]
444- $Tuple2((cg ++ bZ), true)
376+ let bK = [IntegerEntry(al(bu), (valueOrElse(bn, 0) + bG))]
377+ let bD = if (((bw - 1) > bu))
378+ then [IntegerEntry(ag(), (bu + 1))]
379+ else [IntegerEntry(ak(), (bt + 1)), IntegerEntry(ag(), 0), DeleteEntry(aj())]
380+ $Tuple2((bK ++ bD), true)
445381 }
446382 else throw("Strict value is not equal to itself.")
447383 }
452388
453389
454390
455-@Callable(aT)
456-func finalizeWrapper (ch) = {
457- let ci = {
458- let cj = invoke(this, "finalizeHelper", nil, nil)
459- if ($isInstanceOf(cj, "Boolean"))
460- then cj
461- else throw(($getType(cj) + " couldn't be cast to Boolean"))
391+@Callable(aI)
392+func finalizeWrapper (bL) = {
393+ let bM = {
394+ let bN = invoke(this, "finalizeHelper", nil, nil)
395+ if ($isInstanceOf(bN, "Boolean"))
396+ then bN
397+ else throw(($getType(bN) + " couldn't be cast to Boolean"))
462398 }
463- if ((ci == ci))
464- then if (!(ci))
465- then if ((ch == w))
399+ if ((bM == bM))
400+ then if (!(bM))
401+ then if ((bL == q))
466402 then throw("Nothing to process")
467403 else $Tuple2(nil, unit)
468- else if ((ch > 0))
469- then $Tuple2(nil, invoke(this, "finalizeWrapper", [(ch - 1)], nil))
404+ else if ((bL > 0))
405+ then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bL - 1)], nil))
470406 else $Tuple2(nil, unit)
471407 else throw("Strict value is not equal to itself.")
472408 }
473409
474410
475411
476-@Callable(aT)
477-func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [w], nil))
412+@Callable(aI)
413+func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
478414
479415
480416
481-@Callable(aT)
417+@Callable(aI)
482418 func deposit () = {
483- let ck = if ((aT.caller == C))
484- then true
485- else bg(aT)
486- if ((ck == ck))
487- then {
488- let aD = bz()
489- let cl = (height - j(an()))
490- let cm = valueOrErrorMessage(getInteger(X, ap()), (("mandatory emission_contract." + ap()) + " is not defined"))
491- let cn = valueOrElse(getInteger(X, aq()), 0)
492- if ((cn == cn))
493- then {
494- let co = fraction((cl * cn), cm, c)
495- let cp = if ((co > 0))
496- then invoke(X, "emit", [co], nil)
497- else unit
498- if ((cp == cp))
419+ let ab = V()
420+ if ((aI.caller != Address(fromBase58String(ab[R]))))
421+ then throw("Wrong caller address")
422+ else {
423+ let bO = value(value(aI.payments[0]).assetId)
424+ if ((bO != fromBase58String(ab[Q])))
425+ then throw("Wrong payment asset")
426+ else {
427+ let aq = bk()
428+ let bP = (height - i(ac()))
429+ let bQ = valueOrErrorMessage(getInteger(P, ae()), (("mandatory emission_contract." + ae()) + " is not defined"))
430+ let bR = valueOrErrorMessage(getInteger(t, af()), (("mandatory factory_contract." + af()) + " is not defined"))
431+ let bS = fraction((bP * bR), bQ, c)
432+ let bT = invoke(P, "emit", [bS], nil)
433+ if ((bT == bT))
499434 then {
500- let cq = 0
501- let cr = aH(aD, cq, co)
502- let cs = {
503- let cj = invoke(X, "gwxHoldersRewardUpdate", nil, nil)
504- if ($isInstanceOf(cj, "Boolean"))
505- then cj
506- else throw(($getType(cj) + " couldn't be cast to Boolean"))
507- }
508- if ((cs == cs))
509- then {
510- let ct = (cq + co)
511- let cu = if (if ((ct == 0))
512- then !(cs)
513- else false)
514- then nil
515- else [IntegerEntry(au(), aD), IntegerEntry(aC(aD), height), IntegerEntry(aE(aD), co), IntegerEntry(an(), height), IntegerEntry(aF(aD), cq), IntegerEntry(av(), (aD + 1)), StringEntry(aG(), cr), StringEntry(aK(aD), cr)]
516- $Tuple2(cu, unit)
517- }
518- else throw("Strict value is not equal to itself.")
435+ let bU = value(aI.payments[0]).amount
436+ let bV = au(aq, bU, bS)
437+[IntegerEntry(ah(), aq), IntegerEntry(ap(aq), height), IntegerEntry(ar(aq), bS), IntegerEntry(ac(), height), IntegerEntry(as(aq), bU), IntegerEntry(ai(), (aq + 1)), StringEntry(at(), bV), StringEntry(ax(aq), bV)]
519438 }
520439 else throw("Strict value is not equal to itself.")
521440 }
441+ }
442+ }
443+
444+
445+
446+@Callable(aI)
447+func claimReward () = {
448+ let ab = V()
449+ let bW = toString(aI.caller)
450+ let bX = bl(bW)
451+ let aH = bX._1
452+ let bY = bX._2
453+ let bZ = if ((aH > 0))
454+ then true
455+ else throw("Nothing to claim")
456+ if ((bZ == bZ))
457+ then {
458+ let ca = 0
459+ let cb = {
460+ let bN = invoke(aD, "claim", [z], nil)
461+ if ($isInstanceOf(bN, "Int"))
462+ then bN
463+ else throw(($getType(bN) + " couldn't be cast to Int"))
464+ }
465+ let cc = (aH + cb)
466+ $Tuple2(([ScriptTransfer(aI.caller, cc, fromBase58String(ab[Q])), aE("claim", bW, aH, aI)] ++ bY), [cc, ca])
467+ }
468+ else throw("Strict value is not equal to itself.")
469+ }
470+
471+
472+
473+@Callable(aI)
474+func claimRewardREADONLY (bW) = {
475+ let cd = bl(bW)
476+ let aH = cd._1
477+ let bY = cd._2
478+ let ce = valueOrElse(getInteger(aD, L(z, bW)), 0)
479+ let cc = (aH + ce)
480+ $Tuple2(nil, cc)
481+ }
482+
483+
484+
485+@Callable(aI)
486+func latestFinalizedPeriodREADONLY (bW) = $Tuple2(nil, valueOrElse(getInteger(this, ah()), -1))
487+
488+
489+
490+@Callable(aI)
491+func latestFinalizedPeriodInfoREADONLY (bW) = $Tuple2(nil, j(at()))
492+
493+
494+
495+@Callable(aI)
496+func calcGwxParamsREADONLY (cf,cg,ch) = {
497+ let ci = (cg + ch)
498+ let cj = -(fraction(cf, b, ch))
499+ let ck = (fraction(cf, b, ch) * ci)
500+ $Tuple2(nil, [cj, ck, bk()])
501+ }
502+
503+
504+
505+@Callable(aI)
506+func calcGwxAmountStartREADONLY (cl,cm,cn) = {
507+ let co = fraction(cm, c, cn)
508+ let bp = fraction(cl, co, c)
509+ $Tuple2(nil, [bp])
510+ }
511+
512+
513+
514+@Callable(aI)
515+func onEmissionForGwxStart () = if ((aI.caller != t))
516+ then throw("permissions denied")
517+ else [IntegerEntry(ac(), height)]
518+
519+
520+
521+@Callable(aI)
522+func latestPeriodEmissionRewardsREADONLY (bW) = {
523+ let aq = bk()
524+ $Tuple2(nil, [g(ar(aq))])
525+ }
526+
527+
528+
529+@Callable(aI)
530+func calcD (cp,cq,cr,cs,ct) = {
531+ let cu = toBigInt(2)
532+ let cv = parseBigIntValue(cs)
533+ let cw = parseBigIntValue(ct)
534+ let cx = parseBigIntValue(cp)
535+ let cy = parseBigIntValue(cq)
536+ let cz = (parseBigIntValue(cr) * cv)
537+ let aP = (cx + cy)
538+ if ((aP == d))
539+ then $Tuple2(nil, toString(d))
540+ else {
541+ let cA = (cz * cu)
542+ let cB = [0, 1, 2, 3, 4, 5, 6]
543+ func cC (cD,cE) = {
544+ let cF = cD
545+ let cG = cF._1
546+ let cH = cF._2
547+ let cI = cF._3
548+ if ((cI != unit))
549+ then cD
550+ else {
551+ let cJ = (((cG * cG) * cG) / (((cx * cy) * cu) * cu))
552+ let cK = (((((cA * aP) / cv) + (cJ * cu)) * cG) / ((((cA - cv) * cG) / cv) + ((cu + toBigInt(1)) * cJ)))
553+ let cL = n((cK - value(cG)))
554+ if ((cw >= cL))
555+ then $Tuple3(cK, cG, cE)
556+ else $Tuple3(cK, cG, unit)
557+ }
558+ }
559+
560+ let cM = {
561+ let cN = cB
562+ let cO = size(cN)
563+ let cP = $Tuple3(aP, unit, unit)
564+ func cQ (cR,cS) = if ((cS >= cO))
565+ then cR
566+ else cC(cR, cN[cS])
567+
568+ func cT (cR,cS) = if ((cS >= cO))
569+ then cR
570+ else throw("List size exceeds 7")
571+
572+ cT(cQ(cQ(cQ(cQ(cQ(cQ(cQ(cP, 0), 1), 2), 3), 4), 5), 6), 7)
573+ }
574+ let cK = cM._1
575+ let cH = cM._2
576+ let cI = cM._3
577+ if ((cI != unit))
578+ then $Tuple2(nil, toString(cK))
579+ else {
580+ let cL = n((cK - value(cH)))
581+ throw(("D calculation error, dDiff = " + toString(cL)))
582+ }
583+ }
584+ }
585+
586+
587+
588+@Callable(aI)
589+func setManager (cU) = {
590+ let cV = aR(aI)
591+ if ((cV == cV))
592+ then {
593+ let cW = fromBase58String(cU)
594+ if ((cW == cW))
595+ then [StringEntry(aM(), cU)]
522596 else throw("Strict value is not equal to itself.")
523597 }
524598 else throw("Strict value is not equal to itself.")
526600
527601
528602
529-@Callable(aT)
530-func claimReward () = {
531- let am = ah()
532- let cv = toString(aT.caller)
533- let cw = bA(cv)
534- let aX = cw._1
535- let cu = cw._2
536- let cx = if ((aX > 0))
603+@Callable(aI)
604+func confirmManager () = {
605+ let cX = aQ()
606+ let cY = if (isDefined(cX))
537607 then true
538- else throw("Nothing to claim")
539- if ((cx == cx))
608+ else throw("No pending manager")
609+ if ((cY == cY))
540610 then {
541- let cy = 0
542- let cz = {
543- let cj = invoke(aQ, "claim", [H], nil)
544- if ($isInstanceOf(cj, "Int"))
545- then cj
546- else throw(($getType(cj) + " couldn't be cast to Int"))
547- }
548- let cA = (aX + cz)
549- $Tuple2(([ScriptTransfer(aT.caller, cA, fromBase58String(am[Y])), aV("claim", cv, aX, aT)] ++ cu), [cA, cy])
550- }
551- else throw("Strict value is not equal to itself.")
552- }
553-
554-
555-
556-@Callable(aT)
557-func claimRewardREADONLY (cv) = {
558- let cB = bA(cv)
559- let aX = cB._1
560- let cu = cB._2
561- let cC = valueOrElse(getInteger(aQ, T(H, cv)), 0)
562- let cA = (aX + cC)
563- $Tuple2(nil, cA)
564- }
565-
566-
567-
568-@Callable(aT)
569-func latestFinalizedPeriodREADONLY (cv) = $Tuple2(nil, valueOrElse(getInteger(this, au()), -1))
570-
571-
572-
573-@Callable(aT)
574-func latestFinalizedPeriodInfoREADONLY (cv) = $Tuple2(nil, k(aG()))
575-
576-
577-
578-@Callable(aT)
579-func calcGwxParamsREADONLY (cD,cE,cF) = {
580- let cG = (cE + cF)
581- let cH = -(fraction(cD, b, cF))
582- let cI = (fraction(cD, b, cF) * cG)
583- $Tuple2(nil, [cH, cI, bz()])
584- }
585-
586-
587-
588-@Callable(aT)
589-func calcGwxAmountStartREADONLY (cJ,cK,cL) = {
590- let cM = fraction(cK, c, cL)
591- let bL = fraction(cJ, cM, c)
592- $Tuple2(nil, [bL])
593- }
594-
595-
596-
597-@Callable(aT)
598-func onEmissionForGwxStart () = if ((aT.caller != z))
599- then throw("permissions denied")
600- else [IntegerEntry(an(), height)]
601-
602-
603-
604-@Callable(aT)
605-func latestPeriodEmissionRewardsREADONLY (cv) = {
606- let aD = bz()
607- $Tuple2(nil, [h(aE(aD))])
608- }
609-
610-
611-
612-@Callable(aT)
613-func calcD (cN,cO,cP,cQ,cR) = {
614- let cS = toBigInt(2)
615- let cT = parseBigIntValue(cQ)
616- let cU = parseBigIntValue(cR)
617- let cV = parseBigIntValue(cN)
618- let cW = parseBigIntValue(cO)
619- let cX = (parseBigIntValue(cP) * cT)
620- let be = (cV + cW)
621- if ((be == d))
622- then $Tuple2(nil, toString(d))
623- else {
624- let cY = (cX * cS)
625- let cZ = [0, 1, 2, 3, 4, 5, 6]
626- func da (db,dc) = {
627- let dd = db
628- let de = dd._1
629- let df = dd._2
630- let dg = dd._3
631- if ((dg != unit))
632- then db
633- else {
634- let dh = (((de * de) * de) / (((cV * cW) * cS) * cS))
635- let di = (((((cY * be) / cT) + (dh * cS)) * de) / ((((cY - cT) * de) / cT) + ((cS + toBigInt(1)) * dh)))
636- let dj = t((di - value(de)))
637- if ((cU >= dj))
638- then $Tuple3(di, de, dc)
639- else $Tuple3(di, de, unit)
640- }
641- }
642-
643- let dk = {
644- let dl = cZ
645- let dm = size(dl)
646- let dn = $Tuple3(be, unit, unit)
647- func do (dp,dq) = if ((dq >= dm))
648- then dp
649- else da(dp, dl[dq])
650-
651- func dr (dp,dq) = if ((dq >= dm))
652- then dp
653- else throw("List size exceeds 7")
654-
655- dr(do(do(do(do(do(do(do(dn, 0), 1), 2), 3), 4), 5), 6), 7)
656- }
657- let di = dk._1
658- let df = dk._2
659- let dg = dk._3
660- if ((dg != unit))
661- then $Tuple2(nil, toString(di))
662- else {
663- let dj = t((di - value(df)))
664- throw(("D calculation error, dDiff = " + toString(dj)))
665- }
666- }
667- }
668-
669-
670-
671-@Callable(aT)
672-func tradeReward (bF,bG) = {
673- let ds = (size(bF) == size(bG))
674- let dt = valueOrElse(getInteger(aU()), 0)
675- let du = aT.payments[0]
676- let dv = du.assetId
677- let dw = du.amount
678- let bI = [if ((dt >= size(bF)))
679- then true
680- else q("Too many recipients"), if (ds)
681- then true
682- else q("Arguments size mismatch"), if ((dv == ag))
683- then true
684- else q("Wrong asset payment")]
685- if ((bI == bI))
686- then {
687- let bJ = invoke(this, "tradeRewardInternal", [dw, bF, bG, 0], nil)
688- if ((bJ == bJ))
689- then $Tuple2(nil, bJ)
611+ let cZ = if ((aI.callerPublicKey == value(cX)))
612+ then true
613+ else throw("You are not pending manager")
614+ if ((cZ == cZ))
615+ then [StringEntry(aL(), toBase58String(value(cX))), DeleteEntry(aM())]
690616 else throw("Strict value is not equal to itself.")
691617 }
692618 else throw("Strict value is not equal to itself.")
693619 }
694620
695621
696-
697-@Callable(aT)
698-func setManager (dx) = {
699- let ck = bg(aT)
700- if ((ck == ck))
701- then {
702- let dy = fromBase58String(dx)
703- if ((dy == dy))
704- then [StringEntry(bb(), dx)]
705- else throw("Strict value is not equal to itself.")
706- }
707- else throw("Strict value is not equal to itself.")
708- }
709-
710-
711-
712-@Callable(aT)
713-func confirmManager () = {
714- let dz = bf()
715- let dA = if (isDefined(dz))
716- then true
717- else throw("No pending manager")
718- if ((dA == dA))
719- then {
720- let dB = if ((aT.callerPublicKey == value(dz)))
721- then true
722- else throw("You are not pending manager")
723- if ((dB == dB))
724- then [StringEntry(ba(), toBase58String(value(dz))), DeleteEntry(bb())]
725- else throw("Strict value is not equal to itself.")
726- }
727- else throw("Strict value is not equal to itself.")
728- }
729-
730-
731-@Verifier(dC)
732-func dD () = {
733- let dE = {
734- let bd = bc()
735- if ($isInstanceOf(bd, "ByteVector"))
622+@Verifier(da)
623+func db () = {
624+ let dc = {
625+ let aO = aN()
626+ if ($isInstanceOf(aO, "ByteVector"))
736627 then {
737- let bi = bd
738- bi
628+ let aT = aO
629+ aT
739630 }
740- else if ($isInstanceOf(bd, "Unit"))
741- then dC.senderPublicKey
631+ else if ($isInstanceOf(aO, "Unit"))
632+ then da.senderPublicKey
742633 else throw("Match error")
743634 }
744- sigVerify(dC.bodyBytes, dC.proofs[0], dE)
635+ sigVerify(da.bodyBytes, da.proofs[0], dc)
745636 }
746637
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
1010 let d = toBigInt(0)
1111
1212 let e = 0
1313
1414 let f = 1
1515
16-let g = "WAVES"
17-
18-func h (i) = valueOrElse(getInteger(this, i), 0)
16+func g (h) = valueOrElse(getInteger(this, h), 0)
1917
2018
21-func j (i) = valueOrErrorMessage(getInteger(this, i), (("mandatory this." + i) + " is not defined"))
19+func i (h) = valueOrErrorMessage(getInteger(this, h), (("mandatory this." + h) + " is not defined"))
2220
2321
24-func k (i) = valueOrElse(getString(this, i), "")
22+func j (h) = valueOrElse(getString(this, h), "")
2523
2624
27-func l (i) = valueOrErrorMessage(getString(this, i), (("mandatory this." + i) + " is not defined"))
25+func k (h) = valueOrErrorMessage(getString(this, h), (("mandatory this." + h) + " is not defined"))
2826
2927
30-func m (n) = if ((n == g))
31- then unit
32- else fromBase58String(n)
28+func l (m) = if ((0 > m))
29+ then -(m)
30+ else m
3331
3432
35-func o (p) = makeString(["gwx_reward.ride:", p], " ")
33+func n (m) = if ((d > m))
34+ then -(m)
35+ else m
3636
3737
38-func q (p) = throw(o(p))
38+let o = "%s__maxDepth"
39+
40+let p = 30
41+
42+let q = valueOrElse(getInteger(this, o), p)
43+
44+func r () = "%s%s__config__factoryAddress"
3945
4046
41-func r (s) = if ((0 > s))
42- then -(s)
43- else s
47+let s = k(r())
48+
49+let t = addressFromStringValue(s)
50+
51+func u () = "%s%s__config__emissionAddress"
4452
4553
46-func t (s) = if ((d > s))
47- then -(s)
48- else s
54+func v (w) = makeString(["%s%s%s", "mapping", "num2user", toString(w)], a)
4955
5056
51-let u = "%s__maxDepth"
57+let x = makeString(["%s%s", "referral", "programName"], a)
5258
53-let v = 30
59+let y = "wxlock"
5460
55-let w = valueOrElse(getInteger(this, u), v)
61+let z = valueOrElse(getString(this, x), y)
5662
57-func x () = "%s%s__config__factoryAddress"
63+let A = makeString(["%s%s", "referral", "minGWxAmount"], a)
64+
65+let B = (500 * c)
66+
67+let C = valueOrElse(getInteger(this, A), B)
68+
69+let D = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
70+
71+let E = 50
72+
73+let F = valueOrElse(getInteger(this, D), E)
74+
75+let G = makeString(["%s%s", "referral", "referralRewardPermille"], a)
76+
77+let H = 50
78+
79+let I = valueOrElse(getInteger(this, G), H)
80+
81+func J (K) = makeString(["%s%s%s", "referrer", z, K], a)
5882
5983
60-let y = l(x())
61-
62-let z = addressFromStringValue(y)
63-
64-func A () = "%s%s__config__emissionAddress"
84+func L (M,N) = makeString(["%s%s%s", "unclaimedReferral", M, N], a)
6585
6686
67-func B () = makeString(["%s", "votingEmissionContract"], a)
87+let O = k(u())
88+
89+let P = addressFromStringValue(O)
90+
91+let Q = 1
92+
93+let R = 2
94+
95+let S = 3
96+
97+let T = 4
98+
99+func U () = "%s__config"
68100
69101
70-let C = addressFromStringValue(getStringValue(z, B()))
71-
72-func D (E) = makeString(["%s%s%s", "mapping", "num2user", toString(E)], a)
102+func V () = split(k(U()), a)
73103
74104
75-let F = makeString(["%s%s", "referral", "programName"], a)
76-
77-let G = "wxlock"
78-
79-let H = valueOrElse(getString(this, F), G)
80-
81-let I = makeString(["%s%s", "referral", "minGWxAmount"], a)
82-
83-let J = (500 * c)
84-
85-let K = valueOrElse(getInteger(this, I), J)
86-
87-let L = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
88-
89-let M = 50
90-
91-let N = valueOrElse(getInteger(this, L), M)
92-
93-let O = makeString(["%s%s", "referral", "referralRewardPermille"], a)
94-
95-let P = 50
96-
97-let Q = valueOrElse(getInteger(this, O), P)
98-
99-func R (S) = makeString(["%s%s%s", "referrer", H, S], a)
105+func W (X,Y,Z,q) = makeString(["%s%s%s%d", X, Y, Z, toString(q)], a)
100106
101107
102-func T (U,V) = makeString(["%s%s%s", "unclaimedReferral", U, V], a)
103-
104-
105-let W = l(A())
106-
107-let X = addressFromStringValue(W)
108-
109-let Y = 1
110-
111-let Z = 2
112-
113-let aa = 3
114-
115-let ab = 4
116-
117-func ac () = "%s__config"
118-
119-
120-func ad () = addressFromStringValue(valueOrErrorMessage(getString(this, A()), (("mandatory this." + A()) + " is not defined")))
121-
122-
123-let ae = ad()
124-
125-let af = split(value(getString(ae, ac())), a)[1]
126-
127-let ag = fromBase58String(af)
128-
129-func ah () = split(l(ac()), a)
130-
131-
132-func ai (af,aj,ak,w) = makeString(["%s%s%s%d", af, aj, ak, toString(w)], a)
133-
134-
135-func al () = {
136- let am = ah()
137- valueOrErrorMessage(addressFromString(am[aa]), "boosting contract address is not defined")
108+func aa () = {
109+ let ab = V()
110+ valueOrErrorMessage(addressFromString(ab[S]), "boosting contract address is not defined")
138111 }
139112
140113
141-func an () = "%s%s__gwxRewardEmissionPart__startHeight"
114+func ac () = "%s%s__gwxRewardEmissionPart__startHeight"
142115
143116
144-func ao () = "%s__nextUserNum"
117+func ad () = "%s__nextUserNum"
145118
146119
147-func ap () = "%s%s__ratePerBlock__current"
120+func ae () = "%s%s__ratePerBlock__current"
148121
149122
150-func aq () = "%s%s__gwxHoldersReward__current"
123+func af () = "%s%s__poolWeight__GWXvirtualPOOL"
151124
152125
153-func ar () = "%s%s__gwxHoldersReward__next"
126+func ag () = "%s__nextProcessedUser"
154127
155128
156-func as () = "%s%s__poolWeight__GWXvirtualPOOL"
129+func ah () = "%s__latestPeriod"
157130
158131
159-func at () = "%s__nextProcessedUser"
132+func ai () = "%s__nextPeriod"
160133
161134
162-func au () = "%s__latestPeriod"
135+func aj () = "%s__processingStage"
163136
164137
165-func av () = "%s__nextPeriod"
138+func ak () = "%s__nextProcessedPeriod"
166139
167140
168-func aw () = "%s__processingStage"
141+func al (am) = makeString(["%s%d", "userUnclaimed", toString(am)], a)
169142
170143
171-func ax () = "%s__nextProcessedPeriod"
144+func an (am) = makeString(["%s%d__nextClaimedPeriod", toString(am)], a)
172145
173146
174-func ay (az) = makeString(["%s%d", "userUnclaimed", toString(az)], a)
147+func ao (am) = makeString(["%s%d__lastProcessedPeriod", toString(am)], a)
175148
176149
177-func aA (az) = makeString(["%s%d__nextClaimedPeriod", toString(az)], a)
150+func ap (aq) = makeString(["%s%d__startHeightForPeriod", toString(aq)], a)
178151
179152
180-func aB (az) = makeString(["%s%d__lastProcessedPeriod", toString(az)], a)
153+func ar (aq) = makeString(["%s%d__auxEmissionReward", toString(aq)], a)
181154
182155
183-func aC (aD) = makeString(["%s%d__startHeightForPeriod", toString(aD)], a)
156+func as (aq) = makeString(["%s%d__totalAmountForPeriod", toString(aq)], a)
184157
185158
186-func aE (aD) = makeString(["%s%d__auxEmissionReward", toString(aD)], a)
159+func at () = "%s__lastPayoutInfo"
187160
188161
189-func aF (aD) = makeString(["%s%d__totalAmountForPeriod", toString(aD)], a)
162+func au (aq,av,aw) = makeString(["%d%d%d", toString(aq), toString(av), toString(aw)], a)
190163
191164
192-func aG () = "%s__lastPayoutInfo"
165+func ax (aq) = makeString(["%s%s%d__payouts__history", toString(aq)], a)
193166
194167
195-func aH (aD,aI,aJ) = makeString(["%d%d%d", toString(aD), toString(aI), toString(aJ)], a)
168+func ay (aq) = makeString(["%s%d__totalWeightForPeriod", toString(aq)], a)
196169
197170
198-func aK (aD) = makeString(["%s%s%d__payouts__history", toString(aD)], a)
171+func az (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "k", toString(aq)], a)
199172
200173
201-func aL (aD) = makeString(["%s%d__totalWeightForPeriod", toString(aD)], a)
174+func aA (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "b", toString(aq)], a)
202175
203176
204-func aM (aD,az) = makeString(["%s%d%s%d__paramByPeriod", toString(az), "k", toString(aD)], a)
177+func aB (aq,am) = makeString(["%s%d%s%d__paramByPeriod", toString(am), "weight", toString(aq)], a)
205178
206179
207-func aN (aD,az) = makeString(["%s%d%s%d__paramByPeriod", toString(az), "b", toString(aD)], a)
180+func aC () = makeString(["%s%s", "config", "referralsContractAddress"], a)
208181
209182
210-func aO (aD,az) = makeString(["%s%d%s%d__paramByPeriod", toString(az), "weight", toString(aD)], a)
183+let aD = addressFromStringValue(k(aC()))
211184
212-
213-func aP () = makeString(["%s%s", "config", "referralsContractAddress"], a)
214-
215-
216-let aQ = addressFromStringValue(l(aP()))
217-
218-func aR (aS,aT) = makeString(["%s%s%s%s", "tradingReward", "history", aS, toBase58String(aT.transactionId)], a)
219-
220-
221-func aU () = makeString(["%s", "maxRecipients"], a)
222-
223-
224-func aV (aW,aS,aX,aT) = {
225- let aY = makeString(["%s%s%s%s__history", aW, aS, toBase58String(aT.transactionId)], a)
226- let aZ = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aX)], a)
227- StringEntry(aY, aZ)
185+func aE (aF,aG,aH,aI) = {
186+ let aJ = makeString(["%s%s%s%s__history", aF, aG, toBase58String(aI.transactionId)], a)
187+ let aK = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aH)], a)
188+ StringEntry(aJ, aK)
228189 }
229190
230191
231-func ba () = "%s__managerPublicKey"
192+func aL () = "%s__managerPublicKey"
232193
233194
234-func bb () = "%s__pendingManagerPublicKey"
195+func aM () = "%s__pendingManagerPublicKey"
235196
236197
237-func bc () = {
238- let bd = getString(ba())
239- if ($isInstanceOf(bd, "String"))
198+func aN () = {
199+ let aO = getString(aL())
200+ if ($isInstanceOf(aO, "String"))
240201 then {
241- let be = bd
242- fromBase58String(be)
202+ let aP = aO
203+ fromBase58String(aP)
243204 }
244- else if ($isInstanceOf(bd, "Unit"))
205+ else if ($isInstanceOf(aO, "Unit"))
245206 then unit
246207 else throw("Match error")
247208 }
248209
249210
250-func bf () = {
251- let bd = getString(bb())
252- if ($isInstanceOf(bd, "String"))
211+func aQ () = {
212+ let aO = getString(aM())
213+ if ($isInstanceOf(aO, "String"))
253214 then {
254- let be = bd
255- fromBase58String(be)
215+ let aP = aO
216+ fromBase58String(aP)
256217 }
257- else if ($isInstanceOf(bd, "Unit"))
218+ else if ($isInstanceOf(aO, "Unit"))
258219 then unit
259220 else throw("Match error")
260221 }
261222
262223
263-func bg (aT) = {
264- let bh = throw("Permission denied")
265- let bd = bc()
266- if ($isInstanceOf(bd, "ByteVector"))
224+func aR (aI) = {
225+ let aS = throw("Permission denied")
226+ let aO = aN()
227+ if ($isInstanceOf(aO, "ByteVector"))
267228 then {
268- let bi = bd
269- if ((aT.callerPublicKey == bi))
229+ let aT = aO
230+ if ((aI.callerPublicKey == aT))
270231 then true
271- else bh
232+ else aS
272233 }
273- else if ($isInstanceOf(bd, "Unit"))
274- then if ((aT.caller == this))
234+ else if ($isInstanceOf(aO, "Unit"))
235+ then if ((aI.caller == this))
275236 then true
276- else bh
237+ else aS
277238 else throw("Match error")
278239 }
279240
280241
281-func bj (bk,bl,aD,az) = {
282- let bm = aB(az)
283- let bn = aM(aD, az)
284- let bo = getInteger(bk, bn)
285- let bp = aO(aD, az)
286- if (isDefined(bo))
242+func aU (aV,aW,aq,am) = {
243+ let aX = ao(am)
244+ let aY = az(aq, am)
245+ let aZ = getInteger(aV, aY)
246+ let ba = aB(aq, am)
247+ if (isDefined(aZ))
287248 then {
288- let bq = value(bo)
289- let br = value(getInteger(bk, aN(aD, az)))
290- let bs = ((bq * bl) + br)
291- if ((bs > 0))
292- then $Tuple2((bs / b), [IntegerEntry(bm, aD), IntegerEntry(bp, bs)])
249+ let bb = value(aZ)
250+ let bc = value(getInteger(aV, aA(aq, am)))
251+ let bd = ((bb * aW) + bc)
252+ if ((bd > 0))
253+ then $Tuple2((bd / b), [IntegerEntry(aX, aq), IntegerEntry(ba, bd)])
293254 else $Tuple2(0, nil)
294255 }
295256 else {
296- let bt = getInteger(this, bm)
297- if (if (isDefined(bt))
298- then (aD >= value(bt))
257+ let be = getInteger(this, aX)
258+ if (if (isDefined(be))
259+ then (aq >= value(be))
299260 else false)
300261 then {
301- let bu = value(bt)
302- let bq = value(getInteger(bk, aM(bu, az)))
303- let br = value(getInteger(bk, aN(bu, az)))
304- let bs = ((bq * bl) + br)
305- if ((bs > 0))
306- then $Tuple2((bs / b), [IntegerEntry(bp, bs)])
262+ let bf = value(be)
263+ let bb = value(getInteger(aV, az(bf, am)))
264+ let bc = value(getInteger(aV, aA(bf, am)))
265+ let bd = ((bb * aW) + bc)
266+ if ((bd > 0))
267+ then $Tuple2((bd / b), [IntegerEntry(ba, bd)])
307268 else $Tuple2(0, nil)
308269 }
309270 else $Tuple2(0, nil)
310271 }
311272 }
312273
313274
314-func bv (bk,bl,aD,az) = {
315- let bp = aO(aD, az)
316- let bw = getInteger(bp)
317- let bd = bw
318- if ($isInstanceOf(bd, "Unit"))
275+func bg (aV,aW,aq,am) = {
276+ let ba = aB(aq, am)
277+ let bh = getInteger(ba)
278+ let aO = bh
279+ if ($isInstanceOf(aO, "Unit"))
319280 then 0
320- else if ($isInstanceOf(bd, "Int"))
281+ else if ($isInstanceOf(aO, "Int"))
321282 then {
322- let bs = bd
323- (bs / b)
283+ let bd = aO
284+ (bd / b)
324285 }
325286 else throw("Match error")
326287 }
327288
328289
329-func bx (ak,by) = {
330- let i = makeString(["%s%s%s", "mapping", "user2num", by], a)
331- parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(ak)), i), ((("User address " + by) + " is not found in boosting contract data, key=") + i)))
290+func bi (Z,bj) = {
291+ let h = makeString(["%s%s%s", "mapping", "user2num", bj], a)
292+ parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(Z)), h), ((("User address " + bj) + " is not found in boosting contract data, key=") + h)))
332293 }
333294
334295
335-func bz () = h(av())
296+func bk () = g(ai())
336297
337298
338-func bA (by) = {
339- let am = ah()
340- let bB = bx(am[aa], by)
341- let bC = getInteger(ay(bB))
342- let bd = bC
343- if ($isInstanceOf(bd, "Unit"))
299+func bl (bj) = {
300+ let ab = V()
301+ let bm = bi(ab[S], bj)
302+ let bn = getInteger(al(bm))
303+ let aO = bn
304+ if ($isInstanceOf(aO, "Unit"))
344305 then $Tuple2(0, nil)
345- else if ($isInstanceOf(bd, "Int"))
306+ else if ($isInstanceOf(aO, "Int"))
346307 then {
347- let bD = bd
348- $Tuple2(bD, [IntegerEntry(ay(bB), 0)])
308+ let bo = aO
309+ $Tuple2(bo, [IntegerEntry(al(bm), 0)])
349310 }
350311 else throw("Match error")
351312 }
352313
353314
354-@Callable(aT)
355-func tradeRewardInternal (bE,bF,bG,bH) = if ((bH == size(bF)))
356- then nil
357- else {
358- let bI = [if ((aT.caller == this))
359- then true
360- else q("Permission denied"), if ((bE >= bG[bH]))
361- then true
362- else q("insufficient payment assetId")]
363- if ((bI == bI))
364- then {
365- let bJ = invoke(this, "tradeRewardInternal", [(bE - bG[bH]), bF, bG, (bH + 1)], nil)
366- if ((bJ == bJ))
367- then {
368- let bK = aR(bF[bH], aT)
369- let by = addressFromStringValue(bF[bH])
370- $Tuple2([IntegerEntry(bK, bG[bH]), ScriptTransfer(by, bG[bH], ag)], bJ)
371- }
372- else throw("Strict value is not equal to itself.")
373- }
374- else throw("Strict value is not equal to itself.")
375- }
376-
377-
378-
379-@Callable(aT)
380-func updateReferralActivity (by,bL) = {
381- let bM = getString(aQ, R(by))
382- let bN = if ((bM == unit))
315+@Callable(aI)
316+func updateReferralActivity (bj,bp) = {
317+ let bq = getString(aD, J(bj))
318+ let br = if ((bq == unit))
383319 then unit
384- else invoke(aQ, "updateReferralActivity", [H, by, (bL >= K)], nil)
385- if ((bN == bN))
320+ else invoke(aD, "updateReferralActivity", [z, bj, (bp >= C)], nil)
321+ if ((br == br))
386322 then $Tuple2(nil, unit)
387323 else throw("Strict value is not equal to itself.")
388324 }
389325
390326
391327
392-@Callable(aT)
328+@Callable(aI)
393329 func finalizeHelper () = {
394- let bO = valueOrElse(getInteger(aw()), e)
395- let bP = h(ax())
396- let bQ = h(at())
397- let bR = h(au())
398- let bS = valueOrElse(getInteger(al(), ao()), 0)
399- let bT = aL(bP)
400- let bU = h(aL(bP))
401- let bl = h(aC(bP))
402- if ((bP > bR))
330+ let bs = valueOrElse(getInteger(aj()), e)
331+ let bt = g(ak())
332+ let bu = g(ag())
333+ let bv = g(ah())
334+ let bw = valueOrElse(getInteger(aa(), ad()), 0)
335+ let bx = ay(bt)
336+ let by = g(ay(bt))
337+ let aW = g(ap(bt))
338+ if ((bt > bv))
403339 then $Tuple2(nil, false)
404- else if ((bO == e))
340+ else if ((bs == e))
405341 then {
406- let bV = bj(al(), bl, bP, bQ)
407- let bW = bV._1
408- let bX = bV._2
409- let bY = (bU + bW)
410- let bZ = if (((bS - 1) > bQ))
411- then [IntegerEntry(at(), (bQ + 1))]
412- else [IntegerEntry(aw(), f), IntegerEntry(at(), 0)]
413- $Tuple2((([IntegerEntry(bT, bY)] ++ bZ) ++ bX), true)
342+ let bz = aU(aa(), aW, bt, bu)
343+ let bA = bz._1
344+ let bB = bz._2
345+ let bC = (by + bA)
346+ let bD = if (((bw - 1) > bu))
347+ then [IntegerEntry(ag(), (bu + 1))]
348+ else [IntegerEntry(aj(), f), IntegerEntry(ag(), 0)]
349+ $Tuple2((([IntegerEntry(bx, bC)] ++ bD) ++ bB), true)
414350 }
415- else if ((bO == f))
351+ else if ((bs == f))
416352 then {
417- let bW = bv(al(), bl, bP, bQ)
418- let ca = fraction(h(aF(bP)), bW, bU)
419- let cb = fraction(h(aE(bP)), bW, bU)
420- let cc = (cb + ca)
421- let bC = getInteger(ay(bQ))
422- let by = getStringValue(al(), D(bQ))
423- let bM = getString(aQ, R(by))
424- let bN = if ((bM == unit))
353+ let bA = bg(aa(), aW, bt, bu)
354+ let bE = fraction(g(as(bt)), bA, by)
355+ let bF = fraction(g(ar(bt)), bA, by)
356+ let bG = (bF + bE)
357+ let bn = getInteger(al(bu))
358+ let bj = getStringValue(aa(), v(bu))
359+ let bq = getString(aD, J(bj))
360+ let br = if ((bq == unit))
425361 then unit
426- else invoke(aQ, "updateReferralActivity", [H, by, (bW >= K)], nil)
427- if ((bN == bN))
362+ else invoke(aD, "updateReferralActivity", [z, bj, (bA >= C)], nil)
363+ if ((br == br))
428364 then {
429- let cd = if (if ((bM == unit))
365+ let bH = if (if ((bq == unit))
430366 then true
431- else (K > bW))
367+ else (C > bA))
432368 then unit
433369 else {
434- let ce = fraction(cc, N, b)
435- let cf = fraction(cc, Q, b)
436- invoke(aQ, "incUnclaimed", [H, by, ce, cf], nil)
370+ let bI = fraction(bG, F, b)
371+ let bJ = fraction(bG, I, b)
372+ invoke(aD, "incUnclaimed", [z, bj, bI, bJ], nil)
437373 }
438- if ((cd == cd))
374+ if ((bH == bH))
439375 then {
440- let cg = [IntegerEntry(ay(bQ), (valueOrElse(bC, 0) + cc))]
441- let bZ = if (((bS - 1) > bQ))
442- then [IntegerEntry(at(), (bQ + 1))]
443- else [IntegerEntry(ax(), (bP + 1)), IntegerEntry(at(), 0), DeleteEntry(aw())]
444- $Tuple2((cg ++ bZ), true)
376+ let bK = [IntegerEntry(al(bu), (valueOrElse(bn, 0) + bG))]
377+ let bD = if (((bw - 1) > bu))
378+ then [IntegerEntry(ag(), (bu + 1))]
379+ else [IntegerEntry(ak(), (bt + 1)), IntegerEntry(ag(), 0), DeleteEntry(aj())]
380+ $Tuple2((bK ++ bD), true)
445381 }
446382 else throw("Strict value is not equal to itself.")
447383 }
448384 else throw("Strict value is not equal to itself.")
449385 }
450386 else throw("invalid processing stage")
451387 }
452388
453389
454390
455-@Callable(aT)
456-func finalizeWrapper (ch) = {
457- let ci = {
458- let cj = invoke(this, "finalizeHelper", nil, nil)
459- if ($isInstanceOf(cj, "Boolean"))
460- then cj
461- else throw(($getType(cj) + " couldn't be cast to Boolean"))
391+@Callable(aI)
392+func finalizeWrapper (bL) = {
393+ let bM = {
394+ let bN = invoke(this, "finalizeHelper", nil, nil)
395+ if ($isInstanceOf(bN, "Boolean"))
396+ then bN
397+ else throw(($getType(bN) + " couldn't be cast to Boolean"))
462398 }
463- if ((ci == ci))
464- then if (!(ci))
465- then if ((ch == w))
399+ if ((bM == bM))
400+ then if (!(bM))
401+ then if ((bL == q))
466402 then throw("Nothing to process")
467403 else $Tuple2(nil, unit)
468- else if ((ch > 0))
469- then $Tuple2(nil, invoke(this, "finalizeWrapper", [(ch - 1)], nil))
404+ else if ((bL > 0))
405+ then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bL - 1)], nil))
470406 else $Tuple2(nil, unit)
471407 else throw("Strict value is not equal to itself.")
472408 }
473409
474410
475411
476-@Callable(aT)
477-func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [w], nil))
412+@Callable(aI)
413+func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
478414
479415
480416
481-@Callable(aT)
417+@Callable(aI)
482418 func deposit () = {
483- let ck = if ((aT.caller == C))
484- then true
485- else bg(aT)
486- if ((ck == ck))
487- then {
488- let aD = bz()
489- let cl = (height - j(an()))
490- let cm = valueOrErrorMessage(getInteger(X, ap()), (("mandatory emission_contract." + ap()) + " is not defined"))
491- let cn = valueOrElse(getInteger(X, aq()), 0)
492- if ((cn == cn))
493- then {
494- let co = fraction((cl * cn), cm, c)
495- let cp = if ((co > 0))
496- then invoke(X, "emit", [co], nil)
497- else unit
498- if ((cp == cp))
419+ let ab = V()
420+ if ((aI.caller != Address(fromBase58String(ab[R]))))
421+ then throw("Wrong caller address")
422+ else {
423+ let bO = value(value(aI.payments[0]).assetId)
424+ if ((bO != fromBase58String(ab[Q])))
425+ then throw("Wrong payment asset")
426+ else {
427+ let aq = bk()
428+ let bP = (height - i(ac()))
429+ let bQ = valueOrErrorMessage(getInteger(P, ae()), (("mandatory emission_contract." + ae()) + " is not defined"))
430+ let bR = valueOrErrorMessage(getInteger(t, af()), (("mandatory factory_contract." + af()) + " is not defined"))
431+ let bS = fraction((bP * bR), bQ, c)
432+ let bT = invoke(P, "emit", [bS], nil)
433+ if ((bT == bT))
499434 then {
500- let cq = 0
501- let cr = aH(aD, cq, co)
502- let cs = {
503- let cj = invoke(X, "gwxHoldersRewardUpdate", nil, nil)
504- if ($isInstanceOf(cj, "Boolean"))
505- then cj
506- else throw(($getType(cj) + " couldn't be cast to Boolean"))
507- }
508- if ((cs == cs))
509- then {
510- let ct = (cq + co)
511- let cu = if (if ((ct == 0))
512- then !(cs)
513- else false)
514- then nil
515- else [IntegerEntry(au(), aD), IntegerEntry(aC(aD), height), IntegerEntry(aE(aD), co), IntegerEntry(an(), height), IntegerEntry(aF(aD), cq), IntegerEntry(av(), (aD + 1)), StringEntry(aG(), cr), StringEntry(aK(aD), cr)]
516- $Tuple2(cu, unit)
517- }
518- else throw("Strict value is not equal to itself.")
435+ let bU = value(aI.payments[0]).amount
436+ let bV = au(aq, bU, bS)
437+[IntegerEntry(ah(), aq), IntegerEntry(ap(aq), height), IntegerEntry(ar(aq), bS), IntegerEntry(ac(), height), IntegerEntry(as(aq), bU), IntegerEntry(ai(), (aq + 1)), StringEntry(at(), bV), StringEntry(ax(aq), bV)]
519438 }
520439 else throw("Strict value is not equal to itself.")
521440 }
441+ }
442+ }
443+
444+
445+
446+@Callable(aI)
447+func claimReward () = {
448+ let ab = V()
449+ let bW = toString(aI.caller)
450+ let bX = bl(bW)
451+ let aH = bX._1
452+ let bY = bX._2
453+ let bZ = if ((aH > 0))
454+ then true
455+ else throw("Nothing to claim")
456+ if ((bZ == bZ))
457+ then {
458+ let ca = 0
459+ let cb = {
460+ let bN = invoke(aD, "claim", [z], nil)
461+ if ($isInstanceOf(bN, "Int"))
462+ then bN
463+ else throw(($getType(bN) + " couldn't be cast to Int"))
464+ }
465+ let cc = (aH + cb)
466+ $Tuple2(([ScriptTransfer(aI.caller, cc, fromBase58String(ab[Q])), aE("claim", bW, aH, aI)] ++ bY), [cc, ca])
467+ }
468+ else throw("Strict value is not equal to itself.")
469+ }
470+
471+
472+
473+@Callable(aI)
474+func claimRewardREADONLY (bW) = {
475+ let cd = bl(bW)
476+ let aH = cd._1
477+ let bY = cd._2
478+ let ce = valueOrElse(getInteger(aD, L(z, bW)), 0)
479+ let cc = (aH + ce)
480+ $Tuple2(nil, cc)
481+ }
482+
483+
484+
485+@Callable(aI)
486+func latestFinalizedPeriodREADONLY (bW) = $Tuple2(nil, valueOrElse(getInteger(this, ah()), -1))
487+
488+
489+
490+@Callable(aI)
491+func latestFinalizedPeriodInfoREADONLY (bW) = $Tuple2(nil, j(at()))
492+
493+
494+
495+@Callable(aI)
496+func calcGwxParamsREADONLY (cf,cg,ch) = {
497+ let ci = (cg + ch)
498+ let cj = -(fraction(cf, b, ch))
499+ let ck = (fraction(cf, b, ch) * ci)
500+ $Tuple2(nil, [cj, ck, bk()])
501+ }
502+
503+
504+
505+@Callable(aI)
506+func calcGwxAmountStartREADONLY (cl,cm,cn) = {
507+ let co = fraction(cm, c, cn)
508+ let bp = fraction(cl, co, c)
509+ $Tuple2(nil, [bp])
510+ }
511+
512+
513+
514+@Callable(aI)
515+func onEmissionForGwxStart () = if ((aI.caller != t))
516+ then throw("permissions denied")
517+ else [IntegerEntry(ac(), height)]
518+
519+
520+
521+@Callable(aI)
522+func latestPeriodEmissionRewardsREADONLY (bW) = {
523+ let aq = bk()
524+ $Tuple2(nil, [g(ar(aq))])
525+ }
526+
527+
528+
529+@Callable(aI)
530+func calcD (cp,cq,cr,cs,ct) = {
531+ let cu = toBigInt(2)
532+ let cv = parseBigIntValue(cs)
533+ let cw = parseBigIntValue(ct)
534+ let cx = parseBigIntValue(cp)
535+ let cy = parseBigIntValue(cq)
536+ let cz = (parseBigIntValue(cr) * cv)
537+ let aP = (cx + cy)
538+ if ((aP == d))
539+ then $Tuple2(nil, toString(d))
540+ else {
541+ let cA = (cz * cu)
542+ let cB = [0, 1, 2, 3, 4, 5, 6]
543+ func cC (cD,cE) = {
544+ let cF = cD
545+ let cG = cF._1
546+ let cH = cF._2
547+ let cI = cF._3
548+ if ((cI != unit))
549+ then cD
550+ else {
551+ let cJ = (((cG * cG) * cG) / (((cx * cy) * cu) * cu))
552+ let cK = (((((cA * aP) / cv) + (cJ * cu)) * cG) / ((((cA - cv) * cG) / cv) + ((cu + toBigInt(1)) * cJ)))
553+ let cL = n((cK - value(cG)))
554+ if ((cw >= cL))
555+ then $Tuple3(cK, cG, cE)
556+ else $Tuple3(cK, cG, unit)
557+ }
558+ }
559+
560+ let cM = {
561+ let cN = cB
562+ let cO = size(cN)
563+ let cP = $Tuple3(aP, unit, unit)
564+ func cQ (cR,cS) = if ((cS >= cO))
565+ then cR
566+ else cC(cR, cN[cS])
567+
568+ func cT (cR,cS) = if ((cS >= cO))
569+ then cR
570+ else throw("List size exceeds 7")
571+
572+ cT(cQ(cQ(cQ(cQ(cQ(cQ(cQ(cP, 0), 1), 2), 3), 4), 5), 6), 7)
573+ }
574+ let cK = cM._1
575+ let cH = cM._2
576+ let cI = cM._3
577+ if ((cI != unit))
578+ then $Tuple2(nil, toString(cK))
579+ else {
580+ let cL = n((cK - value(cH)))
581+ throw(("D calculation error, dDiff = " + toString(cL)))
582+ }
583+ }
584+ }
585+
586+
587+
588+@Callable(aI)
589+func setManager (cU) = {
590+ let cV = aR(aI)
591+ if ((cV == cV))
592+ then {
593+ let cW = fromBase58String(cU)
594+ if ((cW == cW))
595+ then [StringEntry(aM(), cU)]
522596 else throw("Strict value is not equal to itself.")
523597 }
524598 else throw("Strict value is not equal to itself.")
525599 }
526600
527601
528602
529-@Callable(aT)
530-func claimReward () = {
531- let am = ah()
532- let cv = toString(aT.caller)
533- let cw = bA(cv)
534- let aX = cw._1
535- let cu = cw._2
536- let cx = if ((aX > 0))
603+@Callable(aI)
604+func confirmManager () = {
605+ let cX = aQ()
606+ let cY = if (isDefined(cX))
537607 then true
538- else throw("Nothing to claim")
539- if ((cx == cx))
608+ else throw("No pending manager")
609+ if ((cY == cY))
540610 then {
541- let cy = 0
542- let cz = {
543- let cj = invoke(aQ, "claim", [H], nil)
544- if ($isInstanceOf(cj, "Int"))
545- then cj
546- else throw(($getType(cj) + " couldn't be cast to Int"))
547- }
548- let cA = (aX + cz)
549- $Tuple2(([ScriptTransfer(aT.caller, cA, fromBase58String(am[Y])), aV("claim", cv, aX, aT)] ++ cu), [cA, cy])
550- }
551- else throw("Strict value is not equal to itself.")
552- }
553-
554-
555-
556-@Callable(aT)
557-func claimRewardREADONLY (cv) = {
558- let cB = bA(cv)
559- let aX = cB._1
560- let cu = cB._2
561- let cC = valueOrElse(getInteger(aQ, T(H, cv)), 0)
562- let cA = (aX + cC)
563- $Tuple2(nil, cA)
564- }
565-
566-
567-
568-@Callable(aT)
569-func latestFinalizedPeriodREADONLY (cv) = $Tuple2(nil, valueOrElse(getInteger(this, au()), -1))
570-
571-
572-
573-@Callable(aT)
574-func latestFinalizedPeriodInfoREADONLY (cv) = $Tuple2(nil, k(aG()))
575-
576-
577-
578-@Callable(aT)
579-func calcGwxParamsREADONLY (cD,cE,cF) = {
580- let cG = (cE + cF)
581- let cH = -(fraction(cD, b, cF))
582- let cI = (fraction(cD, b, cF) * cG)
583- $Tuple2(nil, [cH, cI, bz()])
584- }
585-
586-
587-
588-@Callable(aT)
589-func calcGwxAmountStartREADONLY (cJ,cK,cL) = {
590- let cM = fraction(cK, c, cL)
591- let bL = fraction(cJ, cM, c)
592- $Tuple2(nil, [bL])
593- }
594-
595-
596-
597-@Callable(aT)
598-func onEmissionForGwxStart () = if ((aT.caller != z))
599- then throw("permissions denied")
600- else [IntegerEntry(an(), height)]
601-
602-
603-
604-@Callable(aT)
605-func latestPeriodEmissionRewardsREADONLY (cv) = {
606- let aD = bz()
607- $Tuple2(nil, [h(aE(aD))])
608- }
609-
610-
611-
612-@Callable(aT)
613-func calcD (cN,cO,cP,cQ,cR) = {
614- let cS = toBigInt(2)
615- let cT = parseBigIntValue(cQ)
616- let cU = parseBigIntValue(cR)
617- let cV = parseBigIntValue(cN)
618- let cW = parseBigIntValue(cO)
619- let cX = (parseBigIntValue(cP) * cT)
620- let be = (cV + cW)
621- if ((be == d))
622- then $Tuple2(nil, toString(d))
623- else {
624- let cY = (cX * cS)
625- let cZ = [0, 1, 2, 3, 4, 5, 6]
626- func da (db,dc) = {
627- let dd = db
628- let de = dd._1
629- let df = dd._2
630- let dg = dd._3
631- if ((dg != unit))
632- then db
633- else {
634- let dh = (((de * de) * de) / (((cV * cW) * cS) * cS))
635- let di = (((((cY * be) / cT) + (dh * cS)) * de) / ((((cY - cT) * de) / cT) + ((cS + toBigInt(1)) * dh)))
636- let dj = t((di - value(de)))
637- if ((cU >= dj))
638- then $Tuple3(di, de, dc)
639- else $Tuple3(di, de, unit)
640- }
641- }
642-
643- let dk = {
644- let dl = cZ
645- let dm = size(dl)
646- let dn = $Tuple3(be, unit, unit)
647- func do (dp,dq) = if ((dq >= dm))
648- then dp
649- else da(dp, dl[dq])
650-
651- func dr (dp,dq) = if ((dq >= dm))
652- then dp
653- else throw("List size exceeds 7")
654-
655- dr(do(do(do(do(do(do(do(dn, 0), 1), 2), 3), 4), 5), 6), 7)
656- }
657- let di = dk._1
658- let df = dk._2
659- let dg = dk._3
660- if ((dg != unit))
661- then $Tuple2(nil, toString(di))
662- else {
663- let dj = t((di - value(df)))
664- throw(("D calculation error, dDiff = " + toString(dj)))
665- }
666- }
667- }
668-
669-
670-
671-@Callable(aT)
672-func tradeReward (bF,bG) = {
673- let ds = (size(bF) == size(bG))
674- let dt = valueOrElse(getInteger(aU()), 0)
675- let du = aT.payments[0]
676- let dv = du.assetId
677- let dw = du.amount
678- let bI = [if ((dt >= size(bF)))
679- then true
680- else q("Too many recipients"), if (ds)
681- then true
682- else q("Arguments size mismatch"), if ((dv == ag))
683- then true
684- else q("Wrong asset payment")]
685- if ((bI == bI))
686- then {
687- let bJ = invoke(this, "tradeRewardInternal", [dw, bF, bG, 0], nil)
688- if ((bJ == bJ))
689- then $Tuple2(nil, bJ)
611+ let cZ = if ((aI.callerPublicKey == value(cX)))
612+ then true
613+ else throw("You are not pending manager")
614+ if ((cZ == cZ))
615+ then [StringEntry(aL(), toBase58String(value(cX))), DeleteEntry(aM())]
690616 else throw("Strict value is not equal to itself.")
691617 }
692618 else throw("Strict value is not equal to itself.")
693619 }
694620
695621
696-
697-@Callable(aT)
698-func setManager (dx) = {
699- let ck = bg(aT)
700- if ((ck == ck))
701- then {
702- let dy = fromBase58String(dx)
703- if ((dy == dy))
704- then [StringEntry(bb(), dx)]
705- else throw("Strict value is not equal to itself.")
706- }
707- else throw("Strict value is not equal to itself.")
708- }
709-
710-
711-
712-@Callable(aT)
713-func confirmManager () = {
714- let dz = bf()
715- let dA = if (isDefined(dz))
716- then true
717- else throw("No pending manager")
718- if ((dA == dA))
719- then {
720- let dB = if ((aT.callerPublicKey == value(dz)))
721- then true
722- else throw("You are not pending manager")
723- if ((dB == dB))
724- then [StringEntry(ba(), toBase58String(value(dz))), DeleteEntry(bb())]
725- else throw("Strict value is not equal to itself.")
726- }
727- else throw("Strict value is not equal to itself.")
728- }
729-
730-
731-@Verifier(dC)
732-func dD () = {
733- let dE = {
734- let bd = bc()
735- if ($isInstanceOf(bd, "ByteVector"))
622+@Verifier(da)
623+func db () = {
624+ let dc = {
625+ let aO = aN()
626+ if ($isInstanceOf(aO, "ByteVector"))
736627 then {
737- let bi = bd
738- bi
628+ let aT = aO
629+ aT
739630 }
740- else if ($isInstanceOf(bd, "Unit"))
741- then dC.senderPublicKey
631+ else if ($isInstanceOf(aO, "Unit"))
632+ then da.senderPublicKey
742633 else throw("Match error")
743634 }
744- sigVerify(dC.bodyBytes, dC.proofs[0], dE)
635+ sigVerify(da.bodyBytes, da.proofs[0], dc)
745636 }
746637

github/deemru/w8io/169f3d6 
195.58 ms