tx · HKn9V4yTsYDfTX1CSF7rMjUJ6LY25TfvoRJZ16xuPL1A

3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE:  -0.01800000 Waves

2023.04.17 15:30 [2538570] smart account 3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE > SELF 0.00000000 Waves

{ "type": 13, "id": "HKn9V4yTsYDfTX1CSF7rMjUJ6LY25TfvoRJZ16xuPL1A", "fee": 1800000, "feeAssetId": null, "timestamp": 1681734713702, "version": 2, "chainId": 84, "sender": "3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE", "senderPublicKey": "G349Uq3FTox7dRNLeAfAQeoACvwZ9iEnVSaHcEYn6j8J", "proofs": [ "5ZbkB6NgnXWmB4DmBkZhLmuFWqYhErHnfcZ8Hkm4KCSNmGDKHsHuLSVtwgaPbLCy6oXeucBLM6bJSAGc3as1Pm78" ], "script": "base64:BgKkGggCEgQKAggBEgASAwoBARIAEgASABIDCgEIEgMKAQgSAwoBCBIFCgMBAQESBQoDAQEBEgASAwoBCBIHCgUICAgICBIDCgEIEgAiA1NFUCIFU0NBTEUiBU1VTFQ4Igp6ZXJvQmlnSW50IhRwcm9jZXNzaW5nU3RhZ2VUb3RhbCIVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzIg5nZXROdW1iZXJCeUtleSIDa2V5Ig9nZXROdW1iZXJPckZhaWwiDmdldFN0cmluZ0J5S2V5Ig9nZXRTdHJpbmdPckZhaWwiA2FicyIDdmFsIglhYnNCaWdJbnQiC2tleU1heERlcHRoIg9tYXhEZXB0aERlZmF1bHQiCG1heERlcHRoIhFrZXlGYWN0b3J5QWRkcmVzcyIRZmFjdG9yeUFkZHJlc3NTdHIiD2ZhY3RvcnlDb250cmFjdCISa2V5RW1pc3Npb25BZGRyZXNzIhlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0IhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0IhNrZXlOdW1Ub1VzZXJNYXBwaW5nIgNudW0iFmtleVJlZmVycmFsUHJvZ3JhbU5hbWUiGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0IhNyZWZlcnJhbFByb2dyYW1OYW1lIhdrZXlSZWZlcnJhbE1pbkdXeEFtb3VudCIbcmVmZXJyYWxNaW5HV3hBbW91bnREZWZhdWx0IhRyZWZlcnJhbE1pbkdXeEFtb3VudCIZa2V5UmVmZXJyZXJSZXdhcmRQZXJtaWxsZSIdcmVmZXJyZXJSZXdhcmRQZXJtaWxsZURlZmF1bHQiFnJlZmVycmVyUmV3YXJkUGVybWlsbGUiGWtleVJlZmVycmFsUmV3YXJkUGVybWlsbGUiHXJlZmVycmFsUmV3YXJkUGVybWlsbGVEZWZhdWx0IhZyZWZlcnJhbFJld2FyZFBlcm1pbGxlIgtrZXlSZWZlcnJlciIPcmVmZXJyYWxBZGRyZXNzIhRrZXlVbmNsYWltZWRSZWZlcnJhbCILcHJvZ3JhbU5hbWUiDmNsYWltZXJBZGRyZXNzIhJlbWlzc2lvbkFkZHJlc3NTdHIiEGVtaXNzaW9uQ29udHJhY3QiDUlkeENmZ0Fzc2V0SWQiFklkeENmZ1BhY2VtYWtlckFkZHJlc3MiFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QiDklkeENmZ01heERlcHRoIglrZXlDb25maWciFXJlYWRDb25maWdBcnJheU9yRmFpbCIMZm9ybWF0Q29uZmlnIgx3eEFzc2V0SWRTdHIiGm1hdGNoZXJQYWNlbWFrZXJBZGRyZXNzU3RyIhpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0ciIWYm9vc3RpbmdDb250cmFjdE9yRmFpbCIIY2ZnQXJyYXkiH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQiDWtleVVzZXJzQ291bnQiFmtleVJhdGVQZXJCbG9ja0N1cnJlbnQiGmtleUd3eEhvbGRlcnNSZXdhcmRDdXJyZW50IhdrZXlHd3hIb2xkZXJzUmV3YXJkTmV4dCIUa2V5UG9vbFdlaWdodFZpcnR1YWwiFGtleU5leHRQcm9jZXNzZWRVc2VyIg9rZXlMYXRlc3RQZXJpb2QiDWtleU5leHRQZXJpb2QiEmtleVByb2Nlc3NpbmdTdGFnZSIWa2V5TmV4dFByb2Nlc3NlZFBlcmlvZCIQa2V5VXNlclVuY2xhaW1lZCIJdXNlckluZGV4IhtrZXlOZXh0VW5sYWltZWRQZXJpb2RPZlVzZXIiHGtleUxhc3RQcm9jZXNzZWRQZXJpb2RPZlVzZXIiEmtleUhlaWdodEZvclBlcmlvZCIGcGVyaW9kIh1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZCIXa2V5VG90YWxBbW91bnRGb3JQZXJpb2QiEWtleUxhc3RQYXlvdXRJbmZvIhBQZXJpb2RQYXlvdXRJbmZvIg1tYXRjaGVyUmV3YXJkIg5lbWlzc2lvblJld2FyZCIUa2V5UGF5b3V0SGlzdG9yeUluZm8iF2tleVRvdGFsV2VpZ2h0Rm9yUGVyaW9kIhZrZXlVc2VyS1ZhbHVlRm9yUGVyaW9kIhZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kIhZrZXlVc2VyV2VpZ2h0Rm9yUGVyaW9kIhtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MiHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbCIMSGlzdG9yeUVudHJ5IgR0eXBlIgR1c2VyIgZhbW91bnQiAWkiCmhpc3RvcnlLRVkiC2hpc3RvcnlEQVRBIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIHJG1hdGNoMCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiC211c3RNYW5hZ2VyIgJwZCICcGsiDmNhbGNVc2VyV2VpZ2h0Ihdib29zdGluZ0NvbnRyYWN0QWRkcmVzcyIPaGVpZ2h0Rm9yUGVyaW9kIgVrTGFzdCIEa0tleSIEa1JhdyILa1VzZXJXZWlnaHQiAWsiAWIiAXciAXAiAnB2IhZjYWxjVXNlcldlaWdodEZvckNsYWltIhB1c2VyV2VpZ2h0T3JVbml0IhVnZXRVc2VySW5kZXhCeUFkZHJlc3MiC3VzZXJBZGRyZXNzIgpuZXh0UGVyaW9kIhFjb21tb25DbGFpbVJld2FyZCIHdXNlcklkeCITdXNlclVuY2xhaW1lZE9wdGlvbiIBdSIOZ1d4QW1vdW50U3RhcnQiCHJlZmVycmVyIhFhY3RpdmVSZWZlcnJhbEludiIPcHJvY2Vzc2luZ1N0YWdlIg1jdXJyZW50UGVyaW9kIgtjdXJyZW50VXNlciIMbGF0ZXN0UGVyaW9kIgp1c2Vyc0NvdW50Ig50b3RhbFdlaWdodEtleSILdG90YWxXZWlnaHQiDSR0MDEyNDE1MTI1MzEiCnVzZXJXZWlnaHQiC3VzZXJBY3Rpb25zIg50b3RhbFdlaWdodE5ldyIRcHJvY2Vzc2luZ0FjdGlvbnMiGnVzZXJBbW91bnRNYXRjaGVyRm9yUGVyaW9kIht1c2VyQW1vdW50RW1pc3Npb25Gb3JQZXJpb2QiD3VzZXJUb3RhbEFtb3VudCILcmVmZXJyYWxJbnYiDnJlZmVycmVyUmV3YXJkIg5yZWZlcnJhbFJld2FyZCIQdW5jbGFpbWVkQWN0aW9ucyIHY291bnRlciIGcmVzdWx0IgFAIgtjaGVja0NhbGxlciIGZGVsdGFIIgxlbWlzc2lvblJhdGUiF2d3eEhvbGRlcnNSZXdhcmRDdXJyZW50IglhdXhBbW91bnQiAmVtIgttYXRjaGVyUGFydCIKcGF5b3V0SW5mbyIWZ3d4SG9sZGVyc1Jld2FyZFVwZGF0ZSILdG90YWxSZXdhcmQiB2FjdGlvbnMiB2FkZHJlc3MiDSR0MDE3NjM3MTc2ODciC2NoZWNrQW1vdW50IhJhbW91bnRGcm9tRW1pc3Npb24iD2NsYWltZWRSZWZlcnJhbCILdG90YWxBbW91bnQiDSR0MDE4MjYwMTgzMTAiEXJlZmVycmFsVW5jbGFpbWVkIg5nd3hBbW91bnRTdGFydCIPbG9ja1N0YXJ0SGVpZ2h0IhJsb2NrRHVyYXRpb25CbG9ja3MiDWxvY2tFbmRIZWlnaHQiDHNjYWxlOFBhcmFtSyIMc2NhbGU4UGFyYW1CIgx3eExvY2tBbW91bnQiDGxvY2tEdXJhdGlvbiIPbWF4TG9ja0R1cmF0aW9uIgdjb2VmZlg4Igt4MUJpZ0ludFN0ciILeDJCaWdJbnRTdHIiDGFtcEJpZ0ludFN0ciITYVByZWNpc2lvbkJpZ0ludFN0ciIYdGFyZ2V0UHJlY2lzaW9uQmlnSW50U3RyIgZuQ29pbnMiCmFQcmVjaXNpb24iD3RhcmdldFByZWNpc2lvbiICeDEiAngyIgNhbXAiA2FubiIDYXJyIgRjYWxjIgNhY2MiA2N1ciINJHQwMjA5NDMyMDk3MCIBZCIFZFByZXYiBWZvdW5kIgJkcCIFZE5leHQiBWREaWZmIg0kdDAyMTU2ODIxNjMxIgIkbCICJHMiBSRhY2MwIgUkZjBfMSICJGEiAiRpIgUkZjBfMiIXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiFWNoZWNrTWFuYWdlclB1YmxpY0tleSICcG0iBWhhc1BNIgdjaGVja1BNIgJ0eCIGdmVyaWZ5Ig90YXJnZXRQdWJsaWNLZXlTAAFhAgJfXwABYgDoBwABYwCAwtcvAAFkCQC2AgEAAAABZQAAAAFmAAEBAWcBAWgJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUBaAAAAQFpAQFoCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUBaAkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUBaAIPIGlzIG5vdCBkZWZpbmVkAQFqAQFoCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAWgCAAEBawEBaAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFAWgJAKwCAgkArAICAg9tYW5kYXRvcnkgdGhpcy4FAWgCDyBpcyBub3QgZGVmaW5lZAEBbAEBbQMJAGYCAAAFAW0JAQEtAQUBbQUBbQEBbgEBbQMJAL8CAgUBZAUBbQkAvgIBBQFtBQFtAAFvAgwlc19fbWF4RGVwdGgAAXAAHgABcQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQFvBQFwAQFyAAIcJXMlc19fY29uZmlnX19mYWN0b3J5QWRkcmVzcwABcwkBAWsBCQEBcgAAAXQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAXMBAXUAAh0lcyVzX19jb25maWdfX2VtaXNzaW9uQWRkcmVzcwEBdgAJALkJAgkAzAgCAgIlcwkAzAgCAhZ2b3RpbmdFbWlzc2lvbkNvbnRyYWN0BQNuaWwFAWEAAXcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFAXQJAQF2AAEBeAEBeQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgdtYXBwaW5nCQDMCAICCG51bTJ1c2VyCQDMCAIJAKQDAQUBeQUDbmlsBQFhAAF6CQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAgtwcm9ncmFtTmFtZQUDbmlsBQFhAAFBAgZ3eGxvY2sAAUIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUBegUBQQABQwkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgIMbWluR1d4QW1vdW50BQNuaWwFAWEAAUQJAGgCAPQDBQFjAAFFCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAUMFAUQAAUYJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICFnJlZmVycmVyUmV3YXJkUGVybWlsbGUFA25pbAUBYQABRwAyAAFICQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAUYFAUcAAUkJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICFnJlZmVycmFsUmV3YXJkUGVybWlsbGUFA25pbAUBYQABSgAyAAFLCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAUkFAUoBAUwBAU0JALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIIcmVmZXJyZXIJAMwIAgUBQgkAzAgCBQFNBQNuaWwFAWEBAU4CAU8BUAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhF1bmNsYWltZWRSZWZlcnJhbAkAzAgCBQFPCQDMCAIFAVAFA25pbAUBYQABUQkBAWsBCQEBdQAAAVIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAVEAAVMAAQABVAACAAFVAAMAAVYABAEBVwACCiVzX19jb25maWcBAVgACQC1CQIJAQFrAQkBAVcABQFhAQFZBAFaAmFhAmFiAXEJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCBQFaCQDMCAIFAmFhCQDMCAIFAmFiCQDMCAIJAKQDAQUBcQUDbmlsBQFhAQJhYwAEAmFkCQEBWAAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFAmFkBQFVAihib29zdGluZyBjb250cmFjdCBhZGRyZXNzIGlzIG5vdCBkZWZpbmVkAQJhZQACKCVzJXNfX2d3eFJld2FyZEVtaXNzaW9uUGFydF9fc3RhcnRIZWlnaHQBAmFmAAIPJXNfX25leHRVc2VyTnVtAQJhZwACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAECYWgAAh8lcyVzX19nd3hIb2xkZXJzUmV3YXJkX19jdXJyZW50AQJhaQACHCVzJXNfX2d3eEhvbGRlcnNSZXdhcmRfX25leHQBAmFqAAIgJXMlc19fcG9vbFdlaWdodF9fR1dYdmlydHVhbFBPT0wBAmFrAAIVJXNfX25leHRQcm9jZXNzZWRVc2VyAQJhbAACECVzX19sYXRlc3RQZXJpb2QBAmFtAAIOJXNfX25leHRQZXJpb2QBAmFuAAITJXNfX3Byb2Nlc3NpbmdTdGFnZQECYW8AAhclc19fbmV4dFByb2Nlc3NlZFBlcmlvZAECYXABAmFxCQC5CQIJAMwIAgIEJXMlZAkAzAgCAg11c2VyVW5jbGFpbWVkCQDMCAIJAKQDAQUCYXEFA25pbAUBYQECYXIBAmFxCQC5CQIJAMwIAgIXJXMlZF9fbmV4dENsYWltZWRQZXJpb2QJAMwIAgkApAMBBQJhcQUDbmlsBQFhAQJhcwECYXEJALkJAgkAzAgCAhklcyVkX19sYXN0UHJvY2Vzc2VkUGVyaW9kCQDMCAIJAKQDAQUCYXEFA25pbAUBYQECYXQBAmF1CQC5CQIJAMwIAgIaJXMlZF9fc3RhcnRIZWlnaHRGb3JQZXJpb2QJAMwIAgkApAMBBQJhdQUDbmlsBQFhAQJhdgECYXUJALkJAgkAzAgCAhclcyVkX19hdXhFbWlzc2lvblJld2FyZAkAzAgCCQCkAwEFAmF1BQNuaWwFAWEBAmF3AQJhdQkAuQkCCQDMCAICGiVzJWRfX3RvdGFsQW1vdW50Rm9yUGVyaW9kCQDMCAIJAKQDAQUCYXUFA25pbAUBYQECYXgAAhIlc19fbGFzdFBheW91dEluZm8BAmF5AwJhdQJhegJhQQkAuQkCCQDMCAICBiVkJWQlZAkAzAgCCQCkAwEFAmF1CQDMCAIJAKQDAQUCYXoJAMwIAgkApAMBBQJhQQUDbmlsBQFhAQJhQgECYXUJALkJAgkAzAgCAhglcyVzJWRfX3BheW91dHNfX2hpc3RvcnkJAMwIAgkApAMBBQJhdQUDbmlsBQFhAQJhQwECYXUJALkJAgkAzAgCAholcyVkX190b3RhbFdlaWdodEZvclBlcmlvZAkAzAgCCQCkAwEFAmF1BQNuaWwFAWEBAmFEAgJhdQJhcQkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIJAKQDAQUCYXEJAMwIAgIBawkAzAgCCQCkAwEFAmF1BQNuaWwFAWEBAmFFAgJhdQJhcQkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIJAKQDAQUCYXEJAMwIAgIBYgkAzAgCCQCkAwEFAmF1BQNuaWwFAWEBAmFGAgJhdQJhcQkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIJAKQDAQUCYXEJAMwIAgIGd2VpZ2h0CQDMCAIJAKQDAQUCYXUFA25pbAUBYQECYUcACQC5CQIJAMwIAgIEJXMlcwkAzAgCAgZjb25maWcJAMwIAgIYcmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzBQNuaWwFAWEAAmFICQERQGV4dHJOYXRpdmUoMTA2MikBCQEBawEJAQJhRwABAmFJBAJhSgJhSwJhTAJhTQQCYU4JALkJAgkAzAgCAhElcyVzJXMlc19faGlzdG9yeQkAzAgCBQJhSgkAzAgCBQJhSwkAzAgCCQDYBAEIBQJhTQ10cmFuc2FjdGlvbklkBQNuaWwFAWEEAmFPCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFAmFMBQNuaWwFAWEJAQtTdHJpbmdFbnRyeQIFAmFOBQJhTwECYVAAAhQlc19fbWFuYWdlclB1YmxpY0tleQECYVEAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAmFSAAQCYVMJAKIIAQkBAmFQAAMJAAECBQJhUwIGU3RyaW5nBAJhVAUCYVMJANkEAQUCYVQDCQABAgUCYVMCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgECYVUABAJhUwkAoggBCQECYVEAAwkAAQIFAmFTAgZTdHJpbmcEAmFUBQJhUwkA2QQBBQJhVAMJAAECBQJhUwIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQJhVgECYU0EAmFXCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEAmFTCQECYVIAAwkAAQIFAmFTAgpCeXRlVmVjdG9yBAJhWAUCYVMDCQAAAggFAmFND2NhbGxlclB1YmxpY0tleQUCYVgGBQJhVwMJAAECBQJhUwIEVW5pdAMJAAACCAUCYU0GY2FsbGVyBQR0aGlzBgUCYVcJAAIBAgtNYXRjaCBlcnJvcgECYVkEAmFaAmJhAmF1AmFxBAJiYgkBAmFzAQUCYXEEAmJjCQECYUQCBQJhdQUCYXEEAmJkCQCaCAIFAmFaBQJiYwQCYmUJAQJhRgIFAmF1BQJhcQMJAQlpc0RlZmluZWQBBQJiZAQCYmYJAQV2YWx1ZQEFAmJkBAJiZwkBBXZhbHVlAQkAmggCBQJhWgkBAmFFAgUCYXUFAmFxBAJiaAkAZAIJAGgCBQJiZgUCYmEFAmJnAwkAZgIFAmJoAAAJAJQKAgkAaQIFAmJoBQFiCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJiYgUCYXUJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJlBQJiaAUDbmlsCQCUCgIAAAUDbmlsBAJiaQkAmggCBQR0aGlzBQJiYgMDCQEJaXNEZWZpbmVkAQUCYmkJAGcCBQJhdQkBBXZhbHVlAQUCYmkHBAJiagkBBXZhbHVlAQUCYmkEAmJmCQEFdmFsdWUBCQCaCAIFAmFaCQECYUQCBQJiagUCYXEEAmJnCQEFdmFsdWUBCQCaCAIFAmFaCQECYUUCBQJiagUCYXEEAmJoCQBkAgkAaAIFAmJmBQJiYQUCYmcDCQBmAgUCYmgAAAkAlAoCCQBpAgUCYmgFAWIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJlBQJiaAUDbmlsCQCUCgIAAAUDbmlsCQCUCgIAAAUDbmlsAQJiawQCYVoCYmECYXUCYXEEAmJlCQECYUYCBQJhdQUCYXEEAmJsCQCfCAEFAmJlBAJhUwUCYmwDCQABAgUCYVMCBFVuaXQAAAMJAAECBQJhUwIDSW50BAJiaAUCYVMJAGkCBQJiaAUBYgkAAgECC01hdGNoIGVycm9yAQJibQICYWICYm4EAWgJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIHbWFwcGluZwkAzAgCAgh1c2VyMm51bQkAzAgCBQJibgUDbmlsBQFhCQENcGFyc2VJbnRWYWx1ZQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQEHQWRkcmVzcwEJANkEAQUCYWIFAWgJAKwCAgkArAICCQCsAgICDVVzZXIgYWRkcmVzcyAFAmJuAi0gaXMgbm90IGZvdW5kIGluIGJvb3N0aW5nIGNvbnRyYWN0IGRhdGEsIGtleT0FAWgBAmJvAAkBAWcBCQECYW0AAQJicAECYm4EAmFkCQEBWAAEAmJxCQECYm0CCQCRAwIFAmFkBQFVBQJibgQCYnIJAJ8IAQkBAmFwAQUCYnEEAmFTBQJicgMJAAECBQJhUwIEVW5pdAkAlAoCAAAFA25pbAMJAAECBQJhUwIDSW50BAJicwUCYVMJAJQKAgUCYnMJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhcAEFAmJxAAAFA25pbAkAAgECC01hdGNoIGVycm9yEAJhTQEWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQICYm4CYnQEAmJ1CQCdCAIFAmFICQEBTAEFAmJuBAJidgMJAAACBQJidQUEdW5pdAUEdW5pdAkA/AcEBQJhSAIWdXBkYXRlUmVmZXJyYWxBY3Rpdml0eQkAzAgCBQFCCQDMCAIFAmJuCQDMCAIJAGcCBQJidAUBRQUDbmlsBQNuaWwDCQAAAgUCYnYFAmJ2CQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhTQEOZmluYWxpemVIZWxwZXIABAJidwkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYW4ABQFlBAJieAkBAWcBCQECYW8ABAJieQkBAWcBCQECYWsABAJiegkBAWcBCQECYWwABAJiQQkBC3ZhbHVlT3JFbHNlAgkAmggCCQECYWMACQECYWYAAAAEAmJCCQECYUMBBQJieAQCYkMJAQFnAQkBAmFDAQUCYngEAmJhCQEBZwEJAQJhdAEFAmJ4AwkAZgIFAmJ4BQJiegkAlAoCBQNuaWwHAwkAAAIFAmJ3BQFlBAJiRAkBAmFZBAkBAmFjAAUCYmEFAmJ4BQJieQQCYkUIBQJiRAJfMQQCYkYIBQJiRAJfMgQCYkcJAGQCBQJiQwUCYkUEAmJIAwkAZgIJAGUCBQJiQQABBQJieQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFrAAkAZAIFAmJ5AAEFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFuAAUBZgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFrAAAABQNuaWwJAJQKAgkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJCBQJiRwUDbmlsBQJiSAUCYkYGAwkAAAIFAmJ3BQFmBAJiRQkBAmJrBAkBAmFjAAUCYmEFAmJ4BQJieQQCYkkJAGsDCQEBZwEJAQJhdwEFAmJ4BQJiRQUCYkMEAmJKCQBrAwkBAWcBCQECYXYBBQJieAUCYkUFAmJDBAJiSwkAZAIFAmJKBQJiSQQCYnIJAJ8IAQkBAmFwAQUCYnkEAmJuCQERQGV4dHJOYXRpdmUoMTA1MykCCQECYWMACQEBeAEFAmJ5BAJidQkAnQgCBQJhSAkBAUwBBQJibgQCYnYDCQAAAgUCYnUFBHVuaXQFBHVuaXQJAPwHBAUCYUgCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgUBQgkAzAgCBQJibgkAzAgCCQBnAgUCYkUFAUUFA25pbAUDbmlsAwkAAAIFAmJ2BQJidgQCYkwDAwkAAAIFAmJ1BQR1bml0BgkAZgIFAUUFAmJFBQR1bml0BAJiTQkAawMFAmJLBQFIBQFiBAJiTgkAawMFAmJLBQFLBQFiCQD8BwQFAmFIAgxpbmNVbmNsYWltZWQJAMwIAgUBQgkAzAgCBQJibgkAzAgCBQJiTQkAzAgCBQJiTgUDbmlsBQNuaWwDCQAAAgUCYkwFAmJMBAJiTwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFwAQUCYnkJAGQCCQELdmFsdWVPckVsc2UCBQJicgAABQJiSwUDbmlsBAJiSAMJAGYCCQBlAgUCYkEAAQUCYnkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhawAJAGQCBQJieQABBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbwAJAGQCBQJieAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYWsAAAAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFuAAUDbmlsCQCUCgIJAM4IAgUCYk8FAmJIBgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECGGludmFsaWQgcHJvY2Vzc2luZyBzdGFnZQJhTQEPZmluYWxpemVXcmFwcGVyAQJiUAQCYlEKAAJiUgkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwDCQABAgUCYlICB0Jvb2xlYW4FAmJSCQACAQkArAICCQADAQUCYlICHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUCYlEFAmJRAwkBASEBBQJiUQMJAAACBQJiUAUBcQkAAgECEk5vdGhpbmcgdG8gcHJvY2VzcwkAlAoCBQNuaWwFBHVuaXQDCQBmAgUCYlAAAAkAlAoCBQNuaWwJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIJAGUCBQJiUAABBQNuaWwFA25pbAkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4CYU0BHXByb2Nlc3NQZW5kaW5nUGVyaW9kc0FuZFVzZXJzAAkAlAoCBQNuaWwJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIFAXEFA25pbAUDbmlsAmFNAQdkZXBvc2l0AAQCYlMDCQAAAggFAmFNBmNhbGxlcgUBdwYJAQJhVgEFAmFNAwkAAAIFAmJTBQJiUwQCYXUJAQJibwAEAmJUCQBlAgUGaGVpZ2h0CQEBaQEJAQJhZQAEAmJVCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUBUgkBAmFnAAkArAICCQCsAgICHG1hbmRhdG9yeSBlbWlzc2lvbl9jb250cmFjdC4JAQJhZwACDyBpcyBub3QgZGVmaW5lZAQCYlYJAQt2YWx1ZU9yRWxzZQIJAJoIAgUBUgkBAmFoAAAABAJiVwkAawMJAGgCBQJiVAUCYlYFAmJVBQFjBAJiWAkA/AcEBQFSAgRlbWl0CQDMCAIFAmJXBQNuaWwFA25pbAMJAAACBQJiWAUCYlgEAmJZAAAEAmJaCQECYXkDBQJhdQUCYlkFAmJXBAJjYQkA/AcEBQFSAhZnd3hIb2xkZXJzUmV3YXJkVXBkYXRlBQNuaWwFA25pbAMJAAACBQJjYQUCY2EEAmNiCQBkAgUCYlkFAmJXBAJjYwMJAAACBQJjYgAABQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhbAAFAmF1CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXQBBQJhdQUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXYBBQJhdQUCYlcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJhZQAFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF3AQUCYXUFAmJZCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYW0ACQBkAgUCYXUAAQkAzAgCCQELU3RyaW5nRW50cnkCCQECYXgABQJiWgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUIBBQJhdQUCYloFA25pbAkAlAoCBQJjYwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhTQELY2xhaW1SZXdhcmQABAJhZAkBAVgABAJjZAkApQgBCAUCYU0GY2FsbGVyBAJjZQkBAmJwAQUCY2QEAmFMCAUCY2UCXzEEAmNjCAUCY2UCXzIEAmNmAwkAZgIFAmFMAAAGCQACAQIQTm90aGluZyB0byBjbGFpbQMJAAACBQJjZgUCY2YEAmNnAAAEAmNoCgACYlIJAPwHBAUCYUgCBWNsYWltCQDMCAIFAUIFA25pbAUDbmlsAwkAAQIFAmJSAgNJbnQFAmJSCQACAQkArAICCQADAQUCYlICGCBjb3VsZG4ndCBiZSBjYXN0IHRvIEludAQCY2kJAGQCBQJhTAUCY2gJAJQKAgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQJhTQZjYWxsZXIFAmNpCQDZBAEJAJEDAgUCYWQFAVMJAMwIAgkBAmFJBAIFY2xhaW0FAmNkBQJhTAUCYU0FA25pbAUCY2MJAMwIAgUCY2kJAMwIAgUCY2cFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgJhTQETY2xhaW1SZXdhcmRSRUFET05MWQECY2QEAmNqCQECYnABBQJjZAQCYUwIBQJjagJfMQQCY2MIBQJjagJfMgQCY2sJAQt2YWx1ZU9yRWxzZQIJAJoIAgUCYUgJAQFOAgUBQgUCY2QAAAQCY2kJAGQCBQJhTAUCY2sJAJQKAgUDbmlsBQJjaQJhTQEdbGF0ZXN0RmluYWxpemVkUGVyaW9kUkVBRE9OTFkBAmNkCQCUCgIFA25pbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQECYWwAAP///////////wECYU0BIWxhdGVzdEZpbmFsaXplZFBlcmlvZEluZm9SRUFET05MWQECY2QJAJQKAgUDbmlsCQEBagEJAQJheAACYU0BFWNhbGNHd3hQYXJhbXNSRUFET05MWQMCY2wCY20CY24EAmNvCQBkAgUCY20FAmNuBAJjcAkBAS0BCQBrAwUCY2wFAWIFAmNuBAJjcQkAaAIJAGsDBQJjbAUBYgUCY24FAmNvCQCUCgIFA25pbAkAzAgCBQJjcAkAzAgCBQJjcQkAzAgCCQECYm8ABQNuaWwCYU0BGmNhbGNHd3hBbW91bnRTdGFydFJFQURPTkxZAwJjcgJjcwJjdAQCY3UJAGsDBQJjcwUBYwUCY3QEAmJ0CQBrAwUCY3IFAmN1BQFjCQCUCgIFA25pbAkAzAgCBQJidAUDbmlsAmFNARVvbkVtaXNzaW9uRm9yR3d4U3RhcnQAAwkBAiE9AggFAmFNBmNhbGxlcgUBdAkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmFlAAUGaGVpZ2h0BQNuaWwCYU0BI2xhdGVzdFBlcmlvZEVtaXNzaW9uUmV3YXJkc1JFQURPTkxZAQJjZAQCYXUJAQJibwAJAJQKAgUDbmlsCQDMCAIJAQFnAQkBAmF2AQUCYXUFA25pbAJhTQEFY2FsY0QFAmN2AmN3AmN4AmN5AmN6BAJjQQkAtgIBAAIEAmNCCQCnAwEFAmN5BAJjQwkApwMBBQJjegQCY0QJAKcDAQUCY3YEAmNFCQCnAwEFAmN3BAJjRgkAuQICCQCnAwEFAmN4BQJjQgQCYVQJALcCAgUCY0QFAmNFAwkAAAIFAmFUBQFkCQCUCgIFA25pbAkApgMBBQFkBAJjRwkAuQICBQJjRgUCY0EEAmNICQDMCAIAAAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFCQDMCAIABgUDbmlsCgECY0kCAmNKAmNLBAJjTAUCY0oEAmNNCAUCY0wCXzEEAmNOCAUCY0wCXzIEAmNPCAUCY0wCXzMDCQECIT0CBQJjTwUEdW5pdAUCY0oEAmNQCQC6AgIJALkCAgkAuQICBQJjTQUCY00FAmNNCQC5AgIJALkCAgkAuQICBQJjRAUCY0UFAmNBBQJjQQQCY1EJALoCAgkAuQICCQC3AgIJALoCAgkAuQICBQJjRwUCYVQFAmNCCQC5AgIFAmNQBQJjQQUCY00JALcCAgkAugICCQC5AgIJALgCAgUCY0cFAmNCBQJjTQUCY0IJALkCAgkAtwICBQJjQQkAtgIBAAEFAmNQBAJjUgkBAW4BCQC4AgIFAmNRCQEFdmFsdWUBBQJjTQMJAMACAgUCY0MFAmNSCQCVCgMFAmNRBQJjTQUCY0sJAJUKAwUCY1EFAmNNBQR1bml0BAJjUwoAAmNUBQJjSAoAAmNVCQCQAwEFAmNUCgACY1YJAJUKAwUCYVQFBHVuaXQFBHVuaXQKAQJjVwICY1gCY1kDCQBnAgUCY1kFAmNVBQJjWAkBAmNJAgUCY1gJAJEDAgUCY1QFAmNZCgECY1oCAmNYAmNZAwkAZwIFAmNZBQJjVQUCY1gJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA3CQECY1oCCQECY1cCCQECY1cCCQECY1cCCQECY1cCCQECY1cCCQECY1cCCQECY1cCBQJjVgAAAAEAAgADAAQABQAGAAcEAmNRCAUCY1MCXzEEAmNOCAUCY1MCXzIEAmNPCAUCY1MCXzMDCQECIT0CBQJjTwUEdW5pdAkAlAoCBQNuaWwJAKYDAQUCY1EEAmNSCQEBbgEJALgCAgUCY1EJAQV2YWx1ZQEFAmNOCQACAQkArAICAh1EIGNhbGN1bGF0aW9uIGVycm9yLCBkRGlmZiA9IAkApgMBBQJjUgJhTQEKc2V0TWFuYWdlcgECZGEEAmJTCQECYVYBBQJhTQMJAAACBQJiUwUCYlMEAmRiCQDZBAEFAmRhAwkAAAIFAmRiBQJkYgkAzAgCCQELU3RyaW5nRW50cnkCCQECYVEABQJkYQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAmFNAQ5jb25maXJtTWFuYWdlcgAEAmRjCQECYVUABAJkZAMJAQlpc0RlZmluZWQBBQJkYwYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZGQFAmRkBAJkZQMJAAACCAUCYU0PY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJkYwYJAAIBAhtZb3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCZGUFAmRlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhUAAJANgEAQkBBXZhbHVlAQUCZGMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAmFRAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJkZgECZGcABAJkaAQCYVMJAQJhUgADCQABAgUCYVMCCkJ5dGVWZWN0b3IEAmFYBQJhUwUCYVgDCQABAgUCYVMCBFVuaXQIBQJkZg9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCZGYJYm9keUJ5dGVzCQCRAwIIBQJkZgZwcm9vZnMAAAUCZGgHAUpB", "height": 2538570, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FWL2HwD6oRFLzo6F455UKyxYYhaPwpX4iTJF1DskdgTa Next: Fjy5zC31WL1bKgvRC7dEx4yMMbErWjVvPvHDaNynFMmx Diff:
OldNewDifferences
444444 let bZ = ay(au, bY, bW)
445445 let ca = invoke(R, "gwxHoldersRewardUpdate", nil, nil)
446446 if ((ca == ca))
447- then [IntegerEntry(al(), au), IntegerEntry(at(au), height), IntegerEntry(av(au), bW), IntegerEntry(ae(), height), IntegerEntry(aw(au), bY), IntegerEntry(am(), (au + 1)), StringEntry(ax(), bZ), StringEntry(aB(au), bZ)]
447+ then {
448+ let cb = (bY + bW)
449+ let cc = if ((cb == 0))
450+ then nil
451+ else [IntegerEntry(al(), au), IntegerEntry(at(au), height), IntegerEntry(av(au), bW), IntegerEntry(ae(), height), IntegerEntry(aw(au), bY), IntegerEntry(am(), (au + 1)), StringEntry(ax(), bZ), StringEntry(aB(au), bZ)]
452+ $Tuple2(cc, unit)
453+ }
448454 else throw("Strict value is not equal to itself.")
449455 }
450456 else throw("Strict value is not equal to itself.")
457463 @Callable(aM)
458464 func claimReward () = {
459465 let ad = X()
460- let cb = toString(aM.caller)
461- let cc = bp(cb)
462- let aL = cc._1
463- let cd = cc._2
464- let ce = if ((aL > 0))
466+ let cd = toString(aM.caller)
467+ let ce = bp(cd)
468+ let aL = ce._1
469+ let cc = ce._2
470+ let cf = if ((aL > 0))
465471 then true
466472 else throw("Nothing to claim")
467- if ((ce == ce))
473+ if ((cf == cf))
468474 then {
469- let cf = 0
470- let cg = {
475+ let cg = 0
476+ let ch = {
471477 let bR = invoke(aH, "claim", [B], nil)
472478 if ($isInstanceOf(bR, "Int"))
473479 then bR
474480 else throw(($getType(bR) + " couldn't be cast to Int"))
475481 }
476- let ch = (aL + cg)
477- $Tuple2(([ScriptTransfer(aM.caller, ch, fromBase58String(ad[S])), aI("claim", cb, aL, aM)] ++ cd), [ch, cf])
482+ let ci = (aL + ch)
483+ $Tuple2(([ScriptTransfer(aM.caller, ci, fromBase58String(ad[S])), aI("claim", cd, aL, aM)] ++ cc), [ci, cg])
478484 }
479485 else throw("Strict value is not equal to itself.")
480486 }
482488
483489
484490 @Callable(aM)
485-func claimRewardREADONLY (cb) = {
486- let ci = bp(cb)
487- let aL = ci._1
488- let cd = ci._2
489- let cj = valueOrElse(getInteger(aH, N(B, cb)), 0)
490- let ch = (aL + cj)
491- $Tuple2(nil, ch)
491+func claimRewardREADONLY (cd) = {
492+ let cj = bp(cd)
493+ let aL = cj._1
494+ let cc = cj._2
495+ let ck = valueOrElse(getInteger(aH, N(B, cd)), 0)
496+ let ci = (aL + ck)
497+ $Tuple2(nil, ci)
492498 }
493499
494500
495501
496502 @Callable(aM)
497-func latestFinalizedPeriodREADONLY (cb) = $Tuple2(nil, valueOrElse(getInteger(this, al()), -1))
503+func latestFinalizedPeriodREADONLY (cd) = $Tuple2(nil, valueOrElse(getInteger(this, al()), -1))
498504
499505
500506
501507 @Callable(aM)
502-func latestFinalizedPeriodInfoREADONLY (cb) = $Tuple2(nil, j(ax()))
508+func latestFinalizedPeriodInfoREADONLY (cd) = $Tuple2(nil, j(ax()))
503509
504510
505511
506512 @Callable(aM)
507-func calcGwxParamsREADONLY (ck,cl,cm) = {
508- let cn = (cl + cm)
509- let co = -(fraction(ck, b, cm))
510- let cp = (fraction(ck, b, cm) * cn)
511- $Tuple2(nil, [co, cp, bo()])
513+func calcGwxParamsREADONLY (cl,cm,cn) = {
514+ let co = (cm + cn)
515+ let cp = -(fraction(cl, b, cn))
516+ let cq = (fraction(cl, b, cn) * co)
517+ $Tuple2(nil, [cp, cq, bo()])
512518 }
513519
514520
515521
516522 @Callable(aM)
517-func calcGwxAmountStartREADONLY (cq,cr,cs) = {
518- let ct = fraction(cr, c, cs)
519- let bt = fraction(cq, ct, c)
523+func calcGwxAmountStartREADONLY (cr,cs,ct) = {
524+ let cu = fraction(cs, c, ct)
525+ let bt = fraction(cr, cu, c)
520526 $Tuple2(nil, [bt])
521527 }
522528
530536
531537
532538 @Callable(aM)
533-func latestPeriodEmissionRewardsREADONLY (cb) = {
539+func latestPeriodEmissionRewardsREADONLY (cd) = {
534540 let au = bo()
535541 $Tuple2(nil, [g(av(au))])
536542 }
538544
539545
540546 @Callable(aM)
541-func calcD (cu,cv,cw,cx,cy) = {
542- let cz = toBigInt(2)
543- let cA = parseBigIntValue(cx)
547+func calcD (cv,cw,cx,cy,cz) = {
548+ let cA = toBigInt(2)
544549 let cB = parseBigIntValue(cy)
545- let cC = parseBigIntValue(cu)
550+ let cC = parseBigIntValue(cz)
546551 let cD = parseBigIntValue(cv)
547- let cE = (parseBigIntValue(cw) * cA)
548- let aT = (cC + cD)
552+ let cE = parseBigIntValue(cw)
553+ let cF = (parseBigIntValue(cx) * cB)
554+ let aT = (cD + cE)
549555 if ((aT == d))
550556 then $Tuple2(nil, toString(d))
551557 else {
552- let cF = (cE * cz)
553- let cG = [0, 1, 2, 3, 4, 5, 6]
554- func cH (cI,cJ) = {
555- let cK = cI
556- let cL = cK._1
557- let cM = cK._2
558- let cN = cK._3
559- if ((cN != unit))
560- then cI
558+ let cG = (cF * cA)
559+ let cH = [0, 1, 2, 3, 4, 5, 6]
560+ func cI (cJ,cK) = {
561+ let cL = cJ
562+ let cM = cL._1
563+ let cN = cL._2
564+ let cO = cL._3
565+ if ((cO != unit))
566+ then cJ
561567 else {
562- let cO = (((cL * cL) * cL) / (((cC * cD) * cz) * cz))
563- let cP = (((((cF * aT) / cA) + (cO * cz)) * cL) / ((((cF - cA) * cL) / cA) + ((cz + toBigInt(1)) * cO)))
564- let cQ = n((cP - value(cL)))
565- if ((cB >= cQ))
566- then $Tuple3(cP, cL, cJ)
567- else $Tuple3(cP, cL, unit)
568+ let cP = (((cM * cM) * cM) / (((cD * cE) * cA) * cA))
569+ let cQ = (((((cG * aT) / cB) + (cP * cA)) * cM) / ((((cG - cB) * cM) / cB) + ((cA + toBigInt(1)) * cP)))
570+ let cR = n((cQ - value(cM)))
571+ if ((cC >= cR))
572+ then $Tuple3(cQ, cM, cK)
573+ else $Tuple3(cQ, cM, unit)
568574 }
569575 }
570576
571- let cR = {
572- let cS = cG
573- let cT = size(cS)
574- let cU = $Tuple3(aT, unit, unit)
575- func cV (cW,cX) = if ((cX >= cT))
576- then cW
577- else cH(cW, cS[cX])
577+ let cS = {
578+ let cT = cH
579+ let cU = size(cT)
580+ let cV = $Tuple3(aT, unit, unit)
581+ func cW (cX,cY) = if ((cY >= cU))
582+ then cX
583+ else cI(cX, cT[cY])
578584
579- func cY (cW,cX) = if ((cX >= cT))
580- then cW
585+ func cZ (cX,cY) = if ((cY >= cU))
586+ then cX
581587 else throw("List size exceeds 7")
582588
583- cY(cV(cV(cV(cV(cV(cV(cV(cU, 0), 1), 2), 3), 4), 5), 6), 7)
589+ cZ(cW(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6), 7)
584590 }
585- let cP = cR._1
586- let cM = cR._2
587- let cN = cR._3
588- if ((cN != unit))
589- then $Tuple2(nil, toString(cP))
591+ let cQ = cS._1
592+ let cN = cS._2
593+ let cO = cS._3
594+ if ((cO != unit))
595+ then $Tuple2(nil, toString(cQ))
590596 else {
591- let cQ = n((cP - value(cM)))
592- throw(("D calculation error, dDiff = " + toString(cQ)))
597+ let cR = n((cQ - value(cN)))
598+ throw(("D calculation error, dDiff = " + toString(cR)))
593599 }
594600 }
595601 }
597603
598604
599605 @Callable(aM)
600-func setManager (cZ) = {
606+func setManager (da) = {
601607 let bS = aV(aM)
602608 if ((bS == bS))
603609 then {
604- let da = fromBase58String(cZ)
605- if ((da == da))
606- then [StringEntry(aQ(), cZ)]
610+ let db = fromBase58String(da)
611+ if ((db == db))
612+ then [StringEntry(aQ(), da)]
607613 else throw("Strict value is not equal to itself.")
608614 }
609615 else throw("Strict value is not equal to itself.")
613619
614620 @Callable(aM)
615621 func confirmManager () = {
616- let db = aU()
617- let dc = if (isDefined(db))
622+ let dc = aU()
623+ let dd = if (isDefined(dc))
618624 then true
619625 else throw("No pending manager")
620- if ((dc == dc))
626+ if ((dd == dd))
621627 then {
622- let dd = if ((aM.callerPublicKey == value(db)))
628+ let de = if ((aM.callerPublicKey == value(dc)))
623629 then true
624630 else throw("You are not pending manager")
625- if ((dd == dd))
626- then [StringEntry(aP(), toBase58String(value(db))), DeleteEntry(aQ())]
631+ if ((de == de))
632+ then [StringEntry(aP(), toBase58String(value(dc))), DeleteEntry(aQ())]
627633 else throw("Strict value is not equal to itself.")
628634 }
629635 else throw("Strict value is not equal to itself.")
630636 }
631637
632638
633-@Verifier(de)
634-func df () = {
635- let dg = {
639+@Verifier(df)
640+func dg () = {
641+ let dh = {
636642 let aS = aR()
637643 if ($isInstanceOf(aS, "ByteVector"))
638644 then {
640646 aX
641647 }
642648 else if ($isInstanceOf(aS, "Unit"))
643- then de.senderPublicKey
649+ then df.senderPublicKey
644650 else throw("Match error")
645651 }
646- sigVerify(de.bodyBytes, de.proofs[0], dg)
652+ sigVerify(df.bodyBytes, df.proofs[0], dh)
647653 }
648654
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
1616 func g (h) = valueOrElse(getInteger(this, h), 0)
1717
1818
1919 func i (h) = valueOrErrorMessage(getInteger(this, h), (("mandatory this." + h) + " is not defined"))
2020
2121
2222 func j (h) = valueOrElse(getString(this, h), "")
2323
2424
2525 func k (h) = valueOrErrorMessage(getString(this, h), (("mandatory this." + h) + " is not defined"))
2626
2727
2828 func l (m) = if ((0 > m))
2929 then -(m)
3030 else m
3131
3232
3333 func n (m) = if ((d > m))
3434 then -(m)
3535 else m
3636
3737
3838 let o = "%s__maxDepth"
3939
4040 let p = 30
4141
4242 let q = valueOrElse(getInteger(this, o), p)
4343
4444 func r () = "%s%s__config__factoryAddress"
4545
4646
4747 let s = k(r())
4848
4949 let t = addressFromStringValue(s)
5050
5151 func u () = "%s%s__config__emissionAddress"
5252
5353
5454 func v () = makeString(["%s", "votingEmissionContract"], a)
5555
5656
5757 let w = addressFromStringValue(getStringValue(t, v()))
5858
5959 func x (y) = makeString(["%s%s%s", "mapping", "num2user", toString(y)], a)
6060
6161
6262 let z = makeString(["%s%s", "referral", "programName"], a)
6363
6464 let A = "wxlock"
6565
6666 let B = valueOrElse(getString(this, z), A)
6767
6868 let C = makeString(["%s%s", "referral", "minGWxAmount"], a)
6969
7070 let D = (500 * c)
7171
7272 let E = valueOrElse(getInteger(this, C), D)
7373
7474 let F = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
7575
7676 let G = 50
7777
7878 let H = valueOrElse(getInteger(this, F), G)
7979
8080 let I = makeString(["%s%s", "referral", "referralRewardPermille"], a)
8181
8282 let J = 50
8383
8484 let K = valueOrElse(getInteger(this, I), J)
8585
8686 func L (M) = makeString(["%s%s%s", "referrer", B, M], a)
8787
8888
8989 func N (O,P) = makeString(["%s%s%s", "unclaimedReferral", O, P], a)
9090
9191
9292 let Q = k(u())
9393
9494 let R = addressFromStringValue(Q)
9595
9696 let S = 1
9797
9898 let T = 2
9999
100100 let U = 3
101101
102102 let V = 4
103103
104104 func W () = "%s__config"
105105
106106
107107 func X () = split(k(W()), a)
108108
109109
110110 func Y (Z,aa,ab,q) = makeString(["%s%s%s%d", Z, aa, ab, toString(q)], a)
111111
112112
113113 func ac () = {
114114 let ad = X()
115115 valueOrErrorMessage(addressFromString(ad[U]), "boosting contract address is not defined")
116116 }
117117
118118
119119 func ae () = "%s%s__gwxRewardEmissionPart__startHeight"
120120
121121
122122 func af () = "%s__nextUserNum"
123123
124124
125125 func ag () = "%s%s__ratePerBlock__current"
126126
127127
128128 func ah () = "%s%s__gwxHoldersReward__current"
129129
130130
131131 func ai () = "%s%s__gwxHoldersReward__next"
132132
133133
134134 func aj () = "%s%s__poolWeight__GWXvirtualPOOL"
135135
136136
137137 func ak () = "%s__nextProcessedUser"
138138
139139
140140 func al () = "%s__latestPeriod"
141141
142142
143143 func am () = "%s__nextPeriod"
144144
145145
146146 func an () = "%s__processingStage"
147147
148148
149149 func ao () = "%s__nextProcessedPeriod"
150150
151151
152152 func ap (aq) = makeString(["%s%d", "userUnclaimed", toString(aq)], a)
153153
154154
155155 func ar (aq) = makeString(["%s%d__nextClaimedPeriod", toString(aq)], a)
156156
157157
158158 func as (aq) = makeString(["%s%d__lastProcessedPeriod", toString(aq)], a)
159159
160160
161161 func at (au) = makeString(["%s%d__startHeightForPeriod", toString(au)], a)
162162
163163
164164 func av (au) = makeString(["%s%d__auxEmissionReward", toString(au)], a)
165165
166166
167167 func aw (au) = makeString(["%s%d__totalAmountForPeriod", toString(au)], a)
168168
169169
170170 func ax () = "%s__lastPayoutInfo"
171171
172172
173173 func ay (au,az,aA) = makeString(["%d%d%d", toString(au), toString(az), toString(aA)], a)
174174
175175
176176 func aB (au) = makeString(["%s%s%d__payouts__history", toString(au)], a)
177177
178178
179179 func aC (au) = makeString(["%s%d__totalWeightForPeriod", toString(au)], a)
180180
181181
182182 func aD (au,aq) = makeString(["%s%d%s%d__paramByPeriod", toString(aq), "k", toString(au)], a)
183183
184184
185185 func aE (au,aq) = makeString(["%s%d%s%d__paramByPeriod", toString(aq), "b", toString(au)], a)
186186
187187
188188 func aF (au,aq) = makeString(["%s%d%s%d__paramByPeriod", toString(aq), "weight", toString(au)], a)
189189
190190
191191 func aG () = makeString(["%s%s", "config", "referralsContractAddress"], a)
192192
193193
194194 let aH = addressFromStringValue(k(aG()))
195195
196196 func aI (aJ,aK,aL,aM) = {
197197 let aN = makeString(["%s%s%s%s__history", aJ, aK, toBase58String(aM.transactionId)], a)
198198 let aO = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aL)], a)
199199 StringEntry(aN, aO)
200200 }
201201
202202
203203 func aP () = "%s__managerPublicKey"
204204
205205
206206 func aQ () = "%s__pendingManagerPublicKey"
207207
208208
209209 func aR () = {
210210 let aS = getString(aP())
211211 if ($isInstanceOf(aS, "String"))
212212 then {
213213 let aT = aS
214214 fromBase58String(aT)
215215 }
216216 else if ($isInstanceOf(aS, "Unit"))
217217 then unit
218218 else throw("Match error")
219219 }
220220
221221
222222 func aU () = {
223223 let aS = getString(aQ())
224224 if ($isInstanceOf(aS, "String"))
225225 then {
226226 let aT = aS
227227 fromBase58String(aT)
228228 }
229229 else if ($isInstanceOf(aS, "Unit"))
230230 then unit
231231 else throw("Match error")
232232 }
233233
234234
235235 func aV (aM) = {
236236 let aW = throw("Permission denied")
237237 let aS = aR()
238238 if ($isInstanceOf(aS, "ByteVector"))
239239 then {
240240 let aX = aS
241241 if ((aM.callerPublicKey == aX))
242242 then true
243243 else aW
244244 }
245245 else if ($isInstanceOf(aS, "Unit"))
246246 then if ((aM.caller == this))
247247 then true
248248 else aW
249249 else throw("Match error")
250250 }
251251
252252
253253 func aY (aZ,ba,au,aq) = {
254254 let bb = as(aq)
255255 let bc = aD(au, aq)
256256 let bd = getInteger(aZ, bc)
257257 let be = aF(au, aq)
258258 if (isDefined(bd))
259259 then {
260260 let bf = value(bd)
261261 let bg = value(getInteger(aZ, aE(au, aq)))
262262 let bh = ((bf * ba) + bg)
263263 if ((bh > 0))
264264 then $Tuple2((bh / b), [IntegerEntry(bb, au), IntegerEntry(be, bh)])
265265 else $Tuple2(0, nil)
266266 }
267267 else {
268268 let bi = getInteger(this, bb)
269269 if (if (isDefined(bi))
270270 then (au >= value(bi))
271271 else false)
272272 then {
273273 let bj = value(bi)
274274 let bf = value(getInteger(aZ, aD(bj, aq)))
275275 let bg = value(getInteger(aZ, aE(bj, aq)))
276276 let bh = ((bf * ba) + bg)
277277 if ((bh > 0))
278278 then $Tuple2((bh / b), [IntegerEntry(be, bh)])
279279 else $Tuple2(0, nil)
280280 }
281281 else $Tuple2(0, nil)
282282 }
283283 }
284284
285285
286286 func bk (aZ,ba,au,aq) = {
287287 let be = aF(au, aq)
288288 let bl = getInteger(be)
289289 let aS = bl
290290 if ($isInstanceOf(aS, "Unit"))
291291 then 0
292292 else if ($isInstanceOf(aS, "Int"))
293293 then {
294294 let bh = aS
295295 (bh / b)
296296 }
297297 else throw("Match error")
298298 }
299299
300300
301301 func bm (ab,bn) = {
302302 let h = makeString(["%s%s%s", "mapping", "user2num", bn], a)
303303 parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(ab)), h), ((("User address " + bn) + " is not found in boosting contract data, key=") + h)))
304304 }
305305
306306
307307 func bo () = g(am())
308308
309309
310310 func bp (bn) = {
311311 let ad = X()
312312 let bq = bm(ad[U], bn)
313313 let br = getInteger(ap(bq))
314314 let aS = br
315315 if ($isInstanceOf(aS, "Unit"))
316316 then $Tuple2(0, nil)
317317 else if ($isInstanceOf(aS, "Int"))
318318 then {
319319 let bs = aS
320320 $Tuple2(bs, [IntegerEntry(ap(bq), 0)])
321321 }
322322 else throw("Match error")
323323 }
324324
325325
326326 @Callable(aM)
327327 func updateReferralActivity (bn,bt) = {
328328 let bu = getString(aH, L(bn))
329329 let bv = if ((bu == unit))
330330 then unit
331331 else invoke(aH, "updateReferralActivity", [B, bn, (bt >= E)], nil)
332332 if ((bv == bv))
333333 then $Tuple2(nil, unit)
334334 else throw("Strict value is not equal to itself.")
335335 }
336336
337337
338338
339339 @Callable(aM)
340340 func finalizeHelper () = {
341341 let bw = valueOrElse(getInteger(an()), e)
342342 let bx = g(ao())
343343 let by = g(ak())
344344 let bz = g(al())
345345 let bA = valueOrElse(getInteger(ac(), af()), 0)
346346 let bB = aC(bx)
347347 let bC = g(aC(bx))
348348 let ba = g(at(bx))
349349 if ((bx > bz))
350350 then $Tuple2(nil, false)
351351 else if ((bw == e))
352352 then {
353353 let bD = aY(ac(), ba, bx, by)
354354 let bE = bD._1
355355 let bF = bD._2
356356 let bG = (bC + bE)
357357 let bH = if (((bA - 1) > by))
358358 then [IntegerEntry(ak(), (by + 1))]
359359 else [IntegerEntry(an(), f), IntegerEntry(ak(), 0)]
360360 $Tuple2((([IntegerEntry(bB, bG)] ++ bH) ++ bF), true)
361361 }
362362 else if ((bw == f))
363363 then {
364364 let bE = bk(ac(), ba, bx, by)
365365 let bI = fraction(g(aw(bx)), bE, bC)
366366 let bJ = fraction(g(av(bx)), bE, bC)
367367 let bK = (bJ + bI)
368368 let br = getInteger(ap(by))
369369 let bn = getStringValue(ac(), x(by))
370370 let bu = getString(aH, L(bn))
371371 let bv = if ((bu == unit))
372372 then unit
373373 else invoke(aH, "updateReferralActivity", [B, bn, (bE >= E)], nil)
374374 if ((bv == bv))
375375 then {
376376 let bL = if (if ((bu == unit))
377377 then true
378378 else (E > bE))
379379 then unit
380380 else {
381381 let bM = fraction(bK, H, b)
382382 let bN = fraction(bK, K, b)
383383 invoke(aH, "incUnclaimed", [B, bn, bM, bN], nil)
384384 }
385385 if ((bL == bL))
386386 then {
387387 let bO = [IntegerEntry(ap(by), (valueOrElse(br, 0) + bK))]
388388 let bH = if (((bA - 1) > by))
389389 then [IntegerEntry(ak(), (by + 1))]
390390 else [IntegerEntry(ao(), (bx + 1)), IntegerEntry(ak(), 0), DeleteEntry(an())]
391391 $Tuple2((bO ++ bH), true)
392392 }
393393 else throw("Strict value is not equal to itself.")
394394 }
395395 else throw("Strict value is not equal to itself.")
396396 }
397397 else throw("invalid processing stage")
398398 }
399399
400400
401401
402402 @Callable(aM)
403403 func finalizeWrapper (bP) = {
404404 let bQ = {
405405 let bR = invoke(this, "finalizeHelper", nil, nil)
406406 if ($isInstanceOf(bR, "Boolean"))
407407 then bR
408408 else throw(($getType(bR) + " couldn't be cast to Boolean"))
409409 }
410410 if ((bQ == bQ))
411411 then if (!(bQ))
412412 then if ((bP == q))
413413 then throw("Nothing to process")
414414 else $Tuple2(nil, unit)
415415 else if ((bP > 0))
416416 then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bP - 1)], nil))
417417 else $Tuple2(nil, unit)
418418 else throw("Strict value is not equal to itself.")
419419 }
420420
421421
422422
423423 @Callable(aM)
424424 func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
425425
426426
427427
428428 @Callable(aM)
429429 func deposit () = {
430430 let bS = if ((aM.caller == w))
431431 then true
432432 else aV(aM)
433433 if ((bS == bS))
434434 then {
435435 let au = bo()
436436 let bT = (height - i(ae()))
437437 let bU = valueOrErrorMessage(getInteger(R, ag()), (("mandatory emission_contract." + ag()) + " is not defined"))
438438 let bV = valueOrElse(getInteger(R, ah()), 0)
439439 let bW = fraction((bT * bV), bU, c)
440440 let bX = invoke(R, "emit", [bW], nil)
441441 if ((bX == bX))
442442 then {
443443 let bY = 0
444444 let bZ = ay(au, bY, bW)
445445 let ca = invoke(R, "gwxHoldersRewardUpdate", nil, nil)
446446 if ((ca == ca))
447- then [IntegerEntry(al(), au), IntegerEntry(at(au), height), IntegerEntry(av(au), bW), IntegerEntry(ae(), height), IntegerEntry(aw(au), bY), IntegerEntry(am(), (au + 1)), StringEntry(ax(), bZ), StringEntry(aB(au), bZ)]
447+ then {
448+ let cb = (bY + bW)
449+ let cc = if ((cb == 0))
450+ then nil
451+ else [IntegerEntry(al(), au), IntegerEntry(at(au), height), IntegerEntry(av(au), bW), IntegerEntry(ae(), height), IntegerEntry(aw(au), bY), IntegerEntry(am(), (au + 1)), StringEntry(ax(), bZ), StringEntry(aB(au), bZ)]
452+ $Tuple2(cc, unit)
453+ }
448454 else throw("Strict value is not equal to itself.")
449455 }
450456 else throw("Strict value is not equal to itself.")
451457 }
452458 else throw("Strict value is not equal to itself.")
453459 }
454460
455461
456462
457463 @Callable(aM)
458464 func claimReward () = {
459465 let ad = X()
460- let cb = toString(aM.caller)
461- let cc = bp(cb)
462- let aL = cc._1
463- let cd = cc._2
464- let ce = if ((aL > 0))
466+ let cd = toString(aM.caller)
467+ let ce = bp(cd)
468+ let aL = ce._1
469+ let cc = ce._2
470+ let cf = if ((aL > 0))
465471 then true
466472 else throw("Nothing to claim")
467- if ((ce == ce))
473+ if ((cf == cf))
468474 then {
469- let cf = 0
470- let cg = {
475+ let cg = 0
476+ let ch = {
471477 let bR = invoke(aH, "claim", [B], nil)
472478 if ($isInstanceOf(bR, "Int"))
473479 then bR
474480 else throw(($getType(bR) + " couldn't be cast to Int"))
475481 }
476- let ch = (aL + cg)
477- $Tuple2(([ScriptTransfer(aM.caller, ch, fromBase58String(ad[S])), aI("claim", cb, aL, aM)] ++ cd), [ch, cf])
482+ let ci = (aL + ch)
483+ $Tuple2(([ScriptTransfer(aM.caller, ci, fromBase58String(ad[S])), aI("claim", cd, aL, aM)] ++ cc), [ci, cg])
478484 }
479485 else throw("Strict value is not equal to itself.")
480486 }
481487
482488
483489
484490 @Callable(aM)
485-func claimRewardREADONLY (cb) = {
486- let ci = bp(cb)
487- let aL = ci._1
488- let cd = ci._2
489- let cj = valueOrElse(getInteger(aH, N(B, cb)), 0)
490- let ch = (aL + cj)
491- $Tuple2(nil, ch)
491+func claimRewardREADONLY (cd) = {
492+ let cj = bp(cd)
493+ let aL = cj._1
494+ let cc = cj._2
495+ let ck = valueOrElse(getInteger(aH, N(B, cd)), 0)
496+ let ci = (aL + ck)
497+ $Tuple2(nil, ci)
492498 }
493499
494500
495501
496502 @Callable(aM)
497-func latestFinalizedPeriodREADONLY (cb) = $Tuple2(nil, valueOrElse(getInteger(this, al()), -1))
503+func latestFinalizedPeriodREADONLY (cd) = $Tuple2(nil, valueOrElse(getInteger(this, al()), -1))
498504
499505
500506
501507 @Callable(aM)
502-func latestFinalizedPeriodInfoREADONLY (cb) = $Tuple2(nil, j(ax()))
508+func latestFinalizedPeriodInfoREADONLY (cd) = $Tuple2(nil, j(ax()))
503509
504510
505511
506512 @Callable(aM)
507-func calcGwxParamsREADONLY (ck,cl,cm) = {
508- let cn = (cl + cm)
509- let co = -(fraction(ck, b, cm))
510- let cp = (fraction(ck, b, cm) * cn)
511- $Tuple2(nil, [co, cp, bo()])
513+func calcGwxParamsREADONLY (cl,cm,cn) = {
514+ let co = (cm + cn)
515+ let cp = -(fraction(cl, b, cn))
516+ let cq = (fraction(cl, b, cn) * co)
517+ $Tuple2(nil, [cp, cq, bo()])
512518 }
513519
514520
515521
516522 @Callable(aM)
517-func calcGwxAmountStartREADONLY (cq,cr,cs) = {
518- let ct = fraction(cr, c, cs)
519- let bt = fraction(cq, ct, c)
523+func calcGwxAmountStartREADONLY (cr,cs,ct) = {
524+ let cu = fraction(cs, c, ct)
525+ let bt = fraction(cr, cu, c)
520526 $Tuple2(nil, [bt])
521527 }
522528
523529
524530
525531 @Callable(aM)
526532 func onEmissionForGwxStart () = if ((aM.caller != t))
527533 then throw("permissions denied")
528534 else [IntegerEntry(ae(), height)]
529535
530536
531537
532538 @Callable(aM)
533-func latestPeriodEmissionRewardsREADONLY (cb) = {
539+func latestPeriodEmissionRewardsREADONLY (cd) = {
534540 let au = bo()
535541 $Tuple2(nil, [g(av(au))])
536542 }
537543
538544
539545
540546 @Callable(aM)
541-func calcD (cu,cv,cw,cx,cy) = {
542- let cz = toBigInt(2)
543- let cA = parseBigIntValue(cx)
547+func calcD (cv,cw,cx,cy,cz) = {
548+ let cA = toBigInt(2)
544549 let cB = parseBigIntValue(cy)
545- let cC = parseBigIntValue(cu)
550+ let cC = parseBigIntValue(cz)
546551 let cD = parseBigIntValue(cv)
547- let cE = (parseBigIntValue(cw) * cA)
548- let aT = (cC + cD)
552+ let cE = parseBigIntValue(cw)
553+ let cF = (parseBigIntValue(cx) * cB)
554+ let aT = (cD + cE)
549555 if ((aT == d))
550556 then $Tuple2(nil, toString(d))
551557 else {
552- let cF = (cE * cz)
553- let cG = [0, 1, 2, 3, 4, 5, 6]
554- func cH (cI,cJ) = {
555- let cK = cI
556- let cL = cK._1
557- let cM = cK._2
558- let cN = cK._3
559- if ((cN != unit))
560- then cI
558+ let cG = (cF * cA)
559+ let cH = [0, 1, 2, 3, 4, 5, 6]
560+ func cI (cJ,cK) = {
561+ let cL = cJ
562+ let cM = cL._1
563+ let cN = cL._2
564+ let cO = cL._3
565+ if ((cO != unit))
566+ then cJ
561567 else {
562- let cO = (((cL * cL) * cL) / (((cC * cD) * cz) * cz))
563- let cP = (((((cF * aT) / cA) + (cO * cz)) * cL) / ((((cF - cA) * cL) / cA) + ((cz + toBigInt(1)) * cO)))
564- let cQ = n((cP - value(cL)))
565- if ((cB >= cQ))
566- then $Tuple3(cP, cL, cJ)
567- else $Tuple3(cP, cL, unit)
568+ let cP = (((cM * cM) * cM) / (((cD * cE) * cA) * cA))
569+ let cQ = (((((cG * aT) / cB) + (cP * cA)) * cM) / ((((cG - cB) * cM) / cB) + ((cA + toBigInt(1)) * cP)))
570+ let cR = n((cQ - value(cM)))
571+ if ((cC >= cR))
572+ then $Tuple3(cQ, cM, cK)
573+ else $Tuple3(cQ, cM, unit)
568574 }
569575 }
570576
571- let cR = {
572- let cS = cG
573- let cT = size(cS)
574- let cU = $Tuple3(aT, unit, unit)
575- func cV (cW,cX) = if ((cX >= cT))
576- then cW
577- else cH(cW, cS[cX])
577+ let cS = {
578+ let cT = cH
579+ let cU = size(cT)
580+ let cV = $Tuple3(aT, unit, unit)
581+ func cW (cX,cY) = if ((cY >= cU))
582+ then cX
583+ else cI(cX, cT[cY])
578584
579- func cY (cW,cX) = if ((cX >= cT))
580- then cW
585+ func cZ (cX,cY) = if ((cY >= cU))
586+ then cX
581587 else throw("List size exceeds 7")
582588
583- cY(cV(cV(cV(cV(cV(cV(cV(cU, 0), 1), 2), 3), 4), 5), 6), 7)
589+ cZ(cW(cW(cW(cW(cW(cW(cW(cV, 0), 1), 2), 3), 4), 5), 6), 7)
584590 }
585- let cP = cR._1
586- let cM = cR._2
587- let cN = cR._3
588- if ((cN != unit))
589- then $Tuple2(nil, toString(cP))
591+ let cQ = cS._1
592+ let cN = cS._2
593+ let cO = cS._3
594+ if ((cO != unit))
595+ then $Tuple2(nil, toString(cQ))
590596 else {
591- let cQ = n((cP - value(cM)))
592- throw(("D calculation error, dDiff = " + toString(cQ)))
597+ let cR = n((cQ - value(cN)))
598+ throw(("D calculation error, dDiff = " + toString(cR)))
593599 }
594600 }
595601 }
596602
597603
598604
599605 @Callable(aM)
600-func setManager (cZ) = {
606+func setManager (da) = {
601607 let bS = aV(aM)
602608 if ((bS == bS))
603609 then {
604- let da = fromBase58String(cZ)
605- if ((da == da))
606- then [StringEntry(aQ(), cZ)]
610+ let db = fromBase58String(da)
611+ if ((db == db))
612+ then [StringEntry(aQ(), da)]
607613 else throw("Strict value is not equal to itself.")
608614 }
609615 else throw("Strict value is not equal to itself.")
610616 }
611617
612618
613619
614620 @Callable(aM)
615621 func confirmManager () = {
616- let db = aU()
617- let dc = if (isDefined(db))
622+ let dc = aU()
623+ let dd = if (isDefined(dc))
618624 then true
619625 else throw("No pending manager")
620- if ((dc == dc))
626+ if ((dd == dd))
621627 then {
622- let dd = if ((aM.callerPublicKey == value(db)))
628+ let de = if ((aM.callerPublicKey == value(dc)))
623629 then true
624630 else throw("You are not pending manager")
625- if ((dd == dd))
626- then [StringEntry(aP(), toBase58String(value(db))), DeleteEntry(aQ())]
631+ if ((de == de))
632+ then [StringEntry(aP(), toBase58String(value(dc))), DeleteEntry(aQ())]
627633 else throw("Strict value is not equal to itself.")
628634 }
629635 else throw("Strict value is not equal to itself.")
630636 }
631637
632638
633-@Verifier(de)
634-func df () = {
635- let dg = {
639+@Verifier(df)
640+func dg () = {
641+ let dh = {
636642 let aS = aR()
637643 if ($isInstanceOf(aS, "ByteVector"))
638644 then {
639645 let aX = aS
640646 aX
641647 }
642648 else if ($isInstanceOf(aS, "Unit"))
643- then de.senderPublicKey
649+ then df.senderPublicKey
644650 else throw("Match error")
645651 }
646- sigVerify(de.bodyBytes, de.proofs[0], dg)
652+ sigVerify(df.bodyBytes, df.proofs[0], dh)
647653 }
648654

github/deemru/w8io/03bedc9 
101.42 ms