tx · 2vFgpR9158cqZXuhW7aMoZakAjuR74x81d7X7b2fws9M

3PPsdSaURH1Dck9HzLGTcg6TNJwWbwxwhdW:  -0.01400000 Waves

2021.11.16 12:12 [2858404] smart account 3PPsdSaURH1Dck9HzLGTcg6TNJwWbwxwhdW > SELF 0.00000000 Waves

{ "type": 13, "id": "2vFgpR9158cqZXuhW7aMoZakAjuR74x81d7X7b2fws9M", "fee": 1400000, "feeAssetId": null, "timestamp": 1637054032454, "version": 2, "chainId": 87, "sender": "3PPsdSaURH1Dck9HzLGTcg6TNJwWbwxwhdW", "senderPublicKey": "6rZZwnJRxzZ5S72Xhk7F5n6MX4j6uCiL8oC8Ef9Ws6tz", "proofs": [ "3nyftYuWHEiVnv1U22N3PCqJTkSkn4Dh2s78giXtpK2SV24HHWBmMk3rK3BcXutd469NfoWySkKt7xCv75yZnRcy" ], "script": "base64:AAIFAAAAAAAAAEAIAhIHCgUBAQEBCBIKCggBAQEBAQEBBBIDCgEBEgoKCAEBAQEBAQEIEgQKAgEIEgMKAQgSAwoBCBIECgIICBIAAAAARwAAAAAOZmFybWluZ0FkZHJlc3MBAAAAGgFXWxNnWQZpJ6cQTIpwvUakeLEwDJ+TjyLDAAAAABVyYXJpdHlQcm92aWRlckFkZHJlc3MBAAAAGgFX1fpQIC+2JI9KCns9/Hj6hU1X1QRPe0L5AAAAAAtlZ2dzQXNzZXRJZAEAAAAgo59/TyNyUdEs4iGSYohNDAvz6iJugdWv/AuTF85tsckAAAAAFGZlZUFnZ3JlZ2F0b3JBZGRyZXNzAQAAABoBV9JBmxcAXoMNOcMY8zqVXSuaKc/g8KoRCAAAAAAFU0xPVFMAAAAAAAAAAAoAAAAAB1dBSVRJTkcAAAAAAAAAAAgAAAAADHN0ZXBEdXJhdGlvbgAAAAAAAAAABQAAAAAKZmVlUGVyY2VudAAAAAAAAAAACgEAAAANdHJ5R2V0SW50ZWdlcgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAA10cnlHZXRCb29sZWFuAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiBwEAAAANZ2V0TmV4dEdhbWVJZAAAAAAEAAAABm5leHRJZAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAAApuZXh0R2FtZUlkAwkAAAAAAAACBQAAAAZuZXh0SWQAAAAAAAAAAAAAAAAAAAAAAAEFAAAABm5leHRJZAEAAAAXZ2V0UGxheWVyQ3VycmVudEdhbWVLZXkAAAABAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgUAAAANcGxheWVyQWRkcmVzcwIAAAAMX2N1cnJlbnRHYW1lAQAAABRnZXRQbGF5ZXJDdXJyZW50R2FtZQAAAAEAAAANcGxheWVyQWRkcmVzcwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAXZ2V0UGxheWVyQ3VycmVudEdhbWVLZXkAAAABBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAApnZXRTbG90S2V5AAAAAQAAAARzbG90CQABLAAAAAICAAAABHNsb3QJAAGkAAAAAQUAAAAEc2xvdAEAAAAHZ2V0U2xvdAAAAAEAAAAEc2xvdAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAKZ2V0U2xvdEtleQAAAAEFAAAABHNsb3QBAAAAEGdldFBsYXllclJvbGVLZXkAAAACAAAABmdhbWVJZAAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAANcGxheWVyQWRkcmVzcwEAAAANZ2V0UGxheWVyUm9sZQAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAAQZ2V0UGxheWVyUm9sZUtleQAAAAIFAAAABmdhbWVJZAUAAAANcGxheWVyQWRkcmVzcwEAAAALZ2V0TWFrZXJLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAZfbWFrZXIBAAAACGdldE1ha2VyAAAAAQAAAAZnYW1lSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAALZ2V0TWFrZXJLZXkAAAABBQAAAAZnYW1lSWQBAAAAC2dldFRha2VyS2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAGX3Rha2VyAQAAAAhnZXRUYWtlcgAAAAEAAAAGZ2FtZUlkCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAC2dldFRha2VyS2V5AAAAAQUAAAAGZ2FtZUlkAQAAABZnZXRUYWtlclNraXBSZXBsYWNlS2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAASX3Rha2VyX3NraXBSZXBsYWNlAQAAABNnZXRUYWtlclNraXBSZXBsYWNlAAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRCb29sZWFuAAAAAQkBAAAAFmdldFRha2VyU2tpcFJlcGxhY2VLZXkAAAABBQAAAAZnYW1lSWQBAAAACWdldEJldEtleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAABF9iZXQBAAAABmdldEJldAAAAAEAAAAGZ2FtZUlkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAAlnZXRCZXRLZXkAAAABBQAAAAZnYW1lSWQBAAAAHWdldFdhaXRpbmdFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAYX3dhaXRpbmdFeHBpcmF0aW9uSGVpZ2h0AQAAABpnZXRXYWl0aW5nRXhwaXJhdGlvbkhlaWdodAAAAAEAAAAGZ2FtZUlkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAB1nZXRXYWl0aW5nRXhwaXJhdGlvbkhlaWdodEtleQAAAAEFAAAABmdhbWVJZAEAAAAWZ2V0RXhwaXJhdGlvbkhlaWdodEtleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAEV9leHBpcmF0aW9uSGVpZ2h0AQAAABNnZXRFeHBpcmF0aW9uSGVpZ2h0AAAAAQAAAAZnYW1lSWQJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAFmdldEV4cGlyYXRpb25IZWlnaHRLZXkAAAABBQAAAAZnYW1lSWQBAAAADGdldFJhbmdlc0tleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAB19yYW5nZXMBAAAACWdldFJhbmdlcwAAAAEAAAAGZ2FtZUlkCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAADGdldFJhbmdlc0tleQAAAAEFAAAABmdhbWVJZAEAAAAYZ2V0TWFrZXJSYW5kb21zQ29tbWl0S2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAUX21ha2VyX3JhbmRvbXNDb21taXQBAAAAFWdldE1ha2VyUmFuZG9tc0NvbW1pdAAAAAEAAAAGZ2FtZUlkCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAGGdldE1ha2VyUmFuZG9tc0NvbW1pdEtleQAAAAEFAAAABmdhbWVJZAEAAAANZ2V0UmFuZG9tc0tleQAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAACnBsYXllclJvbGUCAAAACF9yYW5kb21zAQAAAApnZXRSYW5kb21zAAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAA1nZXRSYW5kb21zS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlAQAAAApnZXRTdGVwS2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAAFX3N0ZXABAAAAB2dldFN0ZXAAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAKZ2V0U3RlcEtleQAAAAEFAAAABmdhbWVJZAEAAAAOZ2V0UmFyaXRpZXNLZXkAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAApwbGF5ZXJSb2xlAgAAAAlfcmFyaXRpZXMBAAAAC2dldFJhcml0aWVzAAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAA5nZXRSYXJpdGllc0tleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQEAAAAWZ2V0UmVwbGFjZWRQb3NpdGlvbktleQAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAACnBsYXllclJvbGUCAAAAEV9yZXBsYWNlZFBvc2l0aW9uAQAAABNnZXRSZXBsYWNlZFBvc2l0aW9uAAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAWZ2V0UmVwbGFjZWRQb3NpdGlvbktleQAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQEAAAAMZ2V0RHVja0lkS2V5AAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQABpAAAAAEFAAAABmdhbWVJZAIAAAABXwUAAAAKcGxheWVyUm9sZQIAAAAHX2R1Y2tJZAEAAAAJZ2V0RHVja0lkAAAAAgAAAAZnYW1lSWQAAAAKcGxheWVyUm9sZQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAAxnZXREdWNrSWRLZXkAAAACBQAAAAZnYW1lSWQFAAAACnBsYXllclJvbGUBAAAAFmdldFRha2VyT3JkZXJDb21taXRLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAABJfdGFrZXJfb3JkZXJDb21taXQBAAAAE2dldFRha2VyT3JkZXJDb21taXQAAAABAAAABmdhbWVJZAkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABZnZXRUYWtlck9yZGVyQ29tbWl0S2V5AAAAAQUAAAAGZ2FtZUlkAQAAAAtnZXRPcmRlcktleQAAAAIAAAAGZ2FtZUlkAAAACnBsYXllclJvbGUJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAAV8FAAAACnBsYXllclJvbGUCAAAABl9vcmRlcgEAAAAIZ2V0T3JkZXIAAAACAAAABmdhbWVJZAAAAApwbGF5ZXJSb2xlCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAC2dldE9yZGVyS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlAQAAABJnZXRQbGF5ZXJSZXN1bHRLZXkAAAACAAAABmdhbWVJZAAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAdfcmVzdWx0AQAAAA9nZXRQbGF5ZXJSZXN1bHQAAAACAAAABmdhbWVJZAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAEmdldFBsYXllclJlc3VsdEtleQAAAAIFAAAABmdhbWVJZAUAAAANcGxheWVyQWRkcmVzcwEAAAARZ2V0UGxheWVyUHJpemVLZXkAAAACAAAABmdhbWVJZAAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAZfcHJpemUBAAAADmdldFBsYXllclByaXplAAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARZ2V0UGxheWVyUHJpemVLZXkAAAACBQAAAAZnYW1lSWQFAAAADXBsYXllckFkZHJlc3MBAAAAEGdldFBsYXllcldpbnNLZXkAAAABAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgUAAAANcGxheWVyQWRkcmVzcwIAAAAFX3dpbnMBAAAADWdldFBsYXllcldpbnMAAAABAAAADXBsYXllckFkZHJlc3MJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEGdldFBsYXllcldpbnNLZXkAAAABBQAAAA1wbGF5ZXJBZGRyZXNzAQAAABFnZXRQbGF5ZXJMb3Nlc0tleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACBQAAAA1wbGF5ZXJBZGRyZXNzAgAAAAZfbG9zZXMBAAAADmdldFBsYXllckxvc2VzAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABFnZXRQbGF5ZXJMb3Nlc0tleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAAEWdldFBsYXllckRyYXdzS2V5AAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIFAAAADXBsYXllckFkZHJlc3MCAAAABl9kcmF3cwEAAAAOZ2V0UGxheWVyRHJhd3MAAAABAAAADXBsYXllckFkZHJlc3MJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEWdldFBsYXllckRyYXdzS2V5AAAAAQUAAAANcGxheWVyQWRkcmVzcwEAAAAPZ2V0UGxheWVyUG5MS2V5AAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQABLAAAAAIFAAAADXBsYXllckFkZHJlc3MCAAAABF9QbkwBAAAADGdldFBsYXllclBuTAAAAAEAAAANcGxheWVyQWRkcmVzcwkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAPZ2V0UGxheWVyUG5MS2V5AAAAAQUAAAANcGxheWVyQWRkcmVzcwEAAAARZ2V0R2FtZXNQbGF5ZWRLZXkAAAAAAgAAAAtnYW1lc1BsYXllZAEAAAAOZ2V0R2FtZXNQbGF5ZWQAAAAACQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABFnZXRHYW1lc1BsYXllZEtleQAAAAABAAAADmdldFRvdGFsRmVlS2V5AAAAAAIAAAAIdG90YWxGZWUBAAAAC2dldFRvdGFsRmVlAAAAAAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAOZ2V0VG90YWxGZWVLZXkAAAAAAQAAAA9nZXRGYXJtaW5nUG93ZXIAAAACAAAAB2FkZHJlc3MAAAAHYXNzZXRJZAQAAAAHJG1hdGNoMAkABBoAAAACCQEAAAAHQWRkcmVzcwAAAAEF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BQAAAANuaWwJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADG1ha2VyQWRkcmVzcwAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAF2dldFBsYXllckN1cnJlbnRHYW1lS2V5AAAAAQUAAAAMdGFrZXJBZGRyZXNzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARZ2V0UGxheWVyRHJhd3NLZXkAAAABBQAAAAxtYWtlckFkZHJlc3MJAABkAAAAAgkBAAAADmdldFBsYXllckRyYXdzAAAAAQUAAAAMbWFrZXJBZGRyZXNzAAAAAAAAAAABCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARZ2V0UGxheWVyRHJhd3NLZXkAAAABBQAAAAx0YWtlckFkZHJlc3MJAABkAAAAAgkBAAAADmdldFBsYXllckRyYXdzAAAAAQUAAAAMdGFrZXJBZGRyZXNzAAAAAAAAAAABCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABJnZXRQbGF5ZXJSZXN1bHRLZXkAAAACBQAAAAZnYW1lSWQFAAAADG1ha2VyQWRkcmVzcwIAAAAEZHJhdwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAASZ2V0UGxheWVyUmVzdWx0S2V5AAAAAgUAAAAGZ2FtZUlkBQAAAAx0YWtlckFkZHJlc3MCAAAABGRyYXcJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABFnZXRQbGF5ZXJQcml6ZUtleQAAAAIFAAAABmdhbWVJZAUAAAAMbWFrZXJBZGRyZXNzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARZ2V0UGxheWVyUHJpemVLZXkAAAACBQAAAAZnYW1lSWQFAAAADHRha2VyQWRkcmVzcwAAAAAAAAAAAAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQUAAAAMbWFrZXJBZGRyZXNz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AAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFmdldFJlcGxhY2VkUG9zaXRpb25LZXkAAAACBQAAAAZnYW1lSWQCAAAABW1ha2VyBQAAAA9yZXBsYWNlUG9zaXRpb24JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAADGdldER1Y2tJZEtleQAAAAIFAAAABmdhbWVJZAIAAAAFbWFrZXIFAAAABmR1Y2tJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAOZ2V0UmFyaXRpZXNLZXkAAAACBQAAAAZnYW1lSWQCAAAABXRha2VyCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAQd29yc3RSYXJpdHlUYWtlcgIAAAABfAkAAaQAAAABBQAAABFtZWRpdW1SYXJpdHlUYWtlcgIAAAABfAkAAaQAAAABBQAAAA9iZXN0UmFyaXR5VGFrZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAAApnZXRTdGVwS2V5AAAAAQUAAAAGZ2FtZUlkBQAAAAhuZXh0U3RlcAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAFmdldEV4cGlyYXRpb25IZWlnaHRLZXkAAAABBQAAAAZnYW1lSWQJAABkAAAAAgUAAAAGaGVpZ2h0BQAAAAxzdGVwRHVyYXRpb24FAAAAA25pbAAAAAFpAQAAAAxyZXBsYWNlVGFrZXIAAAACAAAAD3JlcGxhY2VQb3NpdGlvbgAAAAZkdWNrSWQEAAAADWNhbGxlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAGZ2FtZUlkCQEAAAAUZ2V0UGxheWVyQ3VycmVudEdhbWUAAAABBQAAAA1jYWxsZXJBZGRyZXNzBAAAAApwbGF5ZXJSb2xlCQEAAAANZ2V0UGxheWVyUm9sZQAAAAIFAAAABmdhbWVJZAUAAAANY2FsbGVyQWRkcmVzcwQAAAAEc3RlcAkBAAAAB2dldFN0ZXAAAAABBQAAAAZnYW1lSWQEAAAADXJlcGxhY2VSYXJpdHkDAwMJAAAAAAAAAgUAAAAPcmVwbGFjZVBvc2l0aW9uAAAA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", "height": 2858404, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: HbAGLsz1Uv41CQWRNe1x1HtsMxRFmhvkiEK6aXybXLEM Next: none Diff:
OldNewDifferences
316316 then throw("This slot is busy")
317317 else if ((bk.assetId != c))
318318 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
319- else if ((bl != 10000000))
320- then throw("Bet must be 0.1 EGG")
319+ else if ((100000 > bl))
320+ then throw("Bet must be >= 0.001 EGG")
321321 else if (if ((1 > be))
322322 then true
323323 else (be > 5))
502502 then true
503503 else (br > 1000000000000))
504504 then throw("Invalid random6")
505- else [StringEntry(Q(y, "maker"), bA), StringEntry(V(y, "maker"), ((((toString(bH) + "|") + toString(bI)) + "|") + toString(bJ))), IntegerEntry(X(y, "maker"), bv), StringEntry(Z(y, "maker"), bw), StringEntry(V(y, "taker"), ((((toString(bK) + "|") + toString(bL)) + "|") + toString(bM))), IntegerEntry(T(y), bN), IntegerEntry(K(y), (height + g))]
505+ else if ((toBase58String(sha256(toBytes(bA))) != bz))
506+ then throw("Randoms don't match commit")
507+ else [StringEntry(Q(y, "maker"), bA), StringEntry(V(y, "maker"), ((((toString(bH) + "|") + toString(bI)) + "|") + toString(bJ))), IntegerEntry(X(y, "maker"), bv), StringEntry(Z(y, "maker"), bw), StringEntry(V(y, "taker"), ((((toString(bK) + "|") + toString(bL)) + "|") + toString(bM))), IntegerEntry(T(y), bN), IntegerEntry(K(y), (height + g))]
506508 }
507509
508510
646648 then (bR != "3|2|1")
647649 else false)
648650 then throw("Invalid order data")
649- else (aV(y, bR, false) ++ [StringEntry(ad(y, R), bR), IntegerEntry(T(y), (aK + 1))])
651+ else if ((toBase58String(sha256(toBytes((bR + bS)))) != ac(y)))
652+ then throw("Reveal doesn't match commit")
653+ else (aV(y, bR, false) ++ [StringEntry(ad(y, R), bR), IntegerEntry(T(y), (aK + 1))])
650654 }
651655
652656
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = base58'3PAETTtuW7aSiyKtn9GuML3RgtV1xdq1mQW'
55
66 let b = base58'3PMSJXA6nm5AsB8Kr2h1uW2mLrCmb57kpwA'
77
88 let c = base58'C1iWsKGqLwjHUndiQ7iXpdmPum9PeCDFfyXBdJJosDRS'
99
1010 let d = base58'3PM6dDuKp33bBfV9SnR8zaQNQxXCQsBaJs9'
1111
1212 let e = 10
1313
1414 let f = 8
1515
1616 let g = 5
1717
1818 let h = 10
1919
2020 func i (j) = {
2121 let k = getInteger(this, j)
2222 if ($isInstanceOf(k, "Int"))
2323 then {
2424 let l = k
2525 l
2626 }
2727 else 0
2828 }
2929
3030
3131 func m (j) = {
3232 let k = getString(this, j)
3333 if ($isInstanceOf(k, "String"))
3434 then {
3535 let n = k
3636 n
3737 }
3838 else ""
3939 }
4040
4141
4242 func o (j) = {
4343 let k = getBoolean(this, j)
4444 if ($isInstanceOf(k, "Boolean"))
4545 then {
4646 let l = k
4747 l
4848 }
4949 else false
5050 }
5151
5252
5353 func p () = {
5454 let q = i("nextGameId")
5555 if ((q == 0))
5656 then 1
5757 else q
5858 }
5959
6060
6161 func r (s) = (s + "_currentGame")
6262
6363
6464 func t (s) = i(r(s))
6565
6666
6767 func u (v) = ("slot" + toString(v))
6868
6969
7070 func w (v) = i(u(v))
7171
7272
7373 func x (y,s) = ((("game" + toString(y)) + "_") + s)
7474
7575
7676 func z (y,s) = m(x(y, s))
7777
7878
7979 func A (y) = (("game" + toString(y)) + "_maker")
8080
8181
8282 func B (y) = m(A(y))
8383
8484
8585 func C (y) = (("game" + toString(y)) + "_taker")
8686
8787
8888 func D (y) = m(C(y))
8989
9090
9191 func E (y) = (("game" + toString(y)) + "_taker_skipReplace")
9292
9393
9494 func F (y) = o(E(y))
9595
9696
9797 func G (y) = (("game" + toString(y)) + "_bet")
9898
9999
100100 func H (y) = i(G(y))
101101
102102
103103 func I (y) = (("game" + toString(y)) + "_waitingExpirationHeight")
104104
105105
106106 func J (y) = i(I(y))
107107
108108
109109 func K (y) = (("game" + toString(y)) + "_expirationHeight")
110110
111111
112112 func L (y) = i(K(y))
113113
114114
115115 func M (y) = (("game" + toString(y)) + "_ranges")
116116
117117
118118 func N (y) = m(M(y))
119119
120120
121121 func O (y) = (("game" + toString(y)) + "_maker_randomsCommit")
122122
123123
124124 func P (y) = m(O(y))
125125
126126
127127 func Q (y,R) = (((("game" + toString(y)) + "_") + R) + "_randoms")
128128
129129
130130 func S (y,R) = m(Q(y, R))
131131
132132
133133 func T (y) = (("game" + toString(y)) + "_step")
134134
135135
136136 func U (y) = i(T(y))
137137
138138
139139 func V (y,R) = (((("game" + toString(y)) + "_") + R) + "_rarities")
140140
141141
142142 func W (y,R) = m(V(y, R))
143143
144144
145145 func X (y,R) = (((("game" + toString(y)) + "_") + R) + "_replacedPosition")
146146
147147
148148 func Y (y,R) = i(X(y, R))
149149
150150
151151 func Z (y,R) = (((("game" + toString(y)) + "_") + R) + "_duckId")
152152
153153
154154 func aa (y,R) = m(Z(y, R))
155155
156156
157157 func ab (y) = (("game" + toString(y)) + "_taker_orderCommit")
158158
159159
160160 func ac (y) = m(ab(y))
161161
162162
163163 func ad (y,R) = (((("game" + toString(y)) + "_") + R) + "_order")
164164
165165
166166 func ae (y,R) = m(ad(y, R))
167167
168168
169169 func af (y,s) = (((("game" + toString(y)) + "_") + s) + "_result")
170170
171171
172172 func ag (y,s) = m(af(y, s))
173173
174174
175175 func ah (y,s) = (((("game" + toString(y)) + "_") + s) + "_prize")
176176
177177
178178 func ai (y,s) = i(ah(y, s))
179179
180180
181181 func aj (s) = (s + "_wins")
182182
183183
184184 func ak (s) = i(aj(s))
185185
186186
187187 func al (s) = (s + "_loses")
188188
189189
190190 func am (s) = i(al(s))
191191
192192
193193 func an (s) = (s + "_draws")
194194
195195
196196 func ao (s) = i(an(s))
197197
198198
199199 func ap (s) = (s + "_PnL")
200200
201201
202202 func aq (s) = i(ap(s))
203203
204204
205205 func ar () = "gamesPlayed"
206206
207207
208208 func as () = i(ar())
209209
210210
211211 func at () = "totalFee"
212212
213213
214214 func au () = i(at())
215215
216216
217217 func av (aw,ax) = {
218218 let k = getInteger(Address(a), (((("address_" + aw) + "_asset_") + ax) + "_farmingPower"))
219219 if ($isInstanceOf(k, "Int"))
220220 then {
221221 let ay = k
222222 ay
223223 }
224224 else 0
225225 }
226226
227227
228228 func az (aA,ax) = if ((assetBalance(aA, ax) > 0))
229229 then true
230230 else (av(toBase58String(aA.bytes), toBase58String(ax)) > 0)
231231
232232
233233 let aB = [[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]]
234234
235235 func aC (aD,aE) = {
236236 let aF = (aD % size(aB[(aE - 1)]))
237237 aB[(aE - 1)][aF]
238238 }
239239
240240
241241 func aG (n,l) = if ((n > l))
242242 then 1
243243 else if ((l > n))
244244 then -1
245245 else 0
246246
247247
248248 func aH (y,aI,aJ) = if (aJ)
249249 then {
250250 let aK = U(y)
251251 let aL = L(y)
252252 if ((aK == 0))
253253 then throw("Game is not started")
254254 else if ((aL > height))
255255 then throw("Game is not expired")
256256 else if (if ((aK == 1))
257257 then true
258258 else (aK == 4))
259259 then "taker"
260260 else "maker"
261261 }
262262 else {
263263 let aM = split(ae(y, "maker"), "|")
264264 let aN = [parseIntValue(aM[0]), parseIntValue(aM[1]), parseIntValue(aM[2])]
265265 let aO = split(aI, "|")
266266 let aP = [parseIntValue(aO[0]), parseIntValue(aO[1]), parseIntValue(aO[2])]
267267 let aQ = split(W(y, "maker"), "|")
268268 let aR = [parseIntValue(aQ[0]), parseIntValue(aQ[1]), parseIntValue(aQ[2])]
269269 let aS = split(W(y, "taker"), "|")
270270 let aT = [parseIntValue(aS[0]), parseIntValue(aS[1]), parseIntValue(aS[2])]
271271 let aU = ((aG(aR[(aN[0] - 1)], aT[(aP[0] - 1)]) + aG(aR[(aN[1] - 1)], aT[(aP[1] - 1)])) + aG(aR[(aN[2] - 1)], aT[(aP[2] - 1)]))
272272 if ((aU > 0))
273273 then "maker"
274274 else if ((0 > aU))
275275 then "taker"
276276 else "draw"
277277 }
278278
279279
280280 func aV (y,aP,aJ) = {
281281 let aW = H(y)
282282 let aX = B(y)
283283 let aY = D(y)
284284 let aZ = aH(y, aP, aJ)
285285 let ba = if ((aZ == "maker"))
286286 then aX
287287 else if ((aZ == "taker"))
288288 then aY
289289 else ""
290290 let bb = if ((aZ == "taker"))
291291 then aX
292292 else if ((aZ == "maker"))
293293 then aY
294294 else ""
295295 let bc = fraction(aW, h, 100)
296296 if ((ba != ""))
297297 then [IntegerEntry(r(ba), 0), IntegerEntry(r(bb), 0), IntegerEntry(aj(ba), (ak(ba) + 1)), IntegerEntry(al(bb), (am(bb) + 1)), StringEntry(af(y, ba), "win"), StringEntry(af(y, bb), "lose"), IntegerEntry(ah(y, ba), (aW - bc)), IntegerEntry(ah(y, bb), -(aW)), IntegerEntry(ap(ba), ((aq(ba) + aW) - bc)), IntegerEntry(ap(bb), (aq(bb) - aW)), IntegerEntry(at(), (au() + bc)), ScriptTransfer(Address(fromBase58String(ba)), ((aW * 2) - bc), c), ScriptTransfer(Address(d), bc, c)]
298298 else [IntegerEntry(r(aX), 0), IntegerEntry(r(aY), 0), IntegerEntry(an(aX), (ao(aX) + 1)), IntegerEntry(an(aY), (ao(aY) + 1)), StringEntry(af(y, aX), "draw"), StringEntry(af(y, aY), "draw"), IntegerEntry(ah(y, aX), 0), IntegerEntry(ah(y, aY), 0), ScriptTransfer(Address(fromBase58String(aX)), aW, c), ScriptTransfer(Address(fromBase58String(aY)), aW, c)]
299299 }
300300
301301
302302 @Callable(bd)
303303 func makeGame (v,be,bf,bg,bh) = {
304304 let bi = toBase58String(bd.caller.bytes)
305305 let bj = w(v)
306306 let bk = value(bd.payments[0])
307307 let bl = bk.amount
308308 let y = p()
309309 if ((t(bi) != 0))
310310 then throw("You already have an active game")
311311 else if (if ((0 > v))
312312 then true
313313 else (v >= e))
314314 then throw("Invalid slot")
315315 else if ((bj != 0))
316316 then throw("This slot is busy")
317317 else if ((bk.assetId != c))
318318 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
319- else if ((bl != 10000000))
320- then throw("Bet must be 0.1 EGG")
319+ else if ((100000 > bl))
320+ then throw("Bet must be >= 0.001 EGG")
321321 else if (if ((1 > be))
322322 then true
323323 else (be > 5))
324324 then throw("Invalid range for the worst duck")
325325 else if (if ((1 > bf))
326326 then true
327327 else (bf > 5))
328328 then throw("Invalid range for the medium duck")
329329 else if (if ((1 > bg))
330330 then true
331331 else (bg > 5))
332332 then throw("Invalid range for the best duck")
333333 else if ((be > bf))
334334 then throw("The medium range can't be less than the worst one")
335335 else if ((bf > bg))
336336 then throw("The best range can't be worse than the medium one")
337337 else [IntegerEntry(r(bi), y), StringEntry(A(y), bi), StringEntry(x(y, bi), "maker"), IntegerEntry(G(y), bl), StringEntry(M(y), ((((toString(be) + "|") + toString(bf)) + "|") + toString(bg))), StringEntry(O(y), bh), IntegerEntry(I(y), (height + f)), IntegerEntry(u(v), y), IntegerEntry("nextGameId", (y + 1))]
338338 }
339339
340340
341341
342342 @Callable(bd)
343343 func takeGame (v,bm,bn,bo,bp,bq,br,bs) = {
344344 let bi = toBase58String(bd.caller.bytes)
345345 let y = w(v)
346346 let bk = value(bd.payments[0])
347347 let bt = ((((((((((toString(bm) + "|") + toString(bn)) + "|") + toString(bo)) + "|") + toString(bp)) + "|") + toString(bq)) + "|") + toString(br))
348348 if ((t(bi) != 0))
349349 then throw("You already have an active game")
350350 else if (if ((0 > v))
351351 then true
352352 else (v >= e))
353353 then throw("Invalid slot")
354354 else if ((w(v) == 0))
355355 then throw("This slot is empty")
356356 else if ((bk.assetId != c))
357357 then throw(("You can attach only EGGs with the following asset id - " + toBase58String(c)))
358358 else if ((bk.amount != H(y)))
359359 then throw("Insufficient eggs amount")
360360 else if ((height >= J(y)))
361361 then throw("This game is expired")
362362 else if (if ((0 > bm))
363363 then true
364364 else (bm > 1000000000000))
365365 then throw("Invalid random1")
366366 else if (if ((0 > bn))
367367 then true
368368 else (bn > 1000000000000))
369369 then throw("Invalid random2")
370370 else if (if ((0 > bo))
371371 then true
372372 else (bo > 1000000000000))
373373 then throw("Invalid random3")
374374 else if (if ((0 > bp))
375375 then true
376376 else (bp > 1000000000000))
377377 then throw("Invalid random4")
378378 else if (if ((0 > bq))
379379 then true
380380 else (bq > 1000000000000))
381381 then throw("Invalid random5")
382382 else if (if ((0 > br))
383383 then true
384384 else (br > 1000000000000))
385385 then throw("Invalid random6")
386386 else [IntegerEntry(r(bi), y), StringEntry(C(y), bi), StringEntry(x(y, bi), "taker"), StringEntry(Q(y, "taker"), bt), BooleanEntry(E(y), bs), IntegerEntry(T(y), 1), IntegerEntry(K(y), (height + g)), IntegerEntry(u(v), 0), IntegerEntry("gamesPlayed", (as() + 1))]
387387 }
388388
389389
390390
391391 @Callable(bd)
392392 func kickGame (v) = {
393393 let bi = toBase58String(bd.caller.bytes)
394394 let y = w(v)
395395 let bu = B(y)
396396 if (if ((0 > v))
397397 then true
398398 else (v >= e))
399399 then throw("Invalid slot")
400400 else if ((y == 0))
401401 then throw("Slot is empty")
402402 else if (if ((bi != bu))
403403 then (J(y) > height)
404404 else false)
405405 then throw("Waiting is not finished yet")
406406 else [IntegerEntry(r(bu), 0), IntegerEntry(u(v), 0), ScriptTransfer(Address(fromBase58String(bu)), H(y), c)]
407407 }
408408
409409
410410
411411 @Callable(bd)
412412 func replaceMaker (bm,bn,bo,bp,bq,br,bv,bw) = {
413413 let bi = toBase58String(bd.caller.bytes)
414414 let y = t(bi)
415415 let R = z(y, bi)
416416 let aK = U(y)
417417 let bx = split(N(y), "|")
418418 let by = [parseIntValue(bx[0]), parseIntValue(bx[1]), parseIntValue(bx[2])]
419419 let bz = P(y)
420420 let bA = ((((((((((toString(bm) + "|") + toString(bn)) + "|") + toString(bo)) + "|") + toString(bp)) + "|") + toString(bq)) + "|") + toString(br))
421421 let bB = split(S(y, "taker"), "|")
422422 let bC = if (if (if ((bv == 1))
423423 then true
424424 else (bv == 2))
425425 then true
426426 else (bv == 3))
427427 then {
428428 let bD = invoke(Address(b), "getAssetRarity", [bw], nil)
429429 if ((bD == bD))
430430 then {
431431 let bE = {
432432 let k = bD
433433 if ($isInstanceOf(k, "Int"))
434434 then {
435435 let bF = k
436436 bF
437437 }
438438 else throw("Incorrect invoke result")
439439 }
440440 let bG = by[(bv - 1)]
441441 if (!(az(bd.caller, fromBase58String(bw))))
442442 then throw((("Asset " + bw) + " doesn't belong to you"))
443443 else if (if ((5 > bG))
444444 then if ((bE > (bG * 10)))
445445 then true
446446 else (((bG - 1) * 10) >= bE)
447447 else false)
448448 then throw("Duck doesn't fit rarity range")
449449 else if (if ((bG == 5))
450450 then (40 >= bE)
451451 else false)
452452 then throw("Duck doesn't fit rarity replaceRange")
453453 else bE
454454 }
455455 else throw("Strict value is not equal to itself.")
456456 }
457457 else 0
458458 let bH = if ((bv == 1))
459459 then bC
460460 else aC((bm + parseIntValue(bB[0])), by[0])
461461 let bI = if ((bv == 2))
462462 then bC
463463 else aC((bn + parseIntValue(bB[1])), by[1])
464464 let bJ = if ((bv == 3))
465465 then bC
466466 else aC((bo + parseIntValue(bB[2])), by[2])
467467 let bK = aC((bp + parseIntValue(bB[3])), by[0])
468468 let bL = aC((bq + parseIntValue(bB[4])), by[1])
469469 let bM = aC((br + parseIntValue(bB[5])), by[2])
470470 let bN = if (F(y))
471471 then (aK + 2)
472472 else (aK + 1)
473473 if ((y == 0))
474474 then throw("You don't have an active game")
475475 else if ((R != "maker"))
476476 then throw("Only maker can call this method")
477477 else if ((1 > aK))
478478 then throw("Game is not started")
479479 else if ((aK > 1))
480480 then throw("This step is finished")
481481 else if (if ((0 > bm))
482482 then true
483483 else (bm > 1000000000000))
484484 then throw("Invalid random1")
485485 else if (if ((0 > bn))
486486 then true
487487 else (bn > 1000000000000))
488488 then throw("Invalid random2")
489489 else if (if ((0 > bo))
490490 then true
491491 else (bo > 1000000000000))
492492 then throw("Invalid random3")
493493 else if (if ((0 > bp))
494494 then true
495495 else (bp > 1000000000000))
496496 then throw("Invalid random4")
497497 else if (if ((0 > bq))
498498 then true
499499 else (bq > 1000000000000))
500500 then throw("Invalid random5")
501501 else if (if ((0 > br))
502502 then true
503503 else (br > 1000000000000))
504504 then throw("Invalid random6")
505- else [StringEntry(Q(y, "maker"), bA), StringEntry(V(y, "maker"), ((((toString(bH) + "|") + toString(bI)) + "|") + toString(bJ))), IntegerEntry(X(y, "maker"), bv), StringEntry(Z(y, "maker"), bw), StringEntry(V(y, "taker"), ((((toString(bK) + "|") + toString(bL)) + "|") + toString(bM))), IntegerEntry(T(y), bN), IntegerEntry(K(y), (height + g))]
505+ else if ((toBase58String(sha256(toBytes(bA))) != bz))
506+ then throw("Randoms don't match commit")
507+ else [StringEntry(Q(y, "maker"), bA), StringEntry(V(y, "maker"), ((((toString(bH) + "|") + toString(bI)) + "|") + toString(bJ))), IntegerEntry(X(y, "maker"), bv), StringEntry(Z(y, "maker"), bw), StringEntry(V(y, "taker"), ((((toString(bK) + "|") + toString(bL)) + "|") + toString(bM))), IntegerEntry(T(y), bN), IntegerEntry(K(y), (height + g))]
506508 }
507509
508510
509511
510512 @Callable(bd)
511513 func replaceTaker (bv,bw) = {
512514 let bi = toBase58String(bd.caller.bytes)
513515 let y = t(bi)
514516 let R = z(y, bi)
515517 let aK = U(y)
516518 let bC = if (if (if ((bv == 1))
517519 then true
518520 else (bv == 2))
519521 then true
520522 else (bv == 3))
521523 then {
522524 let bD = invoke(Address(b), "getAssetRarity", [bw], nil)
523525 if ((bD == bD))
524526 then {
525527 let bE = {
526528 let k = bD
527529 if ($isInstanceOf(k, "Int"))
528530 then {
529531 let bF = k
530532 bF
531533 }
532534 else throw("Incorrect invoke result")
533535 }
534536 let bx = split(N(y), "|")
535537 let by = [parseIntValue(bx[0]), parseIntValue(bx[1]), parseIntValue(bx[2])]
536538 let bG = by[(bv - 1)]
537539 if (!(az(bd.caller, fromBase58String(bw))))
538540 then throw((("Asset " + bw) + " doesn't belong to you"))
539541 else if (if ((5 > bG))
540542 then if ((bE > (bG * 10)))
541543 then true
542544 else (((bG - 1) * 10) >= bE)
543545 else false)
544546 then throw("Duck doesn't fit rarity range")
545547 else if (if ((bG == 5))
546548 then (40 >= bE)
547549 else false)
548550 then throw("Duck doesn't fit rarity replaceRange")
549551 else bE
550552 }
551553 else throw("Strict value is not equal to itself.")
552554 }
553555 else 0
554556 let bO = split(W(y, "taker"), "|")
555557 let bP = (((nil :+ (if ((bv == 1))
556558 then toString(bC)
557559 else bO[0])) :+ (if ((bv == 2))
558560 then toString(bC)
559561 else bO[1])) :+ (if ((bv == 3))
560562 then toString(bC)
561563 else bO[2]))
562564 if ((y == 0))
563565 then throw("You don't have an active game")
564566 else if ((R != "taker"))
565567 then throw("Only taker can call this method")
566568 else if ((2 > aK))
567569 then throw("This step is not started")
568570 else if ((aK > 2))
569571 then throw("This step is finished")
570572 else [StringEntry(V(y, "taker"), ((((bP[0] + "|") + bP[1]) + "|") + bP[2])), IntegerEntry(X(y, "taker"), bv), StringEntry(Z(y, "taker"), bw), IntegerEntry(T(y), (aK + 1)), IntegerEntry(K(y), (height + g))]
571573 }
572574
573575
574576
575577 @Callable(bd)
576578 func commitOrderTaker (bQ) = {
577579 let bi = toBase58String(bd.caller.bytes)
578580 let y = t(bi)
579581 let R = z(y, bi)
580582 let aK = U(y)
581583 if ((y == 0))
582584 then throw("You don't have an active game")
583585 else if ((R != "taker"))
584586 then throw("Only taker can call this method")
585587 else if ((3 > aK))
586588 then throw("This step is not started")
587589 else if ((aK > 3))
588590 then throw("This step is finished")
589591 else [StringEntry(ab(y), bQ), IntegerEntry(T(y), (aK + 1)), IntegerEntry(K(y), (height + g))]
590592 }
591593
592594
593595
594596 @Callable(bd)
595597 func setOrderMaker (bR) = {
596598 let bi = toBase58String(bd.caller.bytes)
597599 let y = t(bi)
598600 let R = z(y, bi)
599601 let aK = U(y)
600602 if ((y == 0))
601603 then throw("You don't have an active game")
602604 else if ((R != "maker"))
603605 then throw("Only maker can call this method")
604606 else if ((4 > aK))
605607 then throw("This step is not started")
606608 else if ((aK > 4))
607609 then throw("This step is finished")
608610 else if (if (if (if (if (if ((bR != "1|2|3"))
609611 then (bR != "1|3|2")
610612 else false)
611613 then (bR != "2|1|3")
612614 else false)
613615 then (bR != "2|3|1")
614616 else false)
615617 then (bR != "3|1|2")
616618 else false)
617619 then (bR != "3|2|1")
618620 else false)
619621 then throw("Invalid order data")
620622 else [StringEntry(ad(y, R), bR), IntegerEntry(T(y), (aK + 1)), IntegerEntry(K(y), (height + g))]
621623 }
622624
623625
624626
625627 @Callable(bd)
626628 func revealOrderTaker (bR,bS) = {
627629 let bi = toBase58String(bd.caller.bytes)
628630 let y = t(bi)
629631 let R = z(y, bi)
630632 let aK = U(y)
631633 if ((y == 0))
632634 then throw("You don't have an active game")
633635 else if ((R != "taker"))
634636 then throw("Only taker can call this method")
635637 else if ((5 > aK))
636638 then throw("This step is not started")
637639 else if (if (if (if (if (if ((bR != "1|2|3"))
638640 then (bR != "1|3|2")
639641 else false)
640642 then (bR != "2|1|3")
641643 else false)
642644 then (bR != "2|3|1")
643645 else false)
644646 then (bR != "3|1|2")
645647 else false)
646648 then (bR != "3|2|1")
647649 else false)
648650 then throw("Invalid order data")
649- else (aV(y, bR, false) ++ [StringEntry(ad(y, R), bR), IntegerEntry(T(y), (aK + 1))])
651+ else if ((toBase58String(sha256(toBytes((bR + bS)))) != ac(y)))
652+ then throw("Reveal doesn't match commit")
653+ else (aV(y, bR, false) ++ [StringEntry(ad(y, R), bR), IntegerEntry(T(y), (aK + 1))])
650654 }
651655
652656
653657
654658 @Callable(bd)
655659 func getPrizeExpired () = {
656660 let bi = toBase58String(bd.caller.bytes)
657661 let y = t(bi)
658662 if ((y == 0))
659663 then throw("You don't have an active game")
660664 else aV(y, "", true)
661665 }
662666
663667
664668 @Verifier(bT)
665669 func bU () = sigVerify(bT.bodyBytes, bT.proofs[0], bT.senderPublicKey)
666670

github/deemru/w8io/873ac7e 
118.42 ms