tx · 75H7XxBiqjXVS1RAzut7RK42aV16oZ1xhQGzPfdHXfD9

3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh:  -0.01000000 Waves

2023.05.17 11:54 [2581734] smart account 3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh > SELF 0.00000000 Waves

{ "type": 13, "id": "75H7XxBiqjXVS1RAzut7RK42aV16oZ1xhQGzPfdHXfD9", "fee": 1000000, "feeAssetId": null, "timestamp": 1684313664477, "version": 2, "chainId": 84, "sender": "3N4ziXSMRverXyxHDUKKMR9MHXnB3TyU3Yh", "senderPublicKey": "EU9obW1yVhR8qug3EmXPeew3DMagvJFQzY5Ku8bmcsU7", "proofs": [ "4dzbctMzVYvh9F9crFk96BgGDnr5NcdCik8hdcZsKAiv5MmXoVZdjk25i3sJUKnathGNpcmJNzP26Fs7yuV8hRin" ], "script": "base64:BgIbCAISBwoFCAgBAQESABIDCgEBEgASAwoBARIAHAAJc2VwYXJhdG9yAgJfXwAQY29udHJhY3RGaWxlbmFtZQIZdm90aW5nX2VtaXNzaW9uX3JhdGUucmlkZQAOa2V5RXBvY2hMZW5ndGgJALkJAgkAzAgCAgIlcwkAzAgCAgtlcG9jaExlbmd0aAUDbmlsBQlzZXBhcmF0b3IAE2tleUVtaXNzaW9uQ29udHJhY3QJALkJAgkAzAgCAgIlcwkAzAgCAhBlbWlzc2lvbkNvbnRyYWN0BQNuaWwFCXNlcGFyYXRvcgATa2V5Qm9vc3RpbmdDb250cmFjdAkAuQkCCQDMCAICAiVzCQDMCAICEGJvb3N0aW5nQ29udHJhY3QFA25pbAUJc2VwYXJhdG9yAAxrZXlUaHJlc2hvbGQJALkJAgkAzAgCAgIlcwkAzAgCAg92b3RpbmdUaHJlc2hvbGQFA25pbAUJc2VwYXJhdG9yAA9rZXlSYXRlUGVyQmxvY2sJALkJAgkAzAgCAgQlcyVzCQDMCAICDHJhdGVQZXJCbG9jawkAzAgCAgdjdXJyZW50BQNuaWwFCXNlcGFyYXRvcgASa2V5UmF0ZVBlckJsb2NrTWF4CQC5CQIJAMwIAgIEJXMlcwkAzAgCAg9yYXRlUGVyQmxvY2tNYXgJAMwIAgIHY3VycmVudAUDbmlsBQlzZXBhcmF0b3IAEWtleVJhdGVDaGFuZ2VTdGVwCQC5CQIJAMwIAgICJXMJAMwIAgIOcmF0ZUNoYW5nZVN0ZXAFA25pbAUJc2VwYXJhdG9yAQh0aHJvd0VycgEBcwkAAgEJAKwCAgkArAICBRBjb250cmFjdEZpbGVuYW1lAgI6IAUBcwEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgUDa2V5Ag8gaXMgbm90IGRlZmluZWQBDGdldEludE9yRmFpbAEDa2V5CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUDa2V5CQCsAgIFA2tleQIPIGlzIG5vdCBkZWZpbmVkAQ5rZXlTdGFydEhlaWdodAAJALkJAgkAzAgCAgIlcwkAzAgCAgtzdGFydEhlaWdodAUDbmlsBQlzZXBhcmF0b3IBD2tleVZvdGluZ1Jlc3VsdAAJALkJAgkAzAgCAgIlcwkAzAgCAgx2b3RpbmdSZXN1bHQFA25pbAUJc2VwYXJhdG9yAQp0b3RhbFZvdGVzAw10b3RhbEluY3JlYXNlCXRvdGFsTm9uZQ10b3RhbERlY3JlYXNlCQC5CQIJAMwIAgIGJWQlZCVkCQDMCAIFDXRvdGFsSW5jcmVhc2UJAMwIAgUJdG90YWxOb25lCQDMCAIFDXRvdGFsRGVjcmVhc2UFA25pbAUJc2VwYXJhdG9yAQdrZXlWb3RlAQx2b3RlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICBHZvdGUJAMwIAgUMdm90ZXJBZGRyZXNzBQNuaWwFCXNlcGFyYXRvcgEMa2V5Vm90ZVZhbHVlAglnd3hBbW91bnQEdm90ZQQDa2V5AwkAAAIFBHZvdGUAAQkAuQkCCQDMCAICBCVkJXMJAMwIAgUJZ3d4QW1vdW50CQDMCAICCGluY3JlYXNlBQNuaWwFCXNlcGFyYXRvcgMJAAACBQR2b3RlAP///////////wEJALkJAgkAzAgCAgQlZCVzCQDMCAIFCWd3eEFtb3VudAkAzAgCAghkZWNyZWFzZQUDbmlsBQlzZXBhcmF0b3IJALkJAgkAzAgCAgQlZCVzCQDMCAIFCWd3eEFtb3VudAkAzAgCAgRub25lBQNuaWwFCXNlcGFyYXRvcgUDa2V5ABBib29zdGluZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQUTa2V5Qm9vc3RpbmdDb250cmFjdAAQZW1pc3Npb25Db250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBD2dldFN0cmluZ09yRmFpbAEFE2tleUVtaXNzaW9uQ29udHJhY3QBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwACFyVzX19tYW5hZ2VyVmF1bHRBZGRyZXNzARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAoggBCQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFzBQR0aGlzARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQTbWFuYWdlclZhdWx0QWRkcmVzcwkBHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMABAckbWF0Y2gwCQCdCAIFE21hbmFnZXJWYXVsdEFkZHJlc3MJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBCWlzTWFuYWdlcgEBaQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawMJAAECBQckbWF0Y2gwAgRVbml0CQAAAggFAWkGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpAwkBCWlzTWFuYWdlcgEFAWkGCQEIdGhyb3dFcnIBAhFwZXJtaXNzaW9uIGRlbmllZAEFYXNJbnQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACA0ludAQGdmFsSW50BQckbWF0Y2gwBQZ2YWxJbnQJAQh0aHJvd0VycgECG2ZhaWxlZCB0byBjYXN0IGludG8gSW50ZWdlcgELY2FsY05ld1JhdGUDD3JhdGVQZXJCbG9ja01heAxyYXRlUGVyQmxvY2sKY2hhbmdlU3RlcAQKbWF4QWxsb3dlZAkAawMAZAUPcmF0ZVBlckJsb2NrTWF4AHgEDWluY3JlYXNlZFJhdGUJAJcDAQkAzAgCCQBrAwkAZAIAZAUKY2hhbmdlU3RlcAUMcmF0ZVBlckJsb2NrAGQJAMwIAgUKbWF4QWxsb3dlZAUDbmlsBA1kZWNyZWFzZWRSYXRlCQCWAwEJAMwIAgkAawMJAGUCAGQFCmNoYW5nZVN0ZXAFDHJhdGVQZXJCbG9jawBkCQDMCAIAAAUDbmlsCQCVCgMFDWluY3JlYXNlZFJhdGUFDHJhdGVQZXJCbG9jawUNZGVjcmVhc2VkUmF0ZQEcZ2V0UmF0ZUNoYW5nZUFtb3VudHNJTlRFUk5BTAAED3JhdGVQZXJCbG9ja01heAkBEUBleHRyTmF0aXZlKDEwNTApAgUQZW1pc3Npb25Db250cmFjdAUSa2V5UmF0ZVBlckJsb2NrTWF4BAxyYXRlUGVyQmxvY2sJARFAZXh0ck5hdGl2ZSgxMDUwKQIFEGVtaXNzaW9uQ29udHJhY3QFD2tleVJhdGVQZXJCbG9jawQOcmF0ZUNoYW5nZVN0ZXAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFEWtleVJhdGVDaGFuZ2VTdGVwCQELY2FsY05ld1JhdGUDBQ9yYXRlUGVyQmxvY2tNYXgFDHJhdGVQZXJCbG9jawUOcmF0ZUNoYW5nZVN0ZXAGAWkBC2NvbnN0cnVjdG9yBRNib29zdGluZ0NvbnRyYWN0UHJtE2VtaXNzaW9uQ29udHJhY3RQcm0Rdm90aW5nRHVyYXRpb25Qcm0JdGhyZXNob2xkDnJhdGVDaGFuZ2VTdGVwBAZjaGVja3MJAMwIAgMJAQlpc0RlZmluZWQBCQCmCAEFE2Jvb3N0aW5nQ29udHJhY3RQcm0GCQEIdGhyb3dFcnIBAiFJbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQlpc0RlZmluZWQBCQCmCAEFE2VtaXNzaW9uQ29udHJhY3RQcm0GCQEIdGhyb3dFcnIBAiFJbnZhbGlkIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAGYCBRF2b3RpbmdEdXJhdGlvblBybQAABgkBCHRocm93RXJyAQIXSW52YWxpZCB2b3RpbmcgZHVyYXRpb24JAMwIAgMJAGYCBQl0aHJlc2hvbGQAAAYJAQh0aHJvd0VycgECEWludmFsaWQgdGhyZXNob2xkCQDMCAIDCQBmAgUOcmF0ZUNoYW5nZVN0ZXAAAAYJAQh0aHJvd0VycgECFmludmFsaWQgcmF0ZUNoYW5nZVN0ZXAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFE2tleUJvb3N0aW5nQ29udHJhY3QFE2Jvb3N0aW5nQ29udHJhY3RQcm0JAMwIAgkBC1N0cmluZ0VudHJ5AgUTa2V5RW1pc3Npb25Db250cmFjdAUTZW1pc3Npb25Db250cmFjdFBybQkAzAgCCQEMSW50ZWdlckVudHJ5AgUOa2V5RXBvY2hMZW5ndGgFEXZvdGluZ0R1cmF0aW9uUHJtCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQxrZXlUaHJlc2hvbGQFCXRocmVzaG9sZAkAzAgCCQEMSW50ZWdlckVudHJ5AgURa2V5UmF0ZUNoYW5nZVN0ZXAFDnJhdGVDaGFuZ2VTdGVwCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOa2V5U3RhcnRIZWlnaHQABQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAAJAQp0b3RhbFZvdGVzAwIBMAIBMAIBMAUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBHGdldFJhdGVDaGFuZ2VBbW91bnRzUkVBRE9OTFkACQCUCgIFA25pbAkBHGdldFJhdGVDaGFuZ2VBbW91bnRzSU5URVJOQUwAAWkBBHZvdGUBB2luRmF2b3IEEnZvdGluZ0ZpbmlzaEhlaWdodAkAZAIJAQV2YWx1ZQEJAJ8IAQkBDmtleVN0YXJ0SGVpZ2h0AAkBBXZhbHVlAQkAnwgBBQ5rZXlFcG9jaExlbmd0aAQGY2hlY2tzCQDMCAIDCQBmAgUSdm90aW5nRmluaXNoSGVpZ2h0BQZoZWlnaHQGCQEIdGhyb3dFcnIBAhB0b28gbGF0ZSB0byB2b3RlCQDMCAIDCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAAEJAMwIAgAACQDMCAIA////////////AQUDbmlsBQdpbkZhdm9yBgkBCHRocm93RXJyAQISbm90IHZhbGlkIGFyZ3VtZW50BQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECWd3eEFtb3VudAkA/AcEBRBib29zdGluZ0NvbnRyYWN0AiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCCQClCAEIBQFpBmNhbGxlcgkAzAgCBRJ2b3RpbmdGaW5pc2hIZWlnaHQFA25pbAUDbmlsBAdub3RaZXJvAwkAZgIJAQVhc0ludAEFCWd3eEFtb3VudAAABgkBCHRocm93RXJyAQISeW91IGRvbid0IGhhdmUgZ3d4AwkAAAIFB25vdFplcm8FB25vdFplcm8EBHZvdGUEByRtYXRjaDAJAKIIAQkBB2tleVZvdGUBCQClCAEIBQFpBmNhbGxlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAEBHZvdGUJALUJAgUBcwUJc2VwYXJhdG9yBAl2b3RlVmFsdWUJAJEDAgUEdm90ZQABBAh2b3RlVHlwZQkAkQMCBQR2b3RlAAIEEWlzVm90ZVR5cGVTaW1pbGFyAwMDCQAAAgUIdm90ZVR5cGUCCGluY3JlYXNlCQAAAgUHaW5GYXZvcgABBwYDCQAAAgUIdm90ZVR5cGUCCGRlY3JlYXNlCQAAAgUHaW5GYXZvcgD///////////8BBwYDCQAAAgUIdm90ZVR5cGUCBG5vbmUJAAACBQdpbkZhdm9yAAAHBBJpc1ZvdGVWYWx1ZVNpbWlsYXIDBRFpc1ZvdGVUeXBlU2ltaWxhcgkAAAIJAQVhc0ludAEFCWd3eEFtb3VudAkBDXBhcnNlSW50VmFsdWUBBQl2b3RlVmFsdWUHBBBpc05ld1ZvdGVTaW1pbGFyAwMFEWlzVm90ZVR5cGVTaW1pbGFyBRJpc1ZvdGVWYWx1ZVNpbWlsYXIHCQEIdGhyb3dFcnIBAhF5b3UgYWxyZWFkeSB2b3RlZAkA/AcEBQR0aGlzAgpjYW5jZWxWb3RlBQNuaWwFA25pbAUQaXNOZXdWb3RlU2ltaWxhcgMJAAECBQckbWF0Y2gwAgRVbml0BAF1BQckbWF0Y2gwBQF1CQACAQILTWF0Y2ggZXJyb3IDCQAAAgUEdm90ZQUEdm90ZQQMdm90aW5nUmVzdWx0CQC1CQIJAQV2YWx1ZQEJAKIIAQkBD2tleVZvdGluZ1Jlc3VsdAAFCXNlcGFyYXRvcgQPdm90ZXNUb0luY3JlYXNlCQCRAwIFDHZvdGluZ1Jlc3VsdAABBAt2b3Rlc1RvTm9uZQkAkQMCBQx2b3RpbmdSZXN1bHQAAgQPdm90ZXNUb0RlY3JlYXNlCQCRAwIFDHZvdGluZ1Jlc3VsdAADBBtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMDCQAAAgUHaW5GYXZvcgABBBBuZXdQb3NpdGl2ZVZvdGVzCQBkAgkBDXBhcnNlSW50VmFsdWUBBQ92b3Rlc1RvSW5jcmVhc2UJAQVhc0ludAEFCWd3eEFtb3VudAkAzAgCCQCkAwEFEG5ld1Bvc2l0aXZlVm90ZXMJAMwIAgULdm90ZXNUb05vbmUJAMwIAgUPdm90ZXNUb0RlY3JlYXNlBQNuaWwDCQAAAgUHaW5GYXZvcgD///////////8BBBBuZXdOZWdhdGl2ZVZvdGVzCQBkAgkBDXBhcnNlSW50VmFsdWUBBQt2b3Rlc1RvTm9uZQkBBWFzSW50AQUJZ3d4QW1vdW50CQDMCAIFD3ZvdGVzVG9JbmNyZWFzZQkAzAgCBQt2b3Rlc1RvTm9uZQkAzAgCCQCkAwEFEG5ld05lZ2F0aXZlVm90ZXMFA25pbAQMbmV3Tm9uZVZvdGVzCQBkAgkBDXBhcnNlSW50VmFsdWUBBQt2b3Rlc1RvTm9uZQkBBWFzSW50AQUJZ3d4QW1vdW50CQDMCAIFD3ZvdGVzVG9JbmNyZWFzZQkAzAgCCQCkAwEFDG5ld05vbmVWb3RlcwkAzAgCBQ92b3Rlc1RvRGVjcmVhc2UFA25pbAQHdm90ZUtleQkBB2tleVZvdGUBCQClCAEIBQFpBmNhbGxlcgQJdm90ZVZhbHVlCQEMa2V5Vm90ZVZhbHVlAgkApAMBCQEFYXNJbnQBBQlnd3hBbW91bnQFB2luRmF2b3IJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5Vm90aW5nUmVzdWx0AAkBCnRvdGFsVm90ZXMDCQCRAwIFG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwAACQCRAwIFG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwABCQCRAwIFG25ld1Bvc2l0aXZlQW5kTmVnYXRpdmVWb3RlcwACCQDMCAIJAQtTdHJpbmdFbnRyeQIFB3ZvdGVLZXkFCXZvdGVWYWx1ZQUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNhbmNlbFZvdGUABAt1c2VyQWRkcmVzcwMJAAACCAUBaQZjYWxsZXIFBHRoaXMJAKUIAQgFAWkMb3JpZ2luQ2FsbGVyCQClCAEIBQFpBmNhbGxlcgQGY2hlY2tzCQDMCAIDCQEJaXNEZWZpbmVkAQkAoggBCQEPa2V5Vm90aW5nUmVzdWx0AAYJAQh0aHJvd0VycgECB25vIHZvdGUFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQEdm90ZQkAtQkCCQEFdmFsdWUBCQCiCAEJAQdrZXlWb3RlAQULdXNlckFkZHJlc3MFCXNlcGFyYXRvcgQJdm90ZVZhbHVlCQCRAwIFBHZvdGUAAQQIdm90ZVR5cGUJAJEDAgUEdm90ZQACBAx2b3RpbmdSZXN1bHQJALUJAgkBBXZhbHVlAQkAoggBCQEPa2V5Vm90aW5nUmVzdWx0AAUJc2VwYXJhdG9yBA92b3Rlc1RvSW5jcmVhc2UJAJEDAgUMdm90aW5nUmVzdWx0AAEEC3ZvdGVzVG9Ob25lCQCRAwIFDHZvdGluZ1Jlc3VsdAACBA92b3Rlc1RvRGVjcmVhc2UJAJEDAgUMdm90aW5nUmVzdWx0AAMEB2FjdGlvbnMDCQAAAgUIdm90ZVR5cGUCCGluY3JlYXNlBBBuZXdJbmNyZWFzZVZvdGVzCQBlAgkBDXBhcnNlSW50VmFsdWUBBQ92b3Rlc1RvSW5jcmVhc2UJAQ1wYXJzZUludFZhbHVlAQUJdm90ZVZhbHVlCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVZvdGluZ1Jlc3VsdAAJAQp0b3RhbFZvdGVzAwkApAMBBRBuZXdJbmNyZWFzZVZvdGVzBQt2b3Rlc1RvTm9uZQUPdm90ZXNUb0RlY3JlYXNlCQDMCAIJAQtEZWxldGVFbnRyeQEJAQdrZXlWb3RlAQULdXNlckFkZHJlc3MFA25pbAUEdW5pdAMJAAACBQh2b3RlVHlwZQIIZGVjcmVhc2UEEG5ld0RlY3JlYXNlVm90ZXMJAGUCCQENcGFyc2VJbnRWYWx1ZQEFD3ZvdGVzVG9EZWNyZWFzZQkBDXBhcnNlSW50VmFsdWUBBQl2b3RlVmFsdWUJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5Vm90aW5nUmVzdWx0AAkBCnRvdGFsVm90ZXMDBQ92b3Rlc1RvSW5jcmVhc2UFC3ZvdGVzVG9Ob25lCQCkAwEFEG5ld0RlY3JlYXNlVm90ZXMJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBB2tleVZvdGUBBQt1c2VyQWRkcmVzcwUDbmlsBQR1bml0BAxuZXdOb25lVm90ZXMJAGUCCQENcGFyc2VJbnRWYWx1ZQEFC3ZvdGVzVG9Ob25lCQENcGFyc2VJbnRWYWx1ZQEFCXZvdGVWYWx1ZQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlWb3RpbmdSZXN1bHQACQEKdG90YWxWb3RlcwMFD3ZvdGVzVG9JbmNyZWFzZQkApAMBBQxuZXdOb25lVm90ZXMFD3ZvdGVzVG9EZWNyZWFzZQkAzAgCCQELRGVsZXRlRW50cnkBCQEHa2V5Vm90ZQEFC3VzZXJBZGRyZXNzBQNuaWwFBHVuaXQFB2FjdGlvbnMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMc2V0VGhyZXNob2xkAQxuZXdUaHJlc2hvbGQEBmNoZWNrcwkAzAgCCQELbXVzdE1hbmFnZXIBBQFpCQDMCAIDCQBmAgUMbmV3VGhyZXNob2xkAAAGCQEIdGhyb3dFcnIBAhFpbnZhbGlkIHRocmVzaG9sZAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFDGtleVRocmVzaG9sZAUMbmV3VGhyZXNob2xkBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEIZmluYWxpemUABBJ2b3RpbmdGaW5pc2hIZWlnaHQJAGQCCQEFdmFsdWUBCQCfCAEJAQ5rZXlTdGFydEhlaWdodAAJAQV2YWx1ZQEJAJ8IAQUOa2V5RXBvY2hMZW5ndGgEBmNoZWNrcwkAzAgCAwkAZwIFBmhlaWdodAUSdm90aW5nRmluaXNoSGVpZ2h0BgkBCHRocm93RXJyAQIiaW5zdWZmaWNpZW50IGhlaWdodCBmb3IgY29tcGxldGlvbgUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAx2b3RpbmdSZXN1bHQJALUJAgkBBXZhbHVlAQkAoggBCQEPa2V5Vm90aW5nUmVzdWx0AAUJc2VwYXJhdG9yBA92b3Rlc1RvSW5jcmVhc2UJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQx2b3RpbmdSZXN1bHQAAQQLdm90ZXNUb05vbmUJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQx2b3RpbmdSZXN1bHQAAgQPdm90ZXNUb0RlY3JlYXNlCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUMdm90aW5nUmVzdWx0AAMECGFsbFZvdGVzCQBkAgkAZAIFD3ZvdGVzVG9JbmNyZWFzZQULdm90ZXNUb05vbmUFD3ZvdGVzVG9EZWNyZWFzZQQJdGhyZXNob2xkCQEMZ2V0SW50T3JGYWlsAQUMa2V5VGhyZXNob2xkBAskdDA5MDc1OTE1NQkBHGdldFJhdGVDaGFuZ2VBbW91bnRzSU5URVJOQUwABA1pbmNyZWFzZWRSYXRlCAULJHQwOTA3NTkxNTUCXzEEC2N1cnJlbnRSYXRlCAULJHQwOTA3NTkxNTUCXzIEDWRlY3JlYXNlZFJhdGUIBQskdDA5MDc1OTE1NQJfMwQJdm90ZXNMaXN0CQDMCAIFD3ZvdGVzVG9JbmNyZWFzZQkAzAgCBQt2b3Rlc1RvTm9uZQkAzAgCBQ92b3Rlc1RvRGVjcmVhc2UFA25pbAQHYWN0aW9ucwMJAGYCBQl0aHJlc2hvbGQFCGFsbFZvdGVzBQNuaWwDCQAAAgULdm90ZXNUb05vbmUJAJYDAQUJdm90ZXNMaXN0CQDMCAIJAQtTdHJpbmdFbnRyeQICA2ZvbwIETk9ORQkAzAgCCQEMSW50ZWdlckVudHJ5AgIDYmFyBQtjdXJyZW50UmF0ZQUDbmlsAwkAAAIFD3ZvdGVzVG9JbmNyZWFzZQkAlgMBBQl2b3Rlc0xpc3QJAMwIAgkBC1N0cmluZ0VudHJ5AgIDZm9vAgNJTkMJAMwIAgkBDEludGVnZXJFbnRyeQICA2JhcgUNaW5jcmVhc2VkUmF0ZQUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQICA2ZvbwIDREVDCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgNiYXIFDWRlY3JlYXNlZFJhdGUFA25pbAkAzggCBQdhY3Rpb25zCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOa2V5U3RhcnRIZWlnaHQABQZoZWlnaHQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgDYHhAl", "height": 2581734, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6HAYEmA4ZGBVsGuw6R1KU3YyEyXRLTfK1G5S5TnkVVtM Next: 7ZVgY8jEJDCALb44jGL7Varwv6yL21rwCsaATfF7SH6g Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
6-let b = makeString(["%s", "epochLength"], a)
6+let b = "voting_emission_rate.ride"
77
8-let c = makeString(["%s", "emissionContract"], a)
8+let c = makeString(["%s", "epochLength"], a)
99
10-let d = makeString(["%s", "boostingContract"], a)
10+let d = makeString(["%s", "emissionContract"], a)
1111
12-let e = makeString(["%s", "votingThreshold"], a)
12+let e = makeString(["%s", "boostingContract"], a)
1313
14-let f = makeString(["%s%s", "ratePerBlock", "current"], a)
14+let f = makeString(["%s", "votingThreshold"], a)
1515
16-let g = makeString(["%s%s", "ratePerBlockMax", "current"], a)
16+let g = makeString(["%s%s", "ratePerBlock", "current"], a)
1717
18-let h = makeString(["%s", "rateChangeStep"], a)
18+let h = makeString(["%s%s", "ratePerBlockMax", "current"], a)
1919
20-func i (j) = valueOrErrorMessage(getString(this, j), (j + " is not defined"))
20+let i = makeString(["%s", "rateChangeStep"], a)
21+
22+func j (k) = throw(((b + ": ") + k))
2123
2224
23-func k (j) = valueOrErrorMessage(getInteger(this, j), (j + " is not defined"))
25+func l (m) = valueOrErrorMessage(getString(this, m), (m + " is not defined"))
2426
2527
26-func l () = makeString(["%s", "startHeight"], a)
28+func n (m) = valueOrErrorMessage(getInteger(this, m), (m + " is not defined"))
2729
2830
29-func m () = makeString(["%s", "votingResult"], a)
31+func o () = makeString(["%s", "startHeight"], a)
3032
3133
32-func n (o,p,q) = makeString(["%d%d%d", o, p, q], a)
34+func p () = makeString(["%s", "votingResult"], a)
3335
3436
35-func r (s) = makeString(["%s%s", "vote", s], a)
37+func q (r,s,t) = makeString(["%d%d%d", r, s, t], a)
3638
3739
38-func t (u,v) = {
39- let j = if ((v == 1))
40- then makeString(["%d%s", u, "increase"], a)
41- else if ((v == -1))
42- then makeString(["%d%s", u, "decrease"], a)
43- else makeString(["%d%s", u, "none"], a)
44- j
40+func u (v) = makeString(["%s%s", "vote", v], a)
41+
42+
43+func w (x,y) = {
44+ let m = if ((y == 1))
45+ then makeString(["%d%s", x, "increase"], a)
46+ else if ((y == -1))
47+ then makeString(["%d%s", x, "decrease"], a)
48+ else makeString(["%d%s", x, "none"], a)
49+ m
4550 }
4651
4752
48-let w = addressFromStringValue(i(d))
53+let z = addressFromStringValue(l(e))
4954
50-let x = addressFromStringValue(i(c))
55+let A = addressFromStringValue(l(d))
5156
52-func y () = "%s__managerPublicKey"
57+func B () = "%s__managerPublicKey"
5358
5459
55-func z () = "%s__managerVaultAddress"
60+func C () = "%s__managerVaultAddress"
5661
5762
58-func A () = {
59- let B = getString(z())
60- if ($isInstanceOf(B, "String"))
63+func D () = {
64+ let E = getString(C())
65+ if ($isInstanceOf(E, "String"))
6166 then {
62- let C = B
63- addressFromStringValue(C)
67+ let k = E
68+ addressFromStringValue(k)
6469 }
6570 else this
6671 }
6772
6873
69-func D () = {
70- let E = A()
71- let B = getString(E, y())
72- if ($isInstanceOf(B, "String"))
74+func F () = {
75+ let G = D()
76+ let E = getString(G, B())
77+ if ($isInstanceOf(E, "String"))
7378 then {
74- let C = B
75- fromBase58String(C)
79+ let k = E
80+ fromBase58String(k)
7681 }
77- else if ($isInstanceOf(B, "Unit"))
82+ else if ($isInstanceOf(E, "Unit"))
7883 then unit
7984 else throw("Match error")
8085 }
8186
8287
83-func F (G) = {
84- let B = D()
85- if ($isInstanceOf(B, "ByteVector"))
88+func H (I) = {
89+ let E = F()
90+ if ($isInstanceOf(E, "ByteVector"))
8691 then {
87- let H = B
88- (G.callerPublicKey == H)
92+ let J = E
93+ (I.callerPublicKey == J)
8994 }
90- else if ($isInstanceOf(B, "Unit"))
91- then (G.caller == this)
95+ else if ($isInstanceOf(E, "Unit"))
96+ then (I.caller == this)
9297 else throw("Match error")
9398 }
9499
95100
96-func I (G) = if (F(G))
101+func K (I) = if (H(I))
97102 then true
98- else throw("permission denied")
103+ else j("permission denied")
99104
100105
101-func J (K) = {
102- let B = K
103- if ($isInstanceOf(B, "Int"))
106+func L (M) = {
107+ let E = M
108+ if ($isInstanceOf(E, "Int"))
104109 then {
105- let L = B
106- L
110+ let N = E
111+ N
107112 }
108- else throw("failed to cast into Integer")
113+ else j("failed to cast into Integer")
109114 }
110115
111116
112-func M (N,O,P) = {
113- let Q = fraction(100, N, 120)
114- let R = min([fraction((100 + P), O, 100), Q])
115- let S = max([fraction((100 - P), O, 100), 0])
116- $Tuple3(R, O, S)
117+func O (P,Q,R) = {
118+ let S = fraction(100, P, 120)
119+ let T = min([fraction((100 + R), Q, 100), S])
120+ let U = max([fraction((100 - R), Q, 100), 0])
121+ $Tuple3(T, Q, U)
117122 }
118123
119124
120-func T () = {
121- let N = getIntegerValue(x, g)
122- let O = getIntegerValue(x, f)
123- let U = getIntegerValue(this, h)
124- M(N, O, U)
125+func V () = {
126+ let P = getIntegerValue(A, h)
127+ let Q = getIntegerValue(A, g)
128+ let W = getIntegerValue(this, i)
129+ O(P, Q, W)
125130 }
126131
127132
128-@Callable(G)
129-func constructor (V,W,X,Y,U) = {
130- let Z = [if (isDefined(addressFromString(V)))
133+@Callable(I)
134+func constructor (X,Y,Z,aa,W) = {
135+ let ab = [if (isDefined(addressFromString(X)))
131136 then true
132- else throw("Invalid boosting contract address"), if (isDefined(addressFromString(W)))
137+ else j("Invalid boosting contract address"), if (isDefined(addressFromString(Y)))
133138 then true
134- else throw("Invalid emission contract address"), if ((X > 0))
139+ else j("Invalid emission contract address"), if ((Z > 0))
135140 then true
136- else throw("Invalid voting duration"), if ((Y > 0))
141+ else j("Invalid voting duration"), if ((aa > 0))
137142 then true
138- else throw("invalid threshold"), if ((U > 0))
143+ else j("invalid threshold"), if ((W > 0))
139144 then true
140- else throw("invalid rateChangeStep")]
141- if ((Z == Z))
142- then $Tuple2([StringEntry(d, V), StringEntry(c, W), IntegerEntry(b, X), IntegerEntry(e, Y), IntegerEntry(h, U), IntegerEntry(l(), height), StringEntry(m(), n("0", "0", "0"))], unit)
145+ else j("invalid rateChangeStep")]
146+ if ((ab == ab))
147+ then $Tuple2([StringEntry(e, X), StringEntry(d, Y), IntegerEntry(c, Z), IntegerEntry(f, aa), IntegerEntry(i, W), IntegerEntry(o(), height), StringEntry(p(), q("0", "0", "0"))], unit)
143148 else throw("Strict value is not equal to itself.")
144149 }
145150
146151
147152
148-@Callable(G)
149-func getRateChangeAmountsREADONLY () = $Tuple2(nil, T())
153+@Callable(I)
154+func getRateChangeAmountsREADONLY () = $Tuple2(nil, V())
150155
151156
152157
153-@Callable(G)
154-func vote (aa) = {
155- let ab = (value(getInteger(l())) + value(getInteger(b)))
156- let Z = [if ((ab > height))
158+@Callable(I)
159+func vote (ac) = {
160+ let ad = (value(getInteger(o())) + value(getInteger(c)))
161+ let ab = [if ((ad > height))
157162 then true
158- else throw("too late to vote"), if (containsElement([1, 0, -1], aa))
163+ else j("too late to vote"), if (containsElement([1, 0, -1], ac))
159164 then true
160- else throw("not valid argument")]
161- if ((Z == Z))
165+ else j("not valid argument")]
166+ if ((ab == ab))
162167 then {
163- let u = invoke(w, "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), ab], nil)
164- let ac = if ((J(u) > 0))
168+ let x = invoke(z, "getUserGwxAmountAtHeightREADONLY", [toString(I.caller), ad], nil)
169+ let ae = if ((L(x) > 0))
165170 then true
166- else throw("you don't have gwx")
167- if ((ac == ac))
171+ else j("you don't have gwx")
172+ if ((ae == ae))
168173 then {
169- let v = {
170- let B = getString(r(toString(G.caller)))
171- if ($isInstanceOf(B, "String"))
174+ let y = {
175+ let E = getString(u(toString(I.caller)))
176+ if ($isInstanceOf(E, "String"))
172177 then {
173- let C = B
174- let v = split(C, a)
175- let ad = v[1]
176- let ae = v[2]
177- let af = if (if (if ((ae == "increase"))
178- then (aa == 1)
178+ let k = E
179+ let y = split(k, a)
180+ let af = y[1]
181+ let ag = y[2]
182+ let ah = if (if (if ((ag == "increase"))
183+ then (ac == 1)
179184 else false)
180185 then true
181- else if ((ae == "decrease"))
182- then (aa == -1)
186+ else if ((ag == "decrease"))
187+ then (ac == -1)
183188 else false)
184189 then true
185- else if ((ae == "none"))
186- then (aa == 0)
190+ else if ((ag == "none"))
191+ then (ac == 0)
187192 else false
188- let ag = if (af)
189- then (J(u) == parseIntValue(ad))
193+ let ai = if (ah)
194+ then (L(x) == parseIntValue(af))
190195 else false
191- let ah = if (if (af)
192- then ag
196+ let aj = if (if (ah)
197+ then ai
193198 else false)
194- then throw("you already voted")
199+ then j("you already voted")
195200 else invoke(this, "cancelVote", nil, nil)
196- ah
201+ aj
197202 }
198- else if ($isInstanceOf(B, "Unit"))
203+ else if ($isInstanceOf(E, "Unit"))
199204 then {
200- let ai = B
201- ai
205+ let ak = E
206+ ak
202207 }
203208 else throw("Match error")
204209 }
205- if ((v == v))
210+ if ((y == y))
206211 then {
207- let aj = split(value(getString(m())), a)
208- let ak = aj[1]
209- let al = aj[2]
210- let am = aj[3]
211- let an = if ((aa == 1))
212+ let al = split(value(getString(p())), a)
213+ let am = al[1]
214+ let an = al[2]
215+ let ao = al[3]
216+ let ap = if ((ac == 1))
212217 then {
213- let ao = (parseIntValue(ak) + J(u))
214-[toString(ao), al, am]
218+ let aq = (parseIntValue(am) + L(x))
219+[toString(aq), an, ao]
215220 }
216- else if ((aa == -1))
221+ else if ((ac == -1))
217222 then {
218- let ap = (parseIntValue(al) + J(u))
219-[ak, al, toString(ap)]
223+ let ar = (parseIntValue(an) + L(x))
224+[am, an, toString(ar)]
220225 }
221226 else {
222- let aq = (parseIntValue(al) + J(u))
223-[ak, toString(aq), am]
227+ let as = (parseIntValue(an) + L(x))
228+[am, toString(as), ao]
224229 }
225- let ar = r(toString(G.caller))
226- let ad = t(toString(J(u)), aa)
227- $Tuple2([StringEntry(m(), n(an[0], an[1], an[2])), StringEntry(ar, ad)], unit)
230+ let at = u(toString(I.caller))
231+ let af = w(toString(L(x)), ac)
232+ $Tuple2([StringEntry(p(), q(ap[0], ap[1], ap[2])), StringEntry(at, af)], unit)
228233 }
229234 else throw("Strict value is not equal to itself.")
230235 }
235240
236241
237242
238-@Callable(G)
243+@Callable(I)
239244 func cancelVote () = {
240- let as = if ((G.caller == this))
241- then toString(G.originCaller)
242- else toString(G.caller)
243- let Z = [if (isDefined(getString(m())))
245+ let au = if ((I.caller == this))
246+ then toString(I.originCaller)
247+ else toString(I.caller)
248+ let ab = [if (isDefined(getString(p())))
244249 then true
245- else throw("no vote")]
246- if ((Z == Z))
250+ else j("no vote")]
251+ if ((ab == ab))
247252 then {
248- let v = split(value(getString(r(as))), a)
249- let ad = v[1]
250- let ae = v[2]
251- let aj = split(value(getString(m())), a)
252- let ak = aj[1]
253- let al = aj[2]
254- let am = aj[3]
255- let at = if ((ae == "increase"))
253+ let y = split(value(getString(u(au))), a)
254+ let af = y[1]
255+ let ag = y[2]
256+ let al = split(value(getString(p())), a)
257+ let am = al[1]
258+ let an = al[2]
259+ let ao = al[3]
260+ let av = if ((ag == "increase"))
256261 then {
257- let au = (parseIntValue(ak) - parseIntValue(ad))
258- $Tuple2([StringEntry(m(), n(toString(au), al, am)), DeleteEntry(r(as))], unit)
262+ let aw = (parseIntValue(am) - parseIntValue(af))
263+ $Tuple2([StringEntry(p(), q(toString(aw), an, ao)), DeleteEntry(u(au))], unit)
259264 }
260- else if ((ae == "decrease"))
265+ else if ((ag == "decrease"))
261266 then {
262- let av = (parseIntValue(am) - parseIntValue(ad))
263- $Tuple2([StringEntry(m(), n(ak, al, toString(av))), DeleteEntry(r(as))], unit)
267+ let ax = (parseIntValue(ao) - parseIntValue(af))
268+ $Tuple2([StringEntry(p(), q(am, an, toString(ax))), DeleteEntry(u(au))], unit)
264269 }
265270 else {
266- let aq = (parseIntValue(al) - parseIntValue(ad))
267- $Tuple2([StringEntry(m(), n(ak, toString(aq), am)), DeleteEntry(r(as))], unit)
271+ let as = (parseIntValue(an) - parseIntValue(af))
272+ $Tuple2([StringEntry(p(), q(am, toString(as), ao)), DeleteEntry(u(au))], unit)
268273 }
269- at
274+ av
270275 }
271276 else throw("Strict value is not equal to itself.")
272277 }
273278
274279
275280
276-@Callable(G)
277-func setThreshold (aw) = {
278- let Z = [I(G), if ((aw > 0))
281+@Callable(I)
282+func setThreshold (ay) = {
283+ let ab = [K(I), if ((ay > 0))
279284 then true
280- else throw("invalid threshold")]
281- if ((Z == Z))
282- then $Tuple2([IntegerEntry(e, aw)], unit)
285+ else j("invalid threshold")]
286+ if ((ab == ab))
287+ then $Tuple2([IntegerEntry(f, ay)], unit)
283288 else throw("Strict value is not equal to itself.")
284289 }
285290
286291
287292
288-@Callable(G)
293+@Callable(I)
289294 func finalize () = {
290- let ab = (value(getInteger(l())) + value(getInteger(b)))
291- let Z = [if ((height >= ab))
295+ let ad = (value(getInteger(o())) + value(getInteger(c)))
296+ let ab = [if ((height >= ad))
292297 then true
293- else throw("insufficient height for completion")]
294- if ((Z == Z))
298+ else j("insufficient height for completion")]
299+ if ((ab == ab))
295300 then {
296- let aj = split(value(getString(m())), a)
297- let ak = parseIntValue(aj[1])
298- let al = parseIntValue(aj[2])
299- let am = parseIntValue(aj[3])
300- let ax = ((ak + al) + am)
301- let Y = k(e)
302- let ay = T()
303- let R = ay._1
304- let az = ay._2
305- let S = ay._3
306- let aA = [ak, al, am]
307- let at = if ((Y > ax))
301+ let al = split(value(getString(p())), a)
302+ let am = parseIntValue(al[1])
303+ let an = parseIntValue(al[2])
304+ let ao = parseIntValue(al[3])
305+ let az = ((am + an) + ao)
306+ let aa = n(f)
307+ let aA = V()
308+ let T = aA._1
309+ let aB = aA._2
310+ let U = aA._3
311+ let aC = [am, an, ao]
312+ let av = if ((aa > az))
308313 then nil
309- else if ((al == max(aA)))
310- then [StringEntry("foo", "NONE")]
311- else if ((ak == max(aA)))
312- then [StringEntry("foo", "INC")]
313- else [StringEntry("foo", "DEC")]
314- (at ++ [IntegerEntry(l(), height)])
314+ else if ((an == max(aC)))
315+ then [StringEntry("foo", "NONE"), IntegerEntry("bar", aB)]
316+ else if ((am == max(aC)))
317+ then [StringEntry("foo", "INC"), IntegerEntry("bar", T)]
318+ else [StringEntry("foo", "DEC"), IntegerEntry("bar", U)]
319+ (av ++ [IntegerEntry(o(), height)])
315320 }
316321 else throw("Strict value is not equal to itself.")
317322 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
6-let b = makeString(["%s", "epochLength"], a)
6+let b = "voting_emission_rate.ride"
77
8-let c = makeString(["%s", "emissionContract"], a)
8+let c = makeString(["%s", "epochLength"], a)
99
10-let d = makeString(["%s", "boostingContract"], a)
10+let d = makeString(["%s", "emissionContract"], a)
1111
12-let e = makeString(["%s", "votingThreshold"], a)
12+let e = makeString(["%s", "boostingContract"], a)
1313
14-let f = makeString(["%s%s", "ratePerBlock", "current"], a)
14+let f = makeString(["%s", "votingThreshold"], a)
1515
16-let g = makeString(["%s%s", "ratePerBlockMax", "current"], a)
16+let g = makeString(["%s%s", "ratePerBlock", "current"], a)
1717
18-let h = makeString(["%s", "rateChangeStep"], a)
18+let h = makeString(["%s%s", "ratePerBlockMax", "current"], a)
1919
20-func i (j) = valueOrErrorMessage(getString(this, j), (j + " is not defined"))
20+let i = makeString(["%s", "rateChangeStep"], a)
21+
22+func j (k) = throw(((b + ": ") + k))
2123
2224
23-func k (j) = valueOrErrorMessage(getInteger(this, j), (j + " is not defined"))
25+func l (m) = valueOrErrorMessage(getString(this, m), (m + " is not defined"))
2426
2527
26-func l () = makeString(["%s", "startHeight"], a)
28+func n (m) = valueOrErrorMessage(getInteger(this, m), (m + " is not defined"))
2729
2830
29-func m () = makeString(["%s", "votingResult"], a)
31+func o () = makeString(["%s", "startHeight"], a)
3032
3133
32-func n (o,p,q) = makeString(["%d%d%d", o, p, q], a)
34+func p () = makeString(["%s", "votingResult"], a)
3335
3436
35-func r (s) = makeString(["%s%s", "vote", s], a)
37+func q (r,s,t) = makeString(["%d%d%d", r, s, t], a)
3638
3739
38-func t (u,v) = {
39- let j = if ((v == 1))
40- then makeString(["%d%s", u, "increase"], a)
41- else if ((v == -1))
42- then makeString(["%d%s", u, "decrease"], a)
43- else makeString(["%d%s", u, "none"], a)
44- j
40+func u (v) = makeString(["%s%s", "vote", v], a)
41+
42+
43+func w (x,y) = {
44+ let m = if ((y == 1))
45+ then makeString(["%d%s", x, "increase"], a)
46+ else if ((y == -1))
47+ then makeString(["%d%s", x, "decrease"], a)
48+ else makeString(["%d%s", x, "none"], a)
49+ m
4550 }
4651
4752
48-let w = addressFromStringValue(i(d))
53+let z = addressFromStringValue(l(e))
4954
50-let x = addressFromStringValue(i(c))
55+let A = addressFromStringValue(l(d))
5156
52-func y () = "%s__managerPublicKey"
57+func B () = "%s__managerPublicKey"
5358
5459
55-func z () = "%s__managerVaultAddress"
60+func C () = "%s__managerVaultAddress"
5661
5762
58-func A () = {
59- let B = getString(z())
60- if ($isInstanceOf(B, "String"))
63+func D () = {
64+ let E = getString(C())
65+ if ($isInstanceOf(E, "String"))
6166 then {
62- let C = B
63- addressFromStringValue(C)
67+ let k = E
68+ addressFromStringValue(k)
6469 }
6570 else this
6671 }
6772
6873
69-func D () = {
70- let E = A()
71- let B = getString(E, y())
72- if ($isInstanceOf(B, "String"))
74+func F () = {
75+ let G = D()
76+ let E = getString(G, B())
77+ if ($isInstanceOf(E, "String"))
7378 then {
74- let C = B
75- fromBase58String(C)
79+ let k = E
80+ fromBase58String(k)
7681 }
77- else if ($isInstanceOf(B, "Unit"))
82+ else if ($isInstanceOf(E, "Unit"))
7883 then unit
7984 else throw("Match error")
8085 }
8186
8287
83-func F (G) = {
84- let B = D()
85- if ($isInstanceOf(B, "ByteVector"))
88+func H (I) = {
89+ let E = F()
90+ if ($isInstanceOf(E, "ByteVector"))
8691 then {
87- let H = B
88- (G.callerPublicKey == H)
92+ let J = E
93+ (I.callerPublicKey == J)
8994 }
90- else if ($isInstanceOf(B, "Unit"))
91- then (G.caller == this)
95+ else if ($isInstanceOf(E, "Unit"))
96+ then (I.caller == this)
9297 else throw("Match error")
9398 }
9499
95100
96-func I (G) = if (F(G))
101+func K (I) = if (H(I))
97102 then true
98- else throw("permission denied")
103+ else j("permission denied")
99104
100105
101-func J (K) = {
102- let B = K
103- if ($isInstanceOf(B, "Int"))
106+func L (M) = {
107+ let E = M
108+ if ($isInstanceOf(E, "Int"))
104109 then {
105- let L = B
106- L
110+ let N = E
111+ N
107112 }
108- else throw("failed to cast into Integer")
113+ else j("failed to cast into Integer")
109114 }
110115
111116
112-func M (N,O,P) = {
113- let Q = fraction(100, N, 120)
114- let R = min([fraction((100 + P), O, 100), Q])
115- let S = max([fraction((100 - P), O, 100), 0])
116- $Tuple3(R, O, S)
117+func O (P,Q,R) = {
118+ let S = fraction(100, P, 120)
119+ let T = min([fraction((100 + R), Q, 100), S])
120+ let U = max([fraction((100 - R), Q, 100), 0])
121+ $Tuple3(T, Q, U)
117122 }
118123
119124
120-func T () = {
121- let N = getIntegerValue(x, g)
122- let O = getIntegerValue(x, f)
123- let U = getIntegerValue(this, h)
124- M(N, O, U)
125+func V () = {
126+ let P = getIntegerValue(A, h)
127+ let Q = getIntegerValue(A, g)
128+ let W = getIntegerValue(this, i)
129+ O(P, Q, W)
125130 }
126131
127132
128-@Callable(G)
129-func constructor (V,W,X,Y,U) = {
130- let Z = [if (isDefined(addressFromString(V)))
133+@Callable(I)
134+func constructor (X,Y,Z,aa,W) = {
135+ let ab = [if (isDefined(addressFromString(X)))
131136 then true
132- else throw("Invalid boosting contract address"), if (isDefined(addressFromString(W)))
137+ else j("Invalid boosting contract address"), if (isDefined(addressFromString(Y)))
133138 then true
134- else throw("Invalid emission contract address"), if ((X > 0))
139+ else j("Invalid emission contract address"), if ((Z > 0))
135140 then true
136- else throw("Invalid voting duration"), if ((Y > 0))
141+ else j("Invalid voting duration"), if ((aa > 0))
137142 then true
138- else throw("invalid threshold"), if ((U > 0))
143+ else j("invalid threshold"), if ((W > 0))
139144 then true
140- else throw("invalid rateChangeStep")]
141- if ((Z == Z))
142- then $Tuple2([StringEntry(d, V), StringEntry(c, W), IntegerEntry(b, X), IntegerEntry(e, Y), IntegerEntry(h, U), IntegerEntry(l(), height), StringEntry(m(), n("0", "0", "0"))], unit)
145+ else j("invalid rateChangeStep")]
146+ if ((ab == ab))
147+ then $Tuple2([StringEntry(e, X), StringEntry(d, Y), IntegerEntry(c, Z), IntegerEntry(f, aa), IntegerEntry(i, W), IntegerEntry(o(), height), StringEntry(p(), q("0", "0", "0"))], unit)
143148 else throw("Strict value is not equal to itself.")
144149 }
145150
146151
147152
148-@Callable(G)
149-func getRateChangeAmountsREADONLY () = $Tuple2(nil, T())
153+@Callable(I)
154+func getRateChangeAmountsREADONLY () = $Tuple2(nil, V())
150155
151156
152157
153-@Callable(G)
154-func vote (aa) = {
155- let ab = (value(getInteger(l())) + value(getInteger(b)))
156- let Z = [if ((ab > height))
158+@Callable(I)
159+func vote (ac) = {
160+ let ad = (value(getInteger(o())) + value(getInteger(c)))
161+ let ab = [if ((ad > height))
157162 then true
158- else throw("too late to vote"), if (containsElement([1, 0, -1], aa))
163+ else j("too late to vote"), if (containsElement([1, 0, -1], ac))
159164 then true
160- else throw("not valid argument")]
161- if ((Z == Z))
165+ else j("not valid argument")]
166+ if ((ab == ab))
162167 then {
163- let u = invoke(w, "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), ab], nil)
164- let ac = if ((J(u) > 0))
168+ let x = invoke(z, "getUserGwxAmountAtHeightREADONLY", [toString(I.caller), ad], nil)
169+ let ae = if ((L(x) > 0))
165170 then true
166- else throw("you don't have gwx")
167- if ((ac == ac))
171+ else j("you don't have gwx")
172+ if ((ae == ae))
168173 then {
169- let v = {
170- let B = getString(r(toString(G.caller)))
171- if ($isInstanceOf(B, "String"))
174+ let y = {
175+ let E = getString(u(toString(I.caller)))
176+ if ($isInstanceOf(E, "String"))
172177 then {
173- let C = B
174- let v = split(C, a)
175- let ad = v[1]
176- let ae = v[2]
177- let af = if (if (if ((ae == "increase"))
178- then (aa == 1)
178+ let k = E
179+ let y = split(k, a)
180+ let af = y[1]
181+ let ag = y[2]
182+ let ah = if (if (if ((ag == "increase"))
183+ then (ac == 1)
179184 else false)
180185 then true
181- else if ((ae == "decrease"))
182- then (aa == -1)
186+ else if ((ag == "decrease"))
187+ then (ac == -1)
183188 else false)
184189 then true
185- else if ((ae == "none"))
186- then (aa == 0)
190+ else if ((ag == "none"))
191+ then (ac == 0)
187192 else false
188- let ag = if (af)
189- then (J(u) == parseIntValue(ad))
193+ let ai = if (ah)
194+ then (L(x) == parseIntValue(af))
190195 else false
191- let ah = if (if (af)
192- then ag
196+ let aj = if (if (ah)
197+ then ai
193198 else false)
194- then throw("you already voted")
199+ then j("you already voted")
195200 else invoke(this, "cancelVote", nil, nil)
196- ah
201+ aj
197202 }
198- else if ($isInstanceOf(B, "Unit"))
203+ else if ($isInstanceOf(E, "Unit"))
199204 then {
200- let ai = B
201- ai
205+ let ak = E
206+ ak
202207 }
203208 else throw("Match error")
204209 }
205- if ((v == v))
210+ if ((y == y))
206211 then {
207- let aj = split(value(getString(m())), a)
208- let ak = aj[1]
209- let al = aj[2]
210- let am = aj[3]
211- let an = if ((aa == 1))
212+ let al = split(value(getString(p())), a)
213+ let am = al[1]
214+ let an = al[2]
215+ let ao = al[3]
216+ let ap = if ((ac == 1))
212217 then {
213- let ao = (parseIntValue(ak) + J(u))
214-[toString(ao), al, am]
218+ let aq = (parseIntValue(am) + L(x))
219+[toString(aq), an, ao]
215220 }
216- else if ((aa == -1))
221+ else if ((ac == -1))
217222 then {
218- let ap = (parseIntValue(al) + J(u))
219-[ak, al, toString(ap)]
223+ let ar = (parseIntValue(an) + L(x))
224+[am, an, toString(ar)]
220225 }
221226 else {
222- let aq = (parseIntValue(al) + J(u))
223-[ak, toString(aq), am]
227+ let as = (parseIntValue(an) + L(x))
228+[am, toString(as), ao]
224229 }
225- let ar = r(toString(G.caller))
226- let ad = t(toString(J(u)), aa)
227- $Tuple2([StringEntry(m(), n(an[0], an[1], an[2])), StringEntry(ar, ad)], unit)
230+ let at = u(toString(I.caller))
231+ let af = w(toString(L(x)), ac)
232+ $Tuple2([StringEntry(p(), q(ap[0], ap[1], ap[2])), StringEntry(at, af)], unit)
228233 }
229234 else throw("Strict value is not equal to itself.")
230235 }
231236 else throw("Strict value is not equal to itself.")
232237 }
233238 else throw("Strict value is not equal to itself.")
234239 }
235240
236241
237242
238-@Callable(G)
243+@Callable(I)
239244 func cancelVote () = {
240- let as = if ((G.caller == this))
241- then toString(G.originCaller)
242- else toString(G.caller)
243- let Z = [if (isDefined(getString(m())))
245+ let au = if ((I.caller == this))
246+ then toString(I.originCaller)
247+ else toString(I.caller)
248+ let ab = [if (isDefined(getString(p())))
244249 then true
245- else throw("no vote")]
246- if ((Z == Z))
250+ else j("no vote")]
251+ if ((ab == ab))
247252 then {
248- let v = split(value(getString(r(as))), a)
249- let ad = v[1]
250- let ae = v[2]
251- let aj = split(value(getString(m())), a)
252- let ak = aj[1]
253- let al = aj[2]
254- let am = aj[3]
255- let at = if ((ae == "increase"))
253+ let y = split(value(getString(u(au))), a)
254+ let af = y[1]
255+ let ag = y[2]
256+ let al = split(value(getString(p())), a)
257+ let am = al[1]
258+ let an = al[2]
259+ let ao = al[3]
260+ let av = if ((ag == "increase"))
256261 then {
257- let au = (parseIntValue(ak) - parseIntValue(ad))
258- $Tuple2([StringEntry(m(), n(toString(au), al, am)), DeleteEntry(r(as))], unit)
262+ let aw = (parseIntValue(am) - parseIntValue(af))
263+ $Tuple2([StringEntry(p(), q(toString(aw), an, ao)), DeleteEntry(u(au))], unit)
259264 }
260- else if ((ae == "decrease"))
265+ else if ((ag == "decrease"))
261266 then {
262- let av = (parseIntValue(am) - parseIntValue(ad))
263- $Tuple2([StringEntry(m(), n(ak, al, toString(av))), DeleteEntry(r(as))], unit)
267+ let ax = (parseIntValue(ao) - parseIntValue(af))
268+ $Tuple2([StringEntry(p(), q(am, an, toString(ax))), DeleteEntry(u(au))], unit)
264269 }
265270 else {
266- let aq = (parseIntValue(al) - parseIntValue(ad))
267- $Tuple2([StringEntry(m(), n(ak, toString(aq), am)), DeleteEntry(r(as))], unit)
271+ let as = (parseIntValue(an) - parseIntValue(af))
272+ $Tuple2([StringEntry(p(), q(am, toString(as), ao)), DeleteEntry(u(au))], unit)
268273 }
269- at
274+ av
270275 }
271276 else throw("Strict value is not equal to itself.")
272277 }
273278
274279
275280
276-@Callable(G)
277-func setThreshold (aw) = {
278- let Z = [I(G), if ((aw > 0))
281+@Callable(I)
282+func setThreshold (ay) = {
283+ let ab = [K(I), if ((ay > 0))
279284 then true
280- else throw("invalid threshold")]
281- if ((Z == Z))
282- then $Tuple2([IntegerEntry(e, aw)], unit)
285+ else j("invalid threshold")]
286+ if ((ab == ab))
287+ then $Tuple2([IntegerEntry(f, ay)], unit)
283288 else throw("Strict value is not equal to itself.")
284289 }
285290
286291
287292
288-@Callable(G)
293+@Callable(I)
289294 func finalize () = {
290- let ab = (value(getInteger(l())) + value(getInteger(b)))
291- let Z = [if ((height >= ab))
295+ let ad = (value(getInteger(o())) + value(getInteger(c)))
296+ let ab = [if ((height >= ad))
292297 then true
293- else throw("insufficient height for completion")]
294- if ((Z == Z))
298+ else j("insufficient height for completion")]
299+ if ((ab == ab))
295300 then {
296- let aj = split(value(getString(m())), a)
297- let ak = parseIntValue(aj[1])
298- let al = parseIntValue(aj[2])
299- let am = parseIntValue(aj[3])
300- let ax = ((ak + al) + am)
301- let Y = k(e)
302- let ay = T()
303- let R = ay._1
304- let az = ay._2
305- let S = ay._3
306- let aA = [ak, al, am]
307- let at = if ((Y > ax))
301+ let al = split(value(getString(p())), a)
302+ let am = parseIntValue(al[1])
303+ let an = parseIntValue(al[2])
304+ let ao = parseIntValue(al[3])
305+ let az = ((am + an) + ao)
306+ let aa = n(f)
307+ let aA = V()
308+ let T = aA._1
309+ let aB = aA._2
310+ let U = aA._3
311+ let aC = [am, an, ao]
312+ let av = if ((aa > az))
308313 then nil
309- else if ((al == max(aA)))
310- then [StringEntry("foo", "NONE")]
311- else if ((ak == max(aA)))
312- then [StringEntry("foo", "INC")]
313- else [StringEntry("foo", "DEC")]
314- (at ++ [IntegerEntry(l(), height)])
314+ else if ((an == max(aC)))
315+ then [StringEntry("foo", "NONE"), IntegerEntry("bar", aB)]
316+ else if ((am == max(aC)))
317+ then [StringEntry("foo", "INC"), IntegerEntry("bar", T)]
318+ else [StringEntry("foo", "DEC"), IntegerEntry("bar", U)]
319+ (av ++ [IntegerEntry(o(), height)])
315320 }
316321 else throw("Strict value is not equal to itself.")
317322 }
318323
319324

github/deemru/w8io/169f3d6 
150.07 ms