tx · DpmvtTasrt98ejUqEgP7ocHmstWxCAMJf5kLLgK9RQnz

3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh:  -0.01000000 Waves

2023.05.17 10:52 [2581673] smart account 3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh > SELF 0.00000000 Waves

{ "type": 13, "id": "DpmvtTasrt98ejUqEgP7ocHmstWxCAMJf5kLLgK9RQnz", "fee": 1000000, "feeAssetId": null, "timestamp": 1684309944443, "version": 2, "chainId": 84, "sender": "3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh", "senderPublicKey": "EU9obW1yVhR8qug3EmXPeew3DMagvJFQzY5Ku8bmcsU7", "proofs": [ "2XQhZT4ccmAQXfHaET3xT8eBHyCATenN5jiBPCLcHhzJ9cfSVUCYLS88MXrVR2aL5qPaJ6aMRG8YZKrm7zDzj9qn" ], "script": "base64:BgIbCAISBwoFCAgBAQESABIDCgEBEgASAwoBARIAGQAJc2VwYXJhdG9yAgJfXwAOa2V5RXBvY2hMZW5ndGgJALkJAgkAzAgCAgIlcwkAzAgCAgtlcG9jaExlbmd0aAUDbmlsBQlzZXBhcmF0b3IAE2tleUVtaXNzaW9uQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAhBlbWlzc2lvbkNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgATa2V5Qm9vc3RpbmdDb250cmFjdAkAuQkCCQDMCAICAiVzCQDMCAICEGJvb3N0aW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yAAxrZXlUaHJlc2hvbGQJALkJAgkAzAgCAgIlcwkAzAgCAg92b3RpbmdUaHJlc2hvbGQFA25pbAUJc2VwYXJhdG9yAA9rZXlSYXRlUGVyQmxvY2sJALkJAgkAzAgCAgQlcyVzCQDMCAICDHJhdGVQZXJCbG9jawkAzAgCAgdjdXJyZW50BQNuaWwFCXNlcGFyYXRvcgASa2V5UmF0ZVBlckJsb2NrTWF4CQC5CQIJAMwIAgIEJXMlcwkAzAgCAg9yYXRlUGVyQmxvY2tNYXgJAMwIAgIHY3VycmVudAUDbmlsBQlzZXBhcmF0b3IAEWtleVJhdGVDaGFuZ2VTdGVwCQC5CQIJAMwIAgICJXMJAMwIAgIOcmF0ZUNoYW5nZVN0ZXAFA25pbAUJc2VwYXJhdG9yAQ9nZXRTdHJpbmdPckZhaWwBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFA2tleQkArAICBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEMZ2V0SW50T3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQNrZXkJAKwCAgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBDmtleVN0YXJ0SGVpZ2h0AAkAuQkCCQDMCAICAiVzCQDMCAICC3N0YXJ0SGVpZ2h0BQNuaWwFCXNlcGFyYXRvcgEPa2V5Vm90aW5nUmVzdWx0AAkAuQkCCQDMCAICAiVzCQDMCAICDHZvdGluZ1Jlc3VsdAUDbmlsBQlzZXBhcmF0b3IBCnRvdGFsVm90ZXMDDXRvdGFsSW5jcmVhc2UJdG90YWxOb25lDXRvdGFsRGVjcmVhc2UJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgUNdG90YWxJbmNyZWFzZQkAzAgCBQl0b3RhbE5vbmUJAMwIAgUNdG90YWxEZWNyZWFzZQUDbmlsBQlzZXBhcmF0b3IBB2tleVZvdGUBDHZvdGVyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIEdm90ZQkAzAgCBQx2b3RlckFkZHJlc3MFA25pbAUJc2VwYXJhdG9yAQxrZXlWb3RlVmFsdWUCCWd3eEFtb3VudAR2b3RlBANrZXkDCQAAAgUEdm90ZQABCQC5CQIJAMwIAgIEJWQlcwkAzAgCBQlnd3hBbW91bnQJAMwIAgIIaW5jcmVhc2UFA25pbAUJc2VwYXJhdG9yAwkAAAIFBHZvdGUA////////////AQkAuQkCCQDMCAICBCVkJXMJAMwIAgUJZ3d4QW1vdW50CQDMCAICCGRlY3JlYXNlBQNuaWwFCXNlcGFyYXRvcgkAuQkCCQDMCAICBCVkJXMJAMwIAgUJZ3d4QW1vdW50CQDMCAICBG5vbmUFA25pbAUJc2VwYXJhdG9yBQNrZXkAEGJvb3N0aW5nQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQ9nZXRTdHJpbmdPckZhaWwBBRNrZXlCb29zdGluZ0NvbnRyYWN0ABBlbWlzc2lvbkNvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQUTa2V5RW1pc3Npb25Db250cmFjdAETa2V5TWFuYWdlclB1YmxpY0tleQACFCVzX19tYW5hZ2VyUHVibGljS2V5ARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMABAckbWF0Y2gwCQCiCAEJARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAXMFBHRoaXMBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABBNtYW5hZ2VyVmF1bHRBZGRyZXNzCQEcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcwAEByRtYXRjaDAJAJ0IAgUTbWFuYWdlclZhdWx0QWRkcmVzcwkBE2tleU1hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEJaXNNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQJAAACCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgELbXVzdE1hbmFnZXIBAWkDCQEJaXNNYW5hZ2VyAQUBaQYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAEFYXNJbnQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACA0ludAQGdmFsSW50BQckbWF0Y2gwBQZ2YWxJbnQJAAIBAhtmYWlsZWQgdG8gY2FzdCBpbnRvIEludGVnZXIBC2NhbGNOZXdSYXRlAw9yYXRlUGVyQmxvY2tNYXgMcmF0ZVBlckJsb2NrCmNoYW5nZVN0ZXAECm1heEFsbG93ZWQJAGsDAGQFD3JhdGVQZXJCbG9ja01heAB4BA1pbmNyZWFzZWRSYXRlCQCXAwEJAMwIAgkAawMJAGQCAGQFCmNoYW5nZVN0ZXAFDHJhdGVQZXJCbG9jawBkCQDMCAIFCm1heEFsbG93ZWQFA25pbAQNZGVjcmVhc2VkUmF0ZQkAlgMBCQDMCAIJAGsDCQBlAgBkBQpjaGFuZ2VTdGVwBQxyYXRlUGVyQmxvY2sAZAkAzAgCAAAFA25pbAkAlQoDBQ1pbmNyZWFzZWRSYXRlBQxyYXRlUGVyQmxvY2sFDWRlY3JlYXNlZFJhdGUGAWkBC2NvbnN0cnVjdG9yBRNib29zdGluZ0NvbnRyYWN0UHJtE2VtaXNzaW9uQ29udHJhY3RQcm0Rdm90aW5nRHVyYXRpb25Qcm0JdGhyZXNob2xkDnJhdGVDaGFuZ2VTdGVwBAZjaGVja3MJAMwIAgMJAQlpc0RlZmluZWQBCQCmCAEFE2Jvb3N0aW5nQ29udHJhY3RQcm0GCQACAQIhSW52YWxpZCBib29zdGluZyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQEJaXNEZWZpbmVkAQkApggBBRNlbWlzc2lvbkNvbnRyYWN0UHJtBgkAAgECIUludmFsaWQgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwkAzAgCAwkAZgIFEXZvdGluZ0R1cmF0aW9uUHJtAAAGCQACAQIXSW52YWxpZCB2b3RpbmcgZHVyYXRpb24JAMwIAgMJAGYCBQl0aHJlc2hvbGQAAAYJAAIBAhFpbnZhbGlkIHRocmVzaG9sZAkAzAgCAwkAZgIFDnJhdGVDaGFuZ2VTdGVwAAAGCQACAQIWaW52YWxpZCByYXRlQ2hhbmdlU3RlcAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUTa2V5Qm9vc3RpbmdDb250cmFjdAUTYm9vc3RpbmdDb250cmFjdFBybQkAzAgCCQELU3RyaW5nRW50cnkCBRNrZXlFbWlzc2lvbkNvbnRyYWN0BRNlbWlzc2lvbkNvbnRyYWN0UHJtCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlFcG9jaExlbmd0aAURdm90aW5nRHVyYXRpb25Qcm0JAMwIAgkBDEludGVnZXJFbnRyeQIFDGtleVRocmVzaG9sZAUJdGhyZXNob2xkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRFrZXlSYXRlQ2hhbmdlU3RlcAUOcmF0ZUNoYW5nZVN0ZXAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ5rZXlTdGFydEhlaWdodAAFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5Vm90aW5nUmVzdWx0AAkBCnRvdGFsVm90ZXMDAgEwAgEwAgEwBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEcZ2V0UmF0ZUNoYW5nZUFtb3VudHNSRUFET05MWQAED3JhdGVQZXJCbG9ja01heAkBEUBleHRyTmF0aXZlKDEwNTApAgUQZW1pc3Npb25Db250cmFjdAUSa2V5UmF0ZVBlckJsb2NrTWF4BAxyYXRlUGVyQmxvY2sJARFAZXh0ck5hdGl2ZSgxMDUwKQIFEGVtaXNzaW9uQ29udHJhY3QFD2tleVJhdGVQZXJCbG9jawQOcmF0ZUNoYW5nZVN0ZXAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFEWtleVJhdGVDaGFuZ2VTdGVwCQCUCgIFA25pbAkBC2NhbGNOZXdSYXRlAwUPcmF0ZVBlckJsb2NrTWF4BQxyYXRlUGVyQmxvY2sFDnJhdGVDaGFuZ2VTdGVwAWkBBHZvdGUBB2luRmF2b3IEEnZvdGluZ0ZpbmlzaEhlaWdodAkAZAIJAQV2YWx1ZQEJAJ8IAQkBDmtleVN0YXJ0SGVpZ2h0AAkBBXZhbHVlAQkAnwgBBQ5rZXlFcG9jaExlbmd0aAQGY2hlY2tzCQDMCAIDCQBmAgUSdm90aW5nRmluaXNoSGVpZ2h0BQZoZWlnaHQGCQACAQIQdG9vIGxhdGUgdG8gdm90ZQkAzAgCAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgABCQDMCAIAAAkAzAgCAP///////////wEFA25pbAUHaW5GYXZvcgYJAAIBAhJub3QgdmFsaWQgYXJndW1lbnQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJZ3d4QW1vdW50CQD8BwQFEGJvb3N0aW5nQ29udHJhY3QCIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIJAKUIAQgFAWkGY2FsbGVyCQDMCAIFEnZvdGluZ0ZpbmlzaEhlaWdodAUDbmlsBQNuaWwEB25vdFplcm8DCQBmAgkBBWFzSW50AQUJZ3d4QW1vdW50AAAGCQACAQISeW91IGRvbid0IGhhdmUgZ3d4AwkAAAIFB25vdFplcm8FB25vdFplcm8EBHZvdGUEByRtYXRjaDAJAKIIAQkBB2tleVZvdGUBCQClCAEIBQFpBmNhbGxlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAEBHZvdGUJALUJAgUBcwUJc2VwYXJhdG9yBAl2b3RlVmFsdWUJAJEDAgUEdm90ZQABBAh2b3RlVHlwZQkAkQMCBQR2b3RlAAIEEWlzVm90ZVR5cGVTaW1pbGFyAwMDCQAAAgUIdm90ZVR5cGUCCGluY3JlYXNlCQAAAgUHaW5GYXZvcgABBwYDCQAAAgUIdm90ZVR5cGUCCGRlY3JlYXNlCQAAAgUHaW5GYXZvcgD///////////8BBwYDCQAAAgUIdm90ZVR5cGUCBG5vbmUJAAACBQdpbkZhdm9yAAAHBBJpc1ZvdGVWYWx1ZVNpbWlsYXIDBRFpc1ZvdGVUeXBlU2ltaWxhcgkAAAIJAQVhc0ludAEFCWd3eEFtb3VudAkBDXBhcnNlSW50VmFsdWUBBQl2b3RlVmFsdWUHBBBpc05ld1ZvdGVTaW1pbGFyAwMFEWlzVm90ZVR5cGVTaW1pbGFyBRJpc1ZvdGVWYWx1ZVNpbWlsYXIHCQACAQIReW91IGFscmVhZHkgdm90ZWQJAPwHBAUEdGhpcwIKY2FuY2VsVm90ZQUDbmlsBQNuaWwFEGlzTmV3Vm90ZVNpbWlsYXIDCQABAgUHJG1hdGNoMAIEVW5pdAQBdQUHJG1hdGNoMAUBdQkAAgECC01hdGNoIGVycm9yAwkAAAIFBHZvdGUFBHZvdGUEDHZvdGluZ1Jlc3VsdAkAtQkCCQEFdmFsdWUBCQCiCAEJAQ9rZXlWb3RpbmdSZXN1bHQABQlzZXBhcmF0b3IED3ZvdGVzVG9JbmNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAQQLdm90ZXNUb05vbmUJAJEDAgUMdm90aW5nUmVzdWx0AAIED3ZvdGVzVG9EZWNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAwQbbmV3UG9zaXRpdmVBbmROZWdhdGl2ZVZvdGVzAwkAAAIFB2luRmF2b3IAAQQQbmV3UG9zaXRpdmVWb3RlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQUPdm90ZXNUb0luY3JlYXNlCQEFYXNJbnQBBQlnd3hBbW91bnQJAMwIAgkApAMBBRBuZXdQb3NpdGl2ZVZvdGVzCQDMCAIFC3ZvdGVzVG9Ob25lCQDMCAIFD3ZvdGVzVG9EZWNyZWFzZQUDbmlsAwkAAAIFB2luRmF2b3IA////////////AQQQbmV3TmVnYXRpdmVWb3RlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQULdm90ZXNUb05vbmUJAQVhc0ludAEFCWd3eEFtb3VudAkAzAgCBQ92b3Rlc1RvSW5jcmVhc2UJAMwIAgULdm90ZXNUb05vbmUJAMwIAgkApAMBBRBuZXdOZWdhdGl2ZVZvdGVzBQNuaWwEDG5ld05vbmVWb3RlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQULdm90ZXNUb05vbmUJAQVhc0ludAEFCWd3eEFtb3VudAkAzAgCBQ92b3Rlc1RvSW5jcmVhc2UJAMwIAgkApAMBBQxuZXdOb25lVm90ZXMJAMwIAgUPdm90ZXNUb0RlY3JlYXNlBQNuaWwEB3ZvdGVLZXkJAQdrZXlWb3RlAQkApQgBCAUBaQZjYWxsZXIECXZvdGVWYWx1ZQkBDGtleVZvdGVWYWx1ZQIJAKQDAQkBBWFzSW50AQUJZ3d4QW1vdW50BQdpbkZhdm9yCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAAJAQp0b3RhbFZvdGVzAwkAkQMCBRtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAAkAkQMCBRtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAQkAkQMCBRtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAgkAzAgCCQELU3RyaW5nRW50cnkCBQd2b3RlS2V5BQl2b3RlVmFsdWUFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjYW5jZWxWb3RlAAQLdXNlckFkZHJlc3MDCQAAAggFAWkGY2FsbGVyBQR0aGlzCQClCAEIBQFpDG9yaWdpbkNhbGxlcgkApQgBCAUBaQZjYWxsZXIEBmNoZWNrcwkAzAgCAwkBCWlzRGVmaW5lZAEJAKIIAQkBD2tleVZvdGluZ1Jlc3VsdAAGCQACAQIHbm8gdm90ZQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAR2b3RlCQC1CQIJAQV2YWx1ZQEJAKIIAQkBB2tleVZvdGUBBQt1c2VyQWRkcmVzcwUJc2VwYXJhdG9yBAl2b3RlVmFsdWUJAJEDAgUEdm90ZQABBAh2b3RlVHlwZQkAkQMCBQR2b3RlAAIEDHZvdGluZ1Jlc3VsdAkAtQkCCQEFdmFsdWUBCQCiCAEJAQ9rZXlWb3RpbmdSZXN1bHQABQlzZXBhcmF0b3IED3ZvdGVzVG9JbmNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAQQLdm90ZXNUb05vbmUJAJEDAgUMdm90aW5nUmVzdWx0AAIED3ZvdGVzVG9EZWNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAwQHYWN0aW9ucwMJAAACBQh2b3RlVHlwZQIIaW5jcmVhc2UEEG5ld0luY3JlYXNlVm90ZXMJAGUCCQENcGFyc2VJbnRWYWx1ZQEFD3ZvdGVzVG9JbmNyZWFzZQkBDXBhcnNlSW50VmFsdWUBBQl2b3RlVmFsdWUJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5Vm90aW5nUmVzdWx0AAkBCnRvdGFsVm90ZXMDCQCkAwEFEG5ld0luY3JlYXNlVm90ZXMFC3ZvdGVzVG9Ob25lBQ92b3Rlc1RvRGVjcmVhc2UJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleVZvdGUBBQt1c2VyQWRkcmVzcwUDbmlsBQR1bml0AwkAAAIFCHZvdGVUeXBlAghkZWNyZWFzZQQQbmV3RGVjcmVhc2VWb3RlcwkAZQIJAQ1wYXJzZUludFZhbHVlAQUPdm90ZXNUb0RlY3JlYXNlCQENcGFyc2VJbnRWYWx1ZQEFCXZvdGVWYWx1ZQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlWb3RpbmdSZXN1bHQACQEKdG90YWxWb3RlcwMFD3ZvdGVzVG9JbmNyZWFzZQULdm90ZXNUb05vbmUJAKQDAQUQbmV3RGVjcmVhc2VWb3RlcwkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5Vm90ZQEFC3VzZXJBZGRyZXNzBQNuaWwFBHVuaXQEDG5ld05vbmVWb3RlcwkAZQIJAQ1wYXJzZUludFZhbHVlAQULdm90ZXNUb05vbmUJAQ1wYXJzZUludFZhbHVlAQUJdm90ZVZhbHVlCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAAJAQp0b3RhbFZvdGVzAwUPdm90ZXNUb0luY3JlYXNlCQCkAwEFDG5ld05vbmVWb3RlcwUPdm90ZXNUb0RlY3JlYXNlCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlWb3RlAQULdXNlckFkZHJlc3MFA25pbAUEdW5pdAUHYWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxzZXRUaHJlc2hvbGQBDG5ld1RocmVzaG9sZAQGY2hlY2tzCQDMCAIJAQttdXN0TWFuYWdlcgEFAWkJAMwIAgMJAGYCBQxuZXdUaHJlc2hvbGQAAAYJAAIBAhFpbnZhbGlkIHRocmVzaG9sZAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFDGtleVRocmVzaG9sZAUMbmV3VGhyZXNob2xkBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIZmluYWxpemUABBJ2b3RpbmdGaW5pc2hIZWlnaHQJAGQCCQEFdmFsdWUBCQCfCAEJAQ5rZXlTdGFydEhlaWdodAAJAQV2YWx1ZQEJAJ8IAQUOa2V5RXBvY2hMZW5ndGgEBmNoZWNrcwkAzAgCAwkAZwIFBmhlaWdodAUSdm90aW5nRmluaXNoSGVpZ2h0BgkAAgECImluc3VmZmljaWVudCBoZWlnaHQgZm9yIGNvbXBsZXRpb24FA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQMdm90aW5nUmVzdWx0CQC1CQIJAQV2YWx1ZQEJAKIIAQkBD2tleVZvdGluZ1Jlc3VsdAAFCXNlcGFyYXRvcgQPdm90ZXNUb0luY3JlYXNlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUMdm90aW5nUmVzdWx0AAEEC3ZvdGVzVG9Ob25lCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUMdm90aW5nUmVzdWx0AAIED3ZvdGVzVG9EZWNyZWFzZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDHZvdGluZ1Jlc3VsdAADBAhhbGxWb3RlcwkAZAIJAGQCBQ92b3Rlc1RvSW5jcmVhc2UFC3ZvdGVzVG9Ob25lBQ92b3Rlc1RvRGVjcmVhc2UECXRocmVzaG9sZAkBDGdldEludE9yRmFpbAEFDGtleVRocmVzaG9sZAQHYWN0aW9ucwMDCQBnAgUIYWxsVm90ZXMFCXRocmVzaG9sZAYHBQNuaWwFA25pbAUHYWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgA3EZ+y", "height": 2581673, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HcxiGNpnXZcJJR4W9YVxYtwccYQcLz8w1hXiCeSdMoVe Next: 3rumRM2sxAoLHRrmj6QFirWw72dUrnBugoEkG5231xGq Diff:
OldNewDifferences
131131 then true
132132 else throw("invalid rateChangeStep")]
133133 if ((Y == Y))
134- then $Tuple2([StringEntry(d, T), StringEntry(c, U), IntegerEntry(b, V), IntegerEntry(e, W), IntegerEntry(h, X), IntegerEntry(l(), height), StringEntry(m(), makeString(["%d%d%d", "0", "0", "0"], a))], unit)
134+ then $Tuple2([StringEntry(d, T), StringEntry(c, U), IntegerEntry(b, V), IntegerEntry(e, W), IntegerEntry(h, X), IntegerEntry(l(), height), StringEntry(m(), n("0", "0", "0"))], unit)
135135 else throw("Strict value is not equal to itself.")
136136 }
137137
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = makeString(["%s", "epochLength"], a)
77
88 let c = makeString(["%s", "emissionContract"], a)
99
1010 let d = makeString(["%s", "boostingContract"], a)
1111
1212 let e = makeString(["%s", "votingThreshold"], a)
1313
1414 let f = makeString(["%s%s", "ratePerBlock", "current"], a)
1515
1616 let g = makeString(["%s%s", "ratePerBlockMax", "current"], a)
1717
1818 let h = makeString(["%s", "rateChangeStep"], a)
1919
2020 func i (j) = valueOrErrorMessage(getString(this, j), (j + " is not defined"))
2121
2222
2323 func k (j) = valueOrErrorMessage(getInteger(this, j), (j + " is not defined"))
2424
2525
2626 func l () = makeString(["%s", "startHeight"], a)
2727
2828
2929 func m () = makeString(["%s", "votingResult"], a)
3030
3131
3232 func n (o,p,q) = makeString(["%d%d%d", o, p, q], a)
3333
3434
3535 func r (s) = makeString(["%s%s", "vote", s], a)
3636
3737
3838 func t (u,v) = {
3939 let j = if ((v == 1))
4040 then makeString(["%d%s", u, "increase"], a)
4141 else if ((v == -1))
4242 then makeString(["%d%s", u, "decrease"], a)
4343 else makeString(["%d%s", u, "none"], a)
4444 j
4545 }
4646
4747
4848 let w = addressFromStringValue(i(d))
4949
5050 let x = addressFromStringValue(i(c))
5151
5252 func y () = "%s__managerPublicKey"
5353
5454
5555 func z () = "%s__managerVaultAddress"
5656
5757
5858 func A () = {
5959 let B = getString(z())
6060 if ($isInstanceOf(B, "String"))
6161 then {
6262 let C = B
6363 addressFromStringValue(C)
6464 }
6565 else this
6666 }
6767
6868
6969 func D () = {
7070 let E = A()
7171 let B = getString(E, y())
7272 if ($isInstanceOf(B, "String"))
7373 then {
7474 let C = B
7575 fromBase58String(C)
7676 }
7777 else if ($isInstanceOf(B, "Unit"))
7878 then unit
7979 else throw("Match error")
8080 }
8181
8282
8383 func F (G) = {
8484 let B = D()
8585 if ($isInstanceOf(B, "ByteVector"))
8686 then {
8787 let H = B
8888 (G.callerPublicKey == H)
8989 }
9090 else if ($isInstanceOf(B, "Unit"))
9191 then (G.caller == this)
9292 else throw("Match error")
9393 }
9494
9595
9696 func I (G) = if (F(G))
9797 then true
9898 else throw("permission denied")
9999
100100
101101 func J (K) = {
102102 let B = K
103103 if ($isInstanceOf(B, "Int"))
104104 then {
105105 let L = B
106106 L
107107 }
108108 else throw("failed to cast into Integer")
109109 }
110110
111111
112112 func M (N,O,P) = {
113113 let Q = fraction(100, N, 120)
114114 let R = min([fraction((100 + P), O, 100), Q])
115115 let S = max([fraction((100 - P), O, 100), 0])
116116 $Tuple3(R, O, S)
117117 }
118118
119119
120120 @Callable(G)
121121 func constructor (T,U,V,W,X) = {
122122 let Y = [if (isDefined(addressFromString(T)))
123123 then true
124124 else throw("Invalid boosting contract address"), if (isDefined(addressFromString(U)))
125125 then true
126126 else throw("Invalid emission contract address"), if ((V > 0))
127127 then true
128128 else throw("Invalid voting duration"), if ((W > 0))
129129 then true
130130 else throw("invalid threshold"), if ((X > 0))
131131 then true
132132 else throw("invalid rateChangeStep")]
133133 if ((Y == Y))
134- then $Tuple2([StringEntry(d, T), StringEntry(c, U), IntegerEntry(b, V), IntegerEntry(e, W), IntegerEntry(h, X), IntegerEntry(l(), height), StringEntry(m(), makeString(["%d%d%d", "0", "0", "0"], a))], unit)
134+ then $Tuple2([StringEntry(d, T), StringEntry(c, U), IntegerEntry(b, V), IntegerEntry(e, W), IntegerEntry(h, X), IntegerEntry(l(), height), StringEntry(m(), n("0", "0", "0"))], unit)
135135 else throw("Strict value is not equal to itself.")
136136 }
137137
138138
139139
140140 @Callable(G)
141141 func getRateChangeAmountsREADONLY () = {
142142 let N = getIntegerValue(x, g)
143143 let O = getIntegerValue(x, f)
144144 let X = getIntegerValue(this, h)
145145 $Tuple2(nil, M(N, O, X))
146146 }
147147
148148
149149
150150 @Callable(G)
151151 func vote (Z) = {
152152 let aa = (value(getInteger(l())) + value(getInteger(b)))
153153 let Y = [if ((aa > height))
154154 then true
155155 else throw("too late to vote"), if (containsElement([1, 0, -1], Z))
156156 then true
157157 else throw("not valid argument")]
158158 if ((Y == Y))
159159 then {
160160 let u = invoke(w, "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), aa], nil)
161161 let ab = if ((J(u) > 0))
162162 then true
163163 else throw("you don't have gwx")
164164 if ((ab == ab))
165165 then {
166166 let v = {
167167 let B = getString(r(toString(G.caller)))
168168 if ($isInstanceOf(B, "String"))
169169 then {
170170 let C = B
171171 let v = split(C, a)
172172 let ac = v[1]
173173 let ad = v[2]
174174 let ae = if (if (if ((ad == "increase"))
175175 then (Z == 1)
176176 else false)
177177 then true
178178 else if ((ad == "decrease"))
179179 then (Z == -1)
180180 else false)
181181 then true
182182 else if ((ad == "none"))
183183 then (Z == 0)
184184 else false
185185 let af = if (ae)
186186 then (J(u) == parseIntValue(ac))
187187 else false
188188 let ag = if (if (ae)
189189 then af
190190 else false)
191191 then throw("you already voted")
192192 else invoke(this, "cancelVote", nil, nil)
193193 ag
194194 }
195195 else if ($isInstanceOf(B, "Unit"))
196196 then {
197197 let ah = B
198198 ah
199199 }
200200 else throw("Match error")
201201 }
202202 if ((v == v))
203203 then {
204204 let ai = split(value(getString(m())), a)
205205 let aj = ai[1]
206206 let ak = ai[2]
207207 let al = ai[3]
208208 let am = if ((Z == 1))
209209 then {
210210 let an = (parseIntValue(aj) + J(u))
211211 [toString(an), ak, al]
212212 }
213213 else if ((Z == -1))
214214 then {
215215 let ao = (parseIntValue(ak) + J(u))
216216 [aj, ak, toString(ao)]
217217 }
218218 else {
219219 let ap = (parseIntValue(ak) + J(u))
220220 [aj, toString(ap), al]
221221 }
222222 let aq = r(toString(G.caller))
223223 let ac = t(toString(J(u)), Z)
224224 $Tuple2([StringEntry(m(), n(am[0], am[1], am[2])), StringEntry(aq, ac)], unit)
225225 }
226226 else throw("Strict value is not equal to itself.")
227227 }
228228 else throw("Strict value is not equal to itself.")
229229 }
230230 else throw("Strict value is not equal to itself.")
231231 }
232232
233233
234234
235235 @Callable(G)
236236 func cancelVote () = {
237237 let ar = if ((G.caller == this))
238238 then toString(G.originCaller)
239239 else toString(G.caller)
240240 let Y = [if (isDefined(getString(m())))
241241 then true
242242 else throw("no vote")]
243243 if ((Y == Y))
244244 then {
245245 let v = split(value(getString(r(ar))), a)
246246 let ac = v[1]
247247 let ad = v[2]
248248 let ai = split(value(getString(m())), a)
249249 let aj = ai[1]
250250 let ak = ai[2]
251251 let al = ai[3]
252252 let as = if ((ad == "increase"))
253253 then {
254254 let at = (parseIntValue(aj) - parseIntValue(ac))
255255 $Tuple2([StringEntry(m(), n(toString(at), ak, al)), DeleteEntry(r(ar))], unit)
256256 }
257257 else if ((ad == "decrease"))
258258 then {
259259 let au = (parseIntValue(al) - parseIntValue(ac))
260260 $Tuple2([StringEntry(m(), n(aj, ak, toString(au))), DeleteEntry(r(ar))], unit)
261261 }
262262 else {
263263 let ap = (parseIntValue(ak) - parseIntValue(ac))
264264 $Tuple2([StringEntry(m(), n(aj, toString(ap), al)), DeleteEntry(r(ar))], unit)
265265 }
266266 as
267267 }
268268 else throw("Strict value is not equal to itself.")
269269 }
270270
271271
272272
273273 @Callable(G)
274274 func setThreshold (av) = {
275275 let Y = [I(G), if ((av > 0))
276276 then true
277277 else throw("invalid threshold")]
278278 if ((Y == Y))
279279 then $Tuple2([IntegerEntry(e, av)], unit)
280280 else throw("Strict value is not equal to itself.")
281281 }
282282
283283
284284
285285 @Callable(G)
286286 func finalize () = {
287287 let aa = (value(getInteger(l())) + value(getInteger(b)))
288288 let Y = [if ((height >= aa))
289289 then true
290290 else throw("insufficient height for completion")]
291291 if ((Y == Y))
292292 then {
293293 let ai = split(value(getString(m())), a)
294294 let aj = parseIntValue(ai[1])
295295 let ak = parseIntValue(ai[2])
296296 let al = parseIntValue(ai[3])
297297 let aw = ((aj + ak) + al)
298298 let W = k(e)
299299 let as = if (if ((aw >= W))
300300 then true
301301 else false)
302302 then nil
303303 else nil
304304 as
305305 }
306306 else throw("Strict value is not equal to itself.")
307307 }
308308
309309

github/deemru/w8io/026f985 
38.18 ms