tx · 5NXBvXDpLiVQxJNNx2rEuwAtuqVkc3XZZAcNMh9PNGfr

3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito:  -0.05000000 Waves

2021.09.09 17:08 [1695610] smart account 3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito > SELF 0.00000000 Waves

{ "type": 13, "id": "5NXBvXDpLiVQxJNNx2rEuwAtuqVkc3XZZAcNMh9PNGfr", "fee": 5000000, "feeAssetId": null, "timestamp": 1631196553677, "version": 2, "chainId": 84, "sender": "3N6oaapvYkEryHUr4vAiPRXM3iS6kMYXito", "senderPublicKey": "7PMrxEzirv6h9Z2zqLE47qrZd6v1AbRZER5Aqfo95Eyr", "proofs": [ "5jzmXiraskr8y7Gpt82rVcVRjMNJN7jwo7XMgFnJpfYQznk52d2aF26Dyg5eDmUinjMe3gT9md8XbHPURKRVfATm" ], "script": "base64:AAIFAAAAAAAAACgIAhIGCgQBAQEBEgMKAQESAwoBARIFCgMICAgSAwoBCBIECgIICBIAAAAANAAAAAAQaW5jdWJhdG9yQWRkcmVzcwEAAAAaAVQu1YzRxAHn1ekAzs1AJJ6xFAc06V7PK6oAAAAADmJyZWVkZXJBZGRyZXNzAQAAABoBVIXmeysidPaPsP+lKHIt9Vw8rE+lS45bjgAAAAAVcmFyaXR5UHJvdmlkZXJBZGRyZXNzAQAAABoBVPqvXAIOK77VhJOb48rzK/MJjwrn6vR1pAAAAAALZWdnc0Fzc2V0SWQBAAAAICUCZcz3BGjIvgFZkXjlWFo4ZhQTrUpMSrf+BRdIFxaDAAAAAAVTTE9UUwAAAAAAAAAACgAAAAAHV0FJVElORwAAAAAAAAAACAAAAAAMc3RlcER1cmF0aW9uAAAAAAAAAAAFAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADXRyeUdldEJvb2xlYW4AAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAA1nZXROZXh0R2FtZUlkAAAAAAQAAAAGbmV4dElkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAACm5leHRHYW1lSWQDCQAAAAAAAAIFAAAABm5leHRJZAAAAAAAAAAAAAAAAAAAAAAAAQUAAAAGbmV4dElkAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAxfY3VycmVudEdhbWUBAAAAFGdldFBsYXllckN1cnJlbnRHYW1lAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAACmdldFNsb3RLZXkAAAABAAAABHNsb3QJAAEsAAAAAgIAAAAEc2xvdAkAAaQAAAABBQAAAARzbG90AQAAAAdnZXRTbG90AAAAAQAAAARzbG90CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAApnZXRTbG90S2V5AAAAAQUAAAAEc2xvdAEAAAAQZ2V0UGxheWVyUm9sZUtleQAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABBnZXRQbGF5ZXJSb2xlS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAAtnZXRNYWtlcktleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAABl9tYWtlcgEAAAAIZ2V0TWFrZXIAAAABAAAABmdhbWVJZAkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAAtnZXRNYWtlcktleQAAAAEFAAAABmdhbWVJZAEAAAALZ2V0VGFrZXJLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAZfdGFrZXIBAAAACGdldFRha2VyAAAAAQAAAAZnYW1lSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAALZ2V0VGFrZXJLZXkAAAABBQAAAAZnYW1lSWQBAAAADWdldEJldEVnZ3NLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAhfYmV0RWdncwEAAAAKZ2V0QmV0RWdncwAAAAEAAAAGZ2FtZUlkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAA1nZXRCZXRFZ2dzS2V5AAAAAQUAAAAGZ2FtZUlkAQAAAB1nZXRXYWl0aW5nRXhwaXJhdGlvbkhlaWdodEtleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAGF93YWl0aW5nRXhwaXJhdGlvbkhlaWdodAEAAAAaZ2V0V2FpdGluZ0V4cGlyYXRpb25IZWlnaHQAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAdZ2V0V2FpdGluZ0V4cGlyYXRpb25IZWlnaHRLZXkAAAABBQAAAAZnYW1lSWQBAAAAFmdldEV4cGlyYXRpb25IZWlnaHRLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAABFfZXhwaXJhdGlvbkhlaWdodAEAAAATZ2V0RXhwaXJhdGlvbkhlaWdodAAAAAEAAAAGZ2FtZUlkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABZnZXRFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkAQAAABFnZXRSYXJpdHlSYW5nZUtleQAAAAIAAAAGZ2FtZUlkAAAADXJhbmdlUG9zaXRpb24JAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAA1fcmFyaXR5UmFuZ2VfBQAAAA1yYW5nZVBvc2l0aW9uAQAAAA5nZXRSYXJpdHlSYW5nZQAAAAIAAAAGZ2FtZUlkAAAADXJhbmdlUG9zaXRpb24JAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEWdldFJhcml0eVJhbmdlS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1yYW5nZVBvc2l0aW9uAQAAAApnZXRTdGVwS2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAFX3N0ZXABAAAAB2dldFN0ZXAAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAKZ2V0U3RlcEtleQAAAAEFAAAABmdhbWVJZAEAAAAMZ2V0UmFyaXR5S2V5AAAAAwAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQAAAA1yYW5nZVBvc2l0aW9uCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAKcGxheWVyUm9sZQIAAAABXwUAAAANcmFuZ2VQb3NpdGlvbgIAAAAGUmFyaXR5AQAAAAlnZXRSYXJpdHkAAAADAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlAAAADXJhbmdlUG9zaXRpb24JAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAADGdldFJhcml0eUtleQAAAAMFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQUAAAANcmFuZ2VQb3NpdGlvbgEAAAAMZ2V0RHVja0lkS2V5AAAAAwAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQAAAA1yYW5nZVBvc2l0aW9uCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAKcGxheWVyUm9sZQIAAAABXwUAAAANcmFuZ2VQb3NpdGlvbgIAAAAGRHVja0lkAQAAAAlnZXREdWNrSWQAAAADAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlAAAADXJhbmdlUG9zaXRpb24JAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAMZ2V0RHVja0lkS2V5AAAAAwUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlBQAAAA1yYW5nZVBvc2l0aW9uAQAAAAxnZXRDb21taXRLZXkAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAApwbGF5ZXJSb2xlAgAAAAdfY29tbWl0AQAAAAlnZXRDb21taXQAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAADGdldENvbW1pdEtleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQEAAAAPZ2V0RHVja09yZGVyS2V5AAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAKcGxheWVyUm9sZQIAAAAKX2R1Y2tPcmRlcgEAAAAMZ2V0RHVja09yZGVyAAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAA9nZXREdWNrT3JkZXJLZXkAAAACBQAAAAZnYW1lSWQFAAAACnBsYXllclJvbGUBAAAAEGdldEdhbWVSZXN1bHRLZXkAAAACAAAABmdhbWVJZAAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAdfcmVzdWx0AQAAAA1nZXRHYW1lUmVzdWx0AAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABBnZXRHYW1lUmVzdWx0S2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzAQAAABBnZXRQbGF5ZXJXaW5zS2V5AAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIFAAAADXBsYXllckFkZHJlc3MCAAAABV93aW5zAQAAAA1nZXRQbGF5ZXJXaW5zAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABBnZXRQbGF5ZXJXaW5zS2V5AAAAAQUAAAANcGxheWVyQWRkcmVzcwEAAAARZ2V0UGxheWVyTG9zZXNLZXkAAAABAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgUAAAANcGxheWVyQWRkcmVzcwIAAAAGX2xvc2VzAQAAAA5nZXRQbGF5ZXJMb3NlcwAAAAEAAAANcGxheWVyQWRkcmVzcwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARZ2V0UGxheWVyTG9zZXNLZXkAAAABBQAAAA1wbGF5ZXJBZGRyZXNzAQAAABFnZXRQbGF5ZXJEcmF3c0tleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAZfZHJhd3MBAAAADmdldFBsYXllckRyYXdzAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABFnZXRQbGF5ZXJEcmF3c0tleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAAEWdldEdhbWVzUGxheWVkS2V5AAAAAAIAAAALZ2FtZXNQbGF5ZWQBAAAADmdldEdhbWVzUGxheWVkAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARZ2V0R2FtZXNQbGF5ZWRLZXkAAAAAAQAAAA5jaGVja0R1Y2tPd25lcgAAAAIAAAAMb3duZXJBZGRyZXNzAAAAB2Fzc2V0SWQJAABmAAAAAgkAA/AAAAACBQAAAAxvd25lckFkZHJlc3MFAAAAB2Fzc2V0SWQAAAAAAAAAAAABAAAACGdldFNjb3JlAAAAAgAAAAFhAAAAAWIDCQAAZgAAAAIFAAAAAWEFAAAAAWIAAAAAAAAAAAEDCQAAZgAAAAIFAAAAAWIFAAAAAWEA//////////8AAAAAAAAAAAABAAAACWdldFdpbm5lcgAAAAEAAAAGZ2FtZUlkBAAAAAhnYW1lU3RlcAkBAAAAB2dldFN0ZXAAAAABBQAAAAZnYW1lSWQDCQAAZgAAAAIAAAAAAAAAAAYFAAAACGdhbWVTdGVwBAAAABBleHBpcmF0aW9uSGVpZ2h0CQEAAAATZ2V0RXhwaXJhdGlvbkhlaWdodAAAAAEFAAAABmdhbWVJZAMJAAAAAAAAAgUAAAAQZXhwaXJhdGlvbkhlaWdodAAAAAAAAAAAAAkAAAIAAAABAgAAABNHYW1lIGlzIG5vdCBzdGFydGVk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cmluZ0VudHJ5AAAAAgkBAAAAC2dldE1ha2VyS2V5AAAAAQUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABBnZXRQbGF5ZXJSb2xlS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzAgAAAAVtYWtlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADWdldEJldEVnZ3NLZXkAAAABBQAAAAZnYW1lSWQFAAAABGVnZ3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABFnZXRSYXJpdHlSYW5nZUtleQAAAAIFAAAABmdhbWVJZAIAAAAFd29yc3QFAAAAEHJhcml0eVJhbmdlV29yc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABFnZXRSYXJpdHlSYW5nZUtleQAAAAIFAAAABmdhbWVJZAIAAAAGbWVkaXVtBQAAABFyYXJpdHlSYW5nZU1lZGl1bQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFJhcml0eVJhbmdlS2V5AAAAAgUAAAAGZ2FtZUlkAgAAAARiZXN0BQAAAA9yYXJpdHlSYW5nZUJlc3QJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAB1nZXRXYWl0aW5nRXhwaXJhdGlvbkhlaWdodEtleQAAAAEFAAAABmdhbWVJZAkAAGQAAAACBQAAAAZoZWlnaHQFAAAAB1dBSVRJTkcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAApnZXRTbG90S2V5AAAAAQUAAAAEc2xvdAUAAAAGZ2FtZUlkCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAAApuZXh0R2FtZUlkCQAAZAAAAAIFAAAABmdhbWVJZAAAAAAAAAAAAQUAAAADbmlsAAAAAWkBAAAACHRha2VHYW1lAAAAAQAAAARzbG90BAAAAA1jYWxsZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAABmdhbWVJZAkBAAAAB2dldFNsb3QAAAABBQAAAARzbG90BAAAAAdwYXltZW50CQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAwkBAAAAAiE9AAAAAgkBAAAAFGdldFBsYXllckN1cnJlbnRHYW1lAAAAAQUAAAANY2FsbGVyQWRkcmVzcwAAAAAAAAAAAAkAAAIAAAABAgAAAB9Zb3UgYWxyZWFkeSBoYXZlIGFuIGFjdGl2ZSBnYW1lAwMJAABmAAAAAgAAAAAAAAAAAAUAAAAEc2xvdAYJAABnAAAAAgUAAAAEc2xvdAUAAAAFU0xPVFMJAAACAAAAAQIAAAAMSW52YWxpZCBzbG90AwkAAAAAAAACCQEAAAAHZ2V0U2xvdAAAAAEFAAAABHNsb3QAAAAAAAAAAAAJAAACAAAAAQIAAAASVGhpcyBzbG90IGlzIGVtcHR5AwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAALZWdnc0Fzc2V0SWQJAAACAAAAAQkAASwAAAACAgAAADxZb3UgY2FuIGF0dGFjaCBvbmx5IEVHRyB0b2tlbnMgd2l0aCB0aGUgZm9sbG93aW5nIGFzc2V0IGlkOiAJAAJYAAAAAQUAAAALZWdnc0Fzc2V0SWQDCQEAAAACIT0AAAACCAUAAAAHcGF5bWVudAAAAAZhbW91bnQJAQAAAApnZXRCZXRFZ2dzAAAAAQUAAAAGZ2FtZUlkCQAAAgAAAAECAAAAGEluc3VmZmljaWVudCBlZ2dzIGFtb3VudAMJAABnAAAAAgUAAAAGaGVpZ2h0CQEAAAAaZ2V0V2FpdGluZ0V4cGlyYXRpb25IZWlnaHQAAAABBQAAAAZnYW1lSWQJAAACAAAAAQIAAAAUVGhpcyBnYW1lIGlzIGV4cGlyZWQJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADWNhbGxlckFkZHJlc3MFAAAABmdhbWVJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAALZ2V0VGFrZXJLZXkAAAABBQAAAAZnYW1lSWQFAAAADWNhbGxlckFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGdldFBsYXllclJvbGVLZXkAAAACBQAAAAZnYW1lSWQFAAAADWNhbGxlckFkZHJlc3MCAAAABXRha2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAKZ2V0U3RlcEtleQAAAAEFAAAABmdhbWVJZAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFmdldEV4cGlyYXRpb25IZWlnaHRLZXkAAAABBQAAAAZnYW1lSWQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAxzdGVwRHVyYXRpb24JAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAApnZXRTbG90S2V5AAAAAQUAAAAEc2xvdAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAALZ2FtZXNQbGF5ZWQJAABkAAAAAgkBAAAADmdldEdhbWVzUGxheWVkAAAAAAAAAAAAAAAAAQUAAAADbmlsAAAAAWkBAAAACGtpY2tHYW1lAAAAAQAAAARzbG90BAAAAAZnYW1lSWQJAQAAAAdnZXRTbG90AAAAAQUAAAAEc2xvdAMDCQAAZgAAAAIAAAAAAAAAAAAFAAAABHNsb3QGCQAAZwAAAAIFAAAABHNsb3QFAAAABVNMT1RTCQAAAgAAAAECAAAADEludmFsaWQgc2xvdAMJAAAAAAAAAgUAAAAGZ2FtZUlkAAAAAAAAAAAACQAAAgAAAAECAAAADVNsb3QgaXMgZW1wdHkDCQAAZgAAAAIJAQAAABpnZXRXYWl0aW5nRXhwaXJhdGlvbkhlaWdodAAAAAEFAAAABmdhbWVJZAUAAAAGaGVpZ2h0CQAAAgAAAAECAAAAG1dhaXRpbmcgaXMgbm90IGZpbmlzaGVkIHlldAQAAAAFbWFrZXIJAQAAAAhnZXRNYWtlcgAAAAEFAAAABmdhbWVJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAF2dldFBsYXllckN1cnJlbnRHYW1lS2V5AAAAAQUAAAAFbWFrZXIAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAApnZXRTbG90S2V5AAAAAQUAAAAEc2xvdAAAAAAAAAAAAAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAFbWFrZXIJAQAAAApnZXRCZXRFZ2dzAAAAAQUAAAAGZ2FtZUlkBQAAAAtlZ2dzQXNzZXRJZAUAAAADbmlsAAAAAWkBAAAACXBpY2tEdWNrcwAAAAMAAAALd29yc3REdWNrSWQAAAAMbWVkaXVtRHVja0lkAAAACmJlc3REdWNrSWQEAAAADWNhbGxlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGZ2FtZUlkCQEAAAAUZ2V0UGxheWVyQ3VycmVudEdhbWUAAAABBQAAAA1jYWxsZXJBZGRyZXNzBAAAAApwbGF5ZXJSb2xlCQEAAAANZ2V0UGxheWVyUm9sZQAAAAIFAAAABmdhbWVJZAUAAAANY2FsbGVyQWRkcmVzcwQAAAAIZ2FtZVN0ZXAJAQAAAAdnZXRTdGVwAAAAAQUAAAAGZ2FtZUlkBAAAABB3b3JzdFJhcml0eVJhbmdlCQEAAAAOZ2V0UmFyaXR5UmFuZ2UAAAACBQAAAAZnYW1lSWQCAAAABXdvcnN0BAAAABFtZWRpdW1SYXJpdHlSYW5nZQkBAAAADmdldFJhcml0eVJhbmdlAAAAAgUAAAAGZ2FtZUlkAgAAAAZtZWRpdW0EAAAAD2Jlc3RSYXJpdHlSYW5nZQkBAAAADmdldFJhcml0eVJhbmdlAAAAAgUAAAAGZ2FtZUlkAgAAAARiZXN0BAAAAA5pbnZva2VXb3JzdFJlcwkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEFAAAAFXJhcml0eVByb3ZpZGVyQWRkcmVzcwIAAAAOZ2V0QXNzZXRSYXJpdHkJAARMAAAAAgUAAAALd29yc3REdWNrSWQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAA5pbnZva2VXb3JzdFJlcwUAAAAOaW52b2tlV29yc3RSZXMEAAAAC3dvcnN0UmFyaXR5BAAAAAckbWF0Y2gwBQAAAA5pbnZva2VXb3JzdFJlcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFyBQAAAAckbWF0Y2gwBQAAAAFyCQAAAgAA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dHkGCQAAAAAAAAIFAAAADG1lZGl1bVJhcml0eQUAAAAKYmVzdFJhcml0eQkAAAIAAAABAgAAACNEdWNrcyBvZiB0aGUgc2FtZSByYXJpdHkgY2FuJ3QgcGxheQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGdldFJhcml0eUtleQAAAAMFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQIAAAAFd29yc3QFAAAAC3dvcnN0UmFyaXR5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAMZ2V0UmFyaXR5S2V5AAAAAwUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlAgAAAAZtZWRpdW0FAAAADG1lZGl1bVJhcml0eQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADGdldFJhcml0eUtleQAAAAMFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQIAAAAEYmVzdAUAAAAKYmVzdFJhcml0eQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAMZ2V0RHVja0lkS2V5AAAAAwUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlAgAAAAV3b3JzdAUAAAALd29yc3REdWNrSWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGdldER1Y2tJZEtleQAAAAMFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQIAAAAGbWVkaXVtBQAAAAxtZWRpdW1EdWNrSWQJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGdldER1Y2tJZEtleQAAAAMFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQIAAAAEYmVzdAUAAAAKYmVzdER1Y2tJZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmdldFN0ZXBLZXkAAAABBQAAAAZnYW1lSWQJAABkAAAAAgUAAAAIZ2FtZVN0ZXAAAAAAAAAAAAEJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABZnZXRFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkCQAAZAAAAAIFAAAABmhlaWdodAUAAAAM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BAAAAAZnYW1lSWQJAQAAABRnZXRQbGF5ZXJDdXJyZW50R2FtZQAAAAEFAAAADWNhbGxlckFkZHJlc3MEAAAACnBsYXllclJvbGUJAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzBAAAABRhbm90aGVyUGxheWVyQWRkcmVzcwMJAAAAAAAAAgUAAAAKcGxheWVyUm9sZQIAAAAFbWFrZXIJAQAAAAhnZXRUYWtlcgAAAAEFAAAABmdhbWVJZAkBAAAACGdldE1ha2VyAAAAAQUAAAAGZ2FtZUlkBAAAAAZ3aW5uZXIJAQAAAAlnZXRXaW5uZXIAAAABBQAAAAZnYW1lSWQDCQAAAAAAAAIFAAAABmdhbWVJZAAAAAAAAAAAAAkAAAIAAAABAgAAAB1Zb3UgZG9uJ3QgaGF2ZSBhbiBhY3RpdmUgZ2FtZQMJAAAAAAAAAgUAAAAGd2lubmVyBQAAAApwbGF5ZXJSb2xlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXZ2V0UGxheWVyQ3VycmVudEdhbWVLZXkAAAABBQAAAA1jYWxsZXJBZGRyZXNzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXZ2V0UGxheWVyQ3VycmVudEdhbWVLZXkAAAABBQAAABRhbm90aGVyUGxheWVyQWRkcmVzcwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEGdldFBsYXllcldpbnNLZXkAAAABBQAAAA1jYWxsZXJBZGRyZXNzCQAAZAAAAAIJAQAAAA1nZXRQbGF5ZXJXaW5zAAAAAQUAAAANY2FsbGVyQWRkcmVzcwAAAAAAAAAAAQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFBsYXllckxvc2VzS2V5AAAAAQUAAAAUYW5vdGhlclBsYXllckFkZHJlc3MJAABkAAAAAgkBAAAADmdldFBsYXllckxvc2VzAAAAAQUAAAAUYW5vdGhlclBsYXllckFkZHJlc3MAAAAAAAAAAAEJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGdldEdhbWVSZXN1bHRLZXkAAAACBQAAAAZnYW1lSWQFAAAADWNhbGxlckFkZHJlc3MCAAAAA3dpbgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQZ2V0R2FtZVJlc3VsdEtleQAAAAIFAAAABmdhbWVJZAUAAAAUYW5vdGhlclBsYXllckFkZHJlc3MCAAAABGxvc2UJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyCQAAaAAAAAIJAQAAAApnZXRCZXRFZ2dzAAAAAQUAAAAGZ2FtZUlkAAAAAAAAAAACBQAAAAtlZ2dzQXNzZXRJZAUAAAADbmlsAwkAAAAAAAACBQAAAAZ3aW5uZXICAAAABGRyYXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADWNhbGxlckFkZHJlc3MAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABFnZXRQbGF5ZXJEcmF3c0tleQAAAAEFAAAADWNhbGxlckFkZHJlc3MJAABkAAAAAgkBAAAADmdldFBsYXllckRyYXdzAAAAAQUAAAANY2FsbGVyQWRkcmVzcwAAAAAAAAAAAQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAQZ2V0R2FtZVJlc3VsdEtleQAAAAIFAAAABmdhbWVJZAUAAAANY2FsbGVyQWRkcmVzcwIAAAAEZHJhdwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAQAAAApnZXRCZXRFZ2dzAAAAAQUAAAAGZ2FtZUlkBQAAAAtlZ2dzQXNzZXRJZAUAAAADbmlsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXZ2V0UGxheWVyQ3VycmVudEdhbWVLZXkAAAABBQAAAA1jYWxsZXJBZGRyZXNzAAAAAAAAAAAABQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleaF4Ff4=", "height": 1695610, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: C79JPnYjxsGb6TbtibisTo5i1U9enaLp5PiZmrGcXYth Next: 36mz51n2TdDLiidgd9yAoxygkhgXpmHgjoNUcbbR4QkC Diff:
OldNewDifferences
55
66 let b = base58'3N285kYUMxPi6oZsdWrxhSY34dJHyu4kRN5'
77
8-let c = base58'3VUCuh9dWqe54SdzzNUkXhFXpc8UQynnJVh42B7MjNzN'
8+let c = base58'3NCman4dCzk1HWWU4DPTr5rsbhvuUCwwUZh'
99
10-let d = 10
10+let d = base58'3VUCuh9dWqe54SdzzNUkXhFXpc8UQynnJVh42B7MjNzN'
1111
12-let e = 8
12+let e = 10
1313
14-let f = 5
14+let f = 8
1515
16-func g (h) = {
17- let i = getInteger(this, h)
18- if ($isInstanceOf(i, "Int"))
16+let g = 5
17+
18+func h (i) = {
19+ let j = getInteger(this, i)
20+ if ($isInstanceOf(j, "Int"))
1921 then {
20- let j = i
21- j
22+ let k = j
23+ k
2224 }
2325 else 0
2426 }
2527
2628
27-func k (h) = {
28- let i = getString(this, h)
29- if ($isInstanceOf(i, "String"))
29+func l (i) = {
30+ let j = getString(this, i)
31+ if ($isInstanceOf(j, "String"))
3032 then {
31- let l = i
32- l
33+ let m = j
34+ m
3335 }
3436 else ""
3537 }
3638
3739
38-func m (h) = {
39- let i = getBoolean(this, h)
40- if ($isInstanceOf(i, "Boolean"))
40+func n (i) = {
41+ let j = getBoolean(this, i)
42+ if ($isInstanceOf(j, "Boolean"))
4143 then {
42- let j = i
43- j
44+ let k = j
45+ k
4446 }
4547 else false
4648 }
4749
4850
49-func n () = {
50- let o = g("nextGameId")
51- if ((o == 0))
51+func o () = {
52+ let p = h("nextGameId")
53+ if ((p == 0))
5254 then 1
53- else o
55+ else p
5456 }
5557
5658
57-func p (q) = (q + "_currentGame")
59+func q (r) = (r + "_currentGame")
5860
5961
60-func r (q) = g(p(q))
62+func s (r) = h(q(r))
6163
6264
63-func s (t) = ("slot" + toString(t))
65+func t (u) = ("slot" + toString(u))
6466
6567
66-func u (t) = g(s(t))
68+func v (u) = h(t(u))
6769
6870
69-func v (w,q) = ((("game" + toString(w)) + "_") + q)
71+func w (x,r) = ((("game" + toString(x)) + "_") + r)
7072
7173
72-func x (w,q) = k(v(w, q))
74+func y (x,r) = l(w(x, r))
7375
7476
75-func y (w) = (("game" + toString(w)) + "_maker")
77+func z (x) = (("game" + toString(x)) + "_maker")
7678
7779
78-func z (w) = k(y(w))
80+func A (x) = l(z(x))
7981
8082
81-func A (w) = (("game" + toString(w)) + "_taker")
83+func B (x) = (("game" + toString(x)) + "_taker")
8284
8385
84-func B (w) = k(A(w))
86+func C (x) = l(B(x))
8587
8688
87-func C (w) = (("game" + toString(w)) + "_betEggs")
89+func D (x) = (("game" + toString(x)) + "_betEggs")
8890
8991
90-func D (w) = g(C(w))
92+func E (x) = h(D(x))
9193
9294
93-func E (w) = (("game" + toString(w)) + "_waitingExpirationHeight")
95+func F (x) = (("game" + toString(x)) + "_waitingExpirationHeight")
9496
9597
96-func F (w) = g(E(w))
98+func G (x) = h(F(x))
9799
98100
99-func G (w) = (("game" + toString(w)) + "_expirationHeight")
101+func H (x) = (("game" + toString(x)) + "_expirationHeight")
100102
101103
102-func H (w) = g(G(w))
104+func I (x) = h(H(x))
103105
104106
105-func I (w,J) = ((("game" + toString(w)) + "_rarityRange_") + J)
107+func J (x,K) = ((("game" + toString(x)) + "_rarityRange_") + K)
106108
107109
108-func K (w,J) = g(I(w, J))
110+func L (x,K) = h(J(x, K))
109111
110112
111-func L (w) = (("game" + toString(w)) + "_step")
113+func M (x) = (("game" + toString(x)) + "_step")
112114
113115
114-func M (w) = g(L(w))
116+func N (x) = h(M(x))
115117
116118
117-func N (w,O,J) = (((((("game" + toString(w)) + "_") + O) + "_") + J) + "Rarity")
119+func O (x,P,K) = (((((("game" + toString(x)) + "_") + P) + "_") + K) + "Rarity")
118120
119121
120-func P (w,O,J) = g(N(w, O, J))
122+func Q (x,P,K) = h(O(x, P, K))
121123
122124
123-func Q (w,O,J) = (((((("game" + toString(w)) + "_") + O) + "_") + J) + "DuckId")
125+func R (x,P,K) = (((((("game" + toString(x)) + "_") + P) + "_") + K) + "DuckId")
124126
125127
126-func R (w,O,J) = k(Q(w, O, J))
128+func S (x,P,K) = l(R(x, P, K))
127129
128130
129-func S (w,O) = (((("game" + toString(w)) + "_") + O) + "_commit")
131+func T (x,P) = (((("game" + toString(x)) + "_") + P) + "_commit")
130132
131133
132-func T (w,O) = k(S(w, O))
134+func U (x,P) = l(T(x, P))
133135
134136
135-func U (w,O) = (((("game" + toString(w)) + "_") + O) + "_duckOrder")
137+func V (x,P) = (((("game" + toString(x)) + "_") + P) + "_duckOrder")
136138
137139
138-func V (w,O) = k(U(w, O))
140+func W (x,P) = l(V(x, P))
139141
140142
141-func W (q) = (q + "_wins")
143+func X (x,r) = (((("game" + toString(x)) + "_") + r) + "_result")
142144
143145
144-func X (q) = g(W(q))
146+func Y (x,r) = l(X(x, r))
145147
146148
147-func Y (q) = (q + "_loses")
149+func Z (r) = (r + "_wins")
148150
149151
150-func Z (q) = g(Y(q))
152+func aa (r) = h(Z(r))
151153
152154
153-func aa (q) = (q + "_draws")
155+func ab (r) = (r + "_loses")
154156
155157
156-func ab (q) = g(aa(q))
158+func ac (r) = h(ab(r))
157159
158160
159-func ac () = "gamesPlayed"
161+func ad (r) = (r + "_draws")
160162
161163
162-func ad () = g(ac())
164+func ae (r) = h(ad(r))
163165
164166
165-func ae (af,ag) = if ((ag == "A"))
166- then (af + 1)
167- else (af + 0)
167+func af () = "gamesPlayed"
168168
169169
170-func ah (af,ag) = if ((ag == "B"))
171- then (af + 1)
172- else (af + 0)
170+func ag () = h(af())
173171
174172
175-func ai (af,ag) = if ((ag == "C"))
176- then (af + 1)
177- else (af + 0)
173+func ah (ai,aj) = (assetBalance(ai, aj) > 0)
178174
179175
180-func aj (af,ag) = if ((ag == "D"))
181- then (af + 1)
182- else (af + 0)
183-
184-
185-func ak (af,ag) = if ((ag == "E"))
186- then (af + 1)
187- else (af + 0)
188-
189-
190-func al (af,ag) = if ((ag == "F"))
191- then (af + 1)
192- else (af + 0)
193-
194-
195-func am (af,ag) = if ((ag == "G"))
196- then (af + 1)
197- else (af + 0)
198-
199-
200-func an (af,ag) = if ((ag == "H"))
201- then (af + 1)
202- else (af + 0)
203-
204-
205-func ao (ap) = if (contains(ap, "0"))
206- then ""
207- else ap
208-
209-
210-func aq (ar) = {
211- let as = split(dropRight(drop(ar, 5), 3), "")
212- (((((((ao((toString({
213- let at = as
214- let au = size(at)
215- let av = 0
216- if ((au == 0))
217- then av
218- else {
219- let aw = ae(av, at[0])
220- if ((au == 1))
221- then aw
222- else {
223- let ax = ae(aw, at[1])
224- if ((au == 2))
225- then ax
226- else {
227- let ay = ae(ax, at[2])
228- if ((au == 3))
229- then ay
230- else {
231- let az = ae(ay, at[3])
232- if ((au == 4))
233- then az
234- else {
235- let aA = ae(az, at[4])
236- if ((au == 5))
237- then aA
238- else {
239- let aB = ae(aA, at[5])
240- if ((au == 6))
241- then aB
242- else {
243- let aC = ae(aB, at[6])
244- if ((au == 7))
245- then aC
246- else {
247- let aD = ae(aC, at[7])
248- if ((au == 8))
249- then aD
250- else {
251- let aE = ae(aD, at[8])
252- throw("List size exceed 8")
253- }
254- }
255- }
256- }
257- }
258- }
259- }
260- }
261- }
262- }) + "A")) + ao((toString({
263- let aF = as
264- let aG = size(aF)
265- let aH = 0
266- if ((aG == 0))
267- then aH
268- else {
269- let aI = ah(aH, aF[0])
270- if ((aG == 1))
271- then aI
272- else {
273- let aJ = ah(aI, aF[1])
274- if ((aG == 2))
275- then aJ
276- else {
277- let aK = ah(aJ, aF[2])
278- if ((aG == 3))
279- then aK
280- else {
281- let aL = ah(aK, aF[3])
282- if ((aG == 4))
283- then aL
284- else {
285- let aM = ah(aL, aF[4])
286- if ((aG == 5))
287- then aM
288- else {
289- let aN = ah(aM, aF[5])
290- if ((aG == 6))
291- then aN
292- else {
293- let aO = ah(aN, aF[6])
294- if ((aG == 7))
295- then aO
296- else {
297- let aP = ah(aO, aF[7])
298- if ((aG == 8))
299- then aP
300- else {
301- let aQ = ah(aP, aF[8])
302- throw("List size exceed 8")
303- }
304- }
305- }
306- }
307- }
308- }
309- }
310- }
311- }
312- }) + "B"))) + ao((toString({
313- let aR = as
314- let aS = size(aR)
315- let aT = 0
316- if ((aS == 0))
317- then aT
318- else {
319- let aU = ai(aT, aR[0])
320- if ((aS == 1))
321- then aU
322- else {
323- let aV = ai(aU, aR[1])
324- if ((aS == 2))
325- then aV
326- else {
327- let aW = ai(aV, aR[2])
328- if ((aS == 3))
329- then aW
330- else {
331- let aX = ai(aW, aR[3])
332- if ((aS == 4))
333- then aX
334- else {
335- let aY = ai(aX, aR[4])
336- if ((aS == 5))
337- then aY
338- else {
339- let aZ = ai(aY, aR[5])
340- if ((aS == 6))
341- then aZ
342- else {
343- let ba = ai(aZ, aR[6])
344- if ((aS == 7))
345- then ba
346- else {
347- let bb = ai(ba, aR[7])
348- if ((aS == 8))
349- then bb
350- else {
351- let bc = ai(bb, aR[8])
352- throw("List size exceed 8")
353- }
354- }
355- }
356- }
357- }
358- }
359- }
360- }
361- }
362- }) + "C"))) + ao((toString({
363- let bd = as
364- let be = size(bd)
365- let bf = 0
366- if ((be == 0))
367- then bf
368- else {
369- let bg = aj(bf, bd[0])
370- if ((be == 1))
371- then bg
372- else {
373- let bh = aj(bg, bd[1])
374- if ((be == 2))
375- then bh
376- else {
377- let bi = aj(bh, bd[2])
378- if ((be == 3))
379- then bi
380- else {
381- let bj = aj(bi, bd[3])
382- if ((be == 4))
383- then bj
384- else {
385- let bk = aj(bj, bd[4])
386- if ((be == 5))
387- then bk
388- else {
389- let bl = aj(bk, bd[5])
390- if ((be == 6))
391- then bl
392- else {
393- let bm = aj(bl, bd[6])
394- if ((be == 7))
395- then bm
396- else {
397- let bn = aj(bm, bd[7])
398- if ((be == 8))
399- then bn
400- else {
401- let bo = aj(bn, bd[8])
402- throw("List size exceed 8")
403- }
404- }
405- }
406- }
407- }
408- }
409- }
410- }
411- }
412- }) + "D"))) + ao((toString({
413- let bp = as
414- let bq = size(bp)
415- let br = 0
416- if ((bq == 0))
417- then br
418- else {
419- let bs = ak(br, bp[0])
420- if ((bq == 1))
421- then bs
422- else {
423- let bt = ak(bs, bp[1])
424- if ((bq == 2))
425- then bt
426- else {
427- let bu = ak(bt, bp[2])
428- if ((bq == 3))
429- then bu
430- else {
431- let bv = ak(bu, bp[3])
432- if ((bq == 4))
433- then bv
434- else {
435- let bw = ak(bv, bp[4])
436- if ((bq == 5))
437- then bw
438- else {
439- let bx = ak(bw, bp[5])
440- if ((bq == 6))
441- then bx
442- else {
443- let by = ak(bx, bp[6])
444- if ((bq == 7))
445- then by
446- else {
447- let bz = ak(by, bp[7])
448- if ((bq == 8))
449- then bz
450- else {
451- let bA = ak(bz, bp[8])
452- throw("List size exceed 8")
453- }
454- }
455- }
456- }
457- }
458- }
459- }
460- }
461- }
462- }) + "E"))) + ao((toString({
463- let bB = as
464- let bC = size(bB)
465- let bD = 0
466- if ((bC == 0))
467- then bD
468- else {
469- let bE = al(bD, bB[0])
470- if ((bC == 1))
471- then bE
472- else {
473- let bF = al(bE, bB[1])
474- if ((bC == 2))
475- then bF
476- else {
477- let bG = al(bF, bB[2])
478- if ((bC == 3))
479- then bG
480- else {
481- let bH = al(bG, bB[3])
482- if ((bC == 4))
483- then bH
484- else {
485- let bI = al(bH, bB[4])
486- if ((bC == 5))
487- then bI
488- else {
489- let bJ = al(bI, bB[5])
490- if ((bC == 6))
491- then bJ
492- else {
493- let bK = al(bJ, bB[6])
494- if ((bC == 7))
495- then bK
496- else {
497- let bL = al(bK, bB[7])
498- if ((bC == 8))
499- then bL
500- else {
501- let bM = al(bL, bB[8])
502- throw("List size exceed 8")
503- }
504- }
505- }
506- }
507- }
508- }
509- }
510- }
511- }
512- }) + "F"))) + ao((toString({
513- let bN = as
514- let bO = size(bN)
515- let bP = 0
516- if ((bO == 0))
517- then bP
518- else {
519- let bQ = am(bP, bN[0])
520- if ((bO == 1))
521- then bQ
522- else {
523- let bR = am(bQ, bN[1])
524- if ((bO == 2))
525- then bR
526- else {
527- let bS = am(bR, bN[2])
528- if ((bO == 3))
529- then bS
530- else {
531- let bT = am(bS, bN[3])
532- if ((bO == 4))
533- then bT
534- else {
535- let bU = am(bT, bN[4])
536- if ((bO == 5))
537- then bU
538- else {
539- let bV = am(bU, bN[5])
540- if ((bO == 6))
541- then bV
542- else {
543- let bW = am(bV, bN[6])
544- if ((bO == 7))
545- then bW
546- else {
547- let bX = am(bW, bN[7])
548- if ((bO == 8))
549- then bX
550- else {
551- let bY = am(bX, bN[8])
552- throw("List size exceed 8")
553- }
554- }
555- }
556- }
557- }
558- }
559- }
560- }
561- }
562- }) + "G"))) + ao((toString({
563- let bZ = as
564- let ca = size(bZ)
565- let cb = 0
566- if ((ca == 0))
567- then cb
568- else {
569- let cc = an(cb, bZ[0])
570- if ((ca == 1))
571- then cc
572- else {
573- let cd = an(cc, bZ[1])
574- if ((ca == 2))
575- then cd
576- else {
577- let ce = an(cd, bZ[2])
578- if ((ca == 3))
579- then ce
580- else {
581- let cf = an(ce, bZ[3])
582- if ((ca == 4))
583- then cf
584- else {
585- let cg = an(cf, bZ[4])
586- if ((ca == 5))
587- then cg
588- else {
589- let ch = an(cg, bZ[5])
590- if ((ca == 6))
591- then ch
592- else {
593- let ci = an(ch, bZ[6])
594- if ((ca == 7))
595- then ci
596- else {
597- let cj = an(ci, bZ[7])
598- if ((ca == 8))
599- then cj
600- else {
601- let ck = an(cj, bZ[8])
602- throw("List size exceed 8")
603- }
604- }
605- }
606- }
607- }
608- }
609- }
610- }
611- }
612- }) + "H")))
613- }
614-
615-
616-func cl (cm) = if ((cm == "G"))
617- then a
618- else b
619-
620-
621-func cn (co) = if (if ((value(assetInfo(co)).issuer == Address(b)))
622- then true
623- else (value(assetInfo(co)).issuer == Address(a)))
624- then {
625- let ar = value(assetInfo(co)).name
626- let cm = take(takeRight(ar, 2), 1)
627- let cp = ((aq(ar) + "-") + cm)
628- let cq = getIntegerValue(Address(cl(cm)), (("stats_" + cp) + "_quantity"))
629- let cr = pow((10000 / cq), 4, 5, 1, 2, FLOOR)
630- if ((cr > 0))
631- then cr
632- else 2
633- }
634- else throw("not valid NFT")
635-
636-
637-func cs (l,j) = if ((l > j))
176+func ak (m,k) = if ((m > k))
638177 then 1
639- else if ((j > l))
178+ else if ((k > m))
640179 then -1
641180 else 0
642181
643182
644-func ct (w) = {
645- let cu = M(w)
646- if ((6 > cu))
183+func al (x) = {
184+ let am = N(x)
185+ if ((6 > am))
647186 then {
648- let cv = H(w)
649- if ((cv == 0))
187+ let an = I(x)
188+ if ((an == 0))
650189 then throw("Game is not started")
651- else if ((cv > height))
190+ else if ((an > height))
652191 then throw("Game is not finished or expired")
653- else if (((M(w) % 2) == 0))
192+ else if (((N(x) % 2) == 0))
654193 then "maker"
655194 else "taker"
656195 }
657196 else {
658- let cw = split(V(w, "maker"), ",")
659- let cx = split(V(w, "taker"), ",")
660- let cy = P(w, "maker", cw[0])
661- let cz = P(w, "maker", cw[1])
662- let cA = P(w, "maker", cw[2])
663- let cB = P(w, "taker", cx[0])
664- let cC = P(w, "taker", cx[1])
665- let cD = P(w, "taker", cx[2])
666- let cE = ((cs(cy, cB) + cs(cz, cC)) + cs(cA, cD))
667- if ((cE > 0))
197+ let ao = split(W(x, "maker"), ",")
198+ let ap = split(W(x, "taker"), ",")
199+ let aq = Q(x, "maker", ao[0])
200+ let ar = Q(x, "maker", ao[1])
201+ let as = Q(x, "maker", ao[2])
202+ let at = Q(x, "taker", ap[0])
203+ let au = Q(x, "taker", ap[1])
204+ let av = Q(x, "taker", ap[2])
205+ let aw = ((ak(aq, at) + ak(ar, au)) + ak(as, av))
206+ if ((aw > 0))
668207 then "maker"
669- else if ((0 > cE))
208+ else if ((0 > aw))
670209 then "taker"
671210 else "draw"
672211 }
673212 }
674213
675214
676-@Callable(cF)
677-func makeGame (t,cG,cH,cI) = {
678- let cJ = toBase58String(cF.caller.bytes)
679- let cK = u(t)
680- let cL = value(cF.payments[0])
681- let cM = cL.amount
682- let w = n()
683- if ((r(cJ) != 0))
215+@Callable(ax)
216+func makeGame (u,ay,az,aA) = {
217+ let aB = toBase58String(ax.caller.bytes)
218+ let aC = v(u)
219+ let aD = value(ax.payments[0])
220+ let aE = aD.amount
221+ let x = o()
222+ if ((s(aB) != 0))
684223 then throw("You already have an active game")
685- else if (if ((0 > t))
224+ else if (if ((0 > u))
686225 then true
687- else (t >= d))
226+ else (u >= e))
688227 then throw("Invalid slot")
689- else if ((cK != 0))
228+ else if ((aC != 0))
690229 then throw("This slot is busy")
691- else if ((cL.assetId != c))
692- then throw(("You can attach only EGGs with the following asset id: " + toBase58String(c)))
693- else if ((cM != 1))
230+ else if ((aD.assetId != d))
231+ then throw(("You can attach only EGGs with the following asset id: " + toBase58String(d)))
232+ else if ((aE != 1))
694233 then throw("Bet must be 0.01 EGG during beta test")
695- else if (if ((1 > cG))
234+ else if (if ((1 > ay))
696235 then true
697- else (cG > 5))
236+ else (ay > 5))
698237 then throw("Invalid rarity range for the worst duck")
699- else if (if ((1 > cH))
238+ else if (if ((1 > az))
700239 then true
701- else (cH > 5))
240+ else (az > 5))
702241 then throw("Invalid rarity range for the medium duck")
703- else if (if ((1 > cI))
242+ else if (if ((1 > aA))
704243 then true
705- else (cI > 5))
244+ else (aA > 5))
706245 then throw("Invalid rarity range for the best duck")
707- else if ((cG >= cH))
708- then throw("The medium duck must be better than the worst one")
709- else if ((cH >= cI))
710- then throw("The best duck must be better than the medium one")
711- else [IntegerEntry(p(cJ), w), StringEntry(y(w), cJ), StringEntry(v(w, cJ), "maker"), IntegerEntry(C(w), cM), IntegerEntry(I(w, "worst"), cG), IntegerEntry(I(w, "medium"), cH), IntegerEntry(I(w, "best"), cI), IntegerEntry(E(w), (height + e)), IntegerEntry(s(t), w), IntegerEntry("nextGameId", (w + 1))]
246+ else if ((ay > az))
247+ then throw("The medium range can't be less than the worst one")
248+ else if ((az > aA))
249+ then throw("The best range can't be worse than the medium one")
250+ else [IntegerEntry(q(aB), x), StringEntry(z(x), aB), StringEntry(w(x, aB), "maker"), IntegerEntry(D(x), aE), IntegerEntry(J(x, "worst"), ay), IntegerEntry(J(x, "medium"), az), IntegerEntry(J(x, "best"), aA), IntegerEntry(F(x), (height + f)), IntegerEntry(t(u), x), IntegerEntry("nextGameId", (x + 1))]
712251 }
713252
714253
715254
716-@Callable(cF)
717-func takeGame (t) = {
718- let cJ = toBase58String(cF.caller.bytes)
719- let w = u(t)
720- let cL = value(cF.payments[0])
721- if ((r(cJ) != 0))
255+@Callable(ax)
256+func takeGame (u) = {
257+ let aB = toBase58String(ax.caller.bytes)
258+ let x = v(u)
259+ let aD = value(ax.payments[0])
260+ if ((s(aB) != 0))
722261 then throw("You already have an active game")
723- else if (if ((0 > t))
262+ else if (if ((0 > u))
724263 then true
725- else (t >= d))
264+ else (u >= e))
726265 then throw("Invalid slot")
727- else if ((u(t) == 0))
266+ else if ((v(u) == 0))
728267 then throw("This slot is empty")
729- else if ((cL.assetId != c))
730- then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(c)))
731- else if ((cL.amount != D(w)))
268+ else if ((aD.assetId != d))
269+ then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(d)))
270+ else if ((aD.amount != E(x)))
732271 then throw("Insufficient eggs amount")
733- else if ((height >= F(w)))
272+ else if ((height >= G(x)))
734273 then throw("This game is expired")
735- else [IntegerEntry(p(cJ), w), StringEntry(A(w), cJ), StringEntry(v(w, cJ), "taker"), IntegerEntry(L(w), 0), IntegerEntry(G(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (ad() + 1))]
274+ else [IntegerEntry(q(aB), x), StringEntry(B(x), aB), StringEntry(w(x, aB), "taker"), IntegerEntry(M(x), 0), IntegerEntry(H(x), (height + g)), IntegerEntry(t(u), 0), IntegerEntry("gamesPlayed", (ag() + 1))]
736275 }
737276
738277
739278
740-@Callable(cF)
741-func kickGame (t) = {
742- let w = u(t)
743- if (if ((0 > t))
279+@Callable(ax)
280+func kickGame (u) = {
281+ let x = v(u)
282+ if (if ((0 > u))
744283 then true
745- else (t >= d))
284+ else (u >= e))
746285 then throw("Invalid slot")
747- else if ((w == 0))
286+ else if ((x == 0))
748287 then throw("Slot is empty")
749- else if ((F(w) > height))
288+ else if ((G(x) > height))
750289 then throw("Waiting is not finished yet")
751290 else {
752- let cN = z(w)
753-[IntegerEntry(p(cN), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(cN)), D(w), c)]
291+ let aF = A(x)
292+[IntegerEntry(q(aF), 0), IntegerEntry(t(u), 0), ScriptTransfer(Address(fromBase58String(aF)), E(x), d)]
754293 }
755294 }
756295
757296
758297
759-@Callable(cF)
760-func pickDucks () = {
761- let cJ = toBase58String(cF.caller.bytes)
762- let w = r(cJ)
763- let O = x(w, cJ)
764- let cu = M(w)
765- let cO = K(w, "worst")
766- let cP = K(w, "medium")
767- let cQ = K(w, "best")
768- let cR = value(value(cF.payments[0]).assetId)
769- let cS = value(value(cF.payments[1]).assetId)
770- let cT = value(value(cF.payments[2]).assetId)
771- let cU = cn(cR)
772- let cV = cn(cS)
773- let cW = cn(cT)
774- if ((w == 0))
775- then throw("You don't have an active game")
776- else if ((H(w) == 0))
777- then throw("Game is not started")
778- else if (if ((cu == 0))
779- then (O != "taker")
780- else false)
781- then throw("It is the taker's turn to pick now")
782- else if (if ((cu == 1))
783- then (O != "maker")
784- else false)
785- then throw("It is the maker's turn to pick now")
786- else if ((cu > 1))
787- then throw("Ducks have already been picked")
788- else if (if ((cU > (cO * 10)))
789- then true
790- else (((cO - 1) * 10) >= cU))
791- then throw("Worst duck doesn't fit rarity range")
792- else if (if ((cV > (cP * 10)))
793- then true
794- else (((cP - 1) * 10) >= cV))
795- then throw("Medium duck doesn't fit rarity range")
796- else if (if (if (if ((cQ == 5))
797- then (40 >= cW)
798- else false)
799- then true
800- else (cW > (cQ * 10)))
801- then true
802- else (((cQ - 1) * 10) >= cW))
803- then throw("Best duck doesn't fit rarity range")
804- else [IntegerEntry(N(w, O, "worst"), cU), IntegerEntry(N(w, O, "medium"), cV), IntegerEntry(N(w, O, "best"), cW), StringEntry(Q(w, O, "worst"), toBase58String(cR)), StringEntry(Q(w, O, "medium"), toBase58String(cS)), StringEntry(Q(w, O, "best"), toBase58String(cT)), IntegerEntry(L(w), (cu + 1)), IntegerEntry(G(w), (height + f)), ScriptTransfer(cF.caller, 1, cR), ScriptTransfer(cF.caller, 1, cS), ScriptTransfer(cF.caller, 1, cT)]
298+@Callable(ax)
299+func pickDucks (aG,aH,aI) = {
300+ let aB = toBase58String(ax.caller.bytes)
301+ let x = s(aB)
302+ let P = y(x, aB)
303+ let am = N(x)
304+ let aJ = L(x, "worst")
305+ let aK = L(x, "medium")
306+ let aL = L(x, "best")
307+ let aM = invoke(Address(c), "getAssetRarity", [aG], nil)
308+ if ((aM == aM))
309+ then {
310+ let aN = {
311+ let j = aM
312+ if ($isInstanceOf(j, "Int"))
313+ then {
314+ let aO = j
315+ aO
316+ }
317+ else throw("Incorrect invoke result")
318+ }
319+ let aP = invoke(Address(c), "getAssetRarity", [aH], nil)
320+ if ((aP == aP))
321+ then {
322+ let aQ = {
323+ let j = aP
324+ if ($isInstanceOf(j, "Int"))
325+ then {
326+ let aO = j
327+ aO
328+ }
329+ else throw("Incorrect invoke result")
330+ }
331+ let aR = invoke(Address(c), "getAssetRarity", [aI], nil)
332+ if ((aR == aR))
333+ then {
334+ let aS = {
335+ let j = aM
336+ if ($isInstanceOf(j, "Int"))
337+ then {
338+ let aO = j
339+ aO
340+ }
341+ else throw("Incorrect invoke result")
342+ }
343+ if ((x == 0))
344+ then throw("You don't have an active game")
345+ else if ((I(x) == 0))
346+ then throw("Game is not started")
347+ else if (if ((am == 0))
348+ then (P != "taker")
349+ else false)
350+ then throw("It is the taker's turn to pick now")
351+ else if (if ((am == 1))
352+ then (P != "maker")
353+ else false)
354+ then throw("It is the maker's turn to pick now")
355+ else if ((am > 1))
356+ then throw("Ducks have already been picked")
357+ else if (ah(ax.caller, fromBase58String(aG)))
358+ then throw((("Asset " + aG) + " doesn't belong to you"))
359+ else if (ah(ax.caller, fromBase58String(aH)))
360+ then throw((("Asset " + aH) + " doesn't belong to you"))
361+ else if (ah(ax.caller, fromBase58String(aI)))
362+ then throw((("Asset " + aI) + " doesn't belong to you"))
363+ else if (if ((5 > aJ))
364+ then if ((aN > (aJ * 10)))
365+ then true
366+ else (((aJ - 1) * 10) >= aN)
367+ else false)
368+ then throw("Worst duck doesn't fit rarity range")
369+ else if (if ((5 > aK))
370+ then if ((aQ > (aK * 10)))
371+ then true
372+ else (((aK - 1) * 10) >= aQ)
373+ else false)
374+ then throw("Medium duck doesn't fit rarity range")
375+ else if (if ((5 > aL))
376+ then if ((aS > (aL * 10)))
377+ then true
378+ else (((aL - 1) * 10) >= aS)
379+ else false)
380+ then throw("Best duck doesn't fit rarity range")
381+ else if (if ((aJ == 5))
382+ then (40 >= aN)
383+ else false)
384+ then throw("Worst duck doesn't fit rarity range")
385+ else if (if ((aK == 5))
386+ then (40 >= aQ)
387+ else false)
388+ then throw("Medium duck doesn't fit rarity range")
389+ else if (if ((aL == 5))
390+ then (40 >= aS)
391+ else false)
392+ then throw("Best duck doesn't fit rarity range")
393+ else if (if (if ((aN == aQ))
394+ then true
395+ else (aN == aS))
396+ then true
397+ else (aQ == aS))
398+ then throw("Ducks of the same rarity can't play")
399+ else [IntegerEntry(O(x, P, "worst"), aN), IntegerEntry(O(x, P, "medium"), aQ), IntegerEntry(O(x, P, "best"), aS), StringEntry(R(x, P, "worst"), aG), StringEntry(R(x, P, "medium"), aH), StringEntry(R(x, P, "best"), aI), IntegerEntry(M(x), (am + 1)), IntegerEntry(H(x), (height + g))]
400+ }
401+ else throw("Strict value is not equal to itself.")
402+ }
403+ else throw("Strict value is not equal to itself.")
404+ }
405+ else throw("Strict value is not equal to itself.")
805406 }
806407
807408
808409
809-@Callable(cF)
810-func commit (cX) = {
811- let cJ = toBase58String(cF.caller.bytes)
812- let w = r(cJ)
813- let O = x(w, cJ)
814- let cu = M(w)
815- if ((w == 0))
410+@Callable(ax)
411+func commit (aT) = {
412+ let aB = toBase58String(ax.caller.bytes)
413+ let x = s(aB)
414+ let P = y(x, aB)
415+ let am = N(x)
416+ if ((x == 0))
816417 then throw("You don't have an active game")
817- else if ((2 > cu))
418+ else if ((2 > am))
818419 then throw("Commit is not started")
819- else if (if ((cu == 2))
820- then (O != "taker")
420+ else if (if ((am == 2))
421+ then (P != "taker")
821422 else false)
822423 then throw("It is the taker's turn to pick now")
823- else if (if ((cu == 3))
824- then (O != "maker")
424+ else if (if ((am == 3))
425+ then (P != "maker")
825426 else false)
826427 then throw("It is the maker's turn to pick now")
827- else if ((cu > 3))
428+ else if ((am > 3))
828429 then throw("Commit is finished")
829- else [StringEntry(S(w, O), cX), IntegerEntry(L(w), (cu + 1)), IntegerEntry(G(w), (height + f))]
430+ else [StringEntry(T(x, P), aT), IntegerEntry(M(x), (am + 1)), IntegerEntry(H(x), (height + g))]
830431 }
831432
832433
833434
834-@Callable(cF)
835-func reveal (cY,cZ) = {
836- let cJ = toBase58String(cF.caller.bytes)
837- let w = r(cJ)
838- let O = x(w, cJ)
839- let cu = M(w)
840- if ((w == 0))
435+@Callable(ax)
436+func reveal (aU,aV) = {
437+ let aB = toBase58String(ax.caller.bytes)
438+ let x = s(aB)
439+ let P = y(x, aB)
440+ let am = N(x)
441+ if ((x == 0))
841442 then throw("You don't have an active game")
842- else if ((4 > cu))
443+ else if ((4 > am))
843444 then throw("Reveal is not started")
844- else if (if ((cu == 4))
845- then (O != "taker")
445+ else if (if ((am == 4))
446+ then (P != "taker")
846447 else false)
847448 then throw("It is the taker's turn to pick now")
848- else if (if ((cu == 5))
849- then (O != "maker")
449+ else if (if ((am == 5))
450+ then (P != "maker")
850451 else false)
851452 then throw("It is the maker's turn to pick now")
852- else if ((cu > 5))
453+ else if ((am > 5))
853454 then throw("Reveal is finished")
854- else if (if (if (if (if (if ((cY != "worst,medium,best"))
855- then (cY != "worst,best,medium")
455+ else if (if (if (if (if (if ((aU != "worst,medium,best"))
456+ then (aU != "worst,best,medium")
856457 else false)
857- then (cY != "medium,worst,best")
458+ then (aU != "medium,worst,best")
858459 else false)
859- then (cY != "medium,best,worst")
460+ then (aU != "medium,best,worst")
860461 else false)
861- then (cY != "best,worst,medium")
462+ then (aU != "best,worst,medium")
862463 else false)
863- then (cY != "best,medium,worst")
464+ then (aU != "best,medium,worst")
864465 else false)
865466 then throw("Reveal data is not valid")
866- else if ((toBase58String(sha256(toBytes((cY + cZ)))) != T(w, O)))
467+ else if ((toBase58String(sha256(toBytes((aU + aV)))) != U(x, P)))
867468 then throw("Reveal doesn't match commit")
868- else [StringEntry(U(w, O), cY), IntegerEntry(L(w), (cu + 1)), IntegerEntry(G(w), (height + f))]
469+ else [StringEntry(V(x, P), aU), IntegerEntry(M(x), (am + 1)), IntegerEntry(H(x), (height + g))]
869470 }
870471
871472
872473
873-@Callable(cF)
474+@Callable(ax)
874475 func getPrize () = {
875- let cJ = toBase58String(cF.caller.bytes)
876- let w = r(cJ)
877- let O = x(w, cJ)
878- let da = if ((O == "maker"))
879- then B(w)
880- else z(w)
881- let db = ct(w)
882- if ((w == 0))
476+ let aB = toBase58String(ax.caller.bytes)
477+ let x = s(aB)
478+ let P = y(x, aB)
479+ let aW = if ((P == "maker"))
480+ then C(x)
481+ else A(x)
482+ let aX = al(x)
483+ if ((x == 0))
883484 then throw("You don't have an active game")
884- else if ((db == O))
885- then [IntegerEntry(p(cJ), 0), IntegerEntry(p(da), 0), IntegerEntry(W(cJ), (X(cJ) + 1)), IntegerEntry(Y(da), (Z(da) + 1)), ScriptTransfer(cF.caller, (D(w) * 2), c)]
886- else if ((db == "draw"))
887- then [IntegerEntry(p(cJ), 0), IntegerEntry(aa(cJ), (ab(cJ) + 1)), ScriptTransfer(cF.caller, D(w), c)]
888- else [IntegerEntry(p(cJ), 0)]
485+ else if ((aX == P))
486+ then [IntegerEntry(q(aB), 0), IntegerEntry(q(aW), 0), IntegerEntry(Z(aB), (aa(aB) + 1)), IntegerEntry(ab(aW), (ac(aW) + 1)), StringEntry(X(x, aB), "win"), StringEntry(X(x, aW), "lose"), ScriptTransfer(ax.caller, (E(x) * 2), d)]
487+ else if ((aX == "draw"))
488+ then [IntegerEntry(q(aB), 0), IntegerEntry(ad(aB), (ae(aB) + 1)), StringEntry(X(x, aB), "draw"), ScriptTransfer(ax.caller, E(x), d)]
489+ else [IntegerEntry(q(aB), 0)]
889490 }
890491
891492
892-@Verifier(dc)
893-func dd () = sigVerify(dc.bodyBytes, dc.proofs[0], dc.senderPublicKey)
493+@Verifier(aY)
494+func aZ () = sigVerify(aY.bodyBytes, aY.proofs[0], aY.senderPublicKey)
894495
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'3MtBigTsaeevrcJAEwVcr4quwkqcrtnjoAh'
55
66 let b = base58'3N285kYUMxPi6oZsdWrxhSY34dJHyu4kRN5'
77
8-let c = base58'3VUCuh9dWqe54SdzzNUkXhFXpc8UQynnJVh42B7MjNzN'
8+let c = base58'3NCman4dCzk1HWWU4DPTr5rsbhvuUCwwUZh'
99
10-let d = 10
10+let d = base58'3VUCuh9dWqe54SdzzNUkXhFXpc8UQynnJVh42B7MjNzN'
1111
12-let e = 8
12+let e = 10
1313
14-let f = 5
14+let f = 8
1515
16-func g (h) = {
17- let i = getInteger(this, h)
18- if ($isInstanceOf(i, "Int"))
16+let g = 5
17+
18+func h (i) = {
19+ let j = getInteger(this, i)
20+ if ($isInstanceOf(j, "Int"))
1921 then {
20- let j = i
21- j
22+ let k = j
23+ k
2224 }
2325 else 0
2426 }
2527
2628
27-func k (h) = {
28- let i = getString(this, h)
29- if ($isInstanceOf(i, "String"))
29+func l (i) = {
30+ let j = getString(this, i)
31+ if ($isInstanceOf(j, "String"))
3032 then {
31- let l = i
32- l
33+ let m = j
34+ m
3335 }
3436 else ""
3537 }
3638
3739
38-func m (h) = {
39- let i = getBoolean(this, h)
40- if ($isInstanceOf(i, "Boolean"))
40+func n (i) = {
41+ let j = getBoolean(this, i)
42+ if ($isInstanceOf(j, "Boolean"))
4143 then {
42- let j = i
43- j
44+ let k = j
45+ k
4446 }
4547 else false
4648 }
4749
4850
49-func n () = {
50- let o = g("nextGameId")
51- if ((o == 0))
51+func o () = {
52+ let p = h("nextGameId")
53+ if ((p == 0))
5254 then 1
53- else o
55+ else p
5456 }
5557
5658
57-func p (q) = (q + "_currentGame")
59+func q (r) = (r + "_currentGame")
5860
5961
60-func r (q) = g(p(q))
62+func s (r) = h(q(r))
6163
6264
63-func s (t) = ("slot" + toString(t))
65+func t (u) = ("slot" + toString(u))
6466
6567
66-func u (t) = g(s(t))
68+func v (u) = h(t(u))
6769
6870
69-func v (w,q) = ((("game" + toString(w)) + "_") + q)
71+func w (x,r) = ((("game" + toString(x)) + "_") + r)
7072
7173
72-func x (w,q) = k(v(w, q))
74+func y (x,r) = l(w(x, r))
7375
7476
75-func y (w) = (("game" + toString(w)) + "_maker")
77+func z (x) = (("game" + toString(x)) + "_maker")
7678
7779
78-func z (w) = k(y(w))
80+func A (x) = l(z(x))
7981
8082
81-func A (w) = (("game" + toString(w)) + "_taker")
83+func B (x) = (("game" + toString(x)) + "_taker")
8284
8385
84-func B (w) = k(A(w))
86+func C (x) = l(B(x))
8587
8688
87-func C (w) = (("game" + toString(w)) + "_betEggs")
89+func D (x) = (("game" + toString(x)) + "_betEggs")
8890
8991
90-func D (w) = g(C(w))
92+func E (x) = h(D(x))
9193
9294
93-func E (w) = (("game" + toString(w)) + "_waitingExpirationHeight")
95+func F (x) = (("game" + toString(x)) + "_waitingExpirationHeight")
9496
9597
96-func F (w) = g(E(w))
98+func G (x) = h(F(x))
9799
98100
99-func G (w) = (("game" + toString(w)) + "_expirationHeight")
101+func H (x) = (("game" + toString(x)) + "_expirationHeight")
100102
101103
102-func H (w) = g(G(w))
104+func I (x) = h(H(x))
103105
104106
105-func I (w,J) = ((("game" + toString(w)) + "_rarityRange_") + J)
107+func J (x,K) = ((("game" + toString(x)) + "_rarityRange_") + K)
106108
107109
108-func K (w,J) = g(I(w, J))
110+func L (x,K) = h(J(x, K))
109111
110112
111-func L (w) = (("game" + toString(w)) + "_step")
113+func M (x) = (("game" + toString(x)) + "_step")
112114
113115
114-func M (w) = g(L(w))
116+func N (x) = h(M(x))
115117
116118
117-func N (w,O,J) = (((((("game" + toString(w)) + "_") + O) + "_") + J) + "Rarity")
119+func O (x,P,K) = (((((("game" + toString(x)) + "_") + P) + "_") + K) + "Rarity")
118120
119121
120-func P (w,O,J) = g(N(w, O, J))
122+func Q (x,P,K) = h(O(x, P, K))
121123
122124
123-func Q (w,O,J) = (((((("game" + toString(w)) + "_") + O) + "_") + J) + "DuckId")
125+func R (x,P,K) = (((((("game" + toString(x)) + "_") + P) + "_") + K) + "DuckId")
124126
125127
126-func R (w,O,J) = k(Q(w, O, J))
128+func S (x,P,K) = l(R(x, P, K))
127129
128130
129-func S (w,O) = (((("game" + toString(w)) + "_") + O) + "_commit")
131+func T (x,P) = (((("game" + toString(x)) + "_") + P) + "_commit")
130132
131133
132-func T (w,O) = k(S(w, O))
134+func U (x,P) = l(T(x, P))
133135
134136
135-func U (w,O) = (((("game" + toString(w)) + "_") + O) + "_duckOrder")
137+func V (x,P) = (((("game" + toString(x)) + "_") + P) + "_duckOrder")
136138
137139
138-func V (w,O) = k(U(w, O))
140+func W (x,P) = l(V(x, P))
139141
140142
141-func W (q) = (q + "_wins")
143+func X (x,r) = (((("game" + toString(x)) + "_") + r) + "_result")
142144
143145
144-func X (q) = g(W(q))
146+func Y (x,r) = l(X(x, r))
145147
146148
147-func Y (q) = (q + "_loses")
149+func Z (r) = (r + "_wins")
148150
149151
150-func Z (q) = g(Y(q))
152+func aa (r) = h(Z(r))
151153
152154
153-func aa (q) = (q + "_draws")
155+func ab (r) = (r + "_loses")
154156
155157
156-func ab (q) = g(aa(q))
158+func ac (r) = h(ab(r))
157159
158160
159-func ac () = "gamesPlayed"
161+func ad (r) = (r + "_draws")
160162
161163
162-func ad () = g(ac())
164+func ae (r) = h(ad(r))
163165
164166
165-func ae (af,ag) = if ((ag == "A"))
166- then (af + 1)
167- else (af + 0)
167+func af () = "gamesPlayed"
168168
169169
170-func ah (af,ag) = if ((ag == "B"))
171- then (af + 1)
172- else (af + 0)
170+func ag () = h(af())
173171
174172
175-func ai (af,ag) = if ((ag == "C"))
176- then (af + 1)
177- else (af + 0)
173+func ah (ai,aj) = (assetBalance(ai, aj) > 0)
178174
179175
180-func aj (af,ag) = if ((ag == "D"))
181- then (af + 1)
182- else (af + 0)
183-
184-
185-func ak (af,ag) = if ((ag == "E"))
186- then (af + 1)
187- else (af + 0)
188-
189-
190-func al (af,ag) = if ((ag == "F"))
191- then (af + 1)
192- else (af + 0)
193-
194-
195-func am (af,ag) = if ((ag == "G"))
196- then (af + 1)
197- else (af + 0)
198-
199-
200-func an (af,ag) = if ((ag == "H"))
201- then (af + 1)
202- else (af + 0)
203-
204-
205-func ao (ap) = if (contains(ap, "0"))
206- then ""
207- else ap
208-
209-
210-func aq (ar) = {
211- let as = split(dropRight(drop(ar, 5), 3), "")
212- (((((((ao((toString({
213- let at = as
214- let au = size(at)
215- let av = 0
216- if ((au == 0))
217- then av
218- else {
219- let aw = ae(av, at[0])
220- if ((au == 1))
221- then aw
222- else {
223- let ax = ae(aw, at[1])
224- if ((au == 2))
225- then ax
226- else {
227- let ay = ae(ax, at[2])
228- if ((au == 3))
229- then ay
230- else {
231- let az = ae(ay, at[3])
232- if ((au == 4))
233- then az
234- else {
235- let aA = ae(az, at[4])
236- if ((au == 5))
237- then aA
238- else {
239- let aB = ae(aA, at[5])
240- if ((au == 6))
241- then aB
242- else {
243- let aC = ae(aB, at[6])
244- if ((au == 7))
245- then aC
246- else {
247- let aD = ae(aC, at[7])
248- if ((au == 8))
249- then aD
250- else {
251- let aE = ae(aD, at[8])
252- throw("List size exceed 8")
253- }
254- }
255- }
256- }
257- }
258- }
259- }
260- }
261- }
262- }) + "A")) + ao((toString({
263- let aF = as
264- let aG = size(aF)
265- let aH = 0
266- if ((aG == 0))
267- then aH
268- else {
269- let aI = ah(aH, aF[0])
270- if ((aG == 1))
271- then aI
272- else {
273- let aJ = ah(aI, aF[1])
274- if ((aG == 2))
275- then aJ
276- else {
277- let aK = ah(aJ, aF[2])
278- if ((aG == 3))
279- then aK
280- else {
281- let aL = ah(aK, aF[3])
282- if ((aG == 4))
283- then aL
284- else {
285- let aM = ah(aL, aF[4])
286- if ((aG == 5))
287- then aM
288- else {
289- let aN = ah(aM, aF[5])
290- if ((aG == 6))
291- then aN
292- else {
293- let aO = ah(aN, aF[6])
294- if ((aG == 7))
295- then aO
296- else {
297- let aP = ah(aO, aF[7])
298- if ((aG == 8))
299- then aP
300- else {
301- let aQ = ah(aP, aF[8])
302- throw("List size exceed 8")
303- }
304- }
305- }
306- }
307- }
308- }
309- }
310- }
311- }
312- }) + "B"))) + ao((toString({
313- let aR = as
314- let aS = size(aR)
315- let aT = 0
316- if ((aS == 0))
317- then aT
318- else {
319- let aU = ai(aT, aR[0])
320- if ((aS == 1))
321- then aU
322- else {
323- let aV = ai(aU, aR[1])
324- if ((aS == 2))
325- then aV
326- else {
327- let aW = ai(aV, aR[2])
328- if ((aS == 3))
329- then aW
330- else {
331- let aX = ai(aW, aR[3])
332- if ((aS == 4))
333- then aX
334- else {
335- let aY = ai(aX, aR[4])
336- if ((aS == 5))
337- then aY
338- else {
339- let aZ = ai(aY, aR[5])
340- if ((aS == 6))
341- then aZ
342- else {
343- let ba = ai(aZ, aR[6])
344- if ((aS == 7))
345- then ba
346- else {
347- let bb = ai(ba, aR[7])
348- if ((aS == 8))
349- then bb
350- else {
351- let bc = ai(bb, aR[8])
352- throw("List size exceed 8")
353- }
354- }
355- }
356- }
357- }
358- }
359- }
360- }
361- }
362- }) + "C"))) + ao((toString({
363- let bd = as
364- let be = size(bd)
365- let bf = 0
366- if ((be == 0))
367- then bf
368- else {
369- let bg = aj(bf, bd[0])
370- if ((be == 1))
371- then bg
372- else {
373- let bh = aj(bg, bd[1])
374- if ((be == 2))
375- then bh
376- else {
377- let bi = aj(bh, bd[2])
378- if ((be == 3))
379- then bi
380- else {
381- let bj = aj(bi, bd[3])
382- if ((be == 4))
383- then bj
384- else {
385- let bk = aj(bj, bd[4])
386- if ((be == 5))
387- then bk
388- else {
389- let bl = aj(bk, bd[5])
390- if ((be == 6))
391- then bl
392- else {
393- let bm = aj(bl, bd[6])
394- if ((be == 7))
395- then bm
396- else {
397- let bn = aj(bm, bd[7])
398- if ((be == 8))
399- then bn
400- else {
401- let bo = aj(bn, bd[8])
402- throw("List size exceed 8")
403- }
404- }
405- }
406- }
407- }
408- }
409- }
410- }
411- }
412- }) + "D"))) + ao((toString({
413- let bp = as
414- let bq = size(bp)
415- let br = 0
416- if ((bq == 0))
417- then br
418- else {
419- let bs = ak(br, bp[0])
420- if ((bq == 1))
421- then bs
422- else {
423- let bt = ak(bs, bp[1])
424- if ((bq == 2))
425- then bt
426- else {
427- let bu = ak(bt, bp[2])
428- if ((bq == 3))
429- then bu
430- else {
431- let bv = ak(bu, bp[3])
432- if ((bq == 4))
433- then bv
434- else {
435- let bw = ak(bv, bp[4])
436- if ((bq == 5))
437- then bw
438- else {
439- let bx = ak(bw, bp[5])
440- if ((bq == 6))
441- then bx
442- else {
443- let by = ak(bx, bp[6])
444- if ((bq == 7))
445- then by
446- else {
447- let bz = ak(by, bp[7])
448- if ((bq == 8))
449- then bz
450- else {
451- let bA = ak(bz, bp[8])
452- throw("List size exceed 8")
453- }
454- }
455- }
456- }
457- }
458- }
459- }
460- }
461- }
462- }) + "E"))) + ao((toString({
463- let bB = as
464- let bC = size(bB)
465- let bD = 0
466- if ((bC == 0))
467- then bD
468- else {
469- let bE = al(bD, bB[0])
470- if ((bC == 1))
471- then bE
472- else {
473- let bF = al(bE, bB[1])
474- if ((bC == 2))
475- then bF
476- else {
477- let bG = al(bF, bB[2])
478- if ((bC == 3))
479- then bG
480- else {
481- let bH = al(bG, bB[3])
482- if ((bC == 4))
483- then bH
484- else {
485- let bI = al(bH, bB[4])
486- if ((bC == 5))
487- then bI
488- else {
489- let bJ = al(bI, bB[5])
490- if ((bC == 6))
491- then bJ
492- else {
493- let bK = al(bJ, bB[6])
494- if ((bC == 7))
495- then bK
496- else {
497- let bL = al(bK, bB[7])
498- if ((bC == 8))
499- then bL
500- else {
501- let bM = al(bL, bB[8])
502- throw("List size exceed 8")
503- }
504- }
505- }
506- }
507- }
508- }
509- }
510- }
511- }
512- }) + "F"))) + ao((toString({
513- let bN = as
514- let bO = size(bN)
515- let bP = 0
516- if ((bO == 0))
517- then bP
518- else {
519- let bQ = am(bP, bN[0])
520- if ((bO == 1))
521- then bQ
522- else {
523- let bR = am(bQ, bN[1])
524- if ((bO == 2))
525- then bR
526- else {
527- let bS = am(bR, bN[2])
528- if ((bO == 3))
529- then bS
530- else {
531- let bT = am(bS, bN[3])
532- if ((bO == 4))
533- then bT
534- else {
535- let bU = am(bT, bN[4])
536- if ((bO == 5))
537- then bU
538- else {
539- let bV = am(bU, bN[5])
540- if ((bO == 6))
541- then bV
542- else {
543- let bW = am(bV, bN[6])
544- if ((bO == 7))
545- then bW
546- else {
547- let bX = am(bW, bN[7])
548- if ((bO == 8))
549- then bX
550- else {
551- let bY = am(bX, bN[8])
552- throw("List size exceed 8")
553- }
554- }
555- }
556- }
557- }
558- }
559- }
560- }
561- }
562- }) + "G"))) + ao((toString({
563- let bZ = as
564- let ca = size(bZ)
565- let cb = 0
566- if ((ca == 0))
567- then cb
568- else {
569- let cc = an(cb, bZ[0])
570- if ((ca == 1))
571- then cc
572- else {
573- let cd = an(cc, bZ[1])
574- if ((ca == 2))
575- then cd
576- else {
577- let ce = an(cd, bZ[2])
578- if ((ca == 3))
579- then ce
580- else {
581- let cf = an(ce, bZ[3])
582- if ((ca == 4))
583- then cf
584- else {
585- let cg = an(cf, bZ[4])
586- if ((ca == 5))
587- then cg
588- else {
589- let ch = an(cg, bZ[5])
590- if ((ca == 6))
591- then ch
592- else {
593- let ci = an(ch, bZ[6])
594- if ((ca == 7))
595- then ci
596- else {
597- let cj = an(ci, bZ[7])
598- if ((ca == 8))
599- then cj
600- else {
601- let ck = an(cj, bZ[8])
602- throw("List size exceed 8")
603- }
604- }
605- }
606- }
607- }
608- }
609- }
610- }
611- }
612- }) + "H")))
613- }
614-
615-
616-func cl (cm) = if ((cm == "G"))
617- then a
618- else b
619-
620-
621-func cn (co) = if (if ((value(assetInfo(co)).issuer == Address(b)))
622- then true
623- else (value(assetInfo(co)).issuer == Address(a)))
624- then {
625- let ar = value(assetInfo(co)).name
626- let cm = take(takeRight(ar, 2), 1)
627- let cp = ((aq(ar) + "-") + cm)
628- let cq = getIntegerValue(Address(cl(cm)), (("stats_" + cp) + "_quantity"))
629- let cr = pow((10000 / cq), 4, 5, 1, 2, FLOOR)
630- if ((cr > 0))
631- then cr
632- else 2
633- }
634- else throw("not valid NFT")
635-
636-
637-func cs (l,j) = if ((l > j))
176+func ak (m,k) = if ((m > k))
638177 then 1
639- else if ((j > l))
178+ else if ((k > m))
640179 then -1
641180 else 0
642181
643182
644-func ct (w) = {
645- let cu = M(w)
646- if ((6 > cu))
183+func al (x) = {
184+ let am = N(x)
185+ if ((6 > am))
647186 then {
648- let cv = H(w)
649- if ((cv == 0))
187+ let an = I(x)
188+ if ((an == 0))
650189 then throw("Game is not started")
651- else if ((cv > height))
190+ else if ((an > height))
652191 then throw("Game is not finished or expired")
653- else if (((M(w) % 2) == 0))
192+ else if (((N(x) % 2) == 0))
654193 then "maker"
655194 else "taker"
656195 }
657196 else {
658- let cw = split(V(w, "maker"), ",")
659- let cx = split(V(w, "taker"), ",")
660- let cy = P(w, "maker", cw[0])
661- let cz = P(w, "maker", cw[1])
662- let cA = P(w, "maker", cw[2])
663- let cB = P(w, "taker", cx[0])
664- let cC = P(w, "taker", cx[1])
665- let cD = P(w, "taker", cx[2])
666- let cE = ((cs(cy, cB) + cs(cz, cC)) + cs(cA, cD))
667- if ((cE > 0))
197+ let ao = split(W(x, "maker"), ",")
198+ let ap = split(W(x, "taker"), ",")
199+ let aq = Q(x, "maker", ao[0])
200+ let ar = Q(x, "maker", ao[1])
201+ let as = Q(x, "maker", ao[2])
202+ let at = Q(x, "taker", ap[0])
203+ let au = Q(x, "taker", ap[1])
204+ let av = Q(x, "taker", ap[2])
205+ let aw = ((ak(aq, at) + ak(ar, au)) + ak(as, av))
206+ if ((aw > 0))
668207 then "maker"
669- else if ((0 > cE))
208+ else if ((0 > aw))
670209 then "taker"
671210 else "draw"
672211 }
673212 }
674213
675214
676-@Callable(cF)
677-func makeGame (t,cG,cH,cI) = {
678- let cJ = toBase58String(cF.caller.bytes)
679- let cK = u(t)
680- let cL = value(cF.payments[0])
681- let cM = cL.amount
682- let w = n()
683- if ((r(cJ) != 0))
215+@Callable(ax)
216+func makeGame (u,ay,az,aA) = {
217+ let aB = toBase58String(ax.caller.bytes)
218+ let aC = v(u)
219+ let aD = value(ax.payments[0])
220+ let aE = aD.amount
221+ let x = o()
222+ if ((s(aB) != 0))
684223 then throw("You already have an active game")
685- else if (if ((0 > t))
224+ else if (if ((0 > u))
686225 then true
687- else (t >= d))
226+ else (u >= e))
688227 then throw("Invalid slot")
689- else if ((cK != 0))
228+ else if ((aC != 0))
690229 then throw("This slot is busy")
691- else if ((cL.assetId != c))
692- then throw(("You can attach only EGGs with the following asset id: " + toBase58String(c)))
693- else if ((cM != 1))
230+ else if ((aD.assetId != d))
231+ then throw(("You can attach only EGGs with the following asset id: " + toBase58String(d)))
232+ else if ((aE != 1))
694233 then throw("Bet must be 0.01 EGG during beta test")
695- else if (if ((1 > cG))
234+ else if (if ((1 > ay))
696235 then true
697- else (cG > 5))
236+ else (ay > 5))
698237 then throw("Invalid rarity range for the worst duck")
699- else if (if ((1 > cH))
238+ else if (if ((1 > az))
700239 then true
701- else (cH > 5))
240+ else (az > 5))
702241 then throw("Invalid rarity range for the medium duck")
703- else if (if ((1 > cI))
242+ else if (if ((1 > aA))
704243 then true
705- else (cI > 5))
244+ else (aA > 5))
706245 then throw("Invalid rarity range for the best duck")
707- else if ((cG >= cH))
708- then throw("The medium duck must be better than the worst one")
709- else if ((cH >= cI))
710- then throw("The best duck must be better than the medium one")
711- else [IntegerEntry(p(cJ), w), StringEntry(y(w), cJ), StringEntry(v(w, cJ), "maker"), IntegerEntry(C(w), cM), IntegerEntry(I(w, "worst"), cG), IntegerEntry(I(w, "medium"), cH), IntegerEntry(I(w, "best"), cI), IntegerEntry(E(w), (height + e)), IntegerEntry(s(t), w), IntegerEntry("nextGameId", (w + 1))]
246+ else if ((ay > az))
247+ then throw("The medium range can't be less than the worst one")
248+ else if ((az > aA))
249+ then throw("The best range can't be worse than the medium one")
250+ else [IntegerEntry(q(aB), x), StringEntry(z(x), aB), StringEntry(w(x, aB), "maker"), IntegerEntry(D(x), aE), IntegerEntry(J(x, "worst"), ay), IntegerEntry(J(x, "medium"), az), IntegerEntry(J(x, "best"), aA), IntegerEntry(F(x), (height + f)), IntegerEntry(t(u), x), IntegerEntry("nextGameId", (x + 1))]
712251 }
713252
714253
715254
716-@Callable(cF)
717-func takeGame (t) = {
718- let cJ = toBase58String(cF.caller.bytes)
719- let w = u(t)
720- let cL = value(cF.payments[0])
721- if ((r(cJ) != 0))
255+@Callable(ax)
256+func takeGame (u) = {
257+ let aB = toBase58String(ax.caller.bytes)
258+ let x = v(u)
259+ let aD = value(ax.payments[0])
260+ if ((s(aB) != 0))
722261 then throw("You already have an active game")
723- else if (if ((0 > t))
262+ else if (if ((0 > u))
724263 then true
725- else (t >= d))
264+ else (u >= e))
726265 then throw("Invalid slot")
727- else if ((u(t) == 0))
266+ else if ((v(u) == 0))
728267 then throw("This slot is empty")
729- else if ((cL.assetId != c))
730- then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(c)))
731- else if ((cL.amount != D(w)))
268+ else if ((aD.assetId != d))
269+ then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(d)))
270+ else if ((aD.amount != E(x)))
732271 then throw("Insufficient eggs amount")
733- else if ((height >= F(w)))
272+ else if ((height >= G(x)))
734273 then throw("This game is expired")
735- else [IntegerEntry(p(cJ), w), StringEntry(A(w), cJ), StringEntry(v(w, cJ), "taker"), IntegerEntry(L(w), 0), IntegerEntry(G(w), (height + f)), IntegerEntry(s(t), 0), IntegerEntry("gamesPlayed", (ad() + 1))]
274+ else [IntegerEntry(q(aB), x), StringEntry(B(x), aB), StringEntry(w(x, aB), "taker"), IntegerEntry(M(x), 0), IntegerEntry(H(x), (height + g)), IntegerEntry(t(u), 0), IntegerEntry("gamesPlayed", (ag() + 1))]
736275 }
737276
738277
739278
740-@Callable(cF)
741-func kickGame (t) = {
742- let w = u(t)
743- if (if ((0 > t))
279+@Callable(ax)
280+func kickGame (u) = {
281+ let x = v(u)
282+ if (if ((0 > u))
744283 then true
745- else (t >= d))
284+ else (u >= e))
746285 then throw("Invalid slot")
747- else if ((w == 0))
286+ else if ((x == 0))
748287 then throw("Slot is empty")
749- else if ((F(w) > height))
288+ else if ((G(x) > height))
750289 then throw("Waiting is not finished yet")
751290 else {
752- let cN = z(w)
753-[IntegerEntry(p(cN), 0), IntegerEntry(s(t), 0), ScriptTransfer(Address(fromBase58String(cN)), D(w), c)]
291+ let aF = A(x)
292+[IntegerEntry(q(aF), 0), IntegerEntry(t(u), 0), ScriptTransfer(Address(fromBase58String(aF)), E(x), d)]
754293 }
755294 }
756295
757296
758297
759-@Callable(cF)
760-func pickDucks () = {
761- let cJ = toBase58String(cF.caller.bytes)
762- let w = r(cJ)
763- let O = x(w, cJ)
764- let cu = M(w)
765- let cO = K(w, "worst")
766- let cP = K(w, "medium")
767- let cQ = K(w, "best")
768- let cR = value(value(cF.payments[0]).assetId)
769- let cS = value(value(cF.payments[1]).assetId)
770- let cT = value(value(cF.payments[2]).assetId)
771- let cU = cn(cR)
772- let cV = cn(cS)
773- let cW = cn(cT)
774- if ((w == 0))
775- then throw("You don't have an active game")
776- else if ((H(w) == 0))
777- then throw("Game is not started")
778- else if (if ((cu == 0))
779- then (O != "taker")
780- else false)
781- then throw("It is the taker's turn to pick now")
782- else if (if ((cu == 1))
783- then (O != "maker")
784- else false)
785- then throw("It is the maker's turn to pick now")
786- else if ((cu > 1))
787- then throw("Ducks have already been picked")
788- else if (if ((cU > (cO * 10)))
789- then true
790- else (((cO - 1) * 10) >= cU))
791- then throw("Worst duck doesn't fit rarity range")
792- else if (if ((cV > (cP * 10)))
793- then true
794- else (((cP - 1) * 10) >= cV))
795- then throw("Medium duck doesn't fit rarity range")
796- else if (if (if (if ((cQ == 5))
797- then (40 >= cW)
798- else false)
799- then true
800- else (cW > (cQ * 10)))
801- then true
802- else (((cQ - 1) * 10) >= cW))
803- then throw("Best duck doesn't fit rarity range")
804- else [IntegerEntry(N(w, O, "worst"), cU), IntegerEntry(N(w, O, "medium"), cV), IntegerEntry(N(w, O, "best"), cW), StringEntry(Q(w, O, "worst"), toBase58String(cR)), StringEntry(Q(w, O, "medium"), toBase58String(cS)), StringEntry(Q(w, O, "best"), toBase58String(cT)), IntegerEntry(L(w), (cu + 1)), IntegerEntry(G(w), (height + f)), ScriptTransfer(cF.caller, 1, cR), ScriptTransfer(cF.caller, 1, cS), ScriptTransfer(cF.caller, 1, cT)]
298+@Callable(ax)
299+func pickDucks (aG,aH,aI) = {
300+ let aB = toBase58String(ax.caller.bytes)
301+ let x = s(aB)
302+ let P = y(x, aB)
303+ let am = N(x)
304+ let aJ = L(x, "worst")
305+ let aK = L(x, "medium")
306+ let aL = L(x, "best")
307+ let aM = invoke(Address(c), "getAssetRarity", [aG], nil)
308+ if ((aM == aM))
309+ then {
310+ let aN = {
311+ let j = aM
312+ if ($isInstanceOf(j, "Int"))
313+ then {
314+ let aO = j
315+ aO
316+ }
317+ else throw("Incorrect invoke result")
318+ }
319+ let aP = invoke(Address(c), "getAssetRarity", [aH], nil)
320+ if ((aP == aP))
321+ then {
322+ let aQ = {
323+ let j = aP
324+ if ($isInstanceOf(j, "Int"))
325+ then {
326+ let aO = j
327+ aO
328+ }
329+ else throw("Incorrect invoke result")
330+ }
331+ let aR = invoke(Address(c), "getAssetRarity", [aI], nil)
332+ if ((aR == aR))
333+ then {
334+ let aS = {
335+ let j = aM
336+ if ($isInstanceOf(j, "Int"))
337+ then {
338+ let aO = j
339+ aO
340+ }
341+ else throw("Incorrect invoke result")
342+ }
343+ if ((x == 0))
344+ then throw("You don't have an active game")
345+ else if ((I(x) == 0))
346+ then throw("Game is not started")
347+ else if (if ((am == 0))
348+ then (P != "taker")
349+ else false)
350+ then throw("It is the taker's turn to pick now")
351+ else if (if ((am == 1))
352+ then (P != "maker")
353+ else false)
354+ then throw("It is the maker's turn to pick now")
355+ else if ((am > 1))
356+ then throw("Ducks have already been picked")
357+ else if (ah(ax.caller, fromBase58String(aG)))
358+ then throw((("Asset " + aG) + " doesn't belong to you"))
359+ else if (ah(ax.caller, fromBase58String(aH)))
360+ then throw((("Asset " + aH) + " doesn't belong to you"))
361+ else if (ah(ax.caller, fromBase58String(aI)))
362+ then throw((("Asset " + aI) + " doesn't belong to you"))
363+ else if (if ((5 > aJ))
364+ then if ((aN > (aJ * 10)))
365+ then true
366+ else (((aJ - 1) * 10) >= aN)
367+ else false)
368+ then throw("Worst duck doesn't fit rarity range")
369+ else if (if ((5 > aK))
370+ then if ((aQ > (aK * 10)))
371+ then true
372+ else (((aK - 1) * 10) >= aQ)
373+ else false)
374+ then throw("Medium duck doesn't fit rarity range")
375+ else if (if ((5 > aL))
376+ then if ((aS > (aL * 10)))
377+ then true
378+ else (((aL - 1) * 10) >= aS)
379+ else false)
380+ then throw("Best duck doesn't fit rarity range")
381+ else if (if ((aJ == 5))
382+ then (40 >= aN)
383+ else false)
384+ then throw("Worst duck doesn't fit rarity range")
385+ else if (if ((aK == 5))
386+ then (40 >= aQ)
387+ else false)
388+ then throw("Medium duck doesn't fit rarity range")
389+ else if (if ((aL == 5))
390+ then (40 >= aS)
391+ else false)
392+ then throw("Best duck doesn't fit rarity range")
393+ else if (if (if ((aN == aQ))
394+ then true
395+ else (aN == aS))
396+ then true
397+ else (aQ == aS))
398+ then throw("Ducks of the same rarity can't play")
399+ else [IntegerEntry(O(x, P, "worst"), aN), IntegerEntry(O(x, P, "medium"), aQ), IntegerEntry(O(x, P, "best"), aS), StringEntry(R(x, P, "worst"), aG), StringEntry(R(x, P, "medium"), aH), StringEntry(R(x, P, "best"), aI), IntegerEntry(M(x), (am + 1)), IntegerEntry(H(x), (height + g))]
400+ }
401+ else throw("Strict value is not equal to itself.")
402+ }
403+ else throw("Strict value is not equal to itself.")
404+ }
405+ else throw("Strict value is not equal to itself.")
805406 }
806407
807408
808409
809-@Callable(cF)
810-func commit (cX) = {
811- let cJ = toBase58String(cF.caller.bytes)
812- let w = r(cJ)
813- let O = x(w, cJ)
814- let cu = M(w)
815- if ((w == 0))
410+@Callable(ax)
411+func commit (aT) = {
412+ let aB = toBase58String(ax.caller.bytes)
413+ let x = s(aB)
414+ let P = y(x, aB)
415+ let am = N(x)
416+ if ((x == 0))
816417 then throw("You don't have an active game")
817- else if ((2 > cu))
418+ else if ((2 > am))
818419 then throw("Commit is not started")
819- else if (if ((cu == 2))
820- then (O != "taker")
420+ else if (if ((am == 2))
421+ then (P != "taker")
821422 else false)
822423 then throw("It is the taker's turn to pick now")
823- else if (if ((cu == 3))
824- then (O != "maker")
424+ else if (if ((am == 3))
425+ then (P != "maker")
825426 else false)
826427 then throw("It is the maker's turn to pick now")
827- else if ((cu > 3))
428+ else if ((am > 3))
828429 then throw("Commit is finished")
829- else [StringEntry(S(w, O), cX), IntegerEntry(L(w), (cu + 1)), IntegerEntry(G(w), (height + f))]
430+ else [StringEntry(T(x, P), aT), IntegerEntry(M(x), (am + 1)), IntegerEntry(H(x), (height + g))]
830431 }
831432
832433
833434
834-@Callable(cF)
835-func reveal (cY,cZ) = {
836- let cJ = toBase58String(cF.caller.bytes)
837- let w = r(cJ)
838- let O = x(w, cJ)
839- let cu = M(w)
840- if ((w == 0))
435+@Callable(ax)
436+func reveal (aU,aV) = {
437+ let aB = toBase58String(ax.caller.bytes)
438+ let x = s(aB)
439+ let P = y(x, aB)
440+ let am = N(x)
441+ if ((x == 0))
841442 then throw("You don't have an active game")
842- else if ((4 > cu))
443+ else if ((4 > am))
843444 then throw("Reveal is not started")
844- else if (if ((cu == 4))
845- then (O != "taker")
445+ else if (if ((am == 4))
446+ then (P != "taker")
846447 else false)
847448 then throw("It is the taker's turn to pick now")
848- else if (if ((cu == 5))
849- then (O != "maker")
449+ else if (if ((am == 5))
450+ then (P != "maker")
850451 else false)
851452 then throw("It is the maker's turn to pick now")
852- else if ((cu > 5))
453+ else if ((am > 5))
853454 then throw("Reveal is finished")
854- else if (if (if (if (if (if ((cY != "worst,medium,best"))
855- then (cY != "worst,best,medium")
455+ else if (if (if (if (if (if ((aU != "worst,medium,best"))
456+ then (aU != "worst,best,medium")
856457 else false)
857- then (cY != "medium,worst,best")
458+ then (aU != "medium,worst,best")
858459 else false)
859- then (cY != "medium,best,worst")
460+ then (aU != "medium,best,worst")
860461 else false)
861- then (cY != "best,worst,medium")
462+ then (aU != "best,worst,medium")
862463 else false)
863- then (cY != "best,medium,worst")
464+ then (aU != "best,medium,worst")
864465 else false)
865466 then throw("Reveal data is not valid")
866- else if ((toBase58String(sha256(toBytes((cY + cZ)))) != T(w, O)))
467+ else if ((toBase58String(sha256(toBytes((aU + aV)))) != U(x, P)))
867468 then throw("Reveal doesn't match commit")
868- else [StringEntry(U(w, O), cY), IntegerEntry(L(w), (cu + 1)), IntegerEntry(G(w), (height + f))]
469+ else [StringEntry(V(x, P), aU), IntegerEntry(M(x), (am + 1)), IntegerEntry(H(x), (height + g))]
869470 }
870471
871472
872473
873-@Callable(cF)
474+@Callable(ax)
874475 func getPrize () = {
875- let cJ = toBase58String(cF.caller.bytes)
876- let w = r(cJ)
877- let O = x(w, cJ)
878- let da = if ((O == "maker"))
879- then B(w)
880- else z(w)
881- let db = ct(w)
882- if ((w == 0))
476+ let aB = toBase58String(ax.caller.bytes)
477+ let x = s(aB)
478+ let P = y(x, aB)
479+ let aW = if ((P == "maker"))
480+ then C(x)
481+ else A(x)
482+ let aX = al(x)
483+ if ((x == 0))
883484 then throw("You don't have an active game")
884- else if ((db == O))
885- then [IntegerEntry(p(cJ), 0), IntegerEntry(p(da), 0), IntegerEntry(W(cJ), (X(cJ) + 1)), IntegerEntry(Y(da), (Z(da) + 1)), ScriptTransfer(cF.caller, (D(w) * 2), c)]
886- else if ((db == "draw"))
887- then [IntegerEntry(p(cJ), 0), IntegerEntry(aa(cJ), (ab(cJ) + 1)), ScriptTransfer(cF.caller, D(w), c)]
888- else [IntegerEntry(p(cJ), 0)]
485+ else if ((aX == P))
486+ then [IntegerEntry(q(aB), 0), IntegerEntry(q(aW), 0), IntegerEntry(Z(aB), (aa(aB) + 1)), IntegerEntry(ab(aW), (ac(aW) + 1)), StringEntry(X(x, aB), "win"), StringEntry(X(x, aW), "lose"), ScriptTransfer(ax.caller, (E(x) * 2), d)]
487+ else if ((aX == "draw"))
488+ then [IntegerEntry(q(aB), 0), IntegerEntry(ad(aB), (ae(aB) + 1)), StringEntry(X(x, aB), "draw"), ScriptTransfer(ax.caller, E(x), d)]
489+ else [IntegerEntry(q(aB), 0)]
889490 }
890491
891492
892-@Verifier(dc)
893-func dd () = sigVerify(dc.bodyBytes, dc.proofs[0], dc.senderPublicKey)
493+@Verifier(aY)
494+func aZ () = sigVerify(aY.bodyBytes, aY.proofs[0], aY.senderPublicKey)
894495

github/deemru/w8io/026f985 
198.00 ms