tx · 8pucsi8J2FqpyARCJcRdmV9N36JjNBZcJBLpx3UMeMJZ

3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE:  -0.02300000 Waves

2022.08.10 13:37 [2178229] smart account 3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE > SELF 0.00000000 Waves

{ "type": 13, "id": "8pucsi8J2FqpyARCJcRdmV9N36JjNBZcJBLpx3UMeMJZ", "fee": 2300000, "feeAssetId": null, "timestamp": 1660127889629, "version": 1, "sender": "3Mp5kisFrqESzrXxAMEPk2k69zpeF41czEE", "senderPublicKey": "G349Uq3FTox7dRNLeAfAQeoACvwZ9iEnVSaHcEYn6j8J", "proofs": [ "2QuqXQkgQpCUhVL56kccj3g7tP5SD8DKzE4747zLsxTFQrWjQGpPbqfESKt3jKoQcz2kcj8jdwK1Zcdx1NvEE5N1" ], "script": "base64:BgJJCAISBAoCCAESABIDCgEBEgASABIAEgMKAQgSAwoBCBIDCgEIEgUKAwEBARIFCgMBAQESABIDCgEIEgcKBQgICAgIEgMKAQgSAFUAA1NFUAICX18ACVVTRVJERVBUSAAaAAVTQ0FMRQDoBwAFTVVMVDgAgMLXLwAKemVyb0JpZ0ludAkAtgIBAAAAFHByb2Nlc3NpbmdTdGFnZVRvdGFsAAAAFXByb2Nlc3NpbmdTdGFnZVNoYXJlcwABAQ5nZXROdW1iZXJCeUtleQEDa2V5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAAAQ9nZXROdW1iZXJPckZhaWwBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFA2tleQkArAICCQCsAgICD21hbmRhdG9yeSB0aGlzLgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBDmdldFN0cmluZ0J5S2V5AQNrZXkJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUDa2V5AgABD2dldFN0cmluZ09yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUDa2V5CQCsAgIJAKwCAgIPbWFuZGF0b3J5IHRoaXMuBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEDYWJzAQN2YWwDCQC/AgIFCnplcm9CaWdJbnQFA3ZhbAkAvgIBBQN2YWwFA3ZhbAALa2V5TWF4RGVwdGgCDCVzX19tYXhEZXB0aAAPbWF4RGVwdGhEZWZhdWx0AB4ACG1heERlcHRoCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleU1heERlcHRoBQ9tYXhEZXB0aERlZmF1bHQAFGtleU1heERlcHRoTWlncmF0aW9uAhUlc19fbWF4RGVwdGhNaWdyYXRpb24AGG1heERlcHRoTWlncmF0aW9uRGVmYXVsdAADABFtYXhEZXB0aE1pZ3JhdGlvbgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRRrZXlNYXhEZXB0aE1pZ3JhdGlvbgUYbWF4RGVwdGhNaWdyYXRpb25EZWZhdWx0AAtrZXlNaWdyYXRlZAIIbWlncmF0ZWQACG1pZ3JhdGVkCQELdmFsdWVPckVsc2UCCQCbCAIFBHRoaXMFC2tleU1pZ3JhdGVkBwAda2V5TmV4dFByb2Nlc3NlZFVzZXJNaWdyYXRpb24CGm5leHRQcm9jZXNzZWRVc2VyTWlncmF0aW9uARFrZXlGYWN0b3J5QWRkcmVzcwACHCVzJXNfX2NvbmZpZ19fZmFjdG9yeUFkZHJlc3MAEWZhY3RvcnlBZGRyZXNzU3RyCQEPZ2V0U3RyaW5nT3JGYWlsAQkBEWtleUZhY3RvcnlBZGRyZXNzAAAPZmFjdG9yeUNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBBRFmYWN0b3J5QWRkcmVzc1N0cgESa2V5RW1pc3Npb25BZGRyZXNzAAIdJXMlc19fY29uZmlnX19lbWlzc2lvbkFkZHJlc3MBE2tleU51bVRvVXNlck1hcHBpbmcBA251bQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgdtYXBwaW5nCQDMCAICCG51bTJ1c2VyCQDMCAIJAKQDAQUDbnVtBQNuaWwFA1NFUAAWa2V5UmVmZXJyYWxQcm9ncmFtTmFtZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgILcHJvZ3JhbU5hbWUFA25pbAUDU0VQABpyZWZlcnJhbFByb2dyYW1OYW1lRGVmYXVsdAIGd3hsb2NrABNyZWZlcnJhbFByb2dyYW1OYW1lCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFFmtleVJlZmVycmFsUHJvZ3JhbU5hbWUFGnJlZmVycmFsUHJvZ3JhbU5hbWVEZWZhdWx0ABdrZXlSZWZlcnJhbE1pbkdXeEFtb3VudAkAuQkCCQDMCAICBCVzJXMJAMwIAgIIcmVmZXJyYWwJAMwIAgIMbWluR1d4QW1vdW50BQNuaWwFA1NFUAAbcmVmZXJyYWxNaW5HV3hBbW91bnREZWZhdWx0CQBoAgD0AwUFTVVMVDgAFHJlZmVycmFsTWluR1d4QW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFF2tleVJlZmVycmFsTWluR1d4QW1vdW50BRtyZWZlcnJhbE1pbkdXeEFtb3VudERlZmF1bHQAGWtleVJlZmVycmVyUmV3YXJkUGVybWlsbGUJALkJAgkAzAgCAgQlcyVzCQDMCAICCHJlZmVycmFsCQDMCAICFnJlZmVycmVyUmV3YXJkUGVybWlsbGUFA25pbAUDU0VQAB1yZWZlcnJlclJld2FyZFBlcm1pbGxlRGVmYXVsdAAyABZyZWZlcnJlclJld2FyZFBlcm1pbGxlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGWtleVJlZmVycmVyUmV3YXJkUGVybWlsbGUFHXJlZmVycmVyUmV3YXJkUGVybWlsbGVEZWZhdWx0ABlrZXlSZWZlcnJhbFJld2FyZFBlcm1pbGxlCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghyZWZlcnJhbAkAzAgCAhZyZWZlcnJhbFJld2FyZFBlcm1pbGxlBQNuaWwFA1NFUAAdcmVmZXJyYWxSZXdhcmRQZXJtaWxsZURlZmF1bHQAMgAWcmVmZXJyYWxSZXdhcmRQZXJtaWxsZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRlrZXlSZWZlcnJhbFJld2FyZFBlcm1pbGxlBR1yZWZlcnJhbFJld2FyZFBlcm1pbGxlRGVmYXVsdAELa2V5UmVmZXJyZXIBD3JlZmVycmFsQWRkcmVzcwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAghyZWZlcnJlcgkAzAgCBRNyZWZlcnJhbFByb2dyYW1OYW1lCQDMCAIFD3JlZmVycmFsQWRkcmVzcwUDbmlsBQNTRVABFGtleVVuY2xhaW1lZFJlZmVycmFsAgtwcm9ncmFtTmFtZQ5jbGFpbWVyQWRkcmVzcwkAuQkCCQDMCAICCCVzJXMlcyVzCQDMCAICEXVuY2xhaW1lZFJlZmVycmFsCQDMCAIFC3Byb2dyYW1OYW1lCQDMCAIFDmNsYWltZXJBZGRyZXNzBQNuaWwFA1NFUAASZW1pc3Npb25BZGRyZXNzU3RyCQEPZ2V0U3RyaW5nT3JGYWlsAQkBEmtleUVtaXNzaW9uQWRkcmVzcwAAEGVtaXNzaW9uQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEFEmVtaXNzaW9uQWRkcmVzc1N0cgANSWR4Q2ZnQXNzZXRJZAABABZJZHhDZmdQYWNlbWFrZXJBZGRyZXNzAAIAFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QAAwAOSWR4Q2ZnTWF4RGVwdGgABAEJa2V5Q29uZmlnAAIKJXNfX2NvbmZpZwEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAkAtQkCCQEPZ2V0U3RyaW5nT3JGYWlsAQkBCWtleUNvbmZpZwAFA1NFUAEMZm9ybWF0Q29uZmlnBAx3eEFzc2V0SWRTdHIabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIIbWF4RGVwdGgJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCBQx3eEFzc2V0SWRTdHIJAMwIAgUabWF0Y2hlclBhY2VtYWtlckFkZHJlc3NTdHIJAMwIAgUaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIJAMwIAgkApAMBBQhtYXhEZXB0aAUDbmlsBQNTRVABFmJvb3N0aW5nQ29udHJhY3RPckZhaWwABAhjZmdBcnJheQkBFXJlYWRDb25maWdBcnJheU9yRmFpbAAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQCRAwIFCGNmZ0FycmF5BRZJZHhDZmdCb29zdGluZ0NvbnRyYWN0Aihib29zdGluZyBjb250cmFjdCBhZGRyZXNzIGlzIG5vdCBkZWZpbmVkAR9rZXlHd3hSZXdhcmRFbWlzc2lvblN0YXJ0SGVpZ2h0AAIoJXMlc19fZ3d4UmV3YXJkRW1pc3Npb25QYXJ0X19zdGFydEhlaWdodAENa2V5VXNlcnNDb3VudAACDyVzX19uZXh0VXNlck51bQEWa2V5UmF0ZVBlckJsb2NrQ3VycmVudAACGyVzJXNfX3JhdGVQZXJCbG9ja19fY3VycmVudAEUa2V5UG9vbFdlaWdodFZpcnR1YWwAAiAlcyVzX19wb29sV2VpZ2h0X19HV1h2aXJ0dWFsUE9PTAEUa2V5TmV4dFByb2Nlc3NlZFVzZXIAAhUlc19fbmV4dFByb2Nlc3NlZFVzZXIBD2tleUxhdGVzdFBlcmlvZAACECVzX19sYXRlc3RQZXJpb2QBDWtleU5leHRQZXJpb2QAAg4lc19fbmV4dFBlcmlvZAESa2V5UHJvY2Vzc2luZ1N0YWdlAAITJXNfX3Byb2Nlc3NpbmdTdGFnZQEWa2V5TmV4dFByb2Nlc3NlZFBlcmlvZAACFyVzX19uZXh0UHJvY2Vzc2VkUGVyaW9kARBrZXlVc2VyVW5jbGFpbWVkAQl1c2VySW5kZXgJALkJAgkAzAgCAgQlcyVkCQDMCAICDXVzZXJVbmNsYWltZWQJAMwIAgkApAMBBQl1c2VySW5kZXgFA25pbAUDU0VQARtrZXlOZXh0VW5sYWltZWRQZXJpb2RPZlVzZXIBCXVzZXJJbmRleAkAuQkCCQDMCAICFyVzJWRfX25leHRDbGFpbWVkUGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4BQNuaWwFA1NFUAEca2V5TGFzdFByb2Nlc3NlZFBlcmlvZE9mVXNlcgEJdXNlckluZGV4CQC5CQIJAMwIAgIZJXMlZF9fbGFzdFByb2Nlc3NlZFBlcmlvZAkAzAgCCQCkAwEFCXVzZXJJbmRleAUDbmlsBQNTRVABEmtleUhlaWdodEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIaJXMlZF9fc3RhcnRIZWlnaHRGb3JQZXJpb2QJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIXJXMlZF9fYXV4RW1pc3Npb25SZXdhcmQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARdrZXlUb3RhbEFtb3VudEZvclBlcmlvZAEGcGVyaW9kCQC5CQIJAMwIAgIaJXMlZF9fdG90YWxBbW91bnRGb3JQZXJpb2QJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARFrZXlMYXN0UGF5b3V0SW5mbwACEiVzX19sYXN0UGF5b3V0SW5mbwEQUGVyaW9kUGF5b3V0SW5mbwMGcGVyaW9kDW1hdGNoZXJSZXdhcmQOZW1pc3Npb25SZXdhcmQJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBBQZwZXJpb2QJAMwIAgkApAMBBQ1tYXRjaGVyUmV3YXJkCQDMCAIJAKQDAQUOZW1pc3Npb25SZXdhcmQFA25pbAUDU0VQARRrZXlQYXlvdXRIaXN0b3J5SW5mbwEGcGVyaW9kCQC5CQIJAMwIAgIYJXMlcyVkX19wYXlvdXRzX19oaXN0b3J5CQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEXa2V5VG90YWxXZWlnaHRGb3JQZXJpb2QBBnBlcmlvZAkAuQkCCQDMCAICGiVzJWRfX3RvdGFsV2VpZ2h0Rm9yUGVyaW9kCQDMCAIJAKQDAQUGcGVyaW9kBQNuaWwFA1NFUAEWa2V5VXNlcktWYWx1ZUZvclBlcmlvZAIGcGVyaW9kCXVzZXJJbmRleAkAuQkCCQDMCAICFyVzJWQlcyVkX19wYXJhbUJ5UGVyaW9kCQDMCAIJAKQDAQUJdXNlckluZGV4CQDMCAICAWsJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kAgZwZXJpb2QJdXNlckluZGV4CQC5CQIJAMwIAgIXJXMlZCVzJWRfX3BhcmFtQnlQZXJpb2QJAMwIAgkApAMBBQl1c2VySW5kZXgJAMwIAgIBYgkAzAgCCQCkAwEFBnBlcmlvZAUDbmlsBQNTRVABFmtleVVzZXJXZWlnaHRGb3JQZXJpb2QCBnBlcmlvZAl1c2VySW5kZXgJALkJAgkAzAgCAhclcyVkJXMlZF9fcGFyYW1CeVBlcmlvZAkAzAgCCQCkAwEFCXVzZXJJbmRleAkAzAgCAgZ3ZWlnaHQJAMwIAgkApAMBBQZwZXJpb2QFA25pbAUDU0VQARtrZXlSZWZlcnJhbHNDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgIEJXMlcwkAzAgCAgZjb25maWcJAMwIAgIYcmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzBQNuaWwFA1NFUAAecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsCQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQkBG2tleVJlZmVycmFsc0NvbnRyYWN0QWRkcmVzcwABDEhpc3RvcnlFbnRyeQQEdHlwZQR1c2VyBmFtb3VudAFpBApoaXN0b3J5S0VZCQC5CQIJAMwIAgIRJXMlcyVzJXNfX2hpc3RvcnkJAMwIAgUEdHlwZQkAzAgCBQR1c2VyCQDMCAIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAUDbmlsBQNTRVAEC2hpc3RvcnlEQVRBCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIJAKQDAQgFCWxhc3RCbG9jawZoZWlnaHQJAMwIAgkApAMBCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQCkAwEFBmFtb3VudAUDbmlsBQNTRVAJAQtTdHJpbmdFbnRyeQIFCmhpc3RvcnlLRVkFC2hpc3RvcnlEQVRBARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAIbJXNfX3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAR1wZW5kaW5nTWFuYWdlclB1YmxpY0tleU9yVW5pdAAEByRtYXRjaDAJAKIIAQkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpBAJwZAkAAgECEVBlcm1pc3Npb24gZGVuaWVkBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFAnBkAwkAAQIFByRtYXRjaDACBFVuaXQDCQAAAggFAWkGY2FsbGVyBQR0aGlzBgUCcGQJAAIBAgtNYXRjaCBlcnJvcgEOY2FsY1VzZXJXZWlnaHQEF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzD2hlaWdodEZvclBlcmlvZAZwZXJpb2QJdXNlckluZGV4BAVrTGFzdAkBHGtleUxhc3RQcm9jZXNzZWRQZXJpb2RPZlVzZXIBBQl1c2VySW5kZXgEBGtLZXkJARZrZXlVc2VyS1ZhbHVlRm9yUGVyaW9kAgUGcGVyaW9kBQl1c2VySW5kZXgEBGtSYXcJAJoIAgUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MFBGtLZXkEC2tVc2VyV2VpZ2h0CQEWa2V5VXNlcldlaWdodEZvclBlcmlvZAIFBnBlcmlvZAUJdXNlckluZGV4AwkBCWlzRGVmaW5lZAEFBGtSYXcEAWsJAQV2YWx1ZQEFBGtSYXcEAWIJAQV2YWx1ZQEJAJoIAgUXYm9vc3RpbmdDb250cmFjdEFkZHJlc3MJARZrZXlVc2VyQlZhbHVlRm9yUGVyaW9kAgUGcGVyaW9kBQl1c2VySW5kZXgEAXcJAGQCCQBoAgUBawUPaGVpZ2h0Rm9yUGVyaW9kBQFiAwkAZgIFAXcAAAkAlAoCCQBpAgUBdwUFU0NBTEUJAMwIAgkBDEludGVnZXJFbnRyeQIFBWtMYXN0BQZwZXJpb2QJAMwIAgkBDEludGVnZXJFbnRyeQIFC2tVc2VyV2VpZ2h0BQF3BQNuaWwJAJQKAgAABQNuaWwEAXAJAJoIAgUEdGhpcwUFa0xhc3QDAwkBCWlzRGVmaW5lZAEFAXAJAGcCBQZwZXJpb2QJAQV2YWx1ZQEFAXAHBAJwdgkBBXZhbHVlAQUBcAQBawkBBXZhbHVlAQkAmggCBRdib29zdGluZ0NvbnRyYWN0QWRkcmVzcwkBFmtleVVzZXJLVmFsdWVGb3JQZXJpb2QCBQJwdgUJdXNlckluZGV4BAFiCQEFdmFsdWUBCQCaCAIFF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzCQEWa2V5VXNlckJWYWx1ZUZvclBlcmlvZAIFAnB2BQl1c2VySW5kZXgEAXcJAGQCCQBoAgUBawUPaGVpZ2h0Rm9yUGVyaW9kBQFiAwkAZgIFAXcAAAkAlAoCCQBpAgUBdwUFU0NBTEUJAMwIAgkBDEludGVnZXJFbnRyeQIFC2tVc2VyV2VpZ2h0BQF3BQNuaWwJAJQKAgAABQNuaWwJAJQKAgAABQNuaWwBFmNhbGNVc2VyV2VpZ2h0Rm9yQ2xhaW0EF2Jvb3N0aW5nQ29udHJhY3RBZGRyZXNzD2hlaWdodEZvclBlcmlvZAZwZXJpb2QJdXNlckluZGV4BAtrVXNlcldlaWdodAkBFmtleVVzZXJXZWlnaHRGb3JQZXJpb2QCBQZwZXJpb2QFCXVzZXJJbmRleAQQdXNlcldlaWdodE9yVW5pdAkAnwgBBQtrVXNlcldlaWdodAQHJG1hdGNoMAUQdXNlcldlaWdodE9yVW5pdAMJAAECBQckbWF0Y2gwAgRVbml0AAADCQABAgUHJG1hdGNoMAIDSW50BAF3BQckbWF0Y2gwCQBpAgUBdwUFU0NBTEUJAAIBAgtNYXRjaCBlcnJvcgEVZ2V0VXNlckluZGV4QnlBZGRyZXNzAhpib29zdGluZ0NvbnRyYWN0QWRkcmVzc1N0cgt1c2VyQWRkcmVzcwQDa2V5CQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICB21hcHBpbmcJAMwIAgIIdXNlcjJudW0JAMwIAgULdXNlckFkZHJlc3MFA25pbAUDU0VQCQENcGFyc2VJbnRWYWx1ZQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCCQEHQWRkcmVzcwEJANkEAQUaYm9vc3RpbmdDb250cmFjdEFkZHJlc3NTdHIFA2tleQkArAICCQCsAgIJAKwCAgINVXNlciBhZGRyZXNzIAULdXNlckFkZHJlc3MCLSBpcyBub3QgZm91bmQgaW4gYm9vc3RpbmcgY29udHJhY3QgZGF0YSwga2V5PQUDa2V5AQpuZXh0UGVyaW9kAAkBDmdldE51bWJlckJ5S2V5AQkBDWtleU5leHRQZXJpb2QAARFjb21tb25DbGFpbVJld2FyZAELdXNlckFkZHJlc3MECGNmZ0FycmF5CQEVcmVhZENvbmZpZ0FycmF5T3JGYWlsAAQHdXNlcklkeAkBFWdldFVzZXJJbmRleEJ5QWRkcmVzcwIJAJEDAgUIY2ZnQXJyYXkFFklkeENmZ0Jvb3N0aW5nQ29udHJhY3QFC3VzZXJBZGRyZXNzBBN1c2VyVW5jbGFpbWVkT3B0aW9uCQCfCAEJARBrZXlVc2VyVW5jbGFpbWVkAQUHdXNlcklkeAQHJG1hdGNoMAUTdXNlclVuY2xhaW1lZE9wdGlvbgMJAAECBQckbWF0Y2gwAgRVbml0CQCUCgIAAAUDbmlsAwkAAQIFByRtYXRjaDACA0ludAQBdQUHJG1hdGNoMAkAlAoCBQF1CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQa2V5VXNlclVuY2xhaW1lZAEFB3VzZXJJZHgAAAUDbmlsCQACAQILTWF0Y2ggZXJyb3IQAWkBFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkCC3VzZXJBZGRyZXNzDmdXeEFtb3VudFN0YXJ0BAhyZWZlcnJlcgkAnQgCBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwJAQtrZXlSZWZlcnJlcgEFC3VzZXJBZGRyZXNzBBFhY3RpdmVSZWZlcnJhbEludgMJAAACBQhyZWZlcnJlcgUEdW5pdAUEdW5pdAkA/AcEBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwCFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkJAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCCQBnAgUOZ1d4QW1vdW50U3RhcnQFFHJlZmVycmFsTWluR1d4QW1vdW50BQNuaWwFA25pbAMJAAACBRFhY3RpdmVSZWZlcnJhbEludgURYWN0aXZlUmVmZXJyYWxJbnYJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDmZpbmFsaXplSGVscGVyAAQPcHJvY2Vzc2luZ1N0YWdlCQELdmFsdWVPckVsc2UCCQCfCAEJARJrZXlQcm9jZXNzaW5nU3RhZ2UABRRwcm9jZXNzaW5nU3RhZ2VUb3RhbAQNY3VycmVudFBlcmlvZAkBDmdldE51bWJlckJ5S2V5AQkBFmtleU5leHRQcm9jZXNzZWRQZXJpb2QABAtjdXJyZW50VXNlcgkBDmdldE51bWJlckJ5S2V5AQkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAQMbGF0ZXN0UGVyaW9kCQEOZ2V0TnVtYmVyQnlLZXkBCQEPa2V5TGF0ZXN0UGVyaW9kAAQKdXNlcnNDb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCCQEWYm9vc3RpbmdDb250cmFjdE9yRmFpbAAJAQ1rZXlVc2Vyc0NvdW50AAAABA50b3RhbFdlaWdodEtleQkBF2tleVRvdGFsV2VpZ2h0Rm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAQLdG90YWxXZWlnaHQJAQ5nZXROdW1iZXJCeUtleQEJARdrZXlUb3RhbFdlaWdodEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QED2hlaWdodEZvclBlcmlvZAkBDmdldE51bWJlckJ5S2V5AQkBEmtleUhlaWdodEZvclBlcmlvZAEFDWN1cnJlbnRQZXJpb2QDCQBmAgUNY3VycmVudFBlcmlvZAUMbGF0ZXN0UGVyaW9kCQCUCgIFA25pbAcDCQAAAgUPcHJvY2Vzc2luZ1N0YWdlBRRwcm9jZXNzaW5nU3RhZ2VUb3RhbAQNJHQwMTIzODcxMjUwMwkBDmNhbGNVc2VyV2VpZ2h0BAkBFmJvb3N0aW5nQ29udHJhY3RPckZhaWwABQ9oZWlnaHRGb3JQZXJpb2QFDWN1cnJlbnRQZXJpb2QFC2N1cnJlbnRVc2VyBAp1c2VyV2VpZ2h0CAUNJHQwMTIzODcxMjUwMwJfMQQLdXNlckFjdGlvbnMIBQ0kdDAxMjM4NzEyNTAzAl8yBA50b3RhbFdlaWdodE5ldwkAZAIFC3RvdGFsV2VpZ2h0BQp1c2VyV2VpZ2h0BBFwcm9jZXNzaW5nQWN0aW9ucwMJAGYCCQBlAgUKdXNlcnNDb3VudAABBQtjdXJyZW50VXNlcgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAkAZAIFC2N1cnJlbnRVc2VyAAEFA25pbAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmtleVByb2Nlc3NpbmdTdGFnZQAFFXByb2Nlc3NpbmdTdGFnZVNoYXJlcwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAAABQNuaWwJAJQKAgkAzggCCQDOCAIJAMwIAgkBDEludGVnZXJFbnRyeQIFDnRvdGFsV2VpZ2h0S2V5BQ50b3RhbFdlaWdodE5ldwUDbmlsBRFwcm9jZXNzaW5nQWN0aW9ucwULdXNlckFjdGlvbnMGAwkAAAIFD3Byb2Nlc3NpbmdTdGFnZQUVcHJvY2Vzc2luZ1N0YWdlU2hhcmVzBAp1c2VyV2VpZ2h0CQEWY2FsY1VzZXJXZWlnaHRGb3JDbGFpbQQJARZib29zdGluZ0NvbnRyYWN0T3JGYWlsAAUPaGVpZ2h0Rm9yUGVyaW9kBQ1jdXJyZW50UGVyaW9kBQtjdXJyZW50VXNlcgQadXNlckFtb3VudE1hdGNoZXJGb3JQZXJpb2QJAGsDCQEOZ2V0TnVtYmVyQnlLZXkBCQEXa2V5VG90YWxBbW91bnRGb3JQZXJpb2QBBQ1jdXJyZW50UGVyaW9kBQp1c2VyV2VpZ2h0BQt0b3RhbFdlaWdodAQbdXNlckFtb3VudEVtaXNzaW9uRm9yUGVyaW9kCQBrAwkBDmdldE51bWJlckJ5S2V5AQkBHWtleUF1eEVtaXNzaW9uUmV3YXJkRm9yUGVyaW9kAQUNY3VycmVudFBlcmlvZAUKdXNlcldlaWdodAULdG90YWxXZWlnaHQED3VzZXJUb3RhbEFtb3VudAkAZAIFG3VzZXJBbW91bnRFbWlzc2lvbkZvclBlcmlvZAUadXNlckFtb3VudE1hdGNoZXJGb3JQZXJpb2QEE3VzZXJVbmNsYWltZWRPcHRpb24JAJ8IAQkBEGtleVVzZXJVbmNsYWltZWQBBQtjdXJyZW50VXNlcgQLdXNlckFkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDUzKQIJARZib29zdGluZ0NvbnRyYWN0T3JGYWlsAAkBE2tleU51bVRvVXNlck1hcHBpbmcBBQtjdXJyZW50VXNlcgQIcmVmZXJyZXIJAJ0IAgUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsCQELa2V5UmVmZXJyZXIBBQt1c2VyQWRkcmVzcwQRYWN0aXZlUmVmZXJyYWxJbnYDCQAAAgUIcmVmZXJyZXIFBHVuaXQFBHVuaXQJAPwHBAUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsAhZ1cGRhdGVSZWZlcnJhbEFjdGl2aXR5CQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUJAMwIAgULdXNlckFkZHJlc3MJAMwIAgkAZwIFCnVzZXJXZWlnaHQFFHJlZmVycmFsTWluR1d4QW1vdW50BQNuaWwFA25pbAMJAAACBRFhY3RpdmVSZWZlcnJhbEludgURYWN0aXZlUmVmZXJyYWxJbnYEC3JlZmVycmFsSW52AwMJAAACBQhyZWZlcnJlcgUEdW5pdAYJAGYCBRRyZWZlcnJhbE1pbkdXeEFtb3VudAUKdXNlcldlaWdodAUEdW5pdAQOcmVmZXJyZXJSZXdhcmQJAGsDBQ91c2VyVG90YWxBbW91bnQFFnJlZmVycmVyUmV3YXJkUGVybWlsbGUFBVNDQUxFBA5yZWZlcnJhbFJld2FyZAkAawMFD3VzZXJUb3RhbEFtb3VudAUWcmVmZXJyYWxSZXdhcmRQZXJtaWxsZQUFU0NBTEUJAPwHBAUecmVmZXJyYWxzQ29udHJhY3RBZGRyZXNzT3JGYWlsAgxpbmNVbmNsYWltZWQJAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBQ5yZWZlcnJlclJld2FyZAkAzAgCBQ5yZWZlcnJhbFJld2FyZAUDbmlsBQNuaWwDCQAAAgULcmVmZXJyYWxJbnYFC3JlZmVycmFsSW52BBB1bmNsYWltZWRBY3Rpb25zAwMFCG1pZ3JhdGVkBgkBAiE9AgUTdXNlclVuY2xhaW1lZE9wdGlvbgUEdW5pdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEGtleVVzZXJVbmNsYWltZWQBBQtjdXJyZW50VXNlcgkAZAIJAQt2YWx1ZU9yRWxzZQIFE3VzZXJVbmNsYWltZWRPcHRpb24AAAUPdXNlclRvdGFsQW1vdW50BQNuaWwFA25pbAQRcHJvY2Vzc2luZ0FjdGlvbnMDCQBmAgkAZQIFCnVzZXJzQ291bnQAAQULY3VycmVudFVzZXIJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlOZXh0UHJvY2Vzc2VkVXNlcgAJAGQCBQtjdXJyZW50VXNlcgABBQNuaWwJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlOZXh0UHJvY2Vzc2VkUGVyaW9kAAkAZAIFDWN1cnJlbnRQZXJpb2QAAQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFGtleU5leHRQcm9jZXNzZWRVc2VyAAAACQDMCAIJAQtEZWxldGVFbnRyeQEJARJrZXlQcm9jZXNzaW5nU3RhZ2UABQNuaWwJAJQKAgkAzggCBRB1bmNsYWltZWRBY3Rpb25zBRFwcm9jZXNzaW5nQWN0aW9ucwYJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAhhpbnZhbGlkIHByb2Nlc3Npbmcgc3RhZ2UBaQEPZmluYWxpemVXcmFwcGVyAQdjb3VudGVyBAZyZXN1bHQKAAFACQD8BwQFBHRoaXMCDmZpbmFsaXplSGVscGVyBQNuaWwFA25pbAMJAAECBQFAAgdCb29sZWFuBQFACQACAQkArAICCQADAQkA/AcEBQR0aGlzAg5maW5hbGl6ZUhlbHBlcgUDbmlsBQNuaWwCHCBjb3VsZG4ndCBiZSBjYXN0IHRvIEJvb2xlYW4DCQAAAgUGcmVzdWx0BQZyZXN1bHQDCQEBIQEFBnJlc3VsdAMJAAACBQdjb3VudGVyBQhtYXhEZXB0aAkAAgECEk5vdGhpbmcgdG8gcHJvY2VzcwkAlAoCBQNuaWwFBHVuaXQDCQBmAgUHY291bnRlcgAACQCUCgIFA25pbAkA/AcEBQR0aGlzAg9maW5hbGl6ZVdyYXBwZXIJAMwIAgkAZQIFB2NvdW50ZXIAAQUDbmlsBQNuaWwJAJQKAgUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBHXByb2Nlc3NQZW5kaW5nUGVyaW9kc0FuZFVzZXJzAAkAlAoCBQNuaWwJAPwHBAUEdGhpcwIPZmluYWxpemVXcmFwcGVyCQDMCAIFCG1heERlcHRoBQNuaWwFA25pbAFpAQdkZXBvc2l0AAQIY2ZnQXJyYXkJARVyZWFkQ29uZmlnQXJyYXlPckZhaWwAAwkBAiE9AggFAWkGY2FsbGVyCQEHQWRkcmVzcwEJANkEAQkAkQMCBQhjZmdBcnJheQUWSWR4Q2ZnUGFjZW1ha2VyQWRkcmVzcwkAAgECFFdyb25nIGNhbGxlciBhZGRyZXNzBAdhc3NldElkCQEFdmFsdWUBCAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQDCQECIT0CBQdhc3NldElkCQDZBAEJAJEDAgUIY2ZnQXJyYXkFDUlkeENmZ0Fzc2V0SWQJAAIBAhNXcm9uZyBwYXltZW50IGFzc2V0BAZwZXJpb2QJAQpuZXh0UGVyaW9kAAQGZGVsdGFICQBlAgUGaGVpZ2h0CQEPZ2V0TnVtYmVyT3JGYWlsAQkBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQABAxlbWlzc2lvblJhdGUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBRBlbWlzc2lvbkNvbnRyYWN0CQEWa2V5UmF0ZVBlckJsb2NrQ3VycmVudAAJAKwCAgkArAICAhxtYW5kYXRvcnkgZW1pc3Npb25fY29udHJhY3QuCQEWa2V5UmF0ZVBlckJsb2NrQ3VycmVudAACDyBpcyBub3QgZGVmaW5lZAQGd2VpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUPZmFjdG9yeUNvbnRyYWN0CQEUa2V5UG9vbFdlaWdodFZpcnR1YWwACQCsAgIJAKwCAgIbbWFuZGF0b3J5IGZhY3RvcnlfY29udHJhY3QuCQEUa2V5UG9vbFdlaWdodFZpcnR1YWwAAg8gaXMgbm90IGRlZmluZWQECWF1eEFtb3VudAkAawMJAGgCBQZkZWx0YUgFBndlaWdodAUMZW1pc3Npb25SYXRlBQVNVUxUOAQCZW0JAPwHBAUQZW1pc3Npb25Db250cmFjdAIEZW1pdAkAzAgCBQlhdXhBbW91bnQFA25pbAUDbmlsAwkAAAIFAmVtBQJlbQQLbWF0Y2hlclBhcnQICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BApwYXlvdXRJbmZvCQEQUGVyaW9kUGF5b3V0SW5mbwMFBnBlcmlvZAULbWF0Y2hlclBhcnQFCWF1eEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleUxhdGVzdFBlcmlvZAAFBnBlcmlvZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBEmtleUhlaWdodEZvclBlcmlvZAEFBnBlcmlvZAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEda2V5QXV4RW1pc3Npb25SZXdhcmRGb3JQZXJpb2QBBQZwZXJpb2QFCWF1eEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQABQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJARdrZXlUb3RhbEFtb3VudEZvclBlcmlvZAEFBnBlcmlvZAULbWF0Y2hlclBhcnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ1rZXlOZXh0UGVyaW9kAAkAZAIFBnBlcmlvZAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJARFrZXlMYXN0UGF5b3V0SW5mbwAFCnBheW91dEluZm8JAMwIAgkBC1N0cmluZ0VudHJ5AgkBFGtleVBheW91dEhpc3RvcnlJbmZvAQUGcGVyaW9kBQpwYXlvdXRJbmZvBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELY2xhaW1SZXdhcmQABAhjZmdBcnJheQkBFXJlYWRDb25maWdBcnJheU9yRmFpbAAEB2FkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBA0kdDAxNzkxNzE3OTY3CQERY29tbW9uQ2xhaW1SZXdhcmQBBQdhZGRyZXNzBAZhbW91bnQIBQ0kdDAxNzkxNzE3OTY3Al8xBAdhY3Rpb25zCAUNJHQwMTc5MTcxNzk2NwJfMgQLY2hlY2tBbW91bnQDCQBmAgUGYW1vdW50AAAGCQACAQIQTm90aGluZyB0byBjbGFpbQMJAAACBQtjaGVja0Ftb3VudAULY2hlY2tBbW91bnQEEmFtb3VudEZyb21FbWlzc2lvbgAABA9jbGFpbWVkUmVmZXJyYWwKAAFACQD8BwQFHnJlZmVycmFsc0NvbnRyYWN0QWRkcmVzc09yRmFpbAIFY2xhaW0JAMwIAgUTcmVmZXJyYWxQcm9ncmFtTmFtZQUDbmlsBQNuaWwDCQABAgUBQAIDSW50BQFACQACAQkArAICCQADAQkA/AcEBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwCBWNsYWltCQDMCAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUFA25pbAUDbmlsAhggY291bGRuJ3QgYmUgY2FzdCB0byBJbnQEC3RvdGFsQW1vdW50CQBkAgUGYW1vdW50BQ9jbGFpbWVkUmVmZXJyYWwJAJQKAgkAzggCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULdG90YWxBbW91bnQJANkEAQkAkQMCBQhjZmdBcnJheQUNSWR4Q2ZnQXNzZXRJZAkAzAgCCQEMSGlzdG9yeUVudHJ5BAIFY2xhaW0FB2FkZHJlc3MFBmFtb3VudAUBaQUDbmlsBQdhY3Rpb25zCQDMCAIFC3RvdGFsQW1vdW50CQDMCAIFEmFtb3VudEZyb21FbWlzc2lvbgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE2NsYWltUmV3YXJkUkVBRE9OTFkBB2FkZHJlc3MEDSR0MDE4NTQwMTg1OTAJARFjb21tb25DbGFpbVJld2FyZAEFB2FkZHJlc3MEBmFtb3VudAgFDSR0MDE4NTQwMTg1OTACXzEEB2FjdGlvbnMIBQ0kdDAxODU0MDE4NTkwAl8yBBFyZWZlcnJhbFVuY2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAmggCBR5yZWZlcnJhbHNDb250cmFjdEFkZHJlc3NPckZhaWwJARRrZXlVbmNsYWltZWRSZWZlcnJhbAIFE3JlZmVycmFsUHJvZ3JhbU5hbWUFB2FkZHJlc3MAAAQLdG90YWxBbW91bnQJAGQCBQZhbW91bnQFEXJlZmVycmFsVW5jbGFpbWVkCQCUCgIFA25pbAULdG90YWxBbW91bnQBaQEdbGF0ZXN0RmluYWxpemVkUGVyaW9kUkVBRE9OTFkBB2FkZHJlc3MJAJQKAgUDbmlsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlMYXRlc3RQZXJpb2QAAP///////////wEBaQEhbGF0ZXN0RmluYWxpemVkUGVyaW9kSW5mb1JFQURPTkxZAQdhZGRyZXNzCQCUCgIFA25pbAkBDmdldFN0cmluZ0J5S2V5AQkBEWtleUxhc3RQYXlvdXRJbmZvAAFpARVjYWxjR3d4UGFyYW1zUkVBRE9OTFkDDmd3eEFtb3VudFN0YXJ0D2xvY2tTdGFydEhlaWdodBJsb2NrRHVyYXRpb25CbG9ja3MEDWxvY2tFbmRIZWlnaHQJAGQCBQ9sb2NrU3RhcnRIZWlnaHQFEmxvY2tEdXJhdGlvbkJsb2NrcwQMc2NhbGU4UGFyYW1LCQEBLQEJAGsDBQ5nd3hBbW91bnRTdGFydAUFU0NBTEUFEmxvY2tEdXJhdGlvbkJsb2NrcwQMc2NhbGU4UGFyYW1CCQBoAgkAawMFDmd3eEFtb3VudFN0YXJ0BQVTQ0FMRQUSbG9ja0R1cmF0aW9uQmxvY2tzBQ1sb2NrRW5kSGVpZ2h0CQCUCgIFA25pbAkAzAgCBQxzY2FsZThQYXJhbUsJAMwIAgUMc2NhbGU4UGFyYW1CCQDMCAIJAQpuZXh0UGVyaW9kAAUDbmlsAWkBGmNhbGNHd3hBbW91bnRTdGFydFJFQURPTkxZAwx3eExvY2tBbW91bnQMbG9ja0R1cmF0aW9uD21heExvY2tEdXJhdGlvbgQHY29lZmZYOAkAawMFDGxvY2tEdXJhdGlvbgUFTVVMVDgFD21heExvY2tEdXJhdGlvbgQOZ1d4QW1vdW50U3RhcnQJAGsDBQx3eExvY2tBbW91bnQFB2NvZWZmWDgFBU1VTFQ4CQCUCgIFA25pbAkAzAgCBQ5nV3hBbW91bnRTdGFydAUDbmlsAWkBFW9uRW1pc3Npb25Gb3JHd3hTdGFydAADCQECIT0CCAUBaQZjYWxsZXIFD2ZhY3RvcnlDb250cmFjdAkAAgECEnBlcm1pc3Npb25zIGRlbmllZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBH2tleUd3eFJld2FyZEVtaXNzaW9uU3RhcnRIZWlnaHQABQZoZWlnaHQFA25pbAFpASNsYXRlc3RQZXJpb2RFbWlzc2lvblJld2FyZHNSRUFET05MWQEHYWRkcmVzcwQGcGVyaW9kCQEKbmV4dFBlcmlvZAAJAJQKAgUDbmlsCQDMCAIJAQ5nZXROdW1iZXJCeUtleQEJAR1rZXlBdXhFbWlzc2lvblJld2FyZEZvclBlcmlvZAEFBnBlcmlvZAUDbmlsAWkBBWNhbGNEBQt4MUJpZ0ludFN0cgt4MkJpZ0ludFN0cgxhbXBCaWdJbnRTdHITYVByZWNpc2lvbkJpZ0ludFN0chh0YXJnZXRQcmVjaXNpb25CaWdJbnRTdHIEBm5Db2lucwkAtgIBAAIECmFQcmVjaXNpb24JAKcDAQUTYVByZWNpc2lvbkJpZ0ludFN0cgQPdGFyZ2V0UHJlY2lzaW9uCQCnAwEFGHRhcmdldFByZWNpc2lvbkJpZ0ludFN0cgQCeDEJAKcDAQULeDFCaWdJbnRTdHIEAngyCQCnAwEFC3gyQmlnSW50U3RyBANhbXAJALkCAgkApwMBBQxhbXBCaWdJbnRTdHIFCmFQcmVjaXNpb24EAXMJALcCAgUCeDEFAngyAwkAAAIFAXMFCnplcm9CaWdJbnQJAJQKAgUDbmlsCQCmAwEFCnplcm9CaWdJbnQEA2FubgkAuQICBQNhbXAFBm5Db2lucwQDYXJyCQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUJAMwIAgAGCQDMCAIABwUDbmlsCgEEY2FsYwIDYWNjA2N1cgQNJHQwMjEyMTMyMTQwMgUDYWNjBAFkCAUNJHQwMjEyMTMyMTQwMgJfMQQFZFByZXYIBQ0kdDAyMTIxMzIxNDAyAl8yBAJkcAkAugICCQC5AgIJALkCAgUBZAUBZAUBZAkAuQICCQC5AgIJALkCAgUCeDEFAngyBQZuQ29pbnMFBm5Db2lucwQFZE5leHQJALoCAgkAuQICCQC3AgIJALoCAgkAuQICBQNhbm4FAXMFCmFQcmVjaXNpb24JALkCAgUCZHAFBm5Db2lucwUBZAkAtwICCQC6AgIJALkCAgkAuAICBQNhbm4FCmFQcmVjaXNpb24FAWQFCmFQcmVjaXNpb24JALkCAgkAtwICBQZuQ29pbnMJALYCAQABBQJkcAkAlAoCBQVkTmV4dAUBZAQNJHQwMjE2MTUyMTY2NQoAAiRsBQNhcnIKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFAXMFBHVuaXQKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBGNhbGMCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDcJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwQFZE5leHQIBQ0kdDAyMTYxNTIxNjY1Al8xBAVkUHJldggFDSR0MDIxNjE1MjE2NjUCXzIEBWREaWZmCQEDYWJzAQkAuAICBQVkTmV4dAkBBXZhbHVlAQUFZFByZXYDCQDAAgIFD3RhcmdldFByZWNpc2lvbgUFZERpZmYJAJQKAgUDbmlsCQCmAwEFBWROZXh0CQACAQkArAICAh1EIGNhbGN1bGF0aW9uIGVycm9yLCBkRGlmZiA9IAkApgMBBQVkRGlmZgFpAQpzZXRNYW5hZ2VyARdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBBVjaGVja01hbmFnZXJQdWJsaWNLZXkJANkEAQUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAgUVY2hlY2tNYW5hZ2VyUHVibGljS2V5BRVjaGVja01hbmFnZXJQdWJsaWNLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jb25maXJtTWFuYWdlcgAEAnBtCQEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAVoYXNQTQMJAQlpc0RlZmluZWQBBQJwbQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUFaGFzUE0FBWhhc1BNBAdjaGVja1BNAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCcG0GCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFB2NoZWNrUE0FB2NoZWNrUE0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2tleU1hbmFnZXJQdWJsaWNLZXkACQDYBAEJAQV2YWx1ZQEFAnBtCQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAED3RhcmdldFB1YmxpY0tleQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwBQJwawMJAAECBQckbWF0Y2gwAgRVbml0CAUCdHgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFD3RhcmdldFB1YmxpY0tlean3feg=", "chainId": 84, "height": 2178229, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HrX9jd4WXY1LyPWsfqpRnh69JduaogDsoYDzDF1Ewnrj Next: 8WkzGvaixETERnvaADLmZ6YTPLw1VeqmuXCeqivPcDjZ Diff:
OldNewDifferences
305305 func bq () = h(ao())
306306
307307
308-func br (bs,aw,aM,bt,bu,bv) = {
309- let bw = invoke(this, "claimNextBatch", [bs, aw, aM, bt, bu, bv], nil)
310- if ((bw == bw))
311- then {
312- let aU = bw
313- if ($isInstanceOf(aU, "(Int, Int, Int)"))
314- then {
315- let bx = aU
316- bx
317- }
318- else throw("Incorrect invoke result")
319- }
320- else throw("Strict value is not equal to itself.")
321- }
322-
323-
324-func by (bs,bz,bA,bt,bB,bC) = {
325- let bb = Address(bs)
326- let bD = h(aq())
327- let bE = h(aE(bz))
328- let bc = h(av(bz))
329- let bF = bm(bb, bc, bz, bA)
330- let bG = fraction(h(ay(bz)), bF, bE)
331- let bH = fraction(h(ax(bz)), bF, bE)
332- if (if ((0 >= bt))
333- then true
334- else ((bz + 1) >= bD))
335- then $Tuple3((bz + 1), (bB + bG), (bC + bH))
336- else br(bs, (bz + 1), bA, (bt - 1), (bB + bG), (bC + bH))
337- }
338-
339-
340-func bI (bp) = {
308+func br (bp) = {
341309 let ah = ab()
342- let bJ = bo(ah[Y], bp)
343- let bK = getInteger(ar(bJ))
344- let aU = bK
310+ let bs = bo(ah[Y], bp)
311+ let bt = getInteger(ar(bs))
312+ let aU = bt
345313 if ($isInstanceOf(aU, "Unit"))
346- then if (v)
347- then $Tuple2(0, nil)
348- else {
349- let bz = h(at(bJ))
350- let bL = h(aq())
351- if ((bz >= bL))
352- then $Tuple2(0, nil)
353- else {
354- let bs = fromBase58String(ah[Y])
355- let bM = by(bs, bz, bJ, b, 0, 0)
356- let aw = bM._1
357- let bN = bM._2
358- let bO = bM._3
359- let aN = (bN + bO)
360- let bP = [IntegerEntry(at(bJ), aw)]
361- $Tuple2(aN, bP)
362- }
363- }
314+ then $Tuple2(0, nil)
364315 else if ($isInstanceOf(aU, "Int"))
365316 then {
366- let bQ = aU
367- $Tuple2(bQ, [IntegerEntry(ar(bJ), 0)])
317+ let bu = aU
318+ $Tuple2(bu, [IntegerEntry(ar(bs), 0)])
368319 }
369320 else throw("Match error")
370321 }
371322
372323
373324 @Callable(aO)
374-func updateReferralActivity (bp,bR) = {
375- let bS = getString(aJ, P(bp))
376- let bT = if ((bS == unit))
325+func updateReferralActivity (bp,bv) = {
326+ let bw = getString(aJ, P(bp))
327+ let bx = if ((bw == unit))
377328 then unit
378- else invoke(aJ, "updateReferralActivity", [F, bp, (bR >= I)], nil)
379- if ((bT == bT))
329+ else invoke(aJ, "updateReferralActivity", [F, bp, (bv >= I)], nil)
330+ if ((bx == bx))
380331 then $Tuple2(nil, unit)
381332 else throw("Strict value is not equal to itself.")
382333 }
385336
386337 @Callable(aO)
387338 func finalizeHelper () = {
388- let bU = valueOrElse(getInteger(ap()), f)
339+ let by = valueOrElse(getInteger(ap()), f)
389340 let bz = h(aq())
390341 let bA = h(am())
391- let bD = h(an())
392- let bV = valueOrElse(getInteger(ag(), aj()), 0)
393- let bW = aE(bz)
342+ let bB = h(an())
343+ let bC = valueOrElse(getInteger(ag(), aj()), 0)
344+ let bD = aE(bz)
394345 let bE = h(aE(bz))
395346 let bc = h(av(bz))
396- if ((bz > bD))
347+ if ((bz > bB))
397348 then $Tuple2(nil, false)
398- else if ((bU == f))
349+ else if ((by == f))
399350 then {
400- let bX = ba(ag(), bc, bz, bA)
401- let bF = bX._1
402- let bY = bX._2
403- let bZ = (bE + bF)
404- let ca = if (((bV - 1) > bA))
351+ let bF = ba(ag(), bc, bz, bA)
352+ let bG = bF._1
353+ let bH = bF._2
354+ let bI = (bE + bG)
355+ let bJ = if (((bC - 1) > bA))
405356 then [IntegerEntry(am(), (bA + 1))]
406357 else [IntegerEntry(ap(), g), IntegerEntry(am(), 0)]
407- $Tuple2((([IntegerEntry(bW, bZ)] ++ ca) ++ bY), true)
358+ $Tuple2((([IntegerEntry(bD, bI)] ++ bJ) ++ bH), true)
408359 }
409- else if ((bU == g))
360+ else if ((by == g))
410361 then {
411- let bF = bm(ag(), bc, bz, bA)
412- let bG = fraction(h(ay(bz)), bF, bE)
413- let bH = fraction(h(ax(bz)), bF, bE)
414- let cb = (bH + bG)
415- let bK = getInteger(ar(bA))
362+ let bG = bm(ag(), bc, bz, bA)
363+ let bK = fraction(h(ay(bz)), bG, bE)
364+ let bL = fraction(h(ax(bz)), bG, bE)
365+ let bM = (bL + bK)
366+ let bt = getInteger(ar(bA))
416367 let bp = getStringValue(ag(), B(bA))
417- let bS = getString(aJ, P(bp))
418- let bT = if ((bS == unit))
368+ let bw = getString(aJ, P(bp))
369+ let bx = if ((bw == unit))
419370 then unit
420- else invoke(aJ, "updateReferralActivity", [F, bp, (bF >= I)], nil)
421- if ((bT == bT))
371+ else invoke(aJ, "updateReferralActivity", [F, bp, (bG >= I)], nil)
372+ if ((bx == bx))
422373 then {
423- let cc = if (if ((bS == unit))
374+ let bN = if (if ((bw == unit))
424375 then true
425- else (I > bF))
376+ else (I > bG))
426377 then unit
427378 else {
428- let cd = fraction(cb, L, c)
429- let ce = fraction(cb, O, c)
430- invoke(aJ, "incUnclaimed", [F, bp, cd, ce], nil)
379+ let bO = fraction(bM, L, c)
380+ let bP = fraction(bM, O, c)
381+ invoke(aJ, "incUnclaimed", [F, bp, bO, bP], nil)
431382 }
432- if ((cc == cc))
383+ if ((bN == bN))
433384 then {
434- let cf = if (if (v)
385+ let bQ = if (if (v)
435386 then true
436- else (bK != unit))
437- then [IntegerEntry(ar(bA), (valueOrElse(bK, 0) + cb))]
387+ else (bt != unit))
388+ then [IntegerEntry(ar(bA), (valueOrElse(bt, 0) + bM))]
438389 else nil
439- let ca = if (((bV - 1) > bA))
390+ let bJ = if (((bC - 1) > bA))
440391 then [IntegerEntry(am(), (bA + 1))]
441392 else [IntegerEntry(aq(), (bz + 1)), IntegerEntry(am(), 0), DeleteEntry(ap())]
442- $Tuple2((cf ++ ca), true)
393+ $Tuple2((bQ ++ bJ), true)
443394 }
444395 else throw("Strict value is not equal to itself.")
445396 }
451402
452403
453404 @Callable(aO)
454-func finalizeWrapper (cg) = {
455- let bw = {
456- let ch = invoke(this, "finalizeHelper", nil, nil)
457- if ($isInstanceOf(ch, "Boolean"))
458- then ch
405+func finalizeWrapper (bR) = {
406+ let bS = {
407+ let bT = invoke(this, "finalizeHelper", nil, nil)
408+ if ($isInstanceOf(bT, "Boolean"))
409+ then bT
459410 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
460411 }
461- if ((bw == bw))
462- then if (!(bw))
463- then if ((cg == q))
412+ if ((bS == bS))
413+ then if (!(bS))
414+ then if ((bR == q))
464415 then throw("Nothing to process")
465416 else $Tuple2(nil, unit)
466- else if ((cg > 0))
467- then $Tuple2(nil, invoke(this, "finalizeWrapper", [(cg - 1)], nil))
417+ else if ((bR > 0))
418+ then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bR - 1)], nil))
468419 else $Tuple2(nil, unit)
469420 else throw("Strict value is not equal to itself.")
470421 }
477428
478429
479430 @Callable(aO)
480-func migrateHelper () = {
481- let bA = h(w)
482- let bV = valueOrElse(getInteger(ag(), aj()), 0)
483- if (v)
484- then $Tuple2(nil, false)
485- else {
486- let bp = getStringValue(ag(), B(bA))
487- let ci = bI(bp)
488- let cj = ci._1
489- let bP = ci._2
490- let ca = if (((bV - 1) > bA))
491- then [IntegerEntry(w, (bA + 1))]
492- else [DeleteEntry(w), BooleanEntry(u, true)]
493- $Tuple2(([IntegerEntry(ar(bA), cj)] ++ ca), true)
494- }
495- }
496-
497-
498-
499-@Callable(aO)
500-func migrateWrapper (cg) = {
501- let bw = {
502- let ch = invoke(this, "migrateHelper", nil, nil)
503- if ($isInstanceOf(ch, "Boolean"))
504- then ch
505- else throw(($getType(invoke(this, "migrateHelper", nil, nil)) + " couldn't be cast to Boolean"))
506- }
507- if ((bw == bw))
508- then if (!(bw))
509- then if ((cg == t))
510- then throw("Migration is over")
511- else $Tuple2(nil, unit)
512- else if ((cg > 0))
513- then $Tuple2(nil, invoke(this, "migrateWrapper", [(cg - 1)], nil))
514- else $Tuple2(nil, unit)
515- else throw("Strict value is not equal to itself.")
516- }
517-
518-
519-
520-@Callable(aO)
521-func migrate () = $Tuple2(nil, invoke(this, "migrateWrapper", [t], nil))
522-
523-
524-
525-@Callable(aO)
526431 func deposit () = {
527432 let ah = ab()
528433 if ((aO.caller != Address(fromBase58String(ah[X]))))
529434 then throw("Wrong caller address")
530435 else {
531- let ck = value(value(aO.payments[0]).assetId)
532- if ((ck != fromBase58String(ah[W])))
436+ let bU = value(value(aO.payments[0]).assetId)
437+ if ((bU != fromBase58String(ah[W])))
533438 then throw("Wrong payment asset")
534439 else {
535440 let aw = bq()
536- let cl = (height - j(ai()))
537- let cm = valueOrErrorMessage(getInteger(V, ak()), (("mandatory emission_contract." + ak()) + " is not defined"))
538- let cn = valueOrErrorMessage(getInteger(z, al()), (("mandatory factory_contract." + al()) + " is not defined"))
539- let co = fraction((cl * cn), cm, d)
540- let cp = invoke(V, "emit", [co], nil)
541- if ((cp == cp))
441+ let bV = (height - j(ai()))
442+ let bW = valueOrErrorMessage(getInteger(V, ak()), (("mandatory emission_contract." + ak()) + " is not defined"))
443+ let bX = valueOrErrorMessage(getInteger(z, al()), (("mandatory factory_contract." + al()) + " is not defined"))
444+ let bY = fraction((bV * bX), bW, d)
445+ let bZ = invoke(V, "emit", [bY], nil)
446+ if ((bZ == bZ))
542447 then {
543- let cq = value(aO.payments[0]).amount
544- let cr = aA(aw, cq, co)
545-[IntegerEntry(an(), aw), IntegerEntry(av(aw), height), IntegerEntry(ax(aw), co), IntegerEntry(ai(), height), IntegerEntry(ay(aw), cq), IntegerEntry(ao(), (aw + 1)), StringEntry(az(), cr), StringEntry(aD(aw), cr)]
448+ let ca = value(aO.payments[0]).amount
449+ let cb = aA(aw, ca, bY)
450+[IntegerEntry(an(), aw), IntegerEntry(av(aw), height), IntegerEntry(ax(aw), bY), IntegerEntry(ai(), height), IntegerEntry(ay(aw), ca), IntegerEntry(ao(), (aw + 1)), StringEntry(az(), cb), StringEntry(aD(aw), cb)]
546451 }
547452 else throw("Strict value is not equal to itself.")
548453 }
552457
553458
554459 @Callable(aO)
555-func claimNextBatch (bs,bz,bA,bt,bu,bv) = if ((aO.caller != this))
556- then throw("Should be called by this script only")
557- else {
558- let cs = by(bs, bz, bA, bt, bu, bv)
559- $Tuple2(nil, cs)
560- }
561-
562-
563-
564-@Callable(aO)
565460 func claimReward () = {
566461 let ah = ab()
567- let ct = toString(aO.caller)
568- let cu = bI(ct)
569- let aN = cu._1
570- let bP = cu._2
571- let cv = if ((aN > 0))
462+ let cc = toString(aO.caller)
463+ let cd = br(cc)
464+ let aN = cd._1
465+ let ce = cd._2
466+ let cf = if ((aN > 0))
572467 then true
573468 else throw("Nothing to claim")
574- if ((cv == cv))
469+ if ((cf == cf))
575470 then {
576- let bO = 0
577- let cw = {
578- let ch = invoke(aJ, "claim", [F], nil)
579- if ($isInstanceOf(ch, "Int"))
580- then ch
471+ let cg = 0
472+ let ch = {
473+ let bT = invoke(aJ, "claim", [F], nil)
474+ if ($isInstanceOf(bT, "Int"))
475+ then bT
581476 else throw(($getType(invoke(aJ, "claim", [F], nil)) + " couldn't be cast to Int"))
582477 }
583- let cx = (aN + cw)
584- $Tuple2(([ScriptTransfer(aO.caller, cx, fromBase58String(ah[W])), aK("claim", ct, aN, aO)] ++ bP), [cx, bO])
478+ let ci = (aN + ch)
479+ $Tuple2(([ScriptTransfer(aO.caller, ci, fromBase58String(ah[W])), aK("claim", cc, aN, aO)] ++ ce), [ci, cg])
585480 }
586481 else throw("Strict value is not equal to itself.")
587482 }
589484
590485
591486 @Callable(aO)
592-func claimRewardREADONLY (ct) = {
593- let cy = bI(ct)
594- let aN = cy._1
595- let bP = cy._2
596- let cz = valueOrElse(getInteger(aJ, R(F, ct)), 0)
597- let cx = (aN + cz)
598- $Tuple2(nil, cx)
487+func claimRewardREADONLY (cc) = {
488+ let cj = br(cc)
489+ let aN = cj._1
490+ let ce = cj._2
491+ let ck = valueOrElse(getInteger(aJ, R(F, cc)), 0)
492+ let ci = (aN + ck)
493+ $Tuple2(nil, ci)
599494 }
600495
601496
602497
603498 @Callable(aO)
604-func latestFinalizedPeriodREADONLY (ct) = $Tuple2(nil, valueOrElse(getInteger(this, an()), -1))
499+func latestFinalizedPeriodREADONLY (cc) = $Tuple2(nil, valueOrElse(getInteger(this, an()), -1))
605500
606501
607502
608503 @Callable(aO)
609-func latestFinalizedPeriodInfoREADONLY (ct) = $Tuple2(nil, k(az()))
504+func latestFinalizedPeriodInfoREADONLY (cc) = $Tuple2(nil, k(az()))
610505
611506
612507
613508 @Callable(aO)
614-func calcGwxParamsREADONLY (cA,cB,cC) = {
615- let cD = (cB + cC)
616- let cE = -(fraction(cA, c, cC))
617- let cF = (fraction(cA, c, cC) * cD)
618- $Tuple2(nil, [cE, cF, bq()])
509+func calcGwxParamsREADONLY (cl,cm,cn) = {
510+ let co = (cm + cn)
511+ let cp = -(fraction(cl, c, cn))
512+ let cq = (fraction(cl, c, cn) * co)
513+ $Tuple2(nil, [cp, cq, bq()])
619514 }
620515
621516
622517
623518 @Callable(aO)
624-func calcGwxAmountStartREADONLY (cG,cH,cI) = {
625- let cJ = fraction(cH, d, cI)
626- let bR = fraction(cG, cJ, d)
627- $Tuple2(nil, [bR])
519+func calcGwxAmountStartREADONLY (cr,cs,ct) = {
520+ let cu = fraction(cs, d, ct)
521+ let bv = fraction(cr, cu, d)
522+ $Tuple2(nil, [bv])
628523 }
629-
630-
631-
632-@Callable(aO)
633-func constructor (ad,ae,af,q) = if ((this != aO.caller))
634- then throw("not authorized")
635- else [StringEntry(aa(), ac(ad, ae, af, q))]
636-
637-
638-
639-@Callable(aO)
640-func constructorV2 (cK) = if ((this != aO.caller))
641- then throw("not authorized")
642- else [StringEntry(x(), cK)]
643-
644-
645-
646-@Callable(aO)
647-func constructorV3 (cL) = if ((this != aO.caller))
648- then throw("not authorized")
649- else {
650- let cM = if (isDefined(getInteger(this, an())))
651- then nil
652- else [IntegerEntry(an(), -1)]
653- (cM :+ StringEntry(A(), cL))
654- }
655524
656525
657526
663532
664533
665534 @Callable(aO)
666-func latestPeriodEmissionRewardsREADONLY (ct) = {
535+func latestPeriodEmissionRewardsREADONLY (cc) = {
667536 let aw = bq()
668537 $Tuple2(nil, [h(ax(aw))])
669538 }
671540
672541
673542 @Callable(aO)
674-func calcD (cN,cO,cP,cQ,cR) = {
675- let cS = toBigInt(2)
676- let cT = parseBigIntValue(cQ)
677- let cU = parseBigIntValue(cR)
678- let cV = parseBigIntValue(cN)
679- let cW = parseBigIntValue(cO)
680- let cX = (parseBigIntValue(cP) * cT)
681- let aV = (cV + cW)
543+func calcD (cv,cw,cx,cy,cz) = {
544+ let cA = toBigInt(2)
545+ let cB = parseBigIntValue(cy)
546+ let cC = parseBigIntValue(cz)
547+ let cD = parseBigIntValue(cv)
548+ let cE = parseBigIntValue(cw)
549+ let cF = (parseBigIntValue(cx) * cB)
550+ let aV = (cD + cE)
682551 if ((aV == e))
683552 then $Tuple2(nil, toString(e))
684553 else {
685- let cY = (cX * cS)
686- let cZ = [1, 2, 3, 4, 5, 6, 7]
687- func da (db,dc) = {
688- let dd = db
689- let de = dd._1
690- let df = dd._2
691- let dg = (((de * de) * de) / (((cV * cW) * cS) * cS))
692- let dh = (((((cY * aV) / cT) + (dg * cS)) * de) / ((((cY - cT) * de) / cT) + ((cS + toBigInt(1)) * dg)))
693- $Tuple2(dh, de)
554+ let cG = (cF * cA)
555+ let cH = [1, 2, 3, 4, 5, 6, 7]
556+ func cI (cJ,cK) = {
557+ let cL = cJ
558+ let cM = cL._1
559+ let cN = cL._2
560+ let cO = (((cM * cM) * cM) / (((cD * cE) * cA) * cA))
561+ let cP = (((((cG * aV) / cB) + (cO * cA)) * cM) / ((((cG - cB) * cM) / cB) + ((cA + toBigInt(1)) * cO)))
562+ $Tuple2(cP, cM)
694563 }
695564
696- let di = {
697- let dj = cZ
698- let dk = size(dj)
699- let dl = $Tuple2(aV, unit)
700- func dm (dn,do) = if ((do >= dk))
701- then dn
702- else da(dn, dj[do])
565+ let cQ = {
566+ let cR = cH
567+ let cS = size(cR)
568+ let cT = $Tuple2(aV, unit)
569+ func cU (cV,cW) = if ((cW >= cS))
570+ then cV
571+ else cI(cV, cR[cW])
703572
704- func dp (dn,do) = if ((do >= dk))
705- then dn
573+ func cX (cV,cW) = if ((cW >= cS))
574+ then cV
706575 else throw("List size exceeds 7")
707576
708- dp(dm(dm(dm(dm(dm(dm(dm(dl, 0), 1), 2), 3), 4), 5), 6), 7)
577+ cX(cU(cU(cU(cU(cU(cU(cU(cT, 0), 1), 2), 3), 4), 5), 6), 7)
709578 }
710- let dh = di._1
711- let df = di._2
712- let dq = m((dh - value(df)))
713- if ((cU >= dq))
714- then $Tuple2(nil, toString(dh))
715- else throw(("D calculation error, dDiff = " + toString(dq)))
579+ let cP = cQ._1
580+ let cN = cQ._2
581+ let cY = m((cP - value(cN)))
582+ if ((cC >= cY))
583+ then $Tuple2(nil, toString(cP))
584+ else throw(("D calculation error, dDiff = " + toString(cY)))
716585 }
717586 }
718587
719588
720589
721590 @Callable(aO)
722-func setManager (dr) = {
723- let ds = aX(aO)
724- if ((ds == ds))
591+func setManager (cZ) = {
592+ let da = aX(aO)
593+ if ((da == da))
725594 then {
726- let dt = fromBase58String(dr)
727- if ((dt == dt))
728- then [StringEntry(aS(), dr)]
595+ let db = fromBase58String(cZ)
596+ if ((db == db))
597+ then [StringEntry(aS(), cZ)]
729598 else throw("Strict value is not equal to itself.")
730599 }
731600 else throw("Strict value is not equal to itself.")
735604
736605 @Callable(aO)
737606 func confirmManager () = {
738- let du = aW()
739- let dv = if (isDefined(du))
607+ let dc = aW()
608+ let dd = if (isDefined(dc))
740609 then true
741610 else throw("No pending manager")
742- if ((dv == dv))
611+ if ((dd == dd))
743612 then {
744- let dw = if ((aO.callerPublicKey == value(du)))
613+ let de = if ((aO.callerPublicKey == value(dc)))
745614 then true
746615 else throw("You are not pending manager")
747- if ((dw == dw))
748- then [StringEntry(aR(), toBase58String(value(du))), DeleteEntry(aS())]
616+ if ((de == de))
617+ then [StringEntry(aR(), toBase58String(value(dc))), DeleteEntry(aS())]
749618 else throw("Strict value is not equal to itself.")
750619 }
751620 else throw("Strict value is not equal to itself.")
752621 }
753622
754623
755-@Verifier(dx)
756-func dy () = {
757- let dz = {
624+@Verifier(df)
625+func dg () = {
626+ let dh = {
758627 let aU = aT()
759628 if ($isInstanceOf(aU, "ByteVector"))
760629 then {
762631 aZ
763632 }
764633 else if ($isInstanceOf(aU, "Unit"))
765- then dx.senderPublicKey
634+ then df.senderPublicKey
766635 else throw("Match error")
767636 }
768- sigVerify(dx.bodyBytes, dx.proofs[0], dz)
637+ sigVerify(df.bodyBytes, df.proofs[0], dh)
769638 }
770639
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 26
77
88 let c = 1000
99
1010 let d = 100000000
1111
1212 let e = toBigInt(0)
1313
1414 let f = 0
1515
1616 let g = 1
1717
1818 func h (i) = valueOrElse(getInteger(this, i), 0)
1919
2020
2121 func j (i) = valueOrErrorMessage(getInteger(this, i), (("mandatory this." + i) + " is not defined"))
2222
2323
2424 func k (i) = valueOrElse(getString(this, i), "")
2525
2626
2727 func l (i) = valueOrErrorMessage(getString(this, i), (("mandatory this." + i) + " is not defined"))
2828
2929
3030 func m (n) = if ((e > n))
3131 then -(n)
3232 else n
3333
3434
3535 let o = "%s__maxDepth"
3636
3737 let p = 30
3838
3939 let q = valueOrElse(getInteger(this, o), p)
4040
4141 let r = "%s__maxDepthMigration"
4242
4343 let s = 3
4444
4545 let t = valueOrElse(getInteger(this, r), s)
4646
4747 let u = "migrated"
4848
4949 let v = valueOrElse(getBoolean(this, u), false)
5050
5151 let w = "nextProcessedUserMigration"
5252
5353 func x () = "%s%s__config__factoryAddress"
5454
5555
5656 let y = l(x())
5757
5858 let z = addressFromStringValue(y)
5959
6060 func A () = "%s%s__config__emissionAddress"
6161
6262
6363 func B (C) = makeString(["%s%s%s", "mapping", "num2user", toString(C)], a)
6464
6565
6666 let D = makeString(["%s%s", "referral", "programName"], a)
6767
6868 let E = "wxlock"
6969
7070 let F = valueOrElse(getString(this, D), E)
7171
7272 let G = makeString(["%s%s", "referral", "minGWxAmount"], a)
7373
7474 let H = (500 * d)
7575
7676 let I = valueOrElse(getInteger(this, G), H)
7777
7878 let J = makeString(["%s%s", "referral", "referrerRewardPermille"], a)
7979
8080 let K = 50
8181
8282 let L = valueOrElse(getInteger(this, J), K)
8383
8484 let M = makeString(["%s%s", "referral", "referralRewardPermille"], a)
8585
8686 let N = 50
8787
8888 let O = valueOrElse(getInteger(this, M), N)
8989
9090 func P (Q) = makeString(["%s%s%s", "referrer", F, Q], a)
9191
9292
9393 func R (S,T) = makeString(["%s%s%s%s", "unclaimedReferral", S, T], a)
9494
9595
9696 let U = l(A())
9797
9898 let V = addressFromStringValue(U)
9999
100100 let W = 1
101101
102102 let X = 2
103103
104104 let Y = 3
105105
106106 let Z = 4
107107
108108 func aa () = "%s__config"
109109
110110
111111 func ab () = split(l(aa()), a)
112112
113113
114114 func ac (ad,ae,af,q) = makeString(["%s%s%s%d", ad, ae, af, toString(q)], a)
115115
116116
117117 func ag () = {
118118 let ah = ab()
119119 valueOrErrorMessage(addressFromString(ah[Y]), "boosting contract address is not defined")
120120 }
121121
122122
123123 func ai () = "%s%s__gwxRewardEmissionPart__startHeight"
124124
125125
126126 func aj () = "%s__nextUserNum"
127127
128128
129129 func ak () = "%s%s__ratePerBlock__current"
130130
131131
132132 func al () = "%s%s__poolWeight__GWXvirtualPOOL"
133133
134134
135135 func am () = "%s__nextProcessedUser"
136136
137137
138138 func an () = "%s__latestPeriod"
139139
140140
141141 func ao () = "%s__nextPeriod"
142142
143143
144144 func ap () = "%s__processingStage"
145145
146146
147147 func aq () = "%s__nextProcessedPeriod"
148148
149149
150150 func ar (as) = makeString(["%s%d", "userUnclaimed", toString(as)], a)
151151
152152
153153 func at (as) = makeString(["%s%d__nextClaimedPeriod", toString(as)], a)
154154
155155
156156 func au (as) = makeString(["%s%d__lastProcessedPeriod", toString(as)], a)
157157
158158
159159 func av (aw) = makeString(["%s%d__startHeightForPeriod", toString(aw)], a)
160160
161161
162162 func ax (aw) = makeString(["%s%d__auxEmissionReward", toString(aw)], a)
163163
164164
165165 func ay (aw) = makeString(["%s%d__totalAmountForPeriod", toString(aw)], a)
166166
167167
168168 func az () = "%s__lastPayoutInfo"
169169
170170
171171 func aA (aw,aB,aC) = makeString(["%d%d%d", toString(aw), toString(aB), toString(aC)], a)
172172
173173
174174 func aD (aw) = makeString(["%s%s%d__payouts__history", toString(aw)], a)
175175
176176
177177 func aE (aw) = makeString(["%s%d__totalWeightForPeriod", toString(aw)], a)
178178
179179
180180 func aF (aw,as) = makeString(["%s%d%s%d__paramByPeriod", toString(as), "k", toString(aw)], a)
181181
182182
183183 func aG (aw,as) = makeString(["%s%d%s%d__paramByPeriod", toString(as), "b", toString(aw)], a)
184184
185185
186186 func aH (aw,as) = makeString(["%s%d%s%d__paramByPeriod", toString(as), "weight", toString(aw)], a)
187187
188188
189189 func aI () = makeString(["%s%s", "config", "referralsContractAddress"], a)
190190
191191
192192 let aJ = addressFromStringValue(l(aI()))
193193
194194 func aK (aL,aM,aN,aO) = {
195195 let aP = makeString(["%s%s%s%s__history", aL, aM, toBase58String(aO.transactionId)], a)
196196 let aQ = makeString(["%d%d%d%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(aN)], a)
197197 StringEntry(aP, aQ)
198198 }
199199
200200
201201 func aR () = "%s__managerPublicKey"
202202
203203
204204 func aS () = "%s__pendingManagerPublicKey"
205205
206206
207207 func aT () = {
208208 let aU = getString(aR())
209209 if ($isInstanceOf(aU, "String"))
210210 then {
211211 let aV = aU
212212 fromBase58String(aV)
213213 }
214214 else if ($isInstanceOf(aU, "Unit"))
215215 then unit
216216 else throw("Match error")
217217 }
218218
219219
220220 func aW () = {
221221 let aU = getString(aS())
222222 if ($isInstanceOf(aU, "String"))
223223 then {
224224 let aV = aU
225225 fromBase58String(aV)
226226 }
227227 else if ($isInstanceOf(aU, "Unit"))
228228 then unit
229229 else throw("Match error")
230230 }
231231
232232
233233 func aX (aO) = {
234234 let aY = throw("Permission denied")
235235 let aU = aT()
236236 if ($isInstanceOf(aU, "ByteVector"))
237237 then {
238238 let aZ = aU
239239 if ((aO.callerPublicKey == aZ))
240240 then true
241241 else aY
242242 }
243243 else if ($isInstanceOf(aU, "Unit"))
244244 then if ((aO.caller == this))
245245 then true
246246 else aY
247247 else throw("Match error")
248248 }
249249
250250
251251 func ba (bb,bc,aw,as) = {
252252 let bd = au(as)
253253 let be = aF(aw, as)
254254 let bf = getInteger(bb, be)
255255 let bg = aH(aw, as)
256256 if (isDefined(bf))
257257 then {
258258 let bh = value(bf)
259259 let bi = value(getInteger(bb, aG(aw, as)))
260260 let bj = ((bh * bc) + bi)
261261 if ((bj > 0))
262262 then $Tuple2((bj / c), [IntegerEntry(bd, aw), IntegerEntry(bg, bj)])
263263 else $Tuple2(0, nil)
264264 }
265265 else {
266266 let bk = getInteger(this, bd)
267267 if (if (isDefined(bk))
268268 then (aw >= value(bk))
269269 else false)
270270 then {
271271 let bl = value(bk)
272272 let bh = value(getInteger(bb, aF(bl, as)))
273273 let bi = value(getInteger(bb, aG(bl, as)))
274274 let bj = ((bh * bc) + bi)
275275 if ((bj > 0))
276276 then $Tuple2((bj / c), [IntegerEntry(bg, bj)])
277277 else $Tuple2(0, nil)
278278 }
279279 else $Tuple2(0, nil)
280280 }
281281 }
282282
283283
284284 func bm (bb,bc,aw,as) = {
285285 let bg = aH(aw, as)
286286 let bn = getInteger(bg)
287287 let aU = bn
288288 if ($isInstanceOf(aU, "Unit"))
289289 then 0
290290 else if ($isInstanceOf(aU, "Int"))
291291 then {
292292 let bj = aU
293293 (bj / c)
294294 }
295295 else throw("Match error")
296296 }
297297
298298
299299 func bo (af,bp) = {
300300 let i = makeString(["%s%s%s", "mapping", "user2num", bp], a)
301301 parseIntValue(valueOrErrorMessage(getString(Address(fromBase58String(af)), i), ((("User address " + bp) + " is not found in boosting contract data, key=") + i)))
302302 }
303303
304304
305305 func bq () = h(ao())
306306
307307
308-func br (bs,aw,aM,bt,bu,bv) = {
309- let bw = invoke(this, "claimNextBatch", [bs, aw, aM, bt, bu, bv], nil)
310- if ((bw == bw))
311- then {
312- let aU = bw
313- if ($isInstanceOf(aU, "(Int, Int, Int)"))
314- then {
315- let bx = aU
316- bx
317- }
318- else throw("Incorrect invoke result")
319- }
320- else throw("Strict value is not equal to itself.")
321- }
322-
323-
324-func by (bs,bz,bA,bt,bB,bC) = {
325- let bb = Address(bs)
326- let bD = h(aq())
327- let bE = h(aE(bz))
328- let bc = h(av(bz))
329- let bF = bm(bb, bc, bz, bA)
330- let bG = fraction(h(ay(bz)), bF, bE)
331- let bH = fraction(h(ax(bz)), bF, bE)
332- if (if ((0 >= bt))
333- then true
334- else ((bz + 1) >= bD))
335- then $Tuple3((bz + 1), (bB + bG), (bC + bH))
336- else br(bs, (bz + 1), bA, (bt - 1), (bB + bG), (bC + bH))
337- }
338-
339-
340-func bI (bp) = {
308+func br (bp) = {
341309 let ah = ab()
342- let bJ = bo(ah[Y], bp)
343- let bK = getInteger(ar(bJ))
344- let aU = bK
310+ let bs = bo(ah[Y], bp)
311+ let bt = getInteger(ar(bs))
312+ let aU = bt
345313 if ($isInstanceOf(aU, "Unit"))
346- then if (v)
347- then $Tuple2(0, nil)
348- else {
349- let bz = h(at(bJ))
350- let bL = h(aq())
351- if ((bz >= bL))
352- then $Tuple2(0, nil)
353- else {
354- let bs = fromBase58String(ah[Y])
355- let bM = by(bs, bz, bJ, b, 0, 0)
356- let aw = bM._1
357- let bN = bM._2
358- let bO = bM._3
359- let aN = (bN + bO)
360- let bP = [IntegerEntry(at(bJ), aw)]
361- $Tuple2(aN, bP)
362- }
363- }
314+ then $Tuple2(0, nil)
364315 else if ($isInstanceOf(aU, "Int"))
365316 then {
366- let bQ = aU
367- $Tuple2(bQ, [IntegerEntry(ar(bJ), 0)])
317+ let bu = aU
318+ $Tuple2(bu, [IntegerEntry(ar(bs), 0)])
368319 }
369320 else throw("Match error")
370321 }
371322
372323
373324 @Callable(aO)
374-func updateReferralActivity (bp,bR) = {
375- let bS = getString(aJ, P(bp))
376- let bT = if ((bS == unit))
325+func updateReferralActivity (bp,bv) = {
326+ let bw = getString(aJ, P(bp))
327+ let bx = if ((bw == unit))
377328 then unit
378- else invoke(aJ, "updateReferralActivity", [F, bp, (bR >= I)], nil)
379- if ((bT == bT))
329+ else invoke(aJ, "updateReferralActivity", [F, bp, (bv >= I)], nil)
330+ if ((bx == bx))
380331 then $Tuple2(nil, unit)
381332 else throw("Strict value is not equal to itself.")
382333 }
383334
384335
385336
386337 @Callable(aO)
387338 func finalizeHelper () = {
388- let bU = valueOrElse(getInteger(ap()), f)
339+ let by = valueOrElse(getInteger(ap()), f)
389340 let bz = h(aq())
390341 let bA = h(am())
391- let bD = h(an())
392- let bV = valueOrElse(getInteger(ag(), aj()), 0)
393- let bW = aE(bz)
342+ let bB = h(an())
343+ let bC = valueOrElse(getInteger(ag(), aj()), 0)
344+ let bD = aE(bz)
394345 let bE = h(aE(bz))
395346 let bc = h(av(bz))
396- if ((bz > bD))
347+ if ((bz > bB))
397348 then $Tuple2(nil, false)
398- else if ((bU == f))
349+ else if ((by == f))
399350 then {
400- let bX = ba(ag(), bc, bz, bA)
401- let bF = bX._1
402- let bY = bX._2
403- let bZ = (bE + bF)
404- let ca = if (((bV - 1) > bA))
351+ let bF = ba(ag(), bc, bz, bA)
352+ let bG = bF._1
353+ let bH = bF._2
354+ let bI = (bE + bG)
355+ let bJ = if (((bC - 1) > bA))
405356 then [IntegerEntry(am(), (bA + 1))]
406357 else [IntegerEntry(ap(), g), IntegerEntry(am(), 0)]
407- $Tuple2((([IntegerEntry(bW, bZ)] ++ ca) ++ bY), true)
358+ $Tuple2((([IntegerEntry(bD, bI)] ++ bJ) ++ bH), true)
408359 }
409- else if ((bU == g))
360+ else if ((by == g))
410361 then {
411- let bF = bm(ag(), bc, bz, bA)
412- let bG = fraction(h(ay(bz)), bF, bE)
413- let bH = fraction(h(ax(bz)), bF, bE)
414- let cb = (bH + bG)
415- let bK = getInteger(ar(bA))
362+ let bG = bm(ag(), bc, bz, bA)
363+ let bK = fraction(h(ay(bz)), bG, bE)
364+ let bL = fraction(h(ax(bz)), bG, bE)
365+ let bM = (bL + bK)
366+ let bt = getInteger(ar(bA))
416367 let bp = getStringValue(ag(), B(bA))
417- let bS = getString(aJ, P(bp))
418- let bT = if ((bS == unit))
368+ let bw = getString(aJ, P(bp))
369+ let bx = if ((bw == unit))
419370 then unit
420- else invoke(aJ, "updateReferralActivity", [F, bp, (bF >= I)], nil)
421- if ((bT == bT))
371+ else invoke(aJ, "updateReferralActivity", [F, bp, (bG >= I)], nil)
372+ if ((bx == bx))
422373 then {
423- let cc = if (if ((bS == unit))
374+ let bN = if (if ((bw == unit))
424375 then true
425- else (I > bF))
376+ else (I > bG))
426377 then unit
427378 else {
428- let cd = fraction(cb, L, c)
429- let ce = fraction(cb, O, c)
430- invoke(aJ, "incUnclaimed", [F, bp, cd, ce], nil)
379+ let bO = fraction(bM, L, c)
380+ let bP = fraction(bM, O, c)
381+ invoke(aJ, "incUnclaimed", [F, bp, bO, bP], nil)
431382 }
432- if ((cc == cc))
383+ if ((bN == bN))
433384 then {
434- let cf = if (if (v)
385+ let bQ = if (if (v)
435386 then true
436- else (bK != unit))
437- then [IntegerEntry(ar(bA), (valueOrElse(bK, 0) + cb))]
387+ else (bt != unit))
388+ then [IntegerEntry(ar(bA), (valueOrElse(bt, 0) + bM))]
438389 else nil
439- let ca = if (((bV - 1) > bA))
390+ let bJ = if (((bC - 1) > bA))
440391 then [IntegerEntry(am(), (bA + 1))]
441392 else [IntegerEntry(aq(), (bz + 1)), IntegerEntry(am(), 0), DeleteEntry(ap())]
442- $Tuple2((cf ++ ca), true)
393+ $Tuple2((bQ ++ bJ), true)
443394 }
444395 else throw("Strict value is not equal to itself.")
445396 }
446397 else throw("Strict value is not equal to itself.")
447398 }
448399 else throw("invalid processing stage")
449400 }
450401
451402
452403
453404 @Callable(aO)
454-func finalizeWrapper (cg) = {
455- let bw = {
456- let ch = invoke(this, "finalizeHelper", nil, nil)
457- if ($isInstanceOf(ch, "Boolean"))
458- then ch
405+func finalizeWrapper (bR) = {
406+ let bS = {
407+ let bT = invoke(this, "finalizeHelper", nil, nil)
408+ if ($isInstanceOf(bT, "Boolean"))
409+ then bT
459410 else throw(($getType(invoke(this, "finalizeHelper", nil, nil)) + " couldn't be cast to Boolean"))
460411 }
461- if ((bw == bw))
462- then if (!(bw))
463- then if ((cg == q))
412+ if ((bS == bS))
413+ then if (!(bS))
414+ then if ((bR == q))
464415 then throw("Nothing to process")
465416 else $Tuple2(nil, unit)
466- else if ((cg > 0))
467- then $Tuple2(nil, invoke(this, "finalizeWrapper", [(cg - 1)], nil))
417+ else if ((bR > 0))
418+ then $Tuple2(nil, invoke(this, "finalizeWrapper", [(bR - 1)], nil))
468419 else $Tuple2(nil, unit)
469420 else throw("Strict value is not equal to itself.")
470421 }
471422
472423
473424
474425 @Callable(aO)
475426 func processPendingPeriodsAndUsers () = $Tuple2(nil, invoke(this, "finalizeWrapper", [q], nil))
476427
477428
478429
479430 @Callable(aO)
480-func migrateHelper () = {
481- let bA = h(w)
482- let bV = valueOrElse(getInteger(ag(), aj()), 0)
483- if (v)
484- then $Tuple2(nil, false)
485- else {
486- let bp = getStringValue(ag(), B(bA))
487- let ci = bI(bp)
488- let cj = ci._1
489- let bP = ci._2
490- let ca = if (((bV - 1) > bA))
491- then [IntegerEntry(w, (bA + 1))]
492- else [DeleteEntry(w), BooleanEntry(u, true)]
493- $Tuple2(([IntegerEntry(ar(bA), cj)] ++ ca), true)
494- }
495- }
496-
497-
498-
499-@Callable(aO)
500-func migrateWrapper (cg) = {
501- let bw = {
502- let ch = invoke(this, "migrateHelper", nil, nil)
503- if ($isInstanceOf(ch, "Boolean"))
504- then ch
505- else throw(($getType(invoke(this, "migrateHelper", nil, nil)) + " couldn't be cast to Boolean"))
506- }
507- if ((bw == bw))
508- then if (!(bw))
509- then if ((cg == t))
510- then throw("Migration is over")
511- else $Tuple2(nil, unit)
512- else if ((cg > 0))
513- then $Tuple2(nil, invoke(this, "migrateWrapper", [(cg - 1)], nil))
514- else $Tuple2(nil, unit)
515- else throw("Strict value is not equal to itself.")
516- }
517-
518-
519-
520-@Callable(aO)
521-func migrate () = $Tuple2(nil, invoke(this, "migrateWrapper", [t], nil))
522-
523-
524-
525-@Callable(aO)
526431 func deposit () = {
527432 let ah = ab()
528433 if ((aO.caller != Address(fromBase58String(ah[X]))))
529434 then throw("Wrong caller address")
530435 else {
531- let ck = value(value(aO.payments[0]).assetId)
532- if ((ck != fromBase58String(ah[W])))
436+ let bU = value(value(aO.payments[0]).assetId)
437+ if ((bU != fromBase58String(ah[W])))
533438 then throw("Wrong payment asset")
534439 else {
535440 let aw = bq()
536- let cl = (height - j(ai()))
537- let cm = valueOrErrorMessage(getInteger(V, ak()), (("mandatory emission_contract." + ak()) + " is not defined"))
538- let cn = valueOrErrorMessage(getInteger(z, al()), (("mandatory factory_contract." + al()) + " is not defined"))
539- let co = fraction((cl * cn), cm, d)
540- let cp = invoke(V, "emit", [co], nil)
541- if ((cp == cp))
441+ let bV = (height - j(ai()))
442+ let bW = valueOrErrorMessage(getInteger(V, ak()), (("mandatory emission_contract." + ak()) + " is not defined"))
443+ let bX = valueOrErrorMessage(getInteger(z, al()), (("mandatory factory_contract." + al()) + " is not defined"))
444+ let bY = fraction((bV * bX), bW, d)
445+ let bZ = invoke(V, "emit", [bY], nil)
446+ if ((bZ == bZ))
542447 then {
543- let cq = value(aO.payments[0]).amount
544- let cr = aA(aw, cq, co)
545-[IntegerEntry(an(), aw), IntegerEntry(av(aw), height), IntegerEntry(ax(aw), co), IntegerEntry(ai(), height), IntegerEntry(ay(aw), cq), IntegerEntry(ao(), (aw + 1)), StringEntry(az(), cr), StringEntry(aD(aw), cr)]
448+ let ca = value(aO.payments[0]).amount
449+ let cb = aA(aw, ca, bY)
450+[IntegerEntry(an(), aw), IntegerEntry(av(aw), height), IntegerEntry(ax(aw), bY), IntegerEntry(ai(), height), IntegerEntry(ay(aw), ca), IntegerEntry(ao(), (aw + 1)), StringEntry(az(), cb), StringEntry(aD(aw), cb)]
546451 }
547452 else throw("Strict value is not equal to itself.")
548453 }
549454 }
550455 }
551456
552457
553458
554459 @Callable(aO)
555-func claimNextBatch (bs,bz,bA,bt,bu,bv) = if ((aO.caller != this))
556- then throw("Should be called by this script only")
557- else {
558- let cs = by(bs, bz, bA, bt, bu, bv)
559- $Tuple2(nil, cs)
560- }
561-
562-
563-
564-@Callable(aO)
565460 func claimReward () = {
566461 let ah = ab()
567- let ct = toString(aO.caller)
568- let cu = bI(ct)
569- let aN = cu._1
570- let bP = cu._2
571- let cv = if ((aN > 0))
462+ let cc = toString(aO.caller)
463+ let cd = br(cc)
464+ let aN = cd._1
465+ let ce = cd._2
466+ let cf = if ((aN > 0))
572467 then true
573468 else throw("Nothing to claim")
574- if ((cv == cv))
469+ if ((cf == cf))
575470 then {
576- let bO = 0
577- let cw = {
578- let ch = invoke(aJ, "claim", [F], nil)
579- if ($isInstanceOf(ch, "Int"))
580- then ch
471+ let cg = 0
472+ let ch = {
473+ let bT = invoke(aJ, "claim", [F], nil)
474+ if ($isInstanceOf(bT, "Int"))
475+ then bT
581476 else throw(($getType(invoke(aJ, "claim", [F], nil)) + " couldn't be cast to Int"))
582477 }
583- let cx = (aN + cw)
584- $Tuple2(([ScriptTransfer(aO.caller, cx, fromBase58String(ah[W])), aK("claim", ct, aN, aO)] ++ bP), [cx, bO])
478+ let ci = (aN + ch)
479+ $Tuple2(([ScriptTransfer(aO.caller, ci, fromBase58String(ah[W])), aK("claim", cc, aN, aO)] ++ ce), [ci, cg])
585480 }
586481 else throw("Strict value is not equal to itself.")
587482 }
588483
589484
590485
591486 @Callable(aO)
592-func claimRewardREADONLY (ct) = {
593- let cy = bI(ct)
594- let aN = cy._1
595- let bP = cy._2
596- let cz = valueOrElse(getInteger(aJ, R(F, ct)), 0)
597- let cx = (aN + cz)
598- $Tuple2(nil, cx)
487+func claimRewardREADONLY (cc) = {
488+ let cj = br(cc)
489+ let aN = cj._1
490+ let ce = cj._2
491+ let ck = valueOrElse(getInteger(aJ, R(F, cc)), 0)
492+ let ci = (aN + ck)
493+ $Tuple2(nil, ci)
599494 }
600495
601496
602497
603498 @Callable(aO)
604-func latestFinalizedPeriodREADONLY (ct) = $Tuple2(nil, valueOrElse(getInteger(this, an()), -1))
499+func latestFinalizedPeriodREADONLY (cc) = $Tuple2(nil, valueOrElse(getInteger(this, an()), -1))
605500
606501
607502
608503 @Callable(aO)
609-func latestFinalizedPeriodInfoREADONLY (ct) = $Tuple2(nil, k(az()))
504+func latestFinalizedPeriodInfoREADONLY (cc) = $Tuple2(nil, k(az()))
610505
611506
612507
613508 @Callable(aO)
614-func calcGwxParamsREADONLY (cA,cB,cC) = {
615- let cD = (cB + cC)
616- let cE = -(fraction(cA, c, cC))
617- let cF = (fraction(cA, c, cC) * cD)
618- $Tuple2(nil, [cE, cF, bq()])
509+func calcGwxParamsREADONLY (cl,cm,cn) = {
510+ let co = (cm + cn)
511+ let cp = -(fraction(cl, c, cn))
512+ let cq = (fraction(cl, c, cn) * co)
513+ $Tuple2(nil, [cp, cq, bq()])
619514 }
620515
621516
622517
623518 @Callable(aO)
624-func calcGwxAmountStartREADONLY (cG,cH,cI) = {
625- let cJ = fraction(cH, d, cI)
626- let bR = fraction(cG, cJ, d)
627- $Tuple2(nil, [bR])
519+func calcGwxAmountStartREADONLY (cr,cs,ct) = {
520+ let cu = fraction(cs, d, ct)
521+ let bv = fraction(cr, cu, d)
522+ $Tuple2(nil, [bv])
628523 }
629-
630-
631-
632-@Callable(aO)
633-func constructor (ad,ae,af,q) = if ((this != aO.caller))
634- then throw("not authorized")
635- else [StringEntry(aa(), ac(ad, ae, af, q))]
636-
637-
638-
639-@Callable(aO)
640-func constructorV2 (cK) = if ((this != aO.caller))
641- then throw("not authorized")
642- else [StringEntry(x(), cK)]
643-
644-
645-
646-@Callable(aO)
647-func constructorV3 (cL) = if ((this != aO.caller))
648- then throw("not authorized")
649- else {
650- let cM = if (isDefined(getInteger(this, an())))
651- then nil
652- else [IntegerEntry(an(), -1)]
653- (cM :+ StringEntry(A(), cL))
654- }
655524
656525
657526
658527 @Callable(aO)
659528 func onEmissionForGwxStart () = if ((aO.caller != z))
660529 then throw("permissions denied")
661530 else [IntegerEntry(ai(), height)]
662531
663532
664533
665534 @Callable(aO)
666-func latestPeriodEmissionRewardsREADONLY (ct) = {
535+func latestPeriodEmissionRewardsREADONLY (cc) = {
667536 let aw = bq()
668537 $Tuple2(nil, [h(ax(aw))])
669538 }
670539
671540
672541
673542 @Callable(aO)
674-func calcD (cN,cO,cP,cQ,cR) = {
675- let cS = toBigInt(2)
676- let cT = parseBigIntValue(cQ)
677- let cU = parseBigIntValue(cR)
678- let cV = parseBigIntValue(cN)
679- let cW = parseBigIntValue(cO)
680- let cX = (parseBigIntValue(cP) * cT)
681- let aV = (cV + cW)
543+func calcD (cv,cw,cx,cy,cz) = {
544+ let cA = toBigInt(2)
545+ let cB = parseBigIntValue(cy)
546+ let cC = parseBigIntValue(cz)
547+ let cD = parseBigIntValue(cv)
548+ let cE = parseBigIntValue(cw)
549+ let cF = (parseBigIntValue(cx) * cB)
550+ let aV = (cD + cE)
682551 if ((aV == e))
683552 then $Tuple2(nil, toString(e))
684553 else {
685- let cY = (cX * cS)
686- let cZ = [1, 2, 3, 4, 5, 6, 7]
687- func da (db,dc) = {
688- let dd = db
689- let de = dd._1
690- let df = dd._2
691- let dg = (((de * de) * de) / (((cV * cW) * cS) * cS))
692- let dh = (((((cY * aV) / cT) + (dg * cS)) * de) / ((((cY - cT) * de) / cT) + ((cS + toBigInt(1)) * dg)))
693- $Tuple2(dh, de)
554+ let cG = (cF * cA)
555+ let cH = [1, 2, 3, 4, 5, 6, 7]
556+ func cI (cJ,cK) = {
557+ let cL = cJ
558+ let cM = cL._1
559+ let cN = cL._2
560+ let cO = (((cM * cM) * cM) / (((cD * cE) * cA) * cA))
561+ let cP = (((((cG * aV) / cB) + (cO * cA)) * cM) / ((((cG - cB) * cM) / cB) + ((cA + toBigInt(1)) * cO)))
562+ $Tuple2(cP, cM)
694563 }
695564
696- let di = {
697- let dj = cZ
698- let dk = size(dj)
699- let dl = $Tuple2(aV, unit)
700- func dm (dn,do) = if ((do >= dk))
701- then dn
702- else da(dn, dj[do])
565+ let cQ = {
566+ let cR = cH
567+ let cS = size(cR)
568+ let cT = $Tuple2(aV, unit)
569+ func cU (cV,cW) = if ((cW >= cS))
570+ then cV
571+ else cI(cV, cR[cW])
703572
704- func dp (dn,do) = if ((do >= dk))
705- then dn
573+ func cX (cV,cW) = if ((cW >= cS))
574+ then cV
706575 else throw("List size exceeds 7")
707576
708- dp(dm(dm(dm(dm(dm(dm(dm(dl, 0), 1), 2), 3), 4), 5), 6), 7)
577+ cX(cU(cU(cU(cU(cU(cU(cU(cT, 0), 1), 2), 3), 4), 5), 6), 7)
709578 }
710- let dh = di._1
711- let df = di._2
712- let dq = m((dh - value(df)))
713- if ((cU >= dq))
714- then $Tuple2(nil, toString(dh))
715- else throw(("D calculation error, dDiff = " + toString(dq)))
579+ let cP = cQ._1
580+ let cN = cQ._2
581+ let cY = m((cP - value(cN)))
582+ if ((cC >= cY))
583+ then $Tuple2(nil, toString(cP))
584+ else throw(("D calculation error, dDiff = " + toString(cY)))
716585 }
717586 }
718587
719588
720589
721590 @Callable(aO)
722-func setManager (dr) = {
723- let ds = aX(aO)
724- if ((ds == ds))
591+func setManager (cZ) = {
592+ let da = aX(aO)
593+ if ((da == da))
725594 then {
726- let dt = fromBase58String(dr)
727- if ((dt == dt))
728- then [StringEntry(aS(), dr)]
595+ let db = fromBase58String(cZ)
596+ if ((db == db))
597+ then [StringEntry(aS(), cZ)]
729598 else throw("Strict value is not equal to itself.")
730599 }
731600 else throw("Strict value is not equal to itself.")
732601 }
733602
734603
735604
736605 @Callable(aO)
737606 func confirmManager () = {
738- let du = aW()
739- let dv = if (isDefined(du))
607+ let dc = aW()
608+ let dd = if (isDefined(dc))
740609 then true
741610 else throw("No pending manager")
742- if ((dv == dv))
611+ if ((dd == dd))
743612 then {
744- let dw = if ((aO.callerPublicKey == value(du)))
613+ let de = if ((aO.callerPublicKey == value(dc)))
745614 then true
746615 else throw("You are not pending manager")
747- if ((dw == dw))
748- then [StringEntry(aR(), toBase58String(value(du))), DeleteEntry(aS())]
616+ if ((de == de))
617+ then [StringEntry(aR(), toBase58String(value(dc))), DeleteEntry(aS())]
749618 else throw("Strict value is not equal to itself.")
750619 }
751620 else throw("Strict value is not equal to itself.")
752621 }
753622
754623
755-@Verifier(dx)
756-func dy () = {
757- let dz = {
624+@Verifier(df)
625+func dg () = {
626+ let dh = {
758627 let aU = aT()
759628 if ($isInstanceOf(aU, "ByteVector"))
760629 then {
761630 let aZ = aU
762631 aZ
763632 }
764633 else if ($isInstanceOf(aU, "Unit"))
765- then dx.senderPublicKey
634+ then df.senderPublicKey
766635 else throw("Match error")
767636 }
768- sigVerify(dx.bodyBytes, dx.proofs[0], dz)
637+ sigVerify(df.bodyBytes, df.proofs[0], dh)
769638 }
770639

github/deemru/w8io/c3f4982 
143.58 ms