tx · GgxepTxMZteQCP5HtU6VQe9fehEdoMP5sgRr4BjqkuCw

3MyrsoUShtK8LVWE6mGVinCdwiJeedCtkvr:  -0.01400000 Waves

2023.12.11 16:42 [2882030] smart account 3MyrsoUShtK8LVWE6mGVinCdwiJeedCtkvr > SELF 0.00000000 Waves

{ "type": 13, "id": "GgxepTxMZteQCP5HtU6VQe9fehEdoMP5sgRr4BjqkuCw", "fee": 1400000, "feeAssetId": null, "timestamp": 1702302187528, "version": 2, "chainId": 84, "sender": "3MyrsoUShtK8LVWE6mGVinCdwiJeedCtkvr", "senderPublicKey": "53WfUfPHKFYj846Npe6Bu5indsxPueAsu9YWe8fnprXh", "proofs": [ "5NJHDtjjtyn8BYGTw4Re3XmJzE6F7sHsz2JEPwEj9VQTmvzzCNMzgTAT9UArxyNvMK5PBZrzZnuva7KkbCqADHtD" ], "script": "base64:BgIaCAISBgoECAgBCBIDCgEEEgMKAQgSBAoCCAJCAANTRVACAl9fAAdXQVZFU0lEAQQTq9kzAAZXQVZFU0QAgMLXLwAJR0FNRV9OQU1FAg9DYXJkIG9mIHRoZSBEYXkADFJBTkRPTV9SQU5HRQkAZAIJAGQCACgABgAFAAhOVU1fQkVUUwABAAhXSU5fQ0FSRAIBMAEMZ2V0U3RyT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgABDGdldEludE9yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAAQ1nZXRCb29sT3JGYWlsAgdhZGRyZXNzA2tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFB2FkZHJlc3MFA2tleQkAuQkCCQDMCAICCm1hbmRhdG9yeSAJAMwIAgkApQgBBQdhZGRyZXNzCQDMCAICAS4JAMwIAgUDa2V5CQDMCAICDyBpcyBub3QgZGVmaW5lZAUDbmlsAgAAEGFsbG93ZWRBc3NldHNLZXkCGCVzJXNfX2NmZ19fYWxsb3dlZEFzc2V0cwARYXNzZXRzRGVjaW1hbHNLZXkCGSVzJXNfX2NmZ19fYXNzZXRzRGVjaW1hbHMADmJldERpdmlkZXJzS2V5AhwlcyVzX19jZmdfX2Fzc2V0c0JldERpdmlkZXJzAA5SU0FQVUJMSUM2NEtFWQIWJXMlc19fY2ZnX19yc2FQdWJsaWM2NAAQU0VSVkVSQUREUkVTU0tFWQIWJXMlc19fY2ZnX19iZW56QWRkcmVzcwAQUkFORFRJTUVGUkFNRUtFWQIcJXMlc19fY2ZnX193aXRoZHJhd1RpbWVGcmFtZQAPR0FNRVNDT1VOVEVSS0VZAhYlcyVzX19ydW50aW1lX19nYW1lTnVtAApibG9ja2VkS2V5AiAlcyVzX19ydW50aW1lX19jb250cmFjdElzQmxvY2tlZAELZ2V0SW50QXJyYXkBA2tleQQBYQkBDGdldFN0ck9yRmFpbAIFBHRoaXMFA2tleQoBBmZpbGxlcgIDYWNjAmVsCQDNCAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQJlbAoAAiRsCQC1CQIFAWEFA1NFUAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEGZmlsbGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAZBU1NFVFMJALUJAgkBDGdldFN0ck9yRmFpbAIFBHRoaXMFEGFsbG93ZWRBc3NldHNLZXkFA1NFUAAIREVDSU1BTFMJAQtnZXRJbnRBcnJheQEFEWFzc2V0c0RlY2ltYWxzS2V5AAtCRVRESVZJREVSUwkBC2dldEludEFycmF5AQUOYmV0RGl2aWRlcnNLZXkBGGtleVJlc2VydmF0aW9uQnlBc3NldFN0cgEIYXNzZXRTdHIJAKwCAgIRJFJFU0VSVkVEX0FNT1VOVF8FCGFzc2V0U3RyARhrZXlSZXNlcnZhdGlvbkJ5QXNzZXRJZHgBCGFzc2V0SWR4CQEYa2V5UmVzZXJ2YXRpb25CeUFzc2V0U3RyAQkAkQMCBQZBU1NFVFMFCGFzc2V0SWR4AAtNSU5GRUVXQVZFUwkAaQIJAGgCAAUFBldBVkVTRADoBwAJaWR4QXNzZXRzAAAAC2lkeERlY2ltYWxzAAEAC2lkeERpdmlkZXJzAAIABEJFVDEAAQAEQkVUMgACAARCRVQ0AAQABEJFVDgACAAFQkVUMTQADgAIUkFURU1VTFQAkE4ABFJBVEUAkKEPAARCRVRTCQDMCAIFBEJFVDIFA25pbAAMSWR4R2FtZVN0YXRlAAAAD0lkeFBsYXllckNob2ljZQABABFJZHhQbGF5ZXJQdWJLZXk1OAACABBJZHhTdGFydGVkSGVpZ2h0AAMADElkeFdpbkFtb3VudAAEAApJZHhBc3NldElkAAUADlNUQVRFU1VCTUlUVEVEAglTVUJNSVRURUQACFNUQVRFV09OAgNXT04ACVNUQVRFTE9TVAIETE9TVAEPZ2V0U3RyaW5nT3JGYWlsAQNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQNrZXkJAKwCAgUDa2V5AiMga2V5IGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhpcy5zdGF0ZQAJUlNBUFVCTElDCQDbBAEJAQ9nZXRTdHJpbmdPckZhaWwBBQ5SU0FQVUJMSUM2NEtFWQAGU0VSVkVSCQERQGV4dHJOYXRpdmUoMTA2MikBCQEPZ2V0U3RyaW5nT3JGYWlsAQUQU0VSVkVSQUREUkVTU0tFWQATUkFORE9SQUNMRVRJTUVGUkFNRQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRBSQU5EVElNRUZSQU1FS0VZAKA4AQhnZXRJbnRPcgIDa2V5B2RlZmF1bHQDCQEJaXNEZWZpbmVkAQkAnwgBBQNrZXkJARFAZXh0ck5hdGl2ZSgxMDU1KQEFA2tleQUHZGVmYXVsdAEGc2V0SW50AgNrZXkFdmFsdWUJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQxpbmNyZW1lbnRJbnQBA2tleQkBBnNldEludAIFA2tleQkAZAIJAQhnZXRJbnRPcgIFA2tleQD///////////8BAAEBCWNoYW5nZUludAIDa2V5AmJ5CQEGc2V0SW50AgUDa2V5CQBkAgkBCGdldEludE9yAgUDa2V5AAAFAmJ5AQxhc3NldElkVG9TdHIBDWFzc2V0SWRPclVuaXQEByRtYXRjaDAFDWFzc2V0SWRPclVuaXQDCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQBYgUHJG1hdGNoMAkA2AQBBQFiAgVXQVZFUwEOYXNzZXRJZEZyb21TdHIBCmFzc2V0SWRTdHIDCQAAAgUKYXNzZXRJZFN0cgIFV0FWRVMFBHVuaXQJANkEAQUKYXNzZXRJZFN0cgEPZ2V0QXNzZXRCYWxhbmNlAQ1hc3NldElkT3JVbml0BAckbWF0Y2gwBQ1hc3NldElkT3JVbml0AwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEB2Fzc2V0SWQFByRtYXRjaDAJAPAHAgUEdGhpcwUHYXNzZXRJZAgJAO8HAQUEdGhpcwlhdmFpbGFibGUBFWluY3JlYXNlUmVzZXJ2ZUFtb3VudAIJd2luQW1vdW50CGFzc2V0SWR4BAphc3NldElkU3RyCQCRAwIFBkFTU0VUUwUIYXNzZXRJZHgEEW5ld1Jlc2VydmVkQW1vdW50CQBkAgkBCGdldEludE9yAgkBGGtleVJlc2VydmF0aW9uQnlBc3NldElkeAEFCGFzc2V0SWR4AAAFCXdpbkFtb3VudAMJAGYCBRFuZXdSZXNlcnZlZEFtb3VudAkBD2dldEFzc2V0QmFsYW5jZQEJAQ5hc3NldElkRnJvbVN0cgEFCmFzc2V0SWRTdHIJAAIBCQCsAgIJAKwCAgIWSW5zdWZmaWNpZW50IGZ1bmRzIG9uIAUJR0FNRV9OQU1FAjMgYWNjb3VudC4gVHJhbnNhY3Rpb24gd2FzIHJlamVjdGVkIGZvciB5b3VyIHNhZmV0eS4FEW5ld1Jlc2VydmVkQW1vdW50ARZkZWNyZWFzZVJlc2VydmVkQW1vdW50AwZnYW1lSWQIYXNzZXRJZHgJd2luQW1vdW50AwkAZgIAAAkAZQIJAQhnZXRJbnRPcgIJARhrZXlSZXNlcnZhdGlvbkJ5QXNzZXRJZHgBBQhhc3NldElkeAAABQl3aW5BbW91bnQJAAIBCQCsAgIJAKwCAgIISW52YWxpZCAFCUdBTUVfTkFNRQIvIGFjY291bnQgc3RhdGUgLSByZXNlcnZlZCBhbW91bnQgaXMgbGVzcyB0aGFuIDAJAQljaGFuZ2VJbnQCCQEYa2V5UmVzZXJ2YXRpb25CeUFzc2V0SWR4AQUIYXNzZXRJZHgJAQEtAQUJd2luQW1vdW50ARZ2YWxpZGF0ZUFuZEdldEFzc2V0SWR4AQphc3NldElkU3RyBANpZHgJAM8IAgUGQVNTRVRTBQphc3NldElkU3RyAwkBASEBCQEJaXNEZWZpbmVkAQUDaWR4CQACAQIVSW52YWxpZCBwYXltZW50IGFzc2V0CQEFdmFsdWUBBQNpZHgBGnZhbGlkYXRlQmV0QW5kR2V0V2luQW1vdW50AwNiZXQQaW50ZXJuYWxBc3NldElkeAxwbGF5ZXJDaG9pY2UECmRpY2VzQ291bnQJALECAQUMcGxheWVyQ2hvaWNlCgELY2hlY2tBbW91bnQCAWEBeAMFAWEGCQAAAgUDYmV0CQBpAgkAaAIFAXgJAJEDAgUIREVDSU1BTFMFEGludGVybmFsQXNzZXRJZHgJAJEDAgULQkVURElWSURFUlMFEGludGVybmFsQXNzZXRJZHgDCQEBIQEKAAIkbAUEQkVUUwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAHCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQtjaGVja0Ftb3VudAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUJAAIBAhdCZXQgYW1vdW50IGlzIG5vdCB2YWxpZAMJAAACCQC2CQEFDHBsYXllckNob2ljZQUEdW5pdAkAAgECF0ludmFsaWQgcGxheWVyJ3MgY2hvaWNlCQBrAwUDYmV0BQRSQVRFBQhSQVRFTVVMVAESZ2VuZXJhdGVSYW5kQ2hvaWNlAwZnYW1lSWQHcnNhU2lnbgxwbGF5ZXJDaG9pY2UEC3JzYVNpZ1ZhbGlkCQCoFAQFBlNIQTI1NgkAmwMBBQZnYW1lSWQFB3JzYVNpZ24FCVJTQVBVQkxJQwMJAQEhAQULcnNhU2lnVmFsaWQJAAIBAhVJbnZhbGlkIFJTQSBzaWduYXR1cmUEBHJhbmQJAGoCCQCxCQEJAPcDAQkAywECBQdyc2FTaWduCQCbAwEFDHBsYXllckNob2ljZQUMUkFORE9NX1JBTkdFCQCkAwEFBHJhbmQBC2lzUGxheWVyV2luAgxwbGF5ZXJDaG9pY2UKcmFuZENob2lzZQkAAAIFDHBsYXllckNob2ljZQUKcmFuZENob2lzZQEPZm9ybWF0R2FtZURhdGFTBwpnYW1lU3RhdHVzDHBsYXllckNob2ljZQ5wbGF5ZXJQdWJLZXk1OA1zdGFydGVkSGVpZ2h0CXdpbkFtb3VudAhhc3NldElkeAtyYW5kT3JFbXB0eQkAuQkCCQDMCAIFCmdhbWVTdGF0dXMJAMwIAgUMcGxheWVyQ2hvaWNlCQDMCAIFDnBsYXllclB1YktleTU4CQDMCAIFDXN0YXJ0ZWRIZWlnaHQJAMwIAgUJd2luQW1vdW50CQDMCAIFCGFzc2V0SWR4CQDMCAIDCQAAAgULcmFuZE9yRW1wdHkCAAIABQtyYW5kT3JFbXB0eQUDbmlsAgFfAQ5mb3JtYXRHYW1lRGF0YQcKZ2FtZVN0YXR1cwxwbGF5ZXJDaG9pY2UOcGxheWVyUHViS2V5NTgNc3RhcnRlZEhlaWdodAl3aW5BbW91bnQIYXNzZXRJZHgLcmFuZE9yRW1wdHkJAQ9mb3JtYXRHYW1lRGF0YVMHBQpnYW1lU3RhdHVzBQxwbGF5ZXJDaG9pY2UFDnBsYXllclB1YktleTU4CQCkAwEFDXN0YXJ0ZWRIZWlnaHQJAKQDAQUJd2luQW1vdW50CQCkAwEFCGFzc2V0SWR4BQtyYW5kT3JFbXB0eQEOZmluaXNoR2FtZURhdGEEDG9yaWdHYW1lRGF0YQpnYW1lU3RhdHVzBHJhbmQMd2luQnlUaW1lb3V0BA5maW5pc2hHYW1lRGF0YQkBD2Zvcm1hdEdhbWVEYXRhUwcFCmdhbWVTdGF0dXMFBHJhbmQJAJEDAgUMb3JpZ0dhbWVEYXRhBRFJZHhQbGF5ZXJQdWJLZXk1OAkAkQMCBQxvcmlnR2FtZURhdGEFEElkeFN0YXJ0ZWRIZWlnaHQJAJEDAgUMb3JpZ0dhbWVEYXRhBQxJZHhXaW5BbW91bnQJAJEDAgUMb3JpZ0dhbWVEYXRhBQpJZHhBc3NldElkBQhXSU5fQ0FSRAMFDHdpbkJ5VGltZW91dAkArAICBQ5maW5pc2hHYW1lRGF0YQIIX1RJTUVPVVQFDmZpbmlzaEdhbWVEYXRhAQ9leHRyYWN0R2FtZURhdGEBBmdhbWVJZAkAtQkCBAckbWF0Y2gwCQCdCAIFBHRoaXMFBmdhbWVJZAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEA3N0cgUHJG1hdGNoMAUDc3RyCQACAQkArAICCQCsAgICBkdhbWU6IAUGZ2FtZUlkAgsgbm90IGZvdW5kLgIBXwQBaQENY29uc3RydWN0b3JWMQQLcnNhUHVibGljNjQLYmVuekFkZHJlc3MTcmFuZE9yYWNsZVRpbWVGcmFtZRB0b2tlbnNEZXNjcmlwdG9yAwkBAiE9AggFAWkGY2FsbGVyBQZTRVJWRVIJAAIBAg5ub3QgYXV0aG9yaXplZAoBCHNwbGl0dGVyAgNhY2MEZWxlbQQHdG9rTGlzdAkAtQkCBQRlbGVtAgE6AwkBAiE9AgkAkAMBBQd0b2tMaXN0AAQJAAIBAhRJbnZhbGlkIGFzc2V0IHJlY29yZAkAlQoDCQDNCAIIBQNhY2MCXzEJAJEDAgUHdG9rTGlzdAUJaWR4QXNzZXRzCQDNCAIIBQNhY2MCXzIJAJEDAgUHdG9rTGlzdAULaWR4RGVjaW1hbHMJAM0IAggFA2FjYwJfMwkAkQMCBQd0b2tMaXN0BQtpZHhEaXZpZGVycwQBcgoAAiRsCQC8CQIFEHRva2Vuc0Rlc2NyaXB0b3ICAV8KAAIkcwkAkAMBBQIkbAoABSRhY2MwCQCVCgMFA25pbAUDbmlsBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCHNwbGl0dGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKCQDMCAIJAQtTdHJpbmdFbnRyeQIFDlJTQVBVQkxJQzY0S0VZBQtyc2FQdWJsaWM2NAkAzAgCCQELU3RyaW5nRW50cnkCBRBTRVJWRVJBRERSRVNTS0VZBQtiZW56QWRkcmVzcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUQUkFORFRJTUVGUkFNRUtFWQUTcmFuZE9yYWNsZVRpbWVGcmFtZQkAzAgCCQELU3RyaW5nRW50cnkCBRBhbGxvd2VkQXNzZXRzS2V5CQC6CQIIBQFyAl8xBQNTRVAJAMwIAgkBC1N0cmluZ0VudHJ5AgURYXNzZXRzRGVjaW1hbHNLZXkJALkJAggFAXICXzIFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCBQ5iZXREaXZpZGVyc0tleQkAuQkCCAUBcgJfMwUDU0VQBQNuaWwBaQELbWFpbnRlbmFuY2UBB2Jsb2NrZWQDCQECIT0CCAUBaQZjYWxsZXIFBlNFUlZFUgkAAgECDm5vdCBhdXRob3JpemVkCQDMCAIJAQxCb29sZWFuRW50cnkCBQpibG9ja2VkS2V5BQdibG9ja2VkBQNuaWwBaQEDYmV0AQxwbGF5ZXJDaG9pY2UDCQELdmFsdWVPckVsc2UCCQCgCAEFCmJsb2NrZWRLZXkHCQACAQIfR2FtZSBpcyBzdG9wcGVkIGZvciBtYWludGVuZW5jZQQGZ2FtZUlkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQDCQBnAgABCQCQAwEIBQFpCHBheW1lbnRzCQACAQIbMiBwYXltZW50cyBtdXN0IGJlIGF0dGFjaGVkAwkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwUGZ2FtZUlkCQACAQkArAICCQCsAgICCUJldCBmb3I6IAUGZ2FtZUlkAhIgd2FzIGFscmVhZHkgbWFkZS4EBmJldFBtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAZmZWVQbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAQMJAQlpc0RlZmluZWQBCAUGZmVlUG10B2Fzc2V0SWQJAAIBAi1mZWVQbXQgKDJuZCBwYXltZW50KSBhc3NldElkIG11c3QgYmUgaW4gV2F2ZXMDCQBmAgULTUlORkVFV0FWRVMIBQZmZWVQbXQGYW1vdW50CQACAQIrZmVlUG10ICgybmQgcGF5bWVudCkgbXVzdCBiZSA+PSAwLjAwNSBXYXZlcwQKYXNzZXRJZFN0cgkBDGFzc2V0SWRUb1N0cgEIBQZiZXRQbXQHYXNzZXRJZAQQaW50ZXJuYWxBc3NldElkeAkBFnZhbGlkYXRlQW5kR2V0QXNzZXRJZHgBBQphc3NldElkU3RyBApjb21taXNzaW9uCAUGZmVlUG10BmFtb3VudAQJd2luQW1vdW50CQEadmFsaWRhdGVCZXRBbmRHZXRXaW5BbW91bnQDCAUGYmV0UG10BmFtb3VudAUQaW50ZXJuYWxBc3NldElkeAUMcGxheWVyQ2hvaWNlBA5wbGF5ZXJQdWJLZXk1OAkA2AQBCAUBaQ9jYWxsZXJQdWJsaWNLZXkECGdhbWVEYXRhCQEOZm9ybWF0R2FtZURhdGEHBQ5TVEFURVNVQk1JVFRFRAUMcGxheWVyQ2hvaWNlBQ5wbGF5ZXJQdWJLZXk1OAUGaGVpZ2h0BQl3aW5BbW91bnQFEGludGVybmFsQXNzZXRJZHgCAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBGGtleVJlc2VydmF0aW9uQnlBc3NldElkeAEFEGludGVybmFsQXNzZXRJZHgJARVpbmNyZWFzZVJlc2VydmVBbW91bnQCBQl3aW5BbW91bnQFEGludGVybmFsQXNzZXRJZHgJAMwIAgkBDGluY3JlbWVudEludAEFD0dBTUVTQ09VTlRFUktFWQkAzAgCCQELU3RyaW5nRW50cnkCBQZnYW1lSWQFCGdhbWVEYXRhCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFBlNFUlZFUgUKY29tbWlzc2lvbggFBmZlZVBtdAdhc3NldElkBQNuaWwBaQEId2l0aGRyYXcCBmdhbWVJZAdyc2FTaWduBAhnYW1lRGF0YQkBD2V4dHJhY3RHYW1lRGF0YQEFBmdhbWVJZAQJZ2FtZVN0YXRlCQCRAwIFCGdhbWVEYXRhBQxJZHhHYW1lU3RhdGUEDHBsYXllckNob2ljZQkAkQMCBQhnYW1lRGF0YQUPSWR4UGxheWVyQ2hvaWNlBA1zdGFydGVkSGVpZ2h0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZ2FtZURhdGEFEElkeFN0YXJ0ZWRIZWlnaHQECXdpbkFtb3VudAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFCGdhbWVEYXRhBQxJZHhXaW5BbW91bnQECGFzc2V0SWR4CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUIZ2FtZURhdGEFCklkeEFzc2V0SWQEDnBsYXllclB1YktleTU4CQCRAwIFCGdhbWVEYXRhBRFJZHhQbGF5ZXJQdWJLZXk1OAQNcGxheWVyQWRkcmVzcwkApwgBCQDZBAEFDnBsYXllclB1YktleTU4AwkBAiE9AgUJZ2FtZVN0YXRlBQ5TVEFURVNVQk1JVFRFRAkAAgECJEludmFsaWQgZ2FtZSBzdGF0ZSBmb3IgcGFzc2VkIGdhbWVJZAMJAQIhPQIIBQFpBmNhbGxlcgUGU0VSVkVSCQACAQIrUmVndWxhciB3aXRoZHJhdyBjYW4gYmUgZG9uZSBieSBzZXJ2ZXIgb25seQQMd2luQnlUaW1lb3V0CQBmAgkAZQIFBmhlaWdodAUNc3RhcnRlZEhlaWdodAUTUkFORE9SQUNMRVRJTUVGUkFNRQQKcmFuZENob2lzZQMFDHdpbkJ5VGltZW91dAUIV0lOX0NBUkQJARJnZW5lcmF0ZVJhbmRDaG9pY2UDBQZnYW1lSWQFB3JzYVNpZ24FDHBsYXllckNob2ljZQQJcGxheWVyV2luCQELaXNQbGF5ZXJXaW4CBQpyYW5kQ2hvaXNlBQhXSU5fQ0FSRAQNbmV3R2FtZVN0YXR1cwMFCXBsYXllcldpbgUIU1RBVEVXT04FCVNUQVRFTE9TVAQLbmV3R2FtZURhdGEJAQ5maW5pc2hHYW1lRGF0YQQFCGdhbWVEYXRhBQ1uZXdHYW1lU3RhdHVzBQpyYW5kQ2hvaXNlBQx3aW5CeVRpbWVvdXQJAM4IAgkAzAgCCQELU3RyaW5nRW50cnkCBQZnYW1lSWQFC25ld0dhbWVEYXRhCQDMCAIJARZkZWNyZWFzZVJlc2VydmVkQW1vdW50AwUGZ2FtZUlkBQhhc3NldElkeAUJd2luQW1vdW50BQNuaWwDBQlwbGF5ZXJXaW4JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUNcGxheWVyQWRkcmVzcwUJd2luQW1vdW50CQEOYXNzZXRJZEZyb21TdHIBCQCRAwIFBkFTU0VUUwUIYXNzZXRJZHgFA25pbAUDbmlsAQJ0eAEGdmVyaWZ5AAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkEByRtYXRjaDAFAnR4AwkAAQIFByRtYXRjaDACE1RyYW5zZmVyVHJhbnNhY3Rpb24EA3R0eAUHJG1hdGNoMAQIYXNzZXRJZHgJARZ2YWxpZGF0ZUFuZEdldEFzc2V0SWR4AQkBDGFzc2V0SWRUb1N0cgEIBQN0dHgHYXNzZXRJZAkAZwIJAGUCCQEPZ2V0QXNzZXRCYWxhbmNlAQgFA3R0eAdhc3NldElkCAUDdHR4BmFtb3VudAkBCGdldEludE9yAgkBGGtleVJlc2VydmF0aW9uQnlBc3NldElkeAEFCGFzc2V0SWR4AAADCQABAgUHJG1hdGNoMAIUU2V0U2NyaXB0VHJhbnNhY3Rpb24EA3N0eAUHJG1hdGNoMAoBB2NoZWNrZXICA2FjYwVhc3NldAMFA2FjYwkAAAIJAQhnZXRJbnRPcgIJARhrZXlSZXNlcnZhdGlvbkJ5QXNzZXRTdHIBBQVhc3NldAAAAAAHCgACJGwFBkFTU0VUUwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAGCgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQdjaGVja2VyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxMAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKBwdzS+Gl", "height": 2882030, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DGsR1vDJrNaRA1WeRT65YhtvBeNefZrwUSMGXTQ1f4cU Next: none Diff:
OldNewDifferences
99
1010 let d = "Card of the Day"
1111
12-let e = 40
12+let e = ((40 + 6) + 5)
1313
1414 let f = 1
1515
16-let g = toString((e - 1))
16+let g = "0"
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 = "Card of the Day"
1111
12-let e = 40
12+let e = ((40 + 6) + 5)
1313
1414 let f = 1
1515
16-let g = toString((e - 1))
16+let g = "0"
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 func u (j) = {
4444 let v = h(this, j)
4545 func w (x,y) = (x :+ parseIntValue(y))
4646
4747 let z = split(v, a)
4848 let A = size(z)
4949 let B = nil
5050 func C (D,E) = if ((E >= A))
5151 then D
5252 else w(D, z[E])
5353
5454 func F (D,E) = if ((E >= A))
5555 then D
5656 else throw("List size exceeds 10")
5757
5858 F(C(C(C(C(C(C(C(C(C(C(B, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
5959 }
6060
6161
6262 let G = split(h(this, m), a)
6363
6464 let H = u(n)
6565
6666 let I = u(o)
6767
6868 func J (K) = ("$RESERVED_AMOUNT_" + K)
6969
7070
7171 func L (M) = J(G[M])
7272
7373
7474 let N = ((5 * c) / 1000)
7575
7676 let O = 0
7777
7878 let P = 1
7979
8080 let Q = 2
8181
8282 let R = 1
8383
8484 let S = 2
8585
8686 let T = 4
8787
8888 let U = 8
8989
9090 let V = 14
9191
9292 let W = 10000
9393
9494 let X = 250000
9595
9696 let Y = [S]
9797
9898 let Z = 0
9999
100100 let aa = 1
101101
102102 let ab = 2
103103
104104 let ac = 3
105105
106106 let ad = 4
107107
108108 let ae = 5
109109
110110 let af = "SUBMITTED"
111111
112112 let ag = "WON"
113113
114114 let ah = "LOST"
115115
116116 func ai (j) = valueOrErrorMessage(getString(this, j), (j + " key is not specified in this.state"))
117117
118118
119119 let aj = fromBase64String(ai(p))
120120
121121 let ak = addressFromStringValue(ai(q))
122122
123123 let al = valueOrElse(getInteger(this, r), 7200)
124124
125125 func am (j,an) = if (isDefined(getInteger(j)))
126126 then getIntegerValue(j)
127127 else an
128128
129129
130130 func ao (j,ap) = IntegerEntry(j, ap)
131131
132132
133133 func aq (j) = ao(j, (am(j, -1) + 1))
134134
135135
136136 func ar (j,as) = ao(j, (am(j, 0) + as))
137137
138138
139139 func at (au) = {
140140 let av = au
141141 if ($isInstanceOf(av, "ByteVector"))
142142 then {
143143 let aw = av
144144 toBase58String(aw)
145145 }
146146 else "WAVES"
147147 }
148148
149149
150150 func ax (ay) = if ((ay == "WAVES"))
151151 then unit
152152 else fromBase58String(ay)
153153
154154
155155 func az (au) = {
156156 let av = au
157157 if ($isInstanceOf(av, "ByteVector"))
158158 then {
159159 let aA = av
160160 assetBalance(this, aA)
161161 }
162162 else wavesBalance(this).available
163163 }
164164
165165
166166 func aB (aC,M) = {
167167 let ay = G[M]
168168 let aD = (am(L(M), 0) + aC)
169169 if ((aD > az(ax(ay))))
170170 then throw((("Insufficient funds on " + d) + " account. Transaction was rejected for your safety."))
171171 else aD
172172 }
173173
174174
175175 func aE (aF,M,aC) = if ((0 > (am(L(M), 0) - aC)))
176176 then throw((("Invalid " + d) + " account state - reserved amount is less than 0"))
177177 else ar(L(M), -(aC))
178178
179179
180180 func aG (ay) = {
181181 let aH = indexOf(G, ay)
182182 if (!(isDefined(aH)))
183183 then throw("Invalid payment asset")
184184 else value(aH)
185185 }
186186
187187
188188 func aI (aJ,aK,aL) = {
189189 let aM = size(aL)
190190 func aN (v,aO) = if (v)
191191 then true
192192 else (aJ == ((aO * H[aK]) / I[aK]))
193193
194194 if (!({
195195 let z = Y
196196 let A = size(z)
197197 let B = false
198198 func C (D,E) = if ((E >= A))
199199 then D
200200 else aN(D, z[E])
201201
202202 func F (D,E) = if ((E >= A))
203203 then D
204204 else throw("List size exceeds 5")
205205
206206 F(C(C(C(C(C(B, 0), 1), 2), 3), 4), 5)
207207 }))
208208 then throw("Bet amount is not valid")
209209 else if ((parseInt(aL) == unit))
210210 then throw("Invalid player's choice")
211211 else fraction(aJ, X, W)
212212 }
213213
214214
215215 func aP (aF,aQ,aL) = {
216216 let aR = rsaVerify_16Kb(SHA256, toBytes(aF), aQ, aj)
217217 if (!(aR))
218218 then throw("Invalid RSA signature")
219219 else {
220220 let aS = (toInt(sha256((aQ + toBytes(aL)))) % e)
221221 toString(aS)
222222 }
223223 }
224224
225225
226226 func aT (aL,aU) = (aL == aU)
227227
228228
229229 func aV (aW,aL,aX,aY,aC,M,aZ) = makeString([aW, aL, aX, aY, aC, M, if ((aZ == ""))
230230 then ""
231231 else aZ], "_")
232232
233233
234234 func ba (aW,aL,aX,aY,aC,M,aZ) = aV(aW, aL, aX, toString(aY), toString(aC), toString(M), aZ)
235235
236236
237237 func bb (bc,aW,aS,bd) = {
238238 let bb = aV(aW, aS, bc[ab], bc[ac], bc[ad], bc[ae], g)
239239 if (bd)
240240 then (bb + "_TIMEOUT")
241241 else bb
242242 }
243243
244244
245245 func be (aF) = split({
246246 let av = getString(this, aF)
247247 if ($isInstanceOf(av, "String"))
248248 then {
249249 let bf = av
250250 bf
251251 }
252252 else throw((("Game: " + aF) + " not found."))
253253 }, "_")
254254
255255
256256 @Callable(bg)
257257 func constructorV1 (bh,bi,bj,bk) = if ((bg.caller != ak))
258258 then throw("not authorized")
259259 else {
260260 func bl (x,bm) = {
261261 let bn = split(bm, ":")
262262 if ((size(bn) != 4))
263263 then throw("Invalid asset record")
264264 else $Tuple3((x._1 :+ bn[O]), (x._2 :+ bn[P]), (x._3 :+ bn[Q]))
265265 }
266266
267267 let bo = {
268268 let z = split_4C(bk, "_")
269269 let A = size(z)
270270 let B = $Tuple3(nil, nil, nil)
271271 func C (D,E) = if ((E >= A))
272272 then D
273273 else bl(D, z[E])
274274
275275 func F (D,E) = if ((E >= A))
276276 then D
277277 else throw("List size exceeds 10")
278278
279279 F(C(C(C(C(C(C(C(C(C(C(B, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
280280 }
281281 [StringEntry(p, bh), StringEntry(q, bi), IntegerEntry(r, bj), StringEntry(m, makeString_2C(bo._1, a)), StringEntry(n, makeString(bo._2, a)), StringEntry(o, makeString(bo._3, a))]
282282 }
283283
284284
285285
286286 @Callable(bg)
287287 func maintenance (bp) = if ((bg.caller != ak))
288288 then throw("not authorized")
289289 else [BooleanEntry(t, bp)]
290290
291291
292292
293293 @Callable(bg)
294294 func bet (aL) = if (valueOrElse(getBoolean(t), false))
295295 then throw("Game is stopped for maintenence")
296296 else {
297297 let aF = toBase58String(bg.transactionId)
298298 if ((1 >= size(bg.payments)))
299299 then throw("2 payments must be attached")
300300 else if (isDefined(getString(this, aF)))
301301 then throw((("Bet for: " + aF) + " was already made."))
302302 else {
303303 let bq = value(bg.payments[0])
304304 let br = value(bg.payments[1])
305305 if (isDefined(br.assetId))
306306 then throw("feePmt (2nd payment) assetId must be in Waves")
307307 else if ((N > br.amount))
308308 then throw("feePmt (2nd payment) must be >= 0.005 Waves")
309309 else {
310310 let ay = at(bq.assetId)
311311 let aK = aG(ay)
312312 let bs = br.amount
313313 let aC = aI(bq.amount, aK, aL)
314314 let aX = toBase58String(bg.callerPublicKey)
315315 let bt = ba(af, aL, aX, height, aC, aK, "")
316316 [IntegerEntry(L(aK), aB(aC, aK)), aq(s), StringEntry(aF, bt), ScriptTransfer(ak, bs, br.assetId)]
317317 }
318318 }
319319 }
320320
321321
322322
323323 @Callable(bg)
324324 func withdraw (aF,aQ) = {
325325 let bt = be(aF)
326326 let bu = bt[Z]
327327 let aL = bt[aa]
328328 let aY = parseIntValue(bt[ac])
329329 let aC = parseIntValue(bt[ad])
330330 let M = parseIntValue(bt[ae])
331331 let aX = bt[ab]
332332 let bv = addressFromPublicKey(fromBase58String(aX))
333333 if ((bu != af))
334334 then throw("Invalid game state for passed gameId")
335335 else if ((bg.caller != ak))
336336 then throw("Regular withdraw can be done by server only")
337337 else {
338338 let bd = ((height - aY) > al)
339339 let aU = if (bd)
340340 then g
341341 else aP(aF, aQ, aL)
342342 let bw = aT(aU, g)
343343 let bx = if (bw)
344344 then ag
345345 else ah
346346 let by = bb(bt, bx, aU, bd)
347347 ([StringEntry(aF, by), aE(aF, M, aC)] ++ (if (bw)
348348 then [ScriptTransfer(bv, aC, ax(G[M]))]
349349 else nil))
350350 }
351351 }
352352
353353
354354 @Verifier(bz)
355355 func bA () = if (sigVerify(bz.bodyBytes, bz.proofs[0], bz.senderPublicKey))
356356 then {
357357 let av = bz
358358 if ($isInstanceOf(av, "TransferTransaction"))
359359 then {
360360 let bB = av
361361 let M = aG(at(bB.assetId))
362362 ((az(bB.assetId) - bB.amount) >= am(L(M), 0))
363363 }
364364 else if ($isInstanceOf(av, "SetScriptTransaction"))
365365 then {
366366 let bC = av
367367 func bD (x,bE) = if (x)
368368 then (am(J(bE), 0) == 0)
369369 else false
370370
371371 let z = G
372372 let A = size(z)
373373 let B = true
374374 func C (D,E) = if ((E >= A))
375375 then D
376376 else bD(D, z[E])
377377
378378 func F (D,E) = if ((E >= A))
379379 then D
380380 else throw("List size exceeds 10")
381381
382382 F(C(C(C(C(C(C(C(C(C(C(B, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
383383 }
384384 else false
385385 }
386386 else false
387387

github/deemru/w8io/873ac7e 
50.97 ms