tx · 6SqBpdzyNuRDS4TWdbwA4nC4TLXyGre3hzDEQDrUepJv

3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc:  -0.01400000 Waves

2019.09.08 12:22 [666911] smart account 3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc > SELF 0.00000000 Waves

{ "type": 13, "id": "6SqBpdzyNuRDS4TWdbwA4nC4TLXyGre3hzDEQDrUepJv", "fee": 1400000, "feeAssetId": null, "timestamp": 1567934541565, "version": 1, "sender": "3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc", "senderPublicKey": "9cETBksYN8YMHGvDB6BEqmH9HScpCMBRZwnjCviRQ9aA", "proofs": [ "2xU7weGtVWk1LpMCZgQ2QASRwj2xKhjHMHqGP5MvubznFemn8T4EUMGagg7tiDqBAyaGczm33vAL6fUsNgiyHbsE" ], "script": "base64:AAIDAAAAAAAAAAAAAAARAAAAAAVQUklDRQAAAAAABfXhAAAAAAALUEFURU5UUFJJQ0UAAAAAAAvrwgAAAAAABk9SQUNMRQIAAAAjM012aXNEZkE2dk5nNGk2aUtZV1o4Yld2eVA0aW1mQmI5ZXEAAAAAA1dJTgIAAAADV0lOAAAAAARMT1NFAgAAAARMT1NFAAAAAAROT05FAgAAAARub25lAQAAAA5nZXROdW1iZXJCeUtleQAAAAEAAAADa2V5BAAAAANudW0EAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAFAAAAA251bQEAAAALZ2V0U3RyQnlLZXkAAAABAAAAA2tleQQAAAADc3RyBAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBQAAAAROT05FBQAAAANzdHIBAAAAEXZhbGlkYXRlVHdvQ29vcmRzAAAABAAAAAJ4MQAAAAJ5MQAAAAJ4MgAAAAJ5MgMJAABmAAAAAgUAAAACeDEFAAAAAngyBwMDCQAAAAAAAAIFAAAAAngxBQAAAAJ4MgkAAGYAAAACBQAAAAJ5MQUAAAACeTIHBwYBAAAADnZhbGlkYXRlQ29vcmRzAAAADAAAAAJ4MQAAAAJ5MQAAAAJ4MgAAAAJ5MgAAAAJ4MwAAAAJ5MwAAAAJ4NAAAAAJ5NAAAAAJ4NQAAAAJ5NQAAAAJ4NgAAAAJ5NgMJAQAAAAEhAAAAAQkBAAAAEXZhbGlkYXRlVHdvQ29vcmRzAAAABAUAAAACeDEFAAAAAnkxBQAAAAJ4MgUAAAACeTIHAwkBAAAAASEAAAABCQEAAAARdmFsaWRhdGVUd29Db29yZHMAAAAEBQAAAAJ4MgUAAAACeTIFAAAAAngzBQAAAAJ5MwcDCQEAAAABIQAAAAEJAQAAABF2YWxpZGF0ZVR3b0Nvb3JkcwAAAAQFAAAAAngzBQAAAAJ5MwUAAAACeDQFAAAAAnk0BwMJAQAAAAEhAAAAAQkBAAAAEXZhbGlkYXRlVHdvQ29vcmRzAAAABAUAAAACeDQFAAAAAnk0BQAAAAJ4NQUAAAACeTUHAwkBAAAAASEAAAABCQEAAAARdmFsaWRhdGVUd29Db29yZHMAAAAEBQAAAAJ4NQUAAAACeTUFAAAAAng2BQAAAAJ5NgcGAQAAABBnZW5LZXlGcm9tQ29vcmRzAAAADAAAAAJ4MQAAAAJ5MQAAAAJ4MgAAAAJ5MgAAAAJ4MwAAAAJ5MwAAAAJ4NAAAAAJ5NAAAAAJ4NQAAAAJ5NQAAAAJ4NgAAAAJ5NgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABpAAAAAEFAAAAAngxAgAAAAEsCQABpAAAAAEFAAAAAnkxAgAAAAE7CQABpAAAAAEFAAAAAngyAgAAAAEsCQABpAAAAAEFAAAAAnkyAgAAAAE7CQABpAAAAAEFAAAAAngzAgAAAAEsCQABpAAAAAEFAAAAAnkzAgAAAAE7CQABpAAAAAEFAAAAAng0AgAAAAEsCQABpAAAAAEFAAAAAnk0AgAAAAE7CQABpAAAAAEFAAAAAng1AgAAAAEsCQABpAAAAAEFAAAAAnk1AgAAAAE7CQABpAAAAAEFAAAAAng2AgAAAAEsCQABpAAAAAEFAAAAAnk2AQAAABFnZXRLZXlCYWxhbmNlVXNlcgAAAAEAAAAHYWNjb3VudAkAASwAAAACBQAAAAdhY2NvdW50AgAAAAhfYmFsYW5jZQEAAAATZ2V0VmFsdWVCYWxhbmNlVXNlcgAAAAEAAAAHYWNjb3VudAkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAEWdldEtleUJhbGFuY2VVc2VyAAAAAQUAAAAHYWNjb3VudAEAAAAOZ2V0S2V5V2luQ291bnQAAAABAAAABHVzZXIJAAEsAAAAAgUAAAAEdXNlcgIAAAAHX3dpbmNudAEAAAAQZ2V0VmFsdWVXaW5Db3VudAAAAAEAAAAEdXNlcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAADmdldEtleVdpbkNvdW50AAAAAQUAAAAEdXNlcgEAAAAPZ2V0S2V5TG9zZUNvdW50AAAAAQAAAAR1c2VyCQABLAAAAAIFAAAABHVzZXICAAAACF9sb3NlY250AQAAABFnZXRWYWx1ZUxvc2VDb3VudAAAAAEAAAAEdXNlcgkBAAAADmdldE51bWJlckJ5S2V5AAAAAQkBAAAAD2dldEtleUxvc2VDb3VudAAAAAEFAAAABHVzZXIAAAAEAAAAAWkBAAAABnBhdGVudAAAAAwAAAACeDEAAAACeTEAAAACeDIAAAACeTIAAAACeDMAAAACeTMAAAACeDQAAAACeTQAAAACeDUAAAACeTUAAAACeDYAAAACeTYEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACBjYW4gdXNlIFdBVkVTIG9ubHkgYXQgdGhlIG1vbWVudAQAAAALdXNlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAGYW1vdW50BQAAAAVQUklDRQkAAAIAAAABAgAAADBwdXJjaGFzZSBhbW91bnQgY2Fubm90IGJlIG5vdCBlcXVhbCB0byB0aGUgcHJpY2UDCQEAAAABIQAAAAEJAQAAAA52YWxpZGF0ZUNvb3JkcwAAAAwFAAAAAngxBQAAAAJ5MQUAAAACeDIFAAAAAnkyBQAAAAJ4MwUAAAACeTMFAAAAAng0BQAAAAJ5NAUAAAACeDUFAAAAAnk1BQAAAAJ4NgUAAAACeTYJAAACAAAAAQIAAAAZaW52YWxpZCBjb29yZGluYXRlcyBvcmRlcgMJAQAAAAIhPQAAAAIJAQAAAAtnZXRTdHJCeUtleQAAAAEJAQAAABBnZW5LZXlGcm9tQ29vcmRzAAAADAUAAAACeDEFAAAAAnkxBQAAAAJ4MgUAAAACeTIFAAAAAngzBQAAAAJ5MwUAAAACeDQFAAAAAnk0BQAAAAJ4NQUAAAACeTUFAAAAAng2BQAAAAJ5NgUAAAAETk9ORQkAAAIAAAABAgAAAB10aGlzIHBhdGVudCBpcyBhbHJlYWR5IGV4aXN0cwkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEGdlbktleUZyb21Db29yZHMAAAAMBQAAAAJ4MQUAAAACeTEFAAAAAngyBQAAAAJ5MgUAAAACeDMFAAAAAnkzBQAAAAJ4NAUAAAACeTQFAAAAAng1BQAAAAJ5NQUAAAACeDYFAAAAAnk2BQAAAAt1c2VyQWRkcmVzcwUAAAADbmlsAAAAAWkBAAAACWJ1eVBhdGVudAAAAAwAAAACeDEAAAACeTEAAAACeDIAAAACeTIAAAACeDMAAAACeTMAAAACeDQAAAACeTQAAAACeDUAAAACeTUAAAACeDYAAAACeTYEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAACBjYW4gdXNlIFdBVkVTIG9ubHkgYXQgdGhlIG1vbWVudAQAAAALdXNlckFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAAScGF0ZW50T3duZXJBZGRyZXNzCQEAAAALZ2V0U3RyQnlLZXkAAAABCQEAAAAQZ2VuS2V5RnJvbUNvb3JkcwAAAAwFAAAAAngxBQAAAAJ5MQUAAAACeDIFAAAAAnkyBQAAAAJ4MwUAAAACeTMFAAAAAng0BQAAAAJ5NAUAAAACeDUFAAAAAnk1BQAAAAJ4NgUAAAACeTYDCQEAAAACIT0AAAACCAUAAAADcG10AAAABmFtb3VudAUAAAALUEFURU5UUFJJQ0UJAAACAAAAAQIAAAAwcHVyY2hhc2UgYW1vdW50IGNhbm5vdCBiZSBub3QgZXF1YWwgdG8gdGhlIHByaWNlAwkBAAAAASEAAAABCQEAAAAOdmFsaWRhdGVDb29yZHMAAAAMBQAAAAJ4MQUAAAACeTEFAAAAAngyBQAAAAJ5MgUAAAACeDMFAAAAAnkzBQAAAAJ4NAUAAAACeTQFAAAAAng1BQAAAAJ5NQUAAAACeDYFAAAAAnk2CQAAAgAAAAECAAAAGWludmFsaWQgY29vcmRpbmF0ZXMgb3JkZXIDCQAAAAAAAAIFAAAAEnBhdGVudE93bmVyQWRkcmVzcwUAAAAETk9ORQkAAAIAAAABAgAAABd0aGVyZSBpcyBubyBzdWNoIHBhdGVudAMJAAAAAAAAAgUAAAAScGF0ZW50T3duZXJBZGRyZXNzBQAAAAt1c2VyQWRkcmVzcwkAAAIAAAABAgAAAB55b3UgY2Fubm90IGJ1eSB5b3VyIG93biBwYXRlbnQJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABBnZW5LZXlGcm9tQ29vcmRzAAAADAUAAAACeDEFAAAAAnkxBQAAAAJ4MgUAAAACeTIFAAAAAngzBQAAAAJ5MwUAAAACeDQFAAAAAnk0BQAAAAJ4NQUAAAACeTUFAAAAAng2BQAAAAJ5NgUAAAALdXNlckFkZHJlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABFnZXRLZXlCYWxhbmNlVXNlcgAAAAEFAAAAEnBhdGVudE93bmVyQWRkcmVzcwkAAGQAAAACCQEAAAATZ2V0VmFsdWVCYWxhbmNlVXNlcgAAAAEFAAAAEnBhdGVudE93bmVyQWRkcmVzcwgFAAAAA3BtdAAAAAZhbW91bnQFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAAEAAAAC3VzZXJBZGRyZXNzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAB2JhbGFuY2UJAQAAABNnZXRWYWx1ZUJhbGFuY2VVc2VyAAAAAQUAAAALdXNlckFkZHJlc3MDCQAAZwAAAAIAAAAAAAAAAAAFAAAAB2JhbGFuY2UJAAACAAAAAQIAAAAUaW5zdWZmaWNpZW50IGJhbGFuY2UJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQEAAAARZ2V0S2V5QmFsYW5jZVVzZXIAAAABBQAAAAt1c2VyQWRkcmVzcwAAAAAAAAAAAAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAALdXNlckFkZHJlc3MFAAAAB2JhbGFuY2UFAAAABHVuaXQFAAAAA25pbAAAAAFpAQAAAApnYW1lUmVwb3J0AAAAAwAAAARnYW1lAAAABndpbm5lcgAAAAVsb3NlcgQAAAAMb3JhY2xlQWRkcmVzCQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMDCQEAAAACIT0AAAACBQAAAAxvcmFjbGVBZGRyZXMFAAAABk9SQUNMRQkAAAIAAAABAgAAACpvbmx5IG9yYWNsZSBjYW4gaW5mb3JtIGFib3V0IGdhbWVzIHJlc3VsdHMDCQAAAAAAAAIFAAAABndpbm5lcgUAAAAFbG9zZXIJAAACAAAAAQIAAAAid2lubmVyIGFuZCBsb3NlciBtdXN0IGJlIGRpZmZlcmVudAMJAQAAAAIhPQAAAAIJAQAAAAtnZXRTdHJCeUtleQAAAAEFAAAABGdhbWUFAAAABE5PTkUJAAACAAAAAQIAAAAhdGhpcyBnYW1lIGhhcyBhbHJlYWR5IGJlZW4gcGxheWVkCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAABWdhbWVfBQAAAARnYW1lCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZ3aW5uZXICAAAABS1XSU47BQAAAAVsb3NlcgIAAAAFLUxPU0UJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAAA5nZXRLZXlXaW5Db3VudAAAAAEFAAAABndpbm5lcgkAAGQAAAACCQEAAAAQZ2V0VmFsdWVXaW5Db3VudAAAAAEFAAAABndpbm5lcgAAAAAAAAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAD2dldEtleUxvc2VDb3VudAAAAAEFAAAABWxvc2VyCQAAZAAAAAIJAQAAABFnZXRWYWx1ZUxvc2VDb3VudAAAAAEFAAAABWxvc2VyAAAAAAAAAAABBQAAAANuaWwAAAAA7CqnuQ==", "chainId": 84, "height": 666911, "spentComplexity": 0 } View: original | compacted Prev: ACTuEEnfsTS4G32c8TdabeUCdNAQG6NQrMShCidNWiay Next: Vzswnt7gd2A5f1f7uwyfSoRmTwGhiLfkLkfqHH6kP2E Diff:
OldNewDifferences
139139 then throw("winner and loser must be different")
140140 else if ((getStrByKey(game) != NONE))
141141 then throw("this game has already been played")
142- else WriteSet([DataEntry(game, (((winner + "-WIN;") + loser) + "-LOSE")), DataEntry(getKeyWinCount(winner), (getValueWinCount(winner) + 1)), DataEntry(getKeyLoseCount(loser), (getValueLoseCount(loser) + 1))])
142+ else WriteSet([DataEntry(("game_" + game), (((winner + "-WIN;") + loser) + "-LOSE")), DataEntry(getKeyWinCount(winner), (getValueWinCount(winner) + 1)), DataEntry(getKeyLoseCount(loser), (getValueLoseCount(loser) + 1))])
143143 }
144144
145145
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let PRICE = 100000000
55
66 let PATENTPRICE = 200000000
77
88 let ORACLE = "3MvisDfA6vNg4i6iKYWZ8bWvyP4imfBb9eq"
99
1010 let WIN = "WIN"
1111
1212 let LOSE = "LOSE"
1313
1414 let NONE = "none"
1515
1616 func getNumberByKey (key) = {
1717 let num = match getInteger(this, key) {
1818 case a: Int =>
1919 a
2020 case _ =>
2121 0
2222 }
2323 num
2424 }
2525
2626
2727 func getStrByKey (key) = {
2828 let str = match getString(this, key) {
2929 case a: String =>
3030 a
3131 case _ =>
3232 NONE
3333 }
3434 str
3535 }
3636
3737
3838 func validateTwoCoords (x1,y1,x2,y2) = if ((x1 > x2))
3939 then false
4040 else if (if ((x1 == x2))
4141 then (y1 > y2)
4242 else false)
4343 then false
4444 else true
4545
4646
4747 func validateCoords (x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6) = if (!(validateTwoCoords(x1, y1, x2, y2)))
4848 then false
4949 else if (!(validateTwoCoords(x2, y2, x3, y3)))
5050 then false
5151 else if (!(validateTwoCoords(x3, y3, x4, y4)))
5252 then false
5353 else if (!(validateTwoCoords(x4, y4, x5, y5)))
5454 then false
5555 else if (!(validateTwoCoords(x5, y5, x6, y6)))
5656 then false
5757 else true
5858
5959
6060 func genKeyFromCoords (x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6) = ((((((((((((((((((((((toString(x1) + ",") + toString(y1)) + ";") + toString(x2)) + ",") + toString(y2)) + ";") + toString(x3)) + ",") + toString(y3)) + ";") + toString(x4)) + ",") + toString(y4)) + ";") + toString(x5)) + ",") + toString(y5)) + ";") + toString(x6)) + ",") + toString(y6))
6161
6262
6363 func getKeyBalanceUser (account) = (account + "_balance")
6464
6565
6666 func getValueBalanceUser (account) = getNumberByKey(getKeyBalanceUser(account))
6767
6868
6969 func getKeyWinCount (user) = (user + "_wincnt")
7070
7171
7272 func getValueWinCount (user) = getNumberByKey(getKeyWinCount(user))
7373
7474
7575 func getKeyLoseCount (user) = (user + "_losecnt")
7676
7777
7878 func getValueLoseCount (user) = getNumberByKey(getKeyLoseCount(user))
7979
8080
8181 @Callable(i)
8282 func patent (x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6) = {
8383 let pmt = extract(i.payment)
8484 if (isDefined(pmt.assetId))
8585 then throw("can use WAVES only at the moment")
8686 else {
8787 let userAddress = toBase58String(i.caller.bytes)
8888 if ((pmt.amount != PRICE))
8989 then throw("purchase amount cannot be not equal to the price")
9090 else if (!(validateCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6)))
9191 then throw("invalid coordinates order")
9292 else if ((getStrByKey(genKeyFromCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6)) != NONE))
9393 then throw("this patent is already exists")
9494 else WriteSet([DataEntry(genKeyFromCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6), userAddress)])
9595 }
9696 }
9797
9898
9999
100100 @Callable(i)
101101 func buyPatent (x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6) = {
102102 let pmt = extract(i.payment)
103103 if (isDefined(pmt.assetId))
104104 then throw("can use WAVES only at the moment")
105105 else {
106106 let userAddress = toBase58String(i.caller.bytes)
107107 let patentOwnerAddress = getStrByKey(genKeyFromCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6))
108108 if ((pmt.amount != PATENTPRICE))
109109 then throw("purchase amount cannot be not equal to the price")
110110 else if (!(validateCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6)))
111111 then throw("invalid coordinates order")
112112 else if ((patentOwnerAddress == NONE))
113113 then throw("there is no such patent")
114114 else if ((patentOwnerAddress == userAddress))
115115 then throw("you cannot buy your own patent")
116116 else WriteSet([DataEntry(genKeyFromCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6), userAddress), DataEntry(getKeyBalanceUser(patentOwnerAddress), (getValueBalanceUser(patentOwnerAddress) + pmt.amount))])
117117 }
118118 }
119119
120120
121121
122122 @Callable(i)
123123 func withdraw () = {
124124 let userAddress = toBase58String(i.caller.bytes)
125125 let balance = getValueBalanceUser(userAddress)
126126 if ((0 >= balance))
127127 then throw("insufficient balance")
128128 else ScriptResult(WriteSet([DataEntry(getKeyBalanceUser(userAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), balance, unit)]))
129129 }
130130
131131
132132
133133 @Callable(i)
134134 func gameReport (game,winner,loser) = {
135135 let oracleAddres = toBase58String(i.caller.bytes)
136136 if ((oracleAddres != ORACLE))
137137 then throw("only oracle can inform about games results")
138138 else if ((winner == loser))
139139 then throw("winner and loser must be different")
140140 else if ((getStrByKey(game) != NONE))
141141 then throw("this game has already been played")
142- else WriteSet([DataEntry(game, (((winner + "-WIN;") + loser) + "-LOSE")), DataEntry(getKeyWinCount(winner), (getValueWinCount(winner) + 1)), DataEntry(getKeyLoseCount(loser), (getValueLoseCount(loser) + 1))])
142+ else WriteSet([DataEntry(("game_" + game), (((winner + "-WIN;") + loser) + "-LOSE")), DataEntry(getKeyWinCount(winner), (getValueWinCount(winner) + 1)), DataEntry(getKeyLoseCount(loser), (getValueLoseCount(loser) + 1))])
143143 }
144144
145145

github/deemru/w8io/3ef1775 
53.03 ms