tx · 57eUJuyYivTEXwEu1R6trhtJxxMRAAYmTHLicSwgoNts

3MtKnDmJju2Y4dp9A2ACPr11jDZiW6gmKKK:  -0.05000000 Waves

2022.01.16 16:31 [1881563] smart account 3MtKnDmJju2Y4dp9A2ACPr11jDZiW6gmKKK > SELF 0.00000000 Waves

{ "type": 13, "id": "57eUJuyYivTEXwEu1R6trhtJxxMRAAYmTHLicSwgoNts", "fee": 5000000, "feeAssetId": null, "timestamp": 1642339894168, "version": 2, "chainId": 84, "sender": "3MtKnDmJju2Y4dp9A2ACPr11jDZiW6gmKKK", "senderPublicKey": "3itc77jAZTQAcaPCyYEe4KD7h18CvqZZ2JRynZHsuJ61", "proofs": [ "gGzrUbsEff4b1BW33szPTaA1Tsh7C7NLKKh77tzZdLbpjYfBjb3avc9eE4EVb8DfkgAhoSf33zwH1Xku1u7hWZN" ], "script": "base64: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JGYwXzIAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACCQEAAAAFJGYwXzEAAAACBQAAAAUkYWNjMAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAgAAAAAAAAAAAwAAAAAAAAAABAAAAAAAAAAABQAAAAAAAAAABgAAAAAAAAAABwAAAAAAAAAACAAAAAAAAAAACQAAAAAAAAAACgAAAAAAAAAACwAAAAAAAAAADAAAAAAAAAAADQAAAAAAAAAADgAAAAAAAAAADwAAAAAAAAAAEAAAAAAAAAAAEQAAAAAAAAAAEgAAAAAAAAAAEwAAAAAAAAAAFAAAAAAAAAAAFQAAAAAAAAAAFgAAAAAAAAAAFwAAAAAAAAAAGAAAAAAAAAAAGQAAAAAAAAAAGgAAAAAAAAAA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", "height": 1881563, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GGvfrA6NRCJKLMB7uEkTFa8V2dtpZehd8H2sd5c9s6vi Next: 8JrY14XmnSq7ULJPL2sBguLSUJD86cvEvjvv2mMDhYLp Diff:
OldNewDifferences
228228 then [writeString((gameId + "_teamBlue"), ((teamBlue + ",") + toBase58String(i.caller.bytes)))]
229229 else if ((size(teamYellowList) == 4))
230230 then [writeString((gameId + "_status"), "round_1,turn_teamBlue"), writeString((gameId + "_voting_1"), ""), writeInteger((gameId + "_storedHeight"), (height + votingDuration)), writeString((gameId + "_teamYellow"), ((teamYellow + ",") + toBase58String(i.caller.bytes)))]
231- else if ((4 > size(teamYellowList)))
232- then [writeString((gameId + "_teamYellow"), ((teamYellow + ",") + toBase58String(i.caller.bytes)))]
233- else throw("Teams are full, cannot join.")
231+ else if ((size(teamYellowList) == 0))
232+ then [writeString((gameId + "_teamYellow"), toBase58String(i.caller.bytes))]
233+ else if ((4 > size(teamYellowList)))
234+ then [writeString((gameId + "_teamYellow"), ((teamYellow + ",") + toBase58String(i.caller.bytes)))]
235+ else throw("Teams are full, cannot join.")
234236 }
235237
236238
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let adminAddress = valueOrElse(getString(this, "admin"), "")
55
66 let totalSupply = valueOrElse(getInteger(this, "totalSupply"), 0)
77
88 let votingDuration = valueOrErrorMessage(getInteger(this, "votingDuration"), "No key votingDuration was found")
99
1010 let ctokenId = valueOrErrorMessage(getString(this, "tokenId"), "No key dTokenId was found")
1111
1212 func isAdmin (callerAddress) = if ((callerAddress == fromBase58String(adminAddress)))
1313 then true
1414 else false
1515
1616
1717 func writeInteger (key,integerValue) = IntegerEntry(key, integerValue)
1818
1919
2020 func writeString (key,stringValue) = StringEntry(key, stringValue)
2121
2222
2323 func countFrequency (helperList,votingList) = {
2424 func foldFrequency (accum,next) = {
2525 func countItems (acc,item) = if ((next == item))
2626 then (acc + 1)
2727 else acc
2828
2929 (accum :+ {
3030 let $l = votingList
3131 let $s = size($l)
3232 let $acc0 = 0
3333 func $f0_1 ($a,$i) = if (($i >= $s))
3434 then $a
3535 else countItems($a, $l[$i])
3636
3737 func $f0_2 ($a,$i) = if (($i >= $s))
3838 then $a
3939 else throw("List size exceeds 5")
4040
4141 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
4242 })
4343 }
4444
4545 let $l = helperList
4646 let $s = size($l)
4747 let $acc0 = nil
4848 func $f0_1 ($a,$i) = if (($i >= $s))
4949 then $a
5050 else foldFrequency($a, $l[$i])
5151
5252 func $f0_2 ($a,$i) = if (($i >= $s))
5353 then $a
5454 else throw("List size exceeds 5")
5555
5656 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
5757 }
5858
5959
6060 func initVotingHelperList (voteArray) = {
6161 func foldHelperList (accum,next) = if ((containsElement(accum, next) == false))
6262 then (accum :+ next)
6363 else accum
6464
6565 let $l = voteArray
6666 let $s = size($l)
6767 let $acc0 = nil
6868 func $f0_1 ($a,$i) = if (($i >= $s))
6969 then $a
7070 else foldHelperList($a, $l[$i])
7171
7272 func $f0_2 ($a,$i) = if (($i >= $s))
7373 then $a
7474 else throw("List size exceeds 5")
7575
7676 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
7777 }
7878
7979
8080 func isGreaterThen (potential,itemList) = {
8181 let intPotential = parseIntValue(potential)
8282 let listLength = (size(itemList) - 1)
8383 let currentGreatest = itemList[listLength]
8484 if ((intPotential > currentGreatest))
8585 then true
8686 else false
8787 }
8888
8989
9090 func findHighestVote (helperList,frequencies) = {
9191 func foldFrequencies (highestItemList,nextItem) = if ((size(highestItemList) == 0))
9292 then (highestItemList :+ parseIntValue(nextItem))
9393 else if (isGreaterThen(nextItem, highestItemList))
9494 then (highestItemList :+ parseIntValue(nextItem))
9595 else highestItemList
9696
9797 let highestVotes = {
9898 let $l = frequencies
9999 let $s = size($l)
100100 let $acc0 = nil
101101 func $f0_1 ($a,$i) = if (($i >= $s))
102102 then $a
103103 else foldFrequencies($a, $l[$i])
104104
105105 func $f0_2 ($a,$i) = if (($i >= $s))
106106 then $a
107107 else throw("List size exceeds 5")
108108
109109 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
110110 }
111111 let lastIdx = (size(highestVotes) - 1)
112112 let highestVote = highestVotes[lastIdx]
113113 let helperIdx = indexOf(frequencies, toString(highestVote))
114114 match helperIdx {
115115 case t: Int =>
116116 helperList[t]
117117 case _ =>
118118 throw("Type does not match!")
119119 }
120120 }
121121
122122
123123 func alterBoard (field,gameId,team) = {
124124 let currentBoard = getStringValue((gameId + "_board"))
125125 let boardList = split(currentBoard, ",")
126126 let teamTag = if ((team == "teamBlue"))
127127 then "B"
128128 else "Y"
129129 func foldBoard (accum,nextValue) = {
130130 let $t045024525 = accum
131131 let result = $t045024525._1
132132 let j = $t045024525._2
133133 if ((j == parseIntValue(field)))
134134 then $Tuple2((result :+ teamTag), (j + 1))
135135 else $Tuple2((result :+ nextValue), (j + 1))
136136 }
137137
138138 let newBoardList = {
139139 let $l = boardList
140140 let $s = size($l)
141141 let $acc0 = $Tuple2(nil, 0)
142142 func $f0_1 ($a,$i) = if (($i >= $s))
143143 then $a
144144 else foldBoard($a, $l[$i])
145145
146146 func $f0_2 ($a,$i) = if (($i >= $s))
147147 then $a
148148 else throw("List size exceeds 42")
149149
150150 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42)
151151 }
152152 match newBoardList {
153153 case t: (List[String], Int) =>
154154 makeString(t._1, ",")
155155 case _ =>
156156 throw("Type does not match!")
157157 }
158158 }
159159
160160
161161 func updateVotingResults (gameId,round,activeTeam,currentVotingEntryList) = {
162162 func foldVotings (accum,nextValue) = (accum :+ split(nextValue, "_")[1])
163163
164164 let votes = {
165165 let $l = currentVotingEntryList
166166 let $s = size($l)
167167 let $acc0 = nil
168168 func $f0_1 ($a,$i) = if (($i >= $s))
169169 then $a
170170 else foldVotings($a, $l[$i])
171171
172172 func $f0_2 ($a,$i) = if (($i >= $s))
173173 then $a
174174 else throw("List size exceeds 5")
175175
176176 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
177177 }
178178 let helperList = initVotingHelperList(votes)
179179 let frequencies = countFrequency(helperList, votes)
180180 let votedField = findHighestVote(helperList, frequencies)
181181 alterBoard(votedField, gameId, activeTeam)
182182 }
183183
184184
185185 @Callable(i)
186186 func setup (adminAddress,tokenName,tokenDescription) = if (!(isDefined(getString(this, "admin"))))
187187 then {
188188 let asset = Issue(tokenName, tokenDescription, 0, 8, true)
189189 let tokenId = calculateAssetId(asset)
190190 [asset, writeString("admin", adminAddress), writeInteger("votingDuration", 2), writeInteger("totalSupply", 0), writeString("tokenName", tokenName), writeString("tokenId", toBase58String(tokenId)), writeInteger("tokenDecimals", 8)]
191191 }
192192 else throw("Pool already setup!")
193193
194194
195195
196196 @Callable(i)
197197 func buyRound () = if ((size(i.payments) > 0))
198198 then {
199199 let amount = i.payments[0].amount
200200 if ((amount >= 1))
201201 then {
202202 let cTokenAmount = fraction(amount, 42, 1)
203203 let currentTotalSupply = (totalSupply + cTokenAmount)
204204 [writeInteger("totalSupply", currentTotalSupply), Reissue(fromBase58String(ctokenId), cTokenAmount, true), ScriptTransfer(i.caller, cTokenAmount, fromBase58String(ctokenId))]
205205 }
206206 else throw("Payment is to small!")
207207 }
208208 else throw("No payment attached!")
209209
210210
211211
212212 @Callable(i)
213213 func createGame () = {
214214 let board = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
215215 let gameId = toBase58String(i.transactionId)
216216 [writeString((gameId + "_board"), board), writeString((gameId + "_status"), "waiting for players"), writeString((gameId + "_teamBlue"), toString(i.caller)), writeString((gameId + "_teamYellow"), "")]
217217 }
218218
219219
220220
221221 @Callable(i)
222222 func joinGame (gameId) = {
223223 let teamBlue = getStringValue((gameId + "_teamBlue"))
224224 let teamYellow = getStringValue((gameId + "_teamYellow"))
225225 let teamBlueList = split(teamBlue, ",")
226226 let teamYellowList = split(teamYellow, ",")
227227 if ((5 > size(teamBlueList)))
228228 then [writeString((gameId + "_teamBlue"), ((teamBlue + ",") + toBase58String(i.caller.bytes)))]
229229 else if ((size(teamYellowList) == 4))
230230 then [writeString((gameId + "_status"), "round_1,turn_teamBlue"), writeString((gameId + "_voting_1"), ""), writeInteger((gameId + "_storedHeight"), (height + votingDuration)), writeString((gameId + "_teamYellow"), ((teamYellow + ",") + toBase58String(i.caller.bytes)))]
231- else if ((4 > size(teamYellowList)))
232- then [writeString((gameId + "_teamYellow"), ((teamYellow + ",") + toBase58String(i.caller.bytes)))]
233- else throw("Teams are full, cannot join.")
231+ else if ((size(teamYellowList) == 0))
232+ then [writeString((gameId + "_teamYellow"), toBase58String(i.caller.bytes))]
233+ else if ((4 > size(teamYellowList)))
234+ then [writeString((gameId + "_teamYellow"), ((teamYellow + ",") + toBase58String(i.caller.bytes)))]
235+ else throw("Teams are full, cannot join.")
234236 }
235237
236238
237239
238240 @Callable(i)
239241 func vote (gameId,voting) = {
240242 let status = valueOrErrorMessage(getStringValue((gameId + "_status")), "No status entry found under gameId!")
241243 let round = parseIntValue(drop(split(status, ",")[0], 6))
242244 let activeTeam = drop(split(status, ",")[1], 5)
243245 let storedHeight = valueOrErrorMessage(getInteger((gameId + "_storedHeight")), (("No status entry found under " + gameId) + "_storedHeight!"))
244246 let votingEntry = valueOrErrorMessage(getStringValue(((gameId + "_voting_") + toString(round))), "No votes found for this game id!")
245247 let votingEntryList = split(votingEntry, ",")
246248 let members = if ((activeTeam == "teamBlue"))
247249 then {
248250 let teamB = getStringValue((gameId + "_teamBlue"))
249251 let teamBList = split(teamB, ",")
250252 teamBList
251253 }
252254 else {
253255 let teamY = getStringValue((gameId + "_teamYellow"))
254256 let teamYList = split(teamY, ",")
255257 teamYList
256258 }
257259 let unactiveTeam = if ((activeTeam == "teamBlue"))
258260 then "teamYellow"
259261 else "teamBlue"
260262 let membersUnactive = if ((unactiveTeam == "teamBlue"))
261263 then {
262264 let teamB = getStringValue((gameId + "_teamBlue"))
263265 let teamBList = split(teamB, ",")
264266 teamBList
265267 }
266268 else {
267269 let teamY = getStringValue((gameId + "_teamYellow"))
268270 let teamYList = split(teamY, ",")
269271 teamYList
270272 }
271273 let callerAddress = toBase58String(i.caller.bytes)
272274 if ((storedHeight >= height))
273275 then if (containsElement(members, callerAddress))
274276 then {
275277 func foldVoters (accum,nextValue) = (accum :+ split(nextValue, "_")[0])
276278
277279 let voters = {
278280 let $l = votingEntryList
279281 let $s = size($l)
280282 let $acc0 = nil
281283 func $f0_1 ($a,$i) = if (($i >= $s))
282284 then $a
283285 else foldVoters($a, $l[$i])
284286
285287 func $f0_2 ($a,$i) = if (($i >= $s))
286288 then $a
287289 else throw("List size exceeds 5")
288290
289291 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
290292 }
291293 if ((containsElement(voters, callerAddress) == false))
292294 then {
293295 let newVote = ((callerAddress + "_") + toString(voting))
294296 let currentVotingEntryList = (votingEntryList :+ newVote)
295297 let currentVotingEntry = makeString(currentVotingEntryList, ",")
296298 let alteredBoard = updateVotingResults(gameId, round, activeTeam, currentVotingEntryList)
297299 if ((5 > size(currentVotingEntryList)))
298300 then [writeString(((gameId + "_voting_") + toString(round)), currentVotingEntry)]
299301 else [writeString(((gameId + "_voting_") + toString(round)), currentVotingEntry), writeString((gameId + "_board"), alteredBoard), writeInteger((gameId + "_storedHeight"), (height + votingDuration)), writeString((gameId + "_status"), ((("round_" + toString((round + 1))) + ",turn_") + unactiveTeam)), writeString(((gameId + "_voting_") + toString((round + 1))), "")]
300302 }
301303 else throw("Caller already voted!")
302304 }
303305 else throw((("Caller is not in " + activeTeam) + "!"))
304306 else if (containsElement(membersUnactive, callerAddress))
305307 then {
306308 let alteredBoard = updateVotingResults(gameId, round, activeTeam, votingEntryList)
307309 let newVote = ((callerAddress + "_") + toString(voting))
308310 [writeString((gameId + "_board"), alteredBoard), writeInteger((gameId + "_storedHeight"), (height + votingDuration)), writeString((gameId + "_status"), ((("round_" + toString((round + 1))) + ",turn_") + unactiveTeam)), writeString(((gameId + "_voting_") + toString((round + 1))), newVote)]
309311 }
310312 else throw((("Caller is not in " + unactiveTeam) + "!"))
311313 }
312314
313315
314316
315317 @Callable(i)
316318 func updateStringEntry (key,stringValue) = if (isAdmin(i.caller.bytes))
317319 then [writeString(key, stringValue)]
318320 else throw("Address does not match with admin address!")
319321
320322
321323
322324 @Callable(i)
323325 func updateIntegerEntry (key,integerValue) = if (isAdmin(i.caller.bytes))
324326 then [writeInteger(key, integerValue)]
325327 else throw("Address does not match with admin address!")
326328
327329
328330
329331 @Callable(i)
330332 func deleteStorageEntry (key) = if (isAdmin(i.caller.bytes))
331333 then [DeleteEntry(key)]
332334 else throw("Address does not match with admin address!")
333335
334336
335337 @Verifier(tx)
336338 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
337339

github/deemru/w8io/169f3d6 
49.45 ms