tx · F3u8NrTtCXTNBNQ2YXdA7zUQk8Z6MweFvLFus86oTdkq

3MrVQCtQhPiNJadAh9Sx6iZ5fFb8AHoDzst:  -0.01000000 Waves

2021.08.29 14:47 [1679603] smart account 3MrVQCtQhPiNJadAh9Sx6iZ5fFb8AHoDzst > SELF 0.00000000 Waves

{ "type": 13, "id": "F3u8NrTtCXTNBNQ2YXdA7zUQk8Z6MweFvLFus86oTdkq", "fee": 1000000, "feeAssetId": null, "timestamp": 1630237644170, "version": 2, "chainId": 84, "sender": "3MrVQCtQhPiNJadAh9Sx6iZ5fFb8AHoDzst", "senderPublicKey": "8tfz2GbeTu8aH3CqeTHgdhKC1YB2bWJMR4VGTWRLbhgh", "proofs": [ "SddCGYQXCs3NaQyRBeWAZbvJjBfbAzNR7Q2imj8B1JA5PsZwSpCDLMF8pxNzCbPxFnaQyEyDKHHet4kF3hxX45S" ], "script": "base64:AAIFAAAAAAAAACMIAhIGCgQBAQEBEgMKAQESAwoBARIAEgMKAQgSBAoCCAgSAAAAADYAAAAAEGluY3ViYXRvckFkZHJlc3MBAAAAGgFULtWM0cQB59XpAM7NQCSesRQHNOlezyuqAAAAAA5icmVlZGVyQWRkcmVzcwEAAAAaAVSF5nsrInT2j7D/pShyLfVcPKxPpUuOW44AAAAAC2VnZ3NBc3NldElkAQAAACAlAmXM9wRoyL4BWZF45VhaOGYUE61KTEq3/gUXSBcWgwAAAAAIbWFrZXJGZWUAAAAAAAAAAAEAAAAACHRha2VyRmVlAAAAAAAAAAABAAAAAAVTTE9UUwAAAAAAAAAACgAAAAAHV0FJVElORwAAAAAAAAAABQAAAAAMc3RlcER1cmF0aW9uAAAAAAAAAAADAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADXRyeUdldEJvb2xlYW4AAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAA1nZXROZXh0R2FtZUlkAAAAAAQAAAAGbmV4dElkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAECAAAACm5leHRHYW1lSWQDCQAAAAAAAAIFAAAABm5leHRJZAAAAAAAAAAAAAAAAAAAAAAAAQUAAAAGbmV4dElkAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEAAAANcGxheWVyQWRkcmVzcwkAASwAAAACAgAAAAxjdXJyZW50R2FtZV8FAAAADXBsYXllckFkZHJlc3MBAAAAFGdldFBsYXllckN1cnJlbnRHYW1lAAAAAQAAAA1wbGF5ZXJBZGRyZXNzCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADXBsYXllckFkZHJlc3MBAAAACmdldFNsb3RLZXkAAAABAAAABHNsb3QJAAEsAAAAAgIAAAAEc2xvdAkAAaQAAAABBQAAAARzbG90AQAAAAdnZXRTbG90AAAAAQAAAARzbG90CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAApnZXRTbG90S2V5AAAAAQUAAAAEc2xvdAEAAAAQZ2V0UGxheWVyUm9sZUtleQAAAAIAAAAGZ2FtZUlkAAAADXBsYXllckFkZHJlc3MJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAFfBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgAAAAZnYW1lSWQAAAANcGxheWVyQWRkcmVzcwkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABBnZXRQbGF5ZXJSb2xlS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1wbGF5ZXJBZGRyZXNzAQAAAAtnZXRNYWtlcktleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAABl9tYWtlcgEAAAAIZ2V0TWFrZXIAAAABAAAABmdhbWVJZAkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAAAtnZXRNYWtlcktleQAAAAEFAAAABmdhbWVJZAEAAAALZ2V0VGFrZXJLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAZfdGFrZXIBAAAACGdldFRha2VyAAAAAQAAAAZnYW1lSWQJAQAAAAx0cnlHZXRTdHJpbmcAAAABCQEAAAALZ2V0VGFrZXJLZXkAAAABBQAAAAZnYW1lSWQBAAAADWdldEJldEVnZ3NLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAAhfYmV0RWdncwEAAAAKZ2V0QmV0RWdncwAAAAEAAAAGZ2FtZUlkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAAA1nZXRCZXRFZ2dzS2V5AAAAAQUAAAAGZ2FtZUlkAQAAAB1nZXRXYWl0aW5nRXhwaXJhdGlvbkhlaWdodEtleQAAAAEAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgIAAAAEZ2FtZQkAAaQAAAABBQAAAAZnYW1lSWQCAAAAGF93YWl0aW5nRXhwaXJhdGlvbkhlaWdodAEAAAAaZ2V0V2FpdGluZ0V4cGlyYXRpb25IZWlnaHQAAAABAAAABmdhbWVJZAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAdZ2V0V2FpdGluZ0V4cGlyYXRpb25IZWlnaHRLZXkAAAABBQAAAAZnYW1lSWQBAAAAFmdldEV4cGlyYXRpb25IZWlnaHRLZXkAAAABAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAABFfZXhwaXJhdGlvbkhlaWdodAEAAAATZ2V0RXhwaXJhdGlvbkhlaWdodAAAAAEAAAAGZ2FtZUlkCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABZnZXRFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkAQAAABFnZXRSYXJpdHlSYW5nZUtleQAAAAIAAAAGZ2FtZUlkAAAADXJhbmdlUG9zaXRpb24JAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAABGdhbWUJAAGkAAAAAQUAAAAGZ2FtZUlkAgAAAA1fcmFyaXR5UmFuZ2VfBQAAAA1yYW5nZVBvc2l0aW9uAQAAAA5nZXRSYXJpdHlSYW5nZQAAAAIAAAAGZ2FtZUlkAAAADXJhbmdlUG9zaXRpb24JAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAEWdldFJhcml0eVJhbmdlS2V5AAAAAgUAAAAGZ2FtZUlkBQAAAA1yYW5nZVBvc2l0aW9uAQAAAApnZXRTdGVwS2V5AAAAAQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACAgAAAARnYW1lCQAB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AZAAAAABBQAAAA0kbGlzdDUyODY1MzE3BAAAAA0kYWNjMDUyODY1MzE3AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTUyODY1MzE3AAAAAAAAAAAABQAAAA0kYWNjMDUyODY1MzE3BAAAAA0kYWNjMTUyODY1MzE3CQEAAAAJaXNTeW1ib2xBAAAAAgUAAAANJGFjYzA1Mjg2NTMxNwkAAZEAAAACBQAAAA0kbGlzdDUyODY1MzE3AAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTUyODY1MzE3AAAAAAAAAAABBQAAAA0kYWNjMTUyODY1MzE3BAAAAA0kYWNjMjUyODY1MzE3CQEAAAAJaXNTeW1ib2xBAAAAAgUAAAANJGFjYzE1Mjg2NTMxNwkAAZEAAAACBQAAAA0kbGlzdDUyODY1MzE3AAAAAAAAAAABAwkAAAAAAAACBQAAAA0kc2l6ZTUyODY1MzE3AAAAAAAAAAACBQAAAA0kYWNjMjUyODY1MzE3BAAAAA0kYWNjMzUyODY1MzE3CQEAAAAJaXNTeW1ib2xBAAAAAgUAAAANJGFjYzI1Mjg2NTMxNwkAAZEAAAACBQAAAA0kbGlzdDUyODY1MzE3AAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTUyODY1MzE3AAAAAAAAAAADBQAAAA0kYWNjMzUyODY1MzE3BAAAAA0kYWNjNDUyODY1MzE3CQEAAAAJaXNTeW1ib2xBAAAAAgUAAAANJGFjYzM1Mjg2NTMxNwkAAZEAAAACBQAAAA0kbGlzdDUyODY1MzE3AAAAAAAAAAADAwkAAAAAAAACBQAAAA0kc2l6ZTUyODY1MzE3AAAAAAAAAAAEBQAAAA0kYWNjNDUyODY1MzE3BAAAAA0kYWNjNTUyODY1MzE3CQEAAAAJaXNTeW1ib2xBAAAAAgUAAAANJGFjYzQ1Mjg2NTMxNwkAAZEAAAACBQAAAA0kbGlzdDUyODY1MzE3AAAAAAAAAAAEAwkAAAAAAAACBQAAAA0kc2l6ZTUyODY1MzE3AAAAAAAAAAAFBQAAAA0kYWNjNTUyODY1MzE3BAAAAA0kYWNjNjUyODY1MzE3CQEAAAAJaXNTeW1ib2xBAAAAAgUAAAANJGFjYzU1Mjg2NTMxNwkAAZEAAAACBQAAAA0kbGlzdDUy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ZTU0OTI1NTIzAAAAAAAAAAAABQAAAA0kYWNjMDU0OTI1NTIzBAAAAA0kYWNjMTU0OTI1NTIzCQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzA1NDkyNTUyMwkAAZEAAAACBQAAAA0kbGlzdDU0OTI1NTIzAAAAAAAAAAAAAwkAAAAAAAACBQAAAA0kc2l6ZTU0OTI1NTIzAAAAAAAAAAABBQAAAA0kYWNjMTU0OTI1NTIzBAAAAA0kYWNjMjU0OTI1NTIzCQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzE1NDkyNTUyMwkAAZEAAAACBQAAAA0kbGlzdDU0OTI1NTIzAAAAAAAAAAABAwkAAAAAAAACBQAAAA0kc2l6ZTU0OTI1NTIzAAAAAAAAAAACBQAAAA0kYWNjMjU0OTI1NTIzBAAAAA0kYWNjMzU0OTI1NTIzCQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzI1NDkyNTUyMwkAAZEAAAACBQAAAA0kbGlzdDU0OTI1NTIzAAAAAAAAAAACAwkAAAAAAAACBQAAAA0kc2l6ZTU0OTI1NTIzAAAAAAAAAAADBQAAAA0kYWNjMzU0OTI1NTIzBAAAAA0kYWNjNDU0OTI1NTIzCQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzM1NDkyNTUyMwkAAZEAAAACBQAAAA0kbGlzdDU0OTI1NTIzAAAAAAAAAAADAwkAAAAAAAACBQAAAA0kc2l6ZTU0OTI1NTIzAAAAAAAAAAAEBQAAAA0kYWNjNDU0OTI1NTIzBAAAAA0kYWNjNTU0OTI1NTIzCQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzQ1NDkyNTUyMwkAAZEAAAACBQAAAA0kbGlzdDU0OTI1NTIzAAAAAAAAAAAEAwkAAAAAAAACBQAAAA0kc2l6ZTU0OTI1NTIzAAAAAAAAAAAFBQAAAA0kYWNjNTU0OTI1NTIzBAAAAA0kYWNjNjU0OTI1NTIzCQEAAAAJaXNTeW1ib2xEAAAAAgUAAAANJGFjYzU1NDkyNTUyMwkAAZEAAAACBQAAAA0kbGlzdDU0OTI1NTIzAAAAAAAAAAAFAwkAAAAAAAACBQAAAA0kc2l6ZTU0OTI1NTIzAAAAAAAAAAAGBQAAAA0kYWNjNjU0OTI1NTIz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ZWRpdW0FAAAAD3Jhcml0eVJhbmdlQmVzdAkAAAIAAAABAgAAADBUaGUgYmVzdCBkdWNrIG11c3QgYmUgYmV0dGVyIHRoYW4gdGhlIG1lZGl1bSBvbmUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABdnZXRQbGF5ZXJDdXJyZW50R2FtZUtleQAAAAEFAAAADWNhbGxlckFkZHJlc3MFAAAABmdhbWVJZAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAALZ2V0TWFrZXJLZXkAAAABBQAAAAZnYW1lSWQFAAAADWNhbGxlckFkZHJlc3MJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAEGdldFBsYXllclJvbGVLZXkAAAACBQAAAAZnYW1lSWQFAAAADWNhbGxlckFkZHJlc3MCAAAABW1ha2VyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAANZ2V0QmV0RWdnc0tleQAAAAEFAAAABmdhbWVJZAUAAAAEZWdncwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFJhcml0eVJhbmdlS2V5AAAAAgUAAAAGZ2FtZUlkAgAAAAV3b3JzdAUAAAAQcmFyaXR5UmFuZ2VXb3JzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEWdldFJhcml0eVJhbmdlS2V5AAAAAgUAAAAGZ2FtZUlkAgAAAAZtZWRpdW0FAAAAEXJhcml0eVJhbmdlTWVkaXVtCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARZ2V0UmFyaXR5UmFuZ2VLZXkAAAACBQAAAAZnYW1lSWQCAAAABGJlc3QFAAAAD3Jhcml0eVJhbmdlQmVzdAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAHWdldFdhaXRpbmdFeHBpcmF0aW9uSGVpZ2h0S2V5AAAAAQUAAAAGZ2FtZUlkCQAAZAAAAAIFAAAABmhlaWdodAUAAAAHV0FJVElORwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmdldFNsb3RLZXkAAAABBQAAAARzbG90BQAAAAZnYW1l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AAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXZ2V0UGxheWVyQ3VycmVudEdhbWVLZXkAAAABBQAAAAVtYWtlcgAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAACmdldFNsb3RLZXkAAAABBQAAAARzbG90AAAAAAAAAAAACQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABBQAAAAVtYWtlcgkAAGQAAAACCQEAAAAKZ2V0QmV0RWdncwAAAAEFAAAABmdhbWVJZAUAAAAIbWFrZXJGZWUFAAAAC2VnZ3NBc3NldElkBQAAAANuaWwAAAABaQEAAAAJcGlja0R1Y2tzAAAAAAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZnYW1lSWQJAQAAABRnZXRQbGF5ZXJDdXJyZW50R2FtZQAAAAEFAAAADWNhbGxlckFkZHJlc3MEAAAACnBsYXllclJvbGUJAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzBAAAAAhnYW1lU3RlcAkBAAAAB2dldFN0ZXAAAAABBQAAAAZnYW1lSWQEAAAAEHdvcnN0UmFyaXR5UmFuZ2UJAQAAAA5nZXRSYXJpdHlSYW5nZQAAAAIFAAAABmdhbWVJZAIAAAAFd29yc3QEAAAAEW1lZGl1bVJhcml0eVJhbmdlCQEAAAAOZ2V0UmFyaXR5UmFuZ2UAAAACBQAAAAZnYW1lSWQCAAAABm1lZGl1bQQAAAAPYmVzdFJhcml0eVJhbmdlCQEAAAAOZ2V0UmFyaXR5UmFuZ2UAAAACBQAAAAZnYW1lSWQCAAAABGJlc3QEAAAAC3dvcnN0RHVja0lkCQEAAAAFdmFsdWUAAAABCAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkBAAAAAxtZWRpdW1EdWNrSWQJAQAAAAV2YWx1ZQAAAAEICQEAAAAFdmFsdWUAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAB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AAACCQEAAAAWZ2V0RXhwaXJhdGlvbkhlaWdodEtleQAAAAEFAAAABmdhbWVJZAkAAGQAAAACBQAAAAZoZWlnaHQFAAAADHN0ZXBEdXJhdGlvbgUAAAADbmlsAAAAAWkBAAAACGdldFByaXplAAAAAAQAAAANY2FsbGVyQWRkcmVzcwkAAlgAAAABCAgFAAAAAWkAAAAGY2FsbGVyAAAABWJ5dGVzBAAAAAZnYW1lSWQJAQAAABRnZXRQbGF5ZXJDdXJyZW50R2FtZQAAAAEFAAAADWNhbGxlckFkZHJlc3MEAAAACnBsYXllclJvbGUJAQAAAA1nZXRQbGF5ZXJSb2xlAAAAAgUAAAAGZ2FtZUlkBQAAAA1jYWxsZXJBZGRyZXNzBAAAAAxtYWtlckFkZHJlc3MJAQAAAAhnZXRNYWtlcgAAAAEFAAAABmdhbWVJZAQAAAAMdGFrZXJBZGRyZXNzCQEAAAAIZ2V0VGFrZXIAAAABBQAAAAZnYW1lSWQEAAAABndpbm5lcgkBAAAACWdldFdpbm5lcgAAAAEFAAAABmdhbWVJZAMJAAAAAAAAAgUAAAAGZ2FtZUlkAAAAAAAAAAAACQAAAgAAAAECAAAAHVlvdSBkb24ndCBoYXZlIGFuIGFjdGl2ZSBnYW1lAwkBAAAADGdldFByaXplU2VudAAAAAIFAAAABmdhbWVJZAUAAAAKcGxheWVyUm9sZQkAAAIAAAABAgAAAB5Zb3UgaGF2ZSBhbHJlYWR5IGdvdCB0aGUgcHJpemUDCQAAAAAAAAIFAAAABndpbm5lcgUAAAAKcGxheWVyUm9sZQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAF2dldFBsYXllckN1cnJlbnRHYW1lS2V5AAAAAQUAAAAMbWFrZXJBZGRyZXNzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXZ2V0UGxheWVyQ3VycmVudEdhbWVLZXkAAAABBQAAAAx0YWtlckFkZHJlc3MAAAAAAAAAAAAJAARMAAAAAgkBAAAADEJvb2xlYW5FbnRyeQAAAAIJAQAAAA9nZXRQcml6ZVNlbnRLZXkAAAACBQAAAAZnYW1lSWQFAAAACnBsYXllclJvbGUGCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgkAAGgAAAACCQEAAAAKZ2V0QmV0RWdncwAAAAEFAAAABmdhbWVJZAAAAAAAAAAAAgUAAAALZWdnc0Fzc2V0SWQFAAAAA25pbAMJAAAAAAAAAgUAAAAGd2lubmVyAgAAAARkcmF3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAXZ2V0UGxheWVyQ3VycmVudEdhbWVLZXkAAAABBQAAAA1jYWxsZXJBZGRyZXNzAAAAAAAAAAAACQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQEAAAAPZ2V0UHJpemVTZW50S2V5AAAAAgUAAAAGZ2FtZUlkBQAAAApwbGF5ZXJSb2xlBgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIJAQAAAApnZXRCZXRFZ2dzAAAAAQUAAAAGZ2FtZUlkBQAAAAtlZ2dzQXNzZXRJZAUAAAADbmlsCQAAAgAAAAECAAAAIVlvdSBsb3NlIGFuZCBkb24ndCBoYXZlIGFueSBwcml6ZQAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V50If67w==", "height": 1679603, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let incubatorAddress = base58'3MtBigTsaeevrcJAEwVcr4quwkqcrtnjoAh'
5+
6+let breederAddress = base58'3N285kYUMxPi6oZsdWrxhSY34dJHyu4kRN5'
7+
8+let eggsAssetId = base58'3VUCuh9dWqe54SdzzNUkXhFXpc8UQynnJVh42B7MjNzN'
9+
10+let makerFee = 1
11+
12+let takerFee = 1
13+
14+let SLOTS = 10
15+
16+let WAITING = 5
17+
18+let stepDuration = 3
19+
20+func tryGetInteger (key) = match getInteger(this, key) {
21+ case b: Int =>
22+ b
23+ case _ =>
24+ 0
25+}
26+
27+
28+func tryGetString (key) = match getString(this, key) {
29+ case a: String =>
30+ a
31+ case _ =>
32+ ""
33+}
34+
35+
36+func tryGetBoolean (key) = match getBoolean(this, key) {
37+ case b: Boolean =>
38+ b
39+ case _ =>
40+ false
41+}
42+
43+
44+func getNextGameId () = {
45+ let nextId = tryGetInteger("nextGameId")
46+ if ((nextId == 0))
47+ then 1
48+ else nextId
49+ }
50+
51+
52+func getPlayerCurrentGameKey (playerAddress) = ("currentGame_" + playerAddress)
53+
54+
55+func getPlayerCurrentGame (playerAddress) = tryGetInteger(getPlayerCurrentGameKey(playerAddress))
56+
57+
58+func getSlotKey (slot) = ("slot" + toString(slot))
59+
60+
61+func getSlot (slot) = tryGetInteger(getSlotKey(slot))
62+
63+
64+func getPlayerRoleKey (gameId,playerAddress) = ((("game" + toString(gameId)) + "_") + playerAddress)
65+
66+
67+func getPlayerRole (gameId,playerAddress) = tryGetString(getPlayerRoleKey(gameId, playerAddress))
68+
69+
70+func getMakerKey (gameId) = (("game" + toString(gameId)) + "_maker")
71+
72+
73+func getMaker (gameId) = tryGetString(getMakerKey(gameId))
74+
75+
76+func getTakerKey (gameId) = (("game" + toString(gameId)) + "_taker")
77+
78+
79+func getTaker (gameId) = tryGetString(getTakerKey(gameId))
80+
81+
82+func getBetEggsKey (gameId) = (("game" + toString(gameId)) + "_betEggs")
83+
84+
85+func getBetEggs (gameId) = tryGetInteger(getBetEggsKey(gameId))
86+
87+
88+func getWaitingExpirationHeightKey (gameId) = (("game" + toString(gameId)) + "_waitingExpirationHeight")
89+
90+
91+func getWaitingExpirationHeight (gameId) = tryGetInteger(getWaitingExpirationHeightKey(gameId))
92+
93+
94+func getExpirationHeightKey (gameId) = (("game" + toString(gameId)) + "_expirationHeight")
95+
96+
97+func getExpirationHeight (gameId) = tryGetInteger(getExpirationHeightKey(gameId))
98+
99+
100+func getRarityRangeKey (gameId,rangePosition) = ((("game" + toString(gameId)) + "_rarityRange_") + rangePosition)
101+
102+
103+func getRarityRange (gameId,rangePosition) = tryGetInteger(getRarityRangeKey(gameId, rangePosition))
104+
105+
106+func getStepKey (gameId) = (("game" + toString(gameId)) + "_step")
107+
108+
109+func getStep (gameId) = tryGetInteger(getStepKey(gameId))
110+
111+
112+func getRarityKey (gameId,playerRole,rangePosition) = (((((("game" + toString(gameId)) + "_") + playerRole) + "_") + rangePosition) + "Rarity")
113+
114+
115+func getRarity (gameId,playerRole,rangePosition) = tryGetInteger(getRarityKey(gameId, playerRole, rangePosition))
116+
117+
118+func getCommitKey (gameId,playerRole) = (((("game" + toString(gameId)) + "_") + playerRole) + "_commit")
119+
120+
121+func getCommit (gameId,playerRole) = tryGetString(getCommitKey(gameId, playerRole))
122+
123+
124+func getDuckOrderKey (gameId,playerRole) = (((("game" + toString(gameId)) + "_") + playerRole) + "_duckOrder")
125+
126+
127+func getDuckOrder (gameId,playerRole) = tryGetString(getDuckOrderKey(gameId, playerRole))
128+
129+
130+func getPrizeSentKey (gameId,playerRole) = (((("game" + toString(gameId)) + "_") + playerRole) + "_prizeSent")
131+
132+
133+func getPrizeSent (gameId,playerRole) = tryGetBoolean(getPrizeSentKey(gameId, playerRole))
134+
135+
136+func getScore (a,b) = if ((a > b))
137+ then 1
138+ else if ((b > a))
139+ then -1
140+ else 0
141+
142+
143+func isSymbolA (accumulated,sym) = if ((sym == "A"))
144+ then (accumulated + 1)
145+ else (accumulated + 0)
146+
147+
148+func isSymbolB (accumulated,sym) = if ((sym == "B"))
149+ then (accumulated + 1)
150+ else (accumulated + 0)
151+
152+
153+func isSymbolC (accumulated,sym) = if ((sym == "C"))
154+ then (accumulated + 1)
155+ else (accumulated + 0)
156+
157+
158+func isSymbolD (accumulated,sym) = if ((sym == "D"))
159+ then (accumulated + 1)
160+ else (accumulated + 0)
161+
162+
163+func isSymbolE (accumulated,sym) = if ((sym == "E"))
164+ then (accumulated + 1)
165+ else (accumulated + 0)
166+
167+
168+func isSymbolF (accumulated,sym) = if ((sym == "F"))
169+ then (accumulated + 1)
170+ else (accumulated + 0)
171+
172+
173+func isSymbolG (accumulated,sym) = if ((sym == "G"))
174+ then (accumulated + 1)
175+ else (accumulated + 0)
176+
177+
178+func isSymbolH (accumulated,sym) = if ((sym == "H"))
179+ then (accumulated + 1)
180+ else (accumulated + 0)
181+
182+
183+func getAmountOrClear (amount) = if (contains(amount, "0"))
184+ then ""
185+ else amount
186+
187+
188+func getGen (assetName) = {
189+ let genotype = split(dropRight(drop(assetName, 5), 3), "")
190+ (((((((getAmountOrClear((toString({
191+ let $list52865317 = genotype
192+ let $size52865317 = size($list52865317)
193+ let $acc052865317 = 0
194+ if (($size52865317 == 0))
195+ then $acc052865317
196+ else {
197+ let $acc152865317 = isSymbolA($acc052865317, $list52865317[0])
198+ if (($size52865317 == 1))
199+ then $acc152865317
200+ else {
201+ let $acc252865317 = isSymbolA($acc152865317, $list52865317[1])
202+ if (($size52865317 == 2))
203+ then $acc252865317
204+ else {
205+ let $acc352865317 = isSymbolA($acc252865317, $list52865317[2])
206+ if (($size52865317 == 3))
207+ then $acc352865317
208+ else {
209+ let $acc452865317 = isSymbolA($acc352865317, $list52865317[3])
210+ if (($size52865317 == 4))
211+ then $acc452865317
212+ else {
213+ let $acc552865317 = isSymbolA($acc452865317, $list52865317[4])
214+ if (($size52865317 == 5))
215+ then $acc552865317
216+ else {
217+ let $acc652865317 = isSymbolA($acc552865317, $list52865317[5])
218+ if (($size52865317 == 6))
219+ then $acc652865317
220+ else {
221+ let $acc752865317 = isSymbolA($acc652865317, $list52865317[6])
222+ if (($size52865317 == 7))
223+ then $acc752865317
224+ else {
225+ let $acc852865317 = isSymbolA($acc752865317, $list52865317[7])
226+ if (($size52865317 == 8))
227+ then $acc852865317
228+ else {
229+ let $acc952865317 = isSymbolA($acc852865317, $list52865317[8])
230+ throw("List size exceed 8")
231+ }
232+ }
233+ }
234+ }
235+ }
236+ }
237+ }
238+ }
239+ }
240+ }) + "A")) + getAmountOrClear((toString({
241+ let $list53545385 = genotype
242+ let $size53545385 = size($list53545385)
243+ let $acc053545385 = 0
244+ if (($size53545385 == 0))
245+ then $acc053545385
246+ else {
247+ let $acc153545385 = isSymbolB($acc053545385, $list53545385[0])
248+ if (($size53545385 == 1))
249+ then $acc153545385
250+ else {
251+ let $acc253545385 = isSymbolB($acc153545385, $list53545385[1])
252+ if (($size53545385 == 2))
253+ then $acc253545385
254+ else {
255+ let $acc353545385 = isSymbolB($acc253545385, $list53545385[2])
256+ if (($size53545385 == 3))
257+ then $acc353545385
258+ else {
259+ let $acc453545385 = isSymbolB($acc353545385, $list53545385[3])
260+ if (($size53545385 == 4))
261+ then $acc453545385
262+ else {
263+ let $acc553545385 = isSymbolB($acc453545385, $list53545385[4])
264+ if (($size53545385 == 5))
265+ then $acc553545385
266+ else {
267+ let $acc653545385 = isSymbolB($acc553545385, $list53545385[5])
268+ if (($size53545385 == 6))
269+ then $acc653545385
270+ else {
271+ let $acc753545385 = isSymbolB($acc653545385, $list53545385[6])
272+ if (($size53545385 == 7))
273+ then $acc753545385
274+ else {
275+ let $acc853545385 = isSymbolB($acc753545385, $list53545385[7])
276+ if (($size53545385 == 8))
277+ then $acc853545385
278+ else {
279+ let $acc953545385 = isSymbolB($acc853545385, $list53545385[8])
280+ throw("List size exceed 8")
281+ }
282+ }
283+ }
284+ }
285+ }
286+ }
287+ }
288+ }
289+ }
290+ }) + "B"))) + getAmountOrClear((toString({
291+ let $list54225453 = genotype
292+ let $size54225453 = size($list54225453)
293+ let $acc054225453 = 0
294+ if (($size54225453 == 0))
295+ then $acc054225453
296+ else {
297+ let $acc154225453 = isSymbolC($acc054225453, $list54225453[0])
298+ if (($size54225453 == 1))
299+ then $acc154225453
300+ else {
301+ let $acc254225453 = isSymbolC($acc154225453, $list54225453[1])
302+ if (($size54225453 == 2))
303+ then $acc254225453
304+ else {
305+ let $acc354225453 = isSymbolC($acc254225453, $list54225453[2])
306+ if (($size54225453 == 3))
307+ then $acc354225453
308+ else {
309+ let $acc454225453 = isSymbolC($acc354225453, $list54225453[3])
310+ if (($size54225453 == 4))
311+ then $acc454225453
312+ else {
313+ let $acc554225453 = isSymbolC($acc454225453, $list54225453[4])
314+ if (($size54225453 == 5))
315+ then $acc554225453
316+ else {
317+ let $acc654225453 = isSymbolC($acc554225453, $list54225453[5])
318+ if (($size54225453 == 6))
319+ then $acc654225453
320+ else {
321+ let $acc754225453 = isSymbolC($acc654225453, $list54225453[6])
322+ if (($size54225453 == 7))
323+ then $acc754225453
324+ else {
325+ let $acc854225453 = isSymbolC($acc754225453, $list54225453[7])
326+ if (($size54225453 == 8))
327+ then $acc854225453
328+ else {
329+ let $acc954225453 = isSymbolC($acc854225453, $list54225453[8])
330+ throw("List size exceed 8")
331+ }
332+ }
333+ }
334+ }
335+ }
336+ }
337+ }
338+ }
339+ }
340+ }) + "C"))) + getAmountOrClear((toString({
341+ let $list54925523 = genotype
342+ let $size54925523 = size($list54925523)
343+ let $acc054925523 = 0
344+ if (($size54925523 == 0))
345+ then $acc054925523
346+ else {
347+ let $acc154925523 = isSymbolD($acc054925523, $list54925523[0])
348+ if (($size54925523 == 1))
349+ then $acc154925523
350+ else {
351+ let $acc254925523 = isSymbolD($acc154925523, $list54925523[1])
352+ if (($size54925523 == 2))
353+ then $acc254925523
354+ else {
355+ let $acc354925523 = isSymbolD($acc254925523, $list54925523[2])
356+ if (($size54925523 == 3))
357+ then $acc354925523
358+ else {
359+ let $acc454925523 = isSymbolD($acc354925523, $list54925523[3])
360+ if (($size54925523 == 4))
361+ then $acc454925523
362+ else {
363+ let $acc554925523 = isSymbolD($acc454925523, $list54925523[4])
364+ if (($size54925523 == 5))
365+ then $acc554925523
366+ else {
367+ let $acc654925523 = isSymbolD($acc554925523, $list54925523[5])
368+ if (($size54925523 == 6))
369+ then $acc654925523
370+ else {
371+ let $acc754925523 = isSymbolD($acc654925523, $list54925523[6])
372+ if (($size54925523 == 7))
373+ then $acc754925523
374+ else {
375+ let $acc854925523 = isSymbolD($acc754925523, $list54925523[7])
376+ if (($size54925523 == 8))
377+ then $acc854925523
378+ else {
379+ let $acc954925523 = isSymbolD($acc854925523, $list54925523[8])
380+ throw("List size exceed 8")
381+ }
382+ }
383+ }
384+ }
385+ }
386+ }
387+ }
388+ }
389+ }
390+ }) + "D"))) + getAmountOrClear((toString({
391+ let $list55605591 = genotype
392+ let $size55605591 = size($list55605591)
393+ let $acc055605591 = 0
394+ if (($size55605591 == 0))
395+ then $acc055605591
396+ else {
397+ let $acc155605591 = isSymbolE($acc055605591, $list55605591[0])
398+ if (($size55605591 == 1))
399+ then $acc155605591
400+ else {
401+ let $acc255605591 = isSymbolE($acc155605591, $list55605591[1])
402+ if (($size55605591 == 2))
403+ then $acc255605591
404+ else {
405+ let $acc355605591 = isSymbolE($acc255605591, $list55605591[2])
406+ if (($size55605591 == 3))
407+ then $acc355605591
408+ else {
409+ let $acc455605591 = isSymbolE($acc355605591, $list55605591[3])
410+ if (($size55605591 == 4))
411+ then $acc455605591
412+ else {
413+ let $acc555605591 = isSymbolE($acc455605591, $list55605591[4])
414+ if (($size55605591 == 5))
415+ then $acc555605591
416+ else {
417+ let $acc655605591 = isSymbolE($acc555605591, $list55605591[5])
418+ if (($size55605591 == 6))
419+ then $acc655605591
420+ else {
421+ let $acc755605591 = isSymbolE($acc655605591, $list55605591[6])
422+ if (($size55605591 == 7))
423+ then $acc755605591
424+ else {
425+ let $acc855605591 = isSymbolE($acc755605591, $list55605591[7])
426+ if (($size55605591 == 8))
427+ then $acc855605591
428+ else {
429+ let $acc955605591 = isSymbolE($acc855605591, $list55605591[8])
430+ throw("List size exceed 8")
431+ }
432+ }
433+ }
434+ }
435+ }
436+ }
437+ }
438+ }
439+ }
440+ }) + "E"))) + getAmountOrClear((toString({
441+ let $list56285659 = genotype
442+ let $size56285659 = size($list56285659)
443+ let $acc056285659 = 0
444+ if (($size56285659 == 0))
445+ then $acc056285659
446+ else {
447+ let $acc156285659 = isSymbolF($acc056285659, $list56285659[0])
448+ if (($size56285659 == 1))
449+ then $acc156285659
450+ else {
451+ let $acc256285659 = isSymbolF($acc156285659, $list56285659[1])
452+ if (($size56285659 == 2))
453+ then $acc256285659
454+ else {
455+ let $acc356285659 = isSymbolF($acc256285659, $list56285659[2])
456+ if (($size56285659 == 3))
457+ then $acc356285659
458+ else {
459+ let $acc456285659 = isSymbolF($acc356285659, $list56285659[3])
460+ if (($size56285659 == 4))
461+ then $acc456285659
462+ else {
463+ let $acc556285659 = isSymbolF($acc456285659, $list56285659[4])
464+ if (($size56285659 == 5))
465+ then $acc556285659
466+ else {
467+ let $acc656285659 = isSymbolF($acc556285659, $list56285659[5])
468+ if (($size56285659 == 6))
469+ then $acc656285659
470+ else {
471+ let $acc756285659 = isSymbolF($acc656285659, $list56285659[6])
472+ if (($size56285659 == 7))
473+ then $acc756285659
474+ else {
475+ let $acc856285659 = isSymbolF($acc756285659, $list56285659[7])
476+ if (($size56285659 == 8))
477+ then $acc856285659
478+ else {
479+ let $acc956285659 = isSymbolF($acc856285659, $list56285659[8])
480+ throw("List size exceed 8")
481+ }
482+ }
483+ }
484+ }
485+ }
486+ }
487+ }
488+ }
489+ }
490+ }) + "F"))) + getAmountOrClear((toString({
491+ let $list56985729 = genotype
492+ let $size56985729 = size($list56985729)
493+ let $acc056985729 = 0
494+ if (($size56985729 == 0))
495+ then $acc056985729
496+ else {
497+ let $acc156985729 = isSymbolG($acc056985729, $list56985729[0])
498+ if (($size56985729 == 1))
499+ then $acc156985729
500+ else {
501+ let $acc256985729 = isSymbolG($acc156985729, $list56985729[1])
502+ if (($size56985729 == 2))
503+ then $acc256985729
504+ else {
505+ let $acc356985729 = isSymbolG($acc256985729, $list56985729[2])
506+ if (($size56985729 == 3))
507+ then $acc356985729
508+ else {
509+ let $acc456985729 = isSymbolG($acc356985729, $list56985729[3])
510+ if (($size56985729 == 4))
511+ then $acc456985729
512+ else {
513+ let $acc556985729 = isSymbolG($acc456985729, $list56985729[4])
514+ if (($size56985729 == 5))
515+ then $acc556985729
516+ else {
517+ let $acc656985729 = isSymbolG($acc556985729, $list56985729[5])
518+ if (($size56985729 == 6))
519+ then $acc656985729
520+ else {
521+ let $acc756985729 = isSymbolG($acc656985729, $list56985729[6])
522+ if (($size56985729 == 7))
523+ then $acc756985729
524+ else {
525+ let $acc856985729 = isSymbolG($acc756985729, $list56985729[7])
526+ if (($size56985729 == 8))
527+ then $acc856985729
528+ else {
529+ let $acc956985729 = isSymbolG($acc856985729, $list56985729[8])
530+ throw("List size exceed 8")
531+ }
532+ }
533+ }
534+ }
535+ }
536+ }
537+ }
538+ }
539+ }
540+ }) + "G"))) + getAmountOrClear((toString({
541+ let $list57665797 = genotype
542+ let $size57665797 = size($list57665797)
543+ let $acc057665797 = 0
544+ if (($size57665797 == 0))
545+ then $acc057665797
546+ else {
547+ let $acc157665797 = isSymbolH($acc057665797, $list57665797[0])
548+ if (($size57665797 == 1))
549+ then $acc157665797
550+ else {
551+ let $acc257665797 = isSymbolH($acc157665797, $list57665797[1])
552+ if (($size57665797 == 2))
553+ then $acc257665797
554+ else {
555+ let $acc357665797 = isSymbolH($acc257665797, $list57665797[2])
556+ if (($size57665797 == 3))
557+ then $acc357665797
558+ else {
559+ let $acc457665797 = isSymbolH($acc357665797, $list57665797[3])
560+ if (($size57665797 == 4))
561+ then $acc457665797
562+ else {
563+ let $acc557665797 = isSymbolH($acc457665797, $list57665797[4])
564+ if (($size57665797 == 5))
565+ then $acc557665797
566+ else {
567+ let $acc657665797 = isSymbolH($acc557665797, $list57665797[5])
568+ if (($size57665797 == 6))
569+ then $acc657665797
570+ else {
571+ let $acc757665797 = isSymbolH($acc657665797, $list57665797[6])
572+ if (($size57665797 == 7))
573+ then $acc757665797
574+ else {
575+ let $acc857665797 = isSymbolH($acc757665797, $list57665797[7])
576+ if (($size57665797 == 8))
577+ then $acc857665797
578+ else {
579+ let $acc957665797 = isSymbolH($acc857665797, $list57665797[8])
580+ throw("List size exceed 8")
581+ }
582+ }
583+ }
584+ }
585+ }
586+ }
587+ }
588+ }
589+ }
590+ }) + "H")))
591+ }
592+
593+
594+func getAssetOrigin (generation) = if ((generation == "G"))
595+ then incubatorAddress
596+ else breederAddress
597+
598+
599+func getAssetRarity (assetId) = if (if ((value(assetInfo(assetId)).issuer == Address(breederAddress)))
600+ then true
601+ else (value(assetInfo(assetId)).issuer == Address(incubatorAddress)))
602+ then {
603+ let assetName = value(assetInfo(assetId)).name
604+ let generation = take(takeRight(assetName, 2), 1)
605+ let gen = ((getGen(assetName) + "-") + generation)
606+ let quantity = getIntegerValue(Address(getAssetOrigin(generation)), (("stats_" + gen) + "_quantity"))
607+ let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
608+ if ((power > 0))
609+ then power
610+ else 2
611+ }
612+ else throw("not valid NFT")
613+
614+
615+func getWinner (gameId) = {
616+ let gameStep = getStep(gameId)
617+ if ((6 > gameStep))
618+ then {
619+ let expirationHeight = getExpirationHeight(gameId)
620+ if ((expirationHeight == 0))
621+ then throw("Game is not started")
622+ else if ((expirationHeight > height))
623+ then throw("Game is not finished or expired")
624+ else if (((getStep(gameId) % 2) == 0))
625+ then "maker"
626+ else "taker"
627+ }
628+ else {
629+ let makerDuckOrder = split(getDuckOrder(gameId, "maker"), ",")
630+ let takerDuckOrder = split(getDuckOrder(gameId, "taker"), ",")
631+ let makerRarity1 = getRarity(gameId, "maker", makerDuckOrder[0])
632+ let makerRarity2 = getRarity(gameId, "maker", makerDuckOrder[1])
633+ let makerRarity3 = getRarity(gameId, "maker", makerDuckOrder[2])
634+ let takerRarity1 = getRarity(gameId, "taker", makerDuckOrder[0])
635+ let takerRarity2 = getRarity(gameId, "taker", makerDuckOrder[1])
636+ let takerRarity3 = getRarity(gameId, "taker", makerDuckOrder[2])
637+ let makerScore = ((getScore(makerRarity1, takerRarity1) + getScore(makerRarity2, takerRarity2)) + getScore(makerRarity3, takerRarity3))
638+ if ((makerScore > 0))
639+ then "maker"
640+ else if ((0 > makerScore))
641+ then "taker"
642+ else "draw"
643+ }
644+ }
645+
646+
647+@Callable(i)
648+func makeGame (slot,rarityRangeWorst,rarityRangeMedium,rarityRangeBest) = {
649+ let callerAddress = toBase58String(i.caller.bytes)
650+ let slotGameId = getSlot(slot)
651+ let payment = value(i.payments[0])
652+ let eggs = (payment.amount - makerFee)
653+ let gameId = getNextGameId()
654+ if ((getPlayerCurrentGame(callerAddress) != 0))
655+ then throw("You already have an active game")
656+ else if (if ((0 > slot))
657+ then true
658+ else (slot >= SLOTS))
659+ then throw("Invalid slot")
660+ else if ((slotGameId != 0))
661+ then throw("This slot is busy")
662+ else if ((payment.assetId != eggsAssetId))
663+ then throw(("You can attach only EGGs with the following asset id: " + toBase58String(eggsAssetId)))
664+ else if ((0 >= eggs))
665+ then throw("Not enough EGGs")
666+ else if (if ((1 > rarityRangeWorst))
667+ then true
668+ else (rarityRangeWorst > 5))
669+ then throw("Invalid rarity range for the worst duck")
670+ else if (if ((1 > rarityRangeMedium))
671+ then true
672+ else (rarityRangeMedium > 5))
673+ then throw("Invalid rarity range for the medium duck")
674+ else if (if ((1 > rarityRangeBest))
675+ then true
676+ else (rarityRangeBest > 5))
677+ then throw("Invalid rarity range for the best duck")
678+ else if ((rarityRangeWorst >= rarityRangeMedium))
679+ then throw("The medium duck must be better than the worst one")
680+ else if ((rarityRangeMedium >= rarityRangeBest))
681+ then throw("The best duck must be better than the medium one")
682+ else [IntegerEntry(getPlayerCurrentGameKey(callerAddress), gameId), StringEntry(getMakerKey(gameId), callerAddress), StringEntry(getPlayerRoleKey(gameId, callerAddress), "maker"), IntegerEntry(getBetEggsKey(gameId), eggs), IntegerEntry(getRarityRangeKey(gameId, "worst"), rarityRangeWorst), IntegerEntry(getRarityRangeKey(gameId, "medium"), rarityRangeMedium), IntegerEntry(getRarityRangeKey(gameId, "best"), rarityRangeBest), IntegerEntry(getWaitingExpirationHeightKey(gameId), (height + WAITING)), IntegerEntry(getSlotKey(slot), gameId), IntegerEntry("nextGameId", (gameId + 1))]
683+ }
684+
685+
686+
687+@Callable(i)
688+func takeGame (slot) = {
689+ let callerAddress = toBase58String(i.caller.bytes)
690+ let gameId = getSlot(slot)
691+ let payment = value(i.payments[0])
692+ if ((getPlayerCurrentGame(callerAddress) != 0))
693+ then throw("You already have an active game")
694+ else if (if ((0 > slot))
695+ then true
696+ else (slot >= SLOTS))
697+ then throw("Invalid slot")
698+ else if ((getSlot(slot) == 0))
699+ then throw("This slot is empty")
700+ else if ((payment.assetId != eggsAssetId))
701+ then throw(("You can attach only EGG tokens with the following asset id: " + toBase58String(eggsAssetId)))
702+ else if ((payment.amount != (getBetEggs(gameId) + takerFee)))
703+ then throw("Insufficient eggs amount")
704+ else if ((height >= getWaitingExpirationHeight(gameId)))
705+ then throw("This game is expired")
706+ else [IntegerEntry(getPlayerCurrentGameKey(callerAddress), gameId), StringEntry(getTakerKey(gameId), callerAddress), StringEntry(getPlayerRoleKey(gameId, callerAddress), "taker"), IntegerEntry(getStepKey(gameId), 0), IntegerEntry(getExpirationHeightKey(gameId), (height + stepDuration)), IntegerEntry(getSlotKey(slot), 0)]
707+ }
708+
709+
710+
711+@Callable(i)
712+func kickGame (slot) = {
713+ let gameId = getSlot(slot)
714+ if (if ((0 > slot))
715+ then true
716+ else (slot >= SLOTS))
717+ then throw("Invalid slot")
718+ else if ((gameId == 0))
719+ then throw("Slot is empty")
720+ else if ((getWaitingExpirationHeight(gameId) > height))
721+ then throw("Waiting is not finished yet")
722+ else {
723+ let maker = getMaker(gameId)
724+[IntegerEntry(getPlayerCurrentGameKey(maker), 0), IntegerEntry(getSlotKey(slot), 0), ScriptTransfer(Address(fromBase58String(maker)), (getBetEggs(gameId) + makerFee), eggsAssetId)]
725+ }
726+ }
727+
728+
729+
730+@Callable(i)
731+func pickDucks () = {
732+ let callerAddress = toBase58String(i.caller.bytes)
733+ let gameId = getPlayerCurrentGame(callerAddress)
734+ let playerRole = getPlayerRole(gameId, callerAddress)
735+ let gameStep = getStep(gameId)
736+ let worstRarityRange = getRarityRange(gameId, "worst")
737+ let mediumRarityRange = getRarityRange(gameId, "medium")
738+ let bestRarityRange = getRarityRange(gameId, "best")
739+ let worstDuckId = value(value(i.payments[0]).assetId)
740+ let mediumDuckId = value(value(i.payments[1]).assetId)
741+ let bestDuckId = value(value(i.payments[2]).assetId)
742+ let worstRarity = getAssetRarity(worstDuckId)
743+ let mediumRarity = getAssetRarity(mediumDuckId)
744+ let bestRarity = getAssetRarity(bestDuckId)
745+ if ((gameId == 0))
746+ then throw("You don't have an active game")
747+ else if ((getExpirationHeight(gameId) == 0))
748+ then throw("Game is not started")
749+ else if (if ((gameStep == 0))
750+ then (playerRole != "taker")
751+ else false)
752+ then throw("It is the taker's turn to pick now")
753+ else if (if ((gameStep == 1))
754+ then (playerRole != "maker")
755+ else false)
756+ then throw("It is the maker's turn to pick now")
757+ else if ((gameStep > 1))
758+ then throw("Ducks have already been picked")
759+ else if (if ((worstRarity >= (worstRarityRange * 10)))
760+ then true
761+ else (((worstRarityRange - 1) * 10) > worstRarity))
762+ then throw("Worst duck doesn't fit rarity range")
763+ else if (if ((mediumRarity >= (mediumRarityRange * 10)))
764+ then true
765+ else (((mediumRarityRange - 1) * 10) > mediumRarity))
766+ then throw("Medium duck doesn't fit rarity range")
767+ else if (if (if (if ((bestRarityRange == 5))
768+ then (40 > bestRarity)
769+ else false)
770+ then true
771+ else (bestRarity >= (bestRarityRange * 10)))
772+ then true
773+ else (((bestRarityRange - 1) * 10) > bestRarity))
774+ then throw("Best duck doesn't fit rarity range")
775+ else [IntegerEntry(getRarityKey(gameId, playerRole, "worst"), worstRarity), IntegerEntry(getRarityKey(gameId, playerRole, "medium"), mediumRarity), IntegerEntry(getRarityKey(gameId, playerRole, "best"), bestRarity), IntegerEntry(getStepKey(gameId), (gameStep + 1)), IntegerEntry(getExpirationHeightKey(gameId), (height + stepDuration)), ScriptTransfer(i.caller, 1, worstDuckId), ScriptTransfer(i.caller, 1, mediumDuckId), ScriptTransfer(i.caller, 1, bestDuckId)]
776+ }
777+
778+
779+
780+@Callable(i)
781+func commit (hash) = {
782+ let callerAddress = toBase58String(i.caller.bytes)
783+ let gameId = getPlayerCurrentGame(callerAddress)
784+ let playerRole = getPlayerRole(gameId, callerAddress)
785+ let gameStep = getStep(gameId)
786+ if ((gameId == 0))
787+ then throw("You don't have an active game")
788+ else if ((2 > gameStep))
789+ then throw("Commit is not started")
790+ else if (if ((gameStep == 2))
791+ then (playerRole != "taker")
792+ else false)
793+ then throw("It is the taker's turn to pick now")
794+ else if (if ((gameStep == 3))
795+ then (playerRole != "maker")
796+ else false)
797+ then throw("It is the maker's turn to pick now")
798+ else if ((gameStep > 3))
799+ then throw("Commit is finished")
800+ else [StringEntry(getCommitKey(gameId, playerRole), hash), IntegerEntry(getStepKey(gameId), (gameStep + 1)), IntegerEntry(getExpirationHeightKey(gameId), (height + stepDuration))]
801+ }
802+
803+
804+
805+@Callable(i)
806+func reveal (duckOrder,salt) = {
807+ let callerAddress = toBase58String(i.caller.bytes)
808+ let gameId = getPlayerCurrentGame(callerAddress)
809+ let playerRole = getPlayerRole(gameId, callerAddress)
810+ let gameStep = getStep(gameId)
811+ if ((gameId == 0))
812+ then throw("You don't have an active game")
813+ else if ((4 > gameStep))
814+ then throw("Reveal is not started")
815+ else if (if ((gameStep == 4))
816+ then (playerRole != "taker")
817+ else false)
818+ then throw("It is the taker's turn to pick now")
819+ else if (if ((gameStep == 5))
820+ then (playerRole != "maker")
821+ else false)
822+ then throw("It is the maker's turn to pick now")
823+ else if ((gameStep > 5))
824+ then throw("Reveal is finished")
825+ else if (if (if (if (if (if ((duckOrder != "worst,medium,best"))
826+ then (duckOrder != "worst,best,medium")
827+ else false)
828+ then (duckOrder != "medium,worst,best")
829+ else false)
830+ then (duckOrder != "medium,best,worst")
831+ else false)
832+ then (duckOrder != "best,worst,medium")
833+ else false)
834+ then (duckOrder != "best,medium,worst")
835+ else false)
836+ then throw("Reveal data is not valid")
837+ else if ((toBase58String(sha256(toBytes((duckOrder + salt)))) != getCommit(gameId, playerRole)))
838+ then throw("Reveal doesn't match commit")
839+ else [StringEntry(getDuckOrderKey(gameId, playerRole), duckOrder), IntegerEntry(getStepKey(gameId), (gameStep + 1)), IntegerEntry(getExpirationHeightKey(gameId), (height + stepDuration))]
840+ }
841+
842+
843+
844+@Callable(i)
845+func getPrize () = {
846+ let callerAddress = toBase58String(i.caller.bytes)
847+ let gameId = getPlayerCurrentGame(callerAddress)
848+ let playerRole = getPlayerRole(gameId, callerAddress)
849+ let makerAddress = getMaker(gameId)
850+ let takerAddress = getTaker(gameId)
851+ let winner = getWinner(gameId)
852+ if ((gameId == 0))
853+ then throw("You don't have an active game")
854+ else if (getPrizeSent(gameId, playerRole))
855+ then throw("You have already got the prize")
856+ else if ((winner == playerRole))
857+ then [IntegerEntry(getPlayerCurrentGameKey(makerAddress), 0), IntegerEntry(getPlayerCurrentGameKey(takerAddress), 0), BooleanEntry(getPrizeSentKey(gameId, playerRole), true), ScriptTransfer(i.caller, (getBetEggs(gameId) * 2), eggsAssetId)]
858+ else if ((winner == "draw"))
859+ then [IntegerEntry(getPlayerCurrentGameKey(callerAddress), 0), BooleanEntry(getPrizeSentKey(gameId, playerRole), true), ScriptTransfer(i.caller, getBetEggs(gameId), eggsAssetId)]
860+ else throw("You lose and don't have any prize")
861+ }
862+
863+
864+@Verifier(tx)
865+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
866+

github/deemru/w8io/026f985 
59.83 ms