tx · 8xh42kktAgjFWFNQXm2y4Nm3zpvCwAJry7zUqhZj7RnX

3N8NLvRGsbGhgoXy7EdigPbAz6N2i7ygBcZ:  -0.01700000 Waves

2023.12.14 18:06 [2886546] smart account 3N8NLvRGsbGhgoXy7EdigPbAz6N2i7ygBcZ > SELF 0.00000000 Waves

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

github/deemru/w8io/169f3d6 
74.17 ms