tx · 9tuH1rfxj1xbC8fZg6b8Q5qF2UakJNGjjYkLnZH9HsnA

3N6yFJ5Z8NUUQvfGGMLp5efmevRRtTgQuun:  -0.01400000 Waves

2019.09.08 14:47 [667062] smart account 3N6yFJ5Z8NUUQvfGGMLp5efmevRRtTgQuun > SELF 0.00000000 Waves

{ "type": 13, "id": "9tuH1rfxj1xbC8fZg6b8Q5qF2UakJNGjjYkLnZH9HsnA", "fee": 1400000, "feeAssetId": null, "timestamp": 1567943204448, "version": 1, "sender": "3N6yFJ5Z8NUUQvfGGMLp5efmevRRtTgQuun", "senderPublicKey": "7uRSDXQUkUS7719CDA4wXghhzsWrF22gb18FGDPZyA6P", "proofs": [ "VXVzSDGqJAqMEH73onZ6E6sN72tJ3zR9UPbaVU1NyW9q8UtvUae3ATAaLifS8ZwFSVwFqjRz25kxEEAK7TSkdsY" ], "script": "base64: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cnkAAAACCQABLAAAAAIFAAAABmdhbWVJZAIAAAAIX3BsYXllcnMCAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAKTEFTVFRJQ0tFVAAAAAAAAAAAAAUAAAADbmlsCQEAAAAIV3JpdGVTZXQAAAABBQAAAAh6ZXJvRGF0YQAAAAFpAQAAAANiZXQAAAAABAAAAAR0eElkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAABmdhbWVJZAkBAAAADmdldEN1cnJlbnRHYW1lAAAAAQUAAAAEdHhJZAQAAAAHZ2FtZU51bQkBAAAAEEluY3JlbWVudEdhbWVOdW0AAAACBQAAAAZnYW1lSWQFAAAABHR4SWQEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAApwYXltZW50QW10CAUAAAADcG10AAAABmFtb3VudAQAAAANYmV0Tm90SW5XYXZlcwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAANZmVlTm90SW5XYXZlcwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAAOcGxheWVyUHViS2V5NTgJAAJYAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5BAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADnBsYXllclB1YktleTU4AwUAAAANYmV0Tm90SW5XYXZlcwkAAAIAAAABAgAAABtCZXQgYW1vdW50IG11c3QgYmUgaW4gV2F2ZXMDBQAAAA1mZWVOb3RJbldhdmVzCQAAAgAAAAECAAAAIlRyYW5zYWN0aW9uJ3MgZmVlIG11c3QgYmUgaW4gV2F2ZXMEAAAAEHBsYXllckFkZHJlc3NTdHIJAAQlAAAAAQUAAAANcGxheWVyQWRkcmVzcwQAAAAObmV3QmFua0JhbGFuY2UJAQAAAA5nZXRCYW5rQmFsYW5jZQAAAAIFAAAABmdhbWVJZAUAAAAKcGF5bWVudEFtdAQAAAAVbmV3VG90YWxQbGF5ZXJCZXRzQW10CQEAAAAVZ2V0VG90YWxQbGF5ZXJCZXRzQW10AAAAAwUAAAAGZ2FtZUlkBQAAABBwbGF5ZXJBZGRyZXNzU3RyBQAAAApwYXltZW50QW10BAAAAAdiZXREYXRhCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAtDVVJSRU5UR0FNRQUAAAAGZ2FtZUlkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA9HQU1FU0NPVU5URVJLRVkFAAAAB2dhbWVOdW0JAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAACkxBU1RUSUNLRVQJAQAAAA1nZXRMYXN0VGlja2V0AAAAAQUAAAAKcGF5bWVudEFtdAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAGZ2FtZUlkAgAAAAFfBQAAABBwbGF5ZXJBZGRyZXNzU3RyAgAAAAhfdGlja2V0cwkBAAAACmdldFRpY2tldHMAAAADBQAAAAZnYW1lSWQFAAAAEHBsYXllckFkZHJlc3NTdHIFAAAACnBheW1lbnRBbXQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAABmdhbWVJZAIAAAABXwUAAAAQcGxheWVyQWRkcmVzc1N0cgIAAAAKX2JldHNDb3VudAkAAGQAAAACCQEAAAASZ2V0UGxheWVyQmV0c0NvdW50AAAAAgUAAAAGZ2FtZUlkBQAAABBwbGF5ZXJBZGRyZXNzU3RyAAAAAAAAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAAAV8FAAAAEHBsYXllckFkZHJlc3NTdHICAAAADV90b3RhbEJldHNBbXQFAAAAFW5ld1RvdGFsUGxheWVyQmV0c0FtdAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAACF9wbGF5ZXJzCQEAAAAOZ2V0UGxheWVyc0xpc3QAAAACBQAAAAZnYW1lSWQFAAAAEHBsYXllckFkZHJlc3NTdHIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZnYW1lSWQCAAAAAV8FAAAABEJBTksFAAAADm5ld0JhbmtCYWxhbmNlBQAAAANuaWwEAAAAC3RvV2luU2VydmVyCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAACVdpblNlcnZlcgUAAAAKcGF5bWVudEFtdAUAAAAEdW5pdAUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQUAAAAHYmV0RGF0YQkBAAAAC1RyYW5zZmVyU2V0AAAAAQUAAAALdG9XaW5TZXJ2ZXIAAAAAH0ACcg==", "chainId": 84, "height": 667062, "spentComplexity": 0 } View: original | compacted Prev: 8SQjJKyJzYLw16Caj1HzR9DjTgmvy8sjJQ17Hwrtv4YV Next: D7SkS2NjKTnwPQU7JqG6YLpTLvCFJPx8CyCoftKVGVCH Diff:
OldNewDifferences
162162 let playerAddressStr = toString(playerAddress)
163163 let newBankBalance = getBankBalance(gameId, paymentAmt)
164164 let newTotalPlayerBetsAmt = getTotalPlayerBetsAmt(gameId, playerAddressStr, paymentAmt)
165- let betData = [DataEntry(CURRENTGAME, gameId), DataEntry(GAMESCOUNTERKEY, gameNum), 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(LASTTICKET, getLastTicket(paymentAmt)), DataEntry(((gameId + "_") + BANK), newBankBalance)]
165+ 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)]
166166 let toWinServer = [ScriptTransfer(WinServer, paymentAmt, unit)]
167167 ScriptResult(WriteSet(betData), TransferSet(toWinServer))
168168 }
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)
136136 func resetGameData (gameId) = {
137137 let playerPubKey58 = toBase58String(i.callerPublicKey)
138138 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
139139 let playerAddressStr = toString(playerAddress)
140140 let zeroData = [DataEntry(CURRENTGAME, ""), DataEntry(GAMESCOUNTERKEY, 0), DataEntry((((gameId + "_") + playerAddressStr) + "_tickets"), ""), DataEntry((((gameId + "_") + playerAddressStr) + "_betsCount"), 0), DataEntry((((gameId + "_") + playerAddressStr) + "_totalBetsAmt"), 0), DataEntry(((gameId + "_") + BANK), 0), DataEntry((gameId + "_players"), ""), DataEntry(LASTTICKET, 0)]
141141 WriteSet(zeroData)
142142 }
143143
144144
145145
146146 @Callable(i)
147147 func bet () = {
148148 let txId = toBase58String(i.transactionId)
149149 let gameId = getCurrentGame(txId)
150150 let gameNum = IncrementGameNum(gameId, txId)
151151 let pmt = extract(i.payment)
152152 let paymentAmt = pmt.amount
153153 let betNotInWaves = isDefined(pmt.assetId)
154154 let feeNotInWaves = isDefined(pmt.assetId)
155155 let playerPubKey58 = toBase58String(i.callerPublicKey)
156156 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
157157 if (betNotInWaves)
158158 then throw("Bet amount must be in Waves")
159159 else if (feeNotInWaves)
160160 then throw("Transaction's fee must be in Waves")
161161 else {
162162 let playerAddressStr = toString(playerAddress)
163163 let newBankBalance = getBankBalance(gameId, paymentAmt)
164164 let newTotalPlayerBetsAmt = getTotalPlayerBetsAmt(gameId, playerAddressStr, paymentAmt)
165- let betData = [DataEntry(CURRENTGAME, gameId), DataEntry(GAMESCOUNTERKEY, gameNum), 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(LASTTICKET, getLastTicket(paymentAmt)), DataEntry(((gameId + "_") + BANK), newBankBalance)]
165+ 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)]
166166 let toWinServer = [ScriptTransfer(WinServer, paymentAmt, unit)]
167167 ScriptResult(WriteSet(betData), TransferSet(toWinServer))
168168 }
169169 }
170170
171171

github/deemru/w8io/169f3d6 
51.07 ms