tx · FixSVkRrmDnHcVkiatMYhbvWkTvoEHqCG9UER5Vs1xM2

3MxsZUkxjngrsHn7WNd2xEbwWkUfKdmzP6u:  -0.01400000 Waves

2019.10.27 00:09 [737624] smart account 3MxsZUkxjngrsHn7WNd2xEbwWkUfKdmzP6u > SELF 0.00000000 Waves

{ "type": 13, "id": "FixSVkRrmDnHcVkiatMYhbvWkTvoEHqCG9UER5Vs1xM2", "fee": 1400000, "feeAssetId": null, "timestamp": 1572124147927, "version": 1, "sender": "3MxsZUkxjngrsHn7WNd2xEbwWkUfKdmzP6u", "senderPublicKey": "BFgvNhTxuzThVrRXLX7LfTfCHVeCPDsF6JEpadKJPvox", "proofs": [ "2VUmsoYZoVVR9oT5sm9G76UwvjQoJCFyGMu6DXwuN5LqyKdN2CipkSDXUdm4xtFu4Reso9RAi1QxwCY5Q8z7mqhM" ], "script": "base64:AAIDAAAAAAAAABEIARIDCgEIEgMKAQgSAwoBCAAAACIAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAY9iYXNlNjQ6TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFtT2xSQlRZRU8zSDdZOXJCbW9GUUZuNDM5MlB4MFF3MTNEc2RFaG56TUgyY2o2WTV5bVB1Q09MTU5lNXFyVXpRbDhvUkx6SUJ6RlZNWmx3VVlsMmJvc3JPSXhRYllGN1dWUVd2b1Z4RVQxWUlnRG0zTnp6T0xBNXVIN0NLTzBzbnNobU1GQ0RPWkVldzQxR2pLaDNQZ3grbmJBZ3VQOVpRUGZxU2FmRW1DM0NOLzR5RHNKcktyaVJuaVpKbzlqUy80TExzUkt3QjdIQVpIem9GOUxMN3RTWkgzaHRhTkd0YmRUa3haMVR6U1QzTWIyVlBTenNadlFEb2NYVVZPbUpPdTBvMjlhT1krR2tHL0c0UkNLMEZCV1FIRVV2QzUxVFJEUzVrOGphZDBPMU1vYmpRYzZiMThkK2Z1b1ZGZE5mWndHSCt1RnVkdFBHM1VKVGYybWt6WlFJREFRQUIAAAAAD0dBTUVTQ09VTlRFUktFWQIAAAAJJEdBTUVfTlVNAAAAAA5SRVNFUlZBVElPTktFWQIAAAAQJFJFU0VSVkVEX0FNT1VOVAAAAAAEV0JFVAEAAAAgD5uLrFpvaCc5H1Jt+IyA7GJAqs11k4f4jn5gjTii4MkAAAAADldBTExFVFdBVkVTQkVUCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFUjmD063sxkBCLSiisiwOufXcqpucc4Di4AAAAAAxXQUxMRVRNQ0FGRkUJAQAAAAdBZGRyZXNzAAAAAQEAAAAAAAAAAA5TVEFURVNVQk1JVFRFRAIAAAAJU1VCTUlUVEVEAAAAAAxTVEFURVdBSVRJTkcCAAAAB1dBSVRJTkcAAAAADVNUQVRFRklOSVNIRUQCAAAACEZJTklTSEVEAAAAAA1TVEFURUNBTkNFTEVEAgAAAAhDQU5DRUxFRAAAAAALRkVFV0FWRVNCRVQAAAAAAAAAAAQAAAAACUZFRU1DQUZFRQAAAAAAAAAAAgAAAAAMSWR4R2FtZVN0YXRlAAAAAAAAAAAAAAAAAA5JZHhQbGF5ZXJBQ29p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AAABaQAAAA10cmFuc2FjdGlvbklkBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAACmZlZUFzc2V0SWQJAQAAAAlpc0RlZmluZWQAAAABCAUAAAABaQAAAApmZWVBc3NldElkBAAAAApnYW1lSWRVc2VkCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzBQAAAAZnYW1lSWQEAAAABndpbkFtdAkBAAAAGlZhbGlkYXRlQmV0QW5kRGVmaW5lV2luQW10AAAAAgUAAAAGcGFDb2luCAUAAAAHcGF5bWVudAAAAAZhbW91bnQDAwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAA+wAAAABAQAAAAQTq9kzCQEAAAACIT0AAAACCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAARXQkVUBwkAAAIAAAABAgAAACZQYXltZW50IHNob3VsZCBiZSBpbiBXYXZlc2JldCBvciBXYXZlcwMFAAAACmZlZUFzc2V0SWQJAAACAAAAAQIAAAAxVHJhbnNhY3Rpb24ncyBmZWUgbXVzdCBiZSBpbiBXYXZlcy4gR2FtZSBhYm9ydGVkLgMFAAAACmdhbWVJZFVzZWQJAAACAAAAAQIAAAAxUGFzc2VkIGdhbWVJZCBoYWQgYmVlbiB1c2VkIGJlZm9yZS4gR2FtZSBhYm9ydGVkLgQAAAAKbmV3R2FtZU51bQkBAAAAEEluY3JlbWVudEdhbWVOdW0AAAAABAAAAA9wbGF5ZXJBUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAAdwYXlUeXBlCQEAAAALVHlwZVBheW1lbnQAAAABBQAAAAdwYXltZW50BAAAAAtnYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAACQUAAAAOU1RBVEVTVUJNSVRURUQFAAAABnBhQ29pbgUAAAAPcGxheWVyQVB1YktleTU4BQAAAAdwYXlUeXBlCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAABndpbkFtdAIAAAAAAgAAAAACAAAAAAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADlJFU0VSVkFUSU9OS0VZCQEAAAAeVmFsaWRhdGVBbmRJbmNyZWFzZVJlc2VydmVkQW10AAAAAQUAAAAGd2luQW10CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9HQU1FU0NPVU5URVJLRVkFAAAACm5ld0dhbWVOdW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAUAAAALZ2FtZURhdGFTdHIFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA5XQUxMRVRXQVZFU0JFVAkAAGkAAAACCQAAaAAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAALRkVFV0FWRVNCRVQAAAAAAAAAAGQFAAAABFdCRVQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAEdGhpcwAAAAAAAAehIAUAAAAEdW5pdAUAAAADbmlsAAAAAWkBAAAAD2FjY2VwdENoYWxsZW5nZQAAAAEAAAAGZ2FtZUlkBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAACmZlZUFzc2V0SWQJAQAAAAlpc0RlZmluZWQAAAABCAUAAAABaQAAAApmZWVBc3NldElkBAAAAAhwYXlUeXBlQgkBAAAAC1R5cGVQYXltZW50AAAAAQUAAAAHcGF5bWVudAQAAAAMZ2FtZURhdGFMaXN0CQEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAMSWR4R2FtZVN0YXRlBAAAAAhwYXlUeXBlQQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAACklkeFBheVR5cGUEAAAABnBheUFtdAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAJSWR4UGF5QW10AwMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAPsAAAAAQEAAAAEE6vZMwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAAEV0JFVAcJAAACAAAAAQIAAAAmUGF5bWVudCBzaG91bGQgYmUgaW4gV2F2ZXNiZXQgb3IgV2F2ZXMDBQAAAApmZWVBc3NldElkCQAAAgAAAAECAAAAMVRyYW5zYWN0aW9uJ3MgZmVlIG11c3QgYmUgaW4gV2F2ZXMuIEdhbWUgYWJvcnRlZC4DCQEAAAACIT0AAAACBQAAAAhwYXlUeXBlQgUAAAAIcGF5VHlwZUEJAAACAAAAAQIAAABVUGF5bWVudCBtdXN0IGJlIG1hZGUgaW4gdGhlIHNhbWUgY3VycmVuY3kgdG9rZW4gYXMgdGhlIGJldCwgV0JFVC9XQkVUIG9yIFdBVkVTL1dBVkVTLgMJAAAAAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAZwYXlBbXQJAAACAAAAAQIAAAAnUGF5b3V0IG11c3QgYmUgZXF1YWwgdG8gdGhlIGJldCBhbW91bnQuAwkBAAAAAiE9AAAAAgUAAAAJZ2FtZVN0YXRlBQAAAA5TVEFURVNVQk1JVFRFRAkAAAIAAAABAgAAACRJbnZhbGlkIGdhbWUgc3RhdGUgZm9yIHBhc3NlZCBnYW1lSWQEAAAABnBhQ29pbgkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAADklkeFBsYXllckFDb2luBAAAAApwYVB1YktleTU4CQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAASSWR4UGxheWVyQVB1YktleTU4BAAAAAZ3aW5BbXQJAQAAAA1wYXJzZUludFZhbHVlAAAAAQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAACUlkeFdpbkFtdAQAAAAGcGJDb2luCQEAAAALU2VsZWN0Q29pbkIAAAABBQAAAAZwYUNvaW4EAAAACnBiUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA5uZXdHYW1lRGF0YVN0cgkBAAAAEUZvcm1hdEdhbWVEYXRhU3RyAAAACQUAAAAMU1RBVEVXQUlUSU5HBQAAAAZwYUNvaW4FAAAACnBhUHViS2V5NTgFAAAACHBheVR5cGVBBQAAAAZwYXlBbXQFAAAABndpbkFtdAUAAAAGcGJDb2luBQAAAApwYlB1YktleTU4AgAAAAAJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAADm5ld0dhbWVEYXRhU3RyBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAOV0FMTEVUV0FWRVNCRVQJAABpAAAAAgkAAGgAAAACCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAAC0ZFRVdBVkVTQkVUAAAAAAAAAABkBQAAAARXQkVUCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAABHRoaXMAAAAAAAAHoSAFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAAA9jYW5jZWxDaGFsbGVuZ2UAAAABAAAABmdhbWVJZAQAAAAKZmVlQXNzZXRJZAkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAFpAAAACmZlZUFzc2V0SWQEAAAADGdhbWVEYXRhTGlzdAkBAAAAE0V4dHJhY3RHYW1lRGF0YUxpc3QAAAABBQAAAAZnYW1lSWQEAAAACWdhbWVTdGF0ZQkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAADElkeEdhbWVTdGF0ZQMFAAAACmZlZUFzc2V0SWQJAAACAAAAAQIAAAAxVHJhbnNhY3Rpb24ncyBmZWUgbXVzdCBiZSBpbiBXYXZlcy4gR2FtZSBhYm9ydGVkLgMJAQAAAAIhPQAAAAIFAAAACWdhbWVTdGF0ZQUAAAAOU1RBVEVTVUJNSVRURUQJAAACAAAAAQIAAAAkSW52YWxpZCBnYW1lIHN0YXRlIGZvciBwYXNzZWQgZ2FtZUlkBAAAAAZwYUNvaW4JAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAA5JZHhQbGF5ZXJBQ29pbgQAAAAKcGFQdWJLZXk1OAkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QFAAAAEklkeFBsYXllckFQdWJLZXk1OAQAAAAGd2luQW10CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAlJZHhXaW5BbXQEAAAACHBheVR5cGVBCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAAKSWR4UGF5VHlwZQQAAAAGcGF5QW10CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAlJZHhQYXlBbXQEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAJBQAAAA1TVEFURUNBTkNFTEVEBQAAAAZwYUNvaW4FAAAACnBhUHViS2V5NTgFAAAACHBheVR5cGVBBQAAAAZwYXlBbXQFAAAABndpbkFtdAIAAAAAAgAAAAACAAAAAAQAAAAGcmVmdW5kCQAAZQAAAAIFAAAABnBheUFtdAkAAGkAAAACCQAAaAAAAAIFAAAABnBheUFtdAUAAAALRkVFV0FWRVNCRVQAAAAAAAAAAGQEAAAACWFkclJlZnVuZAkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAZsAAAABBQAAAApwYVB1YktleTU4BAAAAAhyZWZUb2tlbgkBAAAACVR5cGVUb2tlbgAAAAEFAAAACHBheVR5cGVBCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAA5uZXdHYW1lRGF0YVN0cgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAACWFkclJlZnVuZAUAAAAGcmVmdW5kBQAAAAhyZWZUb2tlbgUAAAADbmlsAAAAABFps70=", "chainId": 84, "height": 737624, "spentComplexity": 0 } View: original | compacted Prev: CSmMhCBT2QSKv9kBb6gAT7evvRvN9QGSr2SkYiMDci11 Next: GMbPSk3Z9idYFohU2phfuwYk5cgP5ku8mZqFrKAER3dx Diff:
OldNewDifferences
2121
2222 let j = "CANCELED"
2323
24-let k = 1
24+let k = 4
2525
26-let l = 4
26+let l = 2
2727
28-let m = 2
28+let m = 0
2929
30-let n = (1 * k)
30+let n = 1
3131
32-let o = ((1000 * 100) * k)
32+let o = 2
3333
34-let p = 0
34+let p = 3
3535
36-let q = 1
36+let q = 4
3737
38-let r = 2
38+let r = 5
3939
40-let s = 3
40+let s = 6
4141
42-let t = 4
42+let t = 7
4343
44-let u = 5
44+let u = 8
4545
46-let v = 6
47-
48-let w = 7
49-
50-let x = 8
51-
52-func y () = {
53- let z = {
54- let A = getInteger(this, b)
55- if ($isInstanceOf(A, "Int"))
46+func v () = {
47+ let w = {
48+ let x = getInteger(this, b)
49+ if ($isInstanceOf(x, "Int"))
5650 then {
57- let B = A
58- B
51+ let y = x
52+ y
5953 }
6054 else 0
6155 }
62- (z + 1)
56+ (w + 1)
6357 }
6458
6559
66-func C (D,E) = if (if ((D != "RED"))
67- then (D != "BLUE")
60+func z (A,B) = if (if ((A != "RED"))
61+ then (A != "BLUE")
6862 else false)
6963 then throw("Invalid play, change your play to RED or BLUE.")
70- else if (if ((n > E))
71- then true
72- else (E > o))
73- then throw(((("Bet amount is not in range: minBet=" + toString((n / 100000000))) + " maxBet=") + toString((o / 100000000))))
74- else ((((E * 2) / 100000) * (100 - (l + m))) / 100)
64+ else ((((B * 2) / 100000) * (100 - (k + l))) / 100)
7565
7666
77-func F () = {
78- let A = getInteger(this, c)
79- if ($isInstanceOf(A, "Int"))
67+func C () = {
68+ let x = getInteger(this, c)
69+ if ($isInstanceOf(x, "Int"))
8070 then {
81- let G = A
82- G
71+ let D = x
72+ D
8373 }
8474 else 0
8575 }
8676
8777
88-func H (I) = {
89- let J = (F() + I)
90- let K = wavesBalance(this)
91- if ((J > K))
78+func E (F) = {
79+ let G = (C() + F)
80+ let H = wavesBalance(this)
81+ if ((G > H))
9282 then throw("Insufficient funds on Waves Rider account. Transaction was rejected for your safety.")
93- else J
83+ else G
9484 }
9585
9686
97-func L (M) = {
98- let N = size(M)
99- if ((N == 0))
87+func I (J) = {
88+ let K = size(J)
89+ if ((K == 0))
10090 then throw("Parameter size must be greater then 0.")
101- else if ((N > 99))
91+ else if ((K > 99))
10292 then throw("Parameter size must be less then 100.")
103- else if ((10 > N))
104- then (("0" + toString(N)) + M)
105- else (toString(N) + M)
93+ else if ((10 > K))
94+ then (("0" + toString(K)) + J)
95+ else (toString(K) + J)
10696 }
10797
10898
109-func O (P,Q,R,S,T,I,U,V,W) = {
110- let X = ((((((((((L(P) + "_") + L(Q)) + "_") + L(R)) + "_") + L(S)) + "_") + L(toString(T))) + "_") + L(toString(I)))
111- if (if (if ((U == ""))
112- then (V == "")
99+func L (M,N,O,P,Q,F,R,S,T) = {
100+ let U = ((((((((((I(M) + "_") + I(N)) + "_") + I(O)) + "_") + I(P)) + "_") + I(toString(Q))) + "_") + I(toString(F)))
101+ if (if (if ((R == ""))
102+ then (S == "")
113103 else false)
114- then (W == "")
104+ then (T == "")
115105 else false)
116- then X
117- else if (if (if ((U != ""))
118- then (V != "")
106+ then U
107+ else if (if (if ((R != ""))
108+ then (S != "")
119109 else false)
120- then (W == "")
110+ then (T == "")
121111 else false)
122- then (((X + "_") + (L(U) + "_")) + (L(V) + "_"))
123- else ((((X + "_") + (L(U) + "_")) + (L(V) + "_")) + L(W))
112+ then (((U + "_") + (I(R) + "_")) + (I(S) + "_"))
113+ else ((((U + "_") + (I(R) + "_")) + (I(S) + "_")) + I(T))
124114 }
125115
126116
127-func Y (Z) = if ((size(Z) > 0))
128- then drop(Z, 1)
129- else Z
117+func V (W) = if ((size(W) > 0))
118+ then drop(W, 1)
119+ else W
130120
131121
132-func aa (Z) = {
133- let N = size(Z)
134- if ((N > 0))
122+func X (W) = {
123+ let K = size(W)
124+ if ((K > 0))
135125 then {
136- let ab = parseIntValue(take(Z, 2))
137- let ac = take(drop(Z, 2), ab)
138- let ad = drop(Z, (ab + 2))
139- let ae = Y(ad)
140-[ac, ae]
126+ let Y = parseIntValue(take(W, 2))
127+ let Z = take(drop(W, 2), Y)
128+ let aa = drop(W, (Y + 2))
129+ let ab = V(aa)
130+[Z, ab]
141131 }
142132 else throw("Empty string was passed into parseNextAttribute func")
143133 }
144134
145135
146-func af (ag) = {
147- let P = aa(ag)
148- let ah = aa(P[1])
149- let R = aa(ah[1])
150- let ai = aa(R[1])
151- let aj = aa(ai[1])
152- let I = aa(aj[1])
153-[P[0], ah[0], R[0], ai[0], aj[0], I[0]]
136+func ac (ad) = {
137+ let M = X(ad)
138+ let ae = X(M[1])
139+ let O = X(ae[1])
140+ let af = X(O[1])
141+ let ag = X(af[1])
142+ let F = X(ag[1])
143+[M[0], ae[0], O[0], af[0], ag[0], F[0]]
154144 }
155145
156146
157-func ak (al) = {
158- let am = {
159- let A = getString(this, al)
160- if ($isInstanceOf(A, "String"))
147+func ah (ai) = {
148+ let aj = {
149+ let x = getString(this, ai)
150+ if ($isInstanceOf(x, "String"))
161151 then {
162- let an = A
163- an
152+ let ak = x
153+ ak
164154 }
165- else throw(("Couldn't find game by " + al))
155+ else throw(("Couldn't find game by " + ai))
166156 }
167- af(am)
157+ ac(aj)
168158 }
169159
170160
171-func ao (M) = if ((M.assetId == assetInfo(base58'WAVES')))
161+func al (J) = if ((J.assetId == assetInfo(base58'WAVES')))
172162 then "WAVES"
173163 else "WBET"
174164
175165
176-func ap (aq) = if ((aq == "RED"))
166+func am (K) = if ((K == "WAVES"))
167+ then unit
168+ else d
169+
170+
171+func an (ao) = if ((ao == "RED"))
177172 then "BLUE"
178173 else "RED"
179174
180175
181-@Callable(ar)
182-func playCoin (as) = {
183- let al = toBase58String(ar.transactionId)
184- let at = extract(ar.payment)
185- let au = isDefined(ar.feeAssetId)
186- let av = isDefined(getString(this, al))
187- let I = C(as, at.amount)
188- if (if ((at.assetId != assetInfo(base58'WAVES')))
189- then (at.assetId != d)
176+@Callable(ap)
177+func playCoin (aq) = {
178+ let ai = toBase58String(ap.transactionId)
179+ let ar = extract(ap.payment)
180+ let as = isDefined(ap.feeAssetId)
181+ let at = isDefined(getString(this, ai))
182+ let F = z(aq, ar.amount)
183+ if (if ((ar.assetId != assetInfo(base58'WAVES')))
184+ then (ar.assetId != d)
190185 else false)
191186 then throw("Payment should be in Wavesbet or Waves")
192- else if (au)
187+ else if (as)
193188 then throw("Transaction's fee must be in Waves. Game aborted.")
194- else if (av)
189+ else if (at)
195190 then throw("Passed gameId had been used before. Game aborted.")
196191 else {
197- let aw = y()
198- let R = toBase58String(ar.callerPublicKey)
199- let S = ao(at)
200- let ax = O(g, as, R, S, at.amount, I, "", "", "")
201- ScriptResult(WriteSet([DataEntry(c, H(I)), DataEntry(b, aw), DataEntry(al, ax)]), TransferSet([ScriptTransfer(e, ((at.amount * l) / 100), d), ScriptTransfer(this, 500000, unit)]))
192+ let au = v()
193+ let O = toBase58String(ap.callerPublicKey)
194+ let P = al(ar)
195+ let av = L(g, aq, O, P, ar.amount, F, "", "", "")
196+ ScriptResult(WriteSet([DataEntry(c, E(F)), DataEntry(b, au), DataEntry(ai, av)]), TransferSet([ScriptTransfer(e, ((ar.amount * k) / 100), d), ScriptTransfer(this, 500000, unit)]))
202197 }
203198 }
204199
205200
206201
207-@Callable(ar)
208-func acceptChallenge (al) = {
209- let at = extract(ar.payment)
210- let au = isDefined(ar.feeAssetId)
211- let ay = ao(at)
212- let az = ak(al)
213- let P = az[p]
214- let aA = az[s]
215- let aB = parseIntValue(az[t])
216- if (if ((at.assetId != assetInfo(base58'WAVES')))
217- then (at.assetId != d)
202+@Callable(ap)
203+func acceptChallenge (ai) = {
204+ let ar = extract(ap.payment)
205+ let as = isDefined(ap.feeAssetId)
206+ let aw = al(ar)
207+ let ax = ah(ai)
208+ let M = ax[m]
209+ let ay = ax[p]
210+ let az = parseIntValue(ax[q])
211+ if (if ((ar.assetId != assetInfo(base58'WAVES')))
212+ then (ar.assetId != d)
218213 else false)
219214 then throw("Payment should be in Wavesbet or Waves")
220- else if (au)
215+ else if (as)
221216 then throw("Transaction's fee must be in Waves. Game aborted.")
222- else if ((ay != aA))
217+ else if ((aw != ay))
223218 then throw("Payment must be made in the same currency token as the bet, WBET/WBET or WAVES/WAVES.")
224- else if ((at.amount == aB))
219+ else if ((ar.amount == az))
225220 then throw("Payout must be equal to the bet amount.")
226- else if ((P != g))
221+ else if ((M != g))
227222 then throw("Invalid game state for passed gameId")
228223 else {
229- let as = az[q]
230- let aC = az[r]
231- let I = parseIntValue(az[u])
232- let aD = ap(as)
233- let aE = toBase58String(ar.callerPublicKey)
234- let aF = O(h, as, aC, aA, aB, I, aD, aE, "")
235- ScriptResult(WriteSet([DataEntry(al, aF)]), TransferSet([ScriptTransfer(e, ((at.amount * l) / 100), d), ScriptTransfer(this, 500000, unit)]))
224+ let aq = ax[n]
225+ let aA = ax[o]
226+ let F = parseIntValue(ax[r])
227+ let aB = an(aq)
228+ let aC = toBase58String(ap.callerPublicKey)
229+ let aD = L(h, aq, aA, ay, az, F, aB, aC, "")
230+ ScriptResult(WriteSet([DataEntry(ai, aD)]), TransferSet([ScriptTransfer(e, ((ar.amount * k) / 100), d), ScriptTransfer(this, 500000, unit)]))
236231 }
232+ }
233+
234+
235+
236+@Callable(ap)
237+func cancelChallenge (ai) = {
238+ let as = isDefined(ap.feeAssetId)
239+ let ax = ah(ai)
240+ let M = ax[m]
241+ if (as)
242+ then throw("Transaction's fee must be in Waves. Game aborted.")
243+ else if ((M != g))
244+ then throw("Invalid game state for passed gameId")
245+ else {
246+ let aq = ax[n]
247+ let aA = ax[o]
248+ let F = parseIntValue(ax[r])
249+ let ay = ax[p]
250+ let az = parseIntValue(ax[q])
251+ let aD = L(j, aq, aA, ay, az, F, "", "", "")
252+ let aE = (az - ((az * k) / 100))
253+ let aF = addressFromPublicKey(toBytes(aA))
254+ let aG = am(ay)
255+ ScriptResult(WriteSet([DataEntry(ai, aD)]), TransferSet([ScriptTransfer(aF, aE, aG)]))
256+ }
237257 }
238258
239259
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmOlRBTYEO3H7Y9rBmoFQFn4392Px0Qw13DsdEhnzMH2cj6Y5ymPuCOLMNe5qrUzQl8oRLzIBzFVMZlwUYl2bosrOIxQbYF7WVQWvoVxET1YIgDm3NzzOLA5uH7CKO0snshmMFCDOZEew41GjKh3Pgx+nbAguP9ZQPfqSafEmC3CN/4yDsJrKriRniZJo9jS/4LLsRKwB7HAZHzoF9LL7tSZH3htaNGtbdTkxZ1TzST3Mb2VPSzsZvQDocXUVOmJOu0o29aOY+GkG/G4RCK0FBWQHEUvC51TRDS5k8jad0O1MobjQc6b18d+fuoVFdNfZwGH+uFudtPG3UJTf2mkzZQIDAQAB")
55
66 let b = "$GAME_NUM"
77
88 let c = "$RESERVED_AMOUNT"
99
1010 let d = base58'23vgV9p9pD83A7CFbsDEc4zjanep7UeFo4ZRS6oGorhv'
1111
1212 let e = Address(base58'3N2tusqAtDctK8iSTXS6F9rimmftmSuwLUX')
1313
1414 let f = Address(base58'')
1515
1616 let g = "SUBMITTED"
1717
1818 let h = "WAITING"
1919
2020 let i = "FINISHED"
2121
2222 let j = "CANCELED"
2323
24-let k = 1
24+let k = 4
2525
26-let l = 4
26+let l = 2
2727
28-let m = 2
28+let m = 0
2929
30-let n = (1 * k)
30+let n = 1
3131
32-let o = ((1000 * 100) * k)
32+let o = 2
3333
34-let p = 0
34+let p = 3
3535
36-let q = 1
36+let q = 4
3737
38-let r = 2
38+let r = 5
3939
40-let s = 3
40+let s = 6
4141
42-let t = 4
42+let t = 7
4343
44-let u = 5
44+let u = 8
4545
46-let v = 6
47-
48-let w = 7
49-
50-let x = 8
51-
52-func y () = {
53- let z = {
54- let A = getInteger(this, b)
55- if ($isInstanceOf(A, "Int"))
46+func v () = {
47+ let w = {
48+ let x = getInteger(this, b)
49+ if ($isInstanceOf(x, "Int"))
5650 then {
57- let B = A
58- B
51+ let y = x
52+ y
5953 }
6054 else 0
6155 }
62- (z + 1)
56+ (w + 1)
6357 }
6458
6559
66-func C (D,E) = if (if ((D != "RED"))
67- then (D != "BLUE")
60+func z (A,B) = if (if ((A != "RED"))
61+ then (A != "BLUE")
6862 else false)
6963 then throw("Invalid play, change your play to RED or BLUE.")
70- else if (if ((n > E))
71- then true
72- else (E > o))
73- then throw(((("Bet amount is not in range: minBet=" + toString((n / 100000000))) + " maxBet=") + toString((o / 100000000))))
74- else ((((E * 2) / 100000) * (100 - (l + m))) / 100)
64+ else ((((B * 2) / 100000) * (100 - (k + l))) / 100)
7565
7666
77-func F () = {
78- let A = getInteger(this, c)
79- if ($isInstanceOf(A, "Int"))
67+func C () = {
68+ let x = getInteger(this, c)
69+ if ($isInstanceOf(x, "Int"))
8070 then {
81- let G = A
82- G
71+ let D = x
72+ D
8373 }
8474 else 0
8575 }
8676
8777
88-func H (I) = {
89- let J = (F() + I)
90- let K = wavesBalance(this)
91- if ((J > K))
78+func E (F) = {
79+ let G = (C() + F)
80+ let H = wavesBalance(this)
81+ if ((G > H))
9282 then throw("Insufficient funds on Waves Rider account. Transaction was rejected for your safety.")
93- else J
83+ else G
9484 }
9585
9686
97-func L (M) = {
98- let N = size(M)
99- if ((N == 0))
87+func I (J) = {
88+ let K = size(J)
89+ if ((K == 0))
10090 then throw("Parameter size must be greater then 0.")
101- else if ((N > 99))
91+ else if ((K > 99))
10292 then throw("Parameter size must be less then 100.")
103- else if ((10 > N))
104- then (("0" + toString(N)) + M)
105- else (toString(N) + M)
93+ else if ((10 > K))
94+ then (("0" + toString(K)) + J)
95+ else (toString(K) + J)
10696 }
10797
10898
109-func O (P,Q,R,S,T,I,U,V,W) = {
110- let X = ((((((((((L(P) + "_") + L(Q)) + "_") + L(R)) + "_") + L(S)) + "_") + L(toString(T))) + "_") + L(toString(I)))
111- if (if (if ((U == ""))
112- then (V == "")
99+func L (M,N,O,P,Q,F,R,S,T) = {
100+ let U = ((((((((((I(M) + "_") + I(N)) + "_") + I(O)) + "_") + I(P)) + "_") + I(toString(Q))) + "_") + I(toString(F)))
101+ if (if (if ((R == ""))
102+ then (S == "")
113103 else false)
114- then (W == "")
104+ then (T == "")
115105 else false)
116- then X
117- else if (if (if ((U != ""))
118- then (V != "")
106+ then U
107+ else if (if (if ((R != ""))
108+ then (S != "")
119109 else false)
120- then (W == "")
110+ then (T == "")
121111 else false)
122- then (((X + "_") + (L(U) + "_")) + (L(V) + "_"))
123- else ((((X + "_") + (L(U) + "_")) + (L(V) + "_")) + L(W))
112+ then (((U + "_") + (I(R) + "_")) + (I(S) + "_"))
113+ else ((((U + "_") + (I(R) + "_")) + (I(S) + "_")) + I(T))
124114 }
125115
126116
127-func Y (Z) = if ((size(Z) > 0))
128- then drop(Z, 1)
129- else Z
117+func V (W) = if ((size(W) > 0))
118+ then drop(W, 1)
119+ else W
130120
131121
132-func aa (Z) = {
133- let N = size(Z)
134- if ((N > 0))
122+func X (W) = {
123+ let K = size(W)
124+ if ((K > 0))
135125 then {
136- let ab = parseIntValue(take(Z, 2))
137- let ac = take(drop(Z, 2), ab)
138- let ad = drop(Z, (ab + 2))
139- let ae = Y(ad)
140-[ac, ae]
126+ let Y = parseIntValue(take(W, 2))
127+ let Z = take(drop(W, 2), Y)
128+ let aa = drop(W, (Y + 2))
129+ let ab = V(aa)
130+[Z, ab]
141131 }
142132 else throw("Empty string was passed into parseNextAttribute func")
143133 }
144134
145135
146-func af (ag) = {
147- let P = aa(ag)
148- let ah = aa(P[1])
149- let R = aa(ah[1])
150- let ai = aa(R[1])
151- let aj = aa(ai[1])
152- let I = aa(aj[1])
153-[P[0], ah[0], R[0], ai[0], aj[0], I[0]]
136+func ac (ad) = {
137+ let M = X(ad)
138+ let ae = X(M[1])
139+ let O = X(ae[1])
140+ let af = X(O[1])
141+ let ag = X(af[1])
142+ let F = X(ag[1])
143+[M[0], ae[0], O[0], af[0], ag[0], F[0]]
154144 }
155145
156146
157-func ak (al) = {
158- let am = {
159- let A = getString(this, al)
160- if ($isInstanceOf(A, "String"))
147+func ah (ai) = {
148+ let aj = {
149+ let x = getString(this, ai)
150+ if ($isInstanceOf(x, "String"))
161151 then {
162- let an = A
163- an
152+ let ak = x
153+ ak
164154 }
165- else throw(("Couldn't find game by " + al))
155+ else throw(("Couldn't find game by " + ai))
166156 }
167- af(am)
157+ ac(aj)
168158 }
169159
170160
171-func ao (M) = if ((M.assetId == assetInfo(base58'WAVES')))
161+func al (J) = if ((J.assetId == assetInfo(base58'WAVES')))
172162 then "WAVES"
173163 else "WBET"
174164
175165
176-func ap (aq) = if ((aq == "RED"))
166+func am (K) = if ((K == "WAVES"))
167+ then unit
168+ else d
169+
170+
171+func an (ao) = if ((ao == "RED"))
177172 then "BLUE"
178173 else "RED"
179174
180175
181-@Callable(ar)
182-func playCoin (as) = {
183- let al = toBase58String(ar.transactionId)
184- let at = extract(ar.payment)
185- let au = isDefined(ar.feeAssetId)
186- let av = isDefined(getString(this, al))
187- let I = C(as, at.amount)
188- if (if ((at.assetId != assetInfo(base58'WAVES')))
189- then (at.assetId != d)
176+@Callable(ap)
177+func playCoin (aq) = {
178+ let ai = toBase58String(ap.transactionId)
179+ let ar = extract(ap.payment)
180+ let as = isDefined(ap.feeAssetId)
181+ let at = isDefined(getString(this, ai))
182+ let F = z(aq, ar.amount)
183+ if (if ((ar.assetId != assetInfo(base58'WAVES')))
184+ then (ar.assetId != d)
190185 else false)
191186 then throw("Payment should be in Wavesbet or Waves")
192- else if (au)
187+ else if (as)
193188 then throw("Transaction's fee must be in Waves. Game aborted.")
194- else if (av)
189+ else if (at)
195190 then throw("Passed gameId had been used before. Game aborted.")
196191 else {
197- let aw = y()
198- let R = toBase58String(ar.callerPublicKey)
199- let S = ao(at)
200- let ax = O(g, as, R, S, at.amount, I, "", "", "")
201- ScriptResult(WriteSet([DataEntry(c, H(I)), DataEntry(b, aw), DataEntry(al, ax)]), TransferSet([ScriptTransfer(e, ((at.amount * l) / 100), d), ScriptTransfer(this, 500000, unit)]))
192+ let au = v()
193+ let O = toBase58String(ap.callerPublicKey)
194+ let P = al(ar)
195+ let av = L(g, aq, O, P, ar.amount, F, "", "", "")
196+ ScriptResult(WriteSet([DataEntry(c, E(F)), DataEntry(b, au), DataEntry(ai, av)]), TransferSet([ScriptTransfer(e, ((ar.amount * k) / 100), d), ScriptTransfer(this, 500000, unit)]))
202197 }
203198 }
204199
205200
206201
207-@Callable(ar)
208-func acceptChallenge (al) = {
209- let at = extract(ar.payment)
210- let au = isDefined(ar.feeAssetId)
211- let ay = ao(at)
212- let az = ak(al)
213- let P = az[p]
214- let aA = az[s]
215- let aB = parseIntValue(az[t])
216- if (if ((at.assetId != assetInfo(base58'WAVES')))
217- then (at.assetId != d)
202+@Callable(ap)
203+func acceptChallenge (ai) = {
204+ let ar = extract(ap.payment)
205+ let as = isDefined(ap.feeAssetId)
206+ let aw = al(ar)
207+ let ax = ah(ai)
208+ let M = ax[m]
209+ let ay = ax[p]
210+ let az = parseIntValue(ax[q])
211+ if (if ((ar.assetId != assetInfo(base58'WAVES')))
212+ then (ar.assetId != d)
218213 else false)
219214 then throw("Payment should be in Wavesbet or Waves")
220- else if (au)
215+ else if (as)
221216 then throw("Transaction's fee must be in Waves. Game aborted.")
222- else if ((ay != aA))
217+ else if ((aw != ay))
223218 then throw("Payment must be made in the same currency token as the bet, WBET/WBET or WAVES/WAVES.")
224- else if ((at.amount == aB))
219+ else if ((ar.amount == az))
225220 then throw("Payout must be equal to the bet amount.")
226- else if ((P != g))
221+ else if ((M != g))
227222 then throw("Invalid game state for passed gameId")
228223 else {
229- let as = az[q]
230- let aC = az[r]
231- let I = parseIntValue(az[u])
232- let aD = ap(as)
233- let aE = toBase58String(ar.callerPublicKey)
234- let aF = O(h, as, aC, aA, aB, I, aD, aE, "")
235- ScriptResult(WriteSet([DataEntry(al, aF)]), TransferSet([ScriptTransfer(e, ((at.amount * l) / 100), d), ScriptTransfer(this, 500000, unit)]))
224+ let aq = ax[n]
225+ let aA = ax[o]
226+ let F = parseIntValue(ax[r])
227+ let aB = an(aq)
228+ let aC = toBase58String(ap.callerPublicKey)
229+ let aD = L(h, aq, aA, ay, az, F, aB, aC, "")
230+ ScriptResult(WriteSet([DataEntry(ai, aD)]), TransferSet([ScriptTransfer(e, ((ar.amount * k) / 100), d), ScriptTransfer(this, 500000, unit)]))
236231 }
232+ }
233+
234+
235+
236+@Callable(ap)
237+func cancelChallenge (ai) = {
238+ let as = isDefined(ap.feeAssetId)
239+ let ax = ah(ai)
240+ let M = ax[m]
241+ if (as)
242+ then throw("Transaction's fee must be in Waves. Game aborted.")
243+ else if ((M != g))
244+ then throw("Invalid game state for passed gameId")
245+ else {
246+ let aq = ax[n]
247+ let aA = ax[o]
248+ let F = parseIntValue(ax[r])
249+ let ay = ax[p]
250+ let az = parseIntValue(ax[q])
251+ let aD = L(j, aq, aA, ay, az, F, "", "", "")
252+ let aE = (az - ((az * k) / 100))
253+ let aF = addressFromPublicKey(toBytes(aA))
254+ let aG = am(ay)
255+ ScriptResult(WriteSet([DataEntry(ai, aD)]), TransferSet([ScriptTransfer(aF, aE, aG)]))
256+ }
237257 }
238258
239259

github/deemru/w8io/169f3d6 
124.60 ms