tx · 4UF2aAB8sUf8ueTmvxf7LGSBmdhBWR9G6W2JyaDU684m

3N6yFJ5Z8NUUQvfGGMLp5efmevRRtTgQuun:  -0.01400000 Waves

2019.09.17 22:53 [680688] smart account 3N6yFJ5Z8NUUQvfGGMLp5efmevRRtTgQuun > SELF 0.00000000 Waves

{ "type": 13, "id": "4UF2aAB8sUf8ueTmvxf7LGSBmdhBWR9G6W2JyaDU684m", "fee": 1400000, "feeAssetId": null, "timestamp": 1568750000075, "version": 1, "sender": "3N6yFJ5Z8NUUQvfGGMLp5efmevRRtTgQuun", "senderPublicKey": "7uRSDXQUkUS7719CDA4wXghhzsWrF22gb18FGDPZyA6P", "proofs": [ "5mFggKXgGUHG5wvWPyHaserQcqxN6583tYww7LvmE1Wf8icgWcw7EYDV3rLUEq4od1zLBCiK1vJvzCVb12SYtz8c" ], "script": "base64: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AAABBQAAAAdnYW1lTnVtAQAAABZnZXRPckNyZWF0ZUN1cnJlbnRHYW1lAAAAAQAAAAR0eElkBAAAABZpc0N1cnJlbnRHYW1lUHJlc2VudGVkCQEAAAAJaXNEZWZpbmVkAAAAAQkABB0AAAACBQAAAAR0aGlzBQAAAAtDVVJSRU5UR0FNRQMJAQAAAAEhAAAAAQUAAAAWaXNDdXJyZW50R2FtZVByZXNlbnRlZAUAAAAEdHhJZAMJAAAAAAAAAgkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAALQ1VSUkVOVEdBTUUCAAAAAAUAAAAEdHhJZAkBAAAAEUBleHRyTmF0aXZlKDEwNTMpAAAAAgUAAAAEdGhpcwUAAAALQ1VSUkVOVEdBTUUBAAAADmdldEN1cnJlbnRHYW1lAAAAAQAAAAR0eElkBAAAAAZnYW1lSWQJAQAAABZnZXRPckNyZWF0ZUN1cnJlbnRHYW1lAAAAAQUAAAAEdHhJZAQAAAARZ2FtZUFscmVhZHlQbGF5ZWQJAQAAAAlpc0RlZmluZWQAAAABCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgUAAAAGZ2FtZUlkAgAAAAdfcmVzdWx0AwUAAAARZ2FtZUFscmVhZHlQbGF5ZWQFAAAABHR4SWQFAAAABmdhbWVJZAEAAAAOZ2V0QmFua0JhbGFuY2UAAAACAAAABmdhbWVJZAAAAApwYXltZW50QW10BAAAAAtiYW5rQmFsYW5jZQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAGZ2FtZUlkAgAAAAFfBQAAAARCQU5LAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAA251bQUAAAAHJG1hdGNoMAUAAAADbnVtAAAAAAAAAAAACQAAZAAAAAIFAAAAC2JhbmtCYWxhbmNlBQAAAApwYXltZW50QW10AQAAABVnZXRUb3RhbFBsYXllckJldHNBbXQAAAADAAAABmdhbWVJZAAAABBwbGF5ZXJBZGRyZXNzU3RyAAAACnBheW1lbnRBbXQEAAAAD3RvdGFsUGxheWVyQmV0cwQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAAAV8FAAAAEHBsYXllckFkZHJlc3NTdHICAAAADV90b3RhbEJldHNBbXQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADbnVtBQAAAAckbWF0Y2gwBQAAAANudW0AAAAAAAAAAAAJAABkAAAAAgUAAAAPdG90YWxQbGF5ZXJCZXRzBQAAAApwYXltZW50QW10AAAAAwAAAAFpAQAAAAlzZXRBdmF0YXIAAAABAAAABmF2YXRhcgQAAAAOcGxheWVyUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADnBsYXllclB1YktleTU4BAAAABBwbGF5ZXJBZGRyZXNzU3RyCQAEJQAAAAEFAAAADXBsYXllckFkZHJlc3MEAAAADHBsYXllckF2YXRhcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAABBwbGF5ZXJBZGRyZXNzU3RyAgAAAAdfYXZhdGFyBQAAAAZhdmF0YXIFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQUAAAAMcGxheWVyQXZhdGFyAAAAAWkBAAAADXJlc2V0R2FtZURhdGEAAAABAAAABmdhbWVJZAQAAAAIemVyb0RhdGEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAC0NVUlJFTlRHQU1FAgAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACkxBU1RUSUNLRVQAAAAAAAAAAAAFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQUAAAAIemVyb0RhdGEAAAABaQEAAAADYmV0AAAAAAQAAAAEdHhJZAkAAlgAAAABCAUAAAABaQAAAA10cmFuc2FjdGlvbklkBAAAAAZnYW1lSWQJAQAAAA5nZXRDdXJyZW50R2FtZQAAAAEFAAAABHR4SWQEAAAAB2dhbWVOdW0JAQAAABBJbmNyZW1lbnRHYW1lTnVtAAAAAgUAAAAGZ2FtZUlkBQAAAAR0eElkBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAKcGF5bWVudEFtdAkAAGUAAAACCAUAAAADcG10AAAABmFtb3VudAUAAAAKQ09NTUlTU0lPTgQAAAANYmV0Tm90SW5XYXZlcwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAANZmVlTm90SW5XYXZlcwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAAOcGxheWVyUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADnBsYXllclB1YktleTU4AwUAAAANYmV0Tm90SW5XYXZlcwkAAAIAAAABAgAAABtCZXQgYW1vdW50IG11c3QgYmUgaW4gV2F2ZXMDBQAAAA1mZWVOb3RJbldhdmVzCQAAAgAAAAECAAAAIlRyYW5zYWN0aW9uJ3MgZmVlIG11c3QgYmUgaW4gV2F2ZXMEAAAAEHBsYXllckFkZHJlc3NTdHIJAAQlAAAAAQUAAAANcGxheWVyQWRkcmVzcwQAAAAObmV3QmFua0JhbGFuY2UJAQAAAA5nZXRCYW5rQmFsYW5jZQAAAAIFAAAABmdhbWVJZAUAAAAKcGF5bWVudEFtdAQAAAAVbmV3VG90YWxQbGF5ZXJCZXRzQW10CQEAAAAVZ2V0VG90YWxQbGF5ZXJCZXRzQW10AAAAAwUAAAAGZ2FtZUlkBQAAABBwbGF5ZXJBZGRyZXNzU3RyBQAAAApwYXltZW50QW10BAAAAAdiZXREYXRhCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAtDVVJSRU5UR0FNRQUAAAAGZ2FtZUlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9HQU1FU0NPVU5URVJLRVkFAAAAB2dhbWVOdW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACkxBU1RUSUNLRVQJAQAAAA1nZXRMYXN0VGlja2V0AAAAAQUAAAAKcGF5bWVudEFtdAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAGZ2FtZUlkAgAAAAFfBQAAABBwbGF5ZXJBZGRyZXNzU3RyAgAAAAhfdGlja2V0cwkBAAAACmdldFRpY2tldHMAAAADBQAAAAZnYW1lSWQFAAAAEHBsYXllckFkZHJlc3NTdHIFAAAACnBheW1lbnRBbXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABmdhbWVJZAIAAAABXwUAAAAQcGxheWVyQWRkcmVzc1N0cgIAAAAKX2JldHNDb3VudAkAAGQAAAACCQEAAAASZ2V0UGxheWVyQmV0c0NvdW50AAAAAgUAAAAGZ2FtZUlkBQAAABBwbGF5ZXJBZGRyZXNzU3RyAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAAAV8FAAAAEHBsYXllckFkZHJlc3NTdHICAAAADV90b3RhbEJldHNBbXQFAAAAFW5ld1RvdGFsUGxheWVyQmV0c0FtdAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAACF9wbGF5ZXJzCQEAAAAOZ2V0UGxheWVyc0xpc3QAAAACBQAAAAZnYW1lSWQFAAAAEHBsYXllckFkZHJlc3NTdHIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAAAV8FAAAABEJBTksFAAAADm5ld0JhbmtCYWxhbmNlBQAAAANuaWwEAAAAC3RvV2luU2VydmVyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAACVdpblNlcnZlcgUAAAAKcGF5bWVudEFtdAUAAAAEdW5pdAUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQUAAAAHYmV0RGF0YQkBAAAAC1RyYW5zZmVyU2V0AAAAAQUAAAALdG9XaW5TZXJ2ZXIAAAAANxOLlw==", "chainId": 84, "height": 680688, "spentComplexity": 0 } View: original | compacted Prev: 71bAeZXJKHVw8VATmnqsfXWPbpJ8FsWr6j6swtPXvfHP Next: none Diff:
OldNewDifferences
133133
134134
135135 @Callable(i)
136+func setAvatar (avatar) = {
137+ let playerPubKey58 = toBase58String(i.callerPublicKey)
138+ let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
139+ let playerAddressStr = toString(playerAddress)
140+ let playerAvatar = [DataEntry((playerAddressStr + "_avatar"), avatar)]
141+ WriteSet(playerAvatar)
142+ }
143+
144+
145+
146+@Callable(i)
136147 func resetGameData (gameId) = {
137148 let zeroData = [DataEntry(CURRENTGAME, ""), DataEntry(LASTTICKET, 0)]
138149 WriteSet(zeroData)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let WinServer = addressFromStringValue("3N9XnyPpWxYohKH7z5dEuq8rpnobpyzPrzE")
55
66 let WAVELET = ((100 * 1000) * 1000)
77
88 let COMMISSION = ((5 * WAVELET) / 1000)
99
1010 let TicketsPerWave = 100
1111
1212 let CURRENTGAME = "$CURRENT_GAME"
1313
1414 let GAMESCOUNTERKEY = "$GAME_NUM"
1515
1616 let LASTTICKET = "$LAST_TICKET"
1717
1818 let BANK = "$GAME_BANK"
1919
2020 func getPlayersList (gameId,currentPlayer) = {
2121 let playersPresented = isDefined(getString(this, (gameId + "_players")))
2222 if (!(playersPresented))
2323 then currentPlayer
2424 else if (isDefined(getString(this, (((gameId + "_") + currentPlayer) + "_tickets"))))
2525 then getStringValue(this, (gameId + "_players"))
2626 else ((getStringValue(this, (gameId + "_players")) + "_") + currentPlayer)
2727 }
2828
2929
3030 func getOrCreateLastTicket () = {
3131 let isLastTicketPresented = isDefined(getInteger(this, LASTTICKET))
3232 if (!(isLastTicketPresented))
3333 then 0
3434 else getIntegerValue(this, LASTTICKET)
3535 }
3636
3737
3838 func getPlayerBetsCount (gameId,playerAddressStr) = {
3939 let betsCount = match getInteger(this, (((gameId + "_") + playerAddressStr) + "_betsCount")) {
4040 case num: Int =>
4141 num
4242 case _ =>
4343 0
4444 }
4545 betsCount
4646 }
4747
4848
4949 func getTickets (gameId,playerAddressStr,paymentAmt) = {
5050 let lastTicket = getOrCreateLastTicket()
5151 let wavesPayment = (paymentAmt / WAVELET)
5252 let firstNewTicket = (lastTicket + 1)
5353 let lastNewTicket = ((firstNewTicket + (wavesPayment * TicketsPerWave)) - 1)
5454 let firstNewTicketStr = toString(firstNewTicket)
5555 let lastNewTicketStr = toString(lastNewTicket)
5656 let ticketsStr = isDefined(getString(this, (((gameId + "_") + playerAddressStr) + "_tickets")))
5757 if (ticketsStr)
5858 then {
5959 let currentTickets = getStringValue(this, (((gameId + "_") + playerAddressStr) + "_tickets"))
6060 let currentPlayerBetNum = getPlayerBetsCount(gameId, playerAddressStr)
6161 let CTL = split(currentTickets, "_")
6262 if ((currentPlayerBetNum == 1))
6363 then (((((((CTL[0] + "_") + CTL[1]) + "_") + firstNewTicketStr) + "_") + lastNewTicketStr) + "_0_0_0_0")
6464 else if ((currentPlayerBetNum == 2))
6565 then (((((((((((CTL[0] + "_") + CTL[1]) + "_") + CTL[2]) + "_") + CTL[3]) + "_") + firstNewTicketStr) + "_") + lastNewTicketStr) + "_0_0")
6666 else if ((currentPlayerBetNum == 3))
6767 then ((((((((((((((CTL[0] + "_") + CTL[1]) + "_") + CTL[2]) + "_") + CTL[3]) + "_") + CTL[4]) + "_") + CTL[5]) + "_") + firstNewTicketStr) + "_") + lastNewTicketStr)
6868 else throw("Error, bid limit exceeded")
6969 }
7070 else (((firstNewTicketStr + "_") + lastNewTicketStr) + "_0_0_0_0_0_0")
7171 }
7272
7373
7474 func getLastTicket (paymentAmt) = {
7575 let lastTicket = getOrCreateLastTicket()
7676 let wavesPayment = (paymentAmt / WAVELET)
7777 (lastTicket + (wavesPayment * TicketsPerWave))
7878 }
7979
8080
8181 func IncrementGameNum (gameId,txId) = {
8282 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
8383 case num: Int =>
8484 num
8585 case _ =>
8686 0
8787 }
8888 if ((gameId == txId))
8989 then (gameNum + 1)
9090 else gameNum
9191 }
9292
9393
9494 func getOrCreateCurrentGame (txId) = {
9595 let isCurrentGamePresented = isDefined(getString(this, CURRENTGAME))
9696 if (!(isCurrentGamePresented))
9797 then txId
9898 else if ((getStringValue(this, CURRENTGAME) == ""))
9999 then txId
100100 else getStringValue(this, CURRENTGAME)
101101 }
102102
103103
104104 func getCurrentGame (txId) = {
105105 let gameId = getOrCreateCurrentGame(txId)
106106 let gameAlreadyPlayed = isDefined(getString(this, (gameId + "_result")))
107107 if (gameAlreadyPlayed)
108108 then txId
109109 else gameId
110110 }
111111
112112
113113 func getBankBalance (gameId,paymentAmt) = {
114114 let bankBalance = match getInteger(this, ((gameId + "_") + BANK)) {
115115 case num: Int =>
116116 num
117117 case _ =>
118118 0
119119 }
120120 (bankBalance + paymentAmt)
121121 }
122122
123123
124124 func getTotalPlayerBetsAmt (gameId,playerAddressStr,paymentAmt) = {
125125 let totalPlayerBets = match getInteger(this, (((gameId + "_") + playerAddressStr) + "_totalBetsAmt")) {
126126 case num: Int =>
127127 num
128128 case _ =>
129129 0
130130 }
131131 (totalPlayerBets + paymentAmt)
132132 }
133133
134134
135135 @Callable(i)
136+func setAvatar (avatar) = {
137+ let playerPubKey58 = toBase58String(i.callerPublicKey)
138+ let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
139+ let playerAddressStr = toString(playerAddress)
140+ let playerAvatar = [DataEntry((playerAddressStr + "_avatar"), avatar)]
141+ WriteSet(playerAvatar)
142+ }
143+
144+
145+
146+@Callable(i)
136147 func resetGameData (gameId) = {
137148 let zeroData = [DataEntry(CURRENTGAME, ""), DataEntry(LASTTICKET, 0)]
138149 WriteSet(zeroData)
139150 }
140151
141152
142153
143154 @Callable(i)
144155 func bet () = {
145156 let txId = toBase58String(i.transactionId)
146157 let gameId = getCurrentGame(txId)
147158 let gameNum = IncrementGameNum(gameId, txId)
148159 let pmt = extract(i.payment)
149160 let paymentAmt = (pmt.amount - COMMISSION)
150161 let betNotInWaves = isDefined(pmt.assetId)
151162 let feeNotInWaves = isDefined(pmt.assetId)
152163 let playerPubKey58 = toBase58String(i.callerPublicKey)
153164 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
154165 if (betNotInWaves)
155166 then throw("Bet amount must be in Waves")
156167 else if (feeNotInWaves)
157168 then throw("Transaction's fee must be in Waves")
158169 else {
159170 let playerAddressStr = toString(playerAddress)
160171 let newBankBalance = getBankBalance(gameId, paymentAmt)
161172 let newTotalPlayerBetsAmt = getTotalPlayerBetsAmt(gameId, playerAddressStr, paymentAmt)
162173 let betData = [DataEntry(CURRENTGAME, gameId), DataEntry(GAMESCOUNTERKEY, gameNum), DataEntry(LASTTICKET, getLastTicket(paymentAmt)), DataEntry((((gameId + "_") + playerAddressStr) + "_tickets"), getTickets(gameId, playerAddressStr, paymentAmt)), DataEntry((((gameId + "_") + playerAddressStr) + "_betsCount"), (getPlayerBetsCount(gameId, playerAddressStr) + 1)), DataEntry((((gameId + "_") + playerAddressStr) + "_totalBetsAmt"), newTotalPlayerBetsAmt), DataEntry((gameId + "_players"), getPlayersList(gameId, playerAddressStr)), DataEntry(((gameId + "_") + BANK), newBankBalance)]
163174 let toWinServer = [ScriptTransfer(WinServer, paymentAmt, unit)]
164175 ScriptResult(WriteSet(betData), TransferSet(toWinServer))
165176 }
166177 }
167178
168179

github/deemru/w8io/026f985 
44.94 ms