tx · 49gdCNhqeTzWhmk5Cbi9Nbko4BbSuwZNXXLt8xyC72L4

3N2Z6EjzrzaCpD8ypDYLWDKe2PPVU8y9dJs:  -0.01400000 Waves

2019.09.07 02:53 [664896] smart account 3N2Z6EjzrzaCpD8ypDYLWDKe2PPVU8y9dJs > SELF 0.00000000 Waves

{ "type": 13, "id": "49gdCNhqeTzWhmk5Cbi9Nbko4BbSuwZNXXLt8xyC72L4", "fee": 1400000, "feeAssetId": null, "timestamp": 1567814030997, "version": 1, "sender": "3N2Z6EjzrzaCpD8ypDYLWDKe2PPVU8y9dJs", "senderPublicKey": "HSTmdhPrJF81ozDBaqVn8QVtV76oD7gzDfcHPQRdxdwW", "proofs": [ "4oyZaNiwtso1fcaWsEo8sHskMHsCKJ5RFESWu5wyEG6J4EYHNp8A4Nyqw24u76D6gYfQdkCMUd3zDpJe5rRBvn3H" ], "script": "base64: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", "chainId": 84, "height": 664896, "spentComplexity": 0 } View: original | compacted Prev: Hnuoz15zweps2xD8SoPhAYxaX6M3nVT9HcHcHLaoSjPU Next: 3xdgn5HftbjmQoJa5ao3AypK5rrSQmkZXK4BjLvajARm Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let ServerBetPublicKey = fromBase58String("7im9caiCmE4SL6jTm4KTicHH4bGPf5v59rnfUA3cCRDj")
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 func getPlayersList (gameId,currentPlayer) = {
1919 let playersPresented = isDefined(getStringValue(this, (gameId + "_players")))
2020 if (!(playersPresented))
2121 then currentPlayer
2222 else if (isDefined(getStringValue(this, (((gameId + "_") + currentPlayer) + "_tickets"))))
2323 then getStringValue(this, (gameId + "_players"))
2424 else ((getStringValue(this, (gameId + "_players")) + "_") + currentPlayer)
2525 }
2626
2727
2828 func getTickets (paymentAmt) = {
2929 let lastTicket = getIntegerValue(this, LASTTICKET)
3030 let wavesPayment = (paymentAmt / WAVELET)
3131 let tickets = "011_03100__03101_03300__010_010__010_010__010_010"
3232 tickets
3333 }
3434
3535
3636 func IncrementGameNum () = {
3737 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
3838 case num: Int =>
3939 num
4040 case _ =>
4141 0
4242 }
4343 (gameNum + 1)
4444 }
4545
4646
4747 func getCurrentGame (txId) = {
4848 let gameId = getStringValue(this, CURRENTGAME)
4949 if ((gameId == ""))
5050 then txId
5151 else gameId
5252 }
5353
5454
5555 @Callable(i)
5656 func gameEnd () = {
5757 let gameData = [DataEntry(CURRENTGAME, "")]
5858 WriteSet(gameData)
5959 }
6060
6161
6262
6363 @Callable(i)
6464 func bet () = {
6565 let txId = toBase58String(i.transactionId)
6666 let gameId = getCurrentGame(txId)
6767 let pmt = extract(i.payment)
6868 let betNotInWaves = isDefined(pmt.assetId)
6969 let feeNotInWaves = isDefined(pmt.assetId)
7070 let playerPubKey58 = toBase58String(i.callerPublicKey)
7171 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
7272 let gameStillOpen = isDefined(getString(this, (gameId + "_result")))
7373 if (!(gameStillOpen))
7474 then if (betNotInWaves)
7575 then throw("Bet amount must be in Waves")
7676 else if (feeNotInWaves)
7777 then throw("Transaction's fee must be in Waves")
7878 else {
7979 let playerAddressStr = toString(playerAddress)
8080 let betData = [DataEntry(CURRENTGAME, gameId), DataEntry((((gameId + "_") + playerAddressStr) + "_tickets"), getTickets(pmt.amount)), DataEntry((gameId + "_players"), getPlayersList(gameId, playerAddressStr))]
8181 WriteSet(betData)
8282 }
8383 else throw("This game already end, try make bet again")
8484 }
8585
8686

github/deemru/w8io/026f985 
31.53 ms