tx · 8rvLBMe4H7H1KYnkRLw6wCCTPSGzADDoMX6DVNnx3No4

3N4yYqBkTUq1mDdHhvAd3St7spCbm84DytS:  -0.01600000 Waves

2023.07.28 09:51 [2685375] smart account 3N4yYqBkTUq1mDdHhvAd3St7spCbm84DytS > SELF 0.00000000 Waves

{ "type": 13, "id": "8rvLBMe4H7H1KYnkRLw6wCCTPSGzADDoMX6DVNnx3No4", "fee": 1600000, "feeAssetId": null, "timestamp": 1690527057491, "version": 2, "chainId": 84, "sender": "3N4yYqBkTUq1mDdHhvAd3St7spCbm84DytS", "senderPublicKey": "8h7G4haeVwXKNHXNHsWkC1miUp5CQtk3WmpBKazQPxRh", "proofs": [ "4FLntaXcufrodNVb6CR81ERBboqJwTEryUQfDaHcot3k78JEWEUn99zRZRU5iDmroT99XEcjsSuuAdVxXaRkN5UV" ], "script": "base64:BgIfCAISAwoBARIAEgMKAQgSAwoBARIDCgEIEgASAwoBCDIADGNvbnRyYWN0RmlsZQIRbDJtcF9zdGFraW5nLnJpZGUAA1NFUAICX18ABnNjYWxlOACAwtcvAAdzY2FsZTE4AICAkLu61q3wDQANc2NhbGUxOEJpZ0ludAkAtgIBBQdzY2FsZTE4ABJBRERSRVNTX0JZVEVTX1NJWkUAGgANQkxPQ0tTX0lOX0RBWQCgCwEIdGhyb3dFcnIBA21zZwkAAgEJAKwCAgkArAICBQxjb250cmFjdEZpbGUCAjogBQNtc2cACmtleUFzc2V0SWQJALkJAgkAzAgCAgIlcwkAzAgCAgdhc3NldElkBQNuaWwFA1NFUAATa2V5RW1pc3Npb25QZXJCbG9jawkAuQkCCQDMCAICAiVzCQDMCAICEGVtaXNzaW9uUGVyQmxvY2sFA25pbAUDU0VQABlrZXlFbWlzc2lvblBlcmlvZEluQmxvY2tzCQC5CQIJAMwIAgICJXMJAMwIAgIWZW1pc3Npb25QZXJpb2RJbkJsb2NrcwUDbmlsBQNTRVAADWtleVN0YXJ0QmxvY2sJALkJAgkAzAgCAgIlcwkAzAgCAgpzdGFydEJsb2NrBQNuaWwFA1NFUAAQa2V5VG90YWxMcEFtb3VudAkAuQkCCQDMCAICAiVzCQDMCAICDXRvdGFsTHBBbW91bnQFA25pbAUDU0VQABNrZXlUb3RhbEFzc2V0QW1vdW50CQC5CQIJAMwIAgICJXMJAMwIAgIQdG90YWxBc3NldEFtb3VudAUDbmlsBQNTRVABD2tleVVzZXJMcEFtb3VudAELdXNlckFkZHJlc3MJALkJAgkAzAgCAgQlcyVzCQDMCAICDHVzZXJMcEFtb3VudAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABGmtleVVzZXJUb3RhbEFzc2V0V2l0aGRyYXduAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgITdG90YWxBc3NldFdpdGhkcmF3bgkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABF2tleVVzZXJUb3RhbEFzc2V0U3Rha2VkAQt1c2VyQWRkcmVzcwkAuQkCCQDMCAICBCVzJXMJAMwIAgIQdG90YWxBc3NldFN0YWtlZAkAzAgCBQt1c2VyQWRkcmVzcwUDbmlsBQNTRVABCmtleUhpc3RvcnkDBHR5cGULdXNlckFkZHJlc3MEdHhJZAkAuQkCCQDMCAICBiVzJXMlcwkAzAgCBQR0eXBlCQDMCAIFC3VzZXJBZGRyZXNzCQDMCAIJANgEAQUEdHhJZAUDbmlsBQNTRVABDWZvcm1hdEhpc3RvcnkCC3RvdGFsUHJvZml0BXByaWNlCQC5CQIJAMwIAgIEJWQlZAkAzAgCCQCkAwEFC3RvdGFsUHJvZml0CQDMCAIJAKYDAQUFcHJpY2UFA25pbAUDU0VQAA10b3RhbExwQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEGtleVRvdGFsTHBBbW91bnQAAAAQdG90YWxBc3NldEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlUb3RhbEFzc2V0QW1vdW50AAAADWFzc2V0SWRTdHJpbmcJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwUKa2V5QXNzZXRJZAIFV0FWRVMADGFzc2V0SWRCeXRlcwMJAAACBQ1hc3NldElkU3RyaW5nAgVXQVZFUwUEdW5pdAkA2QQBBQ1hc3NldElkU3RyaW5nABZlbWlzc2lvblBlcmlvZEluQmxvY2tzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFGWtleUVtaXNzaW9uUGVyaW9kSW5CbG9ja3MFDUJMT0NLU19JTl9EQVkAEWVtaXNzaW9uUGVyUGVyaW9kCQBoAgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlFbWlzc2lvblBlckJsb2NrAAAFFmVtaXNzaW9uUGVyaW9kSW5CbG9ja3MAD0FETUlOX0xJU1RfU0laRQAFAAZRVU9SVU0AAwARVFhJRF9CWVRFU19MRU5HVEgAIAEYa2V5QWxsb3dlZFR4SWRWb3RlUHJlZml4AQR0eElkCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICCWFsbG93VHhJZAkAzAgCBQR0eElkBQNuaWwFA1NFUAEQa2V5RnVsbEFkbWluVm90ZQIGcHJlZml4DGFkbWluQWRkcmVzcwkAuQkCCQDMCAIFBnByZWZpeAkAzAgCBQxhZG1pbkFkZHJlc3MFA25pbAUDU0VQARNrZXlBZG1pbkFkZHJlc3NMaXN0AAkAuQkCCQDMCAICAiVzCQDMCAICEGFkbWluQWRkcmVzc0xpc3QFA25pbAUDU0VQAQ5rZXlBbGxvd2VkVHhJZAAJALkJAgkAzAgCAgIlcwkAzAgCAgR0eElkBQNuaWwFA1NFUAEMZ2V0QWRtaW5Wb3RlAgZwcmVmaXgFYWRtaW4EB3ZvdGVLZXkJARBrZXlGdWxsQWRtaW5Wb3RlAgUGcHJlZml4BQVhZG1pbgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd2b3RlS2V5AAABDWdldEFkbWluc0xpc3QABAckbWF0Y2gwCQCdCAIFBHRoaXMJARNrZXlBZG1pbkFkZHJlc3NMaXN0AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJALUJAgUBcwUDU0VQBQNuaWwBDWlzSW5BZG1pbkxpc3QBB2FkZHJlc3MJAQ9jb250YWluc0VsZW1lbnQCCQENZ2V0QWRtaW5zTGlzdAAFB2FkZHJlc3MBEmdlblZvdGVzS2V5c0hlbHBlcgIBYQxhZG1pbkFkZHJlc3MECyR0MDI5MzMyOTU3BQFhBAZyZXN1bHQIBQskdDAyOTMzMjk1NwJfMQQGcHJlZml4CAULJHQwMjkzMzI5NTcCXzIJAJQKAgkAzQgCBQZyZXN1bHQJARBrZXlGdWxsQWRtaW5Wb3RlAgUGcHJlZml4BQxhZG1pbkFkZHJlc3MFBnByZWZpeAEMZ2VuVm90ZXNLZXlzAQlrZXlQcmVmaXgECWFkbWluTGlzdAkBE2tleUFkbWluQWRkcmVzc0xpc3QABAskdDAzMTA0MzE4OAoAAiRsCQENZ2V0QWRtaW5zTGlzdAAKAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCUCgIFA25pbAUJa2V5UHJlZml4CgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARJnZW5Wb3Rlc0tleXNIZWxwZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFBAZyZXN1bHQIBQskdDAzMTA0MzE4OAJfMQQGcHJlZml4CAULJHQwMzEwNDMxODgCXzIFBnJlc3VsdAEQY291bnRWb3Rlc0hlbHBlcgIGcmVzdWx0B3ZvdGVLZXkJAGQCBQZyZXN1bHQJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUHdm90ZUtleQAAAQpjb3VudFZvdGVzAQZwcmVmaXgEBXZvdGVzCQEMZ2VuVm90ZXNLZXlzAQUGcHJlZml4CgACJGwFBXZvdGVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJARBjb3VudFZvdGVzSGVscGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA1CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQEQY2xlYXJWb3Rlc0hlbHBlcgIGcmVzdWx0A2tleQkAzQgCBQZyZXN1bHQJAQtEZWxldGVFbnRyeQEFA2tleQETZ2V0Q2xlYXJWb3RlRW50cmllcwEGcHJlZml4BAV2b3RlcwkBDGdlblZvdGVzS2V5cwEFBnByZWZpeAoAAiRsBQV2b3RlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEQY2xlYXJWb3Rlc0hlbHBlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUBDHZvdGVJTlRFUk5BTAQTY2FsbGVyQWRkcmVzc1N0cmluZwlrZXlQcmVmaXgIbWluVm90ZXMKdm90ZVJlc3VsdAQHdm90ZUtleQkBEGtleUZ1bGxBZG1pblZvdGUCBQlrZXlQcmVmaXgFE2NhbGxlckFkZHJlc3NTdHJpbmcEEGFkbWluQ3VycmVudFZvdGUJAQxnZXRBZG1pblZvdGUCBQlrZXlQcmVmaXgFE2NhbGxlckFkZHJlc3NTdHJpbmcEA2VycgMJAQEhAQkBDWlzSW5BZG1pbkxpc3QBBRNjYWxsZXJBZGRyZXNzU3RyaW5nCQEIdGhyb3dFcnIBCQCsAgIJAKwCAgIJQWRkcmVzczogBRNjYWxsZXJBZGRyZXNzU3RyaW5nAhIgbm90IGluIEFkbWluIGxpc3QDCQAAAgUQYWRtaW5DdXJyZW50Vm90ZQABCQEIdGhyb3dFcnIBCQCsAgIFB3ZvdGVLZXkCEiB5b3UgYWxyZWFkeSB2b3RlZAUEdW5pdAMJAAACBQNlcnIFA2VycgQFdm90ZXMJAQpjb3VudFZvdGVzAQUJa2V5UHJlZml4AwkAZwIJAGQCBQV2b3RlcwABBQhtaW5Wb3RlcwQQY2xlYXJWb3RlRW50cmllcwkBE2dldENsZWFyVm90ZUVudHJpZXMBBQlrZXlQcmVmaXgJAM4IAgUQY2xlYXJWb3RlRW50cmllcwUKdm90ZVJlc3VsdAkAzAgCCQEMSW50ZWdlckVudHJ5AgUHdm90ZUtleQABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BGGNhbGNUb3RhbFByb2ZpdEZvckhlaWdodAEBaAQKc3RhcnRCbG9jawkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ1rZXlTdGFydEJsb2NrAAAEC3N0YXJ0UGVyaW9kCQBrAwUKc3RhcnRCbG9jawABBRZlbWlzc2lvblBlcmlvZEluQmxvY2tzBA5lbGFwc2VkUGVyaW9kcwkAZQIJAGkCBQFoBRZlbWlzc2lvblBlcmlvZEluQmxvY2tzBQtzdGFydFBlcmlvZAkAlgMBCQDMCAIAAAkAzAgCCQBoAgURZW1pc3Npb25QZXJQZXJpb2QFDmVsYXBzZWRQZXJpb2RzBQNuaWwBD2NhbGNUb3RhbFByb2ZpdAAJARhjYWxjVG90YWxQcm9maXRGb3JIZWlnaHQBBQZoZWlnaHQBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUABBp0b3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdAkAZAIFEHRvdGFsQXNzZXRBbW91bnQJAQ9jYWxjVG90YWxQcm9maXQABAt0b3RhbEFtb3VudAQHJG1hdGNoMAUMYXNzZXRJZEJ5dGVzAwkAAQIFByRtYXRjaDACBFVuaXQEAXUFByRtYXRjaDAJAJcDAQkAzAgCBRp0b3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdAkAzAgCCAkA7wcBBQR0aGlzCWF2YWlsYWJsZQUDbmlsAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJAJcDAQkAzAgCBRp0b3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdAkAzAgCCQDwBwIFBHRoaXMFAWIFA25pbAkAAgECC01hdGNoIGVycm9yAwkAAAIFDXRvdGFsTHBBbW91bnQAAAAABQt0b3RhbEFtb3VudAEPZ2V0Q3VycmVudFByaWNlAAMJAQIhPQIFDXRvdGFsTHBBbW91bnQAAAkAvAIDCQC2AgEJAStnZXRUb3RhbEFzc2V0QW1vdW50V2l0aFByb2ZpdE9yTWF4QXZhaWxhYmxlAAUNc2NhbGUxOEJpZ0ludAkAtgIBBQ10b3RhbExwQW1vdW50BQ1zY2FsZTE4QmlnSW50AQ9nZXRVc2VyTHBBbW91bnQBC3VzZXJBZGRyZXNzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ9rZXlVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwAAASBnZXRVc2VyQXZhaWxhYmxlQXNzZXRzVG9XaXRoZHJhdwELdXNlckFkZHJlc3MEDHVzZXJMcEFtb3VudAkBD2dldFVzZXJMcEFtb3VudAEFC3VzZXJBZGRyZXNzBBx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3CQCgAwEJALwCAwkAtgIBBQx1c2VyTHBBbW91bnQJAQ9nZXRDdXJyZW50UHJpY2UABQ1zY2FsZTE4QmlnSW50AwkAZgIAAAUcdXNlckF2YWlsYWJsZUFzc2V0VG9XaXRoZHJhdwAABRx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3AQ9nZXRTdGFrZUFjdGlvbnMCAWkLdXNlckFkZHJlc3MEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQh0aHJvd0VycgECGHNob3VsZCBpbmNsdWRlIDEgcGF5bWVudAkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUMYXNzZXRJZEJ5dGVzBgkBCHRocm93RXJyAQkArAICAhVwYXltZW50IHNob3VsZCBiZSBpbiAFDWFzc2V0SWRTdHJpbmcJAMwIAgMJAGYCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAAABgIncGF5bWVudCBhbW91bnQgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiAwBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEDXBheW1lbnRBbW91bnQICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BA9wYXltZW50THBBbW91bnQJAKADAQkAvAIDCQC2AgEFDXBheW1lbnRBbW91bnQFDXNjYWxlMThCaWdJbnQJAQ9nZXRDdXJyZW50UHJpY2UABAx1c2VyTHBBbW91bnQJAQ9nZXRVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwQVdXNlclRvdGFsU3Rha2VkQW1vdW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARdrZXlVc2VyVG90YWxBc3NldFN0YWtlZAEFC3VzZXJBZGRyZXNzAAAEEG5ld1RvdGFsTHBBbW91bnQJAGQCBQ10b3RhbExwQW1vdW50BQ9wYXltZW50THBBbW91bnQEE25ld1RvdGFsQXNzZXRBbW91bnQJAGQCBRB0b3RhbEFzc2V0QW1vdW50BQ1wYXltZW50QW1vdW50BA9uZXdVc2VyTHBBbW91bnQJAGQCBQx1c2VyTHBBbW91bnQFD3BheW1lbnRMcEFtb3VudAQYbmV3VXNlclRvdGFsU3Rha2VkQW1vdW50CQBkAgUVdXNlclRvdGFsU3Rha2VkQW1vdW50BQ1wYXltZW50QW1vdW50BBd1cGRhdGVTdGFydEhlaWdodEFjdGlvbgMJAAACBQ10b3RhbExwQW1vdW50AAAJAMwIAgkBDEludGVnZXJFbnRyeQIFDWtleVN0YXJ0QmxvY2sFBmhlaWdodAUDbmlsBQNuaWwJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCCQEKa2V5SGlzdG9yeQMCBXN0YWtlBQt1c2VyQWRkcmVzcwgFAWkNdHJhbnNhY3Rpb25JZAkBDWZvcm1hdEhpc3RvcnkCCQEPY2FsY1RvdGFsUHJvZml0AAkBD2dldEN1cnJlbnRQcmljZQAJAMwIAgkBDEludGVnZXJFbnRyeQIFEGtleVRvdGFsTHBBbW91bnQFEG5ld1RvdGFsTHBBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleVRvdGFsQXNzZXRBbW91bnQFE25ld1RvdGFsQXNzZXRBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwUPbmV3VXNlckxwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEXa2V5VXNlclRvdGFsQXNzZXRTdGFrZWQBBQt1c2VyQWRkcmVzcwUYbmV3VXNlclRvdGFsU3Rha2VkQW1vdW50BQNuaWwFF3VwZGF0ZVN0YXJ0SGVpZ2h0QWN0aW9uCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuARJnZXRXaXRoZHJhd0FjdGlvbnMCAWkVbHBBc3NldFdpdGhkcmF3QW1vdW50BAt1c2VyQWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEDHVzZXJMcEFtb3VudAkBD2dldFVzZXJMcEFtb3VudAEFC3VzZXJBZGRyZXNzBAVjaGVjawkAzAgCAwkAZgIFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAAABgkBCHRocm93RXJyAQIfTFAgYW1vdW50IHNob3VsZCBiZSBtb3JlIHRoYW4gMAkAzAgCAwkAZwIFDHVzZXJMcEFtb3VudAUVbHBBc3NldFdpdGhkcmF3QW1vdW50BgkBCHRocm93RXJyAQkArAICCQCsAgICKGNhbm5vdCB3aXRoZHJhdyBtb3JlIHRoYW4gYXZhaWxhYmxlIExQICgJAKQDAQUMdXNlckxwQW1vdW50AgEpBQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrBA9uZXdVc2VyTHBBbW91bnQJAGUCBQx1c2VyTHBBbW91bnQFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAQTd2l0aGRyYXdBc3NldEFtb3VudAkAoAMBCQC8AgMJALYCAQUVbHBBc3NldFdpdGhkcmF3QW1vdW50CQEPZ2V0Q3VycmVudFByaWNlAAUNc2NhbGUxOEJpZ0ludAQQbmV3VG90YWxMcEFtb3VudAkAZQIFDXRvdGFsTHBBbW91bnQFFWxwQXNzZXRXaXRoZHJhd0Ftb3VudAQTbmV3VG90YWxBc3NldEFtb3VudAkAoAMBCQC8AgMJALYCAQUQbmV3VG90YWxMcEFtb3VudAkBD2dldEN1cnJlbnRQcmljZQAFDXNjYWxlMThCaWdJbnQEF3VzZXJUb3RhbEFzc2V0V2l0aGRyYXduCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARprZXlVc2VyVG90YWxBc3NldFdpdGhkcmF3bgEFC3VzZXJBZGRyZXNzAAAEGm5ld1VzZXJUb3RhbEFzc2V0V2l0aGRyYXduCQBkAgUXdXNlclRvdGFsQXNzZXRXaXRoZHJhd24FE3dpdGhkcmF3QXNzZXRBbW91bnQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCmtleUhpc3RvcnkDAgh3aXRoZHJhdwULdXNlckFkZHJlc3MIBQFpDXRyYW5zYWN0aW9uSWQJAQ1mb3JtYXRIaXN0b3J5AgkBD2NhbGNUb3RhbFByb2ZpdAAJAQ9nZXRDdXJyZW50UHJpY2UACQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBrZXlUb3RhbExwQW1vdW50BRBuZXdUb3RhbExwQW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRNrZXlUb3RhbEFzc2V0QW1vdW50BRNuZXdUb3RhbEFzc2V0QW1vdW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5VXNlckxwQW1vdW50AQULdXNlckFkZHJlc3MFD25ld1VzZXJMcEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGmtleVVzZXJUb3RhbEFzc2V0V2l0aGRyYXduAQULdXNlckFkZHJlc3MFGm5ld1VzZXJUb3RhbEFzc2V0V2l0aGRyYXduCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlTdGFydEJsb2NrBQZoZWlnaHQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBRN3aXRoZHJhd0Fzc2V0QW1vdW50BQxhc3NldElkQnl0ZXMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgcBaQETc2V0RW1pc3Npb25QZXJCbG9jawEQZW1pc3Npb25QZXJCbG9jawQFY2hlY2sJAMwIAgMJAAACCAUBaQZjYWxsZXIFBHRoaXMGCQEIdGhyb3dFcnIBAhFwZXJtaXNzaW9uIGRlbmllZAUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawkAzAgCCQEMSW50ZWdlckVudHJ5AgUTa2V5VG90YWxBc3NldEFtb3VudAkBK2dldFRvdGFsQXNzZXRBbW91bnRXaXRoUHJvZml0T3JNYXhBdmFpbGFibGUACQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1rZXlTdGFydEJsb2NrBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIFE2tleUVtaXNzaW9uUGVyQmxvY2sJAJYDAQkAzAgCAAAJAMwIAgUQZW1pc3Npb25QZXJCbG9jawUDbmlsBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFc3Rha2UACQEPZ2V0U3Rha2VBY3Rpb25zAgUBaQkApQgBCAUBaQZjYWxsZXIBaQEIc3Rha2VGb3IBC3VzZXJBZGRyZXNzBAVjaGVjawkAzAgCAwkAAAIJAMgBAQkA2QQBBQt1c2VyQWRkcmVzcwUSQUREUkVTU19CWVRFU19TSVpFBgkBCHRocm93RXJyAQIUYWRkcmVzcyBpcyBub3QgdmFsaWQFA25pbAMJAAACBQVjaGVjawUFY2hlY2sJAQ9nZXRTdGFrZUFjdGlvbnMCBQFpBQt1c2VyQWRkcmVzcwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQh3aXRoZHJhdwETd2l0aGRyYXdBc3NldEFtb3VudAQLdXNlckFkZHJlc3MJAKUIAQgFAWkGY2FsbGVyBAx1c2VyTHBBbW91bnQJAQ9nZXRVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwQSbHBBbW91bnRUb1dpdGhkcmF3CQCgAwEJALwCAwkAtgIBBRN3aXRoZHJhd0Fzc2V0QW1vdW50BQ1zY2FsZTE4QmlnSW50CQEPZ2V0Q3VycmVudFByaWNlAAQcdXNlckF2YWlsYWJsZUFzc2V0VG9XaXRoZHJhdwkBIGdldFVzZXJBdmFpbGFibGVBc3NldHNUb1dpdGhkcmF3AQULdXNlckFkZHJlc3MEFm1pbldpdGhkcmF3QXNzZXRBbW91bnQJAKADAQkAvQIECQEPZ2V0Q3VycmVudFByaWNlAAkAtgIBAAEFDXNjYWxlMThCaWdJbnQFB0NFSUxJTkcEBWNoZWNrCQDMCAIDCQBmAgUTd2l0aGRyYXdBc3NldEFtb3VudAAABgkBCHRocm93RXJyAQIld2l0aGRyYXcgYW1vdW50IHNob3VsZCBiZSBtb3JlIHRoYW4gMAkAzAgCAwkAZwIFHHVzZXJBdmFpbGFibGVBc3NldFRvV2l0aGRyYXcFE3dpdGhkcmF3QXNzZXRBbW91bnQGCQEIdGhyb3dFcnIBCQCsAgIJAKwCAgIlY2Fubm90IHdpdGhkcmF3IG1vcmUgdGhhbiBhdmFpbGFibGUgKAkApAMBBRx1c2VyQXZhaWxhYmxlQXNzZXRUb1dpdGhkcmF3AgEpCQDMCAIDCQBnAgUTd2l0aGRyYXdBc3NldEFtb3VudAUWbWluV2l0aGRyYXdBc3NldEFtb3VudAYJAQh0aHJvd0VycgEJAKwCAgkArAICAiR3aXRoZHJhdyBhbW91bnQgaXMgdG9vIHNtYWxsLiBNaW46ICgJAKQDAQUWbWluV2l0aGRyYXdBc3NldEFtb3VudAIBKQUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawkBEmdldFdpdGhkcmF3QWN0aW9ucwIFAWkFEmxwQW1vdW50VG9XaXRoZHJhdwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARVnZXRVc2VyQXNzZXRzUkVBRE9OTFkBC3VzZXJBZGRyZXNzBAx1c2VyTHBBbW91bnQJAQ9nZXRVc2VyTHBBbW91bnQBBQt1c2VyQWRkcmVzcwQcdXNlckF2YWlsYWJsZUFzc2V0VG9XaXRoZHJhdwkBIGdldFVzZXJBdmFpbGFibGVBc3NldHNUb1dpdGhkcmF3AQULdXNlckFkZHJlc3MEFXVzZXJUb3RhbFN0YWtlZEFtb3VudAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEXa2V5VXNlclRvdGFsQXNzZXRTdGFrZWQBBQt1c2VyQWRkcmVzcwAABBd1c2VyVG90YWxBc3NldFdpdGhkcmF3bgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEaa2V5VXNlclRvdGFsQXNzZXRXaXRoZHJhd24BBQt1c2VyQWRkcmVzcwAACQCUCgIFA25pbAkAlwoFBQx1c2VyTHBBbW91bnQFHHVzZXJBdmFpbGFibGVBc3NldFRvV2l0aGRyYXcJAQ9nZXRDdXJyZW50UHJpY2UABRV1c2VyVG90YWxTdGFrZWRBbW91bnQFF3VzZXJUb3RhbEFzc2V0V2l0aGRyYXduAWkBFmdldFRvdGFsQXNzZXRzUkVBRE9OTFkACQCUCgIFA25pbAkAlQoDBQ10b3RhbExwQW1vdW50CQErZ2V0VG90YWxBc3NldEFtb3VudFdpdGhQcm9maXRPck1heEF2YWlsYWJsZQAJAQ9nZXRDdXJyZW50UHJpY2UAAWkBC3ZvdGVGb3JUeElkAQR0eElkBBNjYWxsZXJBZGRyZXNzU3RyaW5nCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMECWtleVByZWZpeAkBGGtleUFsbG93ZWRUeElkVm90ZVByZWZpeAEFBHR4SWQEBnJlc3VsdAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5QWxsb3dlZFR4SWQABQR0eElkBQNuaWwEEWFsbG93ZWRUeElkT3B0aW9uCQCdCAIFBHRoaXMJAQ5rZXlBbGxvd2VkVHhJZAAEA2VycgkAzAgCAwkAAAIJAMgBAQkA2QQBBQR0eElkBRFUWElEX0JZVEVTX0xFTkdUSAYJAQh0aHJvd0VycgEJAKwCAgUEdHhJZAISIGlzIG5vdCB2YWxpZCB0eElkCQDMCAIDAwkAAAIFEWFsbG93ZWRUeElkT3B0aW9uBQR1bml0BgkBAiE9AgkBBXZhbHVlAQURYWxsb3dlZFR4SWRPcHRpb24FBHR4SWQGCQEIdGhyb3dFcnIBCQCsAgIFBHR4SWQCEyBpcyBhbHJlYWR5IGFsbG93ZWQFA25pbAMJAAACBQNlcnIFA2VycgkBDHZvdGVJTlRFUk5BTAQFE2NhbGxlckFkZHJlc3NTdHJpbmcFCWtleVByZWZpeAUGUVVPUlVNBQZyZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAhieUFkbWlucwkAAAIIBQJ0eAJpZAkA2QQBCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ5rZXlBbGxvd2VkVHhJZAACAAQHYnlPd25lcgMJAGcCCQCQAwEJAQ1nZXRBZG1pbnNMaXN0AAUGUVVPUlVNBwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQMFCGJ5QWRtaW5zBgUHYnlPd25lctD7tT0=", "height": 2685375, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2aZeoHP3a2z3yLTV4qw1dWXX1Lo8hpWK8xHnNXHpyb4L Next: FnTjmspUZ6jc1TQsupc1ZwrjtZfkxYQXeCNfRkVArTbs Diff:
OldNewDifferences
3939 func s (q) = makeString(["%s%s", "totalAssetStaked", q], b)
4040
4141
42-let t = valueOrElse(getInteger(this, n), 0)
43-
44-let u = valueOrElse(getInteger(this, o), 0)
45-
46-let v = valueOrElse(getString(this, j), "WAVES")
47-
48-let w = if ((v == "WAVES"))
49- then unit
50- else fromBase58String(v)
51-
52-let x = valueOrElse(getInteger(this, l), g)
53-
54-let y = (valueOrElse(getInteger(this, k), 0) * x)
55-
56-let z = 5
57-
58-let A = 3
59-
60-let B = 32
61-
62-func C (D) = makeString(["%s%s%s", "allowTxId", D], b)
42+func t (u,q,v) = makeString(["%s%s%s", u, q, toBase58String(v)], b)
6343
6444
65-func E (F,G) = makeString([F, G], b)
45+func w (x,y) = makeString(["%d%d", toString(x), toString(y)], b)
6646
6747
68-func H () = makeString(["%s", "adminAddressList"], b)
48+let z = valueOrElse(getInteger(this, n), 0)
49+
50+let A = valueOrElse(getInteger(this, o), 0)
51+
52+let B = valueOrElse(getString(this, j), "WAVES")
53+
54+let C = if ((B == "WAVES"))
55+ then unit
56+ else fromBase58String(B)
57+
58+let D = valueOrElse(getInteger(this, l), g)
59+
60+let E = (valueOrElse(getInteger(this, k), 0) * D)
61+
62+let F = 5
63+
64+let G = 3
65+
66+let H = 32
67+
68+func I (v) = makeString(["%s%s%s", "allowTxId", v], b)
6969
7070
71-func I () = makeString(["%s", "txId"], b)
71+func J (K,L) = makeString([K, L], b)
7272
7373
74-func J (F,K) = {
75- let L = E(F, K)
76- valueOrElse(getInteger(L), 0)
74+func M () = makeString(["%s", "adminAddressList"], b)
75+
76+
77+func N () = makeString(["%s", "txId"], b)
78+
79+
80+func O (K,P) = {
81+ let Q = J(K, P)
82+ valueOrElse(getInteger(Q), 0)
7783 }
7884
7985
80-func M () = {
81- let N = getString(this, H())
82- if ($isInstanceOf(N, "String"))
86+func R () = {
87+ let S = getString(this, M())
88+ if ($isInstanceOf(S, "String"))
8389 then {
84- let O = N
85- split(O, b)
90+ let T = S
91+ split(T, b)
8692 }
8793 else nil
8894 }
8995
9096
91-func P (Q) = containsElement(M(), Q)
97+func U (V) = containsElement(R(), V)
9298
9399
94-func R (S,G) = {
95- let T = S
96- let U = T._1
97- let F = T._2
98- $Tuple2((U :+ E(F, G)), F)
100+func W (X,L) = {
101+ let Y = X
102+ let Z = Y._1
103+ let K = Y._2
104+ $Tuple2((Z :+ J(K, L)), K)
99105 }
100106
101107
102-func V (W) = {
103- let X = H()
104- let Y = {
105- let Z = M()
106- let aa = size(Z)
107- let ab = $Tuple2(nil, W)
108- func ac (ad,ae) = if ((ae >= aa))
109- then ad
110- else R(ad, Z[ae])
108+func aa (ab) = {
109+ let ac = M()
110+ let ad = {
111+ let ae = R()
112+ let af = size(ae)
113+ let ag = $Tuple2(nil, ab)
114+ func ah (ai,aj) = if ((aj >= af))
115+ then ai
116+ else W(ai, ae[aj])
111117
112- func af (ad,ae) = if ((ae >= aa))
113- then ad
118+ func ak (ai,aj) = if ((aj >= af))
119+ then ai
114120 else throw("List size exceeds 5")
115121
116- af(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5)
122+ ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
117123 }
118- let U = Y._1
119- let F = Y._2
120- U
124+ let Z = ad._1
125+ let K = ad._2
126+ Z
121127 }
122128
123129
124-func ag (U,L) = (U + valueOrElse(getInteger(L), 0))
130+func al (Z,Q) = (Z + valueOrElse(getInteger(Q), 0))
125131
126132
127-func ah (F) = {
128- let ai = V(F)
129- let Z = ai
130- let aa = size(Z)
131- let ab = 0
132- func ac (ad,ae) = if ((ae >= aa))
133- then ad
134- else ag(ad, Z[ae])
133+func am (K) = {
134+ let an = aa(K)
135+ let ae = an
136+ let af = size(ae)
137+ let ag = 0
138+ func ah (ai,aj) = if ((aj >= af))
139+ then ai
140+ else al(ai, ae[aj])
135141
136- func af (ad,ae) = if ((ae >= aa))
137- then ad
142+ func ak (ai,aj) = if ((aj >= af))
143+ then ai
138144 else throw("List size exceeds 5")
139145
140- af(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5)
146+ ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
141147 }
142148
143149
144-func aj (U,ak) = (U :+ DeleteEntry(ak))
150+func ao (Z,ap) = (Z :+ DeleteEntry(ap))
145151
146152
147-func al (F) = {
148- let ai = V(F)
149- let Z = ai
150- let aa = size(Z)
151- let ab = nil
152- func ac (ad,ae) = if ((ae >= aa))
153- then ad
154- else aj(ad, Z[ae])
153+func aq (K) = {
154+ let an = aa(K)
155+ let ae = an
156+ let af = size(ae)
157+ let ag = nil
158+ func ah (ai,aj) = if ((aj >= af))
159+ then ai
160+ else ao(ai, ae[aj])
155161
156- func af (ad,ae) = if ((ae >= aa))
157- then ad
162+ func ak (ai,aj) = if ((aj >= af))
163+ then ai
158164 else throw("List size exceeds 5")
159165
160- af(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5)
166+ ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
161167 }
162168
163169
164-func am (an,W,ao,ap) = {
165- let L = E(W, an)
166- let aq = J(W, an)
167- let ar = if (!(P(an)))
168- then h((("Address: " + an) + " not in Admin list"))
169- else if ((aq == 1))
170- then h((L + " you already voted"))
170+func ar (as,ab,at,au) = {
171+ let Q = J(ab, as)
172+ let av = O(ab, as)
173+ let aw = if (!(U(as)))
174+ then h((("Address: " + as) + " not in Admin list"))
175+ else if ((av == 1))
176+ then h((Q + " you already voted"))
171177 else unit
172- if ((ar == ar))
178+ if ((aw == aw))
173179 then {
174- let ai = ah(W)
175- if (((ai + 1) >= ao))
180+ let an = am(ab)
181+ if (((an + 1) >= at))
176182 then {
177- let as = al(W)
178- (as ++ ap)
183+ let ax = aq(ab)
184+ (ax ++ au)
179185 }
180- else [IntegerEntry(L, 1)]
186+ else [IntegerEntry(Q, 1)]
181187 }
182188 else throw("Strict value is not equal to itself.")
183189 }
184190
185191
186-func at (au) = {
187- let av = valueOrElse(getInteger(this, m), 0)
188- let aw = fraction(av, 1, x)
189- let ax = ((au / x) - aw)
190- max([0, (y * ax)])
192+func ay (az) = {
193+ let aA = valueOrElse(getInteger(this, m), 0)
194+ let aB = fraction(aA, 1, D)
195+ let aC = ((az / D) - aB)
196+ max([0, (E * aC)])
191197 }
192198
193199
194-func ay () = at(height)
200+func aD () = ay(height)
195201
196202
197-func az () = {
198- let aA = (u + ay())
199- let aB = {
200- let N = w
201- if ($isInstanceOf(N, "Unit"))
203+func aE () = {
204+ let aF = (A + aD())
205+ let aG = {
206+ let S = C
207+ if ($isInstanceOf(S, "Unit"))
202208 then {
203- let aC = N
204- min([aA, wavesBalance(this).available])
209+ let aH = S
210+ min([aF, wavesBalance(this).available])
205211 }
206- else if ($isInstanceOf(N, "ByteVector"))
212+ else if ($isInstanceOf(S, "ByteVector"))
207213 then {
208- let aD = N
209- min([aA, assetBalance(this, aD)])
214+ let aI = S
215+ min([aF, assetBalance(this, aI)])
210216 }
211217 else throw("Match error")
212218 }
213- if ((t == 0))
219+ if ((z == 0))
214220 then 0
215- else aB
221+ else aG
216222 }
217223
218224
219-func aE () = if ((t != 0))
220- then fraction(toBigInt(az()), e, toBigInt(t))
225+func aJ () = if ((z != 0))
226+ then fraction(toBigInt(aE()), e, toBigInt(z))
221227 else e
222228
223229
224-func aF (q) = valueOrElse(getInteger(this, p(q)), 0)
230+func aK (q) = valueOrElse(getInteger(this, p(q)), 0)
225231
226232
227-func aG (q) = {
228- let aH = aF(q)
229- let aI = toInt(fraction(toBigInt(aH), aE(), e))
230- if ((0 > aI))
233+func aL (q) = {
234+ let aM = aK(q)
235+ let aN = toInt(fraction(toBigInt(aM), aJ(), e))
236+ if ((0 > aN))
231237 then 0
232- else aI
238+ else aN
233239 }
234240
235241
236-func aJ (aK,q) = {
237- let aL = [if ((size(aK.payments) == 1))
242+func aO (aP,q) = {
243+ let aQ = [if ((size(aP.payments) == 1))
238244 then true
239- else h("should include 1 payment"), if ((aK.payments[0].assetId == w))
245+ else h("should include 1 payment"), if ((aP.payments[0].assetId == C))
240246 then true
241- else h(("payment should be in " + v)), if ((aK.payments[0].amount > 0))
247+ else h(("payment should be in " + B)), if ((aP.payments[0].amount > 0))
242248 then true
243249 else "payment amount should be greater than 0"]
244- if ((aL == aL))
250+ if ((aQ == aQ))
245251 then {
246- let aM = aK.payments[0].amount
247- let aN = toInt(fraction(toBigInt(aM), e, aE()))
248- let aH = aF(q)
249- let aO = valueOrElse(getInteger(this, s(q)), 0)
250- let aP = (t + aN)
251- let aQ = (u + aM)
252- let aR = (aH + aN)
253- let aS = (aO + aM)
254- let aT = if ((t == 0))
252+ let aR = aP.payments[0].amount
253+ let aS = toInt(fraction(toBigInt(aR), e, aJ()))
254+ let aM = aK(q)
255+ let aT = valueOrElse(getInteger(this, s(q)), 0)
256+ let aU = (z + aS)
257+ let aV = (A + aR)
258+ let aW = (aM + aS)
259+ let aX = (aT + aR)
260+ let aY = if ((z == 0))
255261 then [IntegerEntry(m, height)]
256262 else nil
257- ([IntegerEntry(n, aP), IntegerEntry(o, aQ), IntegerEntry(p(q), aR), IntegerEntry(s(q), aS)] ++ aT)
263+ ([StringEntry(t("stake", q, aP.transactionId), w(aD(), aJ())), IntegerEntry(n, aU), IntegerEntry(o, aV), IntegerEntry(p(q), aW), IntegerEntry(s(q), aX)] ++ aY)
258264 }
259265 else throw("Strict value is not equal to itself.")
260266 }
261267
262268
263-func aU (aK,aV) = {
264- let q = toString(aK.caller)
265- let aH = aF(q)
266- let aW = [if ((aV > 0))
269+func aZ (aP,ba) = {
270+ let q = toString(aP.caller)
271+ let aM = aK(q)
272+ let bb = [if ((ba > 0))
267273 then true
268- else h("LP amount should be more than 0"), if ((aH >= aV))
274+ else h("LP amount should be more than 0"), if ((aM >= ba))
269275 then true
270- else h((("cannot withdraw more than available LP (" + toString(aH)) + ")"))]
271- if ((aW == aW))
276+ else h((("cannot withdraw more than available LP (" + toString(aM)) + ")"))]
277+ if ((bb == bb))
272278 then {
273- let aR = (aH - aV)
274- let aX = toInt(fraction(toBigInt(aV), aE(), e))
275- let aP = (t - aV)
276- let aQ = toInt(fraction(toBigInt(aP), aE(), e))
277- let aY = valueOrElse(getInteger(this, r(q)), 0)
278- let aZ = (aY + aX)
279-[IntegerEntry(n, aP), IntegerEntry(o, aQ), IntegerEntry(p(q), aR), IntegerEntry(r(q), aZ), IntegerEntry(m, height), ScriptTransfer(aK.caller, aX, w)]
279+ let aW = (aM - ba)
280+ let bc = toInt(fraction(toBigInt(ba), aJ(), e))
281+ let aU = (z - ba)
282+ let aV = toInt(fraction(toBigInt(aU), aJ(), e))
283+ let bd = valueOrElse(getInteger(this, r(q)), 0)
284+ let be = (bd + bc)
285+[StringEntry(t("withdraw", q, aP.transactionId), w(aD(), aJ())), IntegerEntry(n, aU), IntegerEntry(o, aV), IntegerEntry(p(q), aW), IntegerEntry(r(q), be), IntegerEntry(m, height), ScriptTransfer(aP.caller, bc, C)]
280286 }
281287 else throw("Strict value is not equal to itself.")
282288 }
283289
284290
285-@Callable(aK)
286-func setEmissionPerBlock (ba) = {
287- let aW = [if ((aK.caller == this))
291+@Callable(aP)
292+func setEmissionPerBlock (bf) = {
293+ let bb = [if ((aP.caller == this))
288294 then true
289295 else h("permission denied")]
290- if ((aW == aW))
291- then [IntegerEntry(o, az()), IntegerEntry(m, height), IntegerEntry(k, max([0, ba]))]
296+ if ((bb == bb))
297+ then [IntegerEntry(o, aE()), IntegerEntry(m, height), IntegerEntry(k, max([0, bf]))]
292298 else throw("Strict value is not equal to itself.")
293299 }
294300
295301
296302
297-@Callable(aK)
298-func stake () = aJ(aK, toString(aK.caller))
303+@Callable(aP)
304+func stake () = aO(aP, toString(aP.caller))
299305
300306
301307
302-@Callable(aK)
308+@Callable(aP)
303309 func stakeFor (q) = {
304- let aW = [if ((size(fromBase58String(q)) == f))
310+ let bb = [if ((size(fromBase58String(q)) == f))
305311 then true
306312 else h("address is not valid")]
307- if ((aW == aW))
308- then aJ(aK, q)
313+ if ((bb == bb))
314+ then aO(aP, q)
309315 else throw("Strict value is not equal to itself.")
310316 }
311317
312318
313319
314-@Callable(aK)
315-func withdraw (aX) = {
316- let q = toString(aK.caller)
317- let aH = aF(q)
318- let bb = toInt(fraction(toBigInt(aX), e, aE()))
319- let aI = aG(q)
320- let bc = toInt(fraction(aE(), toBigInt(1), e, CEILING))
321- let aW = [if ((aX > 0))
320+@Callable(aP)
321+func withdraw (bc) = {
322+ let q = toString(aP.caller)
323+ let aM = aK(q)
324+ let bg = toInt(fraction(toBigInt(bc), e, aJ()))
325+ let aN = aL(q)
326+ let bh = toInt(fraction(aJ(), toBigInt(1), e, CEILING))
327+ let bb = [if ((bc > 0))
322328 then true
323- else h("withdraw amount should be more than 0"), if ((aI >= aX))
329+ else h("withdraw amount should be more than 0"), if ((aN >= bc))
324330 then true
325- else h((("cannot withdraw more than available (" + toString(aI)) + ")")), if ((aX >= bc))
331+ else h((("cannot withdraw more than available (" + toString(aN)) + ")")), if ((bc >= bh))
326332 then true
327- else h((("withdraw amount is too small. Min: (" + toString(bc)) + ")"))]
328- if ((aW == aW))
329- then aU(aK, bb)
333+ else h((("withdraw amount is too small. Min: (" + toString(bh)) + ")"))]
334+ if ((bb == bb))
335+ then aZ(aP, bg)
330336 else throw("Strict value is not equal to itself.")
331337 }
332338
333339
334340
335-@Callable(aK)
341+@Callable(aP)
336342 func getUserAssetsREADONLY (q) = {
337- let aH = aF(q)
338- let aI = aG(q)
339- let aO = valueOrElse(getInteger(this, s(q)), 0)
340- let aY = valueOrElse(getInteger(this, r(q)), 0)
341- $Tuple2(nil, $Tuple5(aH, aI, aE(), aO, aY))
343+ let aM = aK(q)
344+ let aN = aL(q)
345+ let aT = valueOrElse(getInteger(this, s(q)), 0)
346+ let bd = valueOrElse(getInteger(this, r(q)), 0)
347+ $Tuple2(nil, $Tuple5(aM, aN, aJ(), aT, bd))
342348 }
343349
344350
345351
346-@Callable(aK)
347-func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple3(t, az(), aE()))
352+@Callable(aP)
353+func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple3(z, aE(), aJ()))
348354
349355
350356
351-@Callable(aK)
352-func voteForTxId (D) = {
353- let an = toBase58String(aK.caller.bytes)
354- let W = C(D)
355- let U = [StringEntry(I(), D)]
356- let bd = getString(this, I())
357- let ar = [if ((size(fromBase58String(D)) == B))
357+@Callable(aP)
358+func voteForTxId (v) = {
359+ let as = toBase58String(aP.caller.bytes)
360+ let ab = I(v)
361+ let Z = [StringEntry(N(), v)]
362+ let bi = getString(this, N())
363+ let aw = [if ((size(fromBase58String(v)) == H))
358364 then true
359- else h((D + " is not valid txId")), if (if ((bd == unit))
365+ else h((v + " is not valid txId")), if (if ((bi == unit))
360366 then true
361- else (value(bd) != D))
367+ else (value(bi) != v))
362368 then true
363- else h((D + " is already allowed"))]
364- if ((ar == ar))
365- then am(an, W, A, U)
369+ else h((v + " is already allowed"))]
370+ if ((aw == aw))
371+ then ar(as, ab, G, Z)
366372 else throw("Strict value is not equal to itself.")
367373 }
368374
369375
370-@Verifier(be)
371-func bf () = {
372- let bg = (be.id == fromBase58String(valueOrElse(getString(this, I()), "")))
373- let bh = if ((size(M()) >= A))
376+@Verifier(bj)
377+func bk () = {
378+ let bl = (bj.id == fromBase58String(valueOrElse(getString(this, N()), "")))
379+ let bm = if ((size(R()) >= G))
374380 then false
375- else sigVerify(be.bodyBytes, be.proofs[0], be.senderPublicKey)
376- if (bg)
381+ else sigVerify(bj.bodyBytes, bj.proofs[0], bj.senderPublicKey)
382+ if (bl)
377383 then true
378- else bh
384+ else bm
379385 }
380386
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "l2mp_staking.ride"
55
66 let b = "__"
77
88 let c = 100000000
99
1010 let d = 1000000000000000000
1111
1212 let e = toBigInt(d)
1313
1414 let f = 26
1515
1616 let g = 1440
1717
1818 func h (i) = throw(((a + ": ") + i))
1919
2020
2121 let j = makeString(["%s", "assetId"], b)
2222
2323 let k = makeString(["%s", "emissionPerBlock"], b)
2424
2525 let l = makeString(["%s", "emissionPeriodInBlocks"], b)
2626
2727 let m = makeString(["%s", "startBlock"], b)
2828
2929 let n = makeString(["%s", "totalLpAmount"], b)
3030
3131 let o = makeString(["%s", "totalAssetAmount"], b)
3232
3333 func p (q) = makeString(["%s%s", "userLpAmount", q], b)
3434
3535
3636 func r (q) = makeString(["%s%s", "totalAssetWithdrawn", q], b)
3737
3838
3939 func s (q) = makeString(["%s%s", "totalAssetStaked", q], b)
4040
4141
42-let t = valueOrElse(getInteger(this, n), 0)
43-
44-let u = valueOrElse(getInteger(this, o), 0)
45-
46-let v = valueOrElse(getString(this, j), "WAVES")
47-
48-let w = if ((v == "WAVES"))
49- then unit
50- else fromBase58String(v)
51-
52-let x = valueOrElse(getInteger(this, l), g)
53-
54-let y = (valueOrElse(getInteger(this, k), 0) * x)
55-
56-let z = 5
57-
58-let A = 3
59-
60-let B = 32
61-
62-func C (D) = makeString(["%s%s%s", "allowTxId", D], b)
42+func t (u,q,v) = makeString(["%s%s%s", u, q, toBase58String(v)], b)
6343
6444
65-func E (F,G) = makeString([F, G], b)
45+func w (x,y) = makeString(["%d%d", toString(x), toString(y)], b)
6646
6747
68-func H () = makeString(["%s", "adminAddressList"], b)
48+let z = valueOrElse(getInteger(this, n), 0)
49+
50+let A = valueOrElse(getInteger(this, o), 0)
51+
52+let B = valueOrElse(getString(this, j), "WAVES")
53+
54+let C = if ((B == "WAVES"))
55+ then unit
56+ else fromBase58String(B)
57+
58+let D = valueOrElse(getInteger(this, l), g)
59+
60+let E = (valueOrElse(getInteger(this, k), 0) * D)
61+
62+let F = 5
63+
64+let G = 3
65+
66+let H = 32
67+
68+func I (v) = makeString(["%s%s%s", "allowTxId", v], b)
6969
7070
71-func I () = makeString(["%s", "txId"], b)
71+func J (K,L) = makeString([K, L], b)
7272
7373
74-func J (F,K) = {
75- let L = E(F, K)
76- valueOrElse(getInteger(L), 0)
74+func M () = makeString(["%s", "adminAddressList"], b)
75+
76+
77+func N () = makeString(["%s", "txId"], b)
78+
79+
80+func O (K,P) = {
81+ let Q = J(K, P)
82+ valueOrElse(getInteger(Q), 0)
7783 }
7884
7985
80-func M () = {
81- let N = getString(this, H())
82- if ($isInstanceOf(N, "String"))
86+func R () = {
87+ let S = getString(this, M())
88+ if ($isInstanceOf(S, "String"))
8389 then {
84- let O = N
85- split(O, b)
90+ let T = S
91+ split(T, b)
8692 }
8793 else nil
8894 }
8995
9096
91-func P (Q) = containsElement(M(), Q)
97+func U (V) = containsElement(R(), V)
9298
9399
94-func R (S,G) = {
95- let T = S
96- let U = T._1
97- let F = T._2
98- $Tuple2((U :+ E(F, G)), F)
100+func W (X,L) = {
101+ let Y = X
102+ let Z = Y._1
103+ let K = Y._2
104+ $Tuple2((Z :+ J(K, L)), K)
99105 }
100106
101107
102-func V (W) = {
103- let X = H()
104- let Y = {
105- let Z = M()
106- let aa = size(Z)
107- let ab = $Tuple2(nil, W)
108- func ac (ad,ae) = if ((ae >= aa))
109- then ad
110- else R(ad, Z[ae])
108+func aa (ab) = {
109+ let ac = M()
110+ let ad = {
111+ let ae = R()
112+ let af = size(ae)
113+ let ag = $Tuple2(nil, ab)
114+ func ah (ai,aj) = if ((aj >= af))
115+ then ai
116+ else W(ai, ae[aj])
111117
112- func af (ad,ae) = if ((ae >= aa))
113- then ad
118+ func ak (ai,aj) = if ((aj >= af))
119+ then ai
114120 else throw("List size exceeds 5")
115121
116- af(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5)
122+ ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
117123 }
118- let U = Y._1
119- let F = Y._2
120- U
124+ let Z = ad._1
125+ let K = ad._2
126+ Z
121127 }
122128
123129
124-func ag (U,L) = (U + valueOrElse(getInteger(L), 0))
130+func al (Z,Q) = (Z + valueOrElse(getInteger(Q), 0))
125131
126132
127-func ah (F) = {
128- let ai = V(F)
129- let Z = ai
130- let aa = size(Z)
131- let ab = 0
132- func ac (ad,ae) = if ((ae >= aa))
133- then ad
134- else ag(ad, Z[ae])
133+func am (K) = {
134+ let an = aa(K)
135+ let ae = an
136+ let af = size(ae)
137+ let ag = 0
138+ func ah (ai,aj) = if ((aj >= af))
139+ then ai
140+ else al(ai, ae[aj])
135141
136- func af (ad,ae) = if ((ae >= aa))
137- then ad
142+ func ak (ai,aj) = if ((aj >= af))
143+ then ai
138144 else throw("List size exceeds 5")
139145
140- af(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5)
146+ ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
141147 }
142148
143149
144-func aj (U,ak) = (U :+ DeleteEntry(ak))
150+func ao (Z,ap) = (Z :+ DeleteEntry(ap))
145151
146152
147-func al (F) = {
148- let ai = V(F)
149- let Z = ai
150- let aa = size(Z)
151- let ab = nil
152- func ac (ad,ae) = if ((ae >= aa))
153- then ad
154- else aj(ad, Z[ae])
153+func aq (K) = {
154+ let an = aa(K)
155+ let ae = an
156+ let af = size(ae)
157+ let ag = nil
158+ func ah (ai,aj) = if ((aj >= af))
159+ then ai
160+ else ao(ai, ae[aj])
155161
156- func af (ad,ae) = if ((ae >= aa))
157- then ad
162+ func ak (ai,aj) = if ((aj >= af))
163+ then ai
158164 else throw("List size exceeds 5")
159165
160- af(ac(ac(ac(ac(ac(ab, 0), 1), 2), 3), 4), 5)
166+ ak(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5)
161167 }
162168
163169
164-func am (an,W,ao,ap) = {
165- let L = E(W, an)
166- let aq = J(W, an)
167- let ar = if (!(P(an)))
168- then h((("Address: " + an) + " not in Admin list"))
169- else if ((aq == 1))
170- then h((L + " you already voted"))
170+func ar (as,ab,at,au) = {
171+ let Q = J(ab, as)
172+ let av = O(ab, as)
173+ let aw = if (!(U(as)))
174+ then h((("Address: " + as) + " not in Admin list"))
175+ else if ((av == 1))
176+ then h((Q + " you already voted"))
171177 else unit
172- if ((ar == ar))
178+ if ((aw == aw))
173179 then {
174- let ai = ah(W)
175- if (((ai + 1) >= ao))
180+ let an = am(ab)
181+ if (((an + 1) >= at))
176182 then {
177- let as = al(W)
178- (as ++ ap)
183+ let ax = aq(ab)
184+ (ax ++ au)
179185 }
180- else [IntegerEntry(L, 1)]
186+ else [IntegerEntry(Q, 1)]
181187 }
182188 else throw("Strict value is not equal to itself.")
183189 }
184190
185191
186-func at (au) = {
187- let av = valueOrElse(getInteger(this, m), 0)
188- let aw = fraction(av, 1, x)
189- let ax = ((au / x) - aw)
190- max([0, (y * ax)])
192+func ay (az) = {
193+ let aA = valueOrElse(getInteger(this, m), 0)
194+ let aB = fraction(aA, 1, D)
195+ let aC = ((az / D) - aB)
196+ max([0, (E * aC)])
191197 }
192198
193199
194-func ay () = at(height)
200+func aD () = ay(height)
195201
196202
197-func az () = {
198- let aA = (u + ay())
199- let aB = {
200- let N = w
201- if ($isInstanceOf(N, "Unit"))
203+func aE () = {
204+ let aF = (A + aD())
205+ let aG = {
206+ let S = C
207+ if ($isInstanceOf(S, "Unit"))
202208 then {
203- let aC = N
204- min([aA, wavesBalance(this).available])
209+ let aH = S
210+ min([aF, wavesBalance(this).available])
205211 }
206- else if ($isInstanceOf(N, "ByteVector"))
212+ else if ($isInstanceOf(S, "ByteVector"))
207213 then {
208- let aD = N
209- min([aA, assetBalance(this, aD)])
214+ let aI = S
215+ min([aF, assetBalance(this, aI)])
210216 }
211217 else throw("Match error")
212218 }
213- if ((t == 0))
219+ if ((z == 0))
214220 then 0
215- else aB
221+ else aG
216222 }
217223
218224
219-func aE () = if ((t != 0))
220- then fraction(toBigInt(az()), e, toBigInt(t))
225+func aJ () = if ((z != 0))
226+ then fraction(toBigInt(aE()), e, toBigInt(z))
221227 else e
222228
223229
224-func aF (q) = valueOrElse(getInteger(this, p(q)), 0)
230+func aK (q) = valueOrElse(getInteger(this, p(q)), 0)
225231
226232
227-func aG (q) = {
228- let aH = aF(q)
229- let aI = toInt(fraction(toBigInt(aH), aE(), e))
230- if ((0 > aI))
233+func aL (q) = {
234+ let aM = aK(q)
235+ let aN = toInt(fraction(toBigInt(aM), aJ(), e))
236+ if ((0 > aN))
231237 then 0
232- else aI
238+ else aN
233239 }
234240
235241
236-func aJ (aK,q) = {
237- let aL = [if ((size(aK.payments) == 1))
242+func aO (aP,q) = {
243+ let aQ = [if ((size(aP.payments) == 1))
238244 then true
239- else h("should include 1 payment"), if ((aK.payments[0].assetId == w))
245+ else h("should include 1 payment"), if ((aP.payments[0].assetId == C))
240246 then true
241- else h(("payment should be in " + v)), if ((aK.payments[0].amount > 0))
247+ else h(("payment should be in " + B)), if ((aP.payments[0].amount > 0))
242248 then true
243249 else "payment amount should be greater than 0"]
244- if ((aL == aL))
250+ if ((aQ == aQ))
245251 then {
246- let aM = aK.payments[0].amount
247- let aN = toInt(fraction(toBigInt(aM), e, aE()))
248- let aH = aF(q)
249- let aO = valueOrElse(getInteger(this, s(q)), 0)
250- let aP = (t + aN)
251- let aQ = (u + aM)
252- let aR = (aH + aN)
253- let aS = (aO + aM)
254- let aT = if ((t == 0))
252+ let aR = aP.payments[0].amount
253+ let aS = toInt(fraction(toBigInt(aR), e, aJ()))
254+ let aM = aK(q)
255+ let aT = valueOrElse(getInteger(this, s(q)), 0)
256+ let aU = (z + aS)
257+ let aV = (A + aR)
258+ let aW = (aM + aS)
259+ let aX = (aT + aR)
260+ let aY = if ((z == 0))
255261 then [IntegerEntry(m, height)]
256262 else nil
257- ([IntegerEntry(n, aP), IntegerEntry(o, aQ), IntegerEntry(p(q), aR), IntegerEntry(s(q), aS)] ++ aT)
263+ ([StringEntry(t("stake", q, aP.transactionId), w(aD(), aJ())), IntegerEntry(n, aU), IntegerEntry(o, aV), IntegerEntry(p(q), aW), IntegerEntry(s(q), aX)] ++ aY)
258264 }
259265 else throw("Strict value is not equal to itself.")
260266 }
261267
262268
263-func aU (aK,aV) = {
264- let q = toString(aK.caller)
265- let aH = aF(q)
266- let aW = [if ((aV > 0))
269+func aZ (aP,ba) = {
270+ let q = toString(aP.caller)
271+ let aM = aK(q)
272+ let bb = [if ((ba > 0))
267273 then true
268- else h("LP amount should be more than 0"), if ((aH >= aV))
274+ else h("LP amount should be more than 0"), if ((aM >= ba))
269275 then true
270- else h((("cannot withdraw more than available LP (" + toString(aH)) + ")"))]
271- if ((aW == aW))
276+ else h((("cannot withdraw more than available LP (" + toString(aM)) + ")"))]
277+ if ((bb == bb))
272278 then {
273- let aR = (aH - aV)
274- let aX = toInt(fraction(toBigInt(aV), aE(), e))
275- let aP = (t - aV)
276- let aQ = toInt(fraction(toBigInt(aP), aE(), e))
277- let aY = valueOrElse(getInteger(this, r(q)), 0)
278- let aZ = (aY + aX)
279-[IntegerEntry(n, aP), IntegerEntry(o, aQ), IntegerEntry(p(q), aR), IntegerEntry(r(q), aZ), IntegerEntry(m, height), ScriptTransfer(aK.caller, aX, w)]
279+ let aW = (aM - ba)
280+ let bc = toInt(fraction(toBigInt(ba), aJ(), e))
281+ let aU = (z - ba)
282+ let aV = toInt(fraction(toBigInt(aU), aJ(), e))
283+ let bd = valueOrElse(getInteger(this, r(q)), 0)
284+ let be = (bd + bc)
285+[StringEntry(t("withdraw", q, aP.transactionId), w(aD(), aJ())), IntegerEntry(n, aU), IntegerEntry(o, aV), IntegerEntry(p(q), aW), IntegerEntry(r(q), be), IntegerEntry(m, height), ScriptTransfer(aP.caller, bc, C)]
280286 }
281287 else throw("Strict value is not equal to itself.")
282288 }
283289
284290
285-@Callable(aK)
286-func setEmissionPerBlock (ba) = {
287- let aW = [if ((aK.caller == this))
291+@Callable(aP)
292+func setEmissionPerBlock (bf) = {
293+ let bb = [if ((aP.caller == this))
288294 then true
289295 else h("permission denied")]
290- if ((aW == aW))
291- then [IntegerEntry(o, az()), IntegerEntry(m, height), IntegerEntry(k, max([0, ba]))]
296+ if ((bb == bb))
297+ then [IntegerEntry(o, aE()), IntegerEntry(m, height), IntegerEntry(k, max([0, bf]))]
292298 else throw("Strict value is not equal to itself.")
293299 }
294300
295301
296302
297-@Callable(aK)
298-func stake () = aJ(aK, toString(aK.caller))
303+@Callable(aP)
304+func stake () = aO(aP, toString(aP.caller))
299305
300306
301307
302-@Callable(aK)
308+@Callable(aP)
303309 func stakeFor (q) = {
304- let aW = [if ((size(fromBase58String(q)) == f))
310+ let bb = [if ((size(fromBase58String(q)) == f))
305311 then true
306312 else h("address is not valid")]
307- if ((aW == aW))
308- then aJ(aK, q)
313+ if ((bb == bb))
314+ then aO(aP, q)
309315 else throw("Strict value is not equal to itself.")
310316 }
311317
312318
313319
314-@Callable(aK)
315-func withdraw (aX) = {
316- let q = toString(aK.caller)
317- let aH = aF(q)
318- let bb = toInt(fraction(toBigInt(aX), e, aE()))
319- let aI = aG(q)
320- let bc = toInt(fraction(aE(), toBigInt(1), e, CEILING))
321- let aW = [if ((aX > 0))
320+@Callable(aP)
321+func withdraw (bc) = {
322+ let q = toString(aP.caller)
323+ let aM = aK(q)
324+ let bg = toInt(fraction(toBigInt(bc), e, aJ()))
325+ let aN = aL(q)
326+ let bh = toInt(fraction(aJ(), toBigInt(1), e, CEILING))
327+ let bb = [if ((bc > 0))
322328 then true
323- else h("withdraw amount should be more than 0"), if ((aI >= aX))
329+ else h("withdraw amount should be more than 0"), if ((aN >= bc))
324330 then true
325- else h((("cannot withdraw more than available (" + toString(aI)) + ")")), if ((aX >= bc))
331+ else h((("cannot withdraw more than available (" + toString(aN)) + ")")), if ((bc >= bh))
326332 then true
327- else h((("withdraw amount is too small. Min: (" + toString(bc)) + ")"))]
328- if ((aW == aW))
329- then aU(aK, bb)
333+ else h((("withdraw amount is too small. Min: (" + toString(bh)) + ")"))]
334+ if ((bb == bb))
335+ then aZ(aP, bg)
330336 else throw("Strict value is not equal to itself.")
331337 }
332338
333339
334340
335-@Callable(aK)
341+@Callable(aP)
336342 func getUserAssetsREADONLY (q) = {
337- let aH = aF(q)
338- let aI = aG(q)
339- let aO = valueOrElse(getInteger(this, s(q)), 0)
340- let aY = valueOrElse(getInteger(this, r(q)), 0)
341- $Tuple2(nil, $Tuple5(aH, aI, aE(), aO, aY))
343+ let aM = aK(q)
344+ let aN = aL(q)
345+ let aT = valueOrElse(getInteger(this, s(q)), 0)
346+ let bd = valueOrElse(getInteger(this, r(q)), 0)
347+ $Tuple2(nil, $Tuple5(aM, aN, aJ(), aT, bd))
342348 }
343349
344350
345351
346-@Callable(aK)
347-func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple3(t, az(), aE()))
352+@Callable(aP)
353+func getTotalAssetsREADONLY () = $Tuple2(nil, $Tuple3(z, aE(), aJ()))
348354
349355
350356
351-@Callable(aK)
352-func voteForTxId (D) = {
353- let an = toBase58String(aK.caller.bytes)
354- let W = C(D)
355- let U = [StringEntry(I(), D)]
356- let bd = getString(this, I())
357- let ar = [if ((size(fromBase58String(D)) == B))
357+@Callable(aP)
358+func voteForTxId (v) = {
359+ let as = toBase58String(aP.caller.bytes)
360+ let ab = I(v)
361+ let Z = [StringEntry(N(), v)]
362+ let bi = getString(this, N())
363+ let aw = [if ((size(fromBase58String(v)) == H))
358364 then true
359- else h((D + " is not valid txId")), if (if ((bd == unit))
365+ else h((v + " is not valid txId")), if (if ((bi == unit))
360366 then true
361- else (value(bd) != D))
367+ else (value(bi) != v))
362368 then true
363- else h((D + " is already allowed"))]
364- if ((ar == ar))
365- then am(an, W, A, U)
369+ else h((v + " is already allowed"))]
370+ if ((aw == aw))
371+ then ar(as, ab, G, Z)
366372 else throw("Strict value is not equal to itself.")
367373 }
368374
369375
370-@Verifier(be)
371-func bf () = {
372- let bg = (be.id == fromBase58String(valueOrElse(getString(this, I()), "")))
373- let bh = if ((size(M()) >= A))
376+@Verifier(bj)
377+func bk () = {
378+ let bl = (bj.id == fromBase58String(valueOrElse(getString(this, N()), "")))
379+ let bm = if ((size(R()) >= G))
374380 then false
375- else sigVerify(be.bodyBytes, be.proofs[0], be.senderPublicKey)
376- if (bg)
381+ else sigVerify(bj.bodyBytes, bj.proofs[0], bj.senderPublicKey)
382+ if (bl)
377383 then true
378- else bh
384+ else bm
379385 }
380386

github/deemru/w8io/026f985 
116.56 ms