tx · N3A7LTRZkq68FhKbLU5XXyb9YRLfFRFXtv4MrBrpqs7

3MuqubsQAq9mrsN65SePHeThcN3JVAbgZ9d:  -0.01500000 Waves

2023.08.16 14:12 [2713052] smart account 3MuqubsQAq9mrsN65SePHeThcN3JVAbgZ9d > SELF 0.00000000 Waves

{ "type": 13, "id": "N3A7LTRZkq68FhKbLU5XXyb9YRLfFRFXtv4MrBrpqs7", "fee": 1500000, "feeAssetId": null, "timestamp": 1692184324049, "version": 2, "chainId": 84, "sender": "3MuqubsQAq9mrsN65SePHeThcN3JVAbgZ9d", "senderPublicKey": "GWTozVWP9MvUxrEuz1BPrNAbtLYAec9LrT4U82jWG6KX", "proofs": [ "A5c8CFo7jeEq1nANPJme7Cuv1CxJj6WBrpG3JpNNevDiwCWtuLXZBvuHQU4bKwqmSyzzuWVN51QpXUmjWcFuAWK" ], "script": "base64:BgIhCAISCAoGCAgIAQEBEgASAwoBARIAEgMKAQESABIDCgEIIQAJc2VwYXJhdG9yAgJfXwAQY29udHJhY3RGaWxlbmFtZQIZdm90aW5nX2VtaXNzaW9uX3JhdGUucmlkZQATREVGQVVMVF9FUE9DSF9DT1VOVAAEAA5rZXlFcG9jaExlbmd0aAkAuQkCCQDMCAICAiVzCQDMCAICC2Vwb2NoTGVuZ3RoBQNuaWwFCXNlcGFyYXRvcgATa2V5RW1pc3Npb25Db250cmFjdAkAuQkCCQDMCAICAiVzCQDMCAICEGVtaXNzaW9uQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yABlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIWdm90aW5nRW1pc3Npb25Db250cmFjdAUDbmlsBQlzZXBhcmF0b3IAE2tleUJvb3N0aW5nQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgAMa2V5VGhyZXNob2xkCQC5CQIJAMwIAgICJXMJAMwIAgIPdm90aW5nVGhyZXNob2xkBQNuaWwFCXNlcGFyYXRvcgAPa2V5UmF0ZVBlckJsb2NrCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgxyYXRlUGVyQmxvY2sJAMwIAgIHY3VycmVudAUDbmlsBQlzZXBhcmF0b3IAEmtleVJhdGVQZXJCbG9ja01heAkAuQkCCQDMCAICBCVzJXMJAMwIAgIPcmF0ZVBlckJsb2NrTWF4CQDMCAICB2N1cnJlbnQFA25pbAUJc2VwYXJhdG9yABFrZXlSYXRlQ2hhbmdlU3RlcAkAuQkCCQDMCAICAiVzCQDMCAICDnJhdGVDaGFuZ2VTdGVwBQNuaWwFCXNlcGFyYXRvcgAOa2V5U3RhcnRIZWlnaHQJALkJAgkAzAgCAgIlcwkAzAgCAgtzdGFydEhlaWdodAUDbmlsBQlzZXBhcmF0b3IAD2tleVZvdGluZ1Jlc3VsdAkAuQkCCQDMCAICAiVzCQDMCAICDHZvdGluZ1Jlc3VsdAUDbmlsBQlzZXBhcmF0b3IAG2tleVZvdGluZ0VtaXNzaW9uRXBvY2hDb3VudAkAuQkCCQDMCAICAiVzCQDMCAICGHZvdGluZ0VtaXNzaW9uRXBvY2hDb3VudAUDbmlsBQlzZXBhcmF0b3IBCHRocm93RXJyAQFzCQACAQkArAICCQCsAgIFEGNvbnRyYWN0RmlsZW5hbWUCAjogBQFzAQ9nZXRTdHJpbmdPckZhaWwBA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFA2tleQkArAICBQNrZXkCDyBpcyBub3QgZGVmaW5lZAEMZ2V0SW50T3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBQNrZXkJAKwCAgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBCnRvdGFsVm90ZXMDDXRvdGFsSW5jcmVhc2UMdG90YWxDdXJyZW50DXRvdGFsRGVjcmVhc2UJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgUNdG90YWxJbmNyZWFzZQkAzAgCBQx0b3RhbEN1cnJlbnQJAMwIAgUNdG90YWxEZWNyZWFzZQUDbmlsBQlzZXBhcmF0b3IBB2tleVZvdGUCDHZvdGVyQWRkcmVzcwtzdGFydEhlaWdodAkAuQkCCQDMCAICBiVzJXMlZAkAzAgCAgR2b3RlCQDMCAIFDHZvdGVyQWRkcmVzcwkAzAgCCQCkAwEFC3N0YXJ0SGVpZ2h0BQNuaWwFCXNlcGFyYXRvcgEMa2V5Vm90ZVZhbHVlAglnd3hBbW91bnQEdm90ZQQDa2V5AwkAAAIFBHZvdGUAAQkAuQkCCQDMCAICBCVkJXMJAMwIAgUJZ3d4QW1vdW50CQDMCAICCGluY3JlYXNlBQNuaWwFCXNlcGFyYXRvcgMJAAACBQR2b3RlAP///////////wEJALkJAgkAzAgCAgQlZCVzCQDMCAIFCWd3eEFtb3VudAkAzAgCAghkZWNyZWFzZQUDbmlsBQlzZXBhcmF0b3IJALkJAgkAzAgCAgQlZCVzCQDMCAIFCWd3eEFtb3VudAkAzAgCAgdjdXJyZW50BQNuaWwFCXNlcGFyYXRvcgUDa2V5ABBib29zdGluZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQUTa2V5Qm9vc3RpbmdDb250cmFjdAAQZW1pc3Npb25Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBD2dldFN0cmluZ09yRmFpbAEFE2tleUVtaXNzaW9uQ29udHJhY3QAFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQ9nZXRTdHJpbmdPckZhaWwBBRlrZXlWb3RpbmdFbWlzc2lvbkNvbnRyYWN0ARNrZXlNYW5hZ2VyUHVibGljS2V5AAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MAAhclc19fbWFuYWdlclZhdWx0QWRkcmVzcwEcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcwAEByRtYXRjaDAJAKIIAQkBFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBcwUEdGhpcwEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEE21hbmFnZXJWYXVsdEFkZHJlc3MJARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAnQgCBRNtYW5hZ2VyVmF1bHRBZGRyZXNzCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQlpc01hbmFnZXIBAWkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAkAAAIIBQFpBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQttdXN0TWFuYWdlcgEBaQMJAQlpc01hbmFnZXIBBQFpBgkBCHRocm93RXJyAQIRcGVybWlzc2lvbiBkZW5pZWQBBWFzSW50AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEBnZhbEludAUHJG1hdGNoMAUGdmFsSW50CQEIdGhyb3dFcnIBAhtmYWlsZWQgdG8gY2FzdCBpbnRvIEludGVnZXIBC2NhbGNOZXdSYXRlAw9yYXRlUGVyQmxvY2tNYXgMcmF0ZVBlckJsb2NrCmNoYW5nZVN0ZXAECm1heEFsbG93ZWQJAGsDAGQFD3JhdGVQZXJCbG9ja01heAB4BA1pbmNyZWFzZWRSYXRlCQCXAwEJAMwIAgkAawMJAGQCAGQFCmNoYW5nZVN0ZXAFDHJhdGVQZXJCbG9jawBkCQDMCAIFCm1heEFsbG93ZWQFA25pbAQNZGVjcmVhc2VkUmF0ZQkAlgMBCQDMCAIJAGsDCQBlAgBkBQpjaGFuZ2VTdGVwBQxyYXRlUGVyQmxvY2sAZAkAzAgCAAAFA25pbAkAlQoDBQ1pbmNyZWFzZWRSYXRlBQxyYXRlUGVyQmxvY2sFDWRlY3JlYXNlZFJhdGUBHGdldFJhdGVDaGFuZ2VBbW91bnRzSU5URVJOQUwABA9yYXRlUGVyQmxvY2tNYXgJARFAZXh0ck5hdGl2ZSgxMDUwKQIFEGVtaXNzaW9uQ29udHJhY3QFEmtleVJhdGVQZXJCbG9ja01heAQMcmF0ZVBlckJsb2NrCQERQGV4dHJOYXRpdmUoMTA1MCkCBRBlbWlzc2lvbkNvbnRyYWN0BQ9rZXlSYXRlUGVyQmxvY2sEDnJhdGVDaGFuZ2VTdGVwCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBRFrZXlSYXRlQ2hhbmdlU3RlcAkBC2NhbGNOZXdSYXRlAwUPcmF0ZVBlckJsb2NrTWF4BQxyYXRlUGVyQmxvY2sFDnJhdGVDaGFuZ2VTdGVwAQ5nZXRFcG9jaExlbmd0aAEWdm90aW5nRW1pc3Npb25Db250cmFjdAQRdm90aW5nRXBvY2hMZW5ndGgJARFAZXh0ck5hdGl2ZSgxMDUwKQIFFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QFDmtleUVwb2NoTGVuZ3RoBBF2b3RpbmdTdGFydExlbmd0aAkBEUBleHRyTmF0aXZlKDEwNTApAgUWdm90aW5nRW1pc3Npb25Db250cmFjdAUOa2V5U3RhcnRIZWlnaHQEGHZvdGluZ0VtaXNzaW9uRXBvY2hDb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRtrZXlWb3RpbmdFbWlzc2lvbkVwb2NoQ291bnQFE0RFRkFVTFRfRVBPQ0hfQ09VTlQJAGUCCQBlAgkAZAIFEXZvdGluZ1N0YXJ0TGVuZ3RoCQBoAgURdm90aW5nRXBvY2hMZW5ndGgFGHZvdGluZ0VtaXNzaW9uRXBvY2hDb3VudAUGaGVpZ2h0AAEHAWkBC2NvbnN0cnVjdG9yBhNib29zdGluZ0NvbnRyYWN0UHJtE2VtaXNzaW9uQ29udHJhY3RQcm0Zdm90aW5nRW1pc3Npb25Db250cmFjdFBybQl0aHJlc2hvbGQOcmF0ZUNoYW5nZVN0ZXAYdm90aW5nRW1pc3Npb25FcG9jaENvdW50BAZjaGVja3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkBCWlzRGVmaW5lZAEJAKYIAQUTYm9vc3RpbmdDb250cmFjdFBybQYJAQh0aHJvd0VycgECIUludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBCWlzRGVmaW5lZAEJAKYIAQUTZW1pc3Npb25Db250cmFjdFBybQYJAQh0aHJvd0VycgECIUludmFsaWQgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBCWlzRGVmaW5lZAEJAKYIAQUZdm90aW5nRW1pc3Npb25Db250cmFjdFBybQYJAQh0aHJvd0VycgECIUludmFsaWQgZW1pc3Npb24gY29udHJhY3QgYWRkcmVzcwkAzAgCAwkAZgIFCXRocmVzaG9sZAAABgkBCHRocm93RXJyAQIRaW52YWxpZCB0aHJlc2hvbGQJAMwIAgMJAGYCBQ5yYXRlQ2hhbmdlU3RlcAAABgkBCHRocm93RXJyAQIWaW52YWxpZCByYXRlQ2hhbmdlU3RlcAkAzAgCAwkAZgIFGHZvdGluZ0VtaXNzaW9uRXBvY2hDb3VudAAABgkBCHRocm93RXJyAQIgaW52YWxpZCB2b3RpbmdFbWlzc2lvbkVwb2NoQ291bnQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQOdm90aW5nRW1pc3Npb24JARFAZXh0ck5hdGl2ZSgxMDYyKQEFGXZvdGluZ0VtaXNzaW9uQ29udHJhY3RQcm0JAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBRNrZXlCb29zdGluZ0NvbnRyYWN0BRNib29zdGluZ0NvbnRyYWN0UHJtCQDMCAIJAQtTdHJpbmdFbnRyeQIFE2tleUVtaXNzaW9uQ29udHJhY3QFE2VtaXNzaW9uQ29udHJhY3RQcm0JAMwIAgkBC1N0cmluZ0VudHJ5AgUZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdAUZdm90aW5nRW1pc3Npb25Db250cmFjdFBybQkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5RXBvY2hMZW5ndGgJAQ5nZXRFcG9jaExlbmd0aAEFDnZvdGluZ0VtaXNzaW9uCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrZXlUaHJlc2hvbGQFCXRocmVzaG9sZAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5UmF0ZUNoYW5nZVN0ZXAFDnJhdGVDaGFuZ2VTdGVwCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRtrZXlWb3RpbmdFbWlzc2lvbkVwb2NoQ291bnQFGHZvdGluZ0VtaXNzaW9uRXBvY2hDb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5U3RhcnRIZWlnaHQFBmhlaWdodAkAzAgCCQELU3RyaW5nRW50cnkCBQ9rZXlWb3RpbmdSZXN1bHQJAQp0b3RhbFZvdGVzAwIBMAIBMAIBMAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBHGdldFJhdGVDaGFuZ2VBbW91bnRzUkVBRE9OTFkACQCUCgIFA25pbAkBHGdldFJhdGVDaGFuZ2VBbW91bnRzSU5URVJOQUwAAWkBBHZvdGUBB2luRmF2b3IEC3N0YXJ0SGVpZ2h0CQERQGV4dHJOYXRpdmUoMTA1NSkBBQ5rZXlTdGFydEhlaWdodAQSdm90aW5nRmluaXNoSGVpZ2h0CQBkAgULc3RhcnRIZWlnaHQJARFAZXh0ck5hdGl2ZSgxMDU1KQEFDmtleUVwb2NoTGVuZ3RoBAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEBmNoZWNrcwkAzAgCAwkAZgIFEnZvdGluZ0ZpbmlzaEhlaWdodAUGaGVpZ2h0BgkBCHRocm93RXJyAQIQdG9vIGxhdGUgdG8gdm90ZQkAzAgCAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgABCQDMCAIAAAkAzAgCAP///////////wEFA25pbAUHaW5GYXZvcgYJAQh0aHJvd0VycgECEm5vdCB2YWxpZCBhcmd1bWVudAkAzAgCAwkBASEBCQEJaXNEZWZpbmVkAQkAoggBCQEHa2V5Vm90ZQIFC3VzZXJBZGRyZXNzBQtzdGFydEhlaWdodAYJAQh0aHJvd0VycgECEXlvdSBhbHJlYWR5IHZvdGVkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECWd3eEFtb3VudAkA/AcEBRBib29zdGluZ0NvbnRyYWN0AiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCBQt1c2VyQWRkcmVzcwkAzAgCBRJ2b3RpbmdGaW5pc2hIZWlnaHQFA25pbAUDbmlsBAdub3RaZXJvAwkAZgIJAQVhc0ludAEFCWd3eEFtb3VudAAABgkBCHRocm93RXJyAQISeW91IGRvbid0IGhhdmUgZ3d4AwkAAAIFB25vdFplcm8FB25vdFplcm8EDHZvdGluZ1Jlc3VsdAkAtQkCCQERQGV4dHJOYXRpdmUoMTA1OCkBBQ9rZXlWb3RpbmdSZXN1bHQFCXNlcGFyYXRvcgQQdm90ZXNGb3JJbmNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAQQPdm90ZXNGb3JDdXJyZW50CQCRAwIFDHZvdGluZ1Jlc3VsdAACBBB2b3Rlc0ZvckRlY3JlYXNlCQCRAwIFDHZvdGluZ1Jlc3VsdAADBBtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMDCQAAAgUHaW5GYXZvcgABBBBuZXdJbmNyZWFzZVZvdGVzCQBkAgkBDXBhcnNlSW50VmFsdWUBBRB2b3Rlc0ZvckluY3JlYXNlCQEFYXNJbnQBBQlnd3hBbW91bnQJAMwIAgkApAMBBRBuZXdJbmNyZWFzZVZvdGVzCQDMCAIFD3ZvdGVzRm9yQ3VycmVudAkAzAgCBRB2b3Rlc0ZvckRlY3JlYXNlBQNuaWwDCQAAAgUHaW5GYXZvcgD///////////8BBBBuZXdEZWNyZWFzZVZvdGVzCQBkAgkBDXBhcnNlSW50VmFsdWUBBRB2b3Rlc0ZvckRlY3JlYXNlCQEFYXNJbnQBBQlnd3hBbW91bnQJAMwIAgUQdm90ZXNGb3JJbmNyZWFzZQkAzAgCBQ92b3Rlc0ZvckN1cnJlbnQJAMwIAgkApAMBBRBuZXdEZWNyZWFzZVZvdGVzBQNuaWwED25ld0N1cnJlbnRWb3RlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQUPdm90ZXNGb3JDdXJyZW50CQEFYXNJbnQBBQlnd3hBbW91bnQJAMwIAgUQdm90ZXNGb3JJbmNyZWFzZQkAzAgCCQCkAwEFD25ld0N1cnJlbnRWb3RlcwkAzAgCBRB2b3Rlc0ZvckRlY3JlYXNlBQNuaWwEB3ZvdGVLZXkJAQdrZXlWb3RlAgkApQgBCAUBaQZjYWxsZXIFC3N0YXJ0SGVpZ2h0BAl2b3RlVmFsdWUJAQxrZXlWb3RlVmFsdWUCCQCkAwEJAQVhc0ludAEFCWd3eEFtb3VudAUHaW5GYXZvcgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tleVZvdGluZ1Jlc3VsdAkBCnRvdGFsVm90ZXMDCQCRAwIFG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwAACQCRAwIFG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwABCQCRAwIFG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwACCQDMCAIJAQtTdHJpbmdFbnRyeQIFB3ZvdGVLZXkFCXZvdGVWYWx1ZQUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNhbmNlbFZvdGUABAtzdGFydEhlaWdodAkBEUBleHRyTmF0aXZlKDEwNTUpAQUOa2V5U3RhcnRIZWlnaHQEEnZvdGluZ0ZpbmlzaEhlaWdodAkAZAIFC3N0YXJ0SGVpZ2h0CQERQGV4dHJOYXRpdmUoMTA1NSkBBQ5rZXlFcG9jaExlbmd0aAQLdXNlckFkZHJlc3MDCQAAAggFAWkGY2FsbGVyBQR0aGlzCQClCAEIBQFpDG9yaWdpbkNhbGxlcgkApQgBCAUBaQZjYWxsZXIEBmNoZWNrcwkAzAgCAwkAZgIFEnZvdGluZ0ZpbmlzaEhlaWdodAUGaGVpZ2h0BgkBCHRocm93RXJyAQIXdG9vIGxhdGUgdG8gY2FuY2VsIHZvdGUJAMwIAgMJAQlpc0RlZmluZWQBCQCiCAEFD2tleVZvdGluZ1Jlc3VsdAYJAQh0aHJvd0VycgECB25vIHZvdGUJAMwIAgMJAQlpc0RlZmluZWQBCQCiCAEJAQdrZXlWb3RlAgULdXNlckFkZHJlc3MFC3N0YXJ0SGVpZ2h0BgkBCHRocm93RXJyAQIMbm8gdXNlciB2b3RlBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEBHZvdGUJALUJAgkBEUBleHRyTmF0aXZlKDEwNTgpAQkBB2tleVZvdGUCBQt1c2VyQWRkcmVzcwULc3RhcnRIZWlnaHQFCXNlcGFyYXRvcgQJdm90ZVZhbHVlCQCRAwIFBHZvdGUAAQQIdm90ZVR5cGUJAJEDAgUEdm90ZQACBAx2b3RpbmdSZXN1bHQJALUJAgkBEUBleHRyTmF0aXZlKDEwNTgpAQUPa2V5Vm90aW5nUmVzdWx0BQlzZXBhcmF0b3IEEHZvdGVzRm9ySW5jcmVhc2UJAJEDAgUMdm90aW5nUmVzdWx0AAEED3ZvdGVzRm9yQ3VycmVudAkAkQMCBQx2b3RpbmdSZXN1bHQAAgQQdm90ZXNGb3JEZWNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAwQHYWN0aW9ucwMJAAACBQh2b3RlVHlwZQIIaW5jcmVhc2UEEG5ld0luY3JlYXNlVm90ZXMJAGUCCQENcGFyc2VJbnRWYWx1ZQEFEHZvdGVzRm9ySW5jcmVhc2UJAQ1wYXJzZUludFZhbHVlAQUJdm90ZVZhbHVlCQDMCAIJAQtTdHJpbmdFbnRyeQIFD2tleVZvdGluZ1Jlc3VsdAkBCnRvdGFsVm90ZXMDCQCkAwEFEG5ld0luY3JlYXNlVm90ZXMFD3ZvdGVzRm9yQ3VycmVudAUQdm90ZXNGb3JEZWNyZWFzZQUDbmlsAwkAAAIFCHZvdGVUeXBlAghkZWNyZWFzZQQQbmV3RGVjcmVhc2VWb3RlcwkAZQIJAQ1wYXJzZUludFZhbHVlAQUQdm90ZXNGb3JEZWNyZWFzZQkBDXBhcnNlSW50VmFsdWUBBQl2b3RlVmFsdWUJAMwIAgkBC1N0cmluZ0VudHJ5AgUPa2V5Vm90aW5nUmVzdWx0CQEKdG90YWxWb3RlcwMFEHZvdGVzRm9ySW5jcmVhc2UFD3ZvdGVzRm9yQ3VycmVudAkApAMBBRBuZXdEZWNyZWFzZVZvdGVzBQNuaWwED25ld0N1cnJlbnRWb3RlcwkAZQIJAQ1wYXJzZUludFZhbHVlAQUPdm90ZXNGb3JDdXJyZW50CQENcGFyc2VJbnRWYWx1ZQEFCXZvdGVWYWx1ZQkAzAgCCQELU3RyaW5nRW50cnkCBQ9rZXlWb3RpbmdSZXN1bHQJAQp0b3RhbFZvdGVzAwUQdm90ZXNGb3JJbmNyZWFzZQkApAMBBQ9uZXdDdXJyZW50Vm90ZXMFEHZvdGVzRm9yRGVjcmVhc2UFA25pbAQOZGVmYXVsdEFjdGlvbnMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleVZvdGUCBQt1c2VyQWRkcmVzcwULc3RhcnRIZWlnaHQFA25pbAkAzggCBQdhY3Rpb25zBQ5kZWZhdWx0QWN0aW9ucwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQxzZXRUaHJlc2hvbGQBDG5ld1RocmVzaG9sZAQGY2hlY2tzCQDMCAIJAQttdXN0TWFuYWdlcgEFAWkJAMwIAgMJAGYCBQxuZXdUaHJlc2hvbGQAAAYJAQh0aHJvd0VycgECEWludmFsaWQgdGhyZXNob2xkBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUMa2V5VGhyZXNob2xkBQxuZXdUaHJlc2hvbGQFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQhmaW5hbGl6ZQAEBWNoZWNrAwMJAAACCAUBaQZjYWxsZXIFFnZvdGluZ0VtaXNzaW9uQ29udHJhY3QGCQELbXVzdE1hbmFnZXIBBQFpBgkBCHRocm93RXJyAQIRUGVybWlzc2lvbiBkZW5pZWQDCQAAAgUFY2hlY2sFBWNoZWNrBBJ2b3RpbmdGaW5pc2hIZWlnaHQJAGQCCQERQGV4dHJOYXRpdmUoMTA1NSkBBQ5rZXlTdGFydEhlaWdodAkBBXZhbHVlAQkAnwgBBQ5rZXlFcG9jaExlbmd0aAMJAGcCBQZoZWlnaHQFEnZvdGluZ0ZpbmlzaEhlaWdodAQMdm90aW5nUmVzdWx0CQC1CQIJAQV2YWx1ZQEJAKIIAQUPa2V5Vm90aW5nUmVzdWx0BQlzZXBhcmF0b3IEEHZvdGVzRm9ySW5jcmVhc2UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQx2b3RpbmdSZXN1bHQAAQQPdm90ZXNGb3JDdXJyZW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUMdm90aW5nUmVzdWx0AAIEEHZvdGVzRm9yRGVjcmVhc2UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQx2b3RpbmdSZXN1bHQAAwQIYWxsVm90ZXMJAGQCCQBkAgUQdm90ZXNGb3JJbmNyZWFzZQUPdm90ZXNGb3JDdXJyZW50BRB2b3Rlc0ZvckRlY3JlYXNlBAl0aHJlc2hvbGQJAQxnZXRJbnRPckZhaWwBBQxrZXlUaHJlc2hvbGQEDSR0MDEwMTk4MTAyNzgJARxnZXRSYXRlQ2hhbmdlQW1vdW50c0lOVEVSTkFMAAQNaW5jcmVhc2VkUmF0ZQgFDSR0MDEwMTk4MTAyNzgCXzEEC2N1cnJlbnRSYXRlCAUNJHQwMTAxOTgxMDI3OAJfMgQNZGVjcmVhc2VkUmF0ZQgFDSR0MDEwMTk4MTAyNzgCXzMECXZvdGVzTGlzdAkAzAgCBRB2b3Rlc0ZvckluY3JlYXNlCQDMCAIFD3ZvdGVzRm9yQ3VycmVudAkAzAgCBRB2b3Rlc0ZvckRlY3JlYXNlBQNuaWwEB25ld1JhdGUDAwkAZgIFCXRocmVzaG9sZAUIYWxsVm90ZXMGCQAAAgUPdm90ZXNGb3JDdXJyZW50CQCWAwEFCXZvdGVzTGlzdAUEdW5pdAMJAAACBRB2b3Rlc0ZvckluY3JlYXNlCQCWAwEFCXZvdGVzTGlzdAUNaW5jcmVhc2VkUmF0ZQUNZGVjcmVhc2VkUmF0ZQQRY2hhbmdlUmF0ZUludm9rZXMEByRtYXRjaDAFB25ld1JhdGUDCQABAgUHJG1hdGNoMAIDSW50BAFyBQckbWF0Y2gwBBJlbWlzc2lvbkNoYW5nZVJhdGUJAPwHBAUQZW1pc3Npb25Db250cmFjdAISY2hhbmdlUmF0ZVBlckJsb2NrCQDMCAIFAXIFA25pbAUDbmlsAwkAAAIFEmVtaXNzaW9uQ2hhbmdlUmF0ZQUSZW1pc3Npb25DaGFuZ2VSYXRlBRJlbWlzc2lvbkNoYW5nZVJhdGUJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FBHVuaXQDCQAAAgURY2hhbmdlUmF0ZUludm9rZXMFEWNoYW5nZVJhdGVJbnZva2VzCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlTdGFydEhlaWdodAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ5rZXlFcG9jaExlbmd0aAkBDmdldEVwb2NoTGVuZ3RoAQUWdm90aW5nRW1pc3Npb25Db250cmFjdAkAzAgCCQELU3RyaW5nRW50cnkCBQ9rZXlWb3RpbmdSZXN1bHQJAQp0b3RhbFZvdGVzAwIBMAIBMAIBMAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESZ2V0TG9ja2VkR3d4QW1vdW50AQ51c2VyQWRkcmVzc1N0cgQLc3RhcnRIZWlnaHQJARFAZXh0ck5hdGl2ZSgxMDU1KQEFDmtleVN0YXJ0SGVpZ2h0BAlnd3hBbW91bnQEByRtYXRjaDAJAJ0IAgUEdGhpcwkBB2tleVZvdGUCBQ51c2VyQWRkcmVzc1N0cgULc3RhcnRIZWlnaHQDCQABAgUHJG1hdGNoMAIEVW5pdAAAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkBC3ZhbHVlT3JFbHNlAgkAtgkBCQCRAwIJALUJAgUBcwUJc2VwYXJhdG9yAAEAAAkAAgECC01hdGNoIGVycm9yCQCUCgIFA25pbAUJZ3d4QW1vdW50AQJ0eAEGdmVyaWZ5AAQPdGFyZ2V0UHVibGljS2V5BAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQIBQJ0eA9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUPdGFyZ2V0UHVibGljS2V59dAdIQ==", "height": 2713052, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Cb7QST4hcfjiVuWc3YBMLKmSrkGpyWwroqHHRiSQfKjz Next: ExZC2eVXxqQFAGtvkHsd1w49UzxSP6osqz2P9gzcZDts Diff:
OldNewDifferences
332332 }
333333
334334
335-@Verifier(aN)
336-func aO () = {
337- let aP = {
335+
336+@Callable(N)
337+func getLockedGwxAmount (aN) = {
338+ let z = getIntegerValue(l)
339+ let B = {
340+ let J = getString(this, x(aN, z))
341+ if ($isInstanceOf(J, "Unit"))
342+ then 0
343+ else if ($isInstanceOf(J, "String"))
344+ then {
345+ let p = J
346+ valueOrElse(parseInt(split(p, a)[1]), 0)
347+ }
348+ else throw("Match error")
349+ }
350+ $Tuple2(nil, B)
351+ }
352+
353+
354+@Verifier(aO)
355+func aP () = {
356+ let aQ = {
338357 let J = K()
339358 if ($isInstanceOf(J, "ByteVector"))
340359 then {
342361 O
343362 }
344363 else if ($isInstanceOf(J, "Unit"))
345- then aN.senderPublicKey
364+ then aO.senderPublicKey
346365 else throw("Match error")
347366 }
348- sigVerify(aN.bodyBytes, aN.proofs[0], aP)
367+ sigVerify(aO.bodyBytes, aO.proofs[0], aQ)
349368 }
350369
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "voting_emission_rate.ride"
77
88 let c = 4
99
1010 let d = makeString(["%s", "epochLength"], a)
1111
1212 let e = makeString(["%s", "emissionContract"], a)
1313
1414 let f = makeString(["%s", "votingEmissionContract"], a)
1515
1616 let g = makeString(["%s", "boostingContract"], a)
1717
1818 let h = makeString(["%s", "votingThreshold"], a)
1919
2020 let i = makeString(["%s%s", "ratePerBlock", "current"], a)
2121
2222 let j = makeString(["%s%s", "ratePerBlockMax", "current"], a)
2323
2424 let k = makeString(["%s", "rateChangeStep"], a)
2525
2626 let l = makeString(["%s", "startHeight"], a)
2727
2828 let m = makeString(["%s", "votingResult"], a)
2929
3030 let n = makeString(["%s", "votingEmissionEpochCount"], a)
3131
3232 func o (p) = throw(((b + ": ") + p))
3333
3434
3535 func q (r) = valueOrErrorMessage(getString(this, r), (r + " is not defined"))
3636
3737
3838 func s (r) = valueOrErrorMessage(getInteger(this, r), (r + " is not defined"))
3939
4040
4141 func t (u,v,w) = makeString(["%d%d%d", u, v, w], a)
4242
4343
4444 func x (y,z) = makeString(["%s%s%d", "vote", y, toString(z)], a)
4545
4646
4747 func A (B,C) = {
4848 let r = if ((C == 1))
4949 then makeString(["%d%s", B, "increase"], a)
5050 else if ((C == -1))
5151 then makeString(["%d%s", B, "decrease"], a)
5252 else makeString(["%d%s", B, "current"], a)
5353 r
5454 }
5555
5656
5757 let D = addressFromStringValue(q(g))
5858
5959 let E = addressFromStringValue(q(e))
6060
6161 let F = addressFromStringValue(q(f))
6262
6363 func G () = "%s__managerPublicKey"
6464
6565
6666 func H () = "%s__managerVaultAddress"
6767
6868
6969 func I () = {
7070 let J = getString(H())
7171 if ($isInstanceOf(J, "String"))
7272 then {
7373 let p = J
7474 addressFromStringValue(p)
7575 }
7676 else this
7777 }
7878
7979
8080 func K () = {
8181 let L = I()
8282 let J = getString(L, G())
8383 if ($isInstanceOf(J, "String"))
8484 then {
8585 let p = J
8686 fromBase58String(p)
8787 }
8888 else if ($isInstanceOf(J, "Unit"))
8989 then unit
9090 else throw("Match error")
9191 }
9292
9393
9494 func M (N) = {
9595 let J = K()
9696 if ($isInstanceOf(J, "ByteVector"))
9797 then {
9898 let O = J
9999 (N.callerPublicKey == O)
100100 }
101101 else if ($isInstanceOf(J, "Unit"))
102102 then (N.caller == this)
103103 else throw("Match error")
104104 }
105105
106106
107107 func P (N) = if (M(N))
108108 then true
109109 else o("permission denied")
110110
111111
112112 func Q (R) = {
113113 let J = R
114114 if ($isInstanceOf(J, "Int"))
115115 then {
116116 let S = J
117117 S
118118 }
119119 else o("failed to cast into Integer")
120120 }
121121
122122
123123 func T (U,V,W) = {
124124 let X = fraction(100, U, 120)
125125 let Y = min([fraction((100 + W), V, 100), X])
126126 let Z = max([fraction((100 - W), V, 100), 0])
127127 $Tuple3(Y, V, Z)
128128 }
129129
130130
131131 func aa () = {
132132 let U = getIntegerValue(E, j)
133133 let V = getIntegerValue(E, i)
134134 let ab = getIntegerValue(this, k)
135135 T(U, V, ab)
136136 }
137137
138138
139139 func ac (F) = {
140140 let ad = getIntegerValue(F, d)
141141 let ae = getIntegerValue(F, l)
142142 let af = valueOrElse(getInteger(this, n), c)
143143 (((ae + (ad * af)) - height) - 1)
144144 }
145145
146146
147147 @Callable(N)
148148 func constructor (ag,ah,ai,aj,ab,af) = {
149149 let ak = [P(N), if (isDefined(addressFromString(ag)))
150150 then true
151151 else o("Invalid boosting contract address"), if (isDefined(addressFromString(ah)))
152152 then true
153153 else o("Invalid emission contract address"), if (isDefined(addressFromString(ai)))
154154 then true
155155 else o("Invalid emission contract address"), if ((aj > 0))
156156 then true
157157 else o("invalid threshold"), if ((ab > 0))
158158 then true
159159 else o("invalid rateChangeStep"), if ((af > 0))
160160 then true
161161 else o("invalid votingEmissionEpochCount")]
162162 if ((ak == ak))
163163 then {
164164 let al = addressFromStringValue(ai)
165165 $Tuple2([StringEntry(g, ag), StringEntry(e, ah), StringEntry(f, ai), IntegerEntry(d, ac(al)), IntegerEntry(h, aj), IntegerEntry(k, ab), IntegerEntry(n, af), IntegerEntry(l, height), StringEntry(m, t("0", "0", "0"))], unit)
166166 }
167167 else throw("Strict value is not equal to itself.")
168168 }
169169
170170
171171
172172 @Callable(N)
173173 func getRateChangeAmountsREADONLY () = $Tuple2(nil, aa())
174174
175175
176176
177177 @Callable(N)
178178 func vote (am) = {
179179 let z = getIntegerValue(l)
180180 let an = (z + getIntegerValue(d))
181181 let ao = toString(N.caller)
182182 let ak = [if ((an > height))
183183 then true
184184 else o("too late to vote"), if (containsElement([1, 0, -1], am))
185185 then true
186186 else o("not valid argument"), if (!(isDefined(getString(x(ao, z)))))
187187 then true
188188 else o("you already voted")]
189189 if ((ak == ak))
190190 then {
191191 let B = invoke(D, "getUserGwxAmountAtHeightREADONLY", [ao, an], nil)
192192 let ap = if ((Q(B) > 0))
193193 then true
194194 else o("you don't have gwx")
195195 if ((ap == ap))
196196 then {
197197 let aq = split(getStringValue(m), a)
198198 let ar = aq[1]
199199 let as = aq[2]
200200 let at = aq[3]
201201 let au = if ((am == 1))
202202 then {
203203 let av = (parseIntValue(ar) + Q(B))
204204 [toString(av), as, at]
205205 }
206206 else if ((am == -1))
207207 then {
208208 let aw = (parseIntValue(at) + Q(B))
209209 [ar, as, toString(aw)]
210210 }
211211 else {
212212 let ax = (parseIntValue(as) + Q(B))
213213 [ar, toString(ax), at]
214214 }
215215 let ay = x(toString(N.caller), z)
216216 let az = A(toString(Q(B)), am)
217217 $Tuple2([StringEntry(m, t(au[0], au[1], au[2])), StringEntry(ay, az)], unit)
218218 }
219219 else throw("Strict value is not equal to itself.")
220220 }
221221 else throw("Strict value is not equal to itself.")
222222 }
223223
224224
225225
226226 @Callable(N)
227227 func cancelVote () = {
228228 let z = getIntegerValue(l)
229229 let an = (z + getIntegerValue(d))
230230 let ao = if ((N.caller == this))
231231 then toString(N.originCaller)
232232 else toString(N.caller)
233233 let ak = [if ((an > height))
234234 then true
235235 else o("too late to cancel vote"), if (isDefined(getString(m)))
236236 then true
237237 else o("no vote"), if (isDefined(getString(x(ao, z))))
238238 then true
239239 else o("no user vote")]
240240 if ((ak == ak))
241241 then {
242242 let C = split(getStringValue(x(ao, z)), a)
243243 let az = C[1]
244244 let aA = C[2]
245245 let aq = split(getStringValue(m), a)
246246 let ar = aq[1]
247247 let as = aq[2]
248248 let at = aq[3]
249249 let aB = if ((aA == "increase"))
250250 then {
251251 let av = (parseIntValue(ar) - parseIntValue(az))
252252 [StringEntry(m, t(toString(av), as, at))]
253253 }
254254 else if ((aA == "decrease"))
255255 then {
256256 let aw = (parseIntValue(at) - parseIntValue(az))
257257 [StringEntry(m, t(ar, as, toString(aw)))]
258258 }
259259 else {
260260 let ax = (parseIntValue(as) - parseIntValue(az))
261261 [StringEntry(m, t(ar, toString(ax), at))]
262262 }
263263 let aC = [DeleteEntry(x(ao, z))]
264264 (aB ++ aC)
265265 }
266266 else throw("Strict value is not equal to itself.")
267267 }
268268
269269
270270
271271 @Callable(N)
272272 func setThreshold (aD) = {
273273 let ak = [P(N), if ((aD > 0))
274274 then true
275275 else o("invalid threshold")]
276276 if ((ak == ak))
277277 then $Tuple2([IntegerEntry(h, aD)], unit)
278278 else throw("Strict value is not equal to itself.")
279279 }
280280
281281
282282
283283 @Callable(N)
284284 func finalize () = {
285285 let aE = if (if ((N.caller == F))
286286 then true
287287 else P(N))
288288 then true
289289 else o("Permission denied")
290290 if ((aE == aE))
291291 then {
292292 let an = (getIntegerValue(l) + value(getInteger(d)))
293293 if ((height >= an))
294294 then {
295295 let aq = split(value(getString(m)), a)
296296 let ar = parseIntValue(aq[1])
297297 let as = parseIntValue(aq[2])
298298 let at = parseIntValue(aq[3])
299299 let aF = ((ar + as) + at)
300300 let aj = s(h)
301301 let aG = aa()
302302 let Y = aG._1
303303 let aH = aG._2
304304 let Z = aG._3
305305 let aI = [ar, as, at]
306306 let aJ = if (if ((aj > aF))
307307 then true
308308 else (as == max(aI)))
309309 then unit
310310 else if ((ar == max(aI)))
311311 then Y
312312 else Z
313313 let aK = {
314314 let J = aJ
315315 if ($isInstanceOf(J, "Int"))
316316 then {
317317 let aL = J
318318 let aM = invoke(E, "changeRatePerBlock", [aL], nil)
319319 if ((aM == aM))
320320 then aM
321321 else throw("Strict value is not equal to itself.")
322322 }
323323 else unit
324324 }
325325 if ((aK == aK))
326326 then [IntegerEntry(l, height), IntegerEntry(d, ac(F)), StringEntry(m, t("0", "0", "0"))]
327327 else throw("Strict value is not equal to itself.")
328328 }
329329 else nil
330330 }
331331 else throw("Strict value is not equal to itself.")
332332 }
333333
334334
335-@Verifier(aN)
336-func aO () = {
337- let aP = {
335+
336+@Callable(N)
337+func getLockedGwxAmount (aN) = {
338+ let z = getIntegerValue(l)
339+ let B = {
340+ let J = getString(this, x(aN, z))
341+ if ($isInstanceOf(J, "Unit"))
342+ then 0
343+ else if ($isInstanceOf(J, "String"))
344+ then {
345+ let p = J
346+ valueOrElse(parseInt(split(p, a)[1]), 0)
347+ }
348+ else throw("Match error")
349+ }
350+ $Tuple2(nil, B)
351+ }
352+
353+
354+@Verifier(aO)
355+func aP () = {
356+ let aQ = {
338357 let J = K()
339358 if ($isInstanceOf(J, "ByteVector"))
340359 then {
341360 let O = J
342361 O
343362 }
344363 else if ($isInstanceOf(J, "Unit"))
345- then aN.senderPublicKey
364+ then aO.senderPublicKey
346365 else throw("Match error")
347366 }
348- sigVerify(aN.bodyBytes, aN.proofs[0], aP)
367+ sigVerify(aO.bodyBytes, aO.proofs[0], aQ)
349368 }
350369

github/deemru/w8io/026f985 
71.92 ms