tx · Vzswnt7gd2A5f1f7uwyfSoRmTwGhiLfkLkfqHH6kP2E

3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc:  -0.01400000 Waves

2019.09.08 12:30 [666918] smart account 3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc > SELF 0.00000000 Waves

{ "type": 13, "id": "Vzswnt7gd2A5f1f7uwyfSoRmTwGhiLfkLkfqHH6kP2E", "fee": 1400000, "feeAssetId": null, "timestamp": 1567935022111, "version": 1, "sender": "3N18S8xfWJYHVuGfJcpcPVh7LsnqR9hKTcc", "senderPublicKey": "9cETBksYN8YMHGvDB6BEqmH9HScpCMBRZwnjCviRQ9aA", "proofs": [ "2tFPz6YgYyXcV8XWe23ipw4BJL5VaE1ywNE586yd1eHTCG9v52KKt38combPhBf3MmjpYSpPYfgmQWHRF1Ea9PVb" ], "script": "base64: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", "chainId": 84, "height": 666918, "spentComplexity": 0 } View: original | compacted Prev: 6SqBpdzyNuRDS4TWdbwA4nC4TLXyGre3hzDEQDrUepJv Next: 5kXvuNXuHnR48SPhf4ffSCSz5SDzhS1g8ehCzuPDv7fg Diff:
OldNewDifferences
7878 func getValueLoseCount (user) = getNumberByKey(getKeyLoseCount(user))
7979
8080
81+func getKeyGame (game) = ("game_" + game)
82+
83+
84+func getValueGame (game) = getStrByKey(getKeyGame(game))
85+
86+
8187 @Callable(i)
8288 func patent (x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6) = {
8389 let pmt = extract(i.payment)
137143 then throw("only oracle can inform about games results")
138144 else if ((winner == loser))
139145 then throw("winner and loser must be different")
140- else if ((getStrByKey(game) != NONE))
146+ else if ((getValueGame(game) != NONE))
141147 then throw("this game has already been played")
142- else WriteSet([DataEntry(("game_" + game), (((winner + "-WIN;") + loser) + "-LOSE")), DataEntry(getKeyWinCount(winner), (getValueWinCount(winner) + 1)), DataEntry(getKeyLoseCount(loser), (getValueLoseCount(loser) + 1))])
148+ else WriteSet([DataEntry(getKeyGame(game), (((winner + "-WIN;") + loser) + "-LOSE")), DataEntry(getKeyWinCount(winner), (getValueWinCount(winner) + 1)), DataEntry(getKeyLoseCount(loser), (getValueLoseCount(loser) + 1))])
143149 }
144150
145151
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
81+func getKeyGame (game) = ("game_" + game)
82+
83+
84+func getValueGame (game) = getStrByKey(getKeyGame(game))
85+
86+
8187 @Callable(i)
8288 func patent (x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6) = {
8389 let pmt = extract(i.payment)
8490 if (isDefined(pmt.assetId))
8591 then throw("can use WAVES only at the moment")
8692 else {
8793 let userAddress = toBase58String(i.caller.bytes)
8894 if ((pmt.amount != PRICE))
8995 then throw("purchase amount cannot be not equal to the price")
9096 else if (!(validateCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6)))
9197 then throw("invalid coordinates order")
9298 else if ((getStrByKey(genKeyFromCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6)) != NONE))
9399 then throw("this patent is already exists")
94100 else WriteSet([DataEntry(genKeyFromCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6), userAddress)])
95101 }
96102 }
97103
98104
99105
100106 @Callable(i)
101107 func buyPatent (x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6) = {
102108 let pmt = extract(i.payment)
103109 if (isDefined(pmt.assetId))
104110 then throw("can use WAVES only at the moment")
105111 else {
106112 let userAddress = toBase58String(i.caller.bytes)
107113 let patentOwnerAddress = getStrByKey(genKeyFromCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6))
108114 if ((pmt.amount != PATENTPRICE))
109115 then throw("purchase amount cannot be not equal to the price")
110116 else if (!(validateCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6)))
111117 then throw("invalid coordinates order")
112118 else if ((patentOwnerAddress == NONE))
113119 then throw("there is no such patent")
114120 else if ((patentOwnerAddress == userAddress))
115121 then throw("you cannot buy your own patent")
116122 else WriteSet([DataEntry(genKeyFromCoords(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6), userAddress), DataEntry(getKeyBalanceUser(patentOwnerAddress), (getValueBalanceUser(patentOwnerAddress) + pmt.amount))])
117123 }
118124 }
119125
120126
121127
122128 @Callable(i)
123129 func withdraw () = {
124130 let userAddress = toBase58String(i.caller.bytes)
125131 let balance = getValueBalanceUser(userAddress)
126132 if ((0 >= balance))
127133 then throw("insufficient balance")
128134 else ScriptResult(WriteSet([DataEntry(getKeyBalanceUser(userAddress), 0)]), TransferSet([ScriptTransfer(addressFromStringValue(userAddress), balance, unit)]))
129135 }
130136
131137
132138
133139 @Callable(i)
134140 func gameReport (game,winner,loser) = {
135141 let oracleAddres = toBase58String(i.caller.bytes)
136142 if ((oracleAddres != ORACLE))
137143 then throw("only oracle can inform about games results")
138144 else if ((winner == loser))
139145 then throw("winner and loser must be different")
140- else if ((getStrByKey(game) != NONE))
146+ else if ((getValueGame(game) != NONE))
141147 then throw("this game has already been played")
142- else WriteSet([DataEntry(("game_" + game), (((winner + "-WIN;") + loser) + "-LOSE")), DataEntry(getKeyWinCount(winner), (getValueWinCount(winner) + 1)), DataEntry(getKeyLoseCount(loser), (getValueLoseCount(loser) + 1))])
148+ else WriteSet([DataEntry(getKeyGame(game), (((winner + "-WIN;") + loser) + "-LOSE")), DataEntry(getKeyWinCount(winner), (getValueWinCount(winner) + 1)), DataEntry(getKeyLoseCount(loser), (getValueLoseCount(loser) + 1))])
143149 }
144150
145151

github/deemru/w8io/3ef1775 
55.58 ms