tx · SdbTsCAiPk8fsrHpmZBw4vnWT7PuWxbpYu8kK1Ysxim

3MsGBnTzBhrNe6w1KpLYPkzdDdxWudm4U89:  -0.01400000 Waves

2019.08.21 09:36 [640528] smart account 3MsGBnTzBhrNe6w1KpLYPkzdDdxWudm4U89 > SELF 0.00000000 Waves

{ "type": 13, "id": "SdbTsCAiPk8fsrHpmZBw4vnWT7PuWxbpYu8kK1Ysxim", "fee": 1400000, "feeAssetId": null, "timestamp": 1566369422779, "version": 1, "sender": "3MsGBnTzBhrNe6w1KpLYPkzdDdxWudm4U89", "senderPublicKey": "FgbqvGasMMrXxbhwrsgEiCgJLjXPjgn8kHxsZiVmLrkb", "proofs": [ "eEcjgH8WVdveHJtyYHh3bAAKU1vHvFxFZQZXPzUA8B7KJJj2kGoEJTueYw6tnRuBXnpZ7BcyxdiU9Xqsgh1fNXN" ], "script": "base64:AAIDAAAAAAAAAAAAAAAgAAAAAAlSU0FQVUJMSUMJAAJbAAAAAQIAAAGPYmFzZTY0Ok1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbGVtcjk1SjFqWlVzN2NKbXJtbWxONHpvN1lWc0JKekllSmRrOExERkdoVUtTSTZ5ZnMyMFp5SmUyMSs2R0p3Tm5LVVUxVXlvYzE3d1NXTUtrclowTU12WUUrWjVBaWlqdkJLNHNTSjNJZ0dqZFU4L05oSThDQkR1MEYreFJNOXEzVEIzTExiRHk1c0JkdWRZZkhmc1VPYytNVHZBRDY5bjI3ZGIyUmg4K3laUU10dWJrdVRRTnA4OXNwaEhRYUxHeVFGYU5sSy9OYTNsRng2b21xemFhMWdqb3BsVXI2cnZZS2dmQUlDVUIzelZtSlNoaUVpN3c3UjBoV2xOUkQzcWNaakNVT05TcEZvNFdiemtuR09henc4NEIrSU1JRm5JcFhXelFMOFJYMHZOY2ZzQnZMRGZNNmsyWmFjcXd5TUthTExxaWdkQmlHZEo3VyswbE9TdE9RSURBUUFCAAAAABNSQU5ET1JBQ0xFVElNRUZSQU1FAAAAAAAAABDgAAAAAAdXQVZFTEVUCQAAaAAAAAIJAABoAAAAAgAAAAAAAAAAZAAAAAAAAAAD6AAAAAAAAAAD6AAAAAAKQ09NTUlTU0lPTgkAAGkAAAACCQAAaAAAAAIAAAAAAAAAAAUFAAAAB1dBVkVMRVQAAAAAAAAAA+gAAAAABEJFVDEJAABoAAAAAgAAAAAAAAAAAQUAAAAHV0FWRUxFVAAAAAAEQkVUMgkAAGgAAAACAAAAAAAAAAACBQAAAAdXQVZFTEVUAAAAAARCRVQ0CQAAaAAAAAIAAAAAAAAAAAQFAAAAB1dBVkVMRVQAAAAABEJFVDgJAABoAAAAAgAAAAAAAAAACAUAAAAHV0FWRUxFVAAAAAAFQkVUMTQJAABoAAAAAgAAAAAAAAAADgUAAAAHV0FWRUxFVAAAAAAIUkFURU1VTFQAAAAAAAAAJxAAAAAABVJBVEUxAAAAAAAAAJrnAAAAAAVSQVRFMgAAAAAAAABgGAAAAAAFUkFURTMAAAAAAAAASjgAAAAABVJBVEU0AAAAAAAAADd4AAAAAAVSQVRFNQAAAAAAAAAsiAAA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AAZnYW1lSWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAADcG10CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAADWJldE5vdEluV2F2ZXMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAADWZlZU5vdEluV2F2ZXMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAABndpbkFtdAkBAAAAGlZhbGlkYXRlQmV0QW5kRGVmaW5lV2luQW10AAAAAggFAAAAA3BtdAAAAAZhbW91bnQFAAAADHBsYXllckNob2ljZQQAAAAIdHhJZFVzZWQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMFAAAABmdhbWVJZAMFAAAADWJldE5vdEluV2F2ZXMJAAACAAAAAQIAAAAbQmV0IGFtb3VudCBtdXN0IGJlIGluIFdhdmVzAwUAAAANZmVlTm90SW5XYXZlcwkAAAIAAAABAgAAACJUcmFuc2FjdGlvbidzIGZlZSBtdXN0IGJlIGluIFdhdmVzAwUAAAAIdHhJZFVzZWQJAAACAAAAAQIAAAAvUGFzc2VkIHR4SWQgaGFkIGJlZW4gdXNlZCBiZWZvcmUuIEdhbWUgYWJvcnRlZC4EAAAADnBsYXllclB1YktleTU4CQACWAAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAALZ2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAYFAAAADlNUQVRFU1VCTUlUVEVEBQAAAAxwbGF5ZXJDaG9pY2UFAAAADnBsYXllclB1YktleTU4BQAAAAZoZWlnaHQFAAAABndpbkFtdAIAAAAABAAAAAZTRVJWRVIJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQQAAAAOc2VydmVyVHJhbnNmZXIJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAGU0VSVkVSBQAAAApDT01NSVNTSU9OBQAAAAR1bml0BQAAAANuaWwEAAAAB2JldERhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADlJFU0VSVkFUSU9OS0VZCQEAAAAeVmFsaWRhdGVBbmRJbmNyZWFzZVJlc2VydmVkQW10AAAAAQUAAAAGd2luQW10CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9HQU1FU0NPVU5URVJLRVkFAAAACm5ld0dhbWVOdW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAUAAAALZ2FtZURhdGFTdHIFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEFAAAAB2JldERhdGEJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAADnNlcnZlclRyYW5zZmVyAAAAAOoVkbk=", "chainId": 84, "height": 640528, "spentComplexity": 0 } View: original | compacted Prev: BNcRqiYRNYBGqzkZaopEacSxP3vhDjJzmoviHtJgFk8G Next: FZaVVwuudjyPinYPnh2twVyVoL6EezfDWF72xkYXN69a Diff:
OldNewDifferences
1919
2020 let i = (14 * c)
2121
22-let j = "$RESERVED_AMOUNT"
22+let j = 10000
2323
24-func k (l) = i
24+let k = 39655
25+
26+let l = 24600
27+
28+let m = 19000
29+
30+let n = 14200
31+
32+let o = 11400
33+
34+let p = "$GAME_NUM"
35+
36+let q = "$RESERVED_AMOUNT"
37+
38+let r = "SUBMITTED"
39+
40+let s = "WON"
41+
42+let t = "LOST"
43+
44+func u (v) = i
2545
2646
27-func m (n,o) = {
28- let p = rsaVerify(SHA256, toBytes(n), o, a)
29- if (p)
47+func w (x,y) = {
48+ let z = rsaVerify(SHA256, toBytes(x), y, a)
49+ if (z)
3050 then {
31- let q = (toInt(sha256(o)) % 6)
32- if ((0 > q))
33- then (-1 * q)
34- else q
51+ let A = (toInt(sha256(y)) % 6)
52+ if ((0 > A))
53+ then (-1 * A)
54+ else A
3555 }
3656 else throw("Invalid RSA signature")
3757 }
3858
3959
40-func r (s) = if ((size(s) > 0))
41- then drop(s, 1)
42- else s
60+func B (C) = if ((size(C) > 0))
61+ then drop(C, 1)
62+ else C
4363
4464
45-func t (s) = {
46- let u = size(s)
47- if ((u > 0))
65+func D (C) = {
66+ let E = size(C)
67+ if ((E > 0))
4868 then {
49- let v = parseIntValue(take(s, 2))
50- let w = take(drop(s, 2), v)
51- let x = drop(s, (v + 2))
52- let y = r(x)
53-[w, y]
69+ let F = parseIntValue(take(C, 2))
70+ let G = take(drop(C, 2), F)
71+ let H = drop(C, (F + 2))
72+ let I = B(H)
73+[G, I]
5474 }
5575 else throw("Empty string was passed into parseNextAttribute func")
5676 }
5777
5878
59-func z (A) = {
60- let B = t(A)
61- let l = t(B[1])
62- let C = t(l[1])
63- let D = t(C[1])
64- let E = t(D[1])
65-[B[0], l[0], C[0], D[0], E[0]]
79+func J (K) = {
80+ let L = D(K)
81+ let v = D(L[1])
82+ let M = D(v[1])
83+ let N = D(M[1])
84+ let O = D(N[1])
85+[L[0], v[0], M[0], N[0], O[0]]
6686 }
6787
6888
69-func F (n) = {
70- let G = {
71- let H = getString(this, n)
72- if ($isInstanceOf(H, "String"))
89+func P (x) = {
90+ let Q = {
91+ let R = getString(this, x)
92+ if ($isInstanceOf(R, "String"))
7393 then {
74- let I = H
75- I
94+ let S = R
95+ S
7696 }
77- else throw(("Couldn't find game by " + n))
97+ else throw(("Couldn't find game by " + x))
7898 }
79- z(G)
99+ J(Q)
80100 }
81101
82102
83-func J () = {
84- let H = getInteger(this, j)
85- if ($isInstanceOf(H, "Int"))
103+func T () = {
104+ let R = getInteger(this, q)
105+ if ($isInstanceOf(R, "Int"))
86106 then {
87- let K = H
88- K
107+ let U = R
108+ U
89109 }
90110 else 0
91111 }
92112
93113
94-@Callable(L)
95-func bet (l) = {
96- let M = toBase58String(L.caller.bytes)
97- let N = k(l)
98- let O = L.payment
99- let P = wavesBalance(this)
100- let Q = [DataEntry((M + " это Ставка Игрока"), l), DataEntry("Ответ Сервера", N), DataEntry("Текущий баланс игры", P), DataEntry("Номер текущего блока", height), DataEntry("Bytes блокчейн игры", this.bytes)]
101- let R = Address(L.caller.bytes)
102- let S = [ScriptTransfer(R, 10, unit)]
103- ScriptResult(WriteSet(Q), TransferSet(S))
114+func V (O) = {
115+ let W = (T() + O)
116+ let X = wavesBalance(this)
117+ if ((W > X))
118+ then throw("Insufficient funds on Russian Roulette account. Transaction was rejected for your safety.")
119+ else W
104120 }
105121
106122
107-
108-@Callable(L)
109-func withdraw (O) = {
110- let T = toBase58String(L.caller.bytes)
111- let U = {
112- let H = getInteger(this, T)
113- if ($isInstanceOf(H, "Int"))
123+func Y () = {
124+ let Z = {
125+ let R = getInteger(this, p)
126+ if ($isInstanceOf(R, "Int"))
114127 then {
115- let K = H
116- K
128+ let aa = R
129+ aa
117130 }
118131 else 0
119132 }
120- let V = (U - O)
121- if ((0 > O))
122- then throw("Can't withdraw negative amount")
123- else if ((0 > V))
124- then throw("Not enough balance")
125- else ScriptResult(WriteSet([DataEntry(T, V)]), TransferSet([ScriptTransfer(L.caller, O, unit)]))
133+ (Z + 1)
126134 }
127135
128136
129-@Verifier(W)
130-func X () = if (sigVerify(W.bodyBytes, W.proofs[0], W.senderPublicKey))
131- then {
132- let H = W
133- if ($isInstanceOf(H, "TransferTransaction"))
134- then {
135- let Y = H
136- ((wavesBalance(this) - Y.amount) >= J())
137- }
138- else if ($isInstanceOf(H, "SetScriptTransaction"))
139- then {
140- let Z = H
141- true
137+func ab (ac) = {
138+ let E = size(ac)
139+ if ((E == 0))
140+ then throw("Parameter size must be greater then 0")
141+ else if ((E > 99))
142+ then throw("Parameter size must be less then 100")
143+ else if ((10 > E))
144+ then (("0" + toString(E)) + ac)
145+ else (toString(E) + ac)
146+ }
147+
148+
149+func ad (L,v,M,N,O,ae) = {
150+ let af = ((((((((ab(L) + "_") + ab(v)) + "_") + ab(M)) + "_") + ab(toString(N))) + "_") + ab(toString(O)))
151+ if ((ae == ""))
152+ then af
153+ else ((af + "_") + ab(ae))
154+ }
155+
156+
157+func ag (ah,v) = {
158+ let ai = if (if (if (if (if ((ah == (e + d)))
159+ then true
160+ else (ah == (f + d)))
161+ then true
162+ else (ah == (g + d)))
163+ then true
164+ else (ah == (h + d)))
165+ then true
166+ else (ah == (i + d)))
167+ then true
168+ else false
169+ if (ai)
170+ then {
171+ let aj = size(v)
172+ let ak = (ah - d)
173+ if ((aj == 5))
174+ then ((ak * k) / j)
175+ else if ((aj == 4))
176+ then ((ak * l) / j)
177+ else if ((aj == 3))
178+ then ((ak * m) / j)
179+ else if ((aj == 2))
180+ then ((ak * n) / j)
181+ else if ((aj == 1))
182+ then ((ak * o) / j)
183+ else throw("Invalid bullets in player's choice")
184+ }
185+ else throw("Bet amount is not in range")
186+ }
187+
188+
189+@Callable(al)
190+func bet (v) = {
191+ let am = Y()
192+ let x = toBase58String(al.transactionId)
193+ let an = extract(al.payment)
194+ let ao = isDefined(an.assetId)
195+ let ap = isDefined(an.assetId)
196+ let O = ag(an.amount, v)
197+ let aq = isDefined(getString(this, x))
198+ if (ao)
199+ then throw("Bet amount must be in Waves")
200+ else if (ap)
201+ then throw("Transaction's fee must be in Waves")
202+ else if (aq)
203+ then throw("Passed txId had been used before. Game aborted.")
204+ else {
205+ let M = toBase58String(al.callerPublicKey)
206+ let ar = ad(r, v, M, height, O, "")
207+ let as = addressFromPublicKey(al.callerPublicKey)
208+ let at = [ScriptTransfer(as, d, unit)]
209+ let au = [DataEntry(q, V(O)), DataEntry(p, am), DataEntry(x, ar)]
210+ ScriptResult(WriteSet(au), TransferSet(at))
142211 }
143- else false
144- }
145- else false
212+ }
213+
146214
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlemr95J1jZUs7cJmrmmlN4zo7YVsBJzIeJdk8LDFGhUKSI6yfs20ZyJe21+6GJwNnKUU1Uyoc17wSWMKkrZ0MMvYE+Z5AiijvBK4sSJ3IgGjdU8/NhI8CBDu0F+xRM9q3TB3LLbDy5sBdudYfHfsUOc+MTvAD69n27db2Rh8+yZQMtubkuTQNp89sphHQaLGyQFaNlK/Na3lFx6omqzaa1gjoplUr6rvYKgfAICUB3zVmJShiEi7w7R0hWlNRD3qcZjCUONSpFo4WbzknGOazw84B+IMIFnIpXWzQL8RX0vNcfsBvLDfM6k2ZacqwyMKaLLqigdBiGdJ7W+0lOStOQIDAQAB")
55
66 let b = 4320
77
88 let c = ((100 * 1000) * 1000)
99
1010 let d = ((5 * c) / 1000)
1111
1212 let e = (1 * c)
1313
1414 let f = (2 * c)
1515
1616 let g = (4 * c)
1717
1818 let h = (8 * c)
1919
2020 let i = (14 * c)
2121
22-let j = "$RESERVED_AMOUNT"
22+let j = 10000
2323
24-func k (l) = i
24+let k = 39655
25+
26+let l = 24600
27+
28+let m = 19000
29+
30+let n = 14200
31+
32+let o = 11400
33+
34+let p = "$GAME_NUM"
35+
36+let q = "$RESERVED_AMOUNT"
37+
38+let r = "SUBMITTED"
39+
40+let s = "WON"
41+
42+let t = "LOST"
43+
44+func u (v) = i
2545
2646
27-func m (n,o) = {
28- let p = rsaVerify(SHA256, toBytes(n), o, a)
29- if (p)
47+func w (x,y) = {
48+ let z = rsaVerify(SHA256, toBytes(x), y, a)
49+ if (z)
3050 then {
31- let q = (toInt(sha256(o)) % 6)
32- if ((0 > q))
33- then (-1 * q)
34- else q
51+ let A = (toInt(sha256(y)) % 6)
52+ if ((0 > A))
53+ then (-1 * A)
54+ else A
3555 }
3656 else throw("Invalid RSA signature")
3757 }
3858
3959
40-func r (s) = if ((size(s) > 0))
41- then drop(s, 1)
42- else s
60+func B (C) = if ((size(C) > 0))
61+ then drop(C, 1)
62+ else C
4363
4464
45-func t (s) = {
46- let u = size(s)
47- if ((u > 0))
65+func D (C) = {
66+ let E = size(C)
67+ if ((E > 0))
4868 then {
49- let v = parseIntValue(take(s, 2))
50- let w = take(drop(s, 2), v)
51- let x = drop(s, (v + 2))
52- let y = r(x)
53-[w, y]
69+ let F = parseIntValue(take(C, 2))
70+ let G = take(drop(C, 2), F)
71+ let H = drop(C, (F + 2))
72+ let I = B(H)
73+[G, I]
5474 }
5575 else throw("Empty string was passed into parseNextAttribute func")
5676 }
5777
5878
59-func z (A) = {
60- let B = t(A)
61- let l = t(B[1])
62- let C = t(l[1])
63- let D = t(C[1])
64- let E = t(D[1])
65-[B[0], l[0], C[0], D[0], E[0]]
79+func J (K) = {
80+ let L = D(K)
81+ let v = D(L[1])
82+ let M = D(v[1])
83+ let N = D(M[1])
84+ let O = D(N[1])
85+[L[0], v[0], M[0], N[0], O[0]]
6686 }
6787
6888
69-func F (n) = {
70- let G = {
71- let H = getString(this, n)
72- if ($isInstanceOf(H, "String"))
89+func P (x) = {
90+ let Q = {
91+ let R = getString(this, x)
92+ if ($isInstanceOf(R, "String"))
7393 then {
74- let I = H
75- I
94+ let S = R
95+ S
7696 }
77- else throw(("Couldn't find game by " + n))
97+ else throw(("Couldn't find game by " + x))
7898 }
79- z(G)
99+ J(Q)
80100 }
81101
82102
83-func J () = {
84- let H = getInteger(this, j)
85- if ($isInstanceOf(H, "Int"))
103+func T () = {
104+ let R = getInteger(this, q)
105+ if ($isInstanceOf(R, "Int"))
86106 then {
87- let K = H
88- K
107+ let U = R
108+ U
89109 }
90110 else 0
91111 }
92112
93113
94-@Callable(L)
95-func bet (l) = {
96- let M = toBase58String(L.caller.bytes)
97- let N = k(l)
98- let O = L.payment
99- let P = wavesBalance(this)
100- let Q = [DataEntry((M + " это Ставка Игрока"), l), DataEntry("Ответ Сервера", N), DataEntry("Текущий баланс игры", P), DataEntry("Номер текущего блока", height), DataEntry("Bytes блокчейн игры", this.bytes)]
101- let R = Address(L.caller.bytes)
102- let S = [ScriptTransfer(R, 10, unit)]
103- ScriptResult(WriteSet(Q), TransferSet(S))
114+func V (O) = {
115+ let W = (T() + O)
116+ let X = wavesBalance(this)
117+ if ((W > X))
118+ then throw("Insufficient funds on Russian Roulette account. Transaction was rejected for your safety.")
119+ else W
104120 }
105121
106122
107-
108-@Callable(L)
109-func withdraw (O) = {
110- let T = toBase58String(L.caller.bytes)
111- let U = {
112- let H = getInteger(this, T)
113- if ($isInstanceOf(H, "Int"))
123+func Y () = {
124+ let Z = {
125+ let R = getInteger(this, p)
126+ if ($isInstanceOf(R, "Int"))
114127 then {
115- let K = H
116- K
128+ let aa = R
129+ aa
117130 }
118131 else 0
119132 }
120- let V = (U - O)
121- if ((0 > O))
122- then throw("Can't withdraw negative amount")
123- else if ((0 > V))
124- then throw("Not enough balance")
125- else ScriptResult(WriteSet([DataEntry(T, V)]), TransferSet([ScriptTransfer(L.caller, O, unit)]))
133+ (Z + 1)
126134 }
127135
128136
129-@Verifier(W)
130-func X () = if (sigVerify(W.bodyBytes, W.proofs[0], W.senderPublicKey))
131- then {
132- let H = W
133- if ($isInstanceOf(H, "TransferTransaction"))
134- then {
135- let Y = H
136- ((wavesBalance(this) - Y.amount) >= J())
137- }
138- else if ($isInstanceOf(H, "SetScriptTransaction"))
139- then {
140- let Z = H
141- true
137+func ab (ac) = {
138+ let E = size(ac)
139+ if ((E == 0))
140+ then throw("Parameter size must be greater then 0")
141+ else if ((E > 99))
142+ then throw("Parameter size must be less then 100")
143+ else if ((10 > E))
144+ then (("0" + toString(E)) + ac)
145+ else (toString(E) + ac)
146+ }
147+
148+
149+func ad (L,v,M,N,O,ae) = {
150+ let af = ((((((((ab(L) + "_") + ab(v)) + "_") + ab(M)) + "_") + ab(toString(N))) + "_") + ab(toString(O)))
151+ if ((ae == ""))
152+ then af
153+ else ((af + "_") + ab(ae))
154+ }
155+
156+
157+func ag (ah,v) = {
158+ let ai = if (if (if (if (if ((ah == (e + d)))
159+ then true
160+ else (ah == (f + d)))
161+ then true
162+ else (ah == (g + d)))
163+ then true
164+ else (ah == (h + d)))
165+ then true
166+ else (ah == (i + d)))
167+ then true
168+ else false
169+ if (ai)
170+ then {
171+ let aj = size(v)
172+ let ak = (ah - d)
173+ if ((aj == 5))
174+ then ((ak * k) / j)
175+ else if ((aj == 4))
176+ then ((ak * l) / j)
177+ else if ((aj == 3))
178+ then ((ak * m) / j)
179+ else if ((aj == 2))
180+ then ((ak * n) / j)
181+ else if ((aj == 1))
182+ then ((ak * o) / j)
183+ else throw("Invalid bullets in player's choice")
184+ }
185+ else throw("Bet amount is not in range")
186+ }
187+
188+
189+@Callable(al)
190+func bet (v) = {
191+ let am = Y()
192+ let x = toBase58String(al.transactionId)
193+ let an = extract(al.payment)
194+ let ao = isDefined(an.assetId)
195+ let ap = isDefined(an.assetId)
196+ let O = ag(an.amount, v)
197+ let aq = isDefined(getString(this, x))
198+ if (ao)
199+ then throw("Bet amount must be in Waves")
200+ else if (ap)
201+ then throw("Transaction's fee must be in Waves")
202+ else if (aq)
203+ then throw("Passed txId had been used before. Game aborted.")
204+ else {
205+ let M = toBase58String(al.callerPublicKey)
206+ let ar = ad(r, v, M, height, O, "")
207+ let as = addressFromPublicKey(al.callerPublicKey)
208+ let at = [ScriptTransfer(as, d, unit)]
209+ let au = [DataEntry(q, V(O)), DataEntry(p, am), DataEntry(x, ar)]
210+ ScriptResult(WriteSet(au), TransferSet(at))
142211 }
143- else false
144- }
145- else false
212+ }
213+
146214

github/deemru/w8io/873ac7e 
55.52 ms