tx · EpL3otSUSpLvFkQNketGwvxW82ivgB11ffNHy5oNaC3C

3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh:  -0.01000000 Waves

2023.05.17 10:39 [2581662] smart account 3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh > SELF 0.00000000 Waves

{ "type": 13, "id": "EpL3otSUSpLvFkQNketGwvxW82ivgB11ffNHy5oNaC3C", "fee": 1000000, "feeAssetId": null, "timestamp": 1684309192938, "version": 2, "chainId": 84, "sender": "3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh", "senderPublicKey": "EU9obW1yVhR8qug3EmXPeew3DMagvJFQzY5Ku8bmcsU7", "proofs": [ "2UB34jPAgt7a8pe4Y2WuK73aZYRwyAKy9P4cfW3dsrRDnoMZnRB5pDZpWndwFkc4XDuA78kKRifdSSRq7mPwjYTH" ], "script": "base64:BgIfCAISBwoFCAgBAQESABIDCgEBEgASAwoBARIECgIICBkACXNlcGFyYXRvcgICX18ADmtleUVwb2NoTGVuZ3RoCQC5CQIJAMwIAgICJXMJAMwIAgILZXBvY2hMZW5ndGgFA25pbAUJc2VwYXJhdG9yABNrZXlFbWlzc2lvbkNvbnRyYWN0CQC5CQIJAMwIAgICJXMJAMwIAgIQZW1pc3Npb25Db250cmFjdAUDbmlsBQlzZXBhcmF0b3IAE2tleUJvb3N0aW5nQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAhBib29zdGluZ0NvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgAMa2V5VGhyZXNob2xkCQC5CQIJAMwIAgICJXMJAMwIAgIPdm90aW5nVGhyZXNob2xkBQNuaWwFCXNlcGFyYXRvcgAPa2V5UmF0ZVBlckJsb2NrCQC5CQIJAMwIAgIEJXMlcwkAzAgCAgxyYXRlUGVyQmxvY2sJAMwIAgIHY3VycmVudAUDbmlsBQlzZXBhcmF0b3IAEmtleVJhdGVQZXJCbG9ja01heAkAuQkCCQDMCAICBCVzJXMJAMwIAgIPcmF0ZVBlckJsb2NrTWF4CQDMCAICB2N1cnJlbnQFA25pbAUJc2VwYXJhdG9yABFrZXlSYXRlQ2hhbmdlU3RlcAkAuQkCCQDMCAICAiVzCQDMCAICDnJhdGVDaGFuZ2VTdGVwBQNuaWwFCXNlcGFyYXRvcgEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBDGdldEludE9yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUDa2V5CQCsAgIFA2tleQIPIGlzIG5vdCBkZWZpbmVkAQ5rZXlTdGFydEhlaWdodAAJALkJAgkAzAgCAgIlcwkAzAgCAgtzdGFydEhlaWdodAUDbmlsBQlzZXBhcmF0b3IBD2tleVZvdGluZ1Jlc3VsdAAJALkJAgkAzAgCAgIlcwkAzAgCAgx2b3RpbmdSZXN1bHQFA25pbAUJc2VwYXJhdG9yAQp0b3RhbFZvdGVzAw10b3RhbEluY3JlYXNlCXRvdGFsTm9uZQ10b3RhbERlY3JlYXNlCQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIFDXRvdGFsSW5jcmVhc2UJAMwIAgUJdG90YWxOb25lCQDMCAIFDXRvdGFsRGVjcmVhc2UFA25pbAUJc2VwYXJhdG9yAQdrZXlWb3RlAQx2b3RlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICBHZvdGUJAMwIAgUMdm90ZXJBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEMa2V5Vm90ZVZhbHVlAglnd3hBbW91bnQEdm90ZQQDa2V5AwkAAAIFBHZvdGUAAQkAuQkCCQDMCAICBCVkJXMJAMwIAgUJZ3d4QW1vdW50CQDMCAICCGluY3JlYXNlBQNuaWwFCXNlcGFyYXRvcgMJAAACBQR2b3RlAP///////////wEJALkJAgkAzAgCAgQlZCVzCQDMCAIFCWd3eEFtb3VudAkAzAgCAghkZWNyZWFzZQUDbmlsBQlzZXBhcmF0b3IJALkJAgkAzAgCAgQlZCVzCQDMCAIFCWd3eEFtb3VudAkAzAgCAgRub25lBQNuaWwFCXNlcGFyYXRvcgUDa2V5ABBib29zdGluZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQUTa2V5Qm9vc3RpbmdDb250cmFjdAAQZW1pc3Npb25Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBD2dldFN0cmluZ09yRmFpbAEFE2tleUVtaXNzaW9uQ29udHJhY3QBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAoggBCQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFzBQR0aGlzARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQTbWFuYWdlclZhdWx0QWRkcmVzcwkBHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMABAckbWF0Y2gwCQCdCAIFE21hbmFnZXJWYXVsdEFkZHJlc3MJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBCWlzTWFuYWdlcgEBaQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawMJAAECBQckbWF0Y2gwAgRVbml0CQAAAggFAWkGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpAwkBCWlzTWFuYWdlcgEFAWkGCQACAQIRcGVybWlzc2lvbiBkZW5pZWQBBWFzSW50AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEBnZhbEludAUHJG1hdGNoMAUGdmFsSW50CQACAQIbZmFpbGVkIHRvIGNhc3QgaW50byBJbnRlZ2VyAQtjYWxjTmV3UmF0ZQMPcmF0ZVBlckJsb2NrTWF4DHJhdGVQZXJCbG9jawpjaGFuZ2VTdGVwBAptYXhBbGxvd2VkCQBrAwBkBQ9yYXRlUGVyQmxvY2tNYXgAeAQNaW5jcmVhc2VkUmF0ZQkAlwMBCQDMCAIJAGsDCQBkAgBkBQpjaGFuZ2VTdGVwBQxyYXRlUGVyQmxvY2sAZAkAzAgCBQptYXhBbGxvd2VkBQNuaWwEDWRlY3JlYXNlZFJhdGUJAJYDAQkAzAgCCQBrAwkAZQIAZAUKY2hhbmdlU3RlcAUMcmF0ZVBlckJsb2NrAGQJAMwIAgAABQNuaWwJAJUKAwUNaW5jcmVhc2VkUmF0ZQUMcmF0ZVBlckJsb2NrBQ1kZWNyZWFzZWRSYXRlBgFpAQtjb25zdHJ1Y3RvcgUTYm9vc3RpbmdDb250cmFjdFBybRNlbWlzc2lvbkNvbnRyYWN0UHJtEXZvdGluZ0R1cmF0aW9uUHJtCXRocmVzaG9sZA5yYXRlQ2hhbmdlU3RlcAQGY2hlY2tzCQDMCAIDCQEJaXNEZWZpbmVkAQkApggBBRNib29zdGluZ0NvbnRyYWN0UHJtBgkAAgECIUludmFsaWQgYm9vc3RpbmcgY29udHJhY3QgYWRkcmVzcwkAzAgCAwkBCWlzRGVmaW5lZAEJAKYIAQUTZW1pc3Npb25Db250cmFjdFBybQYJAAIBAiFJbnZhbGlkIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAGYCBRF2b3RpbmdEdXJhdGlvblBybQAABgkAAgECF0ludmFsaWQgdm90aW5nIGR1cmF0aW9uCQDMCAIDCQBmAgUJdGhyZXNob2xkAAAGCQACAQIRaW52YWxpZCB0aHJlc2hvbGQJAMwIAgMJAGYCBQ5yYXRlQ2hhbmdlU3RlcAAABgkAAgECFmludmFsaWQgcmF0ZUNoYW5nZVN0ZXAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFE2tleUJvb3N0aW5nQ29udHJhY3QFE2Jvb3N0aW5nQ29udHJhY3RQcm0JAMwIAgkBC1N0cmluZ0VudHJ5AgUTa2V5RW1pc3Npb25Db250cmFjdAUTZW1pc3Npb25Db250cmFjdFBybQkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5RXBvY2hMZW5ndGgFEXZvdGluZ0R1cmF0aW9uUHJtCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrZXlUaHJlc2hvbGQFCXRocmVzaG9sZAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5UmF0ZUNoYW5nZVN0ZXAFDnJhdGVDaGFuZ2VTdGVwCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOa2V5U3RhcnRIZWlnaHQABQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAAJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgIBMAkAzAgCAgEwCQDMCAICATAFA25pbAUJc2VwYXJhdG9yBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEcZ2V0UmF0ZUNoYW5nZUFtb3VudHNSRUFET05MWQAED3JhdGVQZXJCbG9ja01heAkBEUBleHRyTmF0aXZlKDEwNTApAgUQZW1pc3Npb25Db250cmFjdAUSa2V5UmF0ZVBlckJsb2NrTWF4BAxyYXRlUGVyQmxvY2sJARFAZXh0ck5hdGl2ZSgxMDUwKQIFEGVtaXNzaW9uQ29udHJhY3QFD2tleVJhdGVQZXJCbG9jawQOcmF0ZUNoYW5nZVN0ZXAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFEWtleVJhdGVDaGFuZ2VTdGVwCQCUCgIFA25pbAkBC2NhbGNOZXdSYXRlAwUPcmF0ZVBlckJsb2NrTWF4BQxyYXRlUGVyQmxvY2sFDnJhdGVDaGFuZ2VTdGVwAWkBBHZvdGUBB2luRmF2b3IEEnZvdGluZ0ZpbmlzaEhlaWdodAkAZAIJAQV2YWx1ZQEJAJ8IAQkBDmtleVN0YXJ0SGVpZ2h0AAkBBXZhbHVlAQkAnwgBBQ5rZXlFcG9jaExlbmd0aAQGY2hlY2tzCQDMCAIDCQBmAgUSdm90aW5nRmluaXNoSGVpZ2h0BQZoZWlnaHQGCQACAQIQdG9vIGxhdGUgdG8gdm90ZQkAzAgCAwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgABCQDMCAIAAAkAzAgCAP///////////wEFA25pbAUHaW5GYXZvcgYJAAIBAhJub3QgdmFsaWQgYXJndW1lbnQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJZ3d4QW1vdW50CQD8BwQFEGJvb3N0aW5nQ29udHJhY3QCIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIJAKUIAQgFAWkGY2FsbGVyCQDMCAIFEnZvdGluZ0ZpbmlzaEhlaWdodAUDbmlsBQNuaWwEB25vdFplcm8DCQBmAgkBBWFzSW50AQUJZ3d4QW1vdW50AAAGCQACAQISeW91IGRvbid0IGhhdmUgZ3d4AwkAAAIFB25vdFplcm8FB25vdFplcm8EBHZvdGUEByRtYXRjaDAJAKIIAQkBB2tleVZvdGUBCQClCAEIBQFpBmNhbGxlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAEBHZvdGUJALUJAgUBcwUJc2VwYXJhdG9yBAl2b3RlVmFsdWUJAJEDAgUEdm90ZQABBAh2b3RlVHlwZQkAkQMCBQR2b3RlAAIEEWlzVm90ZVR5cGVTaW1pbGFyAwMDCQAAAgUIdm90ZVR5cGUCCGluY3JlYXNlCQAAAgUHaW5GYXZvcgABBwYDCQAAAgUIdm90ZVR5cGUCCGRlY3JlYXNlCQAAAgUHaW5GYXZvcgD///////////8BBwYDCQAAAgUIdm90ZVR5cGUCBG5vbmUJAAACBQdpbkZhdm9yAAAHBBJpc1ZvdGVWYWx1ZVNpbWlsYXIDBRFpc1ZvdGVUeXBlU2ltaWxhcgkAAAIJAQVhc0ludAEFCWd3eEFtb3VudAkBDXBhcnNlSW50VmFsdWUBBQl2b3RlVmFsdWUHBBBpc05ld1ZvdGVTaW1pbGFyAwMFEWlzVm90ZVR5cGVTaW1pbGFyBRJpc1ZvdGVWYWx1ZVNpbWlsYXIHCQACAQIReW91IGFscmVhZHkgdm90ZWQJAPwHBAUEdGhpcwIKY2FuY2VsVm90ZQUDbmlsBQNuaWwFEGlzTmV3Vm90ZVNpbWlsYXIDCQABAgUHJG1hdGNoMAIEVW5pdAQBdQUHJG1hdGNoMAUBdQkAAgECC01hdGNoIGVycm9yAwkAAAIFBHZvdGUFBHZvdGUEDHZvdGluZ1Jlc3VsdAkAtQkCCQEFdmFsdWUBCQCiCAEJAQ9rZXlWb3RpbmdSZXN1bHQABQlzZXBhcmF0b3IED3ZvdGVzVG9JbmNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAQQLdm90ZXNUb05vbmUJAJEDAgUMdm90aW5nUmVzdWx0AAIED3ZvdGVzVG9EZWNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAwQbbmV3UG9zaXRpdmVBbmROZWdhdGl2ZVZvdGVzAwkAAAIFB2luRmF2b3IAAQQQbmV3UG9zaXRpdmVWb3RlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQUPdm90ZXNUb0luY3JlYXNlCQEFYXNJbnQBBQlnd3hBbW91bnQJAMwIAgkApAMBBRBuZXdQb3NpdGl2ZVZvdGVzCQDMCAIFC3ZvdGVzVG9Ob25lCQDMCAIFD3ZvdGVzVG9EZWNyZWFzZQUDbmlsAwkAAAIFB2luRmF2b3IA////////////AQQQbmV3TmVnYXRpdmVWb3RlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQULdm90ZXNUb05vbmUJAQVhc0ludAEFCWd3eEFtb3VudAkAzAgCBQ92b3Rlc1RvSW5jcmVhc2UJAMwIAgULdm90ZXNUb05vbmUJAMwIAgkApAMBBRBuZXdOZWdhdGl2ZVZvdGVzBQNuaWwEDG5ld05vbmVWb3RlcwkAZAIJAQ1wYXJzZUludFZhbHVlAQULdm90ZXNUb05vbmUJAQVhc0ludAEFCWd3eEFtb3VudAkAzAgCBQ92b3Rlc1RvSW5jcmVhc2UJAMwIAgkApAMBBQxuZXdOb25lVm90ZXMJAMwIAgUPdm90ZXNUb0RlY3JlYXNlBQNuaWwEB3ZvdGVLZXkJAQdrZXlWb3RlAQkApQgBCAUBaQZjYWxsZXIECXZvdGVWYWx1ZQkBDGtleVZvdGVWYWx1ZQIJAKQDAQkBBWFzSW50AQUJZ3d4QW1vdW50BQdpbkZhdm9yCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAAJAQp0b3RhbFZvdGVzAwkAkQMCBRtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAAkAkQMCBRtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAQkAkQMCBRtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMAAgkAzAgCCQELU3RyaW5nRW50cnkCBQd2b3RlS2V5BQl2b3RlVmFsdWUFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjYW5jZWxWb3RlAAQLdXNlckFkZHJlc3MDCQAAAggFAWkGY2FsbGVyBQR0aGlzCQClCAEIBQFpDG9yaWdpbkNhbGxlcgkApQgBCAUBaQZjYWxsZXIEBmNoZWNrcwkAzAgCAwkBCWlzRGVmaW5lZAEJAKIIAQkBD2tleVZvdGluZ1Jlc3VsdAAGCQACAQIHbm8gdm90ZQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAR2b3RlCQC1CQIJAQV2YWx1ZQEJAKIIAQkBB2tleVZvdGUBBQt1c2VyQWRkcmVzcwUJc2VwYXJhdG9yBAl2b3RlVmFsdWUJAJEDAgUEdm90ZQABBAh2b3RlVHlwZQkAkQMCBQR2b3RlAAIEDHZvdGluZ1Jlc3VsdAkAtQkCCQEFdmFsdWUBCQCiCAEJAQ9rZXlWb3RpbmdSZXN1bHQABQlzZXBhcmF0b3IED3ZvdGVzVG9JbmNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAQQLdm90ZXNUb05vbmUJAJEDAgUMdm90aW5nUmVzdWx0AAIED3ZvdGVzVG9EZWNyZWFzZQkAkQMCBQx2b3RpbmdSZXN1bHQAAwQHYWN0aW9ucwMJAAACBQh2b3RlVHlwZQIIaW5jcmVhc2UEEG5ld0luY3JlYXNlVm90ZXMJAGUCCQENcGFyc2VJbnRWYWx1ZQEFD3ZvdGVzVG9JbmNyZWFzZQkBDXBhcnNlSW50VmFsdWUBBQl2b3RlVmFsdWUJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5Vm90aW5nUmVzdWx0AAkBCnRvdGFsVm90ZXMDCQCkAwEFEG5ld0luY3JlYXNlVm90ZXMFC3ZvdGVzVG9Ob25lBQ92b3Rlc1RvRGVjcmVhc2UJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleVZvdGUBBQt1c2VyQWRkcmVzcwUDbmlsBQR1bml0AwkAAAIFCHZvdGVUeXBlAglkZXNjcmVhc2UEEG5ld0RlY3JlYXNlVm90ZXMJAGUCCQENcGFyc2VJbnRWYWx1ZQEFD3ZvdGVzVG9EZWNyZWFzZQkBDXBhcnNlSW50VmFsdWUBBQl2b3RlVmFsdWUJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5Vm90aW5nUmVzdWx0AAkBCnRvdGFsVm90ZXMDBQ92b3Rlc1RvSW5jcmVhc2UFC3ZvdGVzVG9Ob25lCQCkAwEFEG5ld0RlY3JlYXNlVm90ZXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleVZvdGUBBQt1c2VyQWRkcmVzcwUDbmlsBQR1bml0BAxuZXdOb25lVm90ZXMJAGUCCQENcGFyc2VJbnRWYWx1ZQEFC3ZvdGVzVG9Ob25lCQENcGFyc2VJbnRWYWx1ZQEFCXZvdGVWYWx1ZQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlWb3RpbmdSZXN1bHQACQEKdG90YWxWb3RlcwMFD3ZvdGVzVG9JbmNyZWFzZQkApAMBBQxuZXdOb25lVm90ZXMFD3ZvdGVzVG9EZWNyZWFzZQkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5Vm90ZQEFC3VzZXJBZGRyZXNzBQNuaWwFBHVuaXQFB2FjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMc2V0VGhyZXNob2xkAQxuZXdUaHJlc2hvbGQEBmNoZWNrcwkAzAgCCQELbXVzdE1hbmFnZXIBBQFpCQDMCAIDCQBmAgUMbmV3VGhyZXNob2xkAAAGCQACAQIRaW52YWxpZCB0aHJlc2hvbGQFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrZXlUaHJlc2hvbGQFDG5ld1RocmVzaG9sZAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGZpbmFsaXplAg1hbW91bnRBc3NldElkDHByaWNlQXNzZXRJZAQSdm90aW5nRmluaXNoSGVpZ2h0CQBkAgkBBXZhbHVlAQkAnwgBCQEOa2V5U3RhcnRIZWlnaHQACQEFdmFsdWUBCQCfCAEFDmtleUVwb2NoTGVuZ3RoBAZjaGVja3MJAMwIAgMJAGcCBQZoZWlnaHQFEnZvdGluZ0ZpbmlzaEhlaWdodAYJAAIBAiJpbnN1ZmZpY2llbnQgaGVpZ2h0IGZvciBjb21wbGV0aW9uBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDHZvdGluZ1Jlc3VsdAkAtQkCCQEFdmFsdWUBCQCiCAEJAQ9rZXlWb3RpbmdSZXN1bHQABQlzZXBhcmF0b3IED3ZvdGVzVG9JbmNyZWFzZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDHZvdGluZ1Jlc3VsdAABBAt2b3Rlc1RvTm9uZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFDHZvdGluZ1Jlc3VsdAACBA92b3Rlc1RvRGVjcmVhc2UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQx2b3RpbmdSZXN1bHQAAwQIYWxsVm90ZXMJAGQCCQBkAgUPdm90ZXNUb0luY3JlYXNlBQt2b3Rlc1RvTm9uZQUPdm90ZXNUb0RlY3JlYXNlBAl0aHJlc2hvbGQJAQxnZXRJbnRPckZhaWwBBQxrZXlUaHJlc2hvbGQEB2FjdGlvbnMDAwkAZwIFCGFsbFZvdGVzBQl0aHJlc2hvbGQGBwUDbmlsBQNuaWwFB2FjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4ALsmf3g==", "height": 2581662, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HqH4q7b9MnoFm2K46edyUPLitFdVdorLF8Xx1PL3z5Gj Next: 5raxcEWTpigC7NKmSHtCUDd7fyFBRrMnFhDHmFErvZWt 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)], unit)
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)
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)], unit)
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)
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 == "descrease"))
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 (aw,ax) = {
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 ay = ((aj + ak) + al)
298298 let W = k(e)
299299 let as = if (if ((ay >= 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/169f3d6 
43.63 ms