tx · 41kEYWvLYeBKSexbPQ5t5MRw8BqRjzwub46NHVcU9poN

3Mz7zzdQoHabgytXU3UuTAzADXPBBLgFqu8:  -0.01400000 Waves

2019.12.27 03:14 [826680] smart account 3Mz7zzdQoHabgytXU3UuTAzADXPBBLgFqu8 > SELF 0.00000000 Waves

{ "type": 13, "id": "41kEYWvLYeBKSexbPQ5t5MRw8BqRjzwub46NHVcU9poN", "fee": 1400000, "feeAssetId": null, "timestamp": 1577405684420, "version": 1, "sender": "3Mz7zzdQoHabgytXU3UuTAzADXPBBLgFqu8", "senderPublicKey": "6uncmj7GmSzxFAGGX8NcToqPxTxWUHW7Aj1WSbMH2qXw", "proofs": [ "GWnnHeyGtTgUD4nybEpy6EUy9tmcPBeTK5wXuFKUY8byYo6yCEP8bGaxJ5zjhewNV9p2CyExzno2T7zNTTg1pKh" ], "script": "base64:AAIDAAAAAAAAABIIARIICgYBAQEBAQESBAoCCAIAAAAbAAAAAAlSU0FQVUJMSUMJAAJbAAAAAQIAAAGPYmFzZTY0Ok1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBZzRkQVI2WGJCREFTOWhyL0VqM2RKdjZGZmM0NjZ4L21PR01XVTNsckFCczNxYThCSG11Skdua2ZicEVmMnZBd1lUT1dQdnZ6Zk0xME9CYmZsb1N5cTNjOU1LdnlUZTFsdUJMR3FXNHZaVVhJeXZTZ3oxbGl5VVZlZklReTNkeUY5amJlVFpiQzBiYmNULzdPM0RFTCswMXo2QStyRENhY1NaMGxHb2xTUTZBbmhMeHpJa1ZwT1FKYnJCbUMreCtadVpQQ01Xekp5bmQ1YWVPbjdqYWovbWtSVnl4ZTZnLzBPaFd6NE5paVpYZXVNUkIrOG1LeTBmV0QvVWxJbFpXSHNBUzJabXJrWEtxakxxMC8wd3I4SUxKa3pualNxZG5JNUliamczdVFyai80QU4raTlyMjhhUTczL1prUHRZNVNidzBBT2lBQkJ1N2dIbXE5YXlWeFpRSURBUUFCAAAAAA9HQU1FU0NPVU5URVJLRVkCAAAACSRHQU1FX05VTQAAAAAOUkVTRVJWQVRJT05LRVkCAAAAECRSRVNFUlZFRF9BTU9VTlQAAAAABFdCRVQBAAAAIIa0Nqh40w7M2PAXrUsuLAQfB5+6yrkWqUrXbyWtm9B2AAAAAA5XQUxMRVRXQVZFU0JFVAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVC8R8HhOr9aTn6luIitmtR+yU9d4zzto+wAAAAAMV0FMTEVUTUNBRkVFCQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFULxHweE6v1pOfqW4iK2a1H7JT13jPO2j7AAAAAAdXQVZFTEVUAAAAAAAF9eEAAAAAAAtGRUVXQVZFU0JFVAAAAAAAAAAABAAAAAAJRkVFTUNBRkVFAAAAAAAAAAACAAAAAAZCRVRNSU4JAABoAAAAAgAAAAAAAAAAAQUAAAAHV0FWRUxFVAAAAAAGQkVUTUFYCQAAaAAAAAIAAAAAAAExLQAFAAAAB1dBVkVMRVQBAAAACHNwbGl0QmV0AAAAAgAAAANudW0AAAADYmV0AwMJAAAAAAAA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AwkAAAAAAAACBQAAAANudW0AAAAAAAAAACIGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAIwYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAkBwAAAAAAAAAACwAAAAAAAAAAAAEAAAAJY29ybmVyQmV0AAAAAgAAAANudW0AAAADYmV0AwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAAABvAwMDCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAAAYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAABBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAAIGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAAwcAAAAAAAAAAAgDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAHADAwMJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAABBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAAIGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAABAYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAFBwAAAAAAAAAACAMDCQAAAAAAAAIFAAAAA2JldAAAAAAAAAAAcQMDAwkAAAAAAAACBQAAAANudW0AAAAAAAAAAAIGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAAwYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAFBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAAYHAAAAAAAAAAAIAwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAAAByAwMDCQAAAAAAAAIFAAAAA251bQAAAAAAAAAABAYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAFBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAAcGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAACAcAAAAAAAAAAAgDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAHMDAwMJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAFBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAAYGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAACAYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAJBwAAAAAAAAAACAMDCQAAAAAAAAIFAAAAA2JldAAAAAAAAAAAdAMDAwkAAAAAAAACBQAAAANudW0AAAAAAAAAAAcG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AAAIAwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAAACBAwMDCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAGgYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAbBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAB0GCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAHgcAAAAAAAAAAAgDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAIIDAwMJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAcBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAB0GCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAHwYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAgBwAAAAAAAAAACAMDCQAAAAAAAAIFAAAAA2JldAAAAAAAAAAAgwMDAwkAAAAAAAACBQAAAANudW0AAAAAAAAAAB0GCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAHgYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAgBgkAAAAAAAACBQAAAANudW0AAAAAAAAAACEHAAAAAAAAAAAIAwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAAACEAwMDCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAHwYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAgBgkAAAAAAAACBQAAAANudW0AAAAAAAAAACIGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAIwcAAAAAAAAAAAgDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAIUDAwMJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAgBgkAAAAAAAACBQAAAANudW0AAAAAAAAAACEGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAIwYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAkBwAAAAAAAAAACAAAAAAAAAAAAAEAAAAHbGluZUJldAAAAAIAAAADbnVtAAAAA2JldAMDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAIYJAABnAAAAAgUAAAADbnVtAAAAAAAAAAABBwkAAGcAAAACAAAAAAAAAAAGBQAAAANudW0HAAAAAAAAAAAFAwMDCQAAAAAAAAIFAAAAA2JldAAAAAAAAAAAhwkAAGcAAAACBQAAAANudW0AAAAAAAAAAAQHCQAAZwAAAAIAAAAAAAAAAAkFAAAAA251bQcAAAAAAAAAAAUDAwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAAACICQAAZwAAAAIFAAAAA251bQAAAAAAAAAABwcJAABnAAAAAgAAAAAAAAAADAUAAAADbnVtBwAAAAAAAAAABQMDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAIkJAABnAAAAAgUAAAADbnVtAAAAAAAAAAAKBwkAAGcAAAACAAAAAAAAAAAPBQAAAANudW0HAAAAAAAAAAAFAwMDCQAAAAAAAAIFAAAAA2JldAAAAAAAAAAAigkAAGcAAAACBQAAAANudW0AAAAAAAAAAA0HCQAAZwAAAAIAAAAAAAAAABIFAAAAA251bQcAAAAAAAAAAAUDAwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAAACLCQAAZwAAAAIFAAAAA251bQAAAAAAAAAAEAcJAABnAAAAAgAAAAAAAAAAFQUAAAADbnVtBwAAAAAAAAAABQMDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAIwJAABnAAAAAgUAAAADbnVtAAAAAAAAAAATBwkAAGcAAAACAAAAAAAAAAAYBQAAAANudW0HAAAAAAAAAAAFAwMDCQAAAAAAAAIFAAAAA2JldAAAAAAAAAAAjQkAAGcAAAACBQAAAANudW0AAAAAAAAAABYHCQAAZwAAAAIAAAAAAAAAABsFAAAAA251bQcAAAAAAAAAAAUDAwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAAACOCQAAZwAAAAIFAAAAA251bQAAAAAAAAAAGQcJAABnAAAAAgAAAAAAAAAAHgUAAAADbnVtBwAAAAAAAAAABQMDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAI8JAABnAAAAAgUAAAADbnVtAAAAAAAAAAAcBwkAAGcAAAACAAAAAAAAAAAhBQAAAANudW0HAAAAAAAAAAAFAwMDCQAAAAAAAAIFAAAAA2JldAAAAAAAAAAAkAkAAGcAAAACBQAAAANudW0AAAAAAAAAAB8HCQAAZwAAAAIAAAAAAAAAACQFAAAAA251bQcAAAAAAAAAAAUAAAAAAAAAAAABAAAACWNvbHVtbkJldAAAAAIAAAADbnVtAAAAA2JldAMDCQAAAAAAAAIFAAAAA2JldAAAAAAAAAAAkQMDAwMDAwMDAwMDAwkAAAAAAAACBQAAAANudW0AAAAAAAAAAAAGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAAQYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAEBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAAcGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAACgYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAANBgkAAAAAAAACBQAAAANudW0AAAAAAAAAABAGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAEwYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAWBgkAAAAAAAACBQAAAANudW0AAAAAAAAAABkGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAHAYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAfBgkAAAAAAAACBQAAAANudW0AAAAAAAAAACIHAAAAAAAAAAACAwMJAAAAAAAAAgUAAAADYmV0AAAAAAAAAACSAwMDAwMDAwMDAwMDCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAAAYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAACBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAAUGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAACAYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAALBgkAAAAAAAACBQAAAANudW0AAAAAAAAAAA4GCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAEQYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAUBgkAAAAAAAACBQAAAANudW0AAAAAAAAAABcGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAGgYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAdBgkAAAAAAAACBQAAAANudW0AAAAAAAAAACAGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAAIwcAAAAAAAAAAAIDAwkAAAAAAAACBQAAAANiZXQAAAAAAAAAAJMDAwMDAwMDAwMDAwMJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAABgkAAAAAAAACBQAAAANudW0AAAAAAAAAAAMGCQAAAAAAAAIFAAAAA251bQAAAAAAAAAABgYJAAAAAAAAAgUAAAADbnVtAAAAAAAAAAAJBgkAAAAAAAAC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CQEAAAALdmFsaWRhdGVCZXQAAAACBQAAAARiZXQxBQAAAAR2YWwxAgAAAAFfCQEAAAALdmFsaWRhdGVCZXQAAAACBQAAAARiZXQyBQAAAAR2YWwyAgAAAAFfCQEAAAALdmFsaWRhdGVCZXQAAAACBQAAAARiZXQzBQAAAAR2YWwzCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAPR0FNRVNDT1VOVEVSS0VZBQAAAApuZXdHYW1lTnVtCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAAC2dhbWVEYXRhU3RyBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAGZ2FtZUlkAAAABnJzYVNpZwQAAAAMZ2FtZURhdGFMaXN0CQEAAAATRXh0cmFjdEdhbWVEYXRhTGlzdAAAAAEFAAAABmdhbWVJZAQAAAAJZ2FtZVN0YXRlCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAAAAAAAAAAAAAQAAAAOcGxheWVyUHViS2V5NTgJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0AAAAAAAAAAABBAAAAA1wbGF5ZXJBZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAADnBsYXllclB1YktleTU4AwkBAAAAAiE9AAAAAgUAAAAJZ2FtZVN0YXRlAgAAAAlTVUJNSVRURUQJAAACAAAAAQIAAAA1SW52YWxpZCBnYW1lIHN0YXRlIGZvciBwYXNzZWQgZ2FtZUlkLiBHYW1lIGFib3J0ZWQuICAEAAAABHJhbmQJAQAAAA9HZW5lcmF0ZVJhbmRJbnQAAAACBQAAAAZnYW1lSWQFAAAABnJzYVNpZwQAAAAHcmFuZFN0cgkBAAAACVJhbmRUb1N0cgAAAAEFAAAABHJhbmQEAAAAB3Jlc3VsdDEJAQAAAAxyb3VsZXR0ZUNhbGMAAAADBQAAAARyYW5kCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAEvAAAAAgkAAZEAAAACBQAAAAxnYW1lRGF0YUxpc3QA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", "chainId": 84, "height": 826680, "spentComplexity": 0 } View: original | compacted Prev: 5RuDFME93mANMw55UZihkpom11or4qc9CRpT3BTAZwtc Next: AgdZodoK1hMCxC7L4c4bRGdNGLYPrqS5CqM5d5tpX4mz Diff:
OldNewDifferences
1919
2020 let FEEMCAFEE = 2
2121
22-let STATESUBMITTED = "SUBMITTED"
23-
24-let STATEWON = "WON"
25-
26-let STATELOST = "LOST"
27-
2822 let BETMIN = (1 * WAVELET)
2923
3024 let BETMAX = (20000000 * WAVELET)
31-
32-func straightUpBet (num,bet) = if ((num == bet))
33- then 35
34- else 0
35-
3625
3726 func splitBet (num,bet) = if (if ((num == 0))
3827 then if (if ((bet == 37))
987976 }
988977
989978
990-func lowHighBet (num,bet) = if (if (if ((bet == 155))
991- then (num >= 1)
992- else false)
993- then (18 >= num)
994- else false)
995- then 1
996- else if (if (if ((bet == 156))
997- then (num >= 19)
998- else false)
999- then (36 >= num)
1000- else false)
1001- then 1
1002- else 0
1003-
1004-
1005979 func rouletteCalc (num,bet,betValuet) = if (if ((bet >= 0))
1006980 then (36 >= bet)
1007981 else false)
1008- then (straightUpBet(num, bet) * betValuet)
982+ then if ((num == bet))
983+ then (35 * betValuet)
984+ else 0
1009985 else if (if ((bet >= 37))
1010986 then (96 >= bet)
1011987 else false)
10411017 else if (if ((bet == 155))
10421018 then true
10431019 else (bet == 156))
1044- then (lowHighBet(num, bet) * betValuet)
1020+ then if (if (if ((bet == 155))
1021+ then (num >= 1)
1022+ else false)
1023+ then (18 >= num)
1024+ else false)
1025+ then (1 * betValuet)
1026+ else if (if (if ((bet == 156))
1027+ then (num >= 19)
1028+ else false)
1029+ then (36 >= num)
1030+ else false)
1031+ then (1 * betValuet)
1032+ else 0
10451033 else throw("Random number out of range, 0 <= rand <= 36")
10461034
10471035
10731061 }
10741062
10751063
1076-func FormatGameDataStr (gameState,playerPubKey58,bet1,bet2,bet3) = {
1077- let fullStateStr = (((((gameState + "_") + (playerPubKey58 + "_")) + (bet1 + "_")) + (bet2 + "_")) + bet3)
1078- fullStateStr
1079- }
1080-
1081-
10821064 func GenerateRandInt (gameId,rsaSign) = {
10831065 let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), rsaSign, RSAPUBLIC)
10841066 if (rsaSigValid)
10991081 else throw(("Unsupported r parameter passed: expected=[0,...,36] actual=" + toString(r)))
11001082
11011083
1102-func formatBet (bet,betValue) = if ((10 > bet))
1103- then ((("00" + toString(bet)) + "-") + toString(betValue))
1104- else if (if ((bet >= 10))
1105- then (100 > bet)
1106- else false)
1107- then ((("0" + toString(bet)) + "-") + toString(betValue))
1108- else ((toString(bet) + "-") + toString(betValue))
1109-
1110-
11111084 func validateBet (bet,betValue) = if (if ((0 > bet))
11121085 then true
11131086 else (bet > 156))
11141087 then throw("invalid play, play must be between 0 and 156.")
11151088 else if ((0 > betValue))
11161089 then throw("Bet value must be greater than or equal to 0")
1117- else formatBet(bet, betValue)
1090+ else if ((10 > bet))
1091+ then ((("00" + toString(bet)) + "-") + toString(betValue))
1092+ else if (if ((bet >= 10))
1093+ then (100 > bet)
1094+ else false)
1095+ then ((("0" + toString(bet)) + "-") + toString(betValue))
1096+ else ((toString(bet) + "-") + toString(betValue))
1097+
1098+
1099+func ExtractGameDataList (gameId) = {
1100+ let rawDataStr = match getString(this, gameId) {
1101+ case str: String =>
1102+ str
1103+ case _ =>
1104+ throw(("Couldn't find game by " + gameId))
1105+ }
1106+ split(rawDataStr, "_")
1107+ }
11181108
11191109
11201110 @Callable(i)
11341124 else if (gameIdUsed)
11351125 then throw("Passed gameId had been used before. Game aborted.")
11361126 else if ((playAmount != payment.amount))
1137- then throw((("Payment value is different from bet value. " + toString(playAmount)) + toString(payment.amount)))
1127+ then throw("Payment value is different from bet value. ")
11381128 else {
11391129 let newGameNum = IncrementGameNum()
11401130 let playerPubKey58 = toBase58String(i.callerPublicKey)
1141- let gameDataStr = FormatGameDataStr(STATESUBMITTED, playerPubKey58, validateBet(bet1, val1), validateBet(bet2, val2), validateBet(bet3, val3))
1131+ let gameDataStr = (((((((("SUBMITTED" + "_") + playerPubKey58) + "_") + validateBet(bet1, val1)) + "_") + validateBet(bet2, val2)) + "_") + validateBet(bet3, val3))
11421132 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet(nil))
11431133 }
11441134 }
11471137
11481138 @Callable(i)
11491139 func withdraw (gameId,rsaSig) = {
1150- let gameDataList = split(gameId, "_")
1140+ let gameDataList = ExtractGameDataList(gameId)
11511141 let gameState = gameDataList[0]
11521142 let playerPubKey58 = gameDataList[1]
11531143 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
1154- if ((gameState != STATESUBMITTED))
1155- then throw(("Invalid game state for passed gameId. Game aborted. " + gameState))
1144+ if ((gameState != "SUBMITTED"))
1145+ then throw("Invalid game state for passed gameId. Game aborted. ")
11561146 else {
11571147 let rand = GenerateRandInt(gameId, rsaSig)
11581148 let randStr = RandToStr(rand)
11621152 let winAmt = (((result1 + result2) + result3) * WAVELET)
11631153 if ((winAmt > 0))
11641154 then {
1165- let newGameDataStr = ((((((((((((STATEWON + "_") + playerPubKey58) + "_") + gameDataList[3]) + "_") + gameDataList[4]) + "_") + gameDataList[5]) + "_") + toString(winAmt)) + "_") + randStr)
1155+ let newGameDataStr = (((((((((((("WON" + "_") + playerPubKey58) + "_") + gameDataList[3]) + "_") + gameDataList[4]) + "_") + gameDataList[5]) + "_") + toString(winAmt)) + "_") + randStr)
11661156 ScriptResult(WriteSet([DataEntry(gameId, newGameDataStr)]), TransferSet([ScriptTransfer(playerAddress, winAmt, WBET)]))
11671157 }
11681158 else {
1169- let newGameDataStr = ((((((((((((STATELOST + "_") + playerPubKey58) + "_") + gameDataList[3]) + "_") + gameDataList[4]) + "_") + gameDataList[5]) + "_") + toString(winAmt)) + "_") + randStr)
1159+ let newGameDataStr = (((((((((((("LOST" + "_") + playerPubKey58) + "_") + gameDataList[3]) + "_") + gameDataList[4]) + "_") + gameDataList[5]) + "_") + toString(winAmt)) + "_") + randStr)
11701160 WriteSet([DataEntry(gameId, newGameDataStr)])
11711161 }
11721162 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let RSAPUBLIC = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg4dAR6XbBDAS9hr/Ej3dJv6Ffc466x/mOGMWU3lrABs3qa8BHmuJGnkfbpEf2vAwYTOWPvvzfM10OBbfloSyq3c9MKvyTe1luBLGqW4vZUXIyvSgz1liyUVefIQy3dyF9jbeTZbC0bbcT/7O3DEL+01z6A+rDCacSZ0lGolSQ6AnhLxzIkVpOQJbrBmC+x+ZuZPCMWzJynd5aeOn7jaj/mkRVyxe6g/0OhWz4NiiZXeuMRB+8mKy0fWD/UlIlZWHsAS2ZmrkXKqjLq0/0wr8ILJkznjSqdnI5Ibjg3uQrj/4AN+i9r28aQ73/ZkPtY5Sbw0AOiABBu7gHmq9ayVxZQIDAQAB")
55
66 let GAMESCOUNTERKEY = "$GAME_NUM"
77
88 let RESERVATIONKEY = "$RESERVED_AMOUNT"
99
1010 let WBET = base58'A4q1mYKo11yuH9gmvDodeJoksagcyQzeFE9JtphMWddw'
1111
1212 let WALLETWAVESBET = Address(base58'3MtCy2PCFPyu8A9SRNL4qUo1V17SGLHftD8')
1313
1414 let WALLETMCAFEE = Address(base58'3MtCy2PCFPyu8A9SRNL4qUo1V17SGLHftD8')
1515
1616 let WAVELET = 100000000
1717
1818 let FEEWAVESBET = 4
1919
2020 let FEEMCAFEE = 2
2121
22-let STATESUBMITTED = "SUBMITTED"
23-
24-let STATEWON = "WON"
25-
26-let STATELOST = "LOST"
27-
2822 let BETMIN = (1 * WAVELET)
2923
3024 let BETMAX = (20000000 * WAVELET)
31-
32-func straightUpBet (num,bet) = if ((num == bet))
33- then 35
34- else 0
35-
3625
3726 func splitBet (num,bet) = if (if ((num == 0))
3827 then if (if ((bet == 37))
3928 then true
4029 else (bet == 38))
4130 then true
4231 else (bet == 39)
4332 else false)
4433 then 17
4534 else if (if ((num == 1))
4635 then if (if ((bet == 37))
4736 then true
4837 else (bet == 40))
4938 then true
5039 else (bet == 85)
5140 else false)
5241 then 17
5342 else if (if ((num == 1))
5443 then if (if ((bet == 37))
5544 then true
5645 else (bet == 40))
5746 then true
5847 else (bet == 85)
5948 else false)
6049 then 17
6150 else if (if ((num == 2))
6251 then if (if (if ((bet == 38))
6352 then true
6453 else (bet == 41))
6554 then true
6655 else (bet == 73))
6756 then true
6857 else (bet == 85)
6958 else false)
7059 then 17
7160 else if (if ((num == 3))
7261 then if (if ((bet == 39))
7362 then true
7463 else (bet == 42))
7564 then true
7665 else (bet == 73)
7766 else false)
7867 then 17
7968 else if (if ((num == 4))
8069 then if (if ((bet == 40))
8170 then true
8271 else (bet == 43))
8372 then true
8473 else (bet == 86)
8574 else false)
8675 then 17
8776 else if (if ((num == 5))
8877 then if (if (if ((bet == 41))
8978 then true
9079 else (bet == 44))
9180 then true
9281 else (bet == 74))
9382 then true
9483 else (bet == 86)
9584 else false)
9685 then 17
9786 else if (if ((num == 6))
9887 then if (if ((bet == 42))
9988 then true
10089 else (bet == 45))
10190 then true
10291 else (bet == 74)
10392 else false)
10493 then 17
10594 else if (if ((num == 7))
10695 then if (if ((bet == 43))
10796 then true
10897 else (bet == 46))
10998 then true
11099 else (bet == 87)
111100 else false)
112101 then 17
113102 else if (if ((num == 8))
114103 then if (if (if ((bet == 44))
115104 then true
116105 else (bet == 47))
117106 then true
118107 else (bet == 75))
119108 then true
120109 else (bet == 87)
121110 else false)
122111 then 17
123112 else if (if ((num == 9))
124113 then if (if ((bet == 45))
125114 then true
126115 else (bet == 48))
127116 then true
128117 else (bet == 75)
129118 else false)
130119 then 17
131120 else if (if ((num == 10))
132121 then if (if ((bet == 46))
133122 then true
134123 else (bet == 49))
135124 then true
136125 else (bet == 88)
137126 else false)
138127 then 17
139128 else if (if ((num == 11))
140129 then if (if (if ((bet == 47))
141130 then true
142131 else (bet == 50))
143132 then true
144133 else (bet == 76))
145134 then true
146135 else (bet == 88)
147136 else false)
148137 then 17
149138 else if (if ((num == 12))
150139 then if (if ((bet == 48))
151140 then true
152141 else (bet == 51))
153142 then true
154143 else (bet == 76)
155144 else false)
156145 then 17
157146 else if (if ((num == 13))
158147 then if (if ((bet == 49))
159148 then true
160149 else (bet == 52))
161150 then true
162151 else (bet == 89)
163152 else false)
164153 then 17
165154 else if (if ((num == 14))
166155 then if (if (if ((bet == 50))
167156 then true
168157 else (bet == 53))
169158 then true
170159 else (bet == 77))
171160 then true
172161 else (bet == 89)
173162 else false)
174163 then 17
175164 else if (if ((num == 15))
176165 then if (if ((bet == 51))
177166 then true
178167 else (bet == 54))
179168 then true
180169 else (bet == 77)
181170 else false)
182171 then 17
183172 else if (if ((num == 16))
184173 then if (if ((bet == 52))
185174 then true
186175 else (bet == 55))
187176 then true
188177 else (bet == 90)
189178 else false)
190179 then 17
191180 else if (if ((num == 17))
192181 then if (if (if ((bet == 53))
193182 then true
194183 else (bet == 56))
195184 then true
196185 else (bet == 78))
197186 then true
198187 else (bet == 90)
199188 else false)
200189 then 17
201190 else if (if ((num == 18))
202191 then if (if ((bet == 54))
203192 then true
204193 else (bet == 57))
205194 then true
206195 else (bet == 78)
207196 else false)
208197 then 17
209198 else if (if ((num == 19))
210199 then if (if ((bet == 55))
211200 then true
212201 else (bet == 58))
213202 then true
214203 else (bet == 91)
215204 else false)
216205 then 17
217206 else if (if ((num == 20))
218207 then if (if (if ((bet == 56))
219208 then true
220209 else (bet == 59))
221210 then true
222211 else (bet == 79))
223212 then true
224213 else (bet == 91)
225214 else false)
226215 then 17
227216 else if (if ((num == 21))
228217 then if (if ((bet == 57))
229218 then true
230219 else (bet == 60))
231220 then true
232221 else (bet == 79)
233222 else false)
234223 then 17
235224 else if (if ((num == 22))
236225 then if (if ((bet == 58))
237226 then true
238227 else (bet == 61))
239228 then true
240229 else (bet == 92)
241230 else false)
242231 then 17
243232 else if (if ((num == 23))
244233 then if (if (if ((bet == 59))
245234 then true
246235 else (bet == 62))
247236 then true
248237 else (bet == 80))
249238 then true
250239 else (bet == 92)
251240 else false)
252241 then 17
253242 else if (if ((num == 24))
254243 then if (if ((bet == 60))
255244 then true
256245 else (bet == 63))
257246 then true
258247 else (bet == 80)
259248 else false)
260249 then 17
261250 else if (if ((num == 25))
262251 then if (if ((bet == 61))
263252 then true
264253 else (bet == 64))
265254 then true
266255 else (bet == 93)
267256 else false)
268257 then 17
269258 else if (if ((num == 26))
270259 then if (if (if ((bet == 62))
271260 then true
272261 else (bet == 65))
273262 then true
274263 else (bet == 81))
275264 then true
276265 else (bet == 93)
277266 else false)
278267 then 17
279268 else if (if ((num == 27))
280269 then if (if ((bet == 63))
281270 then true
282271 else (bet == 66))
283272 then true
284273 else (bet == 81)
285274 else false)
286275 then 17
287276 else if (if ((num == 28))
288277 then if (if ((bet == 64))
289278 then true
290279 else (bet == 67))
291280 then true
292281 else (bet == 94)
293282 else false)
294283 then 17
295284 else if (if ((num == 29))
296285 then if (if (if ((bet == 65))
297286 then true
298287 else (bet == 68))
299288 then true
300289 else (bet == 82))
301290 then true
302291 else (bet == 94)
303292 else false)
304293 then 17
305294 else if (if ((num == 30))
306295 then if (if ((bet == 66))
307296 then true
308297 else (bet == 69))
309298 then true
310299 else (bet == 82)
311300 else false)
312301 then 17
313302 else if (if ((num == 31))
314303 then if (if ((bet == 67))
315304 then true
316305 else (bet == 70))
317306 then true
318307 else (bet == 95)
319308 else false)
320309 then 17
321310 else if (if ((num == 32))
322311 then if (if (if ((bet == 68))
323312 then true
324313 else (bet == 71))
325314 then true
326315 else (bet == 83))
327316 then true
328317 else (bet == 95)
329318 else false)
330319 then 17
331320 else if (if ((num == 33))
332321 then if (if ((bet == 69))
333322 then true
334323 else (bet == 72))
335324 then true
336325 else (bet == 83)
337326 else false)
338327 then 17
339328 else if (if ((num == 34))
340329 then if ((bet == 70))
341330 then true
342331 else (bet == 96)
343332 else false)
344333 then 17
345334 else if (if (if ((num == 35))
346335 then if (if ((bet == 71))
347336 then true
348337 else (bet == 84))
349338 then true
350339 else (bet == 96)
351340 else false)
352341 then true
353342 else if ((num == 36))
354343 then if ((bet == 72))
355344 then true
356345 else (bet == 84)
357346 else false)
358347 then 17
359348 else if (if ((num == 36))
360349 then if ((bet == 72))
361350 then true
362351 else (bet == 84)
363352 else false)
364353 then 17
365354 else 0
366355
367356
368357 func streetBet (num,bet) = if (if ((bet == 97))
369358 then if (if ((num == 0))
370359 then true
371360 else (num == 1))
372361 then true
373362 else (num == 2)
374363 else false)
375364 then 11
376365 else if (if ((bet == 98))
377366 then if (if ((num == 0))
378367 then true
379368 else (num == 2))
380369 then true
381370 else (num == 3)
382371 else false)
383372 then 11
384373 else if (if ((bet == 99))
385374 then if (if ((num == 1))
386375 then true
387376 else (num == 2))
388377 then true
389378 else (num == 3)
390379 else false)
391380 then 11
392381 else if (if ((bet == 100))
393382 then if (if ((num == 4))
394383 then true
395384 else (num == 5))
396385 then true
397386 else (num == 6)
398387 else false)
399388 then 11
400389 else if (if ((bet == 101))
401390 then if (if ((num == 7))
402391 then true
403392 else (num == 8))
404393 then true
405394 else (num == 9)
406395 else false)
407396 then 11
408397 else if (if ((bet == 102))
409398 then if (if ((num == 10))
410399 then true
411400 else (num == 11))
412401 then true
413402 else (num == 12)
414403 else false)
415404 then 11
416405 else if (if ((bet == 103))
417406 then if (if ((num == 13))
418407 then true
419408 else (num == 14))
420409 then true
421410 else (num == 15)
422411 else false)
423412 then 11
424413 else if (if ((bet == 104))
425414 then if (if ((num == 16))
426415 then true
427416 else (num == 17))
428417 then true
429418 else (num == 18)
430419 else false)
431420 then 11
432421 else if (if ((bet == 105))
433422 then if (if ((num == 19))
434423 then true
435424 else (num == 20))
436425 then true
437426 else (num == 21)
438427 else false)
439428 then 11
440429 else if (if ((bet == 106))
441430 then if (if ((num == 22))
442431 then true
443432 else (num == 23))
444433 then true
445434 else (num == 24)
446435 else false)
447436 then 11
448437 else if (if ((bet == 107))
449438 then if (if ((num == 25))
450439 then true
451440 else (num == 26))
452441 then true
453442 else (num == 27)
454443 else false)
455444 then 11
456445 else if (if ((bet == 108))
457446 then if (if ((num == 28))
458447 then true
459448 else (num == 29))
460449 then true
461450 else (num == 30)
462451 else false)
463452 then 11
464453 else if (if ((bet == 109))
465454 then if (if ((num == 31))
466455 then true
467456 else (num == 32))
468457 then true
469458 else (num == 33)
470459 else false)
471460 then 11
472461 else if (if ((bet == 110))
473462 then if (if ((num == 34))
474463 then true
475464 else (num == 35))
476465 then true
477466 else (num == 36)
478467 else false)
479468 then 11
480469 else 0
481470
482471
483472 func cornerBet (num,bet) = if (if ((bet == 111))
484473 then if (if (if ((num == 0))
485474 then true
486475 else (num == 1))
487476 then true
488477 else (num == 2))
489478 then true
490479 else (num == 3)
491480 else false)
492481 then 8
493482 else if (if ((bet == 112))
494483 then if (if (if ((num == 1))
495484 then true
496485 else (num == 2))
497486 then true
498487 else (num == 4))
499488 then true
500489 else (num == 5)
501490 else false)
502491 then 8
503492 else if (if ((bet == 113))
504493 then if (if (if ((num == 2))
505494 then true
506495 else (num == 3))
507496 then true
508497 else (num == 5))
509498 then true
510499 else (num == 6)
511500 else false)
512501 then 8
513502 else if (if ((bet == 114))
514503 then if (if (if ((num == 4))
515504 then true
516505 else (num == 5))
517506 then true
518507 else (num == 7))
519508 then true
520509 else (num == 8)
521510 else false)
522511 then 8
523512 else if (if ((bet == 115))
524513 then if (if (if ((num == 5))
525514 then true
526515 else (num == 6))
527516 then true
528517 else (num == 8))
529518 then true
530519 else (num == 9)
531520 else false)
532521 then 8
533522 else if (if ((bet == 116))
534523 then if (if (if ((num == 7))
535524 then true
536525 else (num == 8))
537526 then true
538527 else (num == 10))
539528 then true
540529 else (num == 11)
541530 else false)
542531 then 8
543532 else if (if ((bet == 117))
544533 then if (if (if ((num == 8))
545534 then true
546535 else (num == 9))
547536 then true
548537 else (num == 11))
549538 then true
550539 else (num == 12)
551540 else false)
552541 then 8
553542 else if (if ((bet == 118))
554543 then if (if (if ((num == 10))
555544 then true
556545 else (num == 11))
557546 then true
558547 else (num == 13))
559548 then true
560549 else (num == 14)
561550 else false)
562551 then 8
563552 else if (if ((bet == 119))
564553 then if (if (if ((num == 11))
565554 then true
566555 else (num == 12))
567556 then true
568557 else (num == 14))
569558 then true
570559 else (num == 15)
571560 else false)
572561 then 8
573562 else if (if ((bet == 120))
574563 then if (if (if ((num == 13))
575564 then true
576565 else (num == 14))
577566 then true
578567 else (num == 16))
579568 then true
580569 else (num == 17)
581570 else false)
582571 then 8
583572 else if (if ((bet == 121))
584573 then if (if (if ((num == 14))
585574 then true
586575 else (num == 15))
587576 then true
588577 else (num == 17))
589578 then true
590579 else (num == 18)
591580 else false)
592581 then 8
593582 else if (if ((bet == 122))
594583 then if (if (if ((num == 16))
595584 then true
596585 else (num == 17))
597586 then true
598587 else (num == 19))
599588 then true
600589 else (num == 20)
601590 else false)
602591 then 8
603592 else if (if ((bet == 123))
604593 then if (if (if ((num == 17))
605594 then true
606595 else (num == 18))
607596 then true
608597 else (num == 20))
609598 then true
610599 else (num == 21)
611600 else false)
612601 then 8
613602 else if (if ((bet == 124))
614603 then if (if (if ((num == 19))
615604 then true
616605 else (num == 20))
617606 then true
618607 else (num == 22))
619608 then true
620609 else (num == 23)
621610 else false)
622611 then 8
623612 else if (if ((bet == 125))
624613 then if (if (if ((num == 20))
625614 then true
626615 else (num == 21))
627616 then true
628617 else (num == 23))
629618 then true
630619 else (num == 24)
631620 else false)
632621 then 8
633622 else if (if ((bet == 126))
634623 then if (if (if ((num == 22))
635624 then true
636625 else (num == 23))
637626 then true
638627 else (num == 25))
639628 then true
640629 else (num == 26)
641630 else false)
642631 then 8
643632 else if (if ((bet == 127))
644633 then if (if (if ((num == 23))
645634 then true
646635 else (num == 24))
647636 then true
648637 else (num == 26))
649638 then true
650639 else (num == 27)
651640 else false)
652641 then 8
653642 else if (if ((bet == 128))
654643 then if (if (if ((num == 25))
655644 then true
656645 else (num == 26))
657646 then true
658647 else (num == 28))
659648 then true
660649 else (num == 29)
661650 else false)
662651 then 8
663652 else if (if ((bet == 129))
664653 then if (if (if ((num == 26))
665654 then true
666655 else (num == 27))
667656 then true
668657 else (num == 29))
669658 then true
670659 else (num == 30)
671660 else false)
672661 then 8
673662 else if (if ((bet == 130))
674663 then if (if (if ((num == 28))
675664 then true
676665 else (num == 29))
677666 then true
678667 else (num == 31))
679668 then true
680669 else (num == 32)
681670 else false)
682671 then 8
683672 else if (if ((bet == 131))
684673 then if (if (if ((num == 29))
685674 then true
686675 else (num == 30))
687676 then true
688677 else (num == 32))
689678 then true
690679 else (num == 33)
691680 else false)
692681 then 8
693682 else if (if ((bet == 132))
694683 then if (if (if ((num == 31))
695684 then true
696685 else (num == 32))
697686 then true
698687 else (num == 34))
699688 then true
700689 else (num == 35)
701690 else false)
702691 then 8
703692 else if (if ((bet == 133))
704693 then if (if (if ((num == 32))
705694 then true
706695 else (num == 33))
707696 then true
708697 else (num == 35))
709698 then true
710699 else (num == 36)
711700 else false)
712701 then 8
713702 else 0
714703
715704
716705 func lineBet (num,bet) = if (if (if ((bet == 134))
717706 then (num >= 1)
718707 else false)
719708 then (6 >= num)
720709 else false)
721710 then 5
722711 else if (if (if ((bet == 135))
723712 then (num >= 4)
724713 else false)
725714 then (9 >= num)
726715 else false)
727716 then 5
728717 else if (if (if ((bet == 136))
729718 then (num >= 7)
730719 else false)
731720 then (12 >= num)
732721 else false)
733722 then 5
734723 else if (if (if ((bet == 137))
735724 then (num >= 10)
736725 else false)
737726 then (15 >= num)
738727 else false)
739728 then 5
740729 else if (if (if ((bet == 138))
741730 then (num >= 13)
742731 else false)
743732 then (18 >= num)
744733 else false)
745734 then 5
746735 else if (if (if ((bet == 139))
747736 then (num >= 16)
748737 else false)
749738 then (21 >= num)
750739 else false)
751740 then 5
752741 else if (if (if ((bet == 140))
753742 then (num >= 19)
754743 else false)
755744 then (24 >= num)
756745 else false)
757746 then 5
758747 else if (if (if ((bet == 141))
759748 then (num >= 22)
760749 else false)
761750 then (27 >= num)
762751 else false)
763752 then 5
764753 else if (if (if ((bet == 142))
765754 then (num >= 25)
766755 else false)
767756 then (30 >= num)
768757 else false)
769758 then 5
770759 else if (if (if ((bet == 143))
771760 then (num >= 28)
772761 else false)
773762 then (33 >= num)
774763 else false)
775764 then 5
776765 else if (if (if ((bet == 144))
777766 then (num >= 31)
778767 else false)
779768 then (36 >= num)
780769 else false)
781770 then 5
782771 else 0
783772
784773
785774 func columnBet (num,bet) = if (if ((bet == 145))
786775 then if (if (if (if (if (if (if (if (if (if (if (if ((num == 0))
787776 then true
788777 else (num == 1))
789778 then true
790779 else (num == 4))
791780 then true
792781 else (num == 7))
793782 then true
794783 else (num == 10))
795784 then true
796785 else (num == 13))
797786 then true
798787 else (num == 16))
799788 then true
800789 else (num == 19))
801790 then true
802791 else (num == 22))
803792 then true
804793 else (num == 25))
805794 then true
806795 else (num == 28))
807796 then true
808797 else (num == 31))
809798 then true
810799 else (num == 34)
811800 else false)
812801 then 2
813802 else if (if ((bet == 146))
814803 then if (if (if (if (if (if (if (if (if (if (if (if ((num == 0))
815804 then true
816805 else (num == 2))
817806 then true
818807 else (num == 5))
819808 then true
820809 else (num == 8))
821810 then true
822811 else (num == 11))
823812 then true
824813 else (num == 14))
825814 then true
826815 else (num == 17))
827816 then true
828817 else (num == 20))
829818 then true
830819 else (num == 23))
831820 then true
832821 else (num == 26))
833822 then true
834823 else (num == 29))
835824 then true
836825 else (num == 32))
837826 then true
838827 else (num == 35)
839828 else false)
840829 then 2
841830 else if (if ((bet == 147))
842831 then if (if (if (if (if (if (if (if (if (if (if (if ((num == 0))
843832 then true
844833 else (num == 3))
845834 then true
846835 else (num == 6))
847836 then true
848837 else (num == 9))
849838 then true
850839 else (num == 12))
851840 then true
852841 else (num == 15))
853842 then true
854843 else (num == 18))
855844 then true
856845 else (num == 21))
857846 then true
858847 else (num == 24))
859848 then true
860849 else (num == 27))
861850 then true
862851 else (num == 30))
863852 then true
864853 else (num == 33))
865854 then true
866855 else (num == 36)
867856 else false)
868857 then 2
869858 else 0
870859
871860
872861 func dozenBet (num,bet) = if (if (if ((bet == 148))
873862 then (num >= 1)
874863 else false)
875864 then (12 >= num)
876865 else false)
877866 then 2
878867 else if (if (if ((bet == 149))
879868 then (num >= 13)
880869 else false)
881870 then (24 >= num)
882871 else false)
883872 then 2
884873 else if (if (if ((bet == 150))
885874 then (num >= 25)
886875 else false)
887876 then (36 >= num)
888877 else false)
889878 then 2
890879 else 0
891880
892881
893882 func colorBet (num,bet) = if (if ((bet == 151))
894883 then if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if ((num == 1))
895884 then true
896885 else (num == 3))
897886 then true
898887 else (num == 5))
899888 then true
900889 else (num == 7))
901890 then true
902891 else (num == 9))
903892 then true
904893 else (num == 12))
905894 then true
906895 else (num == 14))
907896 then true
908897 else (num == 16))
909898 then true
910899 else (num == 18))
911900 then true
912901 else (num == 19))
913902 then true
914903 else (num == 21))
915904 then true
916905 else (num == 23))
917906 then true
918907 else (num == 25))
919908 then true
920909 else (num == 27))
921910 then true
922911 else (num == 30))
923912 then true
924913 else (num == 32))
925914 then true
926915 else (num == 34))
927916 then true
928917 else (num == 36)
929918 else false)
930919 then 2
931920 else if (if ((bet == 152))
932921 then if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if (if ((num == 2))
933922 then true
934923 else (num == 4))
935924 then true
936925 else (num == 6))
937926 then true
938927 else (num == 8))
939928 then true
940929 else (num == 10))
941930 then true
942931 else (num == 11))
943932 then true
944933 else (num == 13))
945934 then true
946935 else (num == 15))
947936 then true
948937 else (num == 17))
949938 then true
950939 else (num == 20))
951940 then true
952941 else (num == 22))
953942 then true
954943 else (num == 24))
955944 then true
956945 else (num == 26))
957946 then true
958947 else (num == 28))
959948 then true
960949 else (num == 29))
961950 then true
962951 else (num == 31))
963952 then true
964953 else (num == 33))
965954 then true
966955 else (num == 35)
967956 else false)
968957 then 2
969958 else 0
970959
971960
972961 func evenOddBet (num,bet) = {
973962 let rem = (num % 2)
974963 if (if (if ((num > 0))
975964 then (bet == 153)
976965 else false)
977966 then (rem == 0)
978967 else false)
979968 then 1
980969 else if (if (if ((num > 0))
981970 then (bet == 154)
982971 else false)
983972 then (rem != 0)
984973 else false)
985974 then 1
986975 else 0
987976 }
988977
989978
990-func lowHighBet (num,bet) = if (if (if ((bet == 155))
991- then (num >= 1)
992- else false)
993- then (18 >= num)
994- else false)
995- then 1
996- else if (if (if ((bet == 156))
997- then (num >= 19)
998- else false)
999- then (36 >= num)
1000- else false)
1001- then 1
1002- else 0
1003-
1004-
1005979 func rouletteCalc (num,bet,betValuet) = if (if ((bet >= 0))
1006980 then (36 >= bet)
1007981 else false)
1008- then (straightUpBet(num, bet) * betValuet)
982+ then if ((num == bet))
983+ then (35 * betValuet)
984+ else 0
1009985 else if (if ((bet >= 37))
1010986 then (96 >= bet)
1011987 else false)
1012988 then (splitBet(num, bet) * betValuet)
1013989 else if (if ((bet >= 97))
1014990 then (110 >= bet)
1015991 else false)
1016992 then (streetBet(num, bet) * betValuet)
1017993 else if (if ((bet >= 111))
1018994 then (133 >= bet)
1019995 else false)
1020996 then (cornerBet(num, bet) * betValuet)
1021997 else if (if ((bet >= 134))
1022998 then (144 >= bet)
1023999 else false)
10241000 then (lineBet(num, bet) * betValuet)
10251001 else if (if ((bet >= 145))
10261002 then (147 >= bet)
10271003 else false)
10281004 then (columnBet(num, bet) * betValuet)
10291005 else if (if ((bet >= 148))
10301006 then (150 >= bet)
10311007 else false)
10321008 then (dozenBet(num, bet) * betValuet)
10331009 else if (if ((bet == 151))
10341010 then true
10351011 else (bet == 152))
10361012 then (colorBet(num, bet) * betValuet)
10371013 else if (if ((bet == 153))
10381014 then true
10391015 else (bet == 154))
10401016 then (evenOddBet(num, bet) * betValuet)
10411017 else if (if ((bet == 155))
10421018 then true
10431019 else (bet == 156))
1044- then (lowHighBet(num, bet) * betValuet)
1020+ then if (if (if ((bet == 155))
1021+ then (num >= 1)
1022+ else false)
1023+ then (18 >= num)
1024+ else false)
1025+ then (1 * betValuet)
1026+ else if (if (if ((bet == 156))
1027+ then (num >= 19)
1028+ else false)
1029+ then (36 >= num)
1030+ else false)
1031+ then (1 * betValuet)
1032+ else 0
10451033 else throw("Random number out of range, 0 <= rand <= 36")
10461034
10471035
10481036 func IncrementGameNum () = {
10491037 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
10501038 case num: Int =>
10511039 num
10521040 case _ =>
10531041 0
10541042 }
10551043 (gameNum + 1)
10561044 }
10571045
10581046
10591047 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
10601048 case a: Int =>
10611049 a
10621050 case _ =>
10631051 0
10641052 }
10651053
10661054
10671055 func ValidateAndIncreaseReservedAmt (winAmt) = {
10681056 let newReservedAmount = (ExtractReservedAmt() + winAmt)
10691057 let balance = assetBalance(this, WBET)
10701058 if ((newReservedAmount > balance))
10711059 then throw("Insufficient funds on Wavesbet Dice account. Transaction was rejected for your safety.")
10721060 else newReservedAmount
10731061 }
10741062
10751063
1076-func FormatGameDataStr (gameState,playerPubKey58,bet1,bet2,bet3) = {
1077- let fullStateStr = (((((gameState + "_") + (playerPubKey58 + "_")) + (bet1 + "_")) + (bet2 + "_")) + bet3)
1078- fullStateStr
1079- }
1080-
1081-
10821064 func GenerateRandInt (gameId,rsaSign) = {
10831065 let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), rsaSign, RSAPUBLIC)
10841066 if (rsaSigValid)
10851067 then {
10861068 let rand = ((toInt(sha256(rsaSign)) % 100) * 37)
10871069 if ((0 > rand))
10881070 then ((-1 * rand) + 1)
10891071 else (rand + 1)
10901072 }
10911073 else throw("Invalid RSA signature")
10921074 }
10931075
10941076
10951077 func RandToStr (r) = if (if ((r >= 1))
10961078 then (36 >= r)
10971079 else false)
10981080 then toString(r)
10991081 else throw(("Unsupported r parameter passed: expected=[0,...,36] actual=" + toString(r)))
11001082
11011083
1102-func formatBet (bet,betValue) = if ((10 > bet))
1103- then ((("00" + toString(bet)) + "-") + toString(betValue))
1104- else if (if ((bet >= 10))
1105- then (100 > bet)
1106- else false)
1107- then ((("0" + toString(bet)) + "-") + toString(betValue))
1108- else ((toString(bet) + "-") + toString(betValue))
1109-
1110-
11111084 func validateBet (bet,betValue) = if (if ((0 > bet))
11121085 then true
11131086 else (bet > 156))
11141087 then throw("invalid play, play must be between 0 and 156.")
11151088 else if ((0 > betValue))
11161089 then throw("Bet value must be greater than or equal to 0")
1117- else formatBet(bet, betValue)
1090+ else if ((10 > bet))
1091+ then ((("00" + toString(bet)) + "-") + toString(betValue))
1092+ else if (if ((bet >= 10))
1093+ then (100 > bet)
1094+ else false)
1095+ then ((("0" + toString(bet)) + "-") + toString(betValue))
1096+ else ((toString(bet) + "-") + toString(betValue))
1097+
1098+
1099+func ExtractGameDataList (gameId) = {
1100+ let rawDataStr = match getString(this, gameId) {
1101+ case str: String =>
1102+ str
1103+ case _ =>
1104+ throw(("Couldn't find game by " + gameId))
1105+ }
1106+ split(rawDataStr, "_")
1107+ }
11181108
11191109
11201110 @Callable(i)
11211111 func playRoulette (bet1,val1,bet2,val2,bet3,val3) = {
11221112 let gameId = toBase58String(i.transactionId)
11231113 let gameIdUsed = isDefined(getString(this, gameId))
11241114 let payment = extract(i.payment)
11251115 let feeAssetId = isDefined(i.feeAssetId)
11261116 let playerBalance = wavesBalance(i.caller)
11271117 let playAmount = (((val1 + val2) + val3) * WAVELET)
11281118 if ((payment.assetId != WBET))
11291119 then throw("Payment should be in Wavesbet")
11301120 else if ((1000000 > playerBalance))
11311121 then throw("There are not enough waves, it takes 0.01 Waves to bet. Game aborted.")
11321122 else if (feeAssetId)
11331123 then throw("Transaction's fee must be in Waves. Game aborted.")
11341124 else if (gameIdUsed)
11351125 then throw("Passed gameId had been used before. Game aborted.")
11361126 else if ((playAmount != payment.amount))
1137- then throw((("Payment value is different from bet value. " + toString(playAmount)) + toString(payment.amount)))
1127+ then throw("Payment value is different from bet value. ")
11381128 else {
11391129 let newGameNum = IncrementGameNum()
11401130 let playerPubKey58 = toBase58String(i.callerPublicKey)
1141- let gameDataStr = FormatGameDataStr(STATESUBMITTED, playerPubKey58, validateBet(bet1, val1), validateBet(bet2, val2), validateBet(bet3, val3))
1131+ let gameDataStr = (((((((("SUBMITTED" + "_") + playerPubKey58) + "_") + validateBet(bet1, val1)) + "_") + validateBet(bet2, val2)) + "_") + validateBet(bet3, val3))
11421132 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet(nil))
11431133 }
11441134 }
11451135
11461136
11471137
11481138 @Callable(i)
11491139 func withdraw (gameId,rsaSig) = {
1150- let gameDataList = split(gameId, "_")
1140+ let gameDataList = ExtractGameDataList(gameId)
11511141 let gameState = gameDataList[0]
11521142 let playerPubKey58 = gameDataList[1]
11531143 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
1154- if ((gameState != STATESUBMITTED))
1155- then throw(("Invalid game state for passed gameId. Game aborted. " + gameState))
1144+ if ((gameState != "SUBMITTED"))
1145+ then throw("Invalid game state for passed gameId. Game aborted. ")
11561146 else {
11571147 let rand = GenerateRandInt(gameId, rsaSig)
11581148 let randStr = RandToStr(rand)
11591149 let result1 = rouletteCalc(rand, parseIntValue(take(gameDataList[3], 3)), parseIntValue(drop(gameDataList[3], 4)))
11601150 let result2 = rouletteCalc(rand, parseIntValue(take(gameDataList[4], 3)), parseIntValue(drop(gameDataList[4], 4)))
11611151 let result3 = rouletteCalc(rand, parseIntValue(take(gameDataList[5], 3)), parseIntValue(drop(gameDataList[5], 4)))
11621152 let winAmt = (((result1 + result2) + result3) * WAVELET)
11631153 if ((winAmt > 0))
11641154 then {
1165- let newGameDataStr = ((((((((((((STATEWON + "_") + playerPubKey58) + "_") + gameDataList[3]) + "_") + gameDataList[4]) + "_") + gameDataList[5]) + "_") + toString(winAmt)) + "_") + randStr)
1155+ let newGameDataStr = (((((((((((("WON" + "_") + playerPubKey58) + "_") + gameDataList[3]) + "_") + gameDataList[4]) + "_") + gameDataList[5]) + "_") + toString(winAmt)) + "_") + randStr)
11661156 ScriptResult(WriteSet([DataEntry(gameId, newGameDataStr)]), TransferSet([ScriptTransfer(playerAddress, winAmt, WBET)]))
11671157 }
11681158 else {
1169- let newGameDataStr = ((((((((((((STATELOST + "_") + playerPubKey58) + "_") + gameDataList[3]) + "_") + gameDataList[4]) + "_") + gameDataList[5]) + "_") + toString(winAmt)) + "_") + randStr)
1159+ let newGameDataStr = (((((((((((("LOST" + "_") + playerPubKey58) + "_") + gameDataList[3]) + "_") + gameDataList[4]) + "_") + gameDataList[5]) + "_") + toString(winAmt)) + "_") + randStr)
11701160 WriteSet([DataEntry(gameId, newGameDataStr)])
11711161 }
11721162 }
11731163 }
11741164
11751165

github/deemru/w8io/169f3d6 
98.82 ms