tx · HT2LnpcGMhANGRihkKaobu5i8sV2DbRTgXgcpzD3Mfn2 3N8M61KCm8G72mK8PjacFbnnxdbFsyqQDeT: -0.01400000 Waves 2019.07.07 12:59 [575038] smart account 3N8M61KCm8G72mK8PjacFbnnxdbFsyqQDeT > SELF 0.00000000 Waves
{ "type": 13, "id": "HT2LnpcGMhANGRihkKaobu5i8sV2DbRTgXgcpzD3Mfn2", "fee": 1400000, "feeAssetId": null, "timestamp": 1562493671283, "version": 1, "sender": "3N8M61KCm8G72mK8PjacFbnnxdbFsyqQDeT", "senderPublicKey": "Bhyvkx4xdbEi4KPJNZSzx9gZgzgyLEsavuj2kYSt7SST", "proofs": [ "57RkJNA63ADKj5Ue5UiF7VtocovpzJU7cBa2hn4aqXDjtbtpkahbCrYWwMv51QqUBzWuunMgeiuHsEzcuhB9aaus" ], "script": "base64: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AAAVRXJyb3JCZXRNdXN0QmVJbldhdmVzAwUAAAANZmVlTm90SW5XYXZlcwkAAAIAAAABBQAAAB1FcnJvclRyYW5zYWN0aW9uTXVzdEJlSW5XYXZlcwMFAAAACHR4SWRVc2VkCQAAAgAAAAEFAAAAFEVycm9yVHJhbnNhY3Rpb25Vc2VkCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAA9EYXRhVXNlckdhbWVLZXkJAAGkAAAAAQUAAAAKZ2FtZU51bWJlcgUAAAARZ2FtZVRyYW5zYWN0aW9uSWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEWdhbWVUcmFuc2FjdGlvbklkBQAAAAdhZGRyZXNzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFEYXRhR2FtZU51bWJlcktleQUAAAAKZ2FtZU51bWJlcgkABEwAAAACCQEAAAAMU3RvcmVEYXRhSW50AAAAAwUAAAARZ2FtZVRyYW5zYWN0aW9uSWQFAAAADURhdGFBbW91bnRLZXkFAAAABmFtb3VudAkABEwAAAACCQEAAAAMU3RvcmVEYXRhSW50AAAAAwUAAAARZ2FtZVRyYW5zYWN0aW9uSWQFAAAADkRhdGFTZWN0aW9uS2V5BQAAAA5leHBlY3RlZFJlc3VsdAkABEwAAAACCQEAAAAJU3RvcmVEYXRhAAAAAwUAAAARZ2FtZVRyYW5zYWN0aW9uSWQFAAAADURhdGFTdGF0dXNLZXkFAAAADURhdGFTdGF0dXNOZXcJAARMAAAAAgkBAAAADFN0b3JlRGF0YUludAAAAAMFAAAAEWdhbWVUcmFuc2FjdGlvbklkBQAAABBEYXRhV2luQW1vdW50S2V5BQAAAAZ3aW5BbXQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA1TZXJ2ZXJBZGRyZXNzBQAAAApDT01NSVNTSU9OBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAGcmVzdWx0AAAAAgAAABFnYW1lVHJhbnNhY3Rpb25JZAAAAANyc2EEAAAACXJhbmRJbmRleAkBAAAAD0dlbmVyYXRlUmFuZEludAAAAAIFAAAAEWdhbWVUcmFuc2FjdGlvbklkBQAAAANyc2EEAAAAD3NlbGVjdGVkU2VjdGlvbgkBAAAACkdldERhdGFJbnQAAAACBQAAABFnYW1lVHJhbnNhY3Rpb25JZAUAAAAORGF0YVNlY3Rpb25LZXkEAAAABnN0YXR1cwkBAAAADUdldERhdGFTdHJpbmcAAAACBQAAABFnYW1lVHJhbnNhY3Rpb25JZAUAAAANRGF0YVN0YXR1c0tleQMJAAAAAAAAAgUAAAAGc3RhdHVzBQAAAA1EYXRhU3RhdHVzTmV3BAAAAAtyYW5kU2VjdGlvbgkAAZEAAAACBQAAAAhTZWN0aW9ucwUAAAAJcmFuZEluZGV4BAAAAAVpc1dpbgkAAAAAAAACBQAAAAtyYW5kU2VjdGlvbgUAAAAPc2VsZWN0ZWRTZWN0aW9uBAAAAAh3cml0ZVNldAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJU3RvcmVEYXRhAAAAAwUAAAARZ2FtZVRyYW5zYWN0aW9uSWQFAAAADURhdGFTdGF0dXNLZXkJAQAAAAlHZXRTdGF0dXMAAAABBQAAAAVpc1dpbgkABEwAAAACCQEAAAAMU3RvcmVEYXRhSW50AAAAAwUAAAARZ2FtZVRyYW5zYWN0aW9uSWQFAAAADURhdGFSZXN1bHRLZXkFAAAAC3JhbmRTZWN0aW9uBQAAAANuaWwDBQAAAAVpc1dpbgQAAAAGd2FsbGV0CQEAAAAHR2V0RGF0YQAAAAEFAAAAEWdhbWVUcmFuc2FjdGlvbklkBAAAAAl3aW5BbW91bnQJAQAAAApHZXREYXRhSW50AAAAAgUAAAARZ2FtZVRyYW5zYWN0aW9uSWQFAAAAEERhdGFXaW5BbW91bnRLZXkJAQAAAAxTY3JpcHRSZXN1bHQAAAACBQAAAAh3cml0ZVNldAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAABndhbGxldAUAAAAJd2luQW1vdW50BQAAAAR1bml0BQAAAANuaWwFAAAACHdyaXRlU2V0CQAAAgAAAAEJAAEsAAAAAgUAAAANRXJyb3JHYW1lT3ZlcgUAAAAGc3RhdHVzAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5BAAAAAckbWF0Y2gwBQAAAAJ0eAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgQAAAADdHR4BQAAAAckbWF0Y2gwBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAA3N0eAUAAAAHJG1hdGNoMAYHBxtC5z4=", "chainId": 84, "height": 575038, "spentComplexity": 0 } View: original | compacted Prev: 7jva7skW5epsJogD9GoPFSUNF927WVomMRhBWbsn6Yws Next: HGy8EPBrrwN1ZHStctrbNdPX5bdqsHxwxCNY7KFFuEG9 Diff:
Old | New | Differences | |
---|---|---|---|
9 | 9 | ||
10 | 10 | let d = "APP_GAME_ID" | |
11 | 11 | ||
12 | - | let e = " | |
12 | + | let e = "USER_GAME_ID_" | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "AMOUNT" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "SECTION" | |
17 | 17 | ||
18 | - | let h = " | |
18 | + | let h = "STATUS" | |
19 | 19 | ||
20 | - | let i = " | |
20 | + | let i = "RESULT" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "WIN_AMOUNT" | |
23 | 23 | ||
24 | - | let k = " | |
24 | + | let k = "NEW" | |
25 | 25 | ||
26 | - | let l = " | |
26 | + | let l = "WIN" | |
27 | 27 | ||
28 | - | let m = | |
28 | + | let m = "LOOSE" | |
29 | 29 | ||
30 | - | let n = (( | |
30 | + | let n = ((100 * 1000) * 1000) | |
31 | 31 | ||
32 | - | let o = ( | |
32 | + | let o = ((5 * n) / 1000) | |
33 | 33 | ||
34 | - | let p = ( | |
34 | + | let p = (1 * n) | |
35 | 35 | ||
36 | - | let q = ( | |
36 | + | let q = (2 * n) | |
37 | 37 | ||
38 | - | let r = ( | |
38 | + | let r = (4 * n) | |
39 | 39 | ||
40 | - | let s = ( | |
40 | + | let s = (8 * n) | |
41 | 41 | ||
42 | - | let t = | |
42 | + | let t = (14 * n) | |
43 | 43 | ||
44 | - | let u = | |
44 | + | let u = [0, 2, 20, 2, 5, 2, 10, 2, 6, 2, 5, 2, 6, 2, 5, 2, 10, 2, 5, 2, 6] | |
45 | 45 | ||
46 | - | let v = " | |
46 | + | let v = "Only waves accepted" | |
47 | 47 | ||
48 | - | let w = "Parameter size must be | |
48 | + | let w = "Parameter size must be greater than 0" | |
49 | 49 | ||
50 | - | let x = " | |
50 | + | let x = "Parameter size must be less than 100" | |
51 | 51 | ||
52 | - | let y = " | |
52 | + | let y = "Bet amount must be in Waves" | |
53 | 53 | ||
54 | - | let z = " | |
54 | + | let z = "Transaction's fee must be in Waves" | |
55 | 55 | ||
56 | - | let A = " | |
56 | + | let A = "Passed txId had been used before. Game aborted." | |
57 | 57 | ||
58 | - | let B = " | |
58 | + | let B = "Key not found: " | |
59 | 59 | ||
60 | - | let C = " | |
60 | + | let C = "Game already is over " | |
61 | 61 | ||
62 | - | let D = " | |
62 | + | let D = "Incorrect section result" | |
63 | 63 | ||
64 | - | func E (F,G,H) = DataEntry(((F + "_") + G), H) | |
64 | + | let E = "Bet amount is not in range" | |
65 | + | ||
66 | + | func F (G,H,I) = DataEntry(((G + "_") + H), I) | |
65 | 67 | ||
66 | 68 | ||
67 | - | func | |
69 | + | func J (G,H,I) = DataEntry(((G + "_") + H), I) | |
68 | 70 | ||
69 | 71 | ||
70 | - | func | |
71 | - | let | |
72 | - | if ($isInstanceOf( | |
72 | + | func K (H) = { | |
73 | + | let L = getString(this, H) | |
74 | + | if ($isInstanceOf(L, "String")) | |
73 | 75 | then { | |
74 | - | let | |
75 | - | | |
76 | + | let M = L | |
77 | + | M | |
76 | 78 | } | |
77 | - | else throw(( | |
79 | + | else throw((B + H)) | |
78 | 80 | } | |
79 | 81 | ||
80 | 82 | ||
81 | - | func | |
82 | - | let | |
83 | - | let | |
84 | - | if ($isInstanceOf( | |
83 | + | func N (G,H) = { | |
84 | + | let O = ((G + "_") + H) | |
85 | + | let L = getString(this, O) | |
86 | + | if ($isInstanceOf(L, "String")) | |
85 | 87 | then { | |
86 | - | let | |
87 | - | | |
88 | + | let M = L | |
89 | + | M | |
88 | 90 | } | |
89 | - | else throw(( | |
91 | + | else throw((B + O)) | |
90 | 92 | } | |
91 | 93 | ||
92 | 94 | ||
93 | - | func | |
94 | - | let | |
95 | - | let | |
96 | - | if ($isInstanceOf( | |
95 | + | func P (G,H) = { | |
96 | + | let O = ((G + "_") + H) | |
97 | + | let L = getInteger(this, O) | |
98 | + | if ($isInstanceOf(L, "Int")) | |
97 | 99 | then { | |
98 | - | let | |
99 | - | | |
100 | + | let M = L | |
101 | + | M | |
100 | 102 | } | |
101 | - | else throw(( | |
103 | + | else throw((B + O)) | |
102 | 104 | } | |
103 | 105 | ||
104 | 106 | ||
105 | - | func | |
106 | - | let | |
107 | - | let | |
108 | - | if ($isInstanceOf( | |
107 | + | func Q () = { | |
108 | + | let R = { | |
109 | + | let L = getInteger(this, d) | |
110 | + | if ($isInstanceOf(L, "Int")) | |
109 | 111 | then { | |
110 | - | let | |
111 | - | | |
112 | + | let S = L | |
113 | + | S | |
112 | 114 | } | |
113 | 115 | else 0 | |
114 | 116 | } | |
115 | - | ( | |
117 | + | (R + 1) | |
116 | 118 | } | |
117 | 119 | ||
118 | 120 | ||
119 | - | func | |
120 | - | let | |
121 | - | if ( | |
121 | + | func T (U,V) = { | |
122 | + | let W = sigVerify(fromBase58String(U), fromBase58String(V), a) | |
123 | + | if (W) | |
122 | 124 | then { | |
123 | - | let | |
124 | - | if ((0 > | |
125 | - | then (-1 * | |
126 | - | else | |
125 | + | let X = (toInt(sha256(toBytes(V))) % c) | |
126 | + | if ((0 > X)) | |
127 | + | then (-1 * X) | |
128 | + | else X | |
127 | 129 | } | |
128 | 130 | else throw("Invalid RSA signature") | |
129 | 131 | } | |
130 | 132 | ||
131 | 133 | ||
132 | - | func | |
133 | - | then | |
134 | - | else | |
134 | + | func Y (Z) = if (Z) | |
135 | + | then l | |
136 | + | else m | |
135 | 137 | ||
136 | 138 | ||
137 | - | func | |
138 | - | let | |
139 | + | func aa (ab,ac) = { | |
140 | + | let ad = if (if (if (if ((ac == 2)) | |
139 | 141 | then true | |
140 | - | else ( | |
142 | + | else (ac == 5)) | |
141 | 143 | then true | |
142 | - | else ( | |
144 | + | else (ac == 6)) | |
143 | 145 | then true | |
144 | - | else ( | |
146 | + | else (ac == 10)) | |
145 | 147 | then true | |
146 | - | else ( | |
147 | - | let | |
148 | + | else (ac == 20) | |
149 | + | let ae = if (if (if (if ((ab == (p + o))) | |
148 | 150 | then true | |
149 | - | else ( | |
151 | + | else (ab == (q + o))) | |
150 | 152 | then true | |
151 | - | else ( | |
153 | + | else (ab == (r + o))) | |
152 | 154 | then true | |
153 | - | else ( | |
155 | + | else (ab == (s + o))) | |
154 | 156 | then true | |
155 | - | else ( | |
156 | - | if (!( | |
157 | - | then throw( | |
158 | - | else if ( | |
159 | - | then (( | |
160 | - | else throw( | |
157 | + | else (ab == (t + o)) | |
158 | + | if (!(ad)) | |
159 | + | then throw(D) | |
160 | + | else if (ae) | |
161 | + | then ((ab - o) * ac) | |
162 | + | else throw(E) | |
161 | 163 | } | |
162 | 164 | ||
163 | 165 | ||
164 | - | @Callable( | |
165 | - | func bet ( | |
166 | - | let | |
167 | - | let | |
168 | - | let | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | let | |
175 | - | if ( | |
176 | - | then throw( | |
177 | - | else if ( | |
178 | - | then throw( | |
179 | - | else if ( | |
180 | - | then throw( | |
181 | - | else ScriptResult(WriteSet([DataEntry(ah, ai), DataEntry(d, ag), | |
166 | + | @Callable(af) | |
167 | + | func bet (ag) = { | |
168 | + | let ah = Q() | |
169 | + | let ai = toBase58String(af.transactionId) | |
170 | + | let aj = toBase58String(af.caller.bytes) | |
171 | + | let ak = extract(af.payment) | |
172 | + | let al = isDefined(getString(this, ai)) | |
173 | + | let am = isDefined(ak.assetId) | |
174 | + | let an = isDefined(ak.assetId) | |
175 | + | let ao = ak.amount | |
176 | + | let ap = aa(ak.amount, ag) | |
177 | + | if (am) | |
178 | + | then throw(y) | |
179 | + | else if (an) | |
180 | + | then throw(z) | |
181 | + | else if (al) | |
182 | + | then throw(A) | |
183 | + | else ScriptResult(WriteSet([DataEntry((e + toString(ah)), ai), DataEntry(ai, aj), DataEntry(d, ah), J(ai, f, ao), J(ai, g, ag), F(ai, h, k), J(ai, j, ap)]), TransferSet([ScriptTransfer(b, o, unit)])) | |
182 | 184 | } | |
183 | 185 | ||
184 | 186 | ||
185 | 187 | ||
186 | - | @Callable( | |
187 | - | func result ( | |
188 | - | let | |
189 | - | let | |
190 | - | let | |
191 | - | if (( | |
188 | + | @Callable(af) | |
189 | + | func result (ai,aq) = { | |
190 | + | let ar = T(ai, aq) | |
191 | + | let as = P(ai, g) | |
192 | + | let at = N(ai, h) | |
193 | + | if ((at == k)) | |
192 | 194 | then { | |
193 | - | let | |
194 | - | let | |
195 | - | let | |
196 | - | if ( | |
195 | + | let au = u[ar] | |
196 | + | let av = (au == as) | |
197 | + | let aw = WriteSet([F(ai, h, Y(av)), J(ai, i, au)]) | |
198 | + | if (av) | |
197 | 199 | then { | |
198 | - | let | |
199 | - | let | |
200 | - | ScriptResult( | |
200 | + | let ax = K(ai) | |
201 | + | let ay = P(ai, j) | |
202 | + | ScriptResult(aw, TransferSet([ScriptTransfer(addressFromStringValue(ax), ay, unit)])) | |
201 | 203 | } | |
202 | - | else | |
204 | + | else aw | |
203 | 205 | } | |
204 | - | else throw(( | |
206 | + | else throw((C + at)) | |
205 | 207 | } | |
206 | 208 | ||
207 | 209 | ||
208 | - | @Verifier( | |
209 | - | func | |
210 | + | @Verifier(az) | |
211 | + | func aA () = if (sigVerify(az.bodyBytes, az.proofs[0], az.senderPublicKey)) | |
210 | 212 | then { | |
211 | - | let | |
212 | - | if ($isInstanceOf( | |
213 | + | let L = az | |
214 | + | if ($isInstanceOf(L, "TransferTransaction")) | |
213 | 215 | then { | |
214 | - | let | |
216 | + | let aB = L | |
215 | 217 | true | |
216 | 218 | } | |
217 | - | else if ($isInstanceOf( | |
219 | + | else if ($isInstanceOf(L, "SetScriptTransaction")) | |
218 | 220 | then { | |
219 | - | let | |
221 | + | let aC = L | |
220 | 222 | true | |
221 | 223 | } | |
222 | 224 | else false |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 3 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'kYxoGdY4mv5zMYWYJTq3Pp3uLDuLphTYfT8epjYEJvy' | |
5 | 5 | ||
6 | 6 | let b = addressFromStringValue("3MuJmCSEUgBNy1R2gesk59xDbWcuTKwwixW") | |
7 | 7 | ||
8 | 8 | let c = 21 | |
9 | 9 | ||
10 | 10 | let d = "APP_GAME_ID" | |
11 | 11 | ||
12 | - | let e = " | |
12 | + | let e = "USER_GAME_ID_" | |
13 | 13 | ||
14 | - | let f = " | |
14 | + | let f = "AMOUNT" | |
15 | 15 | ||
16 | - | let g = " | |
16 | + | let g = "SECTION" | |
17 | 17 | ||
18 | - | let h = " | |
18 | + | let h = "STATUS" | |
19 | 19 | ||
20 | - | let i = " | |
20 | + | let i = "RESULT" | |
21 | 21 | ||
22 | - | let j = " | |
22 | + | let j = "WIN_AMOUNT" | |
23 | 23 | ||
24 | - | let k = " | |
24 | + | let k = "NEW" | |
25 | 25 | ||
26 | - | let l = " | |
26 | + | let l = "WIN" | |
27 | 27 | ||
28 | - | let m = | |
28 | + | let m = "LOOSE" | |
29 | 29 | ||
30 | - | let n = (( | |
30 | + | let n = ((100 * 1000) * 1000) | |
31 | 31 | ||
32 | - | let o = ( | |
32 | + | let o = ((5 * n) / 1000) | |
33 | 33 | ||
34 | - | let p = ( | |
34 | + | let p = (1 * n) | |
35 | 35 | ||
36 | - | let q = ( | |
36 | + | let q = (2 * n) | |
37 | 37 | ||
38 | - | let r = ( | |
38 | + | let r = (4 * n) | |
39 | 39 | ||
40 | - | let s = ( | |
40 | + | let s = (8 * n) | |
41 | 41 | ||
42 | - | let t = | |
42 | + | let t = (14 * n) | |
43 | 43 | ||
44 | - | let u = | |
44 | + | let u = [0, 2, 20, 2, 5, 2, 10, 2, 6, 2, 5, 2, 6, 2, 5, 2, 10, 2, 5, 2, 6] | |
45 | 45 | ||
46 | - | let v = " | |
46 | + | let v = "Only waves accepted" | |
47 | 47 | ||
48 | - | let w = "Parameter size must be | |
48 | + | let w = "Parameter size must be greater than 0" | |
49 | 49 | ||
50 | - | let x = " | |
50 | + | let x = "Parameter size must be less than 100" | |
51 | 51 | ||
52 | - | let y = " | |
52 | + | let y = "Bet amount must be in Waves" | |
53 | 53 | ||
54 | - | let z = " | |
54 | + | let z = "Transaction's fee must be in Waves" | |
55 | 55 | ||
56 | - | let A = " | |
56 | + | let A = "Passed txId had been used before. Game aborted." | |
57 | 57 | ||
58 | - | let B = " | |
58 | + | let B = "Key not found: " | |
59 | 59 | ||
60 | - | let C = " | |
60 | + | let C = "Game already is over " | |
61 | 61 | ||
62 | - | let D = " | |
62 | + | let D = "Incorrect section result" | |
63 | 63 | ||
64 | - | func E (F,G,H) = DataEntry(((F + "_") + G), H) | |
64 | + | let E = "Bet amount is not in range" | |
65 | + | ||
66 | + | func F (G,H,I) = DataEntry(((G + "_") + H), I) | |
65 | 67 | ||
66 | 68 | ||
67 | - | func | |
69 | + | func J (G,H,I) = DataEntry(((G + "_") + H), I) | |
68 | 70 | ||
69 | 71 | ||
70 | - | func | |
71 | - | let | |
72 | - | if ($isInstanceOf( | |
72 | + | func K (H) = { | |
73 | + | let L = getString(this, H) | |
74 | + | if ($isInstanceOf(L, "String")) | |
73 | 75 | then { | |
74 | - | let | |
75 | - | | |
76 | + | let M = L | |
77 | + | M | |
76 | 78 | } | |
77 | - | else throw(( | |
79 | + | else throw((B + H)) | |
78 | 80 | } | |
79 | 81 | ||
80 | 82 | ||
81 | - | func | |
82 | - | let | |
83 | - | let | |
84 | - | if ($isInstanceOf( | |
83 | + | func N (G,H) = { | |
84 | + | let O = ((G + "_") + H) | |
85 | + | let L = getString(this, O) | |
86 | + | if ($isInstanceOf(L, "String")) | |
85 | 87 | then { | |
86 | - | let | |
87 | - | | |
88 | + | let M = L | |
89 | + | M | |
88 | 90 | } | |
89 | - | else throw(( | |
91 | + | else throw((B + O)) | |
90 | 92 | } | |
91 | 93 | ||
92 | 94 | ||
93 | - | func | |
94 | - | let | |
95 | - | let | |
96 | - | if ($isInstanceOf( | |
95 | + | func P (G,H) = { | |
96 | + | let O = ((G + "_") + H) | |
97 | + | let L = getInteger(this, O) | |
98 | + | if ($isInstanceOf(L, "Int")) | |
97 | 99 | then { | |
98 | - | let | |
99 | - | | |
100 | + | let M = L | |
101 | + | M | |
100 | 102 | } | |
101 | - | else throw(( | |
103 | + | else throw((B + O)) | |
102 | 104 | } | |
103 | 105 | ||
104 | 106 | ||
105 | - | func | |
106 | - | let | |
107 | - | let | |
108 | - | if ($isInstanceOf( | |
107 | + | func Q () = { | |
108 | + | let R = { | |
109 | + | let L = getInteger(this, d) | |
110 | + | if ($isInstanceOf(L, "Int")) | |
109 | 111 | then { | |
110 | - | let | |
111 | - | | |
112 | + | let S = L | |
113 | + | S | |
112 | 114 | } | |
113 | 115 | else 0 | |
114 | 116 | } | |
115 | - | ( | |
117 | + | (R + 1) | |
116 | 118 | } | |
117 | 119 | ||
118 | 120 | ||
119 | - | func | |
120 | - | let | |
121 | - | if ( | |
121 | + | func T (U,V) = { | |
122 | + | let W = sigVerify(fromBase58String(U), fromBase58String(V), a) | |
123 | + | if (W) | |
122 | 124 | then { | |
123 | - | let | |
124 | - | if ((0 > | |
125 | - | then (-1 * | |
126 | - | else | |
125 | + | let X = (toInt(sha256(toBytes(V))) % c) | |
126 | + | if ((0 > X)) | |
127 | + | then (-1 * X) | |
128 | + | else X | |
127 | 129 | } | |
128 | 130 | else throw("Invalid RSA signature") | |
129 | 131 | } | |
130 | 132 | ||
131 | 133 | ||
132 | - | func | |
133 | - | then | |
134 | - | else | |
134 | + | func Y (Z) = if (Z) | |
135 | + | then l | |
136 | + | else m | |
135 | 137 | ||
136 | 138 | ||
137 | - | func | |
138 | - | let | |
139 | + | func aa (ab,ac) = { | |
140 | + | let ad = if (if (if (if ((ac == 2)) | |
139 | 141 | then true | |
140 | - | else ( | |
142 | + | else (ac == 5)) | |
141 | 143 | then true | |
142 | - | else ( | |
144 | + | else (ac == 6)) | |
143 | 145 | then true | |
144 | - | else ( | |
146 | + | else (ac == 10)) | |
145 | 147 | then true | |
146 | - | else ( | |
147 | - | let | |
148 | + | else (ac == 20) | |
149 | + | let ae = if (if (if (if ((ab == (p + o))) | |
148 | 150 | then true | |
149 | - | else ( | |
151 | + | else (ab == (q + o))) | |
150 | 152 | then true | |
151 | - | else ( | |
153 | + | else (ab == (r + o))) | |
152 | 154 | then true | |
153 | - | else ( | |
155 | + | else (ab == (s + o))) | |
154 | 156 | then true | |
155 | - | else ( | |
156 | - | if (!( | |
157 | - | then throw( | |
158 | - | else if ( | |
159 | - | then (( | |
160 | - | else throw( | |
157 | + | else (ab == (t + o)) | |
158 | + | if (!(ad)) | |
159 | + | then throw(D) | |
160 | + | else if (ae) | |
161 | + | then ((ab - o) * ac) | |
162 | + | else throw(E) | |
161 | 163 | } | |
162 | 164 | ||
163 | 165 | ||
164 | - | @Callable( | |
165 | - | func bet ( | |
166 | - | let | |
167 | - | let | |
168 | - | let | |
169 | - | let | |
170 | - | let | |
171 | - | let | |
172 | - | let | |
173 | - | let | |
174 | - | let | |
175 | - | if ( | |
176 | - | then throw( | |
177 | - | else if ( | |
178 | - | then throw( | |
179 | - | else if ( | |
180 | - | then throw( | |
181 | - | else ScriptResult(WriteSet([DataEntry(ah, ai), DataEntry(d, ag), | |
166 | + | @Callable(af) | |
167 | + | func bet (ag) = { | |
168 | + | let ah = Q() | |
169 | + | let ai = toBase58String(af.transactionId) | |
170 | + | let aj = toBase58String(af.caller.bytes) | |
171 | + | let ak = extract(af.payment) | |
172 | + | let al = isDefined(getString(this, ai)) | |
173 | + | let am = isDefined(ak.assetId) | |
174 | + | let an = isDefined(ak.assetId) | |
175 | + | let ao = ak.amount | |
176 | + | let ap = aa(ak.amount, ag) | |
177 | + | if (am) | |
178 | + | then throw(y) | |
179 | + | else if (an) | |
180 | + | then throw(z) | |
181 | + | else if (al) | |
182 | + | then throw(A) | |
183 | + | else ScriptResult(WriteSet([DataEntry((e + toString(ah)), ai), DataEntry(ai, aj), DataEntry(d, ah), J(ai, f, ao), J(ai, g, ag), F(ai, h, k), J(ai, j, ap)]), TransferSet([ScriptTransfer(b, o, unit)])) | |
182 | 184 | } | |
183 | 185 | ||
184 | 186 | ||
185 | 187 | ||
186 | - | @Callable( | |
187 | - | func result ( | |
188 | - | let | |
189 | - | let | |
190 | - | let | |
191 | - | if (( | |
188 | + | @Callable(af) | |
189 | + | func result (ai,aq) = { | |
190 | + | let ar = T(ai, aq) | |
191 | + | let as = P(ai, g) | |
192 | + | let at = N(ai, h) | |
193 | + | if ((at == k)) | |
192 | 194 | then { | |
193 | - | let | |
194 | - | let | |
195 | - | let | |
196 | - | if ( | |
195 | + | let au = u[ar] | |
196 | + | let av = (au == as) | |
197 | + | let aw = WriteSet([F(ai, h, Y(av)), J(ai, i, au)]) | |
198 | + | if (av) | |
197 | 199 | then { | |
198 | - | let | |
199 | - | let | |
200 | - | ScriptResult( | |
200 | + | let ax = K(ai) | |
201 | + | let ay = P(ai, j) | |
202 | + | ScriptResult(aw, TransferSet([ScriptTransfer(addressFromStringValue(ax), ay, unit)])) | |
201 | 203 | } | |
202 | - | else | |
204 | + | else aw | |
203 | 205 | } | |
204 | - | else throw(( | |
206 | + | else throw((C + at)) | |
205 | 207 | } | |
206 | 208 | ||
207 | 209 | ||
208 | - | @Verifier( | |
209 | - | func | |
210 | + | @Verifier(az) | |
211 | + | func aA () = if (sigVerify(az.bodyBytes, az.proofs[0], az.senderPublicKey)) | |
210 | 212 | then { | |
211 | - | let | |
212 | - | if ($isInstanceOf( | |
213 | + | let L = az | |
214 | + | if ($isInstanceOf(L, "TransferTransaction")) | |
213 | 215 | then { | |
214 | - | let | |
216 | + | let aB = L | |
215 | 217 | true | |
216 | 218 | } | |
217 | - | else if ($isInstanceOf( | |
219 | + | else if ($isInstanceOf(L, "SetScriptTransaction")) | |
218 | 220 | then { | |
219 | - | let | |
221 | + | let aC = L | |
220 | 222 | true | |
221 | 223 | } | |
222 | 224 | else false | |
223 | 225 | } | |
224 | 226 | else false | |
225 | 227 |
github/deemru/w8io/c3f4982 80.88 ms ◑