tx · 5rpV7mj7Dq2mibG5SuoPWwVDCS3UxJ54ddBUA3DFag2M 3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL: -0.02100000 Waves 2022.11.20 01:33 [2324609] smart account 3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL > SELF 0.00000000 Waves
{ "type": 13, "id": "5rpV7mj7Dq2mibG5SuoPWwVDCS3UxJ54ddBUA3DFag2M", "fee": 2100000, "feeAssetId": null, "timestamp": 1668897234854, "version": 2, "chainId": 84, "sender": "3N9QhjBmyFRrGW5d8VQojB4wZhHmQhuvVrL", "senderPublicKey": "BefhVEanzhrtdYfeWquaoSsMZw3BEaEZZB86Kosqw7Qb", "proofs": [ "2ShK4Bt71Di1x6tfRZEmZCmY7yGCppH7CVoh8Y1Xo7C3qnSFweSXS1RBLS8iNJciVQfnSsDDzyPoW5CRxFFiEe5U" ], "script": "base64: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AAdhZGRyZXNzCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAACQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAABCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAACCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAADCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAECQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAFCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAGCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAHCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAICQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAJCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAKCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAALCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJlc3MJAAGRAAAAAgUAAAAJa2V5c0dyb3VwAAAAAAAAAAAMCQAETAAAAAIJAQAAAAVjb21ibwAAAAIFAAAAB2FkZHJl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", "height": 2324609, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8swihgt33e3E7pFdprPwhvyxu7mS7JmSDeEp4gmsZeMa Next: BRhBqkEcHgCZvG9Z9v4QkG7Rv4B2AGRw94s53VqkzqcL Diff:
Old | New | Differences | |
---|---|---|---|
119 | 119 | func L (B) = [K(B, h[0]), K(B, h[1]), K(B, h[2]), K(B, h[3]), K(B, h[4]), K(B, h[5]), K(B, h[6]), K(B, h[7]), K(B, h[8]), K(B, h[9]), K(B, h[10]), K(B, h[11]), K(B, h[12]), K(B, h[13]), K(B, h[14]), K(B, h[15])] | |
120 | 120 | ||
121 | 121 | ||
122 | - | func M (B) = { | |
123 | - | let N = L(B) | |
124 | - | let O = N | |
125 | - | let P = size(O) | |
126 | - | let Q = 0 | |
127 | - | func R (S,T) = if ((T >= P)) | |
128 | - | then S | |
129 | - | else E(S, O[T]) | |
122 | + | func M (B) = [K(B, i[0]), K(B, i[1]), K(B, i[2]), K(B, i[3]), K(B, i[4]), K(B, i[5]), K(B, i[6]), K(B, i[7])] | |
130 | 123 | ||
131 | - | func U (S,T) = if ((T >= P)) | |
132 | - | then S | |
124 | + | ||
125 | + | func N (B) = [K(B, j[0]), K(B, j[1]), K(B, j[2]), K(B, j[3])] | |
126 | + | ||
127 | + | ||
128 | + | func O (B) = [K(B, k[0]), K(B, k[1])] | |
129 | + | ||
130 | + | ||
131 | + | func P (B) = { | |
132 | + | let Q = L(B) | |
133 | + | let R = Q | |
134 | + | let S = size(R) | |
135 | + | let T = 0 | |
136 | + | func U (V,W) = if ((W >= S)) | |
137 | + | then V | |
138 | + | else E(V, R[W]) | |
139 | + | ||
140 | + | func X (V,W) = if ((W >= S)) | |
141 | + | then V | |
133 | 142 | else throw("List size exceeds 16") | |
134 | 143 | ||
135 | - | U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
144 | + | X(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
145 | + | } | |
146 | + | ||
147 | + | ||
148 | + | func Y (B) = { | |
149 | + | let Q = M(B) | |
150 | + | let R = Q | |
151 | + | let S = size(R) | |
152 | + | let T = 0 | |
153 | + | func U (V,W) = if ((W >= S)) | |
154 | + | then V | |
155 | + | else E(V, R[W]) | |
156 | + | ||
157 | + | func X (V,W) = if ((W >= S)) | |
158 | + | then V | |
159 | + | else throw("List size exceeds 8") | |
160 | + | ||
161 | + | X(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
162 | + | } | |
163 | + | ||
164 | + | ||
165 | + | func Z (B) = { | |
166 | + | let Q = N(B) | |
167 | + | let R = Q | |
168 | + | let S = size(R) | |
169 | + | let T = 0 | |
170 | + | func U (V,W) = if ((W >= S)) | |
171 | + | then V | |
172 | + | else E(V, R[W]) | |
173 | + | ||
174 | + | func X (V,W) = if ((W >= S)) | |
175 | + | then V | |
176 | + | else throw("List size exceeds 4") | |
177 | + | ||
178 | + | X(U(U(U(U(T, 0), 1), 2), 3), 4) | |
179 | + | } | |
180 | + | ||
181 | + | ||
182 | + | func aa (B) = { | |
183 | + | let Q = O(B) | |
184 | + | let R = Q | |
185 | + | let S = size(R) | |
186 | + | let T = 0 | |
187 | + | func U (V,W) = if ((W >= S)) | |
188 | + | then V | |
189 | + | else E(V, R[W]) | |
190 | + | ||
191 | + | func X (V,W) = if ((W >= S)) | |
192 | + | then V | |
193 | + | else throw("List size exceeds 2") | |
194 | + | ||
195 | + | X(U(U(T, 0), 1), 2) | |
196 | + | } | |
197 | + | ||
198 | + | ||
199 | + | func ab (B) = { | |
200 | + | let ac = K(B, l) | |
201 | + | let H = l | |
202 | + | let I = x(H) | |
203 | + | if ((I == I)) | |
204 | + | then { | |
205 | + | let J = v(ac) | |
206 | + | if ((J == J)) | |
207 | + | then if ((I == J)) | |
208 | + | then 1 | |
209 | + | else 0 | |
210 | + | else throw("Strict value is not equal to itself.") | |
211 | + | } | |
212 | + | else throw("Strict value is not equal to itself.") | |
136 | 213 | } | |
137 | 214 | ||
138 | 215 | ||
139 | 216 | @Callable(t) | |
140 | - | func setBetAmount ( | |
141 | - | then [IntegerEntry(c, | |
217 | + | func setBetAmount (ad) = if (y(t.callerPublicKey)) | |
218 | + | then [IntegerEntry(c, ad)] | |
142 | 219 | else throw("Only admin") | |
143 | 220 | ||
144 | 221 | ||
145 | 222 | ||
146 | 223 | @Callable(t) | |
147 | - | func setDeadLine ( | |
148 | - | then [IntegerEntry(d, | |
224 | + | func setDeadLine (ae) = if (y(t.callerPublicKey)) | |
225 | + | then [IntegerEntry(d, ae)] | |
149 | 226 | else throw("Only admin") | |
150 | 227 | ||
151 | 228 | ||
152 | 229 | ||
153 | 230 | @Callable(t) | |
154 | - | func makeBet ( | |
155 | - | let | |
156 | - | let | |
157 | - | let | |
158 | - | let | |
159 | - | let | |
160 | - | let | |
161 | - | if (( | |
162 | - | then if (!( | |
163 | - | then if ((m( | |
231 | + | func makeBet (af,ag,ah,ai,aj,ak) = { | |
232 | + | let al = t.payments[0] | |
233 | + | let am = al.assetId | |
234 | + | let an = value(al.amount) | |
235 | + | let ao = toString(t.caller) | |
236 | + | let ap = A(ao) | |
237 | + | let aq = D() | |
238 | + | if ((aq > height)) | |
239 | + | then if (!(ap)) | |
240 | + | then if ((m(am) == "WAVES")) | |
164 | 241 | then { | |
165 | - | let | |
166 | - | if (( | |
167 | - | then if (( | |
242 | + | let ar = C() | |
243 | + | if ((ar != 0)) | |
244 | + | then if ((an == ar)) | |
168 | 245 | then { | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | if (if (if (if (if ((size( | |
175 | - | then (size( | |
246 | + | let as = split(af, "_") | |
247 | + | let at = split(ag, "_") | |
248 | + | let au = split(ah, "_") | |
249 | + | let av = split(ai, "_") | |
250 | + | let aw = split(aj, "_") | |
251 | + | if (if (if (if (if ((size(as) == 8)) | |
252 | + | then (size(at) == 8) | |
176 | 253 | else false) | |
177 | - | then (size( | |
254 | + | then (size(au) == 8) | |
178 | 255 | else false) | |
179 | - | then (size( | |
256 | + | then (size(av) == 4) | |
180 | 257 | else false) | |
181 | - | then (size( | |
258 | + | then (size(aw) == 2) | |
182 | 259 | else false) | |
183 | - | then [BooleanEntry(( | |
260 | + | then [BooleanEntry((ao + "_betted"), true), IntegerEntry((ao + "_height"), height), IntegerEntry((ao + "_betAmount"), an), StringEntry((ao + "_GroupA-1st"), as[0]), StringEntry((ao + "_GroupA-2nd"), at[0]), StringEntry((ao + "_GroupB-1st"), as[1]), StringEntry((ao + "_GroupB-2nd"), at[1]), StringEntry((ao + "_GroupC-1st"), as[2]), StringEntry((ao + "_GroupC-2nd"), at[2]), StringEntry((ao + "_GroupD-1st"), as[3]), StringEntry((ao + "_GroupD-2nd"), at[3]), StringEntry((ao + "_GroupE-1st"), as[4]), StringEntry((ao + "_GroupE-2nd"), at[4]), StringEntry((ao + "_GroupF-1st"), as[5]), StringEntry((ao + "_GroupF-2nd"), at[5]), StringEntry((ao + "_GroupG-1st"), as[6]), StringEntry((ao + "_GroupG-2nd"), at[6]), StringEntry((ao + "_GroupH-1st"), as[7]), StringEntry((ao + "_GroupH-2nd"), at[7]), StringEntry((ao + "_Octo1-winner"), au[0]), StringEntry((ao + "_Octo2-winner"), au[1]), StringEntry((ao + "_Octo3-winner"), au[2]), StringEntry((ao + "_Octo4-winner"), au[3]), StringEntry((ao + "_Octo5-winner"), au[4]), StringEntry((ao + "_Octo6-winner"), au[5]), StringEntry((ao + "_Octo7-winner"), au[6]), StringEntry((ao + "_Octo8-winner"), au[7]), StringEntry((ao + "_Quarter1-winner"), av[0]), StringEntry((ao + "_Quarter2-winner"), av[1]), StringEntry((ao + "_Quarter3-winner"), av[2]), StringEntry((ao + "_Quarter4-winner"), av[3]), StringEntry((ao + "_Semi1-winner"), aw[0]), StringEntry((ao + "_Semi2-winner"), aw[1]), StringEntry((ao + "_Final-winner"), ak)] | |
184 | 261 | else throw("Incorrect data arrived in arguments") | |
185 | 262 | } | |
186 | - | else throw((("Attach exactly " + toString( | |
263 | + | else throw((("Attach exactly " + toString(ar)) + " /100000000 Waves as payment")) | |
187 | 264 | else throw("Zero betAmount from contract storage") | |
188 | 265 | } | |
189 | 266 | else throw("Only Waves is allowed as payment asset to bet") | |
195 | 272 | ||
196 | 273 | @Callable(t) | |
197 | 274 | func deleteAddress (B) = { | |
198 | - | let | |
275 | + | let ao = B | |
199 | 276 | if (y(t.callerPublicKey)) | |
200 | - | then [DeleteEntry(( | |
277 | + | then [DeleteEntry((ao + "_betted")), DeleteEntry((ao + "_height")), DeleteEntry((ao + "_betAmount")), DeleteEntry((ao + "_GroupA-1st")), DeleteEntry((ao + "_GroupA-2nd")), DeleteEntry((ao + "_GroupB-1st")), DeleteEntry((ao + "_GroupB-2nd")), DeleteEntry((ao + "_GroupC-1st")), DeleteEntry((ao + "_GroupC-2nd")), DeleteEntry((ao + "_GroupD-1st")), DeleteEntry((ao + "_GroupD-2nd")), DeleteEntry((ao + "_GroupE-1st")), DeleteEntry((ao + "_GroupE-2nd")), DeleteEntry((ao + "_GroupF-1st")), DeleteEntry((ao + "_GroupF-2nd")), DeleteEntry((ao + "_GroupG-1st")), DeleteEntry((ao + "_GroupG-2nd")), DeleteEntry((ao + "_GroupH-1st")), DeleteEntry((ao + "_GroupH-2nd")), DeleteEntry((ao + "_Octo1-winner")), DeleteEntry((ao + "_Octo2-winner")), DeleteEntry((ao + "_Octo3-winner")), DeleteEntry((ao + "_Octo4-winner")), DeleteEntry((ao + "_Octo5-winner")), DeleteEntry((ao + "_Octo6-winner")), DeleteEntry((ao + "_Octo7-winner")), DeleteEntry((ao + "_Octo8-winner")), DeleteEntry((ao + "_Quarter1-winner")), DeleteEntry((ao + "_Quarter2-winner")), DeleteEntry((ao + "_Quarter3-winner")), DeleteEntry((ao + "_Quarter4-winner")), DeleteEntry((ao + "_Semi1-winner")), DeleteEntry((ao + "_Semi2-winner")), DeleteEntry((ao + "_Final-winner"))] | |
201 | 278 | else throw("Only admin") | |
202 | 279 | } | |
203 | 280 | ||
205 | 282 | ||
206 | 283 | @Callable(t) | |
207 | 284 | func evalScore (B) = { | |
208 | - | let ap = M(B) | |
209 | - | throw(("Score " + toString(ap))) | |
285 | + | let ax = P(B) | |
286 | + | let ay = if ((ax == 8)) | |
287 | + | then 150 | |
288 | + | else 100 | |
289 | + | let az = Y(B) | |
290 | + | let aA = if ((az == 8)) | |
291 | + | then 120 | |
292 | + | else 100 | |
293 | + | let aB = Z(B) | |
294 | + | let aC = if ((aB == 4)) | |
295 | + | then 125 | |
296 | + | else 100 | |
297 | + | let aD = aa(B) | |
298 | + | let aE = if ((aD == 2)) | |
299 | + | then 150 | |
300 | + | else 100 | |
301 | + | let aF = ab(B) | |
302 | + | let aG = if ((aF == 1)) | |
303 | + | then 200 | |
304 | + | else 100 | |
305 | + | let aH = [ay, aA, aB, aE, aG] | |
306 | + | let aI = max(aH) | |
307 | + | let aJ = ((((ax + az) + aB) + aD) + aF) | |
308 | + | throw(((("Score " + toString(aJ)) + ", maxBonus: ") + toString(aI))) | |
210 | 309 | } | |
211 | 310 | ||
212 | 311 | ||
213 | - | @Verifier( | |
214 | - | func | |
312 | + | @Verifier(aK) | |
313 | + | func aL () = sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey) | |
215 | 314 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "7Tt74r8R7auTBTd6rJMA4qYr9WDWjc2SUHHSrRMw9Brs" | |
5 | 5 | ||
6 | 6 | let b = "3NCnEUNnJXz57QWAMYnZBu3SqW4txog1XeD" | |
7 | 7 | ||
8 | 8 | let c = "global_betAmount" | |
9 | 9 | ||
10 | 10 | let d = "global_deadline_h" | |
11 | 11 | ||
12 | 12 | let e = 100000000 | |
13 | 13 | ||
14 | 14 | let f = 250 | |
15 | 15 | ||
16 | 16 | let g = 10000 | |
17 | 17 | ||
18 | 18 | let h = ["GroupA-1st", "GroupA-2nd", "GroupB-1st", "GroupB-2nd", "GroupC-1st", "GroupC-2nd", "GroupD-1st", "GroupD-2nd", "GroupE-1st", "GroupE-2nd", "GroupF-1st", "GroupF-2nd", "GroupG-1st", "GroupG-2nd", "GroupH-1st", "GroupH-2nd"] | |
19 | 19 | ||
20 | 20 | let i = ["Octo1-winner", "Octo2-winner", "Octo3-winner", "Octo4-winner", "Octo5-winner", "Octo6-winner", "Octo7-winner", "Octo8-winner"] | |
21 | 21 | ||
22 | 22 | let j = ["Quarter1-winner", "Quarter2-winner", "Quarter3-winner", "Quarter4-winner"] | |
23 | 23 | ||
24 | 24 | let k = ["Semi1-winner", "Semi2-winner"] | |
25 | 25 | ||
26 | 26 | let l = "Final-winner" | |
27 | 27 | ||
28 | 28 | func m (n) = { | |
29 | 29 | let o = n | |
30 | 30 | if ($isInstanceOf(o, "ByteVector")) | |
31 | 31 | then { | |
32 | 32 | let p = o | |
33 | 33 | toBase58String(p) | |
34 | 34 | } | |
35 | 35 | else "WAVES" | |
36 | 36 | } | |
37 | 37 | ||
38 | 38 | ||
39 | 39 | func q (n) = if ((n == "WAVES")) | |
40 | 40 | then unit | |
41 | 41 | else fromBase58String(n) | |
42 | 42 | ||
43 | 43 | ||
44 | 44 | func r (s) = { | |
45 | 45 | let o = getInteger(this, s) | |
46 | 46 | if ($isInstanceOf(o, "Int")) | |
47 | 47 | then { | |
48 | 48 | let t = o | |
49 | 49 | t | |
50 | 50 | } | |
51 | 51 | else 0 | |
52 | 52 | } | |
53 | 53 | ||
54 | 54 | ||
55 | 55 | func u (s) = { | |
56 | 56 | let o = getBoolean(this, s) | |
57 | 57 | if ($isInstanceOf(o, "Boolean")) | |
58 | 58 | then { | |
59 | 59 | let p = o | |
60 | 60 | p | |
61 | 61 | } | |
62 | 62 | else false | |
63 | 63 | } | |
64 | 64 | ||
65 | 65 | ||
66 | 66 | func v (s) = { | |
67 | 67 | let o = getString(this, s) | |
68 | 68 | if ($isInstanceOf(o, "String")) | |
69 | 69 | then { | |
70 | 70 | let w = o | |
71 | 71 | w | |
72 | 72 | } | |
73 | 73 | else "" | |
74 | 74 | } | |
75 | 75 | ||
76 | 76 | ||
77 | 77 | func x (s) = { | |
78 | 78 | let o = getString(addressFromStringValue(b), s) | |
79 | 79 | if ($isInstanceOf(o, "String")) | |
80 | 80 | then { | |
81 | 81 | let w = o | |
82 | 82 | w | |
83 | 83 | } | |
84 | 84 | else "" | |
85 | 85 | } | |
86 | 86 | ||
87 | 87 | ||
88 | 88 | func y (z) = (toBase58String(z) == a) | |
89 | 89 | ||
90 | 90 | ||
91 | 91 | func A (B) = u((B + "_betted")) | |
92 | 92 | ||
93 | 93 | ||
94 | 94 | func C () = r(c) | |
95 | 95 | ||
96 | 96 | ||
97 | 97 | func D () = r(d) | |
98 | 98 | ||
99 | 99 | ||
100 | 100 | func E (F,G) = { | |
101 | 101 | let H = split(G, "_")[1] | |
102 | 102 | let I = x(H) | |
103 | 103 | if ((I == I)) | |
104 | 104 | then { | |
105 | 105 | let J = v(G) | |
106 | 106 | if ((J == J)) | |
107 | 107 | then (F + (if ((I == J)) | |
108 | 108 | then 1 | |
109 | 109 | else 0)) | |
110 | 110 | else throw("Strict value is not equal to itself.") | |
111 | 111 | } | |
112 | 112 | else throw("Strict value is not equal to itself.") | |
113 | 113 | } | |
114 | 114 | ||
115 | 115 | ||
116 | 116 | func K (B,s) = ((B + "_") + s) | |
117 | 117 | ||
118 | 118 | ||
119 | 119 | func L (B) = [K(B, h[0]), K(B, h[1]), K(B, h[2]), K(B, h[3]), K(B, h[4]), K(B, h[5]), K(B, h[6]), K(B, h[7]), K(B, h[8]), K(B, h[9]), K(B, h[10]), K(B, h[11]), K(B, h[12]), K(B, h[13]), K(B, h[14]), K(B, h[15])] | |
120 | 120 | ||
121 | 121 | ||
122 | - | func M (B) = { | |
123 | - | let N = L(B) | |
124 | - | let O = N | |
125 | - | let P = size(O) | |
126 | - | let Q = 0 | |
127 | - | func R (S,T) = if ((T >= P)) | |
128 | - | then S | |
129 | - | else E(S, O[T]) | |
122 | + | func M (B) = [K(B, i[0]), K(B, i[1]), K(B, i[2]), K(B, i[3]), K(B, i[4]), K(B, i[5]), K(B, i[6]), K(B, i[7])] | |
130 | 123 | ||
131 | - | func U (S,T) = if ((T >= P)) | |
132 | - | then S | |
124 | + | ||
125 | + | func N (B) = [K(B, j[0]), K(B, j[1]), K(B, j[2]), K(B, j[3])] | |
126 | + | ||
127 | + | ||
128 | + | func O (B) = [K(B, k[0]), K(B, k[1])] | |
129 | + | ||
130 | + | ||
131 | + | func P (B) = { | |
132 | + | let Q = L(B) | |
133 | + | let R = Q | |
134 | + | let S = size(R) | |
135 | + | let T = 0 | |
136 | + | func U (V,W) = if ((W >= S)) | |
137 | + | then V | |
138 | + | else E(V, R[W]) | |
139 | + | ||
140 | + | func X (V,W) = if ((W >= S)) | |
141 | + | then V | |
133 | 142 | else throw("List size exceeds 16") | |
134 | 143 | ||
135 | - | U(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
144 | + | X(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16) | |
145 | + | } | |
146 | + | ||
147 | + | ||
148 | + | func Y (B) = { | |
149 | + | let Q = M(B) | |
150 | + | let R = Q | |
151 | + | let S = size(R) | |
152 | + | let T = 0 | |
153 | + | func U (V,W) = if ((W >= S)) | |
154 | + | then V | |
155 | + | else E(V, R[W]) | |
156 | + | ||
157 | + | func X (V,W) = if ((W >= S)) | |
158 | + | then V | |
159 | + | else throw("List size exceeds 8") | |
160 | + | ||
161 | + | X(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
162 | + | } | |
163 | + | ||
164 | + | ||
165 | + | func Z (B) = { | |
166 | + | let Q = N(B) | |
167 | + | let R = Q | |
168 | + | let S = size(R) | |
169 | + | let T = 0 | |
170 | + | func U (V,W) = if ((W >= S)) | |
171 | + | then V | |
172 | + | else E(V, R[W]) | |
173 | + | ||
174 | + | func X (V,W) = if ((W >= S)) | |
175 | + | then V | |
176 | + | else throw("List size exceeds 4") | |
177 | + | ||
178 | + | X(U(U(U(U(T, 0), 1), 2), 3), 4) | |
179 | + | } | |
180 | + | ||
181 | + | ||
182 | + | func aa (B) = { | |
183 | + | let Q = O(B) | |
184 | + | let R = Q | |
185 | + | let S = size(R) | |
186 | + | let T = 0 | |
187 | + | func U (V,W) = if ((W >= S)) | |
188 | + | then V | |
189 | + | else E(V, R[W]) | |
190 | + | ||
191 | + | func X (V,W) = if ((W >= S)) | |
192 | + | then V | |
193 | + | else throw("List size exceeds 2") | |
194 | + | ||
195 | + | X(U(U(T, 0), 1), 2) | |
196 | + | } | |
197 | + | ||
198 | + | ||
199 | + | func ab (B) = { | |
200 | + | let ac = K(B, l) | |
201 | + | let H = l | |
202 | + | let I = x(H) | |
203 | + | if ((I == I)) | |
204 | + | then { | |
205 | + | let J = v(ac) | |
206 | + | if ((J == J)) | |
207 | + | then if ((I == J)) | |
208 | + | then 1 | |
209 | + | else 0 | |
210 | + | else throw("Strict value is not equal to itself.") | |
211 | + | } | |
212 | + | else throw("Strict value is not equal to itself.") | |
136 | 213 | } | |
137 | 214 | ||
138 | 215 | ||
139 | 216 | @Callable(t) | |
140 | - | func setBetAmount ( | |
141 | - | then [IntegerEntry(c, | |
217 | + | func setBetAmount (ad) = if (y(t.callerPublicKey)) | |
218 | + | then [IntegerEntry(c, ad)] | |
142 | 219 | else throw("Only admin") | |
143 | 220 | ||
144 | 221 | ||
145 | 222 | ||
146 | 223 | @Callable(t) | |
147 | - | func setDeadLine ( | |
148 | - | then [IntegerEntry(d, | |
224 | + | func setDeadLine (ae) = if (y(t.callerPublicKey)) | |
225 | + | then [IntegerEntry(d, ae)] | |
149 | 226 | else throw("Only admin") | |
150 | 227 | ||
151 | 228 | ||
152 | 229 | ||
153 | 230 | @Callable(t) | |
154 | - | func makeBet ( | |
155 | - | let | |
156 | - | let | |
157 | - | let | |
158 | - | let | |
159 | - | let | |
160 | - | let | |
161 | - | if (( | |
162 | - | then if (!( | |
163 | - | then if ((m( | |
231 | + | func makeBet (af,ag,ah,ai,aj,ak) = { | |
232 | + | let al = t.payments[0] | |
233 | + | let am = al.assetId | |
234 | + | let an = value(al.amount) | |
235 | + | let ao = toString(t.caller) | |
236 | + | let ap = A(ao) | |
237 | + | let aq = D() | |
238 | + | if ((aq > height)) | |
239 | + | then if (!(ap)) | |
240 | + | then if ((m(am) == "WAVES")) | |
164 | 241 | then { | |
165 | - | let | |
166 | - | if (( | |
167 | - | then if (( | |
242 | + | let ar = C() | |
243 | + | if ((ar != 0)) | |
244 | + | then if ((an == ar)) | |
168 | 245 | then { | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | if (if (if (if (if ((size( | |
175 | - | then (size( | |
246 | + | let as = split(af, "_") | |
247 | + | let at = split(ag, "_") | |
248 | + | let au = split(ah, "_") | |
249 | + | let av = split(ai, "_") | |
250 | + | let aw = split(aj, "_") | |
251 | + | if (if (if (if (if ((size(as) == 8)) | |
252 | + | then (size(at) == 8) | |
176 | 253 | else false) | |
177 | - | then (size( | |
254 | + | then (size(au) == 8) | |
178 | 255 | else false) | |
179 | - | then (size( | |
256 | + | then (size(av) == 4) | |
180 | 257 | else false) | |
181 | - | then (size( | |
258 | + | then (size(aw) == 2) | |
182 | 259 | else false) | |
183 | - | then [BooleanEntry(( | |
260 | + | then [BooleanEntry((ao + "_betted"), true), IntegerEntry((ao + "_height"), height), IntegerEntry((ao + "_betAmount"), an), StringEntry((ao + "_GroupA-1st"), as[0]), StringEntry((ao + "_GroupA-2nd"), at[0]), StringEntry((ao + "_GroupB-1st"), as[1]), StringEntry((ao + "_GroupB-2nd"), at[1]), StringEntry((ao + "_GroupC-1st"), as[2]), StringEntry((ao + "_GroupC-2nd"), at[2]), StringEntry((ao + "_GroupD-1st"), as[3]), StringEntry((ao + "_GroupD-2nd"), at[3]), StringEntry((ao + "_GroupE-1st"), as[4]), StringEntry((ao + "_GroupE-2nd"), at[4]), StringEntry((ao + "_GroupF-1st"), as[5]), StringEntry((ao + "_GroupF-2nd"), at[5]), StringEntry((ao + "_GroupG-1st"), as[6]), StringEntry((ao + "_GroupG-2nd"), at[6]), StringEntry((ao + "_GroupH-1st"), as[7]), StringEntry((ao + "_GroupH-2nd"), at[7]), StringEntry((ao + "_Octo1-winner"), au[0]), StringEntry((ao + "_Octo2-winner"), au[1]), StringEntry((ao + "_Octo3-winner"), au[2]), StringEntry((ao + "_Octo4-winner"), au[3]), StringEntry((ao + "_Octo5-winner"), au[4]), StringEntry((ao + "_Octo6-winner"), au[5]), StringEntry((ao + "_Octo7-winner"), au[6]), StringEntry((ao + "_Octo8-winner"), au[7]), StringEntry((ao + "_Quarter1-winner"), av[0]), StringEntry((ao + "_Quarter2-winner"), av[1]), StringEntry((ao + "_Quarter3-winner"), av[2]), StringEntry((ao + "_Quarter4-winner"), av[3]), StringEntry((ao + "_Semi1-winner"), aw[0]), StringEntry((ao + "_Semi2-winner"), aw[1]), StringEntry((ao + "_Final-winner"), ak)] | |
184 | 261 | else throw("Incorrect data arrived in arguments") | |
185 | 262 | } | |
186 | - | else throw((("Attach exactly " + toString( | |
263 | + | else throw((("Attach exactly " + toString(ar)) + " /100000000 Waves as payment")) | |
187 | 264 | else throw("Zero betAmount from contract storage") | |
188 | 265 | } | |
189 | 266 | else throw("Only Waves is allowed as payment asset to bet") | |
190 | 267 | else throw("Bet already made") | |
191 | 268 | else throw("Betting closed") | |
192 | 269 | } | |
193 | 270 | ||
194 | 271 | ||
195 | 272 | ||
196 | 273 | @Callable(t) | |
197 | 274 | func deleteAddress (B) = { | |
198 | - | let | |
275 | + | let ao = B | |
199 | 276 | if (y(t.callerPublicKey)) | |
200 | - | then [DeleteEntry(( | |
277 | + | then [DeleteEntry((ao + "_betted")), DeleteEntry((ao + "_height")), DeleteEntry((ao + "_betAmount")), DeleteEntry((ao + "_GroupA-1st")), DeleteEntry((ao + "_GroupA-2nd")), DeleteEntry((ao + "_GroupB-1st")), DeleteEntry((ao + "_GroupB-2nd")), DeleteEntry((ao + "_GroupC-1st")), DeleteEntry((ao + "_GroupC-2nd")), DeleteEntry((ao + "_GroupD-1st")), DeleteEntry((ao + "_GroupD-2nd")), DeleteEntry((ao + "_GroupE-1st")), DeleteEntry((ao + "_GroupE-2nd")), DeleteEntry((ao + "_GroupF-1st")), DeleteEntry((ao + "_GroupF-2nd")), DeleteEntry((ao + "_GroupG-1st")), DeleteEntry((ao + "_GroupG-2nd")), DeleteEntry((ao + "_GroupH-1st")), DeleteEntry((ao + "_GroupH-2nd")), DeleteEntry((ao + "_Octo1-winner")), DeleteEntry((ao + "_Octo2-winner")), DeleteEntry((ao + "_Octo3-winner")), DeleteEntry((ao + "_Octo4-winner")), DeleteEntry((ao + "_Octo5-winner")), DeleteEntry((ao + "_Octo6-winner")), DeleteEntry((ao + "_Octo7-winner")), DeleteEntry((ao + "_Octo8-winner")), DeleteEntry((ao + "_Quarter1-winner")), DeleteEntry((ao + "_Quarter2-winner")), DeleteEntry((ao + "_Quarter3-winner")), DeleteEntry((ao + "_Quarter4-winner")), DeleteEntry((ao + "_Semi1-winner")), DeleteEntry((ao + "_Semi2-winner")), DeleteEntry((ao + "_Final-winner"))] | |
201 | 278 | else throw("Only admin") | |
202 | 279 | } | |
203 | 280 | ||
204 | 281 | ||
205 | 282 | ||
206 | 283 | @Callable(t) | |
207 | 284 | func evalScore (B) = { | |
208 | - | let ap = M(B) | |
209 | - | throw(("Score " + toString(ap))) | |
285 | + | let ax = P(B) | |
286 | + | let ay = if ((ax == 8)) | |
287 | + | then 150 | |
288 | + | else 100 | |
289 | + | let az = Y(B) | |
290 | + | let aA = if ((az == 8)) | |
291 | + | then 120 | |
292 | + | else 100 | |
293 | + | let aB = Z(B) | |
294 | + | let aC = if ((aB == 4)) | |
295 | + | then 125 | |
296 | + | else 100 | |
297 | + | let aD = aa(B) | |
298 | + | let aE = if ((aD == 2)) | |
299 | + | then 150 | |
300 | + | else 100 | |
301 | + | let aF = ab(B) | |
302 | + | let aG = if ((aF == 1)) | |
303 | + | then 200 | |
304 | + | else 100 | |
305 | + | let aH = [ay, aA, aB, aE, aG] | |
306 | + | let aI = max(aH) | |
307 | + | let aJ = ((((ax + az) + aB) + aD) + aF) | |
308 | + | throw(((("Score " + toString(aJ)) + ", maxBonus: ") + toString(aI))) | |
210 | 309 | } | |
211 | 310 | ||
212 | 311 | ||
213 | - | @Verifier( | |
214 | - | func | |
312 | + | @Verifier(aK) | |
313 | + | func aL () = sigVerify(aK.bodyBytes, aK.proofs[0], aK.senderPublicKey) | |
215 | 314 |
github/deemru/w8io/169f3d6 284.25 ms ◑