tx · Hih2bNbPa6Sypz4FaefCqxff9DDA868eYUFoeSR4HEfx

3MtKnDmJju2Y4dp9A2ACPr11jDZiW6gmKKK:  -0.05000000 Waves

2022.01.25 23:30 [1894919] smart account 3MtKnDmJju2Y4dp9A2ACPr11jDZiW6gmKKK > SELF 0.00000000 Waves

{ "type": 13, "id": "Hih2bNbPa6Sypz4FaefCqxff9DDA868eYUFoeSR4HEfx", "fee": 5000000, "feeAssetId": null, "timestamp": 1643142649127, "version": 2, "chainId": 84, "sender": "3MtKnDmJju2Y4dp9A2ACPr11jDZiW6gmKKK", "senderPublicKey": "3itc77jAZTQAcaPCyYEe4KD7h18CvqZZ2JRynZHsuJ61", "proofs": [ "3S6p1s1LYMmEPTVNyvJXv1tdEzvRN1AGvRVbshLwsmC8s5pttmUo3bfCzXWk2jCsuRWXNrvjUcidfdqSJXBUWaG6" ], "script": "base64:AAIFAAAAAAAAACgIAhIECgIICBIAEgASAwoBCBIECgIIARIECgIICBIECgIIARIDCgEIAAAAEAAAAAAMYWRtaW5BZGRyZXNzCQEAAAALdmFsdWVPckVsc2UAAAACCQAEHQAAAAIFAAAABHRoaXMCAAAABWFkbWluAgAAAAAAAAAAC3RvdGFsU3VwcGx5CQEAAAALdmFsdWVPckVsc2UAAAACCQAEGgAAAAIFAAAABHRoaXMCAAAAC3RvdGFsU3VwcGx5AAAAAAAAAAAAAAAAAA52b3RpbmdEdXJhdGlvbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMCAAAADnZvdGluZ0R1cmF0aW9uAgAAAB9ObyBrZXkgdm90aW5nRHVyYXRpb24gd2FzIGZvdW5kAAAAAAhjdG9rZW5JZAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMCAAAAB3Rva2VuSWQCAAAAGU5vIGtleSBjVG9rZW5JZCB3YXMgZm91bmQAAAAAEW1heFBsYXllcnNQZXJUZWFtCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwIAAAAOcGxheWVyc1BlclRlYW0CAAAAH05vIGtleSBwbGF5ZXJzUGVyVGVhbSB3YXMgZm91bmQBAAAAB2lzQWRtaW4AAAABAAAADWNhbGxlckFkZHJlc3MDCQAAAAAAAAIFAAAADWNhbGxlckFkZHJlc3MJAAJZAAAAAQUAAAAMYWRtaW5BZGRyZXNzBgcBAAAADHdyaXRlSW50ZWdlcgAAAAIAAAADa2V5AAAADGludGVnZXJWYWx1ZQkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAA2tleQUAAAAMaW50ZWdlclZhbHVlAQAAAAt3cml0ZVN0cmluZwAAAAIAAAADa2V5AAAAC3N0cmluZ1ZhbHVlCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAANrZXkFAAAAC3N0cmluZ1ZhbHVlAQAAAA5jb3VudEZyZXF1ZW5jeQAAAAIAAAAKaGVscGVyTGlzdAAAAAp2b3RpbmdMaXN0CgEAAAANZm9sZEZyZXF1ZW5jeQAAAAIAAAAFYWNjdW0AAAAE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AAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgkBAAAABSRmMV8xAAAAAgUAAAAFJGFjYzAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAIAAAAAAAAAAAMAAAAAAAAAAAQAAAAAAAAAAAUAAAAAAAAAAAYAAAAAAAAAAAcAAAAAAAAAAAgAAAAAAAAAAAkAAAAAAAAAAAoAAAAAAAAAAAsAAAAAAAAAAAwAAAAAAAAAAA0AAAAAAAAAAA4AAAAAAAAAAA8AAAAAAAAAABAAAAAAAAAAABEAAAAAAAAAABIAAAAAAAAAABMAAAAAAAAAABQAAAAAAAAAABUAAAAAAAAAABYAAAAAAAAAABcAAAAAAAAAABgAAAAAAAAAABkAAAAAAAAAABoAAAAAAAAAABsAAAAAAAAAABwAAAAAAAAAAB0AAAAAAAAAAB4AAAAAAAAAAB8AAAAAAAAAACAAAAAAAAAAACEAAAAAAAAAACIAAAAAAAAAACMAAAAAAAAAACQAAAAA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", "height": 1894919, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FJGAMjZi1ezenyfjJUJ5MeYDXeABg4Zj7TxyLVR3x8e7 Next: A19ZfUqVp2FMjodY2z8bc1gM7nyFED5Fe1M9q2W4DuUy Diff:
OldNewDifferences
209209
210210
211211 @Callable(i)
212-func setup (adminAddress,tokenName,tokenDescription) = if (!(isDefined(getString(this, "admin"))))
212+func setup (tokenName,tokenDescription) = if (!(isDefined(getString(this, "admin"))))
213213 then {
214214 let asset = Issue(tokenName, tokenDescription, 0, 8, true)
215215 let tokenId = calculateAssetId(asset)
216-[asset, writeString("admin", adminAddress), writeInteger("votingDuration", 2), writeInteger("totalSupply", 0), writeString("tokenName", tokenName), writeString("tokenId", toBase58String(tokenId)), writeInteger("tokenDecimals", 8)]
216+[asset, writeString("admin", toBase58String(i.caller.bytes)), writeInteger("votingDuration", 2), writeInteger("totalSupply", 0), writeString("tokenName", tokenName), writeString("tokenId", toBase58String(tokenId)), writeInteger("tokenDecimals", 8)]
217217 }
218218 else throw("DApp already setup!")
219219
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 cTokenId was found")
1111
1212 let maxPlayersPerTeam = valueOrErrorMessage(getInteger(this, "playersPerTeam"), "No key playersPerTeam was found")
1313
1414 func isAdmin (callerAddress) = if ((callerAddress == fromBase58String(adminAddress)))
1515 then true
1616 else false
1717
1818
1919 func writeInteger (key,integerValue) = IntegerEntry(key, integerValue)
2020
2121
2222 func writeString (key,stringValue) = StringEntry(key, stringValue)
2323
2424
2525 func countFrequency (helperList,votingList) = {
2626 func foldFrequency (accum,next) = {
2727 func countItems (acc,item) = if ((next == item))
2828 then (acc + 1)
2929 else acc
3030
3131 (accum :+ {
3232 let $l = votingList
3333 let $s = size($l)
3434 let $acc0 = 0
3535 func $f0_1 ($a,$i) = if (($i >= $s))
3636 then $a
3737 else countItems($a, $l[$i])
3838
3939 func $f0_2 ($a,$i) = if (($i >= $s))
4040 then $a
4141 else throw("List size exceeds 5")
4242
4343 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
4444 })
4545 }
4646
4747 let $l = helperList
4848 let $s = size($l)
4949 let $acc0 = nil
5050 func $f0_1 ($a,$i) = if (($i >= $s))
5151 then $a
5252 else foldFrequency($a, $l[$i])
5353
5454 func $f0_2 ($a,$i) = if (($i >= $s))
5555 then $a
5656 else throw("List size exceeds 5")
5757
5858 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
5959 }
6060
6161
6262 func initVotingHelperList (voteArray) = {
6363 func foldHelperList (accum,next) = if ((containsElement(accum, next) == false))
6464 then (accum :+ next)
6565 else accum
6666
6767 let $l = voteArray
6868 let $s = size($l)
6969 let $acc0 = nil
7070 func $f0_1 ($a,$i) = if (($i >= $s))
7171 then $a
7272 else foldHelperList($a, $l[$i])
7373
7474 func $f0_2 ($a,$i) = if (($i >= $s))
7575 then $a
7676 else throw("List size exceeds 5")
7777
7878 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
7979 }
8080
8181
8282 func isGreaterThen (potential,itemList) = {
8383 let listLength = (size(itemList) - 1)
8484 let currentGreatest = itemList[listLength]
8585 if ((potential > currentGreatest))
8686 then true
8787 else false
8888 }
8989
9090
9191 func findHighestVote (helperList,frequencies) = {
9292 func foldFrequencies (highestItemList,nextItem) = if ((size(highestItemList) == 0))
9393 then (highestItemList :+ nextItem)
9494 else if (isGreaterThen(nextItem, highestItemList))
9595 then (highestItemList :+ nextItem)
9696 else highestItemList
9797
9898 let highestVotes = {
9999 let $l = frequencies
100100 let $s = size($l)
101101 let $acc0 = nil
102102 func $f0_1 ($a,$i) = if (($i >= $s))
103103 then $a
104104 else foldFrequencies($a, $l[$i])
105105
106106 func $f0_2 ($a,$i) = if (($i >= $s))
107107 then $a
108108 else throw("List size exceeds 5")
109109
110110 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
111111 }
112112 let lastIdx = (size(highestVotes) - 1)
113113 let highestVote = highestVotes[lastIdx]
114114 let helperIdx = indexOf(frequencies, highestVote)
115115 match helperIdx {
116116 case t: Int =>
117117 helperList[t]
118118 case _ =>
119119 throw("Type does not match! Function: findHighestVote")
120120 }
121121 }
122122
123123
124124 func createBoard (board) = makeString(board, ",")
125125
126126
127127 func alterBoard (newField,oldValue,gameId,team) = {
128128 let currentBoard = getStringValue((gameId + "_board"))
129129 let boardList = split(currentBoard, ",")
130130 let teamTag = if ((team == "teamBlue"))
131131 then "B"
132132 else "Y"
133133 func foldOldEntry (accum,nextValue) = {
134134 let $t046284651 = accum
135135 let result = $t046284651._1
136136 let j = $t046284651._2
137137 if ((j == oldValue))
138138 then $Tuple2((result :+ "0"), (j + 1))
139139 else $Tuple2((result :+ nextValue), (j + 1))
140140 }
141141
142142 func foldBoard (accum,nextValue) = {
143143 let $t048284851 = accum
144144 let result = $t048284851._1
145145 let j = $t048284851._2
146146 if ((j == newField))
147147 then $Tuple2((result :+ teamTag), (j + 1))
148148 else $Tuple2((result :+ nextValue), (j + 1))
149149 }
150150
151151 let cleanedBoard = {
152152 let $l = boardList
153153 let $s = size($l)
154154 let $acc0 = $Tuple2(nil, 0)
155155 func $f0_1 ($a,$i) = if (($i >= $s))
156156 then $a
157157 else foldOldEntry($a, $l[$i])
158158
159159 func $f0_2 ($a,$i) = if (($i >= $s))
160160 then $a
161161 else throw("List size exceeds 42")
162162
163163 $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)
164164 }
165165 let newBoardList = {
166166 let $l = cleanedBoard._1
167167 let $s = size($l)
168168 let $acc0 = $Tuple2(nil, 0)
169169 func $f1_1 ($a,$i) = if (($i >= $s))
170170 then $a
171171 else foldBoard($a, $l[$i])
172172
173173 func $f1_2 ($a,$i) = if (($i >= $s))
174174 then $a
175175 else throw("List size exceeds 42")
176176
177177 $f1_2($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_1($f1_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)
178178 }
179179 createBoard(newBoardList._1)
180180 }
181181
182182
183183 func updateVotingResults (currentVotingEntryList) = {
184184 func foldVotings (accum,nextValue) = (accum :+ split(nextValue, "_")[1])
185185
186186 let votes = {
187187 let $l = currentVotingEntryList
188188 let $s = size($l)
189189 let $acc0 = nil
190190 func $f0_1 ($a,$i) = if (($i >= $s))
191191 then $a
192192 else foldVotings($a, $l[$i])
193193
194194 func $f0_2 ($a,$i) = if (($i >= $s))
195195 then $a
196196 else throw("List size exceeds 5")
197197
198198 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
199199 }
200200 let helperList = initVotingHelperList(votes)
201201 let frequencies = countFrequency(helperList, votes)
202202 findHighestVote(helperList, frequencies)
203203 }
204204
205205
206206 func checkTeammembers (team,potentialMember) = if (!(containsElement(team, potentialMember)))
207207 then true
208208 else false
209209
210210
211211 @Callable(i)
212-func setup (adminAddress,tokenName,tokenDescription) = if (!(isDefined(getString(this, "admin"))))
212+func setup (tokenName,tokenDescription) = if (!(isDefined(getString(this, "admin"))))
213213 then {
214214 let asset = Issue(tokenName, tokenDescription, 0, 8, true)
215215 let tokenId = calculateAssetId(asset)
216-[asset, writeString("admin", adminAddress), writeInteger("votingDuration", 2), writeInteger("totalSupply", 0), writeString("tokenName", tokenName), writeString("tokenId", toBase58String(tokenId)), writeInteger("tokenDecimals", 8)]
216+[asset, writeString("admin", toBase58String(i.caller.bytes)), writeInteger("votingDuration", 2), writeInteger("totalSupply", 0), writeString("tokenName", tokenName), writeString("tokenId", toBase58String(tokenId)), writeInteger("tokenDecimals", 8)]
217217 }
218218 else throw("DApp already setup!")
219219
220220
221221
222222 @Callable(i)
223223 func buyRound () = if ((size(i.payments) > 0))
224224 then {
225225 let amount = i.payments[0].amount
226226 if ((amount >= 1))
227227 then {
228228 let cTokenAmount = fraction(amount, 42, 1)
229229 let currentTotalSupply = (totalSupply + cTokenAmount)
230230 [writeInteger("totalSupply", currentTotalSupply), Reissue(fromBase58String(ctokenId), cTokenAmount, true), ScriptTransfer(i.caller, cTokenAmount, fromBase58String(ctokenId))]
231231 }
232232 else throw("Payment is to small!")
233233 }
234234 else throw("No payment attached!")
235235
236236
237237
238238 @Callable(i)
239239 func createGame () = {
240240 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"
241241 let gameId = toBase58String(i.transactionId)
242242 [writeString((gameId + "_board"), board), writeString((gameId + "_status"), "waiting for players"), writeString((gameId + "_teamBlue"), toString(i.caller)), writeString((gameId + "_teamYellow"), "")]
243243 }
244244
245245
246246
247247 @Callable(i)
248248 func joinGame (gameId) = {
249249 let userAddress = toBase58String(i.caller.bytes)
250250 let teamBlue = getStringValue((gameId + "_teamBlue"))
251251 let teamYellow = getStringValue((gameId + "_teamYellow"))
252252 let teamBlueList = split(teamBlue, ",")
253253 let teamYellowList = if ((size(teamYellow) > 0))
254254 then split(teamYellow, ",")
255255 else nil
256256 if (if (checkTeammembers(teamBlueList, userAddress))
257257 then checkTeammembers(teamYellowList, userAddress)
258258 else false)
259259 then if ((maxPlayersPerTeam > size(teamBlueList)))
260260 then [writeString((gameId + "_teamBlue"), ((teamBlue + ",") + userAddress))]
261261 else if ((size(teamYellowList) == (maxPlayersPerTeam - 1)))
262262 then [writeString((gameId + "_status"), "round_1,turn_teamBlue"), writeString((gameId + "_voting_1"), ""), writeInteger((gameId + "_mostVoted"), -1), writeInteger((gameId + "_storedHeight"), (height + votingDuration)), writeString((gameId + "_teamYellow"), ((teamYellow + ",") + userAddress))]
263263 else if ((size(teamYellowList) == 0))
264264 then [writeString((gameId + "_teamYellow"), userAddress)]
265265 else if (((maxPlayersPerTeam - 1) > size(teamYellowList)))
266266 then [writeString((gameId + "_teamYellow"), ((teamYellow + ",") + userAddress))]
267267 else throw("Teams are full, cannot join.")
268268 else throw("Player already in a Team!")
269269 }
270270
271271
272272
273273 @Callable(i)
274274 func vote (gameId,voting) = {
275275 let status = valueOrErrorMessage(getStringValue((gameId + "_status")), "No status entry found under gameId!")
276276 let round = parseIntValue(drop(split(status, ",")[0], 6))
277277 let activeTeam = drop(split(status, ",")[1], 5)
278278 let storedHeight = valueOrErrorMessage(getInteger((gameId + "_storedHeight")), (("No status entry found under " + gameId) + "_storedHeight!"))
279279 let storedMostVoted = valueOrErrorMessage(getIntegerValue((gameId + "_mostVoted")), (("No status entry found under " + gameId) + "_mostVoted!"))
280280 let votingEntry = valueOrErrorMessage(getStringValue(((gameId + "_voting_") + toString(round))), "No votes found for this game id!")
281281 let votingEntryList = if ((size(votingEntry) > 0))
282282 then split(votingEntry, ",")
283283 else nil
284284 let members = if ((activeTeam == "teamBlue"))
285285 then {
286286 let teamB = getStringValue((gameId + "_teamBlue"))
287287 let teamBList = split(teamB, ",")
288288 teamBList
289289 }
290290 else {
291291 let teamY = getStringValue((gameId + "_teamYellow"))
292292 let teamYList = split(teamY, ",")
293293 teamYList
294294 }
295295 let unactiveTeam = if ((activeTeam == "teamBlue"))
296296 then "teamYellow"
297297 else "teamBlue"
298298 let membersUnactive = if ((unactiveTeam == "teamBlue"))
299299 then {
300300 let teamB = getStringValue((gameId + "_teamBlue"))
301301 let teamBList = split(teamB, ",")
302302 teamBList
303303 }
304304 else {
305305 let teamY = getStringValue((gameId + "_teamYellow"))
306306 let teamYList = split(teamY, ",")
307307 teamYList
308308 }
309309 let callerAddress = toBase58String(i.caller.bytes)
310310 if ((size(i.payments) > 0))
311311 then if ((fromBase58String(ctokenId) == i.payments[0].assetId))
312312 then if ((i.payments[0].amount == 100000000))
313313 then if ((storedHeight >= height))
314314 then if (containsElement(members, callerAddress))
315315 then {
316316 func foldVoters (accum,nextValue) = (accum :+ split(nextValue, "_")[0])
317317
318318 let voters = {
319319 let $l = votingEntryList
320320 let $s = size($l)
321321 let $acc0 = nil
322322 func $f0_1 ($a,$i) = if (($i >= $s))
323323 then $a
324324 else foldVoters($a, $l[$i])
325325
326326 func $f0_2 ($a,$i) = if (($i >= $s))
327327 then $a
328328 else throw("List size exceeds 5")
329329
330330 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5)
331331 }
332332 if ((containsElement(voters, callerAddress) == false))
333333 then {
334334 let newVote = ((callerAddress + "_") + toString(voting))
335335 let currentVotingEntryList = (votingEntryList :+ newVote)
336336 let currentVotingEntry = makeString(currentVotingEntryList, ",")
337337 let votedField = parseIntValue(updateVotingResults(currentVotingEntryList))
338338 let currentField = if ((votedField != storedMostVoted))
339339 then votedField
340340 else storedMostVoted
341341 let alteredBoard = alterBoard(currentField, storedMostVoted, gameId, activeTeam)
342342 if ((maxPlayersPerTeam > size(currentVotingEntryList)))
343343 then [writeString(((gameId + "_voting_") + toString(round)), currentVotingEntry), writeString((gameId + "_board"), alteredBoard), writeInteger((gameId + "_mostVoted"), currentField)]
344344 else [writeString(((gameId + "_voting_") + toString(round)), currentVotingEntry), writeString((gameId + "_board"), alteredBoard), writeInteger((gameId + "_mostVoted"), -1), writeInteger((gameId + "_storedHeight"), (height + votingDuration)), writeString((gameId + "_status"), ((("round_" + toString((round + 1))) + ",turn_") + unactiveTeam)), writeString(((gameId + "_voting_") + toString((round + 1))), "")]
345345 }
346346 else throw("Caller already voted!")
347347 }
348348 else throw((("Caller is not in " + activeTeam) + "!"))
349349 else if (containsElement(membersUnactive, callerAddress))
350350 then {
351351 let newVote = ((callerAddress + "_") + toString(voting))
352352 let currentVotingEntryList = [newVote]
353353 let votedField = parseIntValue(updateVotingResults(currentVotingEntryList))
354354 let alteredBoard = alterBoard(votedField, -1, gameId, activeTeam)
355355 [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), writeInteger((gameId + "_mostVoted"), votedField)]
356356 }
357357 else throw((("Caller is not in " + unactiveTeam) + "!"))
358358 else throw("Amount has to be 1!")
359359 else throw("Payment has to be a Connect four Token!")
360360 else throw("No Payment attached!")
361361 }
362362
363363
364364
365365 @Callable(i)
366366 func updateStringEntry (key,stringValue) = if (isAdmin(i.caller.bytes))
367367 then [writeString(key, stringValue)]
368368 else throw("Address does not match with admin address!")
369369
370370
371371
372372 @Callable(i)
373373 func updateIntegerEntry (key,integerValue) = if (isAdmin(i.caller.bytes))
374374 then [writeInteger(key, integerValue)]
375375 else throw("Address does not match with admin address!")
376376
377377
378378
379379 @Callable(i)
380380 func deleteStorageEntry (key) = if (isAdmin(i.caller.bytes))
381381 then [DeleteEntry(key)]
382382 else throw("Address does not match with admin address!")
383383
384384
385385 @Verifier(tx)
386386 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
387387

github/deemru/w8io/169f3d6 
78.89 ms