tx · C4ZjhaLPsYA3FW1p2S1EZZnrTCLRdRy3t9kYJMg2LqAK 3N6hQF6HBBQ5JCKB8Xs17Q61wkG3VrLvbGd: -0.10000000 Waves 2021.12.17 01:28 [1837426] smart account 3N6hQF6HBBQ5JCKB8Xs17Q61wkG3VrLvbGd > SELF 0.00000000 Waves
{ "type": 13, "id": "C4ZjhaLPsYA3FW1p2S1EZZnrTCLRdRy3t9kYJMg2LqAK", "fee": 10000000, "feeAssetId": null, "timestamp": 1639693722538, "version": 2, "chainId": 84, "sender": "3N6hQF6HBBQ5JCKB8Xs17Q61wkG3VrLvbGd", "senderPublicKey": "7Hi4o6vBstRs79NMVMjEove52dmP87RAcvNDAXN8C4Wi", "proofs": [ "2AmpjZ1Hk9qpMEiSisab8PMQiT3DwtKUEqHZU7YnaHvvo3jdEGpjnaoL8rw6fyUvEAju5grUzM9ac38Eajzo3ri5" ], "script": "base64:AAIFAAAAAAAAABIIAhIECgIBARIDCgEBEgMKAQEAAAANAAAAAAlzZXBhcmF0b3ICAAAAASwAAAAABm1heEJldAAAAAAABfXhAAEAAAAGZ2V0RmVlAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAW4FAAAAByRtYXRjaDAFAAAAAW4JAAACAAAAAQIAAAAbSW5pdGlhbCBmZWUgY2Fubm90IGJlIGZvdW5kAQAAAApnZXROZXdEZWNrAAAAAAkABEwAAAACAgAAAAMwMUMJAARMAAAAAgIAAAADMDJDCQAETAAAAAICAAAAAzAzQwkABEwAAAACAgAAAAMwNEMJAARMAAAAAgIAAAADMDVDCQAETAAAAAICAAAAAzA2QwkABEwAAAACAgAAAAMwN0MJAARMAAAAAgIAAAADMDhDCQAETAAAAAICAAAAAzA5QwkABEwAAAACAgAAAAMxMEMJAARMAAAAAgIAAAADMTFDCQAETAAAAAICAAAAAzEyQwkABEwAAAACAgAAAAMxM0MJAARMAAAAAgIAAAADMDFECQAETAAAAAICAAAAAzAyRAkABEwAAAACAgAAAAMwM0QJAARMAAAAAgIAAAADMDRECQAETAAAAAICAAAAAzA1RAkABEwAAAACAgAAAAMwNkQJAARMAAAAAgIAAAADMDdECQAETAAAAAICAAAAAzA4RAkABEwAAAACAgAAAAMwOUQJAARMAAAAAgIAAAADMTBECQAETAAAAAICAAAAAzExRAkABEwAAAACAgAAAAMxMkQJAARMAAAAAgIAAAADMTNECQAETAAAAAICAAAAAzAxSAkABEwAAAACAgAAAAMwMkgJAARMAAAAAgIAAAADMDNICQAETAAAAAICAAAAAzA0SAkABEwAAAACAgAAAAMwNUgJAARMAAAAAgIAAAADMDZICQAETAAAAAICAAAAAzA3SAkABEwAAAACAgAAAAMwOEgJAARMAAAAAgIAAAADMDlICQAETAAAAAICAAAAAzEwSAkABEwAAAACAgAAAAMxMUgJAARMAAAAAgIAAAADMTJICQAETAAAAAICAAAAAzEzSAkABEwAAAACAgAAAAMwMVMJAARMAAAAAgIAAAADMDJT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AAALJHQwNDE3OTQyOTkAAAACXzEEAAAAEmNhcmRQb3NpdGlvblBsYXllcggFAAAACyR0MDQxNzk0Mjk5AAAAAl8yBAAAAAdhdkRlY2sxCAUAAAALJHQwNDE3OTQyOTkAAAACXzMEAAAACyR0MDQzMDQ0NDI1CQEAAAAlZ2V0UGxheWVyQ2FyZEFuZFBvc2l0aW9uQW5kVXBkYXRlRGVjawAAAAMFAAAAAWkJAAGkAAAAAQUAAAAMY3VycmVudFJvdW5kBQAAAAdhdkRlY2sxBAAAAApjYXJkQ2FzaW5vCAUAAAALJHQwNDMwNDQ0MjUAAAACXzEEAAAAEmNhcmRQb3NpdGlvbkNhc2lubwgFAAAACyR0MDQzMDQ0NDI1AAAAAl8yBAAAAAdhdkRlY2syCAUAAAALJHQwNDMwNDQ0MjUAAAACXzMDCQAAAAAAAAIJAQAAAAxnZXRDYXJkVmFsdWUAAAABBQAAAApjYXJkUGxheWVyCQEAAAAMZ2V0Q2FyZFZhbHVlAAAAAQUAAAAKY2FyZENhc2lubwQAAAAMY3VycmVudERyYXdzAAAAAAAAAAABAwkBAAAAAiE9AAAAAgUAAAAGdGllQmV0AAAAAAAAAAAACQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWF2YWlsYWJsZVByb3AJAAS5AAAAAgUAAAAHYXZEZWNrMgUAAAAJc2VwYXJhdG9yCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAADWNhbGxlckFkZHJlc3MCAAAABl9yb3VuZAUAAAAMY3VycmVudFJvdW5kCQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACBQAAAAVyb3VuZAYJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAFcm91bmQCAAAAEV9MYXN0UmFuZG9uTnVtYmVyBQAAABJjYXJkUG9zaXRpb25DYXNpbm8JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAAVyb3VuZAIAAAALX3BsYXllckNhcmQFAAAACmNhcmRQbGF5ZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACBQAAAAVyb3VuZAIAAAALX2Nh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ZVByb3AJAAEsAAAAAgUAAAAFcm91bmQCAAAABV9kZWNrBAAAAAZhdkRlY2sJAQAAABBnZXRBdmFpbGFibGVEZWNrAAAAAgUAAAAEdGhpcwUAAAANYXZhaWxhYmxlUHJvcAQAAAALJHQwOTY1NDk3NjUJAQAAACVnZXRQbGF5ZXJDYXJkQW5kUG9zaXRpb25BbmRVcGRhdGVEZWNrAAAAAwUAAAABaQkAAaQAAAABBQAAAApyb3VuZFRvVXNlBQAAAAZhdkRlY2sEAAAAB2J1cm5lZDEIBQAAAAskdDA5NjU0OTc2NQAAAAJfMQQAAAAKYnVybmVkUG9zMQgFAAAACyR0MDk2NTQ5NzY1AAAAAl8yBAAAAAtidXJuZWREZWNrMQgFAAAACyR0MDk2NTQ5NzY1AAAAAl8zBAAAAAskdDA5Nzc4OTkwNAkBAAAAJWdldFBsYXllckNhcmRBbmRQb3NpdGlvbkFuZFVwZGF0ZURlY2sAAAADBQAAAAFpCQABLAAAAAIJAAGkAAAAAQUAAAAKcm91bmRUb1VzZQUAAAAHYnVybmVkMQUAAAALYnVybmVkRGVjazEEAAAAB2J1cm5lZDIIBQAAAAskdDA5Nzc4OTkwNAAAAAJfMQQAAAAKYnVybmVkUG9zMggFAAAACyR0MDk3Nzg5OTA0AAAAAl8yBAAAAAtidXJuZWREZWNrMggFAAAACyR0MDk3Nzg5OTA0AAAAAl8zBAAAAAwkdDA5OTE3MTAwNDMJAQAAACVnZXRQbGF5ZXJDYXJkQW5kUG9zaXRpb25BbmRVcGRhdGVEZWNrAAAAAwUAAAABaQkAASwAAAACCQABpAAAAAEFAAAACnJvdW5kVG9Vc2UFAAAAB2J1cm5lZDIFAAAAC2J1cm5lZERlY2syBAAAAAdidXJuZWQzCAUAAAAMJHQwOTkxNzEwMDQzAAAAAl8xBAAAAApidXJuZWRQb3MzCAUAAAAMJHQwOTkxNzEwMDQzAAAAAl8yBAAAAAtidXJuZWREZWNrMwgFAAAADCR0MDk5MTcxMDA0MwAAAAJfMwQAAAANJHQwMTAwNTYxMDE4OQkBAAAAJWdldFBsYXllckNhcmRBbmRQb3NpdGlvbkFuZFVwZGF0ZURlY2sAAAADBQAAAAFpCQABLAAAAAIJAAGkAAAAAQUAAAAKcm91bmRUb1VzZQUAAAAHYnVybmVkMwUAAAALYnVybmVkRGVjazMEAAAACmNhcmRQbGF5ZXIIBQAAAA0kdDAxMDA1NjEwMTg5AAAAAl8xBAAAABJjYXJkUG9zaXRpb25QbGF5ZXIIBQAAAA0kdDAxMDA1NjEwMTg5AAAAAl8yBAAAAAdhdkRlY2sxCAUAAAANJHQwMTAwNTYxMDE4OQAAAAJfMwQAAAANJHQwMTAyMDIxMDMzNAkBAAAAJWdldFBsYXllckNhcmRBbmRQb3NpdGlvbkFuZFVwZGF0ZURlY2sAAAADBQAAAAFpCQABLAAAAAIJAAGkAAAAAQUAAAAKcm91bmRUb1VzZQUAAAAKY2FyZFBsYXllcgUAAAAHYXZEZWNrMQQAAAAKY2FyZENhc2lubwgFAAAADSR0MDEwMjAyMTAzMzQAAAACXzEEAAAAEmNhcmRQb3NpdGlvbkNhc2lubwgFAAAADSR0MDEwMjAyMTAzMzQAAAACXzIEAAAAB2F2RGVjazIIBQAAAA0kdDAxMDIwMjEwMzM0AAAAAl8zAwkAAAAAAAACCQEAAAAMZ2V0Q2FyZFZhbHVlAAAAAQUAAAAKY2FyZFBsYXllcgkBAAAADGdldENhcmRWYWx1ZQAAAAEFAAAACmNhcmRDYXNpbm8EAAAADGN1cnJlbnREcmF3cwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIFAAAABXJvdW5kAgAAAA1fZHJhd1NlcXVlbmNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAJAABkAAAAAgUAAAABYQAAAAAAAAAAAQAAAAAAAAAAAAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA1hdmFpbGFibGVQcm9wCQAEuQAAAAIFAAAAB2F2RGVjazIFAAAACXNlcGFyYXRvcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAVyb3VuZAIAAAARX0xhc3RSYW5kb25OdW1iZXIFAAAAEmNhcmRQb3NpdGlvbkNhc2lubwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAABXJvdW5kAgAAAAtfcGxheWVyQ2FyZAUAAAAKY2FyZFBsYXllcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAABXJvdW5kAgAAAAtfY2FzaW5vQ2FyZAUAAAAKY2FyZENhc2lubwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAVyb3VuZAIAAAANX2RyYXdTZXF1ZW5jZQUAAAAMY3VycmVudERyYXdzBQAAAANuaWwDCQEAAAAOaXNQbGF5ZXJXaW5uZXIAAAACBQAAAApjYXJkUGxheWVyBQAAAApjYXJkQ2FzaW5vCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADWF2YWlsYWJsZVByb3AJAAS5AAAAAgUAAAAHYXZEZWNrMgUAAAAJc2VwYXJhdG9yCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIFAAAABXJvdW5kAgAAABFfTGFzdFJhbmRvbk51bWJlcgUAAAASY2FyZFBvc2l0aW9uQ2FzaW5vCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAFcm91bmQCAAAAC19wbGF5ZXJDYXJkBQAAAApjYXJkUGxheWVyCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAEsAAAAAgUAAAAFcm91bmQCAAAAC19jYXNpbm9DYXJkBQAAAApjYXJkQ2FzaW5vCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgkAAGQAAAACBQAAAAFwBQAAAAFmBQAAAAR1bml0CQAETAAAAAIJAQAAAAxCb29sZWFuRW50cnkAAAACCQABLAAAAAIFAAAABXJvdW5kAgAAAAVfc3RvcAYFAAAAA25pbAkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA1hdmFpbGFibGVQcm9wCQAEuQAAAAIFAAAAB2F2RGVjazIFAAAACXNlcGFyYXRvcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACBQAAAAVyb3VuZAIAAAARX0xhc3RSYW5kb25OdW1iZXIFAAAAEmNhcmRQb3NpdGlvbkNhc2lubwkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAABXJvdW5kAgAAAAtfcGxheWVyQ2FyZAUAAAAKY2FyZFBsYXllcgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIFAAAABXJvdW5kAgAAAAtfY2FzaW5vQ2FyZAUAAAAKY2FyZENhc2lubwkABEwAAAACCQEAAAAMQm9vbGVhbkVudHJ5AAAAAgkAASwAAAACBQAAAAVyb3VuZAIAAAAFX3N0b3AGBQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleRvXsBM=", "height": 1837426, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Hgf3NUYYrT5U5WL7PWTqQ4BDUCgEfCGJAXPBWsLhmR2o Next: DtDMobNyFDamZhQstGak6PHq9UA2eV4QuUsFy7HEiM3a Diff:
Old | New | Differences | |
---|---|---|---|
27 | 27 | else j | |
28 | 28 | ||
29 | 29 | ||
30 | - | func k (l,m,n) = { | |
31 | - | let | |
32 | - | let | |
33 | - | let | |
34 | - | if ((0 > | |
35 | - | then ((-1 * | |
36 | - | else ( | |
30 | + | func k (l,m,n,o) = { | |
31 | + | let p = (toInt(sha256(((take(lastBlock.generationSignature, 16) + take(l.transactionId, 16)) + toBytes(m)))) % 17728) | |
32 | + | let q = (toInt(toBytes(pow(p, 0, 2, 0, 0, HALFUP))) + toInt(toBytes(n))) | |
33 | + | let r = (q % o) | |
34 | + | if ((0 > r)) | |
35 | + | then ((-1 * r) + 1) | |
36 | + | else (r + 1) | |
37 | 37 | } | |
38 | 38 | ||
39 | 39 | ||
40 | - | func | |
41 | - | | |
42 | - | if ( | |
40 | + | func s (l) = if ((size(l.payments) == 0)) | |
41 | + | then throw("Payment must be attached") | |
42 | + | else if ((size(l.payments) == 1)) | |
43 | 43 | then { | |
44 | - | let f = e | |
45 | - | toString(f) | |
46 | - | } | |
47 | - | else s | |
48 | - | } | |
49 | - | ||
50 | - | ||
51 | - | func t (u) = if ((size(u.payments) == 0)) | |
52 | - | then throw("Payment must be attached") | |
53 | - | else if ((size(u.payments) == 1)) | |
54 | - | then { | |
55 | - | let v = u.payments[0] | |
56 | - | if (isDefined(v.assetId)) | |
44 | + | let t = l.payments[0] | |
45 | + | if (isDefined(t.assetId)) | |
57 | 46 | then throw("This function accepts WAVES tokens only (0)") | |
58 | - | else | |
47 | + | else t.amount | |
59 | 48 | } | |
60 | 49 | else throw("There should be only one payment") | |
61 | 50 | ||
62 | 51 | ||
63 | - | func | |
64 | - | let | |
65 | - | if (( | |
52 | + | func u (v) = { | |
53 | + | let w = parseIntValue(take(v, 2)) | |
54 | + | if ((w == 1)) | |
66 | 55 | then 20 | |
67 | - | else | |
56 | + | else w | |
68 | 57 | } | |
69 | 58 | ||
70 | 59 | ||
71 | - | func | |
72 | - | let | |
73 | - | let | |
74 | - | ( | |
60 | + | func x (y,z) = { | |
61 | + | let w = u(y) | |
62 | + | let A = u(z) | |
63 | + | (w > A) | |
75 | 64 | } | |
76 | 65 | ||
77 | 66 | ||
78 | - | func | |
67 | + | func B (C,D) = if (isDefined(getString(C, D))) | |
79 | 68 | then { | |
80 | - | let | |
81 | - | let j = split( | |
69 | + | let E = getStringValue(C, D) | |
70 | + | let j = split(E, a) | |
82 | 71 | i(j) | |
83 | 72 | } | |
84 | 73 | else h() | |
85 | 74 | ||
86 | 75 | ||
87 | - | func | |
88 | - | let | |
89 | - | let | |
90 | - | let | |
91 | - | let | |
92 | - | $Tuple3( | |
76 | + | func F (l,m,j) = { | |
77 | + | let G = i(j) | |
78 | + | let H = k(l, m, makeString(G, a), size(G)) | |
79 | + | let I = G[(H % size(G))] | |
80 | + | let J = removeByIndex(G, (H % size(G))) | |
81 | + | $Tuple3(I, H, J) | |
93 | 82 | } | |
94 | 83 | ||
95 | 84 | ||
96 | - | func | |
85 | + | func K (L,M) = if ((L == 0)) | |
97 | 86 | then { | |
98 | - | let | |
99 | - | let e = getInteger(this, ( | |
87 | + | let N = { | |
88 | + | let e = getInteger(this, (M + "_round")) | |
100 | 89 | if ($isInstanceOf(e, "Int")) | |
101 | 90 | then { | |
102 | - | let | |
103 | - | | |
91 | + | let O = e | |
92 | + | O | |
104 | 93 | } | |
105 | 94 | else throw("Unable to find the round") | |
106 | 95 | } | |
107 | - | | |
96 | + | N | |
108 | 97 | } | |
109 | - | else | |
98 | + | else L | |
110 | 99 | ||
111 | 100 | ||
112 | - | @Callable( | |
113 | - | func bet ( | |
114 | - | let | |
115 | - | let | |
116 | - | let | |
117 | - | let e = getInteger(this, ( | |
101 | + | @Callable(l) | |
102 | + | func bet (P,Q) = { | |
103 | + | let M = toBase58String(l.caller.bytes) | |
104 | + | let w = s(l) | |
105 | + | let N = { | |
106 | + | let e = getInteger(this, (M + "_round")) | |
118 | 107 | if ($isInstanceOf(e, "Int")) | |
119 | 108 | then { | |
120 | - | let | |
121 | - | ( | |
109 | + | let O = e | |
110 | + | (O + 1) | |
122 | 111 | } | |
123 | 112 | else 1 | |
124 | 113 | } | |
125 | - | let | |
126 | - | if (isDefined(getBoolean(this, ( | |
114 | + | let R = ((M + "_") + toString(N)) | |
115 | + | if (isDefined(getBoolean(this, (R + "_stop")))) | |
127 | 116 | then throw("This round is already played") | |
128 | - | else if (isDefined(getString(this, | |
117 | + | else if (isDefined(getString(this, R))) | |
129 | 118 | then throw("You cannot bet on this game") | |
130 | - | else if (( | |
119 | + | else if ((w != (P + Q))) | |
131 | 120 | then throw("normal bet + tie bet should be equal to the payment") | |
132 | - | else if (( | |
121 | + | else if ((w > b)) | |
133 | 122 | then throw(("The bet needs to be lower or equal than " + toString(b))) | |
134 | 123 | else { | |
135 | - | let F = (U + "_deck") | |
136 | - | let V = D(this, F) | |
137 | - | let W = H(U, U, V) | |
138 | - | let A = W._1 | |
124 | + | let D = (R + "_deck") | |
125 | + | let S = B(this, D) | |
126 | + | let T = F(l, toString(N), S) | |
127 | + | let y = T._1 | |
128 | + | let U = T._2 | |
129 | + | let V = T._3 | |
130 | + | let W = F(l, toString(N), V) | |
131 | + | let z = W._1 | |
139 | 132 | let X = W._2 | |
140 | - | let Y = W._3 | |
141 | - | let Z = H((U + A), U, Y) | |
142 | - | let B = Z._1 | |
143 | - | let aa = Z._2 | |
144 | - | let K = Z._3 | |
145 | - | if ((w(A) == w(B))) | |
133 | + | let G = W._3 | |
134 | + | if ((u(y) == u(z))) | |
146 | 135 | then { | |
147 | - | let | |
148 | - | if (( | |
149 | - | then [StringEntry( | |
150 | - | else [StringEntry( | |
136 | + | let Y = 1 | |
137 | + | if ((Q != 0)) | |
138 | + | then [StringEntry(D, makeString(G, a)), IntegerEntry((M + "_round"), N), BooleanEntry(R, true), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_drawSequence"), Y), IntegerEntry((R + "_betAmount"), P), ScriptTransfer(l.caller, (((Q * 10) + Q) + l.fee), unit)] | |
139 | + | else [StringEntry(D, makeString(G, a)), IntegerEntry((M + "_round"), N), BooleanEntry(R, true), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_drawSequence"), Y), IntegerEntry((R + "_betAmount"), P), IntegerEntry((R + "_initialFee"), l.fee)] | |
151 | 140 | } | |
152 | - | else if ( | |
153 | - | then [StringEntry( | |
154 | - | else [StringEntry( | |
141 | + | else if (x(y, z)) | |
142 | + | then [StringEntry(D, makeString(G, a)), BooleanEntry(R, true), IntegerEntry((M + "_round"), N), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_betAmount"), P), IntegerEntry((R + "_initialFee"), l.fee), ScriptTransfer(l.caller, (P + l.fee), unit), BooleanEntry((R + "_stop"), true)] | |
143 | + | else [StringEntry(D, makeString(G, a)), BooleanEntry(R, true), IntegerEntry((M + "_round"), N), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_betAmount"), P), IntegerEntry((R + "_initialFee"), l.fee), BooleanEntry((R + "_stop"), true)] | |
155 | 144 | } | |
156 | 145 | } | |
157 | 146 | ||
158 | 147 | ||
159 | 148 | ||
160 | - | @Callable( | |
161 | - | func surrender ( | |
162 | - | let | |
163 | - | let | |
164 | - | let | |
165 | - | if (!(isDefined(getBoolean(this, | |
149 | + | @Callable(l) | |
150 | + | func surrender (L) = { | |
151 | + | let M = toBase58String(l.caller.bytes) | |
152 | + | let Z = K(L, M) | |
153 | + | let R = ((M + "_") + toString(Z)) | |
154 | + | if (!(isDefined(getBoolean(this, R)))) | |
166 | 155 | then throw("This round is not played") | |
167 | - | else if (isDefined(getBoolean(this, ( | |
156 | + | else if (isDefined(getBoolean(this, (R + "_stop")))) | |
168 | 157 | then throw("This round is already played") | |
169 | - | else if (!(isDefined(getInteger(this, ( | |
158 | + | else if (!(isDefined(getInteger(this, (R + "_drawSequence"))))) | |
170 | 159 | then throw("This game is not on war") | |
171 | 160 | else { | |
172 | - | let | |
173 | - | let e = getInteger(this, ( | |
161 | + | let aa = { | |
162 | + | let e = getInteger(this, (R + "_betAmount")) | |
174 | 163 | if ($isInstanceOf(e, "Int")) | |
175 | 164 | then { | |
176 | - | let | |
177 | - | | |
165 | + | let O = e | |
166 | + | O | |
178 | 167 | } | |
179 | 168 | else throw("Unable to find original bet amount") | |
180 | 169 | } | |
181 | - | let | |
182 | - | [ScriptTransfer( | |
170 | + | let ab = c((R + "_initialFee")) | |
171 | + | [ScriptTransfer(l.caller, ((aa / 2) + ab), unit), BooleanEntry((R + "_stop"), true)] | |
183 | 172 | } | |
184 | 173 | } | |
185 | 174 | ||
186 | 175 | ||
187 | 176 | ||
188 | - | @Callable( | |
189 | - | func goToWar ( | |
190 | - | let | |
191 | - | let | |
192 | - | let | |
193 | - | if (!(isDefined(getBoolean(this, | |
177 | + | @Callable(l) | |
178 | + | func goToWar (L) = { | |
179 | + | let M = toBase58String(l.caller.bytes) | |
180 | + | let Z = K(L, M) | |
181 | + | let R = ((M + "_") + toString(Z)) | |
182 | + | if (!(isDefined(getBoolean(this, R)))) | |
194 | 183 | then throw("This round is not played") | |
195 | - | else if (isDefined(getBoolean(this, ( | |
184 | + | else if (isDefined(getBoolean(this, (R + "_stop")))) | |
196 | 185 | then throw("This round is already played") | |
197 | - | else if (!(isDefined(getInteger(this, ( | |
186 | + | else if (!(isDefined(getInteger(this, (R + "_drawSequence"))))) | |
198 | 187 | then throw("This game is not on war") | |
199 | 188 | else { | |
200 | - | let | |
201 | - | let e = getInteger(this, ( | |
189 | + | let aa = { | |
190 | + | let e = getInteger(this, (R + "_betAmount")) | |
202 | 191 | if ($isInstanceOf(e, "Int")) | |
203 | 192 | then { | |
204 | - | let | |
205 | - | | |
193 | + | let O = e | |
194 | + | O | |
206 | 195 | } | |
207 | 196 | else throw("Unable to find original bet amount") | |
208 | 197 | } | |
209 | - | let | |
210 | - | let | |
211 | - | if (( | |
212 | - | then throw((((("original bet amount (" + toString( | |
198 | + | let w = s(l) | |
199 | + | let ab = c((R + "_initialFee")) | |
200 | + | if ((w != aa)) | |
201 | + | then throw((((("original bet amount (" + toString(aa)) + ") different to the current payment (") + toString(w)) + ")")) | |
213 | 202 | else { | |
214 | - | let | |
215 | - | let | |
216 | - | let | |
217 | - | let | |
218 | - | let | |
219 | - | let | |
220 | - | let | |
221 | - | let | |
222 | - | let | |
223 | - | let | |
224 | - | let | |
225 | - | let | |
226 | - | let | |
227 | - | let | |
228 | - | let | |
229 | - | let | |
230 | - | let | |
231 | - | let | |
232 | - | let | |
233 | - | let | |
234 | - | let | |
235 | - | let | |
236 | - | if (( | |
203 | + | let D = (R + "_deck") | |
204 | + | let S = B(this, D) | |
205 | + | let ac = F(l, toString(Z), S) | |
206 | + | let ad = ac._1 | |
207 | + | let ae = ac._2 | |
208 | + | let af = ac._3 | |
209 | + | let ag = F(l, (toString(Z) + ad), af) | |
210 | + | let ah = ag._1 | |
211 | + | let ai = ag._2 | |
212 | + | let aj = ag._3 | |
213 | + | let ak = F(l, (toString(Z) + ah), aj) | |
214 | + | let al = ak._1 | |
215 | + | let am = ak._2 | |
216 | + | let an = ak._3 | |
217 | + | let ao = F(l, (toString(Z) + al), an) | |
218 | + | let y = ao._1 | |
219 | + | let U = ao._2 | |
220 | + | let V = ao._3 | |
221 | + | let ap = F(l, (toString(Z) + y), V) | |
222 | + | let z = ap._1 | |
223 | + | let X = ap._2 | |
224 | + | let G = ap._3 | |
225 | + | if ((u(y) == u(z))) | |
237 | 226 | then { | |
238 | - | let | |
239 | - | let e = getInteger(this, ( | |
227 | + | let Y = { | |
228 | + | let e = getInteger(this, (R + "_drawSequence")) | |
240 | 229 | if ($isInstanceOf(e, "Int")) | |
241 | 230 | then { | |
242 | - | let | |
243 | - | ( | |
231 | + | let O = e | |
232 | + | (O + 1) | |
244 | 233 | } | |
245 | 234 | else 0 | |
246 | 235 | } | |
247 | - | [StringEntry( | |
236 | + | [StringEntry(D, makeString(G, a)), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_drawSequence"), Y)] | |
248 | 237 | } | |
249 | - | else if ( | |
250 | - | then [StringEntry( | |
251 | - | else [StringEntry( | |
238 | + | else if (x(y, z)) | |
239 | + | then [StringEntry(D, makeString(G, a)), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), ScriptTransfer(l.caller, (w + ab), unit), BooleanEntry((R + "_stop"), true)] | |
240 | + | else [StringEntry(D, makeString(G, a)), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), BooleanEntry((R + "_stop"), true)] | |
252 | 241 | } | |
253 | 242 | } | |
254 | 243 | } | |
255 | 244 | ||
256 | 245 | ||
257 | - | @Verifier( | |
258 | - | func | |
246 | + | @Verifier(aq) | |
247 | + | func ar () = sigVerify(aq.bodyBytes, aq.proofs[0], aq.senderPublicKey) | |
259 | 248 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "," | |
5 | 5 | ||
6 | 6 | let b = 100000000 | |
7 | 7 | ||
8 | 8 | func c (d) = { | |
9 | 9 | let e = getInteger(this, d) | |
10 | 10 | if ($isInstanceOf(e, "Int")) | |
11 | 11 | then { | |
12 | 12 | let f = e | |
13 | 13 | f | |
14 | 14 | } | |
15 | 15 | else throw("Initial fee cannot be found") | |
16 | 16 | } | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func g () = ["01C", "02C", "03C", "04C", "05C", "06C", "07C", "08C", "09C", "10C", "11C", "12C", "13C", "01D", "02D", "03D", "04D", "05D", "06D", "07D", "08D", "09D", "10D", "11D", "12D", "13D", "01H", "02H", "03H", "04H", "05H", "06H", "07H", "08H", "09H", "10H", "11H", "12H", "13H", "01S", "02S", "03S", "04S", "05S", "06S", "07S", "08S", "09S", "10S", "11S", "12S", "13S"] | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func h () = (((((g() ++ g()) ++ g()) ++ g()) ++ g()) ++ g()) | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | func i (j) = if ((0 >= size(j))) | |
26 | 26 | then h() | |
27 | 27 | else j | |
28 | 28 | ||
29 | 29 | ||
30 | - | func k (l,m,n) = { | |
31 | - | let | |
32 | - | let | |
33 | - | let | |
34 | - | if ((0 > | |
35 | - | then ((-1 * | |
36 | - | else ( | |
30 | + | func k (l,m,n,o) = { | |
31 | + | let p = (toInt(sha256(((take(lastBlock.generationSignature, 16) + take(l.transactionId, 16)) + toBytes(m)))) % 17728) | |
32 | + | let q = (toInt(toBytes(pow(p, 0, 2, 0, 0, HALFUP))) + toInt(toBytes(n))) | |
33 | + | let r = (q % o) | |
34 | + | if ((0 > r)) | |
35 | + | then ((-1 * r) + 1) | |
36 | + | else (r + 1) | |
37 | 37 | } | |
38 | 38 | ||
39 | 39 | ||
40 | - | func | |
41 | - | | |
42 | - | if ( | |
40 | + | func s (l) = if ((size(l.payments) == 0)) | |
41 | + | then throw("Payment must be attached") | |
42 | + | else if ((size(l.payments) == 1)) | |
43 | 43 | then { | |
44 | - | let f = e | |
45 | - | toString(f) | |
46 | - | } | |
47 | - | else s | |
48 | - | } | |
49 | - | ||
50 | - | ||
51 | - | func t (u) = if ((size(u.payments) == 0)) | |
52 | - | then throw("Payment must be attached") | |
53 | - | else if ((size(u.payments) == 1)) | |
54 | - | then { | |
55 | - | let v = u.payments[0] | |
56 | - | if (isDefined(v.assetId)) | |
44 | + | let t = l.payments[0] | |
45 | + | if (isDefined(t.assetId)) | |
57 | 46 | then throw("This function accepts WAVES tokens only (0)") | |
58 | - | else | |
47 | + | else t.amount | |
59 | 48 | } | |
60 | 49 | else throw("There should be only one payment") | |
61 | 50 | ||
62 | 51 | ||
63 | - | func | |
64 | - | let | |
65 | - | if (( | |
52 | + | func u (v) = { | |
53 | + | let w = parseIntValue(take(v, 2)) | |
54 | + | if ((w == 1)) | |
66 | 55 | then 20 | |
67 | - | else | |
56 | + | else w | |
68 | 57 | } | |
69 | 58 | ||
70 | 59 | ||
71 | - | func | |
72 | - | let | |
73 | - | let | |
74 | - | ( | |
60 | + | func x (y,z) = { | |
61 | + | let w = u(y) | |
62 | + | let A = u(z) | |
63 | + | (w > A) | |
75 | 64 | } | |
76 | 65 | ||
77 | 66 | ||
78 | - | func | |
67 | + | func B (C,D) = if (isDefined(getString(C, D))) | |
79 | 68 | then { | |
80 | - | let | |
81 | - | let j = split( | |
69 | + | let E = getStringValue(C, D) | |
70 | + | let j = split(E, a) | |
82 | 71 | i(j) | |
83 | 72 | } | |
84 | 73 | else h() | |
85 | 74 | ||
86 | 75 | ||
87 | - | func | |
88 | - | let | |
89 | - | let | |
90 | - | let | |
91 | - | let | |
92 | - | $Tuple3( | |
76 | + | func F (l,m,j) = { | |
77 | + | let G = i(j) | |
78 | + | let H = k(l, m, makeString(G, a), size(G)) | |
79 | + | let I = G[(H % size(G))] | |
80 | + | let J = removeByIndex(G, (H % size(G))) | |
81 | + | $Tuple3(I, H, J) | |
93 | 82 | } | |
94 | 83 | ||
95 | 84 | ||
96 | - | func | |
85 | + | func K (L,M) = if ((L == 0)) | |
97 | 86 | then { | |
98 | - | let | |
99 | - | let e = getInteger(this, ( | |
87 | + | let N = { | |
88 | + | let e = getInteger(this, (M + "_round")) | |
100 | 89 | if ($isInstanceOf(e, "Int")) | |
101 | 90 | then { | |
102 | - | let | |
103 | - | | |
91 | + | let O = e | |
92 | + | O | |
104 | 93 | } | |
105 | 94 | else throw("Unable to find the round") | |
106 | 95 | } | |
107 | - | | |
96 | + | N | |
108 | 97 | } | |
109 | - | else | |
98 | + | else L | |
110 | 99 | ||
111 | 100 | ||
112 | - | @Callable( | |
113 | - | func bet ( | |
114 | - | let | |
115 | - | let | |
116 | - | let | |
117 | - | let e = getInteger(this, ( | |
101 | + | @Callable(l) | |
102 | + | func bet (P,Q) = { | |
103 | + | let M = toBase58String(l.caller.bytes) | |
104 | + | let w = s(l) | |
105 | + | let N = { | |
106 | + | let e = getInteger(this, (M + "_round")) | |
118 | 107 | if ($isInstanceOf(e, "Int")) | |
119 | 108 | then { | |
120 | - | let | |
121 | - | ( | |
109 | + | let O = e | |
110 | + | (O + 1) | |
122 | 111 | } | |
123 | 112 | else 1 | |
124 | 113 | } | |
125 | - | let | |
126 | - | if (isDefined(getBoolean(this, ( | |
114 | + | let R = ((M + "_") + toString(N)) | |
115 | + | if (isDefined(getBoolean(this, (R + "_stop")))) | |
127 | 116 | then throw("This round is already played") | |
128 | - | else if (isDefined(getString(this, | |
117 | + | else if (isDefined(getString(this, R))) | |
129 | 118 | then throw("You cannot bet on this game") | |
130 | - | else if (( | |
119 | + | else if ((w != (P + Q))) | |
131 | 120 | then throw("normal bet + tie bet should be equal to the payment") | |
132 | - | else if (( | |
121 | + | else if ((w > b)) | |
133 | 122 | then throw(("The bet needs to be lower or equal than " + toString(b))) | |
134 | 123 | else { | |
135 | - | let F = (U + "_deck") | |
136 | - | let V = D(this, F) | |
137 | - | let W = H(U, U, V) | |
138 | - | let A = W._1 | |
124 | + | let D = (R + "_deck") | |
125 | + | let S = B(this, D) | |
126 | + | let T = F(l, toString(N), S) | |
127 | + | let y = T._1 | |
128 | + | let U = T._2 | |
129 | + | let V = T._3 | |
130 | + | let W = F(l, toString(N), V) | |
131 | + | let z = W._1 | |
139 | 132 | let X = W._2 | |
140 | - | let Y = W._3 | |
141 | - | let Z = H((U + A), U, Y) | |
142 | - | let B = Z._1 | |
143 | - | let aa = Z._2 | |
144 | - | let K = Z._3 | |
145 | - | if ((w(A) == w(B))) | |
133 | + | let G = W._3 | |
134 | + | if ((u(y) == u(z))) | |
146 | 135 | then { | |
147 | - | let | |
148 | - | if (( | |
149 | - | then [StringEntry( | |
150 | - | else [StringEntry( | |
136 | + | let Y = 1 | |
137 | + | if ((Q != 0)) | |
138 | + | then [StringEntry(D, makeString(G, a)), IntegerEntry((M + "_round"), N), BooleanEntry(R, true), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_drawSequence"), Y), IntegerEntry((R + "_betAmount"), P), ScriptTransfer(l.caller, (((Q * 10) + Q) + l.fee), unit)] | |
139 | + | else [StringEntry(D, makeString(G, a)), IntegerEntry((M + "_round"), N), BooleanEntry(R, true), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_drawSequence"), Y), IntegerEntry((R + "_betAmount"), P), IntegerEntry((R + "_initialFee"), l.fee)] | |
151 | 140 | } | |
152 | - | else if ( | |
153 | - | then [StringEntry( | |
154 | - | else [StringEntry( | |
141 | + | else if (x(y, z)) | |
142 | + | then [StringEntry(D, makeString(G, a)), BooleanEntry(R, true), IntegerEntry((M + "_round"), N), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_betAmount"), P), IntegerEntry((R + "_initialFee"), l.fee), ScriptTransfer(l.caller, (P + l.fee), unit), BooleanEntry((R + "_stop"), true)] | |
143 | + | else [StringEntry(D, makeString(G, a)), BooleanEntry(R, true), IntegerEntry((M + "_round"), N), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_betAmount"), P), IntegerEntry((R + "_initialFee"), l.fee), BooleanEntry((R + "_stop"), true)] | |
155 | 144 | } | |
156 | 145 | } | |
157 | 146 | ||
158 | 147 | ||
159 | 148 | ||
160 | - | @Callable( | |
161 | - | func surrender ( | |
162 | - | let | |
163 | - | let | |
164 | - | let | |
165 | - | if (!(isDefined(getBoolean(this, | |
149 | + | @Callable(l) | |
150 | + | func surrender (L) = { | |
151 | + | let M = toBase58String(l.caller.bytes) | |
152 | + | let Z = K(L, M) | |
153 | + | let R = ((M + "_") + toString(Z)) | |
154 | + | if (!(isDefined(getBoolean(this, R)))) | |
166 | 155 | then throw("This round is not played") | |
167 | - | else if (isDefined(getBoolean(this, ( | |
156 | + | else if (isDefined(getBoolean(this, (R + "_stop")))) | |
168 | 157 | then throw("This round is already played") | |
169 | - | else if (!(isDefined(getInteger(this, ( | |
158 | + | else if (!(isDefined(getInteger(this, (R + "_drawSequence"))))) | |
170 | 159 | then throw("This game is not on war") | |
171 | 160 | else { | |
172 | - | let | |
173 | - | let e = getInteger(this, ( | |
161 | + | let aa = { | |
162 | + | let e = getInteger(this, (R + "_betAmount")) | |
174 | 163 | if ($isInstanceOf(e, "Int")) | |
175 | 164 | then { | |
176 | - | let | |
177 | - | | |
165 | + | let O = e | |
166 | + | O | |
178 | 167 | } | |
179 | 168 | else throw("Unable to find original bet amount") | |
180 | 169 | } | |
181 | - | let | |
182 | - | [ScriptTransfer( | |
170 | + | let ab = c((R + "_initialFee")) | |
171 | + | [ScriptTransfer(l.caller, ((aa / 2) + ab), unit), BooleanEntry((R + "_stop"), true)] | |
183 | 172 | } | |
184 | 173 | } | |
185 | 174 | ||
186 | 175 | ||
187 | 176 | ||
188 | - | @Callable( | |
189 | - | func goToWar ( | |
190 | - | let | |
191 | - | let | |
192 | - | let | |
193 | - | if (!(isDefined(getBoolean(this, | |
177 | + | @Callable(l) | |
178 | + | func goToWar (L) = { | |
179 | + | let M = toBase58String(l.caller.bytes) | |
180 | + | let Z = K(L, M) | |
181 | + | let R = ((M + "_") + toString(Z)) | |
182 | + | if (!(isDefined(getBoolean(this, R)))) | |
194 | 183 | then throw("This round is not played") | |
195 | - | else if (isDefined(getBoolean(this, ( | |
184 | + | else if (isDefined(getBoolean(this, (R + "_stop")))) | |
196 | 185 | then throw("This round is already played") | |
197 | - | else if (!(isDefined(getInteger(this, ( | |
186 | + | else if (!(isDefined(getInteger(this, (R + "_drawSequence"))))) | |
198 | 187 | then throw("This game is not on war") | |
199 | 188 | else { | |
200 | - | let | |
201 | - | let e = getInteger(this, ( | |
189 | + | let aa = { | |
190 | + | let e = getInteger(this, (R + "_betAmount")) | |
202 | 191 | if ($isInstanceOf(e, "Int")) | |
203 | 192 | then { | |
204 | - | let | |
205 | - | | |
193 | + | let O = e | |
194 | + | O | |
206 | 195 | } | |
207 | 196 | else throw("Unable to find original bet amount") | |
208 | 197 | } | |
209 | - | let | |
210 | - | let | |
211 | - | if (( | |
212 | - | then throw((((("original bet amount (" + toString( | |
198 | + | let w = s(l) | |
199 | + | let ab = c((R + "_initialFee")) | |
200 | + | if ((w != aa)) | |
201 | + | then throw((((("original bet amount (" + toString(aa)) + ") different to the current payment (") + toString(w)) + ")")) | |
213 | 202 | else { | |
214 | - | let | |
215 | - | let | |
216 | - | let | |
217 | - | let | |
218 | - | let | |
219 | - | let | |
220 | - | let | |
221 | - | let | |
222 | - | let | |
223 | - | let | |
224 | - | let | |
225 | - | let | |
226 | - | let | |
227 | - | let | |
228 | - | let | |
229 | - | let | |
230 | - | let | |
231 | - | let | |
232 | - | let | |
233 | - | let | |
234 | - | let | |
235 | - | let | |
236 | - | if (( | |
203 | + | let D = (R + "_deck") | |
204 | + | let S = B(this, D) | |
205 | + | let ac = F(l, toString(Z), S) | |
206 | + | let ad = ac._1 | |
207 | + | let ae = ac._2 | |
208 | + | let af = ac._3 | |
209 | + | let ag = F(l, (toString(Z) + ad), af) | |
210 | + | let ah = ag._1 | |
211 | + | let ai = ag._2 | |
212 | + | let aj = ag._3 | |
213 | + | let ak = F(l, (toString(Z) + ah), aj) | |
214 | + | let al = ak._1 | |
215 | + | let am = ak._2 | |
216 | + | let an = ak._3 | |
217 | + | let ao = F(l, (toString(Z) + al), an) | |
218 | + | let y = ao._1 | |
219 | + | let U = ao._2 | |
220 | + | let V = ao._3 | |
221 | + | let ap = F(l, (toString(Z) + y), V) | |
222 | + | let z = ap._1 | |
223 | + | let X = ap._2 | |
224 | + | let G = ap._3 | |
225 | + | if ((u(y) == u(z))) | |
237 | 226 | then { | |
238 | - | let | |
239 | - | let e = getInteger(this, ( | |
227 | + | let Y = { | |
228 | + | let e = getInteger(this, (R + "_drawSequence")) | |
240 | 229 | if ($isInstanceOf(e, "Int")) | |
241 | 230 | then { | |
242 | - | let | |
243 | - | ( | |
231 | + | let O = e | |
232 | + | (O + 1) | |
244 | 233 | } | |
245 | 234 | else 0 | |
246 | 235 | } | |
247 | - | [StringEntry( | |
236 | + | [StringEntry(D, makeString(G, a)), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), IntegerEntry((R + "_drawSequence"), Y)] | |
248 | 237 | } | |
249 | - | else if ( | |
250 | - | then [StringEntry( | |
251 | - | else [StringEntry( | |
238 | + | else if (x(y, z)) | |
239 | + | then [StringEntry(D, makeString(G, a)), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), ScriptTransfer(l.caller, (w + ab), unit), BooleanEntry((R + "_stop"), true)] | |
240 | + | else [StringEntry(D, makeString(G, a)), IntegerEntry((R + "_LastRandonNumber"), X), StringEntry((R + "_playerCard"), y), StringEntry((R + "_casinoCard"), z), BooleanEntry((R + "_stop"), true)] | |
252 | 241 | } | |
253 | 242 | } | |
254 | 243 | } | |
255 | 244 | ||
256 | 245 | ||
257 | - | @Verifier( | |
258 | - | func | |
246 | + | @Verifier(aq) | |
247 | + | func ar () = sigVerify(aq.bodyBytes, aq.proofs[0], aq.senderPublicKey) | |
259 | 248 |
github/deemru/w8io/169f3d6 142.33 ms ◑