tx · 9bcfKdK9wSXJoyce4V4LGGztmHZG5sJKnyFwRAYwVnAH 3N4zbpVDPsKPSqDpqEFZRPhwjXpNm72AKR4: -0.01000000 Waves 2018.11.16 15:28 [378294] smart account 3N4zbpVDPsKPSqDpqEFZRPhwjXpNm72AKR4 > SELF 0.00000000 Waves
{ "type": 13, "id": "9bcfKdK9wSXJoyce4V4LGGztmHZG5sJKnyFwRAYwVnAH", "fee": 1000000, "feeAssetId": null, "timestamp": 1542371305038, "version": 1, "sender": "3N4zbpVDPsKPSqDpqEFZRPhwjXpNm72AKR4", "senderPublicKey": "GjSA6Fk4XLJNKpFeEV3p3mxMGZJmEDf7qUDJr2rxyqJp", "proofs": [ "4efLwuZ57ArXNeCwyeq9kQw3a5sASdt1jJBeJ6vMMEyog81uk5VN4ThxR2eteMSvHqqPV7PZvLBhANt8DSRDNfQm" ], "script": "base64:AQQAAAAKcGxheWVyQWRkcgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVGn3krpaDTc+j3YI5REPQQIdPTpGX/43ZAQAAAAMcGxheWVyUHViS2V5AQAAACDLp0RpVCULejfAo54x+7hkLm7IuSlV5e+7DIA+iWH4RQQAAAAKY2FzaW5vQWRkcgkBAAAAB0FkZHJlc3MAAAABAQAAABoBVGn3krpaDTc+j3YI5REPQQIdPTpGX/43ZAQAAAAMY2FzaW5vUHViS2V5AQAAACDLp0RpVCULejfAo54x+7hkLm7IuSlV5e+7DIA+iWH4RQQAAAAMcGxheWVyU2lnbmVkCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAMcGxheWVyUHViS2V5BAAAAAxjYXNpbm9TaWduZWQJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAxjYXNpbm9QdWJLZXkEAAAAAm1lCAUAAAACdHgAAAAGc2VuZGVyBAAAAAljYXNpbm9CZXQAAAAAAAFPsYAEAAAACXBsYXllckJldAAAAAAAAKfYwAQAAAAdYW1vdW50T2ZEaWNlc1NlbGVjdGVkQnlQbGF5ZXIAAAAAAAAAAAIEAAAABXN0YXJ0AAAAAAAABcW2BAAAAAdiYWxhbmNlCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAACbWUEAAAABWRpY2UxCQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAgUAAAACbWUCAAAABWRpY2UxBAAAAAVkaWNlMgkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIFAAAAAm1lAgAAAAVkaWNlMgQAAAAFZGljZTMJAQAAAAdleHRyYWN0AAAAAQkABBoAAAACBQAAAAJtZQIAAAAFZGljZTMEAAAABWRpY2U0CQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAgUAAAACbWUCAAAABWRpY2U0BAAAAAVkaWNlNQkBAAAAB2V4dHJhY3QAAAABCQAEGgAAAAIFAAAAAm1lAgAAAAVkaWNlNQQAAAAFZGljZTYJAQAAAAdleHRyYWN0AAAAAQkABBoAAAACBQAAAAJtZQIAAAAFZGljZTYEAAAAB2RpY2VTdW0JAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACBQAAAAVkaWNlMQUAAAAFZGljZTIFAAAABWRpY2UzBQAAAAVkaWNlNAUAAAAFZGljZTUFAAAABWRpY2U2BAAAAApjYXNpbm9EaWNlCQEAAAAHZXh0cmFjdAAAAAEJAAQaAAAAAgUAAAACbWUCAAAACmNhc2lub0RpY2UEAAAAD3BsYXllckRlcG9zaXRPawkAAGcAAAACBQAAAAdiYWxhbmNlCQAAZAAAAAIFAAAACWNhc2lub0JldAUAAAAJcGxheWVyQmV0BAAAABFwbGF5ZXJEZXBvc2l0VHVybgMDCQAAZgAAAAIJAABkAAAAAgUAAAAFc3RhcnQAAAAAAAAAADIFAAAABmhlaWdodAkAAGcAAAACBQAAAAdiYWxhbmNlBQAAAAljYXNpbm9CZXQHCQEAAAABIQAAAAEFAAAAD3BsYXllckRlcG9zaXRPawcEAAAAC3BsYXllckJldE9rCQAAZgAAAAIFAAAAB2RpY2VTdW0AAAAAAAAAAAAEAAAADXBsYXllckJldFR1cm4DAwkAAGYAAAACCQAAZAAAAAIFAAAABXN0YXJ0AAAAAAAAAABkBQAAAAZoZWlnaHQFAAAAD3BsYXllckRlcG9zaXRPawcJAQAAAAEhAAAAAQUAAAALcGxheWVyQmV0T2sHBAAAAAtjYXNpbm9CZXRPawkAAGYAAAACBQAAAApjYXNpbm9EaWNlAAAAAAAAAAAABAAAAA1jYXNpbm9CZXRUdXJuAwMJAABmAAAAAgkAAGQAAAACBQAAAAVzdGFydAAAAAAAAAAAyAUAAAAGaGVpZ2h0BQAAAAtwbGF5ZXJCZXRPawcJAQAAAAEhAAAAAQUAAAALY2FzaW5vQmV0T2sHBAAAAAlwcml6ZVR1cm4FAAAAC2Nhc2lub0JldE9rBAAAABdwbGF5ZXJFbWVyZ2VuY3lUYWtlVHVybgMJAABnAAAAAgUAAAAGaGVpZ2h0CQAAZAAAAAIFAAAABXN0YXJ0AAAAAAAAAAEsCQEAAAABIQAAAAEFAAAAC2Nhc2lub0JldE9rBwQAAAAaY2FzaW5vQ2FuRW1lcmdlbmN5VGFrZVR1cm4DCQAAZwAAAAIFAAAABmhlaWdodAkAAGQAAAACBQAAAAVzdGFydAAAAAAAAAAAZAMJAQAAAAEhAAAAAQUAAAAPcGxheWVyRGVwb3NpdE9rBgkBAAAAASEAAAABBQAAAAtwbGF5ZXJCZXRPawcEAAAAByRtYXRjaDAFAAAAAnR4AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAA9EYXRhVHJhbnNhY3Rpb24EAAAAA2R0eAUAAAAHJG1hdGNoMAQAAAADbnVtCQABkAAAAAEIBQAAAANkdHgAAAAEZGF0YQQAAAAHY2hvaWNlMQkBAAAAB2V4dHJhY3QAAAABCQAEEAAAAAIIBQAAAANkdHgAAAAEZGF0YQIAAAAFZGljZTEEAAAAB2Nob2ljZTIJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAADZHR4AAAABGRhdGECAAAABWRpY2UyBAAAAAdjaG9pY2UzCQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAA2R0eAAAAARkYXRhAgAAAAVkaWNlMwQAAAAHY2hvaWNlNAkBAAAAB2V4dHJhY3QAAAABCQAEEAAAAAIIBQAAAANkdHgAAAAEZGF0YQIAAAAFZGljZTQEAAAAB2Nob2ljZTUJAQAAAAdleHRyYWN0AAAAAQkABBAAAAACCAUAAAADZHR4AAAABGRhdGECAAAABWRpY2U1BAAAAAdjaG9pY2U2CQEAAAAHZXh0cmFjdAAAAAEJAAQQAAAAAggFAAAAA2R0eAAAAARkYXRhAgAAAAVkaWNlNgQAAAAHaXNEaWNlMQMJAABmAAAAAgUAAAAHY2hvaWNlMQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAQAAAAHaXNEaWNlMgMJAABmAAAAAgUAAAAHY2hvaWNlMgAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAQAAAAHaXNEaWNlMwMJAABmAAAAAgUAAAAHY2hvaWNlMwAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAQAAAAHaXNEaWNlNAMJAABmAAAAAgUAAAAHY2hvaWNlNAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAQAAAAHaXNEaWNlNQMJAABmAAAAAgUAAAAHY2hvaWNlNQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAQAAAAHaXNEaWNlNgMJAABmAAAAAgUAAAAHY2hvaWNlNgAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAQAAAAiYW1vdW50T2ZEaWNlc1NlbGVjdGVkSW5UcmFuc2FjdGlvbgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIFAAAAB2lzRGljZTEFAAAAB2lzRGljZTIFAAAAB2lzRGljZTMFAAAAB2lzRGljZTQFAAAAB2lzRGljZTUFAAAAB2lzRGljZTYEAAAADGNhc2lub0Nob2ljZQkBAAAAB2V4dHJhY3QAAAABCQAEEAAAAAIIBQAAAANkdHgAAAAEZGF0YQIAAAAKY2FzaW5vRGljZQQAAAAEc2FsdAkBAAAAB2V4dHJhY3QAAAABCQAEEwAAAAIIBQAAAANkdHgAAAAEZGF0YQIAAAAEc2FsdAQAAAAScGxheWVyRGljZXNJblJhbmdlAwMDAwMDCQAAZwAAAAIFAAAAB2Nob2ljZTEAAAAAAAAAAAAJAABnAAAAAgAAAAAAAAAABgUAAAAHY2hvaWNlMQcDCQAAZwAAAAIFAAAAB2Nob2ljZTIAAAAAAAAAAAAJAABnAAAAAgAAAAAAAAAABgUAAAAHY2hvaWNlMgcHAwkAAGcAAAACBQAAAAdjaG9pY2UzAAAAAAAAAAAACQAAZwAAAAIAAAAAAAAAAAYFAAAAB2Nob2ljZTMHBwMJAABnAAAAAgUAAAAHY2hvaWNlNAAAAAAAAAAAAAkAAGcAAAACAAAAAAAAAAAGBQAAAAdjaG9pY2U0BwcDCQAAZwAAAAIFAAAAB2Nob2ljZTUAAAAAAAAAAAAJAABnAAAAAgAAAAAAAAAABgUAAAAHY2hvaWNlNQcHAwkAAGcAAAACBQAAAAdjaG9pY2U2AAAAAAAAAAAACQAAZwAAAAIAAAAAAAAAAAYFAAAAB2Nob2ljZTYHBwQAAAAPcGxheWVyQ2hvaWNlU3VtCQAAZAAAAAIJAABkAAAAAgkAAGQAAAACCQAAZAAAAAIJAABkAAAAAgUAAAAHY2hvaWNlMQUAAAAHY2hvaWNlMgUAAAAHY2hvaWNlMwUAAAAHY2hvaWNlNAUAAAAHY2hvaWNlNQUAAAAHY2hvaWNlNgQAAAAPcGxheWVyQ2hvaWNlTXVsCQAAaAAAAAIJAABoAAAAAgkAAGgAAAACCQAAaAAAAAIJAABoAAAAAgUAAAAHY2hvaWNlMQUAAAAHY2hvaWNlMgUAAAAHY2hvaWNlMwUAAAAHY2hvaWNlNAUAAAAHY2hvaWNlNQUAAAAHY2hvaWNlNgQAAAAYcGxheWVyRGljZXNOdW1iZXJDb3JyZWN0AwkAAGYAAAACBQAAAA9wbGF5ZXJDaG9pY2VTdW0AAAAAAAAAAAAJAAAAAAAAAgUAAAAPcGxheWVyQ2hvaWNlTXVsAAAAAAAAAAAABwQAAAASY2FzaW5vRGljZXNJblJhbmdlAwkAAGcAAAACBQAAAAxjYXNpbm9DaG9pY2UAAAAAAAAAAAEJAABnAAAAAgAAAAAAAAAABgUAAAAMY2FzaW5vQ2hvaWNlBwQAAAAHbmV3SGFzaAkAAfUAAAABCQABmwAAAAEJAAEsAAAAAgkAAaQAAAABBQAAAAxjYXNpbm9DaG9pY2UFAAAABHNhbHQEAAAADmNhc2lub1ZlcmlmaWVkCQAAAAAAAAIFAAAAB25ld0hhc2gBAAAAIOjrbECQHjxrj7/I9qD7VNrVodxFDqAypbpbwIPUKdqdBAAAABJwbGF5ZXJJbnB1dENvcnJlY3QDAwMFAAAAEnBsYXllckRpY2VzSW5SYW5nZQUAAAAYcGxheWVyRGljZXNOdW1iZXJDb3JyZWN0BwkAAAAAAAACBQAAAANudW0AAAAAAAAAAAYHCQAAAAAAAAIFAAAAImFtb3VudE9mRGljZXNTZWxlY3RlZEluVHJhbnNhY3Rpb24FAAAAHWFtb3VudE9mRGljZXNTZWxlY3RlZEJ5UGxheWVyBwQAAAASY2FzaW5vSW5wdXRDb3JyZWN0AwMFAAAAEmNhc2lub0RpY2VzSW5SYW5nZQUAAAAOY2FzaW5vVmVyaWZpZWQHCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAAgcDAwMFAAAADGNhc2lub1NpZ25lZAUAAAANY2FzaW5vQmV0VHVybgcFAAAAEmNhc2lub0lucHV0Q29ycmVjdAcGAwMFAAAADHBsYXllclNpZ25lZAUAAAANcGxheWVyQmV0VHVybgcFAAAAEnBsYXllcklucHV0Q29ycmVjdAcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAQAAAAKZGljZXNNYXRjaAMDAwMDCQAAAAAAAAIFAAAABWRpY2UxBQAAAApjYXNpbm9EaWNlBgkAAAAAAAACBQAAAAVkaWNlMgUAAAAKY2FzaW5vRGljZQYJAAAAAAAAAgUAAAAFZGljZTMFAAAACmNhc2lub0RpY2UGCQAAAAAAAAIFAAAABWRpY2U0BQAAAApjYXNpbm9EaWNlBgkAAAAAAAACBQAAAAVkaWNlNQUAAAAKY2FzaW5vRGljZQYJAAAAAAAAAgUAAAAFZGljZTYFAAAACmNhc2lub0RpY2UEAAAAD3dpdGhkcmF3Q29ycmVjdAMJAABnAAAAAggFAAAAA3R0eAAAAAZhbW91bnQAAAAAAACYloAJAABnAAAAAgAAAAAAAA9CQAgFAAAAA3R0eAAAAANmZWUHBAAAAAlwbGF5ZXJXaW4DBQAAAAtjYXNpbm9CZXRPawUAAAAKZGljZXNNYXRjaAcEAAAACWNhc2lub1dpbgMDBQAAAAtjYXNpbm9CZXRPawkBAAAAASEAAAABBQAAAApkaWNlc01hdGNoBwkAAAAAAAACCAUAAAADdHR4AAAACXJlY2lwaWVudAUAAAAKY2FzaW5vQWRkcgcEAAAAEnBsYXllckNhblRha2VQcml6ZQMFAAAACXByaXplVHVybgUAAAAJcGxheWVyV2luBwQAAAANcGxheWVyQ2FuVGFrZQMDBQAAABJwbGF5ZXJDYW5UYWtlUHJpemUGBQAAABdwbGF5ZXJFbWVyZ2VuY3lUYWtlVHVybgkAAAAAAAACCAUAAAADdHR4AAAACXJlY2lwaWVudAUAAAAKcGxheWVyQWRkcgcEAAAAEmNhc2lub0NhblRha2VQcml6ZQMDBQAAAAlwcml6ZVR1cm4FAAAACWNhc2lub1dpbgcJAAAAAAAAAggFAAAAA3R0eAAAAAlyZWNpcGllbnQFAAAACmNhc2lub0FkZHIHBAAAAA1jYXNpbm9DYW5UYWtlAwMFAAAAEmNhc2lub0NhblRha2VQcml6ZQYFAAAAGmNhc2lub0NhbkVtZXJnZW5jeVRha2VUdXJuCQAAAAAAAAIIBQAAAAN0dHgAAAAJcmVjaXBpZW50BQAAAApjYXNpbm9BZGRyBwMDBQAAAA1wbGF5ZXJDYW5UYWtlBgUAAAANY2FzaW5vQ2FuVGFrZQUAAAAPd2l0aGRyYXdDb3JyZWN0Bwa1WA8L", "chainId": 84, "height": 378294, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 1 #-} | |
2 | + | {-# CONTENT_TYPE EXPRESSION #-} | |
3 | + | let playerAddr = Address(base58'3MyaPJkHmZy4u57uKcHXgzQxsk9wAP9LTZ5') | |
4 | + | let playerPubKey = base58'EhyhHkMbyNu8PwHoiJVCq2SciN9FmM5KvBeSN2NkTmeL' | |
5 | + | let casinoAddr = Address(base58'3MyaPJkHmZy4u57uKcHXgzQxsk9wAP9LTZ5') | |
6 | + | let casinoPubKey = base58'EhyhHkMbyNu8PwHoiJVCq2SciN9FmM5KvBeSN2NkTmeL' | |
7 | + | let playerSigned = sigVerify(tx.bodyBytes, tx.proofs[0], playerPubKey) | |
8 | + | let casinoSigned = sigVerify(tx.bodyBytes, tx.proofs[0], casinoPubKey) | |
9 | + | let me = tx.sender | |
10 | + | let casinoBet = 22000000 | |
11 | + | let playerBet = 11000000 | |
12 | + | let amountOfDicesSelectedByPlayer = 2 | |
13 | + | let start = 378294 | |
14 | + | let balance = wavesBalance(me) | |
15 | + | let dice1 = extract(getInteger(me, "dice1")) | |
16 | + | let dice2 = extract(getInteger(me, "dice2")) | |
17 | + | let dice3 = extract(getInteger(me, "dice3")) | |
18 | + | let dice4 = extract(getInteger(me, "dice4")) | |
19 | + | let dice5 = extract(getInteger(me, "dice5")) | |
20 | + | let dice6 = extract(getInteger(me, "dice6")) | |
21 | + | let diceSum = (((((dice1 + dice2) + dice3) + dice4) + dice5) + dice6) | |
22 | + | let casinoDice = extract(getInteger(me, "casinoDice")) | |
23 | + | let playerDepositOk = (balance >= (casinoBet + playerBet)) | |
24 | + | let playerDepositTurn = if (if (((start + 50) > height)) | |
25 | + | then (balance >= casinoBet) | |
26 | + | else false) | |
27 | + | then !(playerDepositOk) | |
28 | + | else false | |
29 | + | let playerBetOk = (diceSum > 0) | |
30 | + | let playerBetTurn = if (if (((start + 100) > height)) | |
31 | + | then playerDepositOk | |
32 | + | else false) | |
33 | + | then !(playerBetOk) | |
34 | + | else false | |
35 | + | let casinoBetOk = (casinoDice > 0) | |
36 | + | let casinoBetTurn = if (if (((start + 200) > height)) | |
37 | + | then playerBetOk | |
38 | + | else false) | |
39 | + | then !(casinoBetOk) | |
40 | + | else false | |
41 | + | let prizeTurn = casinoBetOk | |
42 | + | let playerEmergencyTakeTurn = if ((height >= (start + 300))) | |
43 | + | then !(casinoBetOk) | |
44 | + | else false | |
45 | + | let casinoCanEmergencyTakeTurn = if ((height >= (start + 100))) | |
46 | + | then if (!(playerDepositOk)) | |
47 | + | then true | |
48 | + | else !(playerBetOk) | |
49 | + | else false | |
50 | + | match tx { | |
51 | + | case dtx: DataTransaction => | |
52 | + | let num = size(dtx.data) | |
53 | + | let choice1 = extract(getInteger(dtx.data, "dice1")) | |
54 | + | let choice2 = extract(getInteger(dtx.data, "dice2")) | |
55 | + | let choice3 = extract(getInteger(dtx.data, "dice3")) | |
56 | + | let choice4 = extract(getInteger(dtx.data, "dice4")) | |
57 | + | let choice5 = extract(getInteger(dtx.data, "dice5")) | |
58 | + | let choice6 = extract(getInteger(dtx.data, "dice6")) | |
59 | + | let isDice1 = if ((choice1 > 0)) | |
60 | + | then 1 | |
61 | + | else 0 | |
62 | + | let isDice2 = if ((choice2 > 0)) | |
63 | + | then 1 | |
64 | + | else 0 | |
65 | + | let isDice3 = if ((choice3 > 0)) | |
66 | + | then 1 | |
67 | + | else 0 | |
68 | + | let isDice4 = if ((choice4 > 0)) | |
69 | + | then 1 | |
70 | + | else 0 | |
71 | + | let isDice5 = if ((choice5 > 0)) | |
72 | + | then 1 | |
73 | + | else 0 | |
74 | + | let isDice6 = if ((choice6 > 0)) | |
75 | + | then 1 | |
76 | + | else 0 | |
77 | + | let amountOfDicesSelectedInTransaction = (((((isDice1 + isDice2) + isDice3) + isDice4) + isDice5) + isDice6) | |
78 | + | let casinoChoice = extract(getInteger(dtx.data, "casinoDice")) | |
79 | + | let salt = extract(getString(dtx.data, "salt")) | |
80 | + | let playerDicesInRange = if (if (if (if (if (if ((choice1 >= 0)) | |
81 | + | then (6 >= choice1) | |
82 | + | else false) | |
83 | + | then if ((choice2 >= 0)) | |
84 | + | then (6 >= choice2) | |
85 | + | else false | |
86 | + | else false) | |
87 | + | then if ((choice3 >= 0)) | |
88 | + | then (6 >= choice3) | |
89 | + | else false | |
90 | + | else false) | |
91 | + | then if ((choice4 >= 0)) | |
92 | + | then (6 >= choice4) | |
93 | + | else false | |
94 | + | else false) | |
95 | + | then if ((choice5 >= 0)) | |
96 | + | then (6 >= choice5) | |
97 | + | else false | |
98 | + | else false) | |
99 | + | then if ((choice6 >= 0)) | |
100 | + | then (6 >= choice6) | |
101 | + | else false | |
102 | + | else false | |
103 | + | let playerChoiceSum = (((((choice1 + choice2) + choice3) + choice4) + choice5) + choice6) | |
104 | + | let playerChoiceMul = (((((choice1 * choice2) * choice3) * choice4) * choice5) * choice6) | |
105 | + | let playerDicesNumberCorrect = if ((playerChoiceSum > 0)) | |
106 | + | then (playerChoiceMul == 0) | |
107 | + | else false | |
108 | + | let casinoDicesInRange = if ((casinoChoice >= 1)) | |
109 | + | then (6 >= casinoChoice) | |
110 | + | else false | |
111 | + | let newHash = keccak256(toBytes((toString(casinoChoice) + salt))) | |
112 | + | let casinoVerified = (newHash == base58'GgDo7Z6z89EnYQiNdT1ZvzLxjgKSGZ5MP4RWK236bov4') | |
113 | + | let playerInputCorrect = if (if (if (playerDicesInRange) | |
114 | + | then playerDicesNumberCorrect | |
115 | + | else false) | |
116 | + | then (num == 6) | |
117 | + | else false) | |
118 | + | then (amountOfDicesSelectedInTransaction == amountOfDicesSelectedByPlayer) | |
119 | + | else false | |
120 | + | let casinoInputCorrect = if (if (casinoDicesInRange) | |
121 | + | then casinoVerified | |
122 | + | else false) | |
123 | + | then (num == 2) | |
124 | + | else false | |
125 | + | if (if (if (casinoSigned) | |
126 | + | then casinoBetTurn | |
127 | + | else false) | |
128 | + | then casinoInputCorrect | |
129 | + | else false) | |
130 | + | then true | |
131 | + | else if (if (playerSigned) | |
132 | + | then playerBetTurn | |
133 | + | else false) | |
134 | + | then playerInputCorrect | |
135 | + | else false | |
136 | + | case ttx: TransferTransaction => | |
137 | + | let dicesMatch = if (if (if (if (if ((dice1 == casinoDice)) | |
138 | + | then true | |
139 | + | else (dice2 == casinoDice)) | |
140 | + | then true | |
141 | + | else (dice3 == casinoDice)) | |
142 | + | then true | |
143 | + | else (dice4 == casinoDice)) | |
144 | + | then true | |
145 | + | else (dice5 == casinoDice)) | |
146 | + | then true | |
147 | + | else (dice6 == casinoDice) | |
148 | + | let withdrawCorrect = if ((ttx.amount >= 10000000)) | |
149 | + | then (1000000 >= ttx.fee) | |
150 | + | else false | |
151 | + | let playerWin = if (casinoBetOk) | |
152 | + | then dicesMatch | |
153 | + | else false | |
154 | + | let casinoWin = if (if (casinoBetOk) | |
155 | + | then !(dicesMatch) | |
156 | + | else false) | |
157 | + | then (ttx.recipient == casinoAddr) | |
158 | + | else false | |
159 | + | let playerCanTakePrize = if (prizeTurn) | |
160 | + | then playerWin | |
161 | + | else false | |
162 | + | let playerCanTake = if (if (playerCanTakePrize) | |
163 | + | then true | |
164 | + | else playerEmergencyTakeTurn) | |
165 | + | then (ttx.recipient == playerAddr) | |
166 | + | else false | |
167 | + | let casinoCanTakePrize = if (if (prizeTurn) | |
168 | + | then casinoWin | |
169 | + | else false) | |
170 | + | then (ttx.recipient == casinoAddr) | |
171 | + | else false | |
172 | + | let casinoCanTake = if (if (casinoCanTakePrize) | |
173 | + | then true | |
174 | + | else casinoCanEmergencyTakeTurn) | |
175 | + | then (ttx.recipient == casinoAddr) | |
176 | + | else false | |
177 | + | if (if (playerCanTake) | |
178 | + | then true | |
179 | + | else casinoCanTake) | |
180 | + | then withdrawCorrect | |
181 | + | else false | |
182 | + | case _ => | |
183 | + | true | |
184 | + | } |
github/deemru/w8io/026f985 16.17 ms ◑