tx · Ben3kgAXbXqQe9uc7Qq16u8tebBuwJw561LRWV6SB6oa

3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh:  -0.01000000 Waves

2023.05.19 09:26 [2584471] smart account 3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh > SELF 0.00000000 Waves

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

github/deemru/w8io/873ac7e 
37.46 ms