tx · 2vDjuLkPXLN42PyiEP6ABsfq1C6cw5rrk2GFNUf6gJ6x

3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV:  -0.01000000 Waves

2021.12.08 18:57 [1825483] smart account 3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV > SELF 0.00000000 Waves

{ "type": 13, "id": "2vDjuLkPXLN42PyiEP6ABsfq1C6cw5rrk2GFNUf6gJ6x", "fee": 1000000, "feeAssetId": null, "timestamp": 1638979067348, "version": 2, "chainId": 84, "sender": "3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV", "senderPublicKey": "5amLtMwixiEesBDKPy9dkFWntG2fNxhTs5n69JbQE9F7", "proofs": [ "54WBrR1N1UhSqMviRbRPZDV8GvuPZj64xZX77BzvtScgbpyrX1mzQJjCbU2KaWRdq6Na3asGcV72t88SgrkEcYre" ], "script": "base64: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", "height": 1825483, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5HEkUCWcJnQg5n8La6RVRf1dxsr9eNNHEnAKGHzX3vrW Next: 69iPEeht2MuYBJcjMnvF4PzAEuDYpjfMvN7KR17xQK7L Diff:
OldNewDifferences
1919 let e = toBase58String(b.caller.bytes)
2020 let f = split(getStringValue(("challenge-" + c)), a)
2121 if ((size(f) > 0))
22- then if ((d.amount >= parseIntValue(f[2])))
22+ then if ((d.amount >= parseIntValue(f[3])))
2323 then if ((f[0] == "awaiting"))
2424 then {
25- let g = if ((f[1] == "black"))
26- then c
25+ let g = if ((f[2] == "black"))
26+ then f[1]
2727 else e
28- let h = if ((f[1] == "white"))
29- then c
28+ let h = if ((f[2] == "white"))
29+ then f[1]
3030 else e
3131 let i = toString((parseIntValue(getStringValue("lastgameid")) + 1))
32-[StringEntry(("challenge-" + c), makeString(["answered", f[1], f[2], e], a)), StringEntry(i, makeString(["ongoing", h, g, f[2], "0", "white", "startblock", "laststepblock"], a)), StringEntry("lastgameid", i), ScriptTransfer(b.caller, (d.amount - parseIntValue(f[2])), unit)]
32+[StringEntry(("challenge-" + c), makeString([i, f[1], f[2], f[3], e], a)), StringEntry(i, makeString(["ongoing", h, g, f[3], "0", "white", "startblock", "laststepblock"], a)), StringEntry("lastgameid", i), ScriptTransfer(b.caller, (d.amount - parseIntValue(f[3])), unit)]
3333 }
3434 else throw("no challenge awaiting")
3535 else throw("need more money")
5151 then throw("works with waves only")
5252 else {
5353 let e = toBase58String(b.caller.bytes)
54- let k = toString((parseIntValue(getStringValue("lastchallengeid")) + 1))
55-[StringEntry(("challenge-" + k), makeString(["awaiting", e, j, toString(d.amount)], a))]
54+ let c = toString((parseIntValue(getStringValue("lastchallengeid")) + 1))
55+[StringEntry(("challenge-" + c), makeString(["awaiting", e, j, toString(d.amount)], a))]
5656 }
5757 }
5858 else throw("invalid side")
6060
6161
6262 @Callable(b)
63-func unsetchallenge (l) = {
63+func unsetchallenge (k) = {
6464 let e = toBase58String(b.caller.bytes)
65- func m (l) = {
66- let n = getString(("challenge-" + l))
67- if ($isInstanceOf(n, "String"))
65+ func l (k) = {
66+ let m = getString(("challenge-" + k))
67+ if ($isInstanceOf(m, "String"))
6868 then {
69- let o = n
70- getStringValue(("challenge-" + l))
69+ let n = m
70+ getStringValue(("challenge-" + k))
7171 }
7272 else ""
7373 }
7474
75- let p = split(m(l), a)
76- if ((size(p) > 0))
77- then if ((p[0] == "awaiting"))
78- then [StringEntry(("challenge-" + l), makeString(["unset", p[1], p[2], p[3]], a))]
75+ let o = split(l(k), a)
76+ if ((size(o) > 0))
77+ then if ((o[0] == "awaiting"))
78+ then [StringEntry(("challenge-" + k), makeString(["unset", o[1], o[2], o[3]], a))]
7979 else throw("challenge not exists")
8080 else throw("challenge not exists")
8181 }
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 startgame (c) = {
1313 let d = if ((size(b.payments) == 1))
1414 then b.payments[0]
1515 else throw("must stake some waves")
1616 if (isDefined(d.assetId))
1717 then throw("works with waves only")
1818 else {
1919 let e = toBase58String(b.caller.bytes)
2020 let f = split(getStringValue(("challenge-" + c)), a)
2121 if ((size(f) > 0))
22- then if ((d.amount >= parseIntValue(f[2])))
22+ then if ((d.amount >= parseIntValue(f[3])))
2323 then if ((f[0] == "awaiting"))
2424 then {
25- let g = if ((f[1] == "black"))
26- then c
25+ let g = if ((f[2] == "black"))
26+ then f[1]
2727 else e
28- let h = if ((f[1] == "white"))
29- then c
28+ let h = if ((f[2] == "white"))
29+ then f[1]
3030 else e
3131 let i = toString((parseIntValue(getStringValue("lastgameid")) + 1))
32-[StringEntry(("challenge-" + c), makeString(["answered", f[1], f[2], e], a)), StringEntry(i, makeString(["ongoing", h, g, f[2], "0", "white", "startblock", "laststepblock"], a)), StringEntry("lastgameid", i), ScriptTransfer(b.caller, (d.amount - parseIntValue(f[2])), unit)]
32+[StringEntry(("challenge-" + c), makeString([i, f[1], f[2], f[3], e], a)), StringEntry(i, makeString(["ongoing", h, g, f[3], "0", "white", "startblock", "laststepblock"], a)), StringEntry("lastgameid", i), ScriptTransfer(b.caller, (d.amount - parseIntValue(f[3])), unit)]
3333 }
3434 else throw("no challenge awaiting")
3535 else throw("need more money")
3636 else throw("no challenge")
3737 }
3838 }
3939
4040
4141
4242 @Callable(b)
4343 func setchallenge (j) = if (if ((j == "black"))
4444 then true
4545 else (j == "white"))
4646 then {
4747 let d = if ((size(b.payments) == 1))
4848 then b.payments[0]
4949 else throw("must stake some waves")
5050 if (isDefined(d.assetId))
5151 then throw("works with waves only")
5252 else {
5353 let e = toBase58String(b.caller.bytes)
54- let k = toString((parseIntValue(getStringValue("lastchallengeid")) + 1))
55-[StringEntry(("challenge-" + k), makeString(["awaiting", e, j, toString(d.amount)], a))]
54+ let c = toString((parseIntValue(getStringValue("lastchallengeid")) + 1))
55+[StringEntry(("challenge-" + c), makeString(["awaiting", e, j, toString(d.amount)], a))]
5656 }
5757 }
5858 else throw("invalid side")
5959
6060
6161
6262 @Callable(b)
63-func unsetchallenge (l) = {
63+func unsetchallenge (k) = {
6464 let e = toBase58String(b.caller.bytes)
65- func m (l) = {
66- let n = getString(("challenge-" + l))
67- if ($isInstanceOf(n, "String"))
65+ func l (k) = {
66+ let m = getString(("challenge-" + k))
67+ if ($isInstanceOf(m, "String"))
6868 then {
69- let o = n
70- getStringValue(("challenge-" + l))
69+ let n = m
70+ getStringValue(("challenge-" + k))
7171 }
7272 else ""
7373 }
7474
75- let p = split(m(l), a)
76- if ((size(p) > 0))
77- then if ((p[0] == "awaiting"))
78- then [StringEntry(("challenge-" + l), makeString(["unset", p[1], p[2], p[3]], a))]
75+ let o = split(l(k), a)
76+ if ((size(o) > 0))
77+ then if ((o[0] == "awaiting"))
78+ then [StringEntry(("challenge-" + k), makeString(["unset", o[1], o[2], o[3]], a))]
7979 else throw("challenge not exists")
8080 else throw("challenge not exists")
8181 }
8282
8383

github/deemru/w8io/169f3d6 
54.06 ms