tx · DCyTDtDgSRnL2Sgkvcg3ikUrNe6z5QkA6aFRBPiYG9CP

3N8NLvRGsbGhgoXy7EdigPbAz6N2i7ygBcZ:  -0.01800000 Waves

2023.12.18 19:21 [2892386] smart account 3N8NLvRGsbGhgoXy7EdigPbAz6N2i7ygBcZ > SELF 0.00000000 Waves

{ "type": 13, "id": "DCyTDtDgSRnL2Sgkvcg3ikUrNe6z5QkA6aFRBPiYG9CP", "fee": 1800000, "feeAssetId": null, "timestamp": 1702916515924, "version": 2, "chainId": 84, "sender": "3N8NLvRGsbGhgoXy7EdigPbAz6N2i7ygBcZ", "senderPublicKey": "CQoe8BRHR78TuPQLcK3Ykv39w9CeNLhjKdj6TNbJ5FrM", "proofs": [ "2sEv7Sk9aU2Y6WYCo9DxPZCeBfp2JyGuFTRhNxfq8UZV4D5sFiPTgFYoabjXWEN3GYaaczkxv7vu9w9qd1Jng9sC" ], "script": "base64:BgIaCAISBgoECAgBCBIDCgEEEgMKAQgSBAoCCAJJAANTRVACAl9fAAdXQVZFU0lEAQQTq9kzAAZXQVZFU0QAgMLXLwAJR0FNRV9OQU1FAglYbWFzIFRyZWUADFJBTkRPTV9SQU5HRQAFAAhOVU1fQkVUUwABAA9NQVhfREVDT1JBVElPTlMAHAEMZ2V0U3RyT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABDGdldEludE9yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQ1nZXRCb29sT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAAEGFsbG93ZWRBc3NldHNLZXkCGCVzJXNfX2NmZ19fYWxsb3dlZEFzc2V0cwARYXNzZXRzRGVjaW1hbHNLZXkCGSVzJXNfX2NmZ19fYXNzZXRzRGVjaW1hbHMADmJldERpdmlkZXJzS2V5AhwlcyVzX19jZmdfX2Fzc2V0c0JldERpdmlkZXJzAA5SU0FQVUJMSUM2NEtFWQIWJXMlc19fY2ZnX19yc2FQdWJsaWM2NAAQU0VSVkVSQUREUkVTU0tFWQIWJXMlc19fY2ZnX19iZW56QWRkcmVzcwAQUkFORFRJTUVGUkFNRUtFWQIcJXMlc19fY2ZnX193aXRoZHJhd1RpbWVGcmFtZQAPR0FNRVNDT1VOVEVSS0VZAhYlcyVzX19ydW50aW1lX19nYW1lTnVtAApibG9ja2VkS2V5AiAlcyVzX19ydW50aW1lX19jb250cmFjdElzQmxvY2tlZAAScmVzZXJ2ZWRBbW91bnRzS2V5Ah4lcyVzX19ydW50aW1lX19yZXNlcnZlZEFtb3VudHMACmhpc3RvcnlLZXkCISVzJXNfX3J1bnRpbWVfX2RlY29yYXRpb25zSGlzdG9yeQELZ2V0SW50QXJyYXkBA2tleQQBYQkBDGdldFN0ck9yRmFpbAIFBHRoaXMFA2tleQoBBmZpbGxlcgIDYWNjAmVsCQDNCAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQJlbAoAAiRsCQC1CQIFAWEFA1NFUAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEGZmlsbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAZBU1NFVFMJALUJAgkBDGdldFN0ck9yRmFpbAIFBHRoaXMFEGFsbG93ZWRBc3NldHNLZXkFA1NFUAAIREVDSU1BTFMJAQtnZXRJbnRBcnJheQEFEWFzc2V0c0RlY2ltYWxzS2V5AAtCRVRESVZJREVSUwkBC2dldEludEFycmF5AQUOYmV0RGl2aWRlcnNLZXkBGGtleVJlc2VydmF0aW9uQnlBc3NldFN0cgEIYXNzZXRTdHIJAKwCAgIRJFJFU0VSVkVEX0FNT1VOVF8FCGFzc2V0U3RyARhrZXlSZXNlcnZhdGlvbkJ5QXNzZXRJZHgBCGFzc2V0SWR4CQEYa2V5UmVzZXJ2YXRpb25CeUFzc2V0U3RyAQkAkQMCBQZBU1NFVFMFCGFzc2V0SWR4AAtNSU5GRUVXQVZFUwkAaQIJAGgCAAUFBldBVkVTRADoBwAJaWR4QXNzZXRzAAAAC2lkeERlY2ltYWxzAAEAC2lkeERpdmlkZXJzAAIABEJFVDEAAQAEQkVUMgACAARCRVQ0AAQABEJFVDgACAAFQkVUMTQADgAIUkFURU1VTFQAkE4ABFJBVEUAsOoBAARCRVRTCQDMCAIFBEJFVDIFA25pbAAMSWR4R2FtZVN0YXRlAAAAD0lkeFBsYXllckNob2ljZQABABFJZHhQbGF5ZXJQdWJLZXk1OAACABBJZHhTdGFydGVkSGVpZ2h0AAMADElkeFdpbkFtb3VudAAEAApJZHhBc3NldElkAAUADlNUQVRFU1VCTUlUVEVEAglTVUJNSVRURUQACFNUQVRFV09OAgNXT04ACVNUQVRFTE9TVAIETE9TVAEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgUDa2V5AiMga2V5IGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhpcy5zdGF0ZQAJUlNBUFVCTElDCQDbBAEJAQ9nZXRTdHJpbmdPckZhaWwBBQ5SU0FQVUJMSUM2NEtFWQAGU0VSVkVSCQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQUQU0VSVkVSQUREUkVTU0tFWQATUkFORE9SQUNMRVRJTUVGUkFNRQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRBSQU5EVElNRUZSQU1FS0VZAKA4AQhnZXRJbnRPcgIDa2V5B2RlZmF1bHQDCQEJaXNEZWZpbmVkAQkAnwgBBQNrZXkJARFAZXh0ck5hdGl2ZSgxMDU1KQEFA2tleQUHZGVmYXVsdAEGc2V0SW50AgNrZXkFdmFsdWUJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQxpbmNyZW1lbnRJbnQBA2tleQkBBnNldEludAIFA2tleQkAZAIJAQhnZXRJbnRPcgIFA2tleQD///////////8BAAEBCWNoYW5nZUludAIDa2V5AmJ5CQEGc2V0SW50AgUDa2V5CQBkAgkBCGdldEludE9yAgUDa2V5AAAFAmJ5AQxhc3NldElkVG9TdHIBDWFzc2V0SWRPclVuaXQEByRtYXRjaDAFDWFzc2V0SWRPclVuaXQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAgVXQVZFUwEOYXNzZXRJZEZyb21TdHIBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgEPZ2V0QXNzZXRCYWxhbmNlAQ1hc3NldElkT3JVbml0BAckbWF0Y2gwBQ1hc3NldElkT3JVbml0AwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEB2Fzc2V0SWQFByRtYXRjaDAJAPAHAgUEdGhpcwUHYXNzZXRJZAgJAO8HAQUEdGhpcwlhdmFpbGFibGUBFWluY3JlYXNlUmVzZXJ2ZUFtb3VudAIJd2luQW1vdW50CGFzc2V0SWR4BAphc3NldElkU3RyCQCRAwIFBkFTU0VUUwUIYXNzZXRJZHgEEW5ld1Jlc2VydmVkQW1vdW50CQBkAgkBCGdldEludE9yAgkBGGtleVJlc2VydmF0aW9uQnlBc3NldElkeAEFCGFzc2V0SWR4AAAFCXdpbkFtb3VudAMJAGYCBRFuZXdSZXNlcnZlZEFtb3VudAkBD2dldEFzc2V0QmFsYW5jZQEJAQ5hc3NldElkRnJvbVN0cgEFCmFzc2V0SWRTdHIJAAIBCQCsAgIJAKwCAgIWSW5zdWZmaWNpZW50IGZ1bmRzIG9uIAUJR0FNRV9OQU1FAjMgYWNjb3VudC4gVHJhbnNhY3Rpb24gd2FzIHJlamVjdGVkIGZvciB5b3VyIHNhZmV0eS4FEW5ld1Jlc2VydmVkQW1vdW50ARZkZWNyZWFzZVJlc2VydmVkQW1vdW50AwZnYW1lSWQIYXNzZXRJZHgJd2luQW1vdW50AwkAZgIAAAkAZQIJAQhnZXRJbnRPcgIJARhrZXlSZXNlcnZhdGlvbkJ5QXNzZXRJZHgBBQhhc3NldElkeAAABQl3aW5BbW91bnQJAAIBCQCsAgIJAKwCAgIISW52YWxpZCAFCUdBTUVfTkFNRQIvIGFjY291bnQgc3RhdGUgLSByZXNlcnZlZCBhbW91bnQgaXMgbGVzcyB0aGFuIDAJAQljaGFuZ2VJbnQCCQEYa2V5UmVzZXJ2YXRpb25CeUFzc2V0SWR4AQUIYXNzZXRJZHgJAQEtAQUJd2luQW1vdW50ARZ2YWxpZGF0ZUFuZEdl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X1JBTkdFCQCkAwEJAGQCBQRyYW5kAAEBC2lzUGxheWVyV2luAgxwbGF5ZXJDaG9pY2UKcmFuZENob2lzZQQBcwkAsQIBBQxwbGF5ZXJDaG9pY2UKAQVjaGVjawIBYQF4AwUBYQYDCQBnAgUBcwUBeAkAAAIJAK8CAgkAsAICBQxwbGF5ZXJDaG9pY2UJAGUCBQF4AAEAAQUKcmFuZENob2lzZQcKAAIkbAkAzAgCAAEJAMwIAgACCQDMCAIAAwkAzAgCAAQJAMwIAgAFBQNuaWwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBwoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFY2hlY2sCBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAQ9mb3JtYXRHYW1lRGF0YVMKCmdhbWVTdGF0dXMMcGxheWVyQ2hvaWNlDnBsYXllclB1YktleTU4DXN0YXJ0ZWRIZWlnaHQJd2luQW1vdW50CGFzc2V0SWR4C3JhbmRPckVtcHR5BnhDb29yZAZ5Q29vcmQKcHJpemVJbmRleAkAuQkCCQDMCAIFCmdhbWVTdGF0dXMJAMwIAgUMcGxheWVyQ2hvaWNlCQDMCAIFDnBsYXllclB1YktleTU4CQDMCAIFDXN0YXJ0ZWRIZWlnaHQJAMwIAgUJd2luQW1vdW50CQDMCAIFCGFzc2V0SWR4CQDMCAIDCQAAAgULcmFuZE9yRW1wdHkCAAIABQtyYW5kT3JFbXB0eQkAzAgCBQZ4Q29vcmQJAMwIAgUGeUNvb3JkCQDMCAIFCnByaXplSW5kZXgFA25pbAIBXwEOZm9ybWF0R2FtZURhdGEKCmdhbWVTdGF0dXMMcGxheWVyQ2hvaWNlDnBsYXllclB1YktleTU4DXN0YXJ0ZWRIZWlnaHQJd2luQW1vdW50CGFzc2V0SWR4C3JhbmRPckVtcHR5BnhDb29yZAZ5Q29vcmQKcHJpemVJbmRleAkBD2Zvcm1hdEdhbWVEYXRhUwoFCmdhbWVTdGF0dXMFDHBsYXllckNob2ljZQUOcGxheWVyUHViS2V5NTgJAKQDAQUNc3RhcnRlZEhlaWdodAkApAMBBQl3aW5BbW91bnQJAKQDAQUIYXNzZXRJZHgFC3JhbmRPckVtcHR5CQCkAwEFBnhDb29yZAkApAMBBQZ5Q29vcmQJAKQDAQUKcHJpemVJbmRleAEOZmluaXNoR2FtZURhdGEHDG9yaWdHYW1lRGF0YQpnYW1lU3RhdHVzBHJhbmQMd2luQnlUaW1lb3V0BnhDb29yZAZ5Q29vcmQKcHJpemVJbmRleAQOZmluaXNoR2FtZURhdGEJAQ9mb3JtYXRHYW1lRGF0YVMKBQpnYW1lU3RhdHVzCQCRAwIFDG9yaWdHYW1lRGF0YQUPSWR4UGxheWVyQ2hvaWNlCQCRAwIFDG9yaWdHYW1lRGF0YQURSWR4UGxheWVyUHViS2V5NTgJAJEDAgUMb3JpZ0dhbWVEYXRhBRBJZHhTdGFydGVkSGVpZ2h0CQCRAwIFDG9yaWdHYW1lRGF0YQUMSWR4V2luQW1vdW50CQCRAwIFDG9yaWdHYW1lRGF0YQUKSWR4QXNzZXRJZAUEcmFuZAkApAMBBQZ4Q29vcmQJAKQDAQUGeUNvb3JkCQCkAwEFCnByaXplSW5kZXgDBQx3aW5CeVRpbWVvdXQJAKwCAgUOZmluaXNoR2FtZURhdGECCF9USU1FT1VUBQ5maW5pc2hHYW1lRGF0YQEPZXh0cmFjdEdhbWVEYXRhAQZnYW1lSWQJALUJAgQHJG1hdGNoMAkAnQgCBQR0aGlzBQZnYW1lSWQDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAFA3N0cgkAAgEJAKwCAgkArAICAgZHYW1lOiAFBmdhbWVJZAILIG5vdCBmb3VuZC4CAV8EAWkBDWNvbnN0cnVjdG9yVjEEC3JzYVB1YmxpYzY0C2JlbnpBZGRyZXNzE3JhbmRPcmFjbGVUaW1lRnJhbWUQdG9rZW5zRGVzY3JpcHRvcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECDm5vdCBhdXRob3JpemVkCgEIc3BsaXR0ZXICA2FjYwRlbGVtBAd0b2tMaXN0CQC1CQIFBGVsZW0CAToDCQECIT0CCQCQAwEFB3Rva0xpc3QAAwkAAgECFEludmFsaWQgYXNzZXQgcmVjb3JkCQCVCgMJAM0IAggFA2FjYwJfMQkAkQMCBQd0b2tMaXN0BQlpZHhBc3NldHMJAM0IAggFA2FjYwJfMgkAkQMCBQd0b2tMaXN0BQtpZHhEZWNpbWFscwkAzQgCCAUDYWNjAl8zCQCRAwIFB3Rva0xpc3QFC2lkeERpdmlkZXJzBAFyCgACJGwJALwJAgUQdG9rZW5zRGVzY3JpcHRvcgIBXwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwUDbmlsBQNuaWwFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIc3BsaXR0ZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECFExpc3Qgc2l6ZSBleGNlZWRzIDEwCQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGAAcACAAJAAoJAMwIAgkBC1N0cmluZ0VudHJ5AgUOUlNBUFVCTElDNjRLRVkFC3JzYVB1YmxpYzY0CQDMCAIJAQtTdHJpbmdFbnRyeQIFEFNFUlZFUkFERFJFU1NLRVkFC2JlbnpBZGRyZXNzCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRBSQU5EVElNRUZSQU1FS0VZBRNyYW5kT3JhY2xlVGltZUZyYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIFEGFsbG93ZWRBc3NldHNLZXkJALoJAggFAXICXzEFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCBRFhc3NldHNEZWNpbWFsc0tleQkAuQkCCAUBcgJfMgUDU0VQCQDMCAIJAQtTdHJpbmdFbnRyeQIFDmJldERpdmlkZXJzS2V5CQC5CQIIBQFyAl8zBQNTRVAFA25pbAFpAQttYWludGVuYW5jZQEHYmxvY2tlZAMJAQIhPQIIBQFpBmNhbGxlcgUGU0VSVkVSCQACAQIObm90IGF1dGhvcml6ZWQJAMwIAgkBDEJvb2xlYW5FbnRyeQIFCmJsb2NrZWRLZXkFB2Jsb2NrZWQFA25pbAFpAQNiZXQBDHBsYXllckNob2ljZQMJAQt2YWx1ZU9yRWxzZQIJAKAIAQUKYmxvY2tlZEtleQcJAAIBAh9HYW1lIGlzIHN0b3BwZWQgZm9yIG1haW50ZW5lbmNlBAZnYW1lSWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAMJAGcCAAEJAJADAQgFAWkIcGF5bWVudHMJAAIBAhsyIHBheW1lbnRzIG11c3QgYmUgYXR0YWNoZWQDCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQZnYW1lSWQJAAIBCQCsAgIJAKwCAgIJQmV0IGZvcjogBQZnYW1lSWQCEiB3YXMgYWxyZWFkeSBtYWRlLgQGYmV0UG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEBmZlZVBtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABAwkBCWlzRGVmaW5lZAEIBQZmZWVQbXQHYXNzZXRJZAkAAgECLWZlZVBtdCAoMm5kIHBheW1lbnQpIGFzc2V0SWQgbXVzdCBiZSBpbiBXYXZlcwMJAGYCBQtNSU5GRUVXQVZFUwgFBmZlZVBtdAZhbW91bnQJAAIBAitmZWVQbXQgKDJuZCBwYXltZW50KSBtdXN0IGJlID49IDAuMDA1IFdhdmVzBAphc3NldElkU3RyCQEMYXNzZXRJZFRvU3RyAQgFBmJldFBtdAdhc3NldElkBBBpbnRlcm5hbEFzc2V0SWR4CQEWdmFsaWRhdGVBbmRHZXRBc3NldElkeAEFCmFzc2V0SWRTdHIECmNvbW1pc3Npb24IBQZmZWVQbXQGYW1vdW50BAl3aW5BbW91bnQJARp2YWxpZGF0ZUJldEFuZEdldFdpbkFtb3VudAMIBQZiZXRQbXQGYW1vdW50BRBpbnRlcm5hbEFzc2V0SWR4BQxwbGF5ZXJDaG9pY2UEDnBsYXllclB1YktleTU4CQDYBAEIBQFpD2NhbGxlclB1YmxpY0tleQQIZ2FtZURhdGEJAQ5mb3JtYXRHYW1lRGF0YQoFDlNUQVRFU1VCTUlUVEVEBQxwbGF5ZXJDaG9pY2UFDnBsYXllclB1YktleTU4BQZoZWlnaHQFCXdpbkFtb3VudAUQaW50ZXJuYWxBc3NldElkeAIAAP///////////wEA////////////AQD///////////8BCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYa2V5UmVzZXJ2YXRpb25CeUFzc2V0SWR4AQUQaW50ZXJuYWxBc3NldElkeAkBFWluY3JlYXNlUmVzZXJ2ZUFtb3VudAIFCXdpbkFtb3VudAUQaW50ZXJuYWxBc3NldElkeAkAzAgCCQEMaW5jcmVtZW50SW50AQUPR0FNRVNDT1VOVEVSS0VZCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmdhbWVJZAUIZ2FtZURhdGEJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUGU0VSVkVSBQpjb21taXNzaW9uCAUGZmVlUG10B2Fzc2V0SWQFA25pbAFpAQh3aXRoZHJhdwIGZ2FtZUlkB3JzYVNpZ24ECGdhbWVEYXRhCQEPZXh0cmFjdEdhbWVEYXRhAQUGZ2FtZUlkBAlnYW1lU3RhdGUJAJEDAgUIZ2FtZURhdGEFDElkeEdhbWVTdGF0ZQQMcGxheWVyQ2hvaWNlCQCRAwIFCGdhbWVEYXRhBQ9JZHhQbGF5ZXJDaG9pY2UEDXN0YXJ0ZWRIZWlnaHQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhnYW1lRGF0YQUQSWR4U3RhcnRlZEhlaWdodAQJd2luQW1vdW50CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZ2FtZURhdGEFDElkeFdpbkFtb3VudAQIYXNzZXRJZHgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQhnYW1lRGF0YQUKSWR4QXNzZXRJZAQOcGxheWVyUHViS2V5NTgJAJEDAgUIZ2FtZURhdGEFEUlkeFBsYXllclB1YktleTU4BA1wbGF5ZXJBZGRyZXNzCQCnCAEJANkEAQUOcGxheWVyUHViS2V5NTgDCQECIT0CBQlnYW1lU3RhdGUFDlNUQVRFU1VCTUlUVEVECQACAQIkSW52YWxpZCBnYW1lIHN0YXRlIGZvciBwYXNzZWQgZ2FtZUlkAwkBAiE9AggFAWkGY2FsbGVyBQZTRVJWRVIJAAIBAitSZWd1bGFyIHdpdGhkcmF3IGNhbiBiZSBkb25lIGJ5IHNlcnZlciBvbmx5BAx3aW5CeVRpbWVvdXQJAGYCCQBlAgUGaGVpZ2h0BQ1zdGFydGVkSGVpZ2h0BRNSQU5ET1JBQ0xFVElNRUZSQU1FBApyYW5kQ2hvaWNlAwUMd2luQnlUaW1lb3V0CQCvAgIFDHBsYXllckNob2ljZQABCQESZ2VuZXJhdGVSYW5kQ2hvaWNlAgUGZ2FtZUlkBQdyc2FTaWduBAlwbGF5ZXJXaW4JAQtpc1BsYXllcldpbgIFDHBsYXllckNob2ljZQUKcmFuZENob2ljZQQNbmV3R2FtZVN0YXR1cwMFCXBsYXllcldpbgUIU1RBVEVXT04FCVNUQVRFTE9TVAQGY29vcmRzAwUJcGxheWVyV2luCQDMCAIJAQEtAQUCTTQJAMwIAgkBAS0BBQJNNAUDbmlsCQEJZ2V0Q29vcmRzAgUGZ2FtZUlkBQdyc2FTaWduBApwcml6ZUluZGV4AwUJcGxheWVyV2luAP///////////wEJARJnZXREZWNvcmF0aW9uSW5kZXgCBQZnYW1lSWQFB3JzYVNpZ24EAXgJAGkCCQCRAwIFBmNvb3JkcwAABQJNNAQBeQkAaQIJAJEDAgUGY29vcmRzAAEFAk00BAtuZXdHYW1lRGF0YQkBDmZpbmlzaEdhbWVEYXRhBwUIZ2FtZURhdGEFDW5ld0dhbWVTdGF0dXMFCnJhbmRDaG9pY2UFDHdpbkJ5VGltZW91dAUBeAUBeQUKcHJpemVJbmRleAQKb2xkSGlzdG9yeQkBC3ZhbHVlT3JFbHNlAgkAoggBBQpoaXN0b3J5S2V5AgAECm5ld0hpc3RvcnkJAKwCAgMJAAACBQpvbGRIaXN0b3J5AgACAAkArAICBQpvbGRIaXN0b3J5AgFfCQC5CQIJAMwIAgkApAMBBQF4CQDMCAIJAKQDAQUBeQkAzAgCCQCkAwEFCnByaXplSW5kZXgFA25pbAIBOgkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIFBmdhbWVJZAULbmV3R2FtZURhdGEJAMwIAgkBFmRlY3JlYXNlUmVzZXJ2ZWRBbW91bnQDBQZnYW1lSWQFCGFzc2V0SWR4BQl3aW5BbW91bnQFA25pbAMFCXBsYXllcldpbgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ1wbGF5ZXJBZGRyZXNzBQl3aW5BbW91bnQJAQ5hc3NldElkRnJvbVN0cgEJAJEDAgUGQVNTRVRTBQhhc3NldElkeAUDbmlsCQDMCAIJAQtTdHJpbmdFbnRyeQIFCmhpc3RvcnlLZXkFCm5ld0hpc3RvcnkFA25pbAECdHgBBnZlcmlmeQADCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5BAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhNUcmFuc2ZlclRyYW5zYWN0aW9uBAN0dHgFByRtYXRjaDAECGFzc2V0SWR4CQEWdmFsaWRhdGVBbmRHZXRBc3NldElkeAEJAQxhc3NldElkVG9TdHIBCAUDdHR4B2Fzc2V0SWQJAGcCCQBlAgkBD2dldEFzc2V0QmFsYW5jZQEIBQN0dHgHYXNzZXRJZAgFA3R0eAZhbW91bnQJAQhnZXRJbnRPcgIJARhrZXlSZXNlcnZhdGlvbkJ5QXNzZXRJZHgBBQhhc3NldElkeAAAAwkAAQIFByRtYXRjaDACFFNldFNjcmlwdFRyYW5zYWN0aW9uBANzdHgFByRtYXRjaDAKAQdjaGVja2VyAgNhY2MFYXNzZXQDBQNhY2MJAAACCQEIZ2V0SW50T3ICCQEYa2V5UmVzZXJ2YXRpb25CeUFzc2V0U3RyAQUFYXNzZXQAAAAABwoAAiRsBQZBU1NFVFMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBgoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEHY2hlY2tlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaXR4BQckbWF0Y2gwAwkAAAIIBQNpdHgEZEFwcAUEdGhpcwkAAAIIBQNpdHgIZnVuY3Rpb24CDWNvbnN0cnVjdG9yVjEHBweO2VeQ", "height": 2892386, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: mL53EgciGKFPYUNGQ99pTkZj6kX3KLPQLmHsBPLwp4P Next: qMVN2FegXccAQ1cEi8DV5Gem5DxmPUYug7AGf9wT9DQ Diff:
OldNewDifferences
1313
1414 let f = 1
1515
16-let g = 15
16+let g = 28
1717
1818 func h (i,j) = valueOrErrorMessage(getString(i, j), makeString(["mandatory ", toString(i), ".", j, " is not defined"], ""))
1919
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = base58'WAVES'
77
88 let c = 100000000
99
1010 let d = "Xmas Tree"
1111
1212 let e = 5
1313
1414 let f = 1
1515
16-let g = 15
16+let g = 28
1717
1818 func h (i,j) = valueOrErrorMessage(getString(i, j), makeString(["mandatory ", toString(i), ".", j, " is not defined"], ""))
1919
2020
2121 func k (i,j) = valueOrErrorMessage(getInteger(i, j), makeString(["mandatory ", toString(i), ".", j, " is not defined"], ""))
2222
2323
2424 func l (i,j) = valueOrErrorMessage(getBoolean(i, j), makeString(["mandatory ", toString(i), ".", j, " is not defined"], ""))
2525
2626
2727 let m = "%s%s__cfg__allowedAssets"
2828
2929 let n = "%s%s__cfg__assetsDecimals"
3030
3131 let o = "%s%s__cfg__assetsBetDividers"
3232
3333 let p = "%s%s__cfg__rsaPublic64"
3434
3535 let q = "%s%s__cfg__benzAddress"
3636
3737 let r = "%s%s__cfg__withdrawTimeFrame"
3838
3939 let s = "%s%s__runtime__gameNum"
4040
4141 let t = "%s%s__runtime__contractIsBlocked"
4242
4343 let u = "%s%s__runtime__reservedAmounts"
4444
4545 let v = "%s%s__runtime__decorationsHistory"
4646
4747 func w (j) = {
4848 let x = h(this, j)
4949 func y (z,A) = (z :+ parseIntValue(A))
5050
5151 let B = split(x, a)
5252 let C = size(B)
5353 let D = nil
5454 func E (F,G) = if ((G >= C))
5555 then F
5656 else y(F, B[G])
5757
5858 func H (F,G) = if ((G >= C))
5959 then F
6060 else throw("List size exceeds 10")
6161
6262 H(E(E(E(E(E(E(E(E(E(E(D, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
6363 }
6464
6565
6666 let I = split(h(this, m), a)
6767
6868 let J = w(n)
6969
7070 let K = w(o)
7171
7272 func L (M) = ("$RESERVED_AMOUNT_" + M)
7373
7474
7575 func N (O) = L(I[O])
7676
7777
7878 let P = ((5 * c) / 1000)
7979
8080 let Q = 0
8181
8282 let R = 1
8383
8484 let S = 2
8585
8686 let T = 1
8787
8888 let U = 2
8989
9090 let V = 4
9191
9292 let W = 8
9393
9494 let X = 14
9595
9696 let Y = 10000
9797
9898 let Z = 30000
9999
100100 let aa = [U]
101101
102102 let ab = 0
103103
104104 let ac = 1
105105
106106 let ad = 2
107107
108108 let ae = 3
109109
110110 let af = 4
111111
112112 let ag = 5
113113
114114 let ah = "SUBMITTED"
115115
116116 let ai = "WON"
117117
118118 let aj = "LOST"
119119
120120 func ak (j) = valueOrErrorMessage(getString(this, j), (j + " key is not specified in this.state"))
121121
122122
123123 let al = fromBase64String(ak(p))
124124
125125 let am = addressFromStringValue(ak(q))
126126
127127 let an = valueOrElse(getInteger(this, r), 7200)
128128
129129 func ao (j,ap) = if (isDefined(getInteger(j)))
130130 then getIntegerValue(j)
131131 else ap
132132
133133
134134 func aq (j,ar) = IntegerEntry(j, ar)
135135
136136
137137 func as (j) = aq(j, (ao(j, -1) + 1))
138138
139139
140140 func at (j,au) = aq(j, (ao(j, 0) + au))
141141
142142
143143 func av (aw) = {
144144 let ax = aw
145145 if ($isInstanceOf(ax, "ByteVector"))
146146 then {
147147 let ay = ax
148148 toBase58String(ay)
149149 }
150150 else "WAVES"
151151 }
152152
153153
154154 func az (aA) = if ((aA == "WAVES"))
155155 then unit
156156 else fromBase58String(aA)
157157
158158
159159 func aB (aw) = {
160160 let ax = aw
161161 if ($isInstanceOf(ax, "ByteVector"))
162162 then {
163163 let aC = ax
164164 assetBalance(this, aC)
165165 }
166166 else wavesBalance(this).available
167167 }
168168
169169
170170 func aD (aE,O) = {
171171 let aA = I[O]
172172 let aF = (ao(N(O), 0) + aE)
173173 if ((aF > aB(az(aA))))
174174 then throw((("Insufficient funds on " + d) + " account. Transaction was rejected for your safety."))
175175 else aF
176176 }
177177
178178
179179 func aG (aH,O,aE) = if ((0 > (ao(N(O), 0) - aE)))
180180 then throw((("Invalid " + d) + " account state - reserved amount is less than 0"))
181181 else at(N(O), -(aE))
182182
183183
184184 func aI (aA) = {
185185 let aJ = indexOf(I, aA)
186186 if (!(isDefined(aJ)))
187187 then throw("Invalid payment asset")
188188 else value(aJ)
189189 }
190190
191191
192192 func aK (aL,aM,aN) = {
193193 let aO = size(aN)
194194 func aP (x,aQ) = if (x)
195195 then true
196196 else (aL == ((aQ * J[aM]) / K[aM]))
197197
198198 if (!({
199199 let B = aa
200200 let C = size(B)
201201 let D = false
202202 func E (F,G) = if ((G >= C))
203203 then F
204204 else aP(F, B[G])
205205
206206 func H (F,G) = if ((G >= C))
207207 then F
208208 else throw("List size exceeds 5")
209209
210210 H(E(E(E(E(E(D, 0), 1), 2), 3), 4), 5)
211211 }))
212212 then throw("Bet amount is not valid")
213213 else if ((parseInt(aN) == unit))
214214 then throw("Invalid player's choice")
215215 else if ((aO != f))
216216 then throw("Invalid length of player's choice")
217217 else fraction(aL, Z, Y)
218218 }
219219
220220
221221 let aR = [[491, 506, 44], [455, 542, 120], [404, 596, 166], [441, 556, 177], [387, 620, 232], [423, 620, 232], [410, 592, 244], [329, 665, 321], [370, 666, 337], [355, 645, 349], [313, 692, 384], [289, 682, 405], [324, 657, 461], [450, 575, 525], [505, 505, 532]]
222222
223223 let aS = 5000
224224
225225 let aT = 10000
226226
227227 func aU (aH,aV) = {
228228 func aW (z,aX) = {
229229 let aY = z._3
230230 if ((aY == 14))
231231 then z
232232 else {
233233 let aZ = aR[aY]
234234 let ba = aR[(aY + 1)]
235235 let bb = (((((aZ[1] - aZ[0]) + ba[1]) - ba[0]) * (ba[2] - aZ[2])) * 5000)
236236 $Tuple3((z._1 :+ bb), (z._2 + bb), (z._3 + 1))
237237 }
238238 }
239239
240240 let bc = {
241241 let B = aR
242242 let C = size(B)
243243 let D = $Tuple3(nil, 0, 0)
244244 func E (F,G) = if ((G >= C))
245245 then F
246246 else aW(F, B[G])
247247
248248 func H (F,G) = if ((G >= C))
249249 then F
250250 else throw("List size exceeds 15")
251251
252252 H(E(E(E(E(E(E(E(E(E(E(E(E(E(E(E(D, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
253253 }
254254 let bd = bc._1
255255 let be = bc._2
256256 let bf = (toInt(sha256((aV + toBytes(aH)))) % be)
257257 func bg (z,bh) = {
258258 let aY = z._1
259259 let bi = (z._2 + bh)
260260 $Tuple3((aY + 1), bi, if (if ((0 > z._3))
261261 then (bi > bf)
262262 else false)
263263 then aY
264264 else z._3)
265265 }
266266
267267 let bj = ( let B = bd
268268 let C = size(B)
269269 let D = $Tuple3(0, 0, -1)
270270 func bk (F,G) = if ((G >= C))
271271 then F
272272 else bg(F, B[G])
273273
274274 func bl (F,G) = if ((G >= C))
275275 then F
276276 else throw("List size exceeds 14")
277277
278278 bl(bk(bk(bk(bk(bk(bk(bk(bk(bk(bk(bk(bk(bk(bk(D, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14))._3
279279 let aZ = aR[bj]
280280 let ba = aR[(bj + 1)]
281281 let bm = ((aZ[0] + ba[0]) * aS)
282282 let bn = ((aZ[1] + ba[1]) * aS)
283283 let bo = ((ba[2] - aZ[2]) * aT)
284284 let bp = ((aZ[2] + ba[2]) * aS)
285285 let bq = (bm + (toInt(sha256((aV + toBytes(bj)))) % (bn - bm)))
286286 let br = ((aZ[2] * aT) + (toInt(sha256((aV + toBytes(bq)))) % bo))
287287 let bs = ((aZ[2] * aT) - br)
288288 let bt = ((ba[2] * aT) - br)
289289 let bu = fraction(((aZ[0] * bt) - (ba[0] * bs)), aT, bo)
290290 let bv = fraction(((aZ[1] * bt) - (ba[1] * bs)), aT, bo)
291291 if ((bu > bq))
292292 then [((2 * bm) - bq), ((2 * bp) - br)]
293293 else if ((bq > bv))
294294 then [((2 * bn) - bq), ((2 * bp) - br)]
295295 else [bq, br]
296296 }
297297
298298
299299 func bw (aH,aV) = (toInt(sha256((toBytes(aH) + aV))) % g)
300300
301301
302302 func bx (aH,aV) = {
303303 let by = rsaVerify_16Kb(SHA256, toBytes(aH), aV, al)
304304 if (!(by))
305305 then throw("Invalid RSA signature")
306306 else {
307307 let bf = (toInt(sha256(aV)) % e)
308308 toString((bf + 1))
309309 }
310310 }
311311
312312
313313 func bz (aN,bA) = {
314314 let bB = size(aN)
315315 func bg (x,aQ) = if (x)
316316 then true
317317 else if ((bB >= aQ))
318318 then (take(drop(aN, (aQ - 1)), 1) == bA)
319319 else false
320320
321321 let B = [1, 2, 3, 4, 5]
322322 let C = size(B)
323323 let D = false
324324 func E (F,G) = if ((G >= C))
325325 then F
326326 else bg(F, B[G])
327327
328328 func H (F,G) = if ((G >= C))
329329 then F
330330 else throw("List size exceeds 5")
331331
332332 H(E(E(E(E(E(D, 0), 1), 2), 3), 4), 5)
333333 }
334334
335335
336336 func bC (bD,aN,bE,bF,aE,O,bG,bH,bI,bJ) = makeString([bD, aN, bE, bF, aE, O, if ((bG == ""))
337337 then ""
338338 else bG, bH, bI, bJ], "_")
339339
340340
341341 func bK (bD,aN,bE,bF,aE,O,bG,bH,bI,bJ) = bC(bD, aN, bE, toString(bF), toString(aE), toString(O), bG, toString(bH), toString(bI), toString(bJ))
342342
343343
344344 func bL (bM,bD,bf,bN,bH,bI,bJ) = {
345345 let bL = bC(bD, bM[ac], bM[ad], bM[ae], bM[af], bM[ag], bf, toString(bH), toString(bI), toString(bJ))
346346 if (bN)
347347 then (bL + "_TIMEOUT")
348348 else bL
349349 }
350350
351351
352352 func bO (aH) = split({
353353 let ax = getString(this, aH)
354354 if ($isInstanceOf(ax, "String"))
355355 then {
356356 let bP = ax
357357 bP
358358 }
359359 else throw((("Game: " + aH) + " not found."))
360360 }, "_")
361361
362362
363363 @Callable(aY)
364364 func constructorV1 (bQ,bR,bS,bT) = if ((aY.caller != this))
365365 then throw("not authorized")
366366 else {
367367 func bU (z,bV) = {
368368 let bW = split(bV, ":")
369369 if ((size(bW) != 3))
370370 then throw("Invalid asset record")
371371 else $Tuple3((z._1 :+ bW[Q]), (z._2 :+ bW[R]), (z._3 :+ bW[S]))
372372 }
373373
374374 let bX = {
375375 let B = split_4C(bT, "_")
376376 let C = size(B)
377377 let D = $Tuple3(nil, nil, nil)
378378 func E (F,G) = if ((G >= C))
379379 then F
380380 else bU(F, B[G])
381381
382382 func H (F,G) = if ((G >= C))
383383 then F
384384 else throw("List size exceeds 10")
385385
386386 H(E(E(E(E(E(E(E(E(E(E(D, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
387387 }
388388 [StringEntry(p, bQ), StringEntry(q, bR), IntegerEntry(r, bS), StringEntry(m, makeString_2C(bX._1, a)), StringEntry(n, makeString(bX._2, a)), StringEntry(o, makeString(bX._3, a))]
389389 }
390390
391391
392392
393393 @Callable(aY)
394394 func maintenance (bY) = if ((aY.caller != am))
395395 then throw("not authorized")
396396 else [BooleanEntry(t, bY)]
397397
398398
399399
400400 @Callable(aY)
401401 func bet (aN) = if (valueOrElse(getBoolean(t), false))
402402 then throw("Game is stopped for maintenence")
403403 else {
404404 let aH = toBase58String(aY.transactionId)
405405 if ((1 >= size(aY.payments)))
406406 then throw("2 payments must be attached")
407407 else if (isDefined(getString(this, aH)))
408408 then throw((("Bet for: " + aH) + " was already made."))
409409 else {
410410 let bZ = value(aY.payments[0])
411411 let ca = value(aY.payments[1])
412412 if (isDefined(ca.assetId))
413413 then throw("feePmt (2nd payment) assetId must be in Waves")
414414 else if ((P > ca.amount))
415415 then throw("feePmt (2nd payment) must be >= 0.005 Waves")
416416 else {
417417 let aA = av(bZ.assetId)
418418 let aM = aI(aA)
419419 let cb = ca.amount
420420 let aE = aK(bZ.amount, aM, aN)
421421 let bE = toBase58String(aY.callerPublicKey)
422422 let cc = bK(ah, aN, bE, height, aE, aM, "", -1, -1, -1)
423423 [IntegerEntry(N(aM), aD(aE, aM)), as(s), StringEntry(aH, cc), ScriptTransfer(am, cb, ca.assetId)]
424424 }
425425 }
426426 }
427427
428428
429429
430430 @Callable(aY)
431431 func withdraw (aH,aV) = {
432432 let cc = bO(aH)
433433 let cd = cc[ab]
434434 let aN = cc[ac]
435435 let bF = parseIntValue(cc[ae])
436436 let aE = parseIntValue(cc[af])
437437 let O = parseIntValue(cc[ag])
438438 let bE = cc[ad]
439439 let ce = addressFromPublicKey(fromBase58String(bE))
440440 if ((cd != ah))
441441 then throw("Invalid game state for passed gameId")
442442 else if ((aY.caller != am))
443443 then throw("Regular withdraw can be done by server only")
444444 else {
445445 let bN = ((height - bF) > an)
446446 let cf = if (bN)
447447 then take(aN, 1)
448448 else bx(aH, aV)
449449 let cg = bz(aN, cf)
450450 let ch = if (cg)
451451 then ai
452452 else aj
453453 let ci = if (cg)
454454 then [-(aT), -(aT)]
455455 else aU(aH, aV)
456456 let bJ = if (cg)
457457 then -1
458458 else bw(aH, aV)
459459 let aQ = (ci[0] / aT)
460460 let cj = (ci[1] / aT)
461461 let ck = bL(cc, ch, cf, bN, aQ, cj, bJ)
462462 let cl = valueOrElse(getString(v), "")
463463 let cm = ((if ((cl == ""))
464464 then ""
465465 else (cl + "_")) + makeString([toString(aQ), toString(cj), toString(bJ)], ":"))
466466 ([StringEntry(aH, ck), aG(aH, O, aE)] ++ (if (cg)
467467 then [ScriptTransfer(ce, aE, az(I[O]))]
468468 else [StringEntry(v, cm)]))
469469 }
470470 }
471471
472472
473473 @Verifier(cn)
474474 func co () = if (sigVerify(cn.bodyBytes, cn.proofs[0], cn.senderPublicKey))
475475 then {
476476 let ax = cn
477477 if ($isInstanceOf(ax, "TransferTransaction"))
478478 then {
479479 let cp = ax
480480 let O = aI(av(cp.assetId))
481481 ((aB(cp.assetId) - cp.amount) >= ao(N(O), 0))
482482 }
483483 else if ($isInstanceOf(ax, "SetScriptTransaction"))
484484 then {
485485 let cq = ax
486486 func cr (z,cs) = if (z)
487487 then (ao(L(cs), 0) == 0)
488488 else false
489489
490490 let B = I
491491 let C = size(B)
492492 let D = true
493493 func E (F,G) = if ((G >= C))
494494 then F
495495 else cr(F, B[G])
496496
497497 func H (F,G) = if ((G >= C))
498498 then F
499499 else throw("List size exceeds 10")
500500
501501 H(E(E(E(E(E(E(E(E(E(E(D, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
502502 }
503503 else if ($isInstanceOf(ax, "InvokeScriptTransaction"))
504504 then {
505505 let ct = ax
506506 if ((ct.dApp == this))
507507 then (ct.function == "constructorV1")
508508 else false
509509 }
510510 else false
511511 }
512512 else false
513513

github/deemru/w8io/169f3d6 
57.96 ms