tx · 97rfNZydsLbvHeat7BUXFAB6XyGvw5mXvWZy78mxr7uU

3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV:  -0.01000000 Waves

2021.12.08 18:17 [1825447] smart account 3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV > SELF 0.00000000 Waves

{ "type": 13, "id": "97rfNZydsLbvHeat7BUXFAB6XyGvw5mXvWZy78mxr7uU", "fee": 1000000, "feeAssetId": null, "timestamp": 1638976713703, "version": 2, "chainId": 84, "sender": "3N7Gg64FJ3ESaqn41qu1ete7zmzbmoP1AAV", "senderPublicKey": "5amLtMwixiEesBDKPy9dkFWntG2fNxhTs5n69JbQE9F7", "proofs": [ "3xobzQZRauUN4tm162kPYUxycZtnRW5K2vVNr2Qj45S9FEwCPsqWaRKeFXj9PARXwVHDAQNPF3nLU35UAVurpTGB" ], "script": "base64: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", "height": 1825447, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2NhTUvnShbYNEwiBVgKoXmUwSn7j8XUckLfayKdUgZty Next: 2DVNQpK7Ca1SGqhDddLFdKAe5cLYazUwyTt6iKzUKxe3 Diff:
OldNewDifferences
1414 let callerAdress = toBase58String(i.caller.bytes)
1515 let conditions = split(getStringValue(("challenge-" + challenger)), separ)
1616 if ((size(conditions) > 0))
17- then if ((conditions[0] == "awaiting"))
18- then {
19- let black = if ((conditions[1] == "black"))
20- then challenger
21- else callerAdress
22- let white = if ((conditions[1] == "white"))
23- then challenger
24- else callerAdress
25- let gameid = match getInteger("lastgameid") {
26- case a: Int =>
27- getIntegerValue("lastgameid")
28- case _ =>
29- 1
30- }
31-[StringEntry(("challenge-" + challenger), makeString(["answered", conditions[1], conditions[2], callerAdress], separ)), StringEntry(toString(gameid), makeString(["ongoing", white, black, conditions[2], "0", "white", "startblock", "laststepblock"], separ))]
32- }
33- else throw("no challenge awaiting")
17+ then if ((pmt.amount >= parseIntValue(conditions[2])))
18+ then if ((conditions[0] == "awaiting"))
19+ then {
20+ let black = if ((conditions[1] == "black"))
21+ then challenger
22+ else callerAdress
23+ let white = if ((conditions[1] == "white"))
24+ then challenger
25+ else callerAdress
26+ let gameid = match getInteger("lastgameid") {
27+ case a: Int =>
28+ getIntegerValue("lastgameid")
29+ case _ =>
30+ 1
31+ }
32+[StringEntry(("challenge-" + challenger), makeString(["answered", conditions[1], conditions[2], callerAdress], separ)), StringEntry(("game-" + toString(gameid)), makeString(["ongoing", white, black, conditions[2], "0", "white", "startblock", "laststepblock"], separ)), ScriptTransfer(i.caller, (pmt.amount - parseIntValue(conditions[2])), unit)]
33+ }
34+ else throw("no challenge awaiting")
35+ else throw("need more money")
3436 else throw("no challenge")
3537 }
3638 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let separ = "|"
55
66 @Callable(i)
77 func startgame (challenger) = {
88 let pmt = if ((size(i.payments) == 1))
99 then i.payments[0]
1010 else throw("must stake some waves")
1111 if (isDefined(pmt.assetId))
1212 then throw("works with waves only")
1313 else {
1414 let callerAdress = toBase58String(i.caller.bytes)
1515 let conditions = split(getStringValue(("challenge-" + challenger)), separ)
1616 if ((size(conditions) > 0))
17- then if ((conditions[0] == "awaiting"))
18- then {
19- let black = if ((conditions[1] == "black"))
20- then challenger
21- else callerAdress
22- let white = if ((conditions[1] == "white"))
23- then challenger
24- else callerAdress
25- let gameid = match getInteger("lastgameid") {
26- case a: Int =>
27- getIntegerValue("lastgameid")
28- case _ =>
29- 1
30- }
31-[StringEntry(("challenge-" + challenger), makeString(["answered", conditions[1], conditions[2], callerAdress], separ)), StringEntry(toString(gameid), makeString(["ongoing", white, black, conditions[2], "0", "white", "startblock", "laststepblock"], separ))]
32- }
33- else throw("no challenge awaiting")
17+ then if ((pmt.amount >= parseIntValue(conditions[2])))
18+ then if ((conditions[0] == "awaiting"))
19+ then {
20+ let black = if ((conditions[1] == "black"))
21+ then challenger
22+ else callerAdress
23+ let white = if ((conditions[1] == "white"))
24+ then challenger
25+ else callerAdress
26+ let gameid = match getInteger("lastgameid") {
27+ case a: Int =>
28+ getIntegerValue("lastgameid")
29+ case _ =>
30+ 1
31+ }
32+[StringEntry(("challenge-" + challenger), makeString(["answered", conditions[1], conditions[2], callerAdress], separ)), StringEntry(("game-" + toString(gameid)), makeString(["ongoing", white, black, conditions[2], "0", "white", "startblock", "laststepblock"], separ)), ScriptTransfer(i.caller, (pmt.amount - parseIntValue(conditions[2])), unit)]
33+ }
34+ else throw("no challenge awaiting")
35+ else throw("need more money")
3436 else throw("no challenge")
3537 }
3638 }
3739
3840
3941
4042 @Callable(i)
4143 func setchallenge (side) = if (if ((side == "black"))
4244 then true
4345 else (side == "white"))
4446 then {
4547 let pmt = if ((size(i.payments) == 1))
4648 then i.payments[0]
4749 else throw("must stake some waves")
4850 if (isDefined(pmt.assetId))
4951 then throw("works with waves only")
5052 else {
5153 let callerAdress = toBase58String(i.caller.bytes)
5254 [StringEntry(("challenge-" + callerAdress), makeString(["awaiting", side, toString(pmt.amount)], separ))]
5355 }
5456 }
5557 else throw("invalid side")
5658
5759
5860
5961 @Callable(i)
6062 func unsetchallenge () = {
6163 let callerAdress = toBase58String(i.caller.bytes)
6264 func getchallenge (challendger) = match getString(("challenge-" + challendger)) {
6365 case a: String =>
6466 getStringValue(("challenge-" + challendger))
6567 case _ =>
6668 ""
6769 }
6870
6971 let challenge = split(getchallenge(callerAdress), separ)
7072 if ((size(challenge) > 0))
7173 then if ((challenge[0] == "awaiting"))
7274 then [StringEntry(("challenge-" + callerAdress), makeString(["unset", challenge[1], challenge[2]], separ))]
7375 else throw("challenge not exists")
7476 else throw("challenge not exists")
7577 }
7678
7779

github/deemru/w8io/169f3d6 
93.88 ms