tx · EPMpHrbGh5EBXXjXR73zsJDT76zqWryQvP4juczHoz3r

3MqQ9ihYKGehfUnXYf5WmkYSZUD71ByeCQe:  -0.01400000 Waves

2020.04.06 11:04 [942100] smart account 3MqQ9ihYKGehfUnXYf5WmkYSZUD71ByeCQe > SELF 0.00000000 Waves

{ "type": 13, "id": "EPMpHrbGh5EBXXjXR73zsJDT76zqWryQvP4juczHoz3r", "fee": 1400000, "feeAssetId": null, "timestamp": 1586160288618, "version": 1, "sender": "3MqQ9ihYKGehfUnXYf5WmkYSZUD71ByeCQe", "senderPublicKey": "HcUXEkA9JTGp78LcTKsu4FmEpbDmnqntL4aMNLx1BHMB", "proofs": [ "5MrYit6oY7CPDBimuf3XFMUNf73NnZNkYjvsKNv54ySEBhFzn7c2KqwLqgYrBPdhw3A5hHA3frMUdaBPMF4ME61e" ], "script": "base64:AAIDAAAAAAAAABIIARIDCgEEEgMKAQgSBAoCCAIAAAAzAAAAAAdXQVZFTEVUCQAAaAAAAAIJAABoAAAAAgAAAAAAAAAAZAAAAAAAAAAD6AAAAAAAAAAD6AAAAAAKQ09NTUlTU0lPTgkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAUFAAAAB1dBVkVMRVQAAAAAAAAAA+gAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAY9iYXNlNjQ6TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFtcHVYY0kvbzRwSUI1eXd2OURPT0dhcFRCVXdSVmxNLzYrSDZoRmVsT1h0a3J3WS9ZSXRtUHhFRHB6N3JBZXJRUFFlOXREUEVhQXYvR25sRXp0eWJPRlhndTlEekRlOFlvTVJEMXZha2dvQWNvZ21iWTU4UUQ2S01qNUhrb1ZqL3lUTkljOXN6ajVxaElsckFkbWIzS0xMNmhRVTd5OCtKajY5QldWUHNhUWdrc3BTZGVZdGIxdEhRYzd0OTVuN09aNTZyMkE3RzMrYlFmNm5TTWtQa0FoSXJFcGJDbTU4b2lHQmN6ZFRkL0xxRlNWb3Rac2JMN1loNlNITGZuSGVEK1FnY2ZKcm5hbThPSE1HSkVKVFJYaklMZUhHamxSQ1A4b1ZwaW9IcnkxUzJ4UHg1c1Z6SW0yTU0rQ3pZZW5BR2xvMGoyNmF0QmhpVUxvVHVsd0QzcFFJREFRQUIAAAAABlNFUlZFUgkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABAgAAACMzTkNpRzI4TG1XeVRpZ1dHMTNFNVFudmRIQnNaRllYU1MyagAAAAATUkFORE9SQUNMRVRJTUVGUkFNRQAAAAAAAAAQ4AAAAAAOTUFYQkFMQU5DRURJRkYAAAAAAAX14QAAAAAABEJFVDEJAABoAAAAAgAAAAAAAAAAAQUAAAAHV0FWRUxFVAAAAAAEQkVUMgkAAGgAAAACAAAAAAAAAAACBQAAAAdXQVZFTEVUAAAAAARCRVQ0CQAAaAAAAAIAAAAAAAAAAAQFAAAAB1dBVkVMRVQAAAAABEJFVDgJAABoAAAAAgAAAAAAAAAACAUAAAAHV0FWRUxFVAAAAAAFQkVUMTQJAABoAAAAAgAAAAAAAAAADgUAAAAHV0FWRUxFVAAAAAAIUkFURU1VTFQAAAAAAAAAJxAAAAAABVJBVEUxAAAAAAAAAJrnAAAAAAVSQVRFMgAAAAAAAABgGAAAAAAFUkFURTMAAAAAAAAASjgAAAAABVJBVEU0AAAAAAAAADd4AAAAAAVSQVRFNQAAAAAAAAAsiAAAAAAFUkFURVMJAARMAAAAAgUAAAAFUkFURTEJAARMAAAAAgUAAAAFUkFURTIJAARMAAAAAgUAAAAFUkFURTMJAARMAAAAAgUAAAAFUkFURTQJAARMAAAAAgUAAAAFUkFURTUFAAAAA25pbAAAAAAEQkVUUwkABEwAAAACBQAAAARCRVQxCQAETAAAAAIFAAAABEJFVDIJAARMAAAAAgUAAAAEQkVUNAkABEwAAAACBQAAAARCRVQ4CQAETAAAAAIFAAAABUJFVDE0BQAAAANuaWwAAAAADElkeEdhbWVTdGF0ZQAAAAAAAAAAAAAAAAAPSWR4UGxheWVyQ2hvaWNlAAAAAAAAAAABAAAAABFJZHhQbGF5ZXJQdWJLZXk1OAAAAAAAAAAAAgAAAAAQSWR4U3RhcnRlZEhlaWdodAAAAAAAAAAAAwAAAAAJSWR4V2luQW10AAAAAAAAAAAEAAAAAA5JZHhSYW5kT3JFbXB0eQAAAAAAAAAABQAAAAAOUkVTRVJWQVRJT05LRVkCAAAAECRSRVNFUlZFRF9BTU9VTlQAAAAAD0dBTUVTQ09VTlRFUktFWQIAAAAJJEdBTUVfTlVNAAAAAAlEQVBQVVBLRVkCAAAACCREQVBQX1VQAAAAAA1NQVhCQUxBTkNFS0VZAgAAAAwkTUFYX0JBTEFOQ0UAAAAADlNUQVRFU1VCTUlUVEVEAgAAAAlTVUJNSVRURUQAAAAACFNUQVRFV09OAgAAAANXT04AAAAACVNUQVRFTE9TVAIAAAAETE9TVAEAAAAIZ2V0SW50T3IAAAACAAAAA2tleQAAAAdkZWZhdWx0AwkBAAAACWlzRGVmaW5lZAAAAAEJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAR0aGlzBQAAAANrZXkFAAAAB2RlZmF1bHQBAAAABnNldEludAAAAAIAAAADa2V5AAAABXZhbHVlCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAADa2V5BQAAAAV2YWx1ZQEAAAAMaW5jcmVtZW50SW50AAAAAQAAAANrZXkJAQAAAAZzZXRJbnQAAAACBQAAAANrZXkJAABkAAAAAgkBAAAACGdldEludE9yAAAAAgUAAAADa2V5AP//////////AAAAAAAAAAABAQAAABJFeHRyYWN0UmVzZXJ2ZWRBbXQAAAAABAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAADlJFU0VSVkFUSU9OS0VZAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAABAAAAHlZhbGlkYXRlQW5kSW5jcmVhc2VSZXNlcnZlZEFtdAAAAAEAAAAGd2luQW10BAAAABFuZXdSZXNlcnZlZEFtb3VudAkAAGQAAAACCQEAAAASRXh0cmFjdFJlc2VydmVkQW10AAAAAAUAAAAGd2luQW10BAAAAAdiYWxhbmNlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwMJAABmAAAAAgUAAAARbmV3UmVzZXJ2ZWRBbW91bnQFAAAAB2JhbGFuY2UJAAACAAAAAQIAAABUSW5zdWZmaWNpZW50IGZ1bmRzIG9uIERpY2UgUm9sbGVyIGFjY291bnQuIFRyYW5zYWN0aW9uIHdhcyByZWplY3RlZCBmb3IgeW91ciBzYWZldHkuBQAAABFuZXdSZXNlcnZlZEFtb3VudAEAAAATRGVjcmVhc2VSZXNlcnZlZEFtdAAAAAIAAAAGZ2FtZUlkAAAABndpbkFtdAQAAAARbmV3UmVzZXJ2ZWRBbW91bnQJAABlAAAAAgkBAAAAEkV4dHJhY3RSZXNlcnZlZEFtdAAAAAAFAAAABndpbkFtdAMJAABmAAAAAgAAAAAAAAAAAAUAAAARbmV3UmVzZXJ2ZWRBbW91bnQJAAACAAAAAQIAAABCSW52YWxpZCBEaWNlIFJvbGxlciBhY2NvdW50IHN0YXRlIC0gcmVzZXJ2ZWQgYW1vdW50IGlzIGxlc3MgdGhhbiAwCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOUkVTRVJWQVRJT05LRVkFAAAAEW5ld1Jlc2VydmVkQW1vdW50AQAAABpWYWxpZGF0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aW5CeVRpbWVvdXQAAAARZGVjcmVhc2VkUmVzZXJ2ZXMEAAAADndTZXRDb21tb25EYXRhCQAETAAAAAIFAAAAEWRlY3JlYXNlZFJlc2VydmVzBQAAAANuaWwEAAAADnRTZXRDb21tb25EYXRhCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADXBsYXllckFkZHJlc3MFAAAABndpbkFtdAUAAAAEdW5pdAUAAAADbmlsAwUAAAAMd2luQnlUaW1lb3V0BAAAABZuZXdHYW1lRGF0YVN0ckFkanVzdGVkCQABLAAAAAIJAAEsAAAAAgUAAAAObmV3R2FtZURhdGFTdHICAAAAAV8JAQAAABNGb3JtYXRHYW1lRGF0YVBhcmFtAAAAAQIAAAAHVElNRU9VVAQAAAAIZ2FtZURhdGEJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAAFm5ld0dhbWVEYXRhU3RyQWRqdXN0ZWQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIFAAAACGdhbWVEYXRhBQAAAA53U2V0Q29tbW9uRGF0YQkBAAAAC1RyYW5zZmVyU2V0AAAAAQUAAAAOdFNldENvbW1vbkRhdGEEAAAACGdhbWVEYXRhCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAA5uZXdHYW1lRGF0YVN0cgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgUAAAAIZ2FtZURhdGEFAAAADndTZXRDb21tb25EYXRhCQEAAAALVHJhbnNmZXJTZXQAAAABBQAAAA50U2V0Q29tbW9uRGF0YQEAAAAISXNEQXBwVXAAAAAABAAAAAlkQXBwVXBPcHQJAAQbAAAAAgUAAAAEdGhpcwUAAAAJREFQUFVQS0VZAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAACWRBcHBVcE9wdAkBAAAAB2V4dHJhY3QAAAABBQAAAAlkQXBwVXBPcHQHAQAAABFtb25pdG9yTWF4QmFsYW5jZQAAAAAEAAAADW1heEJhbGFuY2VPcHQJAAQaAAAAAgUAAAAEdGhpcwUAAAANTUFYQkFMQU5DRUtFWQQAAAAKbWF4QmFsYW5jZQMJAQAAAAlpc0RlZmluZWQAAAABBQAAAA1tYXhCYWxhbmNlT3B0CQEAAAAHZXh0cmFjdAAAAAEFAAAADW1heEJhbGFuY2VPcHQAAAAAAAAAAAAEAAAAC2N1cnJCYWxhbmNlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwMJAABmAAAAAgUAAAALY3VyckJhbGFuY2UFAAAACm1heEJhbGFuY2UFAAAAC2N1cnJCYWxhbmNlBAAAAARkaWZmCQAAZQAAAAIFAAAACm1heEJhbGFuY2UFAAAAC2N1cnJCYWxhbmNlAwkAAGYAAAACBQAAAARkaWZmBQAAAA5NQVhCQUxBTkNFRElGRgkAAAIAAAABAgAAABpkQXBwIGlzIHRlbXBvcmFyeSBkaXNhYmxlZAUAAAAKbWF4QmFsYW5jZQAAAAMAAAABaQEAAAAGZEFwcFVwAAAAAQAAAAZkQXBwVXADCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABlNFUlZFUgkAAAIAAAABAgAAACdPbmx5IFNlcnZlciBjYW4gbWFuYWdlIGRBcHBVcCBhdHRyaWJ1dGUDCQAAAAAAAAIJAQAAAAhJc0RBcHBVcAAAAAAFAAAABmRBcHBVcAkAAAIAAAABAgAAACpkQXBwVXAgbXVzdCBiZSBkaWZmZXJlbnQgd2l0aCBhY3R1YWwgdmFsdWUJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACURBUFBVUEtFWQUAAAAGZEFwcFVwBQAAAANuaWwAAAABaQEAAAADYmV0AAAAAQAAAAxwbGF5ZXJDaG9pY2UEAAAABmdhbWVJZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkAwkBAAAAASEAAAABCQEAAAAISXNEQXBwVXAAAAAACQAAAgAAAAECAAAAGURBcHAgaXMgdW5kZXIgbWFpbnRlbmFuY2UDCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzBQAAAAZnYW1lSWQJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAACUJldCBmb3I6IAUAAAAGZ2FtZUlkAgAAABIgd2FzIGFscmVhZHkgbWFkZS4EAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAA1iZXROb3RJbldhdmVzCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA3BtdAAAAAdhc3NldElkBAAAAAZ3aW5BbXQJAQAAABpWYWxpZGF0ZUJldEFuZERlZmluZVdpbkFtdAAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAAAxwbGF5ZXJDaG9pY2UEAAAACHR4SWRVc2VkCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzBQAAAAZnYW1lSWQDBQAAAA1iZXROb3RJbldhdmVzCQAAAgAAAAECAAAAG0JldCBhbW91bnQgbXVzdCBiZSBpbiBXYXZlcwQAAAAOcGxheWVyUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAtnYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgUAAAAOU1RBVEVTVUJNSVRURUQFAAAADHBsYXllckNob2ljZQUAAAAOcGxheWVyUHViS2V5NTgFAAAABmhlaWdodAUAAAAGd2luQW10AgAAAAAJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5SRVNFUlZBVElPTktFWQkBAAAAHlZhbGlkYXRlQW5kSW5jcmVhc2VSZXNlcnZlZEFtdAAAAAEFAAAABndpbkFtdAkABEwAAAACCQEAAAAMaW5jcmVtZW50SW50AAAAAQUAAAAPR0FNRVNDT1VOVEVSS0VZCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA1NQVhCQUxBTkNFS0VZCQEAAAARbW9uaXRvck1heEJhbGFuY2UAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAAC2dhbWVEYXRhU3RyBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAGU0VSVkVSBQAAAApDT01NSVNTSU9OBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAId2l0aGRyYXcAAAACAAAABmdhbWVJZAAAAAdyc2FTaWduBAAAAAxnYW1lRGF0YUxpc3QJAQAAABNFeHRyYWN0R2FtZURhdGFMaXN0AAAAAQUAAAAGZ2FtZUlkBAAAAAlnYW1lU3RhdGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAxJZHhHYW1lU3RhdGUEAAAADHBsYXllckNob2ljZQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAAD0lkeFBsYXllckNob2ljZQQAAAANc3RhcnRlZEhlaWdodAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAQSWR4U3RhcnRlZEhlaWdodAQAAAAGd2luQW10CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAlJZHhXaW5BbXQEAAAADnBsYXllclB1YktleTU4CQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAARSWR4UGxheWVyUHViS2V5NTgEAAAADXBsYXllckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAAOcGxheWVyUHViS2V5NTgEAAAADHdpbkJ5VGltZW91dAkAAGYAAAACCQAAZQAAAAIFAAAABmhlaWdodAUAAAANc3RhcnRlZEhlaWdodAUAAAATUkFORE9SQUNMRVRJTUVGUkFNRQQAAAARZGVjcmVhc2VkUmVzZXJ2ZXMJAQAAABNEZWNyZWFzZVJlc2VydmVkQW10AAAAAgUAAAAGZ2FtZUlkBQAAAAZ3aW5BbXQDCQEAAAACIT0AAAACBQAAAAlnYW1lU3RhdGUFAAAADlNUQVRFU1VCTUlUVEVECQAAAgAAAAECAAAAJEludmFsaWQgZ2FtZSBzdGF0ZSBmb3IgcGFzc2VkIGdhbWVJZAMFAAAADHdpbkJ5VGltZW91dAQAAAAHcmFuZFN0cgkAAS8AAAACBQAAAAxwbGF5ZXJDaG9pY2UAAAAAAAAAAAEEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAAhTVEFURVdPTgUAAAAMcGxheWVyQ2hvaWNlBQAAAA5wbGF5ZXJQdWJLZXk1OAUAAAANc3RhcnRlZEhlaWdodAUAAAAGd2luQW10BQAAAAdyYW5kU3RyCQEAAAAMV2luU2NyaXB0U2V0AAAABgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzBQAAAAZ3aW5BbXQFAAAADm5ld0dhbWVEYXRhU3RyBQAAAAx3aW5CeVRpbWVvdXQFAAAAEWRlY3JlYXNlZFJlc2VydmVzBAAAAAdyYW5kU3RyCQEAAAAJUmFuZFRvU3RyAAAAAQkBAAAAD0dlbmVyYXRlUmFuZEludAAAAAIFAAAABmdhbWVJZAUAAAAHcnNhU2lnbgMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAGU0VSVkVSCQAAAgAAAAECAAAAK1JlZ3VsYXIgd2l0aGRyYXcgY2FuIGJlIGRvbmUgYnkgc2VydmVyIG9ubHkDCQEAAAALSXNQbGF5ZXJXaW4AAAACBQAAAAxwbGF5ZXJDaG9pY2UFAAAAB3JhbmRTdHIEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAAhTVEFURVdPTgUAAAAMcGxheWVyQ2hvaWNlBQAAAA5wbGF5ZXJQdWJLZXk1OAUAAAANc3RhcnRlZEhlaWdodAUAAAAGd2luQW10BQAAAAdyYW5kU3RyCQEAAAAMV2luU2NyaXB0U2V0AAAABgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzBQAAAAZ3aW5BbXQFAAAADm5ld0dhbWVEYXRhU3RyBQAAAAx3aW5CeVRpbWVvdXQFAAAAEWRlY3JlYXNlZFJlc2VydmVzBAAAAA5uZXdHYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAABgUAAAAJU1RBVEVMT1NUBQAAAAxwbGF5ZXJDaG9pY2UFAAAADnBsYXllclB1YktleTU4BQAAAA1zdGFydGVkSGVpZ2h0BQAAAAZ3aW5BbXQFAAAAB3JhbmRTdHIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAUAAAAObmV3R2FtZURhdGFTdHIJAARMAAAAAgUAAAARZGVjcmVhc2VkUmVzZXJ2ZXMFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAkAAGcAAAACCQAAZQAAAAIJAQAAAAx3YXZlc0JhbGFuY2UAAAABBQAAAAR0aGlzCAUAAAADdHR4AAAABmFtb3VudAkBAAAAEkV4dHJhY3RSZXNlcnZlZEFtdAAAAAADCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAANzdHgFAAAAByRtYXRjaDADCQAAAAAAAAIJAQAAAAhJc0RBcHBVcAAAAAAHCQAAAAAAAAIJAQAAABJFeHRyYWN0UmVzZXJ2ZWRBbXQAAAAAAAAAAAAAAAAABwcHlo1jbw==", "chainId": 84, "height": 942100, "spentComplexity": 0 } View: original | compacted Prev: B5sh5eCzMdCK9paWDLCYPuA5K58YRVhyZedKNwx1fbiW Next: none Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmpuXcI/o4pIB5ywv9DOOGapTBUwRVlM/6+H6hFelOXtkrwY/YItmPxEDpz7rAerQPQe9tDPEaAv/GnlEztybOFXgu9DzDe8YoMRD1vakgoAcogmbY58QD6KMj5HkoVj/yTNIc9szj5qhIlrAdmb3KLL6hQU7y8+Jj69BWVPsaQgkspSdeYtb1tHQc7t95n7OZ56r2A7G3+bQf6nSMkPkAhIrEpbCm58oiGBczdTd/LqFSVotZsbL7Yh6SHLfnHeD+QgcfJrnam8OHMGJEJTRXjILeHGjlRCP8oVpioHry1S2xPx5sVzIm2MM+CzYenAGlo0j26atBhiULoTulwD3pQIDAQAB")
4+let a = ((100 * 1000) * 1000)
55
6-let b = addressFromStringValue("3NCiG28LmWyTigWG13E5QnvdHBsZFYXSS2j")
6+let b = ((5 * a) / 1000)
77
8-let c = 4320
8+let c = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmpuXcI/o4pIB5ywv9DOOGapTBUwRVlM/6+H6hFelOXtkrwY/YItmPxEDpz7rAerQPQe9tDPEaAv/GnlEztybOFXgu9DzDe8YoMRD1vakgoAcogmbY58QD6KMj5HkoVj/yTNIc9szj5qhIlrAdmb3KLL6hQU7y8+Jj69BWVPsaQgkspSdeYtb1tHQc7t95n7OZ56r2A7G3+bQf6nSMkPkAhIrEpbCm58oiGBczdTd/LqFSVotZsbL7Yh6SHLfnHeD+QgcfJrnam8OHMGJEJTRXjILeHGjlRCP8oVpioHry1S2xPx5sVzIm2MM+CzYenAGlo0j26atBhiULoTulwD3pQIDAQAB")
99
10-let d = ((100 * 1000) * 1000)
10+let d = addressFromStringValue("3NCiG28LmWyTigWG13E5QnvdHBsZFYXSS2j")
1111
12-let e = ((5 * d) / 1000)
12+let e = 4320
1313
14-let f = (1 * d)
14+let f = 100000000
1515
16-let g = (2 * d)
16+let g = (1 * a)
1717
18-let h = (4 * d)
18+let h = (2 * a)
1919
20-let i = (8 * d)
20+let i = (4 * a)
2121
22-let j = (14 * d)
22+let j = (8 * a)
2323
24-let k = 10000
24+let k = (14 * a)
2525
26-let l = 39655
26+let l = 10000
2727
28-let m = 24600
28+let m = 39655
2929
30-let n = 19000
30+let n = 24600
3131
32-let o = 14200
32+let o = 19000
3333
34-let p = 11400
34+let p = 14200
3535
36-let q = 0
36+let q = 11400
3737
38-let r = 1
38+let r = [m, n, o, p, q]
3939
40-let s = 2
40+let s = [g, h, i, j, k]
4141
42-let t = 3
42+let t = 0
4343
44-let u = 4
44+let u = 1
4545
46-let v = 5
46+let v = 2
4747
48-let w = "$RESERVED_AMOUNT"
48+let w = 3
4949
50-let x = "$GAME_NUM"
50+let x = 4
5151
52-let y = "SUBMITTED"
52+let y = 5
5353
54-let z = "WON"
54+let z = "$RESERVED_AMOUNT"
5555
56-let A = "LOST"
56+let A = "$GAME_NUM"
5757
58-func B () = {
59- let C = {
60- let D = getInteger(this, x)
61- if ($isInstanceOf(D, "Int"))
62- then {
63- let E = D
64- E
65- }
66- else 0
67- }
68- (C + 1)
69- }
58+let B = "$DAPP_UP"
59+
60+let C = "$MAX_BALANCE"
61+
62+let D = "SUBMITTED"
63+
64+let E = "WON"
65+
66+let F = "LOST"
67+
68+func G (H,I) = if (isDefined(getInteger(this, H)))
69+ then getIntegerValue(this, H)
70+ else I
7071
7172
72-func F () = {
73- let D = getInteger(this, w)
74- if ($isInstanceOf(D, "Int"))
73+func J (H,K) = DataEntry(H, K)
74+
75+
76+func L (H) = J(H, (G(H, -1) + 1))
77+
78+
79+func M () = {
80+ let N = getInteger(this, z)
81+ if ($isInstanceOf(N, "Int"))
7582 then {
76- let G = D
77- G
83+ let O = N
84+ O
7885 }
7986 else 0
8087 }
8188
8289
83-func H (I) = {
84- let J = (F() + I)
85- let K = wavesBalance(this)
86- if ((J > K))
90+func P (Q) = {
91+ let R = (M() + Q)
92+ let S = wavesBalance(this)
93+ if ((R > S))
8794 then throw("Insufficient funds on Dice Roller account. Transaction was rejected for your safety.")
88- else J
95+ else R
8996 }
9097
9198
92-func L (M,I) = {
93- let J = (F() - I)
94- if ((0 > J))
99+func T (U,Q) = {
100+ let R = (M() - Q)
101+ if ((0 > R))
95102 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
96- else DataEntry(w, J)
103+ else DataEntry(z, R)
97104 }
98105
99106
100-func N (O,P) = {
101- let Q = if (if (if (if ((O == (f + e)))
107+func V (W,X) = {
108+ let Y = if (if (if (if ((W == (g + b)))
102109 then true
103- else (O == (g + e)))
110+ else (W == (h + b)))
104111 then true
105- else (O == (h + e)))
112+ else (W == (i + b)))
106113 then true
107- else (O == (i + e)))
114+ else (W == (j + b)))
108115 then true
109- else (O == (j + e))
110- if (Q)
111- then {
112- let R = size(P)
113- let S = (O - e)
114- if ((R == 1))
115- then ((S * l) / k)
116- else if ((R == 2))
117- then ((S * m) / k)
118- else if ((R == 3))
119- then ((S * n) / k)
120- else if ((R == 4))
121- then ((S * o) / k)
122- else if ((R == 5))
123- then ((S * p) / k)
116+ else (W == (k + b))
117+ if (Y)
118+ then throw("Bet amount is not in range")
119+ else {
120+ let Z = size(X)
121+ let aa = (W - b)
122+ if ((Z == 1))
123+ then ((aa * m) / l)
124+ else if ((Z == 2))
125+ then ((aa * n) / l)
126+ else if ((Z == 3))
127+ then ((aa * o) / l)
128+ else if ((Z == 4))
129+ then ((aa * p) / l)
130+ else if ((Z == 5))
131+ then ((aa * q) / l)
124132 else throw("Invalid dices count in player's choice")
125133 }
126- else throw("Bet amount is not in range")
127134 }
128135
129136
130-func T (U) = if ((U == 0))
137+func ab (ac) = if ((ac == 0))
131138 then "1"
132- else if ((U == 1))
139+ else if ((ac == 1))
133140 then "2"
134- else if ((U == 2))
141+ else if ((ac == 2))
135142 then "3"
136- else if ((U == 3))
143+ else if ((ac == 3))
137144 then "4"
138- else if ((U == 4))
145+ else if ((ac == 4))
139146 then "5"
140- else if ((U == 5))
147+ else if ((ac == 5))
141148 then "6"
142- else throw(("Unsupported r parameter passed: expected=[0,...,5] actual=" + toString(U)))
149+ else throw(("Unsupported r parameter passed: expected=[0,...,5] actual=" + toString(ac)))
143150
144151
145-func V (M,W) = {
146- let X = rsaVerify(SHA256, toBytes(M), W, a)
147- if (X)
152+func ad (U,ae) = {
153+ let af = rsaVerify(SHA256, toBytes(U), ae, c)
154+ if (af)
148155 then {
149- let Y = (toInt(sha256(W)) % 6)
150- if ((0 > Y))
151- then (-1 * Y)
152- else Y
156+ let ag = (toInt(sha256(ae)) % 6)
157+ if ((0 > ag))
158+ then (-1 * ag)
159+ else ag
153160 }
154161 else throw("Invalid RSA signature")
155162 }
156163
157164
158-func Z (P,aa) = {
159- let ab = size(P)
160- if (if (if (if (if (if ((ab >= 1))
161- then (take(drop(P, 0), 1) == aa)
165+func ah (X,ai) = {
166+ let aj = size(X)
167+ if (if (if (if (if ((aj >= 1))
168+ then (take(drop(X, 0), 1) == ai)
162169 else false)
163170 then true
164- else if ((ab >= 2))
165- then (take(drop(P, 1), 1) == aa)
171+ else if ((aj >= 2))
172+ then (take(drop(X, 1), 1) == ai)
166173 else false)
167174 then true
168- else if ((ab >= 3))
169- then (take(drop(P, 2), 1) == aa)
175+ else if ((aj >= 3))
176+ then (take(drop(X, 2), 1) == ai)
170177 else false)
171178 then true
172- else if ((ab >= 4))
173- then (take(drop(P, 3), 1) == aa)
179+ else if ((aj >= 4))
180+ then (take(drop(X, 3), 1) == ai)
174181 else false)
175182 then true
176- else if ((ab >= 5))
177- then (take(drop(P, 4), 1) == aa)
178- else false)
179- then true
180- else if ((ab >= 6))
181- then (take(drop(P, 5), 1) == aa)
183+ else if ((aj == 5))
184+ then (take(drop(X, 4), 1) == ai)
182185 else false
183186 }
184187
185188
186-func ac (ad) = {
187- let ab = size(ad)
188- if ((ab == 0))
189+func ak (al) = {
190+ let aj = size(al)
191+ if ((aj == 0))
189192 then throw("Parameter size must be greater then 0")
190- else if ((ab > 99))
193+ else if ((aj > 99))
191194 then throw("Parameter size must be less then 100")
192- else if ((10 > ab))
193- then (("0" + toString(ab)) + ad)
194- else (toString(ab) + ad)
195+ else if ((10 > aj))
196+ then (("0" + toString(aj)) + al)
197+ else (toString(aj) + al)
195198 }
196199
197200
198-func ae (af,P,ag,ah,I,ai) = {
199- let aj = ((((((((ac(af) + "_") + ac(P)) + "_") + ac(ag)) + "_") + ac(toString(ah))) + "_") + ac(toString(I)))
200- if ((ai == ""))
201- then aj
202- else ((aj + "_") + ac(ai))
201+func am (an,X,ao,ap,Q,aq) = {
202+ let ar = ((((((((ak(an) + "_") + ak(X)) + "_") + ak(ao)) + "_") + ak(toString(ap))) + "_") + ak(toString(Q)))
203+ if ((aq == ""))
204+ then ar
205+ else ((ar + "_") + ak(aq))
203206 }
204207
205208
206-func ak (al) = if ((size(al) > 0))
207- then drop(al, 1)
208- else al
209+func as (at) = if ((size(at) > 0))
210+ then drop(at, 1)
211+ else at
209212
210213
211-func am (al) = {
212- let ab = size(al)
213- if ((ab > 0))
214+func au (at) = {
215+ let aj = size(at)
216+ if ((aj > 0))
214217 then {
215- let an = parseIntValue(take(al, 2))
216- let ao = take(drop(al, 2), an)
217- let ap = drop(al, (an + 2))
218- let aq = ak(ap)
219-[ao, aq]
218+ let av = parseIntValue(take(at, 2))
219+ let aw = take(drop(at, 2), av)
220+ let ax = drop(at, (av + 2))
221+ let ay = as(ax)
222+[aw, ay]
220223 }
221224 else throw("Empty string was passed into parseNextAttribute func")
222225 }
223226
224227
225-func ar (as) = {
226- let af = am(as)
227- let P = am(af[1])
228- let ag = am(P[1])
229- let ah = am(ag[1])
230- let I = am(ah[1])
231-[af[0], P[0], ag[0], ah[0], I[0]]
228+func az (aA) = {
229+ let an = au(aA)
230+ let X = au(an[1])
231+ let ao = au(X[1])
232+ let ap = au(ao[1])
233+ let Q = au(ap[1])
234+[an[0], X[0], ao[0], ap[0], Q[0]]
232235 }
233236
234237
235-func at (M) = {
236- let au = {
237- let D = getString(this, M)
238- if ($isInstanceOf(D, "String"))
238+func aB (U) = {
239+ let aC = {
240+ let N = getString(this, U)
241+ if ($isInstanceOf(N, "String"))
239242 then {
240- let av = D
241- av
243+ let aD = N
244+ aD
242245 }
243- else throw(("Couldn't find game by " + M))
246+ else throw(("Couldn't find game by " + U))
244247 }
245- ar(au)
248+ az(aC)
246249 }
247250
248251
249-func aw (M,ax,I,ay,az,aA) = {
250- let aB = [aA]
251- let aC = [ScriptTransfer(ax, I, unit)]
252- if (az)
252+func aE (U,aF,Q,aG,aH,aI) = {
253+ let aJ = [aI]
254+ let aK = [ScriptTransfer(aF, Q, unit)]
255+ if (aH)
253256 then {
254- let aD = ((ay + "_") + ac("TIMEOUT"))
255- let aE = DataEntry(M, aD)
256- ScriptResult(WriteSet(aE :: aB), TransferSet(aC))
257+ let aL = ((aG + "_") + ak("TIMEOUT"))
258+ let aM = DataEntry(U, aL)
259+ ScriptResult(WriteSet(aM :: aJ), TransferSet(aK))
257260 }
258261 else {
259- let aE = DataEntry(M, ay)
260- ScriptResult(WriteSet(aE :: aB), TransferSet(aC))
262+ let aM = DataEntry(U, aG)
263+ ScriptResult(WriteSet(aM :: aJ), TransferSet(aK))
261264 }
262265 }
263266
264267
265-@Callable(aF)
266-func bet (P) = {
267- let aG = B()
268- let M = toBase58String(aF.transactionId)
269- let aH = extract(aF.payment)
270- let aI = isDefined(aH.assetId)
271- let aJ = isDefined(aH.assetId)
272- let I = N(aH.amount, P)
273- let aK = isDefined(getString(this, M))
274- if (aI)
275- then throw("Bet amount must be in Waves")
276- else if (aJ)
277- then throw("Transaction's fee must be in Waves")
278- else if (aK)
279- then throw("Passed txId had been used before. Game aborted.")
280- else {
281- let ag = toBase58String(aF.callerPublicKey)
282- let aL = ae(y, P, ag, height, I, "")
283- ScriptResult(WriteSet([DataEntry(w, H(I)), DataEntry(x, aG), DataEntry(M, aL)]), TransferSet([ScriptTransfer(b, e, unit)]))
284- }
268+func aN () = {
269+ let aO = getBoolean(this, B)
270+ if (isDefined(aO))
271+ then extract(aO)
272+ else false
285273 }
286274
287275
276+func aP () = {
277+ let aQ = getInteger(this, C)
278+ let aR = if (isDefined(aQ))
279+ then extract(aQ)
280+ else 0
281+ let aS = wavesBalance(this)
282+ if ((aS > aR))
283+ then aS
284+ else {
285+ let aT = (aR - aS)
286+ if ((aT > f))
287+ then throw("dApp is temporary disabled")
288+ else aR
289+ }
290+ }
288291
289-@Callable(aF)
290-func withdraw (M,W) = {
291- let aM = at(M)
292- let af = aM[q]
293- let P = aM[r]
294- let ah = parseIntValue(aM[t])
295- let I = parseIntValue(aM[u])
296- let ag = aM[s]
297- let ax = addressFromPublicKey(fromBase58String(ag))
298- let az = ((height - ah) > c)
299- let aA = L(M, I)
300- if ((af != y))
301- then throw("Invalid game state for passed gameId")
302- else if (az)
303- then {
304- let aa = take(P, 1)
305- let ay = ae(z, P, ag, ah, I, aa)
306- aw(M, ax, I, ay, az, aA)
307- }
292+
293+@Callable(aU)
294+func dAppUp (aV) = if ((aU.caller != d))
295+ then throw("Only Server can manage dAppUp attribute")
296+ else if ((aN() == aV))
297+ then throw("dAppUp must be different with actual value")
298+ else WriteSet([DataEntry(B, aV)])
299+
300+
301+
302+@Callable(aU)
303+func bet (X) = {
304+ let U = toBase58String(aU.transactionId)
305+ if (!(aN()))
306+ then throw("DApp is under maintenance")
307+ else if (isDefined(getString(this, U)))
308+ then throw((("Bet for: " + U) + " was already made."))
308309 else {
309- let aa = T(V(M, W))
310- if (Z(P, aa))
311- then {
312- let ay = ae(z, P, ag, ah, I, aa)
313- aw(M, ax, I, ay, az, aA)
314- }
310+ let aW = extract(aU.payment)
311+ let aX = isDefined(aW.assetId)
312+ let Q = V(aW.amount, X)
313+ let aY = isDefined(getString(this, U))
314+ if (aX)
315+ then throw("Bet amount must be in Waves")
315316 else {
316- let ay = ae(A, P, ag, ah, I, aa)
317- WriteSet([DataEntry(M, ay), aA])
317+ let ao = toBase58String(aU.callerPublicKey)
318+ let aZ = am(D, X, ao, height, Q, "")
319+ ScriptResult(WriteSet([DataEntry(z, P(Q)), L(A), DataEntry(C, aP()), DataEntry(U, aZ)]), TransferSet([ScriptTransfer(d, b, unit)]))
318320 }
319321 }
320322 }
321323
322324
323-@Verifier(aN)
324-func aO () = if (sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey))
325+
326+@Callable(aU)
327+func withdraw (U,ae) = {
328+ let ba = aB(U)
329+ let an = ba[t]
330+ let X = ba[u]
331+ let ap = parseIntValue(ba[w])
332+ let Q = parseIntValue(ba[x])
333+ let ao = ba[v]
334+ let aF = addressFromPublicKey(fromBase58String(ao))
335+ let aH = ((height - ap) > e)
336+ let aI = T(U, Q)
337+ if ((an != D))
338+ then throw("Invalid game state for passed gameId")
339+ else if (aH)
340+ then {
341+ let ai = take(X, 1)
342+ let aG = am(E, X, ao, ap, Q, ai)
343+ aE(U, aF, Q, aG, aH, aI)
344+ }
345+ else {
346+ let ai = ab(ad(U, ae))
347+ if ((aU.caller != d))
348+ then throw("Regular withdraw can be done by server only")
349+ else if (ah(X, ai))
350+ then {
351+ let aG = am(E, X, ao, ap, Q, ai)
352+ aE(U, aF, Q, aG, aH, aI)
353+ }
354+ else {
355+ let aG = am(F, X, ao, ap, Q, ai)
356+ WriteSet([DataEntry(U, aG), aI])
357+ }
358+ }
359+ }
360+
361+
362+@Verifier(bb)
363+func bc () = if (sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey))
325364 then {
326- let D = aN
327- if ($isInstanceOf(D, "TransferTransaction"))
365+ let N = bb
366+ if ($isInstanceOf(N, "TransferTransaction"))
328367 then {
329- let aP = D
330- ((wavesBalance(this) - aP.amount) >= F())
368+ let bd = N
369+ ((wavesBalance(this) - bd.amount) >= M())
331370 }
332- else if ($isInstanceOf(D, "SetScriptTransaction"))
371+ else if ($isInstanceOf(N, "SetScriptTransaction"))
333372 then {
334- let aQ = D
335- true
373+ let be = N
374+ if ((aN() == false))
375+ then (M() == 0)
376+ else false
336377 }
337378 else false
338379 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmpuXcI/o4pIB5ywv9DOOGapTBUwRVlM/6+H6hFelOXtkrwY/YItmPxEDpz7rAerQPQe9tDPEaAv/GnlEztybOFXgu9DzDe8YoMRD1vakgoAcogmbY58QD6KMj5HkoVj/yTNIc9szj5qhIlrAdmb3KLL6hQU7y8+Jj69BWVPsaQgkspSdeYtb1tHQc7t95n7OZ56r2A7G3+bQf6nSMkPkAhIrEpbCm58oiGBczdTd/LqFSVotZsbL7Yh6SHLfnHeD+QgcfJrnam8OHMGJEJTRXjILeHGjlRCP8oVpioHry1S2xPx5sVzIm2MM+CzYenAGlo0j26atBhiULoTulwD3pQIDAQAB")
4+let a = ((100 * 1000) * 1000)
55
6-let b = addressFromStringValue("3NCiG28LmWyTigWG13E5QnvdHBsZFYXSS2j")
6+let b = ((5 * a) / 1000)
77
8-let c = 4320
8+let c = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmpuXcI/o4pIB5ywv9DOOGapTBUwRVlM/6+H6hFelOXtkrwY/YItmPxEDpz7rAerQPQe9tDPEaAv/GnlEztybOFXgu9DzDe8YoMRD1vakgoAcogmbY58QD6KMj5HkoVj/yTNIc9szj5qhIlrAdmb3KLL6hQU7y8+Jj69BWVPsaQgkspSdeYtb1tHQc7t95n7OZ56r2A7G3+bQf6nSMkPkAhIrEpbCm58oiGBczdTd/LqFSVotZsbL7Yh6SHLfnHeD+QgcfJrnam8OHMGJEJTRXjILeHGjlRCP8oVpioHry1S2xPx5sVzIm2MM+CzYenAGlo0j26atBhiULoTulwD3pQIDAQAB")
99
10-let d = ((100 * 1000) * 1000)
10+let d = addressFromStringValue("3NCiG28LmWyTigWG13E5QnvdHBsZFYXSS2j")
1111
12-let e = ((5 * d) / 1000)
12+let e = 4320
1313
14-let f = (1 * d)
14+let f = 100000000
1515
16-let g = (2 * d)
16+let g = (1 * a)
1717
18-let h = (4 * d)
18+let h = (2 * a)
1919
20-let i = (8 * d)
20+let i = (4 * a)
2121
22-let j = (14 * d)
22+let j = (8 * a)
2323
24-let k = 10000
24+let k = (14 * a)
2525
26-let l = 39655
26+let l = 10000
2727
28-let m = 24600
28+let m = 39655
2929
30-let n = 19000
30+let n = 24600
3131
32-let o = 14200
32+let o = 19000
3333
34-let p = 11400
34+let p = 14200
3535
36-let q = 0
36+let q = 11400
3737
38-let r = 1
38+let r = [m, n, o, p, q]
3939
40-let s = 2
40+let s = [g, h, i, j, k]
4141
42-let t = 3
42+let t = 0
4343
44-let u = 4
44+let u = 1
4545
46-let v = 5
46+let v = 2
4747
48-let w = "$RESERVED_AMOUNT"
48+let w = 3
4949
50-let x = "$GAME_NUM"
50+let x = 4
5151
52-let y = "SUBMITTED"
52+let y = 5
5353
54-let z = "WON"
54+let z = "$RESERVED_AMOUNT"
5555
56-let A = "LOST"
56+let A = "$GAME_NUM"
5757
58-func B () = {
59- let C = {
60- let D = getInteger(this, x)
61- if ($isInstanceOf(D, "Int"))
62- then {
63- let E = D
64- E
65- }
66- else 0
67- }
68- (C + 1)
69- }
58+let B = "$DAPP_UP"
59+
60+let C = "$MAX_BALANCE"
61+
62+let D = "SUBMITTED"
63+
64+let E = "WON"
65+
66+let F = "LOST"
67+
68+func G (H,I) = if (isDefined(getInteger(this, H)))
69+ then getIntegerValue(this, H)
70+ else I
7071
7172
72-func F () = {
73- let D = getInteger(this, w)
74- if ($isInstanceOf(D, "Int"))
73+func J (H,K) = DataEntry(H, K)
74+
75+
76+func L (H) = J(H, (G(H, -1) + 1))
77+
78+
79+func M () = {
80+ let N = getInteger(this, z)
81+ if ($isInstanceOf(N, "Int"))
7582 then {
76- let G = D
77- G
83+ let O = N
84+ O
7885 }
7986 else 0
8087 }
8188
8289
83-func H (I) = {
84- let J = (F() + I)
85- let K = wavesBalance(this)
86- if ((J > K))
90+func P (Q) = {
91+ let R = (M() + Q)
92+ let S = wavesBalance(this)
93+ if ((R > S))
8794 then throw("Insufficient funds on Dice Roller account. Transaction was rejected for your safety.")
88- else J
95+ else R
8996 }
9097
9198
92-func L (M,I) = {
93- let J = (F() - I)
94- if ((0 > J))
99+func T (U,Q) = {
100+ let R = (M() - Q)
101+ if ((0 > R))
95102 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
96- else DataEntry(w, J)
103+ else DataEntry(z, R)
97104 }
98105
99106
100-func N (O,P) = {
101- let Q = if (if (if (if ((O == (f + e)))
107+func V (W,X) = {
108+ let Y = if (if (if (if ((W == (g + b)))
102109 then true
103- else (O == (g + e)))
110+ else (W == (h + b)))
104111 then true
105- else (O == (h + e)))
112+ else (W == (i + b)))
106113 then true
107- else (O == (i + e)))
114+ else (W == (j + b)))
108115 then true
109- else (O == (j + e))
110- if (Q)
111- then {
112- let R = size(P)
113- let S = (O - e)
114- if ((R == 1))
115- then ((S * l) / k)
116- else if ((R == 2))
117- then ((S * m) / k)
118- else if ((R == 3))
119- then ((S * n) / k)
120- else if ((R == 4))
121- then ((S * o) / k)
122- else if ((R == 5))
123- then ((S * p) / k)
116+ else (W == (k + b))
117+ if (Y)
118+ then throw("Bet amount is not in range")
119+ else {
120+ let Z = size(X)
121+ let aa = (W - b)
122+ if ((Z == 1))
123+ then ((aa * m) / l)
124+ else if ((Z == 2))
125+ then ((aa * n) / l)
126+ else if ((Z == 3))
127+ then ((aa * o) / l)
128+ else if ((Z == 4))
129+ then ((aa * p) / l)
130+ else if ((Z == 5))
131+ then ((aa * q) / l)
124132 else throw("Invalid dices count in player's choice")
125133 }
126- else throw("Bet amount is not in range")
127134 }
128135
129136
130-func T (U) = if ((U == 0))
137+func ab (ac) = if ((ac == 0))
131138 then "1"
132- else if ((U == 1))
139+ else if ((ac == 1))
133140 then "2"
134- else if ((U == 2))
141+ else if ((ac == 2))
135142 then "3"
136- else if ((U == 3))
143+ else if ((ac == 3))
137144 then "4"
138- else if ((U == 4))
145+ else if ((ac == 4))
139146 then "5"
140- else if ((U == 5))
147+ else if ((ac == 5))
141148 then "6"
142- else throw(("Unsupported r parameter passed: expected=[0,...,5] actual=" + toString(U)))
149+ else throw(("Unsupported r parameter passed: expected=[0,...,5] actual=" + toString(ac)))
143150
144151
145-func V (M,W) = {
146- let X = rsaVerify(SHA256, toBytes(M), W, a)
147- if (X)
152+func ad (U,ae) = {
153+ let af = rsaVerify(SHA256, toBytes(U), ae, c)
154+ if (af)
148155 then {
149- let Y = (toInt(sha256(W)) % 6)
150- if ((0 > Y))
151- then (-1 * Y)
152- else Y
156+ let ag = (toInt(sha256(ae)) % 6)
157+ if ((0 > ag))
158+ then (-1 * ag)
159+ else ag
153160 }
154161 else throw("Invalid RSA signature")
155162 }
156163
157164
158-func Z (P,aa) = {
159- let ab = size(P)
160- if (if (if (if (if (if ((ab >= 1))
161- then (take(drop(P, 0), 1) == aa)
165+func ah (X,ai) = {
166+ let aj = size(X)
167+ if (if (if (if (if ((aj >= 1))
168+ then (take(drop(X, 0), 1) == ai)
162169 else false)
163170 then true
164- else if ((ab >= 2))
165- then (take(drop(P, 1), 1) == aa)
171+ else if ((aj >= 2))
172+ then (take(drop(X, 1), 1) == ai)
166173 else false)
167174 then true
168- else if ((ab >= 3))
169- then (take(drop(P, 2), 1) == aa)
175+ else if ((aj >= 3))
176+ then (take(drop(X, 2), 1) == ai)
170177 else false)
171178 then true
172- else if ((ab >= 4))
173- then (take(drop(P, 3), 1) == aa)
179+ else if ((aj >= 4))
180+ then (take(drop(X, 3), 1) == ai)
174181 else false)
175182 then true
176- else if ((ab >= 5))
177- then (take(drop(P, 4), 1) == aa)
178- else false)
179- then true
180- else if ((ab >= 6))
181- then (take(drop(P, 5), 1) == aa)
183+ else if ((aj == 5))
184+ then (take(drop(X, 4), 1) == ai)
182185 else false
183186 }
184187
185188
186-func ac (ad) = {
187- let ab = size(ad)
188- if ((ab == 0))
189+func ak (al) = {
190+ let aj = size(al)
191+ if ((aj == 0))
189192 then throw("Parameter size must be greater then 0")
190- else if ((ab > 99))
193+ else if ((aj > 99))
191194 then throw("Parameter size must be less then 100")
192- else if ((10 > ab))
193- then (("0" + toString(ab)) + ad)
194- else (toString(ab) + ad)
195+ else if ((10 > aj))
196+ then (("0" + toString(aj)) + al)
197+ else (toString(aj) + al)
195198 }
196199
197200
198-func ae (af,P,ag,ah,I,ai) = {
199- let aj = ((((((((ac(af) + "_") + ac(P)) + "_") + ac(ag)) + "_") + ac(toString(ah))) + "_") + ac(toString(I)))
200- if ((ai == ""))
201- then aj
202- else ((aj + "_") + ac(ai))
201+func am (an,X,ao,ap,Q,aq) = {
202+ let ar = ((((((((ak(an) + "_") + ak(X)) + "_") + ak(ao)) + "_") + ak(toString(ap))) + "_") + ak(toString(Q)))
203+ if ((aq == ""))
204+ then ar
205+ else ((ar + "_") + ak(aq))
203206 }
204207
205208
206-func ak (al) = if ((size(al) > 0))
207- then drop(al, 1)
208- else al
209+func as (at) = if ((size(at) > 0))
210+ then drop(at, 1)
211+ else at
209212
210213
211-func am (al) = {
212- let ab = size(al)
213- if ((ab > 0))
214+func au (at) = {
215+ let aj = size(at)
216+ if ((aj > 0))
214217 then {
215- let an = parseIntValue(take(al, 2))
216- let ao = take(drop(al, 2), an)
217- let ap = drop(al, (an + 2))
218- let aq = ak(ap)
219-[ao, aq]
218+ let av = parseIntValue(take(at, 2))
219+ let aw = take(drop(at, 2), av)
220+ let ax = drop(at, (av + 2))
221+ let ay = as(ax)
222+[aw, ay]
220223 }
221224 else throw("Empty string was passed into parseNextAttribute func")
222225 }
223226
224227
225-func ar (as) = {
226- let af = am(as)
227- let P = am(af[1])
228- let ag = am(P[1])
229- let ah = am(ag[1])
230- let I = am(ah[1])
231-[af[0], P[0], ag[0], ah[0], I[0]]
228+func az (aA) = {
229+ let an = au(aA)
230+ let X = au(an[1])
231+ let ao = au(X[1])
232+ let ap = au(ao[1])
233+ let Q = au(ap[1])
234+[an[0], X[0], ao[0], ap[0], Q[0]]
232235 }
233236
234237
235-func at (M) = {
236- let au = {
237- let D = getString(this, M)
238- if ($isInstanceOf(D, "String"))
238+func aB (U) = {
239+ let aC = {
240+ let N = getString(this, U)
241+ if ($isInstanceOf(N, "String"))
239242 then {
240- let av = D
241- av
243+ let aD = N
244+ aD
242245 }
243- else throw(("Couldn't find game by " + M))
246+ else throw(("Couldn't find game by " + U))
244247 }
245- ar(au)
248+ az(aC)
246249 }
247250
248251
249-func aw (M,ax,I,ay,az,aA) = {
250- let aB = [aA]
251- let aC = [ScriptTransfer(ax, I, unit)]
252- if (az)
252+func aE (U,aF,Q,aG,aH,aI) = {
253+ let aJ = [aI]
254+ let aK = [ScriptTransfer(aF, Q, unit)]
255+ if (aH)
253256 then {
254- let aD = ((ay + "_") + ac("TIMEOUT"))
255- let aE = DataEntry(M, aD)
256- ScriptResult(WriteSet(aE :: aB), TransferSet(aC))
257+ let aL = ((aG + "_") + ak("TIMEOUT"))
258+ let aM = DataEntry(U, aL)
259+ ScriptResult(WriteSet(aM :: aJ), TransferSet(aK))
257260 }
258261 else {
259- let aE = DataEntry(M, ay)
260- ScriptResult(WriteSet(aE :: aB), TransferSet(aC))
262+ let aM = DataEntry(U, aG)
263+ ScriptResult(WriteSet(aM :: aJ), TransferSet(aK))
261264 }
262265 }
263266
264267
265-@Callable(aF)
266-func bet (P) = {
267- let aG = B()
268- let M = toBase58String(aF.transactionId)
269- let aH = extract(aF.payment)
270- let aI = isDefined(aH.assetId)
271- let aJ = isDefined(aH.assetId)
272- let I = N(aH.amount, P)
273- let aK = isDefined(getString(this, M))
274- if (aI)
275- then throw("Bet amount must be in Waves")
276- else if (aJ)
277- then throw("Transaction's fee must be in Waves")
278- else if (aK)
279- then throw("Passed txId had been used before. Game aborted.")
280- else {
281- let ag = toBase58String(aF.callerPublicKey)
282- let aL = ae(y, P, ag, height, I, "")
283- ScriptResult(WriteSet([DataEntry(w, H(I)), DataEntry(x, aG), DataEntry(M, aL)]), TransferSet([ScriptTransfer(b, e, unit)]))
284- }
268+func aN () = {
269+ let aO = getBoolean(this, B)
270+ if (isDefined(aO))
271+ then extract(aO)
272+ else false
285273 }
286274
287275
276+func aP () = {
277+ let aQ = getInteger(this, C)
278+ let aR = if (isDefined(aQ))
279+ then extract(aQ)
280+ else 0
281+ let aS = wavesBalance(this)
282+ if ((aS > aR))
283+ then aS
284+ else {
285+ let aT = (aR - aS)
286+ if ((aT > f))
287+ then throw("dApp is temporary disabled")
288+ else aR
289+ }
290+ }
288291
289-@Callable(aF)
290-func withdraw (M,W) = {
291- let aM = at(M)
292- let af = aM[q]
293- let P = aM[r]
294- let ah = parseIntValue(aM[t])
295- let I = parseIntValue(aM[u])
296- let ag = aM[s]
297- let ax = addressFromPublicKey(fromBase58String(ag))
298- let az = ((height - ah) > c)
299- let aA = L(M, I)
300- if ((af != y))
301- then throw("Invalid game state for passed gameId")
302- else if (az)
303- then {
304- let aa = take(P, 1)
305- let ay = ae(z, P, ag, ah, I, aa)
306- aw(M, ax, I, ay, az, aA)
307- }
292+
293+@Callable(aU)
294+func dAppUp (aV) = if ((aU.caller != d))
295+ then throw("Only Server can manage dAppUp attribute")
296+ else if ((aN() == aV))
297+ then throw("dAppUp must be different with actual value")
298+ else WriteSet([DataEntry(B, aV)])
299+
300+
301+
302+@Callable(aU)
303+func bet (X) = {
304+ let U = toBase58String(aU.transactionId)
305+ if (!(aN()))
306+ then throw("DApp is under maintenance")
307+ else if (isDefined(getString(this, U)))
308+ then throw((("Bet for: " + U) + " was already made."))
308309 else {
309- let aa = T(V(M, W))
310- if (Z(P, aa))
311- then {
312- let ay = ae(z, P, ag, ah, I, aa)
313- aw(M, ax, I, ay, az, aA)
314- }
310+ let aW = extract(aU.payment)
311+ let aX = isDefined(aW.assetId)
312+ let Q = V(aW.amount, X)
313+ let aY = isDefined(getString(this, U))
314+ if (aX)
315+ then throw("Bet amount must be in Waves")
315316 else {
316- let ay = ae(A, P, ag, ah, I, aa)
317- WriteSet([DataEntry(M, ay), aA])
317+ let ao = toBase58String(aU.callerPublicKey)
318+ let aZ = am(D, X, ao, height, Q, "")
319+ ScriptResult(WriteSet([DataEntry(z, P(Q)), L(A), DataEntry(C, aP()), DataEntry(U, aZ)]), TransferSet([ScriptTransfer(d, b, unit)]))
318320 }
319321 }
320322 }
321323
322324
323-@Verifier(aN)
324-func aO () = if (sigVerify(aN.bodyBytes, aN.proofs[0], aN.senderPublicKey))
325+
326+@Callable(aU)
327+func withdraw (U,ae) = {
328+ let ba = aB(U)
329+ let an = ba[t]
330+ let X = ba[u]
331+ let ap = parseIntValue(ba[w])
332+ let Q = parseIntValue(ba[x])
333+ let ao = ba[v]
334+ let aF = addressFromPublicKey(fromBase58String(ao))
335+ let aH = ((height - ap) > e)
336+ let aI = T(U, Q)
337+ if ((an != D))
338+ then throw("Invalid game state for passed gameId")
339+ else if (aH)
340+ then {
341+ let ai = take(X, 1)
342+ let aG = am(E, X, ao, ap, Q, ai)
343+ aE(U, aF, Q, aG, aH, aI)
344+ }
345+ else {
346+ let ai = ab(ad(U, ae))
347+ if ((aU.caller != d))
348+ then throw("Regular withdraw can be done by server only")
349+ else if (ah(X, ai))
350+ then {
351+ let aG = am(E, X, ao, ap, Q, ai)
352+ aE(U, aF, Q, aG, aH, aI)
353+ }
354+ else {
355+ let aG = am(F, X, ao, ap, Q, ai)
356+ WriteSet([DataEntry(U, aG), aI])
357+ }
358+ }
359+ }
360+
361+
362+@Verifier(bb)
363+func bc () = if (sigVerify(bb.bodyBytes, bb.proofs[0], bb.senderPublicKey))
325364 then {
326- let D = aN
327- if ($isInstanceOf(D, "TransferTransaction"))
365+ let N = bb
366+ if ($isInstanceOf(N, "TransferTransaction"))
328367 then {
329- let aP = D
330- ((wavesBalance(this) - aP.amount) >= F())
368+ let bd = N
369+ ((wavesBalance(this) - bd.amount) >= M())
331370 }
332- else if ($isInstanceOf(D, "SetScriptTransaction"))
371+ else if ($isInstanceOf(N, "SetScriptTransaction"))
333372 then {
334- let aQ = D
335- true
373+ let be = N
374+ if ((aN() == false))
375+ then (M() == 0)
376+ else false
336377 }
337378 else false
338379 }
339380 else false
340381

github/deemru/w8io/169f3d6 
139.43 ms