tx · 6uTDkUhMpVeGZbgZARoroVirW27CTgRyCZC8wUztKXCm

3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV:  -0.01000000 Waves

2021.12.09 12:59 [1826557] smart account 3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV > SELF 0.00000000 Waves

{ "type": 13, "id": "6uTDkUhMpVeGZbgZARoroVirW27CTgRyCZC8wUztKXCm", "fee": 1000000, "feeAssetId": null, "timestamp": 1639044037486, "version": 2, "chainId": 84, "sender": "3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV", "senderPublicKey": "5amLtMwixiEesBDKPy9dkFWntG2fNxhTs5n69JbQE9F7", "proofs": [ "X9ZTjG5YeQc7UiVpeeaS1CAaej2C5xzXNpYMWzyL8NLbnfdinW4Fy12SSHKRjHttoK8EkpbrK4j4MfQteb3NSCe" ], "script": "base64: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", "height": 1826557, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EaWJayQ2T8nPBHeSnC662Upk2oHrQ8uV61TZEhzrKzLi Next: q26eQdQfCNjZx9ckbaxApUEgaXk2yVSqBomsxx8FrGN Diff:
OldNewDifferences
1515
1616 @Callable(b)
1717 func move (c,d,e,f,g) = {
18- let h = split(getStringValue(("game-" + c)), a)
18+ let h = {
19+ let i = getString(("game-" + c))
20+ if ($isInstanceOf(i, "String"))
21+ then {
22+ let j = i
23+ split(getStringValue(("game-" + c)), a)
24+ }
25+ else throw("no game")
26+ }
1927 if ((h == h))
2028 then {
21- let i = toBase58String(b.caller.bytes)
22- if ((i == i))
29+ let k = toBase58String(b.caller.bytes)
30+ if ((k == k))
2331 then {
24- let j = if ((h[0] == "ongoing"))
32+ let l = if ((h[0] == "ongoing"))
2533 then true
2634 else throw("not ongoing game")
27- if ((j == j))
35+ if ((l == l))
2836 then {
29- let k = if (if (j)
30- then if ((h[1] == i))
37+ let m = if (if (l)
38+ then if ((h[1] == k))
3139 then true
32- else (h[2] == i)
40+ else (h[2] == k)
3341 else false)
34- then if ((h[1] == i))
42+ then if ((h[1] == k))
3543 then "w"
3644 else "b"
3745 else throw("not gamer")
38- if ((k == k))
46+ if ((m == m))
3947 then {
40- let l = if ((k == "w"))
48+ let n = if ((m == "w"))
4149 then "b"
4250 else "w"
43- let m = if ((k == h[5]))
51+ let o = if ((m == h[5]))
4452 then true
4553 else throw("not your turn")
46- if ((m == m))
54+ if ((o == o))
4755 then {
48- let n = split(h[8], "!")
49- let o = [split(n[0], "-"), split(n[1], "-"), split(n[2], "-"), split(n[3], "-"), split(n[4], "-"), split(n[5], "-"), split(n[6], "-"), split(n[7], "-")]
50- if ((o == o))
56+ let p = split(h[8], "!")
57+ let q = [split(p[0], "-"), split(p[1], "-"), split(p[2], "-"), split(p[3], "-"), split(p[4], "-"), split(p[5], "-"), split(p[6], "-"), split(p[7], "-")]
58+ if ((q == q))
5159 then {
52- let p = takeRight(o[e][d], 1)
53- let q = if ((take(o[g][f], 1) == "0"))
60+ let r = takeRight(q[e][d], 1)
61+ let s = if ((take(q[g][f], 1) == "0"))
5462 then "m"
55- else if ((take(o[g][f], 1) == l))
63+ else if ((take(q[g][f], 1) == n))
5664 then "e"
5765 else throw("can not eat himself")
58- let r = ((toString((d - f)) + ",") + toString((e - g)))
59- let s = split(getStringValue((((q + k) + p) + "+")), "|")
60- let t = split(getStringValue((((q + k) + p) + "-")), "|")
61- let u = if (containsElement(s, r))
66+ let t = ((toString((d - f)) + ",") + toString((e - g)))
67+ let u = split(getStringValue((((s + m) + r) + "+")), "|")
68+ let v = split(getStringValue((((s + m) + r) + "-")), "|")
69+ let w = if (containsElement(u, t))
6270 then true
63- else throw(((((("incorrect movement+: fig=" + p) + " side=") + k) + " mtype=") + q))
64- let v = if (containsElement(t, r))
65- then throw(((((("incorrect movement-: fig=" + p) + " side=") + k) + " mtype=") + q))
71+ else throw(((((("incorrect movement+: fig=" + r) + " side=") + m) + " mtype=") + s))
72+ let x = if (containsElement(v, t))
73+ then throw(((((("incorrect movement-: fig=" + r) + " side=") + m) + " mtype=") + s))
6674 else true
67- if (v)
75+ if (x)
6876 then {
69- let w = h[8]
70- let x = ((take(w, ((d * 3) + ((e * 8) * 3))) + "00") + takeRight(w, ((191 - ((d * 3) + ((e * 8) * 3))) - 2)))
71- let y = (((take(x, ((f * 3) + ((g * 8) * 3))) + k) + p) + takeRight(x, ((191 - ((f * 3) + ((g * 8) * 3))) - 2)))
72- $Tuple2([StringEntry(("game-" + c), makeString([h[0], h[1], h[2], h[3], toString((parseIntValue(h[4]) + 1)), l, h[6], h[7], y], a))], [StringEntry("_", "possible")])
77+ let y = h[8]
78+ let z = ((take(y, ((d * 3) + ((e * 8) * 3))) + "00") + takeRight(y, ((191 - ((d * 3) + ((e * 8) * 3))) - 2)))
79+ let A = (((take(z, ((f * 3) + ((g * 8) * 3))) + m) + r) + takeRight(z, ((191 - ((f * 3) + ((g * 8) * 3))) - 2)))
80+ $Tuple2([StringEntry(("game-" + c), makeString([h[0], h[1], h[2], h[3], toString((parseIntValue(h[4]) + 1)), n, h[6], h[7], A], a))], [StringEntry("_", "possible")])
7381 }
74- else throw(((((("impossible movement: fig=" + p) + " side=") + k) + " mtype=") + q))
82+ else throw(((((("impossible movement: fig=" + r) + " side=") + m) + " mtype=") + s))
7583 }
7684 else throw("Strict value is not equal to itself.")
7785 }
8997
9098
9199 @Callable(b)
92-func startgame (z) = {
93- let A = if ((size(b.payments) == 1))
100+func startgame (B) = {
101+ let C = if ((size(b.payments) == 1))
94102 then b.payments[0]
95103 else throw("must stake some waves")
96- if (isDefined(A.assetId))
104+ if (isDefined(C.assetId))
97105 then throw("works with waves only")
98106 else {
99- let i = toBase58String(b.caller.bytes)
100- let B = split(getStringValue(("challenge-" + z)), a)
101- if ((size(B) > 0))
102- then if ((A.amount >= parseIntValue(B[3])))
103- then if ((B[0] == "awaiting"))
107+ let k = toBase58String(b.caller.bytes)
108+ let D = split(getStringValue(("challenge-" + B)), a)
109+ if ((size(D) > 0))
110+ then if ((C.amount >= parseIntValue(D[3])))
111+ then if ((D[0] == "awaiting"))
104112 then {
105- let C = if ((B[2] == "b"))
106- then B[1]
107- else i
108- let D = if ((B[2] == "w"))
109- then B[1]
110- else i
113+ let E = if ((D[2] == "b"))
114+ then D[1]
115+ else k
116+ let F = if ((D[2] == "w"))
117+ then D[1]
118+ else k
111119 let c = toString((parseIntValue(getStringValue("lastgameid")) + 1))
112-[StringEntry(("challenge-" + z), makeString([c, B[1], B[2], B[3], i], a)), {
113- let n = "wf-00-wf-00-wf-00-wf-00!00-wf-00-wf-00-wf-00-wf!wf-00-wf-00-wf-00-wf-00!00-00-00-00-00-00-00-00!00-00-00-00-00-00-00-00!00-bf-00-bf-00-bf-00-bf!bf-00-bf-00-bf-00-bf-00!00-bf-00-bf-00-bf-00-bf"
114- StringEntry(("game-" + c), makeString(["ongoing", D, C, B[3], "0", "w", "startblock", "laststepblock", n], a))
115- }, StringEntry("lastgameid", c), ScriptTransfer(b.caller, (A.amount - parseIntValue(B[3])), unit)]
120+[StringEntry(("challenge-" + B), makeString([c, D[1], D[2], D[3], k], a)), {
121+ let p = "wf-00-wf-00-wf-00-wf-00!00-wf-00-wf-00-wf-00-wf!wf-00-wf-00-wf-00-wf-00!00-00-00-00-00-00-00-00!00-00-00-00-00-00-00-00!00-bf-00-bf-00-bf-00-bf!bf-00-bf-00-bf-00-bf-00!00-bf-00-bf-00-bf-00-bf"
122+ StringEntry(("game-" + c), makeString(["ongoing", F, E, D[3], "0", "w", "startblock", "laststepblock", p], a))
123+ }, StringEntry("lastgameid", c), ScriptTransfer(b.caller, (C.amount - parseIntValue(D[3])), unit)]
116124 }
117125 else throw("no challenge awaiting")
118126 else throw("need more money")
123131
124132
125133 @Callable(b)
126-func setchallenge (k) = if (if ((k == "b"))
134+func setchallenge (m) = if (if ((m == "b"))
127135 then true
128- else (k == "w"))
136+ else (m == "w"))
129137 then {
130- let A = if ((size(b.payments) == 1))
138+ let C = if ((size(b.payments) == 1))
131139 then b.payments[0]
132140 else throw("must stake some waves")
133- if (isDefined(A.assetId))
141+ if (isDefined(C.assetId))
134142 then throw("works with waves only")
135143 else {
136- let i = toBase58String(b.caller.bytes)
137- let z = toString((parseIntValue(getStringValue("lastchallengeid")) + 1))
138-[StringEntry(("challenge-" + z), makeString(["awaiting", i, k, toString(A.amount)], a)), StringEntry("lastchallengeid", z)]
144+ let k = toBase58String(b.caller.bytes)
145+ let B = toString((parseIntValue(getStringValue("lastchallengeid")) + 1))
146+[StringEntry(("challenge-" + B), makeString(["awaiting", k, m, toString(C.amount)], a)), StringEntry("lastchallengeid", B)]
139147 }
140148 }
141149 else throw("invalid side")
143151
144152
145153 @Callable(b)
146-func unsetchallenge (E) = {
147- let i = toBase58String(b.caller.bytes)
148- func F (E) = {
149- let G = getString(("challenge-" + E))
150- if ($isInstanceOf(G, "String"))
154+func unsetchallenge (G) = {
155+ let k = toBase58String(b.caller.bytes)
156+ func H (G) = {
157+ let i = getString(("challenge-" + G))
158+ if ($isInstanceOf(i, "String"))
151159 then {
152- let H = G
153- getStringValue(("challenge-" + E))
160+ let j = i
161+ getStringValue(("challenge-" + G))
154162 }
155163 else ""
156164 }
157165
158- let I = split(F(E), a)
166+ let I = split(H(G), a)
159167 if ((size(I) > 0))
160168 then if ((I[0] == "awaiting"))
161- then [StringEntry(("challenge-" + E), makeString(["unset", I[1], I[2], I[3]], a))]
169+ then [StringEntry(("challenge-" + G), makeString(["unset", I[1], I[2], I[3]], a))]
162170 else throw("challenge not exists")
163171 else throw("challenge not exists")
164172 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "|"
55
66 @Callable(b)
77 func reset () = [StringEntry("lastgameid", "0"), StringEntry("lastchallengeid", "0")]
88
99
1010
1111 @Callable(b)
1212 func setrules () = [StringEntry("mbf+", "-1,1|1,1"), StringEntry("mbf-", ""), StringEntry("mwf+", "-1,-1|1,-1"), StringEntry("mwf-", "")]
1313
1414
1515
1616 @Callable(b)
1717 func move (c,d,e,f,g) = {
18- let h = split(getStringValue(("game-" + c)), a)
18+ let h = {
19+ let i = getString(("game-" + c))
20+ if ($isInstanceOf(i, "String"))
21+ then {
22+ let j = i
23+ split(getStringValue(("game-" + c)), a)
24+ }
25+ else throw("no game")
26+ }
1927 if ((h == h))
2028 then {
21- let i = toBase58String(b.caller.bytes)
22- if ((i == i))
29+ let k = toBase58String(b.caller.bytes)
30+ if ((k == k))
2331 then {
24- let j = if ((h[0] == "ongoing"))
32+ let l = if ((h[0] == "ongoing"))
2533 then true
2634 else throw("not ongoing game")
27- if ((j == j))
35+ if ((l == l))
2836 then {
29- let k = if (if (j)
30- then if ((h[1] == i))
37+ let m = if (if (l)
38+ then if ((h[1] == k))
3139 then true
32- else (h[2] == i)
40+ else (h[2] == k)
3341 else false)
34- then if ((h[1] == i))
42+ then if ((h[1] == k))
3543 then "w"
3644 else "b"
3745 else throw("not gamer")
38- if ((k == k))
46+ if ((m == m))
3947 then {
40- let l = if ((k == "w"))
48+ let n = if ((m == "w"))
4149 then "b"
4250 else "w"
43- let m = if ((k == h[5]))
51+ let o = if ((m == h[5]))
4452 then true
4553 else throw("not your turn")
46- if ((m == m))
54+ if ((o == o))
4755 then {
48- let n = split(h[8], "!")
49- let o = [split(n[0], "-"), split(n[1], "-"), split(n[2], "-"), split(n[3], "-"), split(n[4], "-"), split(n[5], "-"), split(n[6], "-"), split(n[7], "-")]
50- if ((o == o))
56+ let p = split(h[8], "!")
57+ let q = [split(p[0], "-"), split(p[1], "-"), split(p[2], "-"), split(p[3], "-"), split(p[4], "-"), split(p[5], "-"), split(p[6], "-"), split(p[7], "-")]
58+ if ((q == q))
5159 then {
52- let p = takeRight(o[e][d], 1)
53- let q = if ((take(o[g][f], 1) == "0"))
60+ let r = takeRight(q[e][d], 1)
61+ let s = if ((take(q[g][f], 1) == "0"))
5462 then "m"
55- else if ((take(o[g][f], 1) == l))
63+ else if ((take(q[g][f], 1) == n))
5664 then "e"
5765 else throw("can not eat himself")
58- let r = ((toString((d - f)) + ",") + toString((e - g)))
59- let s = split(getStringValue((((q + k) + p) + "+")), "|")
60- let t = split(getStringValue((((q + k) + p) + "-")), "|")
61- let u = if (containsElement(s, r))
66+ let t = ((toString((d - f)) + ",") + toString((e - g)))
67+ let u = split(getStringValue((((s + m) + r) + "+")), "|")
68+ let v = split(getStringValue((((s + m) + r) + "-")), "|")
69+ let w = if (containsElement(u, t))
6270 then true
63- else throw(((((("incorrect movement+: fig=" + p) + " side=") + k) + " mtype=") + q))
64- let v = if (containsElement(t, r))
65- then throw(((((("incorrect movement-: fig=" + p) + " side=") + k) + " mtype=") + q))
71+ else throw(((((("incorrect movement+: fig=" + r) + " side=") + m) + " mtype=") + s))
72+ let x = if (containsElement(v, t))
73+ then throw(((((("incorrect movement-: fig=" + r) + " side=") + m) + " mtype=") + s))
6674 else true
67- if (v)
75+ if (x)
6876 then {
69- let w = h[8]
70- let x = ((take(w, ((d * 3) + ((e * 8) * 3))) + "00") + takeRight(w, ((191 - ((d * 3) + ((e * 8) * 3))) - 2)))
71- let y = (((take(x, ((f * 3) + ((g * 8) * 3))) + k) + p) + takeRight(x, ((191 - ((f * 3) + ((g * 8) * 3))) - 2)))
72- $Tuple2([StringEntry(("game-" + c), makeString([h[0], h[1], h[2], h[3], toString((parseIntValue(h[4]) + 1)), l, h[6], h[7], y], a))], [StringEntry("_", "possible")])
77+ let y = h[8]
78+ let z = ((take(y, ((d * 3) + ((e * 8) * 3))) + "00") + takeRight(y, ((191 - ((d * 3) + ((e * 8) * 3))) - 2)))
79+ let A = (((take(z, ((f * 3) + ((g * 8) * 3))) + m) + r) + takeRight(z, ((191 - ((f * 3) + ((g * 8) * 3))) - 2)))
80+ $Tuple2([StringEntry(("game-" + c), makeString([h[0], h[1], h[2], h[3], toString((parseIntValue(h[4]) + 1)), n, h[6], h[7], A], a))], [StringEntry("_", "possible")])
7381 }
74- else throw(((((("impossible movement: fig=" + p) + " side=") + k) + " mtype=") + q))
82+ else throw(((((("impossible movement: fig=" + r) + " side=") + m) + " mtype=") + s))
7583 }
7684 else throw("Strict value is not equal to itself.")
7785 }
7886 else throw("Strict value is not equal to itself.")
7987 }
8088 else throw("Strict value is not equal to itself.")
8189 }
8290 else throw("Strict value is not equal to itself.")
8391 }
8492 else throw("Strict value is not equal to itself.")
8593 }
8694 else throw("Strict value is not equal to itself.")
8795 }
8896
8997
9098
9199 @Callable(b)
92-func startgame (z) = {
93- let A = if ((size(b.payments) == 1))
100+func startgame (B) = {
101+ let C = if ((size(b.payments) == 1))
94102 then b.payments[0]
95103 else throw("must stake some waves")
96- if (isDefined(A.assetId))
104+ if (isDefined(C.assetId))
97105 then throw("works with waves only")
98106 else {
99- let i = toBase58String(b.caller.bytes)
100- let B = split(getStringValue(("challenge-" + z)), a)
101- if ((size(B) > 0))
102- then if ((A.amount >= parseIntValue(B[3])))
103- then if ((B[0] == "awaiting"))
107+ let k = toBase58String(b.caller.bytes)
108+ let D = split(getStringValue(("challenge-" + B)), a)
109+ if ((size(D) > 0))
110+ then if ((C.amount >= parseIntValue(D[3])))
111+ then if ((D[0] == "awaiting"))
104112 then {
105- let C = if ((B[2] == "b"))
106- then B[1]
107- else i
108- let D = if ((B[2] == "w"))
109- then B[1]
110- else i
113+ let E = if ((D[2] == "b"))
114+ then D[1]
115+ else k
116+ let F = if ((D[2] == "w"))
117+ then D[1]
118+ else k
111119 let c = toString((parseIntValue(getStringValue("lastgameid")) + 1))
112-[StringEntry(("challenge-" + z), makeString([c, B[1], B[2], B[3], i], a)), {
113- let n = "wf-00-wf-00-wf-00-wf-00!00-wf-00-wf-00-wf-00-wf!wf-00-wf-00-wf-00-wf-00!00-00-00-00-00-00-00-00!00-00-00-00-00-00-00-00!00-bf-00-bf-00-bf-00-bf!bf-00-bf-00-bf-00-bf-00!00-bf-00-bf-00-bf-00-bf"
114- StringEntry(("game-" + c), makeString(["ongoing", D, C, B[3], "0", "w", "startblock", "laststepblock", n], a))
115- }, StringEntry("lastgameid", c), ScriptTransfer(b.caller, (A.amount - parseIntValue(B[3])), unit)]
120+[StringEntry(("challenge-" + B), makeString([c, D[1], D[2], D[3], k], a)), {
121+ let p = "wf-00-wf-00-wf-00-wf-00!00-wf-00-wf-00-wf-00-wf!wf-00-wf-00-wf-00-wf-00!00-00-00-00-00-00-00-00!00-00-00-00-00-00-00-00!00-bf-00-bf-00-bf-00-bf!bf-00-bf-00-bf-00-bf-00!00-bf-00-bf-00-bf-00-bf"
122+ StringEntry(("game-" + c), makeString(["ongoing", F, E, D[3], "0", "w", "startblock", "laststepblock", p], a))
123+ }, StringEntry("lastgameid", c), ScriptTransfer(b.caller, (C.amount - parseIntValue(D[3])), unit)]
116124 }
117125 else throw("no challenge awaiting")
118126 else throw("need more money")
119127 else throw("no challenge")
120128 }
121129 }
122130
123131
124132
125133 @Callable(b)
126-func setchallenge (k) = if (if ((k == "b"))
134+func setchallenge (m) = if (if ((m == "b"))
127135 then true
128- else (k == "w"))
136+ else (m == "w"))
129137 then {
130- let A = if ((size(b.payments) == 1))
138+ let C = if ((size(b.payments) == 1))
131139 then b.payments[0]
132140 else throw("must stake some waves")
133- if (isDefined(A.assetId))
141+ if (isDefined(C.assetId))
134142 then throw("works with waves only")
135143 else {
136- let i = toBase58String(b.caller.bytes)
137- let z = toString((parseIntValue(getStringValue("lastchallengeid")) + 1))
138-[StringEntry(("challenge-" + z), makeString(["awaiting", i, k, toString(A.amount)], a)), StringEntry("lastchallengeid", z)]
144+ let k = toBase58String(b.caller.bytes)
145+ let B = toString((parseIntValue(getStringValue("lastchallengeid")) + 1))
146+[StringEntry(("challenge-" + B), makeString(["awaiting", k, m, toString(C.amount)], a)), StringEntry("lastchallengeid", B)]
139147 }
140148 }
141149 else throw("invalid side")
142150
143151
144152
145153 @Callable(b)
146-func unsetchallenge (E) = {
147- let i = toBase58String(b.caller.bytes)
148- func F (E) = {
149- let G = getString(("challenge-" + E))
150- if ($isInstanceOf(G, "String"))
154+func unsetchallenge (G) = {
155+ let k = toBase58String(b.caller.bytes)
156+ func H (G) = {
157+ let i = getString(("challenge-" + G))
158+ if ($isInstanceOf(i, "String"))
151159 then {
152- let H = G
153- getStringValue(("challenge-" + E))
160+ let j = i
161+ getStringValue(("challenge-" + G))
154162 }
155163 else ""
156164 }
157165
158- let I = split(F(E), a)
166+ let I = split(H(G), a)
159167 if ((size(I) > 0))
160168 then if ((I[0] == "awaiting"))
161- then [StringEntry(("challenge-" + E), makeString(["unset", I[1], I[2], I[3]], a))]
169+ then [StringEntry(("challenge-" + G), makeString(["unset", I[1], I[2], I[3]], a))]
162170 else throw("challenge not exists")
163171 else throw("challenge not exists")
164172 }
165173
166174

github/deemru/w8io/169f3d6 
93.33 ms