tx · CeG26yfJWcEy5dWa4ERH68UtUcGhX92ZboQKQA4NfsEv

3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito:  -0.01400000 Waves

2021.10.22 22:00 [1757888] smart account 3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito > SELF 0.00000000 Waves

{ "type": 13, "id": "CeG26yfJWcEy5dWa4ERH68UtUcGhX92ZboQKQA4NfsEv", "fee": 1400000, "feeAssetId": null, "timestamp": 1634929287299, "version": 2, "chainId": 84, "sender": "3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito", "senderPublicKey": "7PMrxEzirv6h9Z2zqLE47qrZd6v1AbRZER5Aqfo95Eyr", "proofs": [ "sPBCEoRBBmXt6qcdevmY6uAhLzKr1zGCKanyGqzVcm2asdLf7X9pssdnJEyMqF2Cm1NXwVzJosECvD8ojzWtNxt" ], "script": "base64:AAIFAAAAAAAAAEEIAhIHCgUBAQEBCBIKCggBAQEBAQEBBBIDCgEBEgsKCQEBAQEBAQgICBIECgIICBIDCgEIEgMKAQgSBAoCCAgSAAAAAEMAAAAADmZhcm1pbmdBZGRyZXNzAQAAABoBVPI2OcArysfSHWdY6vW8njYvqXogIGoz0wAAAAAVcmFyaXR5UHJvdmlkZXJBZGRyZXNzAQAAABoBVPqvXAIOK77VhJOb48rzK/MJjwrn6vR1pAAAAAALZWdnc0Fzc2V0SWQBAAAAIJCd0BOFRitA5P/T5bgiHb1Vgk7rzOBhSkWkXfeUEYRRAAAAAAVTTE9UUwAAAAAAAAAACgAAAAAHV0FJVElORwAAAAAAAAAACAAAAAAMc3RlcER1cmF0aW9uAAAAAAAAAAAFAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADXRyeUdldEJvb2xlYW4AAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAA1nZXROZXh0R2FtZUlkAAAAAAQAAAAGbmV4dElkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAACm5leHRHYW1lSWQDCQAAAAAAAAIFAAAABm5leHRJZAAAAAAAAAAAAAAAAAAAAAAAAQUAAAAGbmV4dElkAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAxfY3VycmVudEdhbWUBAAAAFGdldFBsYXllckN1cnJlbnRHYW1lAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAACmdldFNsb3RLZXkAAAABAAAABHNsb3QJAAEsAAAAAgIAAAAEc2xvdAkAAaQAAAABBQAAAARzbG90AQAAAAdnZXRTbG90AAAAAQAAAARzbG90CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAApnZXRTbG90S2V5AAAAAQUAAAAEc2xvdAEAAAAQZ2V0UGxheWVyUm9sZUtleQAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABBnZXRQbGF5ZXJSb2xlS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAAtnZXRNYWtlcktleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAABl9tYWtlcgEAAAAIZ2V0TWFrZXIAAAABAAAABmdhbWVJZAkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAAtnZXRNYWtlcktleQAAAAEFAAAABmdhbWVJZAEAAAALZ2V0VGFrZXJLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAZfdGFrZXIBAAAACGdldFRha2VyAAAAAQAAAAZnYW1lSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAALZ2V0VGFrZXJLZXkAAAABBQAAAAZnYW1lSWQBAAAAFmdldFRha2VyU2tpcFJlcGxhY2VLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAABJfdGFrZXJfc2tpcFJlcGxhY2UBAAAAE2dldFRha2VyU2tpcFJlcGxhY2UAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEJvb2xlYW4AAAABCQEAAAAWZ2V0VGFrZXJTa2lwUmVwbGFjZUtleQAAAAEFAAAABmdhbWVJZAEAAAAJZ2V0QmV0S2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAEX2JldAEAAAAGZ2V0QmV0AAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAACWdldEJldEtleQAAAAEFAAAABmdhbWVJZAEAAAAdZ2V0V2FpdGluZ0V4cGlyYXRpb25IZWlnaHRLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAABhfd2FpdGluZ0V4cGlyYXRpb25IZWlnaHQBAAAAGmdldFdhaXRpbmdFeHBpcmF0aW9uSGVpZ2h0AAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAHWdldFdhaXRpbmdFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkAQAAABZnZXRFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAARX2V4cGlyYXRpb25IZWlnaHQBAAAAE2dldEV4cGlyYXRpb25IZWlnaHQAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAWZ2V0RXhwaXJhdGlvbkhlaWdodEtleQAAAAEFAAAABmdhbWVJZAEAAAAMZ2V0UmFuZ2VzS2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAHX3JhbmdlcwEAAAAJZ2V0UmFuZ2VzAAAAAQAAAAZnYW1lSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAMZ2V0UmFuZ2VzS2V5AAAAAQUAAAAGZ2FtZUlkAQAAABhnZXRNYWtlclJhbmRvbXNDb21taXRLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAABRfbWFrZXJfcmFuZG9tc0NvbW1pdAEAAAAVZ2V0TWFrZXJSYW5kb21zQ29tbWl0AAAAAQAAAAZnYW1lSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAYZ2V0TWFrZXJSYW5kb21zQ29tbWl0S2V5AAAAAQUAAAAGZ2FtZUlkAQAAAA1nZXRSYW5kb21zS2V5AAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAKcGxheWVyUm9sZQIAAAAIX3JhbmRvbXMBAAAACmdldFJhbmRvbXMAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAADWdldFJhbmRvbXNLZXkAAAACBQAAAAZnYW1lSWQFAAAACnBsYXllclJvbGUBAAAACmdldFN0ZXBLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAVfc3RlcAEAAAAHZ2V0U3RlcAAAAAEAAAAGZ2FtZUlkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAApnZXRTdGVwS2V5AAAAAQUAAAAGZ2FtZUlkAQAAAA5nZXRSYXJpdGllc0tleQAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAACnBsYXllclJvbGUCAAAACV9yYXJpdGllcwEAAAALZ2V0UmFyaXRpZXMAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAADmdldFJhcml0aWVzS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlAQAAABNnZXRSZXBsYWNlZFJhbmdlS2V5AAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAKcGxheWVyUm9sZQIAAAAOX3JlcGxhY2VkUmFuZ2UBAAAAEGdldFJlcGxhY2VkUmFuZ2UAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAE2dldFJlcGxhY2VkUmFuZ2VLZXkAAAACBQAAAAZnYW1lSWQFAAAACnBsYXllclJvbGUBAAAADGdldER1Y2tJZEtleQAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAACnBsYXllclJvbGUCAAAAB19kdWNrSWQBAAAACWdldER1Y2tJZAAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAMZ2V0RHVja0lkS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlAQAAABZnZXRUYWtlck9yZGVyQ29tbWl0S2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAASX3Rha2VyX29yZGVyQ29tbWl0AQAAABNnZXRUYWtlck9yZGVyQ29tbWl0AAAAAQAAAAZnYW1lSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAWZ2V0VGFrZXJPcmRlckNvbW1pdEtleQAAAAEFAAAABmdhbWVJZAEAAAALZ2V0T3JkZXJLZXkAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAApwbGF5ZXJSb2xlAgAAAAZfb3JkZXIBAAAACGdldE9yZGVyAAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAAtnZXRPcmRlcktleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQEAAAASZ2V0UGxheWVyUmVzdWx0S2V5AAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAANcGxheWVyQWRkcmVzcwIAAAAHX3Jlc3VsdAEAAAAPZ2V0UGxheWVyUmVzdWx0AAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABJnZXRQbGF5ZXJSZXN1bHRLZXkAAAACBQAAAAZnYW1lSWQFAAAADXBsYXllckFkZHJlc3MBAAAAEWdldFBsYXllclByaXplS2V5AAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAANcGxheWVyQWRkcmVzcwIAAAAGX3ByaXplAQAAAA5nZXRQbGF5ZXJQcml6ZQAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEWdldFBsYXllclByaXplS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzAQAAABBnZXRQbGF5ZXJXaW5zS2V5AAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIFAAAADXBsYXllckFkZHJlc3MCAAAABV93aW5zAQAAAA1nZXRQbGF5ZXJXaW5zAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABBnZXRQbGF5ZXJXaW5zS2V5AAAAAQUAAAANcGxheWVyQWRkcmVzcwEAAAARZ2V0UGxheWVyTG9zZXNLZXkAAAABAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgUAAAANcGxheWVyQWRkcmVzcwIAAAAGX2xvc2VzAQAAAA5nZXRQbGF5ZXJMb3NlcwAAAAEAAAANcGxheWVyQWRkcmVzcwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARZ2V0UGxheWVyTG9zZXNLZXkAAAABBQAAAA1wbGF5ZXJBZGRyZXNzAQAAABFnZXRQbGF5ZXJEcmF3c0tleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAZfZHJhd3MBAAAADmdldFBsYXllckRyYXdzAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABFnZXRQbGF5ZXJEcmF3c0tleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAAD2dldFBsYXllclBuTEtleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAARfUG5MAQAAAAxnZXRQbGF5ZXJQbkwAAAABAAAADXBsYXllckFkZHJlc3MJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAD2dldFBsYXllclBuTEtleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAAEWdldEdhbWVzUGxheWVkS2V5AAAAAAIAAAALZ2FtZXNQbGF5ZWQBAAAADmdldEdhbWVzUGxheWVkAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARZ2V0R2FtZXNQbGF5ZWRLZXkAAAAAAQAAAA9nZXRGYXJtaW5nUG93ZXIAAAACAAAAB2FkZHJlc3MAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAkABBoAAAACCQEAAAAHQWRkcmVzcwAAAAEFAAAADmZhcm1pbmdBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAdhZGRyZXNzAgAAAAdfYXNzZXRfBQAAAAdhc3NldElkAgAAAA1fZmFybWluZ1Bvd2VyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAmZwBQAAAAckbWF0Y2gwBQAAAAJmcAAAAAAAAAAAAAEAAAAOY2hlY2tEdWNr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aW5uZXJBZGRyZXNzAgAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADXdpbm5lckFkZHJlc3MAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADGxvc2VyQWRkcmVzcwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEGdldFBsYXllcldpbnNLZXkAAAABBQAAAA13aW5uZXJBZGRyZXNzCQAAZAAAAAIJAQAAAA1nZXRQbGF5ZXJXaW5zAAAAAQUAAAANd2lubmVyQWRkcmVzcwAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFBsYXllckxvc2VzS2V5AAAAAQUAAAAMbG9zZXJBZGRyZXNzCQAAZAAAAAIJAQAAAA5nZXRQbGF5ZXJMb3NlcwAAAAEFAAAADGxvc2VyQWRkcmVzcwAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASZ2V0UGxheWVyUmVzdWx0S2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA13aW5uZXJBZGRyZXNzAgAAAAN3aW4JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEmdldFBsYXllclJlc3VsdEtleQAAAAIFAAAABmdhbWVJZAUAAAAMbG9zZXJBZGRyZXNzAgAAAARsb3NlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARZ2V0UGxheWVyUHJpemVLZXkAAAACBQAAAAZnYW1lSWQFAAAADXdpbm5lckFkZHJlc3MFAAAAA2JldAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFBsYXllclByaXplS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAAxsb3NlckFkZHJlc3MJAQAAAAEtAAAAAQUAAAADYmV0CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAPZ2V0UGxheWVyUG5MS2V5AAAA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cHR5AwMJAQAAAAIhPQAAAAIFAAAADWNhbGxlckFkZHJlc3MFAAAABW1ha2VyCQAAZgAAAAIJAQAAABpnZXRXYWl0aW5nRXhwaXJhdGlvbkhlaWdodAAAAAEFAAAABmdhbWVJZAUAAAAGaGVpZ2h0BwkAAAIAAAABAgAAABtXYWl0aW5nIGlzIG5vdCBmaW5pc2hlZCB5ZXQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAABW1ha2VyAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAKZ2V0U2xvdEtleQAAAAEFAAAABHNsb3QAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEFAAAABW1ha2VyCQEAAAAGZ2V0QmV0AAAAAQUAAAAGZ2FtZUlkBQAAAAtlZ2dzQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAAHHJldmVhbFJhbmRvbXNBbmRSZXBsYWNlTWFrZXIAAAAJAAAAB3JhbmRvbTEAAAAHcmFuZG9tMgAAAAdyYW5kb20zAAAAB3JhbmRvbTQAAAAHcmFuZG9tNQAAAAdyYW5kb202AAAABHNhbHQAAAAOcmFuZ2VUb1JlcGxhY2UAAAAGZHVja0lkBAAAAA1jYWxsZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABmdhbWVJZAkBAAAAFGdldFBsYXllckN1cnJlbnRHYW1lAAAAAQUAAAANY2FsbGVyQWRkcmVzcwQAAAAKcGxheWVyUm9sZQkBAAAADWdldFBsYXllclJvbGUAAAACBQAAAAZnYW1lSWQFAAAADWNhbGxlckFkZHJlc3MEAAAABHN0ZXAJAQAAAAdnZXRTdGVwAAAAAQUAAAAGZ2FtZUlkBAAAAAlyYW5nZXNSYXcJAAS1AAAAAgkBAAAACWdldFJhbmdlcwAAAAEFAAAABmdhbWVJZAIAAAABfAQAAAAGcmFuZ2VzCQAETAAAAAIJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAlyYW5nZXNS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", "height": 1757888, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5tZueXpv9244QLtvLT3S7FrrMfQz5EXrNwySW7Ud8jEf Next: EnxiBW1gt2fTQ6Pt82ofaf5QhVMkzHzjfHXLiabbfVWn Diff:
OldNewDifferences
108108 func J (w) = g(I(w))
109109
110110
111-func K (w,L) = ((("game" + toString(w)) + "_range_") + L)
111+func K (w) = (("game" + toString(w)) + "_ranges")
112112
113113
114-func M (w,L) = g(K(w, L))
114+func L (w) = k(K(w))
115115
116116
117-func N (w) = (("game" + toString(w)) + "_maker_randomsCommit")
117+func M (w) = (("game" + toString(w)) + "_maker_randomsCommit")
118118
119119
120-func O (w) = k(N(w))
120+func N (w) = k(M(w))
121121
122122
123-func P (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_randoms")
123+func O (w,P) = (((("game" + toString(w)) + "_") + P) + "_randoms")
124124
125125
126-func R (w,Q) = k(P(w, Q))
126+func Q (w,P) = k(O(w, P))
127127
128128
129-func S (w) = (("game" + toString(w)) + "_step")
129+func R (w) = (("game" + toString(w)) + "_step")
130130
131131
132-func T (w) = g(S(w))
132+func S (w) = g(R(w))
133133
134134
135-func U (w,Q,L) = (((((("game" + toString(w)) + "_") + Q) + "_") + L) + "Rarity")
135+func T (w,P) = (((("game" + toString(w)) + "_") + P) + "_rarities")
136136
137137
138-func V (w,Q,L) = g(U(w, Q, L))
138+func U (w,P) = k(T(w, P))
139139
140140
141-func W (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_replacedRange")
141+func V (w,P) = (((("game" + toString(w)) + "_") + P) + "_replacedRange")
142142
143143
144-func X (w,Q) = k(W(w, Q))
144+func W (w,P) = k(V(w, P))
145145
146146
147-func Y (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_duckId")
147+func X (w,P) = (((("game" + toString(w)) + "_") + P) + "_duckId")
148148
149149
150-func Z (w,Q) = k(Y(w, Q))
150+func Y (w,P) = k(X(w, P))
151151
152152
153-func aa (w) = (("game" + toString(w)) + "_taker_orderCommit")
153+func Z (w) = (("game" + toString(w)) + "_taker_orderCommit")
154154
155155
156-func ab (w) = k(aa(w))
156+func aa (w) = k(Z(w))
157157
158158
159-func ac (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_order")
159+func ab (w,P) = (((("game" + toString(w)) + "_") + P) + "_order")
160160
161161
162-func ad (w,Q) = k(ac(w, Q))
162+func ac (w,P) = k(ab(w, P))
163163
164164
165-func ae (w,q) = (((("game" + toString(w)) + "_") + q) + "_result")
165+func ad (w,q) = (((("game" + toString(w)) + "_") + q) + "_result")
166166
167167
168-func af (w,q) = k(ae(w, q))
168+func ae (w,q) = k(ad(w, q))
169169
170170
171-func ag (w,q) = (((("game" + toString(w)) + "_") + q) + "_prize")
171+func af (w,q) = (((("game" + toString(w)) + "_") + q) + "_prize")
172172
173173
174-func ah (w,q) = g(ag(w, q))
174+func ag (w,q) = g(af(w, q))
175175
176176
177-func ai (q) = (q + "_wins")
177+func ah (q) = (q + "_wins")
178178
179179
180-func aj (q) = g(ai(q))
180+func ai (q) = g(ah(q))
181181
182182
183-func ak (q) = (q + "_loses")
183+func aj (q) = (q + "_loses")
184184
185185
186-func al (q) = g(ak(q))
186+func ak (q) = g(aj(q))
187187
188188
189-func am (q) = (q + "_draws")
189+func al (q) = (q + "_draws")
190190
191191
192-func an (q) = g(am(q))
192+func am (q) = g(al(q))
193193
194194
195-func ao (q) = (q + "_PnL")
195+func an (q) = (q + "_PnL")
196196
197197
198-func ap (q) = g(ao(q))
198+func ao (q) = g(an(q))
199199
200200
201-func aq () = "gamesPlayed"
201+func ap () = "gamesPlayed"
202202
203203
204-func ar () = g(aq())
204+func aq () = g(ap())
205205
206206
207-func as (at,au) = {
208- let i = getInteger(Address(a), (((("address_" + at) + "_asset_") + au) + "_farmingPower"))
207+func ar (as,at) = {
208+ let i = getInteger(Address(a), (((("address_" + as) + "_asset_") + at) + "_farmingPower"))
209209 if ($isInstanceOf(i, "Int"))
210210 then {
211- let av = i
212- av
211+ let au = i
212+ au
213213 }
214214 else 0
215215 }
216216
217217
218-func aw (ax,au) = if ((assetBalance(ax, au) > 0))
218+func av (aw,at) = if ((assetBalance(aw, at) > 0))
219219 then true
220- else (as(toBase58String(ax.bytes), toBase58String(au)) > 0)
220+ else (ar(toBase58String(aw.bytes), toBase58String(at)) > 0)
221221
222222
223-let ay = [[2, 3, 4, 5, 6, 7, 8, 9], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 30], [31, 33, 35, 37, 40], [44, 50, 57, 70, 100]]
223+let ax = [[2, 3, 4, 5, 6, 7, 8, 9], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 30], [31, 33, 35, 37, 40], [44, 50, 57, 70, 100]]
224224
225-func az (aA,aB) = {
226- let aC = (aA % size(ay[(aB - 1)]))
227-ay[(aB - 1)][aC]
225+func ay (az,aA) = {
226+ let aB = (az % size(ax[(aA - 1)]))
227+ax[(aA - 1)][aB]
228228 }
229229
230230
231-func aD (l,j) = if ((l > j))
231+func aC (l,j) = if ((l > j))
232232 then 1
233233 else if ((j > l))
234234 then -1
235235 else 0
236236
237237
238-func aE (w,aF,aG) = {
239- let aH = T(w)
240- if (aG)
238+func aD (w,aE,aF) = {
239+ let aG = S(w)
240+ if (aF)
241241 then {
242- let aI = J(w)
243- if ((aH == 0))
242+ let aH = J(w)
243+ if ((aG == 0))
244244 then throw("Game is not started")
245- else if ((aI > height))
245+ else if ((aH > height))
246246 then throw("Game is not expired")
247- else if (if ((aH == 1))
247+ else if (if ((aG == 1))
248248 then true
249- else (aH == 4))
249+ else (aG == 4))
250250 then "taker"
251251 else "maker"
252252 }
253253 else {
254- let aJ = split(ad(w, "maker"), "|")
255- let aK = split(aF, "|")
256- let aL = V(w, "maker", aJ[0])
257- let aM = V(w, "maker", aJ[1])
258- let aN = V(w, "maker", aJ[2])
259- let aO = V(w, "taker", aK[0])
260- let aP = V(w, "taker", aK[1])
261- let aQ = V(w, "taker", aK[2])
262- let aR = ((aD(aL, aO) + aD(aM, aP)) + aD(aN, aQ))
263- if ((aR > 0))
254+ let aI = split(ac(w, "maker"), "|")
255+ let aJ = [parseIntValue(aI[0]), parseIntValue(aI[1]), parseIntValue(aI[2])]
256+ let aK = split(aE, "|")
257+ let aL = [parseIntValue(aK[0]), parseIntValue(aK[1]), parseIntValue(aK[2])]
258+ let aM = split(U(w, "maker"), "|")
259+ let aN = [parseIntValue(aM[0]), parseIntValue(aM[1]), parseIntValue(aM[2])]
260+ let aO = split(U(w, "taker"), "|")
261+ let aP = [parseIntValue(aO[0]), parseIntValue(aO[1]), parseIntValue(aO[2])]
262+ let aQ = ((aC(aN[aJ[0]], aP[aL[0]]) + aC(aN[aJ[1]], aP[aL[1]])) + aC(aN[aJ[2]], aP[aL[2]]))
263+ if ((aQ > 0))
264264 then "maker"
265- else if ((0 > aR))
265+ else if ((0 > aQ))
266266 then "taker"
267267 else "draw"
268268 }
269269 }
270270
271271
272-func aS (w,aK,aG) = {
273- let aT = F(w)
274- let aU = z(w)
275- let aV = B(w)
276- let aW = aE(w, aK, aG)
277- let aX = if ((aW == "maker"))
278- then aU
279- else if ((aW == "taker"))
280- then aV
272+func aR (w,aL,aF) = {
273+ let aS = F(w)
274+ let aT = z(w)
275+ let aU = B(w)
276+ let aV = aD(w, aL, aF)
277+ let aW = if ((aV == "maker"))
278+ then aT
279+ else if ((aV == "taker"))
280+ then aU
281281 else ""
282- let aY = if ((aW == "taker"))
283- then aU
284- else if ((aW == "maker"))
285- then aV
282+ let aX = if ((aV == "taker"))
283+ then aT
284+ else if ((aV == "maker"))
285+ then aU
286286 else ""
287- if ((aX != ""))
288- then [IntegerEntry(p(aX), 0), IntegerEntry(p(aY), 0), IntegerEntry(ai(aX), (aj(aX) + 1)), IntegerEntry(ak(aY), (al(aY) + 1)), StringEntry(ae(w, aX), "win"), StringEntry(ae(w, aY), "lose"), IntegerEntry(ag(w, aX), aT), IntegerEntry(ag(w, aY), -(aT)), IntegerEntry(ao(aX), (ap(aX) + aT)), IntegerEntry(ao(aY), (ap(aY) - aT)), ScriptTransfer(Address(fromBase58String(aX)), (aT * 2), c)]
289- else [IntegerEntry(p(aU), 0), IntegerEntry(p(aV), 0), IntegerEntry(am(aU), (an(aU) + 1)), IntegerEntry(am(aV), (an(aV) + 1)), StringEntry(ae(w, aU), "draw"), StringEntry(ae(w, aV), "draw"), IntegerEntry(ag(w, aU), 0), IntegerEntry(ag(w, aV), 0), ScriptTransfer(Address(fromBase58String(aU)), aT, c), ScriptTransfer(Address(fromBase58String(aV)), aT, c)]
287+ if ((aW != ""))
288+ then [IntegerEntry(p(aW), 0), IntegerEntry(p(aX), 0), IntegerEntry(ah(aW), (ai(aW) + 1)), IntegerEntry(aj(aX), (ak(aX) + 1)), StringEntry(ad(w, aW), "win"), StringEntry(ad(w, aX), "lose"), IntegerEntry(af(w, aW), aS), IntegerEntry(af(w, aX), -(aS)), IntegerEntry(an(aW), (ao(aW) + aS)), IntegerEntry(an(aX), (ao(aX) - aS)), ScriptTransfer(Address(fromBase58String(aW)), (aS * 2), c)]
289+ else [IntegerEntry(p(aT), 0), IntegerEntry(p(aU), 0), IntegerEntry(al(aT), (am(aT) + 1)), IntegerEntry(al(aU), (am(aU) + 1)), StringEntry(ad(w, aT), "draw"), StringEntry(ad(w, aU), "draw"), IntegerEntry(af(w, aT), 0), IntegerEntry(af(w, aU), 0), ScriptTransfer(Address(fromBase58String(aT)), aS, c), ScriptTransfer(Address(fromBase58String(aU)), aS, c)]
290290 }
291291
292292
293-@Callable(aZ)
294-func makeGame (t,ba,bb,bc,bd) = {
295- let be = toBase58String(aZ.caller.bytes)
296- let bf = u(t)
297- let bg = value(aZ.payments[0])
298- let bh = bg.amount
293+@Callable(aY)
294+func makeGame (t,aZ,ba,bb,bc) = {
295+ let bd = toBase58String(aY.caller.bytes)
296+ let be = u(t)
297+ let bf = value(aY.payments[0])
298+ let bg = bf.amount
299299 let w = n()
300- if ((r(be) != 0))
300+ if ((r(bd) != 0))
301301 then throw("You already have an active game")
302302 else if (if ((0 > t))
303303 then true
304304 else (t >= d))
305305 then throw("Invalid slot")
306- else if ((bf != 0))
306+ else if ((be != 0))
307307 then throw("This slot is busy")
308- else if ((bg.assetId != c))
308+ else if ((bf.assetId != c))
309309 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
310- else if ((bh != 10000))
310+ else if ((bg != 10000))
311311 then throw("Bet must be 0.0001 EGG during beta test")
312- else if (if ((1 > ba))
312+ else if (if ((1 > aZ))
313313 then true
314- else (ba > 5))
314+ else (aZ > 5))
315315 then throw("Invalid range for the worst duck")
316- else if (if ((1 > bb))
316+ else if (if ((1 > ba))
317317 then true
318- else (bb > 5))
318+ else (ba > 5))
319319 then throw("Invalid range for the medium duck")
320- else if (if ((1 > bc))
320+ else if (if ((1 > bb))
321321 then true
322- else (bc > 5))
322+ else (bb > 5))
323323 then throw("Invalid range for the best duck")
324- else if ((ba > bb))
324+ else if ((aZ > ba))
325325 then throw("The medium range can't be less than the worst one")
326- else if ((bb > bc))
326+ else if ((ba > bb))
327327 then throw("The best range can't be worse than the medium one")
328- else [IntegerEntry(p(be), w), StringEntry(y(w), be), StringEntry(v(w, be), "maker"), IntegerEntry(E(w), bh), IntegerEntry(K(w, "worst"), ba), IntegerEntry(K(w, "medium"), bb), IntegerEntry(K(w, "best"), bc), StringEntry(N(w), bd), IntegerEntry(G(w), (height + e)), IntegerEntry(s(t), w), IntegerEntry("nextGameId", (w + 1))]
328+ else [IntegerEntry(p(bd), w), StringEntry(y(w), bd), StringEntry(v(w, bd), "maker"), IntegerEntry(E(w), bg), StringEntry(K(w), ((((toString(aZ) + "|") + toString(ba)) + "|") + toString(bb))), StringEntry(M(w), bc), IntegerEntry(G(w), (height + e)), IntegerEntry(s(t), w), IntegerEntry("nextGameId", (w + 1))]
329329 }
330330
331331
332332
333-@Callable(aZ)
334-func takeGame (t,bi,bj,bk,bl,bm,bn,bo) = {
335- let be = toBase58String(aZ.caller.bytes)
333+@Callable(aY)
334+func takeGame (t,bh,bi,bj,bk,bl,bm,bn) = {
335+ let bd = toBase58String(aY.caller.bytes)
336336 let w = u(t)
337- let bg = value(aZ.payments[0])
338- let bp = ((((((((((toString(bi) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm)) + "|") + toString(bn))
339- if ((r(be) != 0))
337+ let bf = value(aY.payments[0])
338+ let bo = ((((((((((toString(bh) + "|") + toString(bi)) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm))
339+ if ((r(bd) != 0))
340340 then throw("You already have an active game")
341341 else if (if ((0 > t))
342342 then true
344344 then throw("Invalid slot")
345345 else if ((u(t) == 0))
346346 then throw("This slot is empty")
347- else if ((bg.assetId != c))
347+ else if ((bf.assetId != c))
348348 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
349- else if ((bg.amount != F(w)))
349+ else if ((bf.amount != F(w)))
350350 then throw("Insufficient eggs amount")
351351 else if ((height >= H(w)))
352352 then throw("This game is expired")
353- else if (if ((0 > bi))
353+ else if (if ((0 > bh))
354354 then true
355- else (bi > 1000000000000))
355+ else (bh > 1000000000000))
356356 then throw("Invalid random1")
357- else if (if ((0 > bj))
357+ else if (if ((0 > bi))
358358 then true
359- else (bj > 1000000000000))
359+ else (bi > 1000000000000))
360360 then throw("Invalid random2")
361- else if (if ((0 > bk))
361+ else if (if ((0 > bj))
362362 then true
363- else (bk > 1000000000000))
363+ else (bj > 1000000000000))
364364 then throw("Invalid random3")
365- else if (if ((0 > bl))
365+ else if (if ((0 > bk))
366366 then true
367- else (bl > 1000000000000))
367+ else (bk > 1000000000000))
368368 then throw("Invalid random4")
369- else if (if ((0 > bm))
369+ else if (if ((0 > bl))
370370 then true
371- else (bm > 1000000000000))
371+ else (bl > 1000000000000))
372372 then throw("Invalid random5")
373- else if (if ((0 > bn))
373+ else if (if ((0 > bm))
374374 then true
375- else (bn > 1000000000000))
375+ else (bm > 1000000000000))
376376 then throw("Invalid random6")
377- else [IntegerEntry(p(be), w), StringEntry(A(w), be), StringEntry(v(w, be), "taker"), StringEntry(P(w, "taker"), bp), BooleanEntry(C(w), bo), IntegerEntry(S(w), 1), IntegerEntry(I(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (ar() + 1))]
377+ else [IntegerEntry(p(bd), w), StringEntry(A(w), bd), StringEntry(v(w, bd), "taker"), StringEntry(O(w, "taker"), bo), BooleanEntry(C(w), bn), IntegerEntry(R(w), 1), IntegerEntry(I(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (aq() + 1))]
378378 }
379379
380380
381381
382-@Callable(aZ)
382+@Callable(aY)
383383 func kickGame (t) = {
384- let be = toBase58String(aZ.caller.bytes)
384+ let bd = toBase58String(aY.caller.bytes)
385385 let w = u(t)
386- let bq = z(w)
386+ let bp = z(w)
387387 if (if ((0 > t))
388388 then true
389389 else (t >= d))
390390 then throw("Invalid slot")
391391 else if ((w == 0))
392392 then throw("Slot is empty")
393- else if (if ((be != bq))
393+ else if (if ((bd != bp))
394394 then (H(w) > height)
395395 else false)
396396 then throw("Waiting is not finished yet")
397- else [IntegerEntry(p(bq), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(bq)), F(w), c)]
397+ else [IntegerEntry(p(bp), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(bp)), F(w), c)]
398398 }
399399
400400
401401
402-@Callable(aZ)
403-func revealRandomsAndReplaceMaker (bi,bj,bk,bl,bm,bn,br,bs,bt) = {
404- let be = toBase58String(aZ.caller.bytes)
405- let w = r(be)
406- let Q = x(w, be)
407- let aH = T(w)
408- let bu = O(w)
409- let bv = ((((((((((toString(bi) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm)) + "|") + toString(bn))
410- let bw = split(R(w, "taker"), "|")
411- let bx = if (if (if ((bs == "worst"))
402+@Callable(aY)
403+func revealRandomsAndReplaceMaker (bh,bi,bj,bk,bl,bm,bq,br,bs) = {
404+ let bd = toBase58String(aY.caller.bytes)
405+ let w = r(bd)
406+ let P = x(w, bd)
407+ let aG = S(w)
408+ let bt = split(L(w), "|")
409+ let bu = [parseIntValue(bt[0]), parseIntValue(bt[1]), parseIntValue(bt[2])]
410+ let bv = N(w)
411+ let bw = ((((((((((toString(bh) + "|") + toString(bi)) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm))
412+ let bx = split(Q(w, "taker"), "|")
413+ let by = if (if (if ((br == "worst"))
412414 then true
413- else (bs == "medium"))
415+ else (br == "medium"))
414416 then true
415- else (bs == "best"))
417+ else (br == "best"))
416418 then {
417- let by = invoke(Address(b), "getAssetRarity", [bt], nil)
418- if ((by == by))
419+ let bz = invoke(Address(b), "getAssetRarity", [bs], nil)
420+ if ((bz == bz))
419421 then {
420- let bz = {
421- let i = by
422+ let bA = {
423+ let i = bz
422424 if ($isInstanceOf(i, "Int"))
423425 then {
424- let bA = i
425- bA
426+ let bB = i
427+ bB
426428 }
427429 else throw("Incorrect invoke result")
428430 }
429- let aB = M(w, bs)
430- if (!(aw(aZ.caller, fromBase58String(bt))))
431- then throw((("Asset " + bt) + " doesn't belong to you"))
432- else if (if ((5 > aB))
433- then if ((bz > (aB * 10)))
431+ let aA = if ((br == "worst"))
432+ then bu[0]
433+ else if ((br == "medium"))
434+ then bu[1]
435+ else bu[2]
436+ if (!(av(aY.caller, fromBase58String(bs))))
437+ then throw((("Asset " + bs) + " doesn't belong to you"))
438+ else if (if ((5 > aA))
439+ then if ((bA > (aA * 10)))
434440 then true
435- else (((aB - 1) * 10) >= bz)
441+ else (((aA - 1) * 10) >= bA)
436442 else false)
437443 then throw("Duck doesn't fit rarity range")
438- else if (if ((aB == 5))
439- then (40 >= bz)
444+ else if (if ((aA == 5))
445+ then (40 >= bA)
440446 else false)
441447 then throw("Duck doesn't fit rarity range")
442- else bz
448+ else bA
443449 }
444450 else throw("Strict value is not equal to itself.")
445451 }
446452 else 0
447- let ba = M(w, "worst")
448- let bb = M(w, "medium")
449- let bc = M(w, "best")
450- let bB = if ((bs == "worst"))
451- then bx
452- else az((bi + parseIntValue(bw[0])), ba)
453- let bC = if ((bs == "medium"))
454- then bx
455- else az((bj + parseIntValue(bw[1])), bb)
456- let bD = if ((bs == "best"))
457- then bx
458- else az((bk + parseIntValue(bw[2])), bc)
459- let bE = az((bl + parseIntValue(bw[3])), ba)
460- let bF = az((bm + parseIntValue(bw[4])), bb)
461- let bG = az((bn + parseIntValue(bw[5])), bc)
462- let bH = if (D(w))
463- then (aH + 2)
464- else (aH + 1)
453+ let bC = if ((br == "worst"))
454+ then by
455+ else ay((bh + parseIntValue(bx[0])), bu[0])
456+ let bD = if ((br == "medium"))
457+ then by
458+ else ay((bi + parseIntValue(bx[1])), bu[1])
459+ let bE = if ((br == "best"))
460+ then by
461+ else ay((bj + parseIntValue(bx[2])), bu[2])
462+ let bF = ay((bk + parseIntValue(bx[3])), bu[0])
463+ let bG = ay((bl + parseIntValue(bx[4])), bu[1])
464+ let bH = ay((bm + parseIntValue(bx[5])), bu[2])
465+ let bI = if (D(w))
466+ then (aG + 2)
467+ else (aG + 1)
465468 if ((w == 0))
466469 then throw("You don't have an active game")
467- else if ((Q != "maker"))
470+ else if ((P != "maker"))
468471 then throw("Only maker can call this method")
469- else if ((1 > aH))
472+ else if ((1 > aG))
470473 then throw("Game is not started")
471- else if ((aH > 1))
474+ else if ((aG > 1))
472475 then throw("This step is finished")
473- else if (if ((0 > bi))
476+ else if (if ((0 > bh))
474477 then true
475- else (bi > 1000000000000))
478+ else (bh > 1000000000000))
476479 then throw("Invalid random1")
477- else if (if ((0 > bj))
480+ else if (if ((0 > bi))
478481 then true
479- else (bj > 1000000000000))
482+ else (bi > 1000000000000))
480483 then throw("Invalid random2")
481- else if (if ((0 > bk))
484+ else if (if ((0 > bj))
482485 then true
483- else (bk > 1000000000000))
486+ else (bj > 1000000000000))
484487 then throw("Invalid random3")
485- else if (if ((0 > bl))
488+ else if (if ((0 > bk))
486489 then true
487- else (bl > 1000000000000))
490+ else (bk > 1000000000000))
488491 then throw("Invalid random4")
489- else if (if ((0 > bm))
492+ else if (if ((0 > bl))
490493 then true
491- else (bm > 1000000000000))
494+ else (bl > 1000000000000))
492495 then throw("Invalid random5")
493- else if (if ((0 > bn))
496+ else if (if ((0 > bm))
494497 then true
495- else (bn > 1000000000000))
498+ else (bm > 1000000000000))
496499 then throw("Invalid random6")
497- else if ((toBase58String(sha256(toBytes((bv + br)))) != bu))
500+ else if ((toBase58String(sha256(toBytes((bw + bq)))) != bv))
498501 then throw("Randoms don't match commit")
499- else [StringEntry(P(w, "maker"), bv), IntegerEntry(U(w, "maker", "worst"), bB), IntegerEntry(U(w, "maker", "medium"), bC), IntegerEntry(U(w, "maker", "best"), bD), StringEntry(W(w, "maker"), bs), StringEntry(Y(w, "maker"), bt), IntegerEntry(U(w, "taker", "worst"), bE), IntegerEntry(U(w, "taker", "medium"), bF), IntegerEntry(U(w, "taker", "best"), bG), IntegerEntry(S(w), bH), IntegerEntry(I(w), (height + f))]
502+ else [StringEntry(O(w, "maker"), bw), StringEntry(T(w, "maker"), ((((toString(bC) + "|") + toString(bD)) + "|") + toString(bE))), StringEntry(V(w, "maker"), br), StringEntry(X(w, "maker"), bs), StringEntry(T(w, "taker"), ((((toString(bF) + "|") + toString(bG)) + "|") + toString(bH))), IntegerEntry(R(w), bI), IntegerEntry(I(w), (height + f))]
500503 }
501504
502505
503506
504-@Callable(aZ)
505-func replaceTaker (bs,bt) = {
506- let be = toBase58String(aZ.caller.bytes)
507- let w = r(be)
508- let Q = x(w, be)
509- let aH = T(w)
510- let aB = M(w, bs)
511- let by = invoke(Address(b), "getAssetRarity", [bt], nil)
512- if ((by == by))
507+@Callable(aY)
508+func replaceTaker (br,bs) = {
509+ let bd = toBase58String(aY.caller.bytes)
510+ let w = r(bd)
511+ let P = x(w, bd)
512+ let aG = S(w)
513+ let bt = split(L(w), "|")
514+ let bu = [parseIntValue(bt[0]), parseIntValue(bt[1]), parseIntValue(bt[2])]
515+ let bJ = if ((br == "worst"))
516+ then 0
517+ else if ((br == "medium"))
518+ then 1
519+ else 2
520+ let aA = bu[bJ]
521+ let bz = invoke(Address(b), "getAssetRarity", [bs], nil)
522+ if ((bz == bz))
513523 then {
514- let bz = {
515- let i = by
524+ let bK = {
525+ let i = bz
516526 if ($isInstanceOf(i, "Int"))
517527 then {
518- let bA = i
519- bA
528+ let bB = i
529+ bB
520530 }
521531 else throw("Incorrect invoke result")
522532 }
533+ let bL = split(U(w, "taker"), "|")
534+ let bM = (((nil :+ (if ((bJ == 0))
535+ then toString(bK)
536+ else bL[0])) :+ (if ((bJ == 1))
537+ then toString(bK)
538+ else bL[1])) :+ (if ((bJ == 0))
539+ then toString(bK)
540+ else bL[0]))
523541 if ((w == 0))
524542 then throw("You don't have an active game")
525- else if ((Q != "taker"))
543+ else if ((P != "taker"))
526544 then throw("Only taker can call this method")
527- else if (if (if ((bs != "worst"))
528- then (bs != "medium")
545+ else if (if (if ((br != "worst"))
546+ then (br != "medium")
529547 else false)
530- then (bs != "best")
548+ then (br != "best")
531549 else false)
532- then throw((("Invalid range - " + bs) + ". Must be worst, medium or best"))
550+ then throw((("Invalid range - " + br) + ". Must be worst, medium or best"))
533551 else if ((J(w) == 0))
534552 then throw("Game is not started")
535- else if ((2 > aH))
553+ else if ((2 > aG))
536554 then throw("This step is not started")
537- else if ((aH > 2))
555+ else if ((aG > 2))
538556 then throw("This step is finished")
539- else if (!(aw(aZ.caller, fromBase58String(bt))))
540- then throw((("Asset " + bt) + " doesn't belong to you"))
541- else if (if ((5 > aB))
542- then if ((bz > (aB * 10)))
557+ else if (!(av(aY.caller, fromBase58String(bs))))
558+ then throw((("Asset " + bs) + " doesn't belong to you"))
559+ else if (if ((5 > aA))
560+ then if ((bK > (aA * 10)))
543561 then true
544- else (((aB - 1) * 10) >= bz)
562+ else (((aA - 1) * 10) >= bK)
545563 else false)
546564 then throw("Duck doesn't fit rarity range")
547- else if (if ((aB == 5))
548- then (40 >= bz)
565+ else if (if ((aA == 5))
566+ then (40 >= bK)
549567 else false)
550568 then throw("Duck doesn't fit rarity range")
551- else [IntegerEntry(U(w, Q, bs), bz), StringEntry(W(w, Q), bs), StringEntry(Y(w, Q), bt), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
569+ else [StringEntry(T(w, "taker"), ((((bM[0] + "|") + bM[1]) + "|") + bM[2])), StringEntry(V(w, "taker"), br), StringEntry(X(w, "taker"), bs), IntegerEntry(R(w), (aG + 1)), IntegerEntry(I(w), (height + f))]
552570 }
553571 else throw("Strict value is not equal to itself.")
554572 }
555573
556574
557575
558-@Callable(aZ)
559-func commitOrderTaker (bI) = {
560- let be = toBase58String(aZ.caller.bytes)
561- let w = r(be)
562- let Q = x(w, be)
563- let aH = T(w)
576+@Callable(aY)
577+func commitOrderTaker (bN) = {
578+ let bd = toBase58String(aY.caller.bytes)
579+ let w = r(bd)
580+ let P = x(w, bd)
581+ let aG = S(w)
564582 if ((w == 0))
565583 then throw("You don't have an active game")
566- else if ((Q != "taker"))
584+ else if ((P != "taker"))
567585 then throw("Only taker can call this method")
568- else if ((3 > aH))
586+ else if ((3 > aG))
569587 then throw("This step is not started")
570- else if ((aH > 3))
588+ else if ((aG > 3))
571589 then throw("This step is finished")
572- else [StringEntry(aa(w), bI), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
590+ else [StringEntry(Z(w), bN), IntegerEntry(R(w), (aG + 1)), IntegerEntry(I(w), (height + f))]
573591 }
574592
575593
576594
577-@Callable(aZ)
578-func setOrderMaker (bJ) = {
579- let be = toBase58String(aZ.caller.bytes)
580- let w = r(be)
581- let Q = x(w, be)
582- let aH = T(w)
595+@Callable(aY)
596+func setOrderMaker (bO) = {
597+ let bd = toBase58String(aY.caller.bytes)
598+ let w = r(bd)
599+ let P = x(w, bd)
600+ let aG = S(w)
583601 if ((w == 0))
584602 then throw("You don't have an active game")
585- else if ((Q != "maker"))
603+ else if ((P != "maker"))
586604 then throw("Only maker can call this method")
587- else if ((4 > aH))
605+ else if ((4 > aG))
588606 then throw("This step is not started")
589- else if ((aH > 4))
607+ else if ((aG > 4))
590608 then throw("This step is finished")
591- else if (if (if (if (if (if ((bJ != "worst|medium|best"))
592- then (bJ != "worst|best|medium")
609+ else if (if (if (if (if (if ((bO != "0|1|2"))
610+ then (bO != "0|2|1")
593611 else false)
594- then (bJ != "medium|worst|best")
612+ then (bO != "1|0|2")
595613 else false)
596- then (bJ != "medium|best|worst")
614+ then (bO != "1|2|0")
597615 else false)
598- then (bJ != "best|worst|medium")
616+ then (bO != "2|0|1")
599617 else false)
600- then (bJ != "best|medium|worst")
618+ then (bO != "2|1|0")
601619 else false)
602620 then throw("Invalid order data")
603- else [StringEntry(ac(w, Q), bJ), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
621+ else [StringEntry(ab(w, P), bO), IntegerEntry(R(w), (aG + 1)), IntegerEntry(I(w), (height + f))]
604622 }
605623
606624
607625
608-@Callable(aZ)
609-func revealOrderTaker (bJ,br) = {
610- let be = toBase58String(aZ.caller.bytes)
611- let w = r(be)
612- let Q = x(w, be)
613- let aH = T(w)
626+@Callable(aY)
627+func revealOrderTaker (bO,bq) = {
628+ let bd = toBase58String(aY.caller.bytes)
629+ let w = r(bd)
630+ let P = x(w, bd)
631+ let aG = S(w)
614632 if ((w == 0))
615633 then throw("You don't have an active game")
616- else if ((Q != "taker"))
634+ else if ((P != "taker"))
617635 then throw("Only taker can call this method")
618- else if ((5 > aH))
636+ else if ((5 > aG))
619637 then throw("This step is not started")
620- else if (if (if (if (if (if ((bJ != "worst|medium|best"))
621- then (bJ != "worst|best|medium")
638+ else if (if (if (if (if (if ((bO != "0|1|2"))
639+ then (bO != "0|2|1")
622640 else false)
623- then (bJ != "medium|worst|best")
641+ then (bO != "1|0|2")
624642 else false)
625- then (bJ != "medium|best|worst")
643+ then (bO != "1|2|0")
626644 else false)
627- then (bJ != "best|worst|medium")
645+ then (bO != "2|0|1")
628646 else false)
629- then (bJ != "best|medium|worst")
647+ then (bO != "2|1|0")
630648 else false)
631649 then throw("Invalid order data")
632- else if ((toBase58String(sha256(toBytes((bJ + br)))) != ab(w)))
650+ else if ((toBase58String(sha256(toBytes((bO + bq)))) != aa(w)))
633651 then throw("Reveal doesn't match commit")
634- else (aS(w, bJ, false) ++ [StringEntry(ac(w, Q), bJ)])
652+ else (aR(w, bO, false) ++ [StringEntry(ab(w, P), bO)])
635653 }
636654
637655
638656
639-@Callable(aZ)
657+@Callable(aY)
640658 func getPrizeExpired () = {
641- let be = toBase58String(aZ.caller.bytes)
642- let w = r(be)
659+ let bd = toBase58String(aY.caller.bytes)
660+ let w = r(bd)
643661 if ((w == 0))
644662 then throw("You don't have an active game")
645- else aS(w, "", true)
663+ else aR(w, "", true)
646664 }
647665
648666
649-@Verifier(bK)
650-func bL () = sigVerify(bK.bodyBytes, bK.proofs[0], bK.senderPublicKey)
667+@Verifier(bP)
668+func bQ () = sigVerify(bP.bodyBytes, bP.proofs[0], bP.senderPublicKey)
651669
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'3NBznG19rEYUAcnukTRTtwJHBVKQLbobVdC'
55
66 let b = base58'3NCman4dCzk1HWWU4DPTr5rsbhvuUCwwUZh'
77
88 let c = base58'AjXHBGsVDeXETQPk3qH4CPbZdfXPyNo5XoBx7jVbtwWG'
99
1010 let d = 10
1111
1212 let e = 8
1313
1414 let f = 5
1515
1616 func g (h) = {
1717 let i = getInteger(this, h)
1818 if ($isInstanceOf(i, "Int"))
1919 then {
2020 let j = i
2121 j
2222 }
2323 else 0
2424 }
2525
2626
2727 func k (h) = {
2828 let i = getString(this, h)
2929 if ($isInstanceOf(i, "String"))
3030 then {
3131 let l = i
3232 l
3333 }
3434 else ""
3535 }
3636
3737
3838 func m (h) = {
3939 let i = getBoolean(this, h)
4040 if ($isInstanceOf(i, "Boolean"))
4141 then {
4242 let j = i
4343 j
4444 }
4545 else false
4646 }
4747
4848
4949 func n () = {
5050 let o = g("nextGameId")
5151 if ((o == 0))
5252 then 1
5353 else o
5454 }
5555
5656
5757 func p (q) = (q + "_currentGame")
5858
5959
6060 func r (q) = g(p(q))
6161
6262
6363 func s (t) = ("slot" + toString(t))
6464
6565
6666 func u (t) = g(s(t))
6767
6868
6969 func v (w,q) = ((("game" + toString(w)) + "_") + q)
7070
7171
7272 func x (w,q) = k(v(w, q))
7373
7474
7575 func y (w) = (("game" + toString(w)) + "_maker")
7676
7777
7878 func z (w) = k(y(w))
7979
8080
8181 func A (w) = (("game" + toString(w)) + "_taker")
8282
8383
8484 func B (w) = k(A(w))
8585
8686
8787 func C (w) = (("game" + toString(w)) + "_taker_skipReplace")
8888
8989
9090 func D (w) = m(C(w))
9191
9292
9393 func E (w) = (("game" + toString(w)) + "_bet")
9494
9595
9696 func F (w) = g(E(w))
9797
9898
9999 func G (w) = (("game" + toString(w)) + "_waitingExpirationHeight")
100100
101101
102102 func H (w) = g(G(w))
103103
104104
105105 func I (w) = (("game" + toString(w)) + "_expirationHeight")
106106
107107
108108 func J (w) = g(I(w))
109109
110110
111-func K (w,L) = ((("game" + toString(w)) + "_range_") + L)
111+func K (w) = (("game" + toString(w)) + "_ranges")
112112
113113
114-func M (w,L) = g(K(w, L))
114+func L (w) = k(K(w))
115115
116116
117-func N (w) = (("game" + toString(w)) + "_maker_randomsCommit")
117+func M (w) = (("game" + toString(w)) + "_maker_randomsCommit")
118118
119119
120-func O (w) = k(N(w))
120+func N (w) = k(M(w))
121121
122122
123-func P (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_randoms")
123+func O (w,P) = (((("game" + toString(w)) + "_") + P) + "_randoms")
124124
125125
126-func R (w,Q) = k(P(w, Q))
126+func Q (w,P) = k(O(w, P))
127127
128128
129-func S (w) = (("game" + toString(w)) + "_step")
129+func R (w) = (("game" + toString(w)) + "_step")
130130
131131
132-func T (w) = g(S(w))
132+func S (w) = g(R(w))
133133
134134
135-func U (w,Q,L) = (((((("game" + toString(w)) + "_") + Q) + "_") + L) + "Rarity")
135+func T (w,P) = (((("game" + toString(w)) + "_") + P) + "_rarities")
136136
137137
138-func V (w,Q,L) = g(U(w, Q, L))
138+func U (w,P) = k(T(w, P))
139139
140140
141-func W (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_replacedRange")
141+func V (w,P) = (((("game" + toString(w)) + "_") + P) + "_replacedRange")
142142
143143
144-func X (w,Q) = k(W(w, Q))
144+func W (w,P) = k(V(w, P))
145145
146146
147-func Y (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_duckId")
147+func X (w,P) = (((("game" + toString(w)) + "_") + P) + "_duckId")
148148
149149
150-func Z (w,Q) = k(Y(w, Q))
150+func Y (w,P) = k(X(w, P))
151151
152152
153-func aa (w) = (("game" + toString(w)) + "_taker_orderCommit")
153+func Z (w) = (("game" + toString(w)) + "_taker_orderCommit")
154154
155155
156-func ab (w) = k(aa(w))
156+func aa (w) = k(Z(w))
157157
158158
159-func ac (w,Q) = (((("game" + toString(w)) + "_") + Q) + "_order")
159+func ab (w,P) = (((("game" + toString(w)) + "_") + P) + "_order")
160160
161161
162-func ad (w,Q) = k(ac(w, Q))
162+func ac (w,P) = k(ab(w, P))
163163
164164
165-func ae (w,q) = (((("game" + toString(w)) + "_") + q) + "_result")
165+func ad (w,q) = (((("game" + toString(w)) + "_") + q) + "_result")
166166
167167
168-func af (w,q) = k(ae(w, q))
168+func ae (w,q) = k(ad(w, q))
169169
170170
171-func ag (w,q) = (((("game" + toString(w)) + "_") + q) + "_prize")
171+func af (w,q) = (((("game" + toString(w)) + "_") + q) + "_prize")
172172
173173
174-func ah (w,q) = g(ag(w, q))
174+func ag (w,q) = g(af(w, q))
175175
176176
177-func ai (q) = (q + "_wins")
177+func ah (q) = (q + "_wins")
178178
179179
180-func aj (q) = g(ai(q))
180+func ai (q) = g(ah(q))
181181
182182
183-func ak (q) = (q + "_loses")
183+func aj (q) = (q + "_loses")
184184
185185
186-func al (q) = g(ak(q))
186+func ak (q) = g(aj(q))
187187
188188
189-func am (q) = (q + "_draws")
189+func al (q) = (q + "_draws")
190190
191191
192-func an (q) = g(am(q))
192+func am (q) = g(al(q))
193193
194194
195-func ao (q) = (q + "_PnL")
195+func an (q) = (q + "_PnL")
196196
197197
198-func ap (q) = g(ao(q))
198+func ao (q) = g(an(q))
199199
200200
201-func aq () = "gamesPlayed"
201+func ap () = "gamesPlayed"
202202
203203
204-func ar () = g(aq())
204+func aq () = g(ap())
205205
206206
207-func as (at,au) = {
208- let i = getInteger(Address(a), (((("address_" + at) + "_asset_") + au) + "_farmingPower"))
207+func ar (as,at) = {
208+ let i = getInteger(Address(a), (((("address_" + as) + "_asset_") + at) + "_farmingPower"))
209209 if ($isInstanceOf(i, "Int"))
210210 then {
211- let av = i
212- av
211+ let au = i
212+ au
213213 }
214214 else 0
215215 }
216216
217217
218-func aw (ax,au) = if ((assetBalance(ax, au) > 0))
218+func av (aw,at) = if ((assetBalance(aw, at) > 0))
219219 then true
220- else (as(toBase58String(ax.bytes), toBase58String(au)) > 0)
220+ else (ar(toBase58String(aw.bytes), toBase58String(at)) > 0)
221221
222222
223-let ay = [[2, 3, 4, 5, 6, 7, 8, 9], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 30], [31, 33, 35, 37, 40], [44, 50, 57, 70, 100]]
223+let ax = [[2, 3, 4, 5, 6, 7, 8, 9], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27, 28, 30], [31, 33, 35, 37, 40], [44, 50, 57, 70, 100]]
224224
225-func az (aA,aB) = {
226- let aC = (aA % size(ay[(aB - 1)]))
227-ay[(aB - 1)][aC]
225+func ay (az,aA) = {
226+ let aB = (az % size(ax[(aA - 1)]))
227+ax[(aA - 1)][aB]
228228 }
229229
230230
231-func aD (l,j) = if ((l > j))
231+func aC (l,j) = if ((l > j))
232232 then 1
233233 else if ((j > l))
234234 then -1
235235 else 0
236236
237237
238-func aE (w,aF,aG) = {
239- let aH = T(w)
240- if (aG)
238+func aD (w,aE,aF) = {
239+ let aG = S(w)
240+ if (aF)
241241 then {
242- let aI = J(w)
243- if ((aH == 0))
242+ let aH = J(w)
243+ if ((aG == 0))
244244 then throw("Game is not started")
245- else if ((aI > height))
245+ else if ((aH > height))
246246 then throw("Game is not expired")
247- else if (if ((aH == 1))
247+ else if (if ((aG == 1))
248248 then true
249- else (aH == 4))
249+ else (aG == 4))
250250 then "taker"
251251 else "maker"
252252 }
253253 else {
254- let aJ = split(ad(w, "maker"), "|")
255- let aK = split(aF, "|")
256- let aL = V(w, "maker", aJ[0])
257- let aM = V(w, "maker", aJ[1])
258- let aN = V(w, "maker", aJ[2])
259- let aO = V(w, "taker", aK[0])
260- let aP = V(w, "taker", aK[1])
261- let aQ = V(w, "taker", aK[2])
262- let aR = ((aD(aL, aO) + aD(aM, aP)) + aD(aN, aQ))
263- if ((aR > 0))
254+ let aI = split(ac(w, "maker"), "|")
255+ let aJ = [parseIntValue(aI[0]), parseIntValue(aI[1]), parseIntValue(aI[2])]
256+ let aK = split(aE, "|")
257+ let aL = [parseIntValue(aK[0]), parseIntValue(aK[1]), parseIntValue(aK[2])]
258+ let aM = split(U(w, "maker"), "|")
259+ let aN = [parseIntValue(aM[0]), parseIntValue(aM[1]), parseIntValue(aM[2])]
260+ let aO = split(U(w, "taker"), "|")
261+ let aP = [parseIntValue(aO[0]), parseIntValue(aO[1]), parseIntValue(aO[2])]
262+ let aQ = ((aC(aN[aJ[0]], aP[aL[0]]) + aC(aN[aJ[1]], aP[aL[1]])) + aC(aN[aJ[2]], aP[aL[2]]))
263+ if ((aQ > 0))
264264 then "maker"
265- else if ((0 > aR))
265+ else if ((0 > aQ))
266266 then "taker"
267267 else "draw"
268268 }
269269 }
270270
271271
272-func aS (w,aK,aG) = {
273- let aT = F(w)
274- let aU = z(w)
275- let aV = B(w)
276- let aW = aE(w, aK, aG)
277- let aX = if ((aW == "maker"))
278- then aU
279- else if ((aW == "taker"))
280- then aV
272+func aR (w,aL,aF) = {
273+ let aS = F(w)
274+ let aT = z(w)
275+ let aU = B(w)
276+ let aV = aD(w, aL, aF)
277+ let aW = if ((aV == "maker"))
278+ then aT
279+ else if ((aV == "taker"))
280+ then aU
281281 else ""
282- let aY = if ((aW == "taker"))
283- then aU
284- else if ((aW == "maker"))
285- then aV
282+ let aX = if ((aV == "taker"))
283+ then aT
284+ else if ((aV == "maker"))
285+ then aU
286286 else ""
287- if ((aX != ""))
288- then [IntegerEntry(p(aX), 0), IntegerEntry(p(aY), 0), IntegerEntry(ai(aX), (aj(aX) + 1)), IntegerEntry(ak(aY), (al(aY) + 1)), StringEntry(ae(w, aX), "win"), StringEntry(ae(w, aY), "lose"), IntegerEntry(ag(w, aX), aT), IntegerEntry(ag(w, aY), -(aT)), IntegerEntry(ao(aX), (ap(aX) + aT)), IntegerEntry(ao(aY), (ap(aY) - aT)), ScriptTransfer(Address(fromBase58String(aX)), (aT * 2), c)]
289- else [IntegerEntry(p(aU), 0), IntegerEntry(p(aV), 0), IntegerEntry(am(aU), (an(aU) + 1)), IntegerEntry(am(aV), (an(aV) + 1)), StringEntry(ae(w, aU), "draw"), StringEntry(ae(w, aV), "draw"), IntegerEntry(ag(w, aU), 0), IntegerEntry(ag(w, aV), 0), ScriptTransfer(Address(fromBase58String(aU)), aT, c), ScriptTransfer(Address(fromBase58String(aV)), aT, c)]
287+ if ((aW != ""))
288+ then [IntegerEntry(p(aW), 0), IntegerEntry(p(aX), 0), IntegerEntry(ah(aW), (ai(aW) + 1)), IntegerEntry(aj(aX), (ak(aX) + 1)), StringEntry(ad(w, aW), "win"), StringEntry(ad(w, aX), "lose"), IntegerEntry(af(w, aW), aS), IntegerEntry(af(w, aX), -(aS)), IntegerEntry(an(aW), (ao(aW) + aS)), IntegerEntry(an(aX), (ao(aX) - aS)), ScriptTransfer(Address(fromBase58String(aW)), (aS * 2), c)]
289+ else [IntegerEntry(p(aT), 0), IntegerEntry(p(aU), 0), IntegerEntry(al(aT), (am(aT) + 1)), IntegerEntry(al(aU), (am(aU) + 1)), StringEntry(ad(w, aT), "draw"), StringEntry(ad(w, aU), "draw"), IntegerEntry(af(w, aT), 0), IntegerEntry(af(w, aU), 0), ScriptTransfer(Address(fromBase58String(aT)), aS, c), ScriptTransfer(Address(fromBase58String(aU)), aS, c)]
290290 }
291291
292292
293-@Callable(aZ)
294-func makeGame (t,ba,bb,bc,bd) = {
295- let be = toBase58String(aZ.caller.bytes)
296- let bf = u(t)
297- let bg = value(aZ.payments[0])
298- let bh = bg.amount
293+@Callable(aY)
294+func makeGame (t,aZ,ba,bb,bc) = {
295+ let bd = toBase58String(aY.caller.bytes)
296+ let be = u(t)
297+ let bf = value(aY.payments[0])
298+ let bg = bf.amount
299299 let w = n()
300- if ((r(be) != 0))
300+ if ((r(bd) != 0))
301301 then throw("You already have an active game")
302302 else if (if ((0 > t))
303303 then true
304304 else (t >= d))
305305 then throw("Invalid slot")
306- else if ((bf != 0))
306+ else if ((be != 0))
307307 then throw("This slot is busy")
308- else if ((bg.assetId != c))
308+ else if ((bf.assetId != c))
309309 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
310- else if ((bh != 10000))
310+ else if ((bg != 10000))
311311 then throw("Bet must be 0.0001 EGG during beta test")
312- else if (if ((1 > ba))
312+ else if (if ((1 > aZ))
313313 then true
314- else (ba > 5))
314+ else (aZ > 5))
315315 then throw("Invalid range for the worst duck")
316- else if (if ((1 > bb))
316+ else if (if ((1 > ba))
317317 then true
318- else (bb > 5))
318+ else (ba > 5))
319319 then throw("Invalid range for the medium duck")
320- else if (if ((1 > bc))
320+ else if (if ((1 > bb))
321321 then true
322- else (bc > 5))
322+ else (bb > 5))
323323 then throw("Invalid range for the best duck")
324- else if ((ba > bb))
324+ else if ((aZ > ba))
325325 then throw("The medium range can't be less than the worst one")
326- else if ((bb > bc))
326+ else if ((ba > bb))
327327 then throw("The best range can't be worse than the medium one")
328- else [IntegerEntry(p(be), w), StringEntry(y(w), be), StringEntry(v(w, be), "maker"), IntegerEntry(E(w), bh), IntegerEntry(K(w, "worst"), ba), IntegerEntry(K(w, "medium"), bb), IntegerEntry(K(w, "best"), bc), StringEntry(N(w), bd), IntegerEntry(G(w), (height + e)), IntegerEntry(s(t), w), IntegerEntry("nextGameId", (w + 1))]
328+ else [IntegerEntry(p(bd), w), StringEntry(y(w), bd), StringEntry(v(w, bd), "maker"), IntegerEntry(E(w), bg), StringEntry(K(w), ((((toString(aZ) + "|") + toString(ba)) + "|") + toString(bb))), StringEntry(M(w), bc), IntegerEntry(G(w), (height + e)), IntegerEntry(s(t), w), IntegerEntry("nextGameId", (w + 1))]
329329 }
330330
331331
332332
333-@Callable(aZ)
334-func takeGame (t,bi,bj,bk,bl,bm,bn,bo) = {
335- let be = toBase58String(aZ.caller.bytes)
333+@Callable(aY)
334+func takeGame (t,bh,bi,bj,bk,bl,bm,bn) = {
335+ let bd = toBase58String(aY.caller.bytes)
336336 let w = u(t)
337- let bg = value(aZ.payments[0])
338- let bp = ((((((((((toString(bi) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm)) + "|") + toString(bn))
339- if ((r(be) != 0))
337+ let bf = value(aY.payments[0])
338+ let bo = ((((((((((toString(bh) + "|") + toString(bi)) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm))
339+ if ((r(bd) != 0))
340340 then throw("You already have an active game")
341341 else if (if ((0 > t))
342342 then true
343343 else (t >= d))
344344 then throw("Invalid slot")
345345 else if ((u(t) == 0))
346346 then throw("This slot is empty")
347- else if ((bg.assetId != c))
347+ else if ((bf.assetId != c))
348348 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
349- else if ((bg.amount != F(w)))
349+ else if ((bf.amount != F(w)))
350350 then throw("Insufficient eggs amount")
351351 else if ((height >= H(w)))
352352 then throw("This game is expired")
353- else if (if ((0 > bi))
353+ else if (if ((0 > bh))
354354 then true
355- else (bi > 1000000000000))
355+ else (bh > 1000000000000))
356356 then throw("Invalid random1")
357- else if (if ((0 > bj))
357+ else if (if ((0 > bi))
358358 then true
359- else (bj > 1000000000000))
359+ else (bi > 1000000000000))
360360 then throw("Invalid random2")
361- else if (if ((0 > bk))
361+ else if (if ((0 > bj))
362362 then true
363- else (bk > 1000000000000))
363+ else (bj > 1000000000000))
364364 then throw("Invalid random3")
365- else if (if ((0 > bl))
365+ else if (if ((0 > bk))
366366 then true
367- else (bl > 1000000000000))
367+ else (bk > 1000000000000))
368368 then throw("Invalid random4")
369- else if (if ((0 > bm))
369+ else if (if ((0 > bl))
370370 then true
371- else (bm > 1000000000000))
371+ else (bl > 1000000000000))
372372 then throw("Invalid random5")
373- else if (if ((0 > bn))
373+ else if (if ((0 > bm))
374374 then true
375- else (bn > 1000000000000))
375+ else (bm > 1000000000000))
376376 then throw("Invalid random6")
377- else [IntegerEntry(p(be), w), StringEntry(A(w), be), StringEntry(v(w, be), "taker"), StringEntry(P(w, "taker"), bp), BooleanEntry(C(w), bo), IntegerEntry(S(w), 1), IntegerEntry(I(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (ar() + 1))]
377+ else [IntegerEntry(p(bd), w), StringEntry(A(w), bd), StringEntry(v(w, bd), "taker"), StringEntry(O(w, "taker"), bo), BooleanEntry(C(w), bn), IntegerEntry(R(w), 1), IntegerEntry(I(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (aq() + 1))]
378378 }
379379
380380
381381
382-@Callable(aZ)
382+@Callable(aY)
383383 func kickGame (t) = {
384- let be = toBase58String(aZ.caller.bytes)
384+ let bd = toBase58String(aY.caller.bytes)
385385 let w = u(t)
386- let bq = z(w)
386+ let bp = z(w)
387387 if (if ((0 > t))
388388 then true
389389 else (t >= d))
390390 then throw("Invalid slot")
391391 else if ((w == 0))
392392 then throw("Slot is empty")
393- else if (if ((be != bq))
393+ else if (if ((bd != bp))
394394 then (H(w) > height)
395395 else false)
396396 then throw("Waiting is not finished yet")
397- else [IntegerEntry(p(bq), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(bq)), F(w), c)]
397+ else [IntegerEntry(p(bp), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(bp)), F(w), c)]
398398 }
399399
400400
401401
402-@Callable(aZ)
403-func revealRandomsAndReplaceMaker (bi,bj,bk,bl,bm,bn,br,bs,bt) = {
404- let be = toBase58String(aZ.caller.bytes)
405- let w = r(be)
406- let Q = x(w, be)
407- let aH = T(w)
408- let bu = O(w)
409- let bv = ((((((((((toString(bi) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm)) + "|") + toString(bn))
410- let bw = split(R(w, "taker"), "|")
411- let bx = if (if (if ((bs == "worst"))
402+@Callable(aY)
403+func revealRandomsAndReplaceMaker (bh,bi,bj,bk,bl,bm,bq,br,bs) = {
404+ let bd = toBase58String(aY.caller.bytes)
405+ let w = r(bd)
406+ let P = x(w, bd)
407+ let aG = S(w)
408+ let bt = split(L(w), "|")
409+ let bu = [parseIntValue(bt[0]), parseIntValue(bt[1]), parseIntValue(bt[2])]
410+ let bv = N(w)
411+ let bw = ((((((((((toString(bh) + "|") + toString(bi)) + "|") + toString(bj)) + "|") + toString(bk)) + "|") + toString(bl)) + "|") + toString(bm))
412+ let bx = split(Q(w, "taker"), "|")
413+ let by = if (if (if ((br == "worst"))
412414 then true
413- else (bs == "medium"))
415+ else (br == "medium"))
414416 then true
415- else (bs == "best"))
417+ else (br == "best"))
416418 then {
417- let by = invoke(Address(b), "getAssetRarity", [bt], nil)
418- if ((by == by))
419+ let bz = invoke(Address(b), "getAssetRarity", [bs], nil)
420+ if ((bz == bz))
419421 then {
420- let bz = {
421- let i = by
422+ let bA = {
423+ let i = bz
422424 if ($isInstanceOf(i, "Int"))
423425 then {
424- let bA = i
425- bA
426+ let bB = i
427+ bB
426428 }
427429 else throw("Incorrect invoke result")
428430 }
429- let aB = M(w, bs)
430- if (!(aw(aZ.caller, fromBase58String(bt))))
431- then throw((("Asset " + bt) + " doesn't belong to you"))
432- else if (if ((5 > aB))
433- then if ((bz > (aB * 10)))
431+ let aA = if ((br == "worst"))
432+ then bu[0]
433+ else if ((br == "medium"))
434+ then bu[1]
435+ else bu[2]
436+ if (!(av(aY.caller, fromBase58String(bs))))
437+ then throw((("Asset " + bs) + " doesn't belong to you"))
438+ else if (if ((5 > aA))
439+ then if ((bA > (aA * 10)))
434440 then true
435- else (((aB - 1) * 10) >= bz)
441+ else (((aA - 1) * 10) >= bA)
436442 else false)
437443 then throw("Duck doesn't fit rarity range")
438- else if (if ((aB == 5))
439- then (40 >= bz)
444+ else if (if ((aA == 5))
445+ then (40 >= bA)
440446 else false)
441447 then throw("Duck doesn't fit rarity range")
442- else bz
448+ else bA
443449 }
444450 else throw("Strict value is not equal to itself.")
445451 }
446452 else 0
447- let ba = M(w, "worst")
448- let bb = M(w, "medium")
449- let bc = M(w, "best")
450- let bB = if ((bs == "worst"))
451- then bx
452- else az((bi + parseIntValue(bw[0])), ba)
453- let bC = if ((bs == "medium"))
454- then bx
455- else az((bj + parseIntValue(bw[1])), bb)
456- let bD = if ((bs == "best"))
457- then bx
458- else az((bk + parseIntValue(bw[2])), bc)
459- let bE = az((bl + parseIntValue(bw[3])), ba)
460- let bF = az((bm + parseIntValue(bw[4])), bb)
461- let bG = az((bn + parseIntValue(bw[5])), bc)
462- let bH = if (D(w))
463- then (aH + 2)
464- else (aH + 1)
453+ let bC = if ((br == "worst"))
454+ then by
455+ else ay((bh + parseIntValue(bx[0])), bu[0])
456+ let bD = if ((br == "medium"))
457+ then by
458+ else ay((bi + parseIntValue(bx[1])), bu[1])
459+ let bE = if ((br == "best"))
460+ then by
461+ else ay((bj + parseIntValue(bx[2])), bu[2])
462+ let bF = ay((bk + parseIntValue(bx[3])), bu[0])
463+ let bG = ay((bl + parseIntValue(bx[4])), bu[1])
464+ let bH = ay((bm + parseIntValue(bx[5])), bu[2])
465+ let bI = if (D(w))
466+ then (aG + 2)
467+ else (aG + 1)
465468 if ((w == 0))
466469 then throw("You don't have an active game")
467- else if ((Q != "maker"))
470+ else if ((P != "maker"))
468471 then throw("Only maker can call this method")
469- else if ((1 > aH))
472+ else if ((1 > aG))
470473 then throw("Game is not started")
471- else if ((aH > 1))
474+ else if ((aG > 1))
472475 then throw("This step is finished")
473- else if (if ((0 > bi))
476+ else if (if ((0 > bh))
474477 then true
475- else (bi > 1000000000000))
478+ else (bh > 1000000000000))
476479 then throw("Invalid random1")
477- else if (if ((0 > bj))
480+ else if (if ((0 > bi))
478481 then true
479- else (bj > 1000000000000))
482+ else (bi > 1000000000000))
480483 then throw("Invalid random2")
481- else if (if ((0 > bk))
484+ else if (if ((0 > bj))
482485 then true
483- else (bk > 1000000000000))
486+ else (bj > 1000000000000))
484487 then throw("Invalid random3")
485- else if (if ((0 > bl))
488+ else if (if ((0 > bk))
486489 then true
487- else (bl > 1000000000000))
490+ else (bk > 1000000000000))
488491 then throw("Invalid random4")
489- else if (if ((0 > bm))
492+ else if (if ((0 > bl))
490493 then true
491- else (bm > 1000000000000))
494+ else (bl > 1000000000000))
492495 then throw("Invalid random5")
493- else if (if ((0 > bn))
496+ else if (if ((0 > bm))
494497 then true
495- else (bn > 1000000000000))
498+ else (bm > 1000000000000))
496499 then throw("Invalid random6")
497- else if ((toBase58String(sha256(toBytes((bv + br)))) != bu))
500+ else if ((toBase58String(sha256(toBytes((bw + bq)))) != bv))
498501 then throw("Randoms don't match commit")
499- else [StringEntry(P(w, "maker"), bv), IntegerEntry(U(w, "maker", "worst"), bB), IntegerEntry(U(w, "maker", "medium"), bC), IntegerEntry(U(w, "maker", "best"), bD), StringEntry(W(w, "maker"), bs), StringEntry(Y(w, "maker"), bt), IntegerEntry(U(w, "taker", "worst"), bE), IntegerEntry(U(w, "taker", "medium"), bF), IntegerEntry(U(w, "taker", "best"), bG), IntegerEntry(S(w), bH), IntegerEntry(I(w), (height + f))]
502+ else [StringEntry(O(w, "maker"), bw), StringEntry(T(w, "maker"), ((((toString(bC) + "|") + toString(bD)) + "|") + toString(bE))), StringEntry(V(w, "maker"), br), StringEntry(X(w, "maker"), bs), StringEntry(T(w, "taker"), ((((toString(bF) + "|") + toString(bG)) + "|") + toString(bH))), IntegerEntry(R(w), bI), IntegerEntry(I(w), (height + f))]
500503 }
501504
502505
503506
504-@Callable(aZ)
505-func replaceTaker (bs,bt) = {
506- let be = toBase58String(aZ.caller.bytes)
507- let w = r(be)
508- let Q = x(w, be)
509- let aH = T(w)
510- let aB = M(w, bs)
511- let by = invoke(Address(b), "getAssetRarity", [bt], nil)
512- if ((by == by))
507+@Callable(aY)
508+func replaceTaker (br,bs) = {
509+ let bd = toBase58String(aY.caller.bytes)
510+ let w = r(bd)
511+ let P = x(w, bd)
512+ let aG = S(w)
513+ let bt = split(L(w), "|")
514+ let bu = [parseIntValue(bt[0]), parseIntValue(bt[1]), parseIntValue(bt[2])]
515+ let bJ = if ((br == "worst"))
516+ then 0
517+ else if ((br == "medium"))
518+ then 1
519+ else 2
520+ let aA = bu[bJ]
521+ let bz = invoke(Address(b), "getAssetRarity", [bs], nil)
522+ if ((bz == bz))
513523 then {
514- let bz = {
515- let i = by
524+ let bK = {
525+ let i = bz
516526 if ($isInstanceOf(i, "Int"))
517527 then {
518- let bA = i
519- bA
528+ let bB = i
529+ bB
520530 }
521531 else throw("Incorrect invoke result")
522532 }
533+ let bL = split(U(w, "taker"), "|")
534+ let bM = (((nil :+ (if ((bJ == 0))
535+ then toString(bK)
536+ else bL[0])) :+ (if ((bJ == 1))
537+ then toString(bK)
538+ else bL[1])) :+ (if ((bJ == 0))
539+ then toString(bK)
540+ else bL[0]))
523541 if ((w == 0))
524542 then throw("You don't have an active game")
525- else if ((Q != "taker"))
543+ else if ((P != "taker"))
526544 then throw("Only taker can call this method")
527- else if (if (if ((bs != "worst"))
528- then (bs != "medium")
545+ else if (if (if ((br != "worst"))
546+ then (br != "medium")
529547 else false)
530- then (bs != "best")
548+ then (br != "best")
531549 else false)
532- then throw((("Invalid range - " + bs) + ". Must be worst, medium or best"))
550+ then throw((("Invalid range - " + br) + ". Must be worst, medium or best"))
533551 else if ((J(w) == 0))
534552 then throw("Game is not started")
535- else if ((2 > aH))
553+ else if ((2 > aG))
536554 then throw("This step is not started")
537- else if ((aH > 2))
555+ else if ((aG > 2))
538556 then throw("This step is finished")
539- else if (!(aw(aZ.caller, fromBase58String(bt))))
540- then throw((("Asset " + bt) + " doesn't belong to you"))
541- else if (if ((5 > aB))
542- then if ((bz > (aB * 10)))
557+ else if (!(av(aY.caller, fromBase58String(bs))))
558+ then throw((("Asset " + bs) + " doesn't belong to you"))
559+ else if (if ((5 > aA))
560+ then if ((bK > (aA * 10)))
543561 then true
544- else (((aB - 1) * 10) >= bz)
562+ else (((aA - 1) * 10) >= bK)
545563 else false)
546564 then throw("Duck doesn't fit rarity range")
547- else if (if ((aB == 5))
548- then (40 >= bz)
565+ else if (if ((aA == 5))
566+ then (40 >= bK)
549567 else false)
550568 then throw("Duck doesn't fit rarity range")
551- else [IntegerEntry(U(w, Q, bs), bz), StringEntry(W(w, Q), bs), StringEntry(Y(w, Q), bt), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
569+ else [StringEntry(T(w, "taker"), ((((bM[0] + "|") + bM[1]) + "|") + bM[2])), StringEntry(V(w, "taker"), br), StringEntry(X(w, "taker"), bs), IntegerEntry(R(w), (aG + 1)), IntegerEntry(I(w), (height + f))]
552570 }
553571 else throw("Strict value is not equal to itself.")
554572 }
555573
556574
557575
558-@Callable(aZ)
559-func commitOrderTaker (bI) = {
560- let be = toBase58String(aZ.caller.bytes)
561- let w = r(be)
562- let Q = x(w, be)
563- let aH = T(w)
576+@Callable(aY)
577+func commitOrderTaker (bN) = {
578+ let bd = toBase58String(aY.caller.bytes)
579+ let w = r(bd)
580+ let P = x(w, bd)
581+ let aG = S(w)
564582 if ((w == 0))
565583 then throw("You don't have an active game")
566- else if ((Q != "taker"))
584+ else if ((P != "taker"))
567585 then throw("Only taker can call this method")
568- else if ((3 > aH))
586+ else if ((3 > aG))
569587 then throw("This step is not started")
570- else if ((aH > 3))
588+ else if ((aG > 3))
571589 then throw("This step is finished")
572- else [StringEntry(aa(w), bI), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
590+ else [StringEntry(Z(w), bN), IntegerEntry(R(w), (aG + 1)), IntegerEntry(I(w), (height + f))]
573591 }
574592
575593
576594
577-@Callable(aZ)
578-func setOrderMaker (bJ) = {
579- let be = toBase58String(aZ.caller.bytes)
580- let w = r(be)
581- let Q = x(w, be)
582- let aH = T(w)
595+@Callable(aY)
596+func setOrderMaker (bO) = {
597+ let bd = toBase58String(aY.caller.bytes)
598+ let w = r(bd)
599+ let P = x(w, bd)
600+ let aG = S(w)
583601 if ((w == 0))
584602 then throw("You don't have an active game")
585- else if ((Q != "maker"))
603+ else if ((P != "maker"))
586604 then throw("Only maker can call this method")
587- else if ((4 > aH))
605+ else if ((4 > aG))
588606 then throw("This step is not started")
589- else if ((aH > 4))
607+ else if ((aG > 4))
590608 then throw("This step is finished")
591- else if (if (if (if (if (if ((bJ != "worst|medium|best"))
592- then (bJ != "worst|best|medium")
609+ else if (if (if (if (if (if ((bO != "0|1|2"))
610+ then (bO != "0|2|1")
593611 else false)
594- then (bJ != "medium|worst|best")
612+ then (bO != "1|0|2")
595613 else false)
596- then (bJ != "medium|best|worst")
614+ then (bO != "1|2|0")
597615 else false)
598- then (bJ != "best|worst|medium")
616+ then (bO != "2|0|1")
599617 else false)
600- then (bJ != "best|medium|worst")
618+ then (bO != "2|1|0")
601619 else false)
602620 then throw("Invalid order data")
603- else [StringEntry(ac(w, Q), bJ), IntegerEntry(S(w), (aH + 1)), IntegerEntry(I(w), (height + f))]
621+ else [StringEntry(ab(w, P), bO), IntegerEntry(R(w), (aG + 1)), IntegerEntry(I(w), (height + f))]
604622 }
605623
606624
607625
608-@Callable(aZ)
609-func revealOrderTaker (bJ,br) = {
610- let be = toBase58String(aZ.caller.bytes)
611- let w = r(be)
612- let Q = x(w, be)
613- let aH = T(w)
626+@Callable(aY)
627+func revealOrderTaker (bO,bq) = {
628+ let bd = toBase58String(aY.caller.bytes)
629+ let w = r(bd)
630+ let P = x(w, bd)
631+ let aG = S(w)
614632 if ((w == 0))
615633 then throw("You don't have an active game")
616- else if ((Q != "taker"))
634+ else if ((P != "taker"))
617635 then throw("Only taker can call this method")
618- else if ((5 > aH))
636+ else if ((5 > aG))
619637 then throw("This step is not started")
620- else if (if (if (if (if (if ((bJ != "worst|medium|best"))
621- then (bJ != "worst|best|medium")
638+ else if (if (if (if (if (if ((bO != "0|1|2"))
639+ then (bO != "0|2|1")
622640 else false)
623- then (bJ != "medium|worst|best")
641+ then (bO != "1|0|2")
624642 else false)
625- then (bJ != "medium|best|worst")
643+ then (bO != "1|2|0")
626644 else false)
627- then (bJ != "best|worst|medium")
645+ then (bO != "2|0|1")
628646 else false)
629- then (bJ != "best|medium|worst")
647+ then (bO != "2|1|0")
630648 else false)
631649 then throw("Invalid order data")
632- else if ((toBase58String(sha256(toBytes((bJ + br)))) != ab(w)))
650+ else if ((toBase58String(sha256(toBytes((bO + bq)))) != aa(w)))
633651 then throw("Reveal doesn't match commit")
634- else (aS(w, bJ, false) ++ [StringEntry(ac(w, Q), bJ)])
652+ else (aR(w, bO, false) ++ [StringEntry(ab(w, P), bO)])
635653 }
636654
637655
638656
639-@Callable(aZ)
657+@Callable(aY)
640658 func getPrizeExpired () = {
641- let be = toBase58String(aZ.caller.bytes)
642- let w = r(be)
659+ let bd = toBase58String(aY.caller.bytes)
660+ let w = r(bd)
643661 if ((w == 0))
644662 then throw("You don't have an active game")
645- else aS(w, "", true)
663+ else aR(w, "", true)
646664 }
647665
648666
649-@Verifier(bK)
650-func bL () = sigVerify(bK.bodyBytes, bK.proofs[0], bK.senderPublicKey)
667+@Verifier(bP)
668+func bQ () = sigVerify(bP.bodyBytes, bP.proofs[0], bP.senderPublicKey)
651669

github/deemru/w8io/169f3d6 
228.79 ms