tx · 77P66cZjLaVTy76TH3CFQzBu6trprVKrpnZQndRXpCQG

3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa:  -0.05000000 Waves

2019.10.25 21:00 [735969] smart account 3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa > SELF 0.00000000 Waves

{ "type": 13, "id": "77P66cZjLaVTy76TH3CFQzBu6trprVKrpnZQndRXpCQG", "fee": 5000000, "feeAssetId": null, "timestamp": 1572026351231, "version": 1, "sender": "3NCs4motPXw3h6vyT7o6PAKmbo3e2jk8kHa", "senderPublicKey": "DdkgRd7YzZtSU3hXJc7sHsU7sM8nUSEwkzqZCaCTXKRe", "proofs": [ "28KzGHzzETyATkB5MqKrrEYZyNHmag9oPKgHh3LyNxv6GtXUfaR5YN679nC3aVzAF1b4ztaMjcrrBAtVo5JQGhVe" ], "script": "base64:AAIDAAAAAAAAAA4IARIECgIIARIECgIIAgAAACgAAAAACVJTQVBVQkxJQwkAAlsAAAABAgAAAN9iYXNlNjQ6TFMwdExTMUNSVWRKVGlCU1UwRWdVRlZDVEVsRElFdEZXUzB0TFMwdENrMUZaME5SVVVOVWRXaEhNaXQzTjBzelMyaDJjMjg0VVVOT1R5OUZWMU50TUdOblFWZHRPVmRTYmtkTE1qQXhiV1ZhUldGMFpqZG1VbUpEUkZBeFQzSUtiM0U1V1ZnMU5XRlhlbGhGUjJKRFkzVndPRTltWVdSMFdWRm5Sa0ZuVFVKQlFVVTlDaTB0TFMwdFJVNUVJRkpUUVNCUVZVSk1TVU1nUzBWWkxTMHRMUzA9AAAAAA9HQU1FU0NPVU5URVJLRVkCAAAACSRHQU1FX05VTQAAAAAOUkVTRVJWQVRJT05LRVkCAAAAECRSRVNFUlZFRF9BTU9VTlQAAAAABFdCRVQBAAAAIA+bi6xab2gnOR9SbfiMgOxiQKrNdZOH+I5+YI04ouDJAAAAAA5XQUxMRVRXQVZFU0JFVAkBAAAAB0FkZHJlc3MAAAABAQAAABoBVI5g9Ot7MZAQi0oorIsDrn13KqbnHOA4uAAAAAAMV0FMTEVUTUNBRkZFCQEAAAAHQWRkcmVzcwAAAAEBAAAAAAAAAAAHV0FWRUxFVAkAAGgAAAACCQAAaAAAAAIAAAAAAAAAAGQAAAAAAAAAA+gAAAAAAAAAA+gAAAAAC0ZFRVdBVkVTQkVUAAAAAAAAAAAEAAAAAAlGRUVNQ0FGRUUAAAAAAAAAAAIAAAAADlNUQVRFU1VCTUlUVEVEAgAAAAlTVUJNSVRURUQAAAAACFNUQVRFV09OAgAAAANXT04AAAAACVNUQVRFTE9TVAIAAAAETE9TVAAAAAAJUk9MTFVOREVSAgAAAAVVTkRFUgAAAAAIUk9MTE9WRVICAAAABE9WRVIAAAAABkJFVE1JTgkAAGgAAAACAAAAAAAAAABkBQAAAAdXQVZFTEVUAAAAAAZCRVRNQVgJAABoAAAAAgkAAGgAAAACAAAAAAAAAAPoAAAAAAAAAABkBQAAAAdXQVZFTEVUAAAAAA1QUkVESUNUSU9OTUlOAAAAAAAAAAAEAAAAAA1QUkVESUNUSU9OTUFYAAAAAAAAAABkAAAAAAxJZHhHYW1lU3RhdGUA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AAAAJgAAAAAAAAJslgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAJwAAAAAAAAJ2vgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKAAAAAAAAAKBQAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKQAAAAAAAAKMHAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKgAAAAAAAAKXXAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAKwAAAAAAAAKjAAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALAAAAAAAAAKvEgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALQAAAAAAAAK7kgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALgAAAAAAAALV8AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAALwAAAAAAAALV8AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMAAAAAAAAALj7AMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMQAAAAAAAALyagMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMgAAAAAAAAMBiAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAMwAAAAAAAAMRPAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAANAAAAAAAAAMhkAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAANQAAAAAAAAMyogMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAANgAAAAAAAANEcgMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAANwAAAAAAAANXAAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAOAAAAAAAAANqdAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAOQAAAAAAAAN+xAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAOgAAAAAAAAOUGAMJAAAAAAAAAgUAAAAKcHJlZGljdGlvbgAAAAAAAAAAOwAAAAAAAAOqcAMJAAAA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QkVUBQAAAAlGRUVNQ0FGRUUAAAAAAAAAAGQAAAACAAAAAWkBAAAACHBsYXlEaWNlAAAAAgAAAAhyb2xsVHlwZQAAAApwcmVkaWN0aW9uBAAAAAZnYW1lSWQJAAJYAAAAAQgFAAAAAWkAAAANdHJhbnNhY3Rpb25JZAQAAAAKZ2FtZUlkVXNlZAkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAAGZ2FtZUlkBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAFpAAAAB3BheW1lbnQEAAAACmZlZUFzc2V0SWQJAQAAAAlpc0RlZmluZWQAAAABCAUAAAABaQAAAApmZWVBc3NldElkBAAAAAZ3aW5BbXQJAQAAABpWYWxpZGF0ZUJldEFuZERlZmluZVdpbkFtdAAAAAMIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAKcHJlZGljdGlvbgUAAAAIcm9sbFR5cGUEAAAADXBsYXllckJhbGFuY2UJAQAAAAx3YXZlc0JhbGFuY2UAAAABCAUAAAABaQAAAAZjYWxsZXIDCQAAZgAAAAIAAAAAAAABhqAFAAAADXBsYXllckJhbGFuY2UJAAACAAAAAQIAAABFVGhlcmUgYXJlIG5vdCBlbm91Z2ggd2F2ZXMsIGl0IHRha2VzIDAuMDEgV2F2ZXMgdG8gYmV0LiBHYW1lIGFib3J0ZWQuAwkBAAAAAiE9AAAAAggFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAAEV0JFVAkAAAIAAAABAgAAAClCZXQgYW1vdW50IG11c3QgYmUgaW4gV2JldC4gR2FtZSBhYm9ydGVkLgMFAAAACmZlZUFzc2V0SWQJAAACAAAAAQIAAAAxVHJhbnNhY3Rpb24ncyBmZWUgbXVzdCBiZSBpbiBXYXZlcy4gR2FtZSBhYm9ydGVkLgMFAAAACmdhbWVJZFVzZWQJAAACAAAAAQIAAAAxUGFzc2VkIGdhbWVJZCBoYWQgYmVlbiB1c2VkIGJlZm9yZS4gR2FtZSBhYm9ydGVkLgQAAAAKbmV3R2FtZU51bQkBAAAAEEluY3JlbWVudEdhbWVOdW0AAAAABAAAAA5wbGF5ZXJQdWJLZXk1OAkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAAC2dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAA5TVEFURVNVQk1JVFRFRAUAAAAKcHJlZGljdGlvbgUAAAAIcm9sbFR5cGUFAAAADnBsYXllclB1YktleTU4BQAAAAZ3aW5BbXQCAAAAAAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAD0dBTUVTQ09VTlRFUktFWQUAAAAKbmV3R2FtZU51bQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAAtnYW1lRGF0YVN0cgUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAADldBTExFVFdBVkVTQkVUCQAAaQAAAAIJAABoAAAAAggFAAAAB3BheW1lbnQAAAAGYW1vdW50BQAAAAtGRUVXQVZFU0JFVAAAAAAAAAAAZAUAAAAEV0JFVAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAR0aGlzAAAAAAAAB6EgBQAAAAR1bml0BQAAAANuaWwAAAABaQEAAAAId2l0aGRyYXcAAAACAAAABmdhbWVJZAAAAAdyc2FTaWduBAAAAAxnYW1lRGF0YUxpc3QJAQAAABNFeHRyYWN0R2FtZURhdGFMaXN0AAAAAQUAAAAGZ2FtZUlkBAAAAAlnYW1lU3RhdGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAxJZHhHYW1lU3RhdGUEAAAACXByZWRjdGlvbgkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAADGdhbWVEYXRhTGlzdAUAAAANSWR4UHJlZGljdGlvbgQAAAAIcm9sbFR5cGUJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAtJZHhSb2xsVHlwZQQAAAAOcGxheWVyUHViS2V5NTgJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAABFJZHhQbGF5ZXJQdWJLZXk1OAQAAAAGd2luQW10CQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAMZ2FtZURhdGFMaXN0BQAAAAlJZHhXaW5BbXQEAAAADXBsYXllckFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEJAAJZAAAAAQUAAAAOcGxheWVyUHViS2V5NTgDCQEAAAACIT0AAAACBQAAAAlnYW1lU3RhdGUFAAAADlNUQVRFU1VCTUlUVEVECQAAAgAAAAECAAAAM0ludmFsaWQgZ2FtZSBzdGF0ZSBmb3IgcGFzc2VkIGdhbWVJZC4gR2FtZSBhYm9ydGVkLgQAAAAEcmFuZAkBAAAAD0dlbmVyYXRlUmFuZEludAAAAAIFAAAABmdhbWVJZAUAAAAHcnNhU2lnbgQAAAAHcmFuZFN0cgkBAAAACVJhbmRUb1N0cgAAAAEFAAAABHJhbmQDCQEAAAAHZGljZVdpbgAAAAMFAAAACHJvbGxUeXBlBQAAAAlwcmVkY3Rpb24FAAAABHJhbmQEAAAADm5ld0dhbWVEYXRhU3RyCQEAAAARRm9ybWF0R2FtZURhdGFTdHIAAAAGBQAAAAhTVEFURVdPTgUAAAAJcHJlZGN0aW9uBQAAAAhyb2xsVHlwZQUAAAAOcGxheWVyUHViS2V5NTgFAAAABndpbkFtdAUAAAAHcmFuZFN0cgkBAAAADFdpblNjcmlwdFNldAAAAAQFAAAABmdhbWVJZAUAAAANcGxheWVyQWRkcmVzcwUAAAAGd2luQW10BQAAAA5uZXdHYW1lRGF0YVN0cgQAAAAObmV3R2FtZURhdGFTdHIJAQAAABFGb3JtYXRHYW1lRGF0YVN0cgAAAAYFAAAACVNUQVRFTE9TVAUAAAAJcHJlZGN0aW9uBQAAAAhyb2xsVHlwZQUAAAAOcGxheWVyUHViS2V5NTgFAAAABndpbkFtdAUAAAAHcmFuZFN0cgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkBQAAAA5uZXdHYW1lRGF0YVN0cgUAAAADbmlsAAAAAP+tAug=", "chainId": 84, "height": 735969, "spentComplexity": 0 } View: original | compacted Prev: 2uC2ShcKoLnKVrfNQCt16HDNfmCcgJQgpg4kbzaV51Xw Next: EpmHXpZLTz7FB8mXjPBQx96iLRb98NhwsxAEfEn2mg7F Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let RSAPUBLIC = fromBase64String("base64:LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbU9sUkJUWUVPM0g3WTlyQm1vRlFcbkZuNDM5MlB4MFF3MTNEc2RFaG56TUgyY2o2WTV5bVB1Q09MTU5lNXFyVXpRbDhvUkx6SUJ6RlZNWmx3VVlsMmJcbm9zck9JeFFiWUY3V1ZRV3ZvVnhFVDFZSWdEbTNOenpPTEE1dUg3Q0tPMHNuc2htTUZDRE9aRWV3NDFHaktoM1Bcbmd4K25iQWd1UDlaUVBmcVNhZkVtQzNDTi80eURzSnJLcmlSbmlaSm85alMvNExMc1JLd0I3SEFaSHpvRjlMTDdcbnRTWkgzaHRhTkd0YmRUa3haMVR6U1QzTWIyVlBTenNadlFEb2NYVVZPbUpPdTBvMjlhT1krR2tHL0c0UkNLMEZcbkJXUUhFVXZDNTFUUkRTNWs4amFkME8xTW9ialFjNmIxOGQrZnVvVkZkTmZad0dIK3VGdWR0UEczVUpUZjJta3pcblpRSURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0=")
4+let RSAPUBLIC = fromBase64String("base64:LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1FZ0NRUUNUdWhHMit3N0szS2h2c284UUNOTy9FV1NtMGNnQVdtOVdSbkdLMjAxbWVaRWF0ZjdmUmJDRFAxT3IKb3E5WVg1NWFXelhFR2JDY3VwOE9mYWR0WVFnRkFnTUJBQUU9Ci0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0=")
55
66 let GAMESCOUNTERKEY = "$GAME_NUM"
77
146146
147147
148148 func GenerateRandInt (gameId,rsaSign) = {
149- let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), fromBase64String(rsaSign), RSAPUBLIC)
149+ let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), rsaSign, RSAPUBLIC)
150150 if (rsaSigValid)
151151 then {
152- let rand = (toInt(sha256(toBytes(rsaSign))) % 100)
152+ let rand = (toInt(sha256(rsaSign)) % 100)
153153 if ((0 > rand))
154154 then ((-1 * rand) + 1)
155155 else (rand + 1)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let RSAPUBLIC = fromBase64String("base64:LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBbU9sUkJUWUVPM0g3WTlyQm1vRlFcbkZuNDM5MlB4MFF3MTNEc2RFaG56TUgyY2o2WTV5bVB1Q09MTU5lNXFyVXpRbDhvUkx6SUJ6RlZNWmx3VVlsMmJcbm9zck9JeFFiWUY3V1ZRV3ZvVnhFVDFZSWdEbTNOenpPTEE1dUg3Q0tPMHNuc2htTUZDRE9aRWV3NDFHaktoM1Bcbmd4K25iQWd1UDlaUVBmcVNhZkVtQzNDTi80eURzSnJLcmlSbmlaSm85alMvNExMc1JLd0I3SEFaSHpvRjlMTDdcbnRTWkgzaHRhTkd0YmRUa3haMVR6U1QzTWIyVlBTenNadlFEb2NYVVZPbUpPdTBvMjlhT1krR2tHL0c0UkNLMEZcbkJXUUhFVXZDNTFUUkRTNWs4amFkME8xTW9ialFjNmIxOGQrZnVvVkZkTmZad0dIK3VGdWR0UEczVUpUZjJta3pcblpRSURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0=")
4+let RSAPUBLIC = fromBase64String("base64:LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1FZ0NRUUNUdWhHMit3N0szS2h2c284UUNOTy9FV1NtMGNnQVdtOVdSbkdLMjAxbWVaRWF0ZjdmUmJDRFAxT3IKb3E5WVg1NWFXelhFR2JDY3VwOE9mYWR0WVFnRkFnTUJBQUU9Ci0tLS0tRU5EIFJTQSBQVUJMSUMgS0VZLS0tLS0=")
55
66 let GAMESCOUNTERKEY = "$GAME_NUM"
77
88 let RESERVATIONKEY = "$RESERVED_AMOUNT"
99
1010 let WBET = base58'23vgV9p9pD83A7CFbsDEc4zjanep7UeFo4ZRS6oGorhv'
1111
1212 let WALLETWAVESBET = Address(base58'3N2tusqAtDctK8iSTXS6F9rimmftmSuwLUX')
1313
1414 let WALLETMCAFFE = Address(base58'')
1515
1616 let WAVELET = ((100 * 1000) * 1000)
1717
1818 let FEEWAVESBET = 4
1919
2020 let FEEMCAFEE = 2
2121
2222 let STATESUBMITTED = "SUBMITTED"
2323
2424 let STATEWON = "WON"
2525
2626 let STATELOST = "LOST"
2727
2828 let ROLLUNDER = "UNDER"
2929
3030 let ROLLOVER = "OVER"
3131
3232 let BETMIN = (100 * WAVELET)
3333
3434 let BETMAX = ((1000 * 100) * WAVELET)
3535
3636 let PREDICTIONMIN = 4
3737
3838 let PREDICTIONMAX = 100
3939
4040 let IdxGameState = 0
4141
4242 let IdxPrediction = 1
4343
4444 let IdxRollType = 2
4545
4646 let IdxPlayerPubKey58 = 3
4747
4848 let IdxWinAmt = 4
4949
5050 let IdxRand = 5
5151
5252 func IncrementGameNum () = {
5353 let gameNum = match getInteger(this, GAMESCOUNTERKEY) {
5454 case num: Int =>
5555 num
5656 case _ =>
5757 0
5858 }
5959 (gameNum + 1)
6060 }
6161
6262
6363 func ExtractReservedAmt () = match getInteger(this, RESERVATIONKEY) {
6464 case a: Int =>
6565 a
6666 case _ =>
6767 0
6868 }
6969
7070
7171 func ValidateAndIncreaseReservedAmt (winAmt) = {
7272 let newReservedAmount = (ExtractReservedAmt() + winAmt)
7373 let balance = wavesBalance(this)
7474 if ((newReservedAmount > balance))
7575 then throw("Insufficient funds on Wavesbet account. Transaction was rejected for your safety.")
7676 else newReservedAmount
7777 }
7878
7979
8080 func FormatGameDataParam (p) = {
8181 let s = size(p)
8282 if ((s == 0))
8383 then throw("Parameter size must be greater then 0")
8484 else if ((s > 99))
8585 then throw("Parameter size must be less then 100")
8686 else if ((10 > s))
8787 then (("0" + toString(s)) + p)
8888 else (toString(s) + p)
8989 }
9090
9191
9292 func FormatGameDataStr (gameState,prediction,rollType,playerPubKey58,winAmt,rand) = {
9393 let fullStateStr = ((((((((FormatGameDataParam(gameState) + "_") + FormatGameDataParam(toString(prediction))) + "_") + FormatGameDataParam(rollType)) + "_") + FormatGameDataParam(playerPubKey58)) + "_") + FormatGameDataParam(toString(winAmt)))
9494 if ((rand == ""))
9595 then fullStateStr
9696 else ((fullStateStr + "_") + FormatGameDataParam(rand))
9797 }
9898
9999
100100 func RemoveUnderscoreIfPresent (remaining) = if ((size(remaining) > 0))
101101 then drop(remaining, 1)
102102 else remaining
103103
104104
105105 func ParseNextAttribute (remaining) = {
106106 let s = size(remaining)
107107 if ((s > 0))
108108 then {
109109 let nn = parseIntValue(take(remaining, 2))
110110 let v = take(drop(remaining, 2), nn)
111111 let tmpRemaining = drop(remaining, (nn + 2))
112112 let remainingState = RemoveUnderscoreIfPresent(tmpRemaining)
113113 [v, remainingState]
114114 }
115115 else throw("Empty string was passed into parseNextAttribute func")
116116 }
117117
118118
119119 func ParseGameRawDataStr (rawStateStr) = {
120120 let gameState = ParseNextAttribute(rawStateStr)
121121 let prediction = ParseNextAttribute(gameState[1])
122122 let rollType = ParseNextAttribute(prediction[1])
123123 let playerPubKey58 = ParseNextAttribute(rollType[1])
124124 let winAmt = ParseNextAttribute(playerPubKey58[1])
125125 [gameState[0], prediction[0], rollType[0], playerPubKey58[0], winAmt[0]]
126126 }
127127
128128
129129 func ExtractGameDataList (gameId) = {
130130 let rawDataStr = match getString(this, gameId) {
131131 case str: String =>
132132 str
133133 case _ =>
134134 throw(("Couldn't find game by " + gameId))
135135 }
136136 ParseGameRawDataStr(rawDataStr)
137137 }
138138
139139
140140 func DecreaseReservedAmt (gameId,winAmt) = {
141141 let newReservedAmount = (ExtractReservedAmt() - winAmt)
142142 if ((0 > newReservedAmount))
143143 then throw("Invalid Dice Roller account state - reserved amount is less than 0")
144144 else DataEntry(RESERVATIONKEY, newReservedAmount)
145145 }
146146
147147
148148 func GenerateRandInt (gameId,rsaSign) = {
149- let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), fromBase64String(rsaSign), RSAPUBLIC)
149+ let rsaSigValid = rsaVerify(SHA256, toBytes(gameId), rsaSign, RSAPUBLIC)
150150 if (rsaSigValid)
151151 then {
152- let rand = (toInt(sha256(toBytes(rsaSign))) % 100)
152+ let rand = (toInt(sha256(rsaSign)) % 100)
153153 if ((0 > rand))
154154 then ((-1 * rand) + 1)
155155 else (rand + 1)
156156 }
157157 else throw("Invalid RSA signature")
158158 }
159159
160160
161161 func RandToStr (r) = if (if ((r >= 1))
162162 then (100 >= r)
163163 else false)
164164 then toString(r)
165165 else throw(("Unsupported r parameter passed: expected=[1,...,100] actual=" + toString(r)))
166166
167167
168168 func WinScriptSet (gameId,playerAddress,winAmt,newGameDataStr) = {
169169 let tSetCommonData = [ScriptTransfer(playerAddress, winAmt, WBET)]
170170 let writeDicePlay = WriteSet([DataEntry("Game Id", gameId), DataEntry("Player Address", toString(playerAddress))])
171171 ScriptResult(writeDicePlay, TransferSet(tSetCommonData))
172172 }
173173
174174
175175 func Multiplier (prediction,rollType) = if ((rollType == ROLLUNDER))
176176 then if ((prediction == 1))
177177 then 9850000
178178 else if ((prediction == 2))
179179 then 4925000
180180 else if ((prediction == 3))
181181 then 3283330
182182 else if ((prediction == 4))
183183 then 2462500
184184 else if ((prediction == 5))
185185 then 1970000
186186 else if ((prediction == 6))
187187 then 1641660
188188 else if ((prediction == 7))
189189 then 1407140
190190 else if ((prediction == 8))
191191 then 1231250
192192 else if ((prediction == 9))
193193 then 1094440
194194 else if ((prediction == 10))
195195 then 985000
196196 else if ((prediction == 11))
197197 then 895450
198198 else if ((prediction == 12))
199199 then 820830
200200 else if ((prediction == 13))
201201 then 757690
202202 else if ((prediction == 14))
203203 then 703570
204204 else if ((prediction == 15))
205205 then 656660
206206 else if ((prediction == 16))
207207 then 615620
208208 else if ((prediction == 17))
209209 then 579410
210210 else if ((prediction == 18))
211211 then 547220
212212 else if ((prediction == 19))
213213 then 518420
214214 else if ((prediction == 20))
215215 then 492500
216216 else if ((prediction == 21))
217217 then 469040
218218 else if ((prediction == 22))
219219 then 447720
220220 else if ((prediction == 23))
221221 then 428260
222222 else if ((prediction == 24))
223223 then 410410
224224 else if ((prediction == 25))
225225 then 394000
226226 else if ((prediction == 26))
227227 then 378840
228228 else if ((prediction == 27))
229229 then 364810
230230 else if ((prediction == 28))
231231 then 351780
232232 else if ((prediction == 29))
233233 then 339650
234234 else if ((prediction == 30))
235235 then 328330
236236 else if ((prediction == 31))
237237 then 317740
238238 else if ((prediction == 32))
239239 then 307810
240240 else if ((prediction == 33))
241241 then 298480
242242 else if ((prediction == 34))
243243 then 289700
244244 else if ((prediction == 35))
245245 then 281420
246246 else if ((prediction == 36))
247247 then 273610
248248 else if ((prediction == 37))
249249 then 259210
250250 else if ((prediction == 38))
251251 then 259210
252252 else if ((prediction == 39))
253253 then 252560
254254 else if ((prediction == 40))
255255 then 246250
256256 else if ((prediction == 41))
257257 then 240240
258258 else if ((prediction == 42))
259259 then 234520
260260 else if ((prediction == 43))
261261 then 229060
262262 else if ((prediction == 44))
263263 then 223860
264264 else if ((prediction == 45))
265265 then 218880
266266 else if ((prediction == 46))
267267 then 214130
268268 else if ((prediction == 47))
269269 then 209570
270270 else if ((prediction == 48))
271271 then 205200
272272 else if ((prediction == 49))
273273 then 201020
274274 else if ((prediction == 50))
275275 then 197000
276276 else if ((prediction == 51))
277277 then 193130
278278 else if ((prediction == 52))
279279 then 189420
280280 else if ((prediction == 53))
281281 then 185840
282282 else if ((prediction == 54))
283283 then 182400
284284 else if ((prediction == 55))
285285 then 179090
286286 else if ((prediction == 56))
287287 then 175890
288288 else if ((prediction == 57))
289289 then 172800
290290 else if ((prediction == 58))
291291 then 169820
292292 else if ((prediction == 59))
293293 then 166940
294294 else if ((prediction == 60))
295295 then 164160
296296 else if ((prediction == 61))
297297 then 161470
298298 else if ((prediction == 62))
299299 then 158870
300300 else if ((prediction == 63))
301301 then 156340
302302 else if ((prediction == 64))
303303 then 153900
304304 else if ((prediction == 65))
305305 then 151530
306306 else if ((prediction == 66))
307307 then 149240
308308 else if ((prediction == 67))
309309 then 147010
310310 else if ((prediction == 68))
311311 then 144850
312312 else if ((prediction == 69))
313313 then 142750
314314 else if ((prediction == 70))
315315 then 140710
316316 else if ((prediction == 71))
317317 then 138730
318318 else if ((prediction == 72))
319319 then 136800
320320 else if ((prediction == 73))
321321 then 134930
322322 else if ((prediction == 74))
323323 then 133100
324324 else if ((prediction == 75))
325325 then 131330
326326 else if ((prediction == 76))
327327 then 129600
328328 else if ((prediction == 77))
329329 then 127920
330330 else if ((prediction == 78))
331331 then 126280
332332 else if ((prediction == 79))
333333 then 124680
334334 else if ((prediction == 80))
335335 then 123120
336336 else if ((prediction == 81))
337337 then 121600
338338 else if ((prediction == 82))
339339 then 120120
340340 else if ((prediction == 83))
341341 then 118670
342342 else if ((prediction == 84))
343343 then 117260
344344 else if ((prediction == 85))
345345 then 115880
346346 else if ((prediction == 86))
347347 then 114530
348348 else if ((prediction == 87))
349349 then 113210
350350 else if ((prediction == 88))
351351 then 111930
352352 else if ((prediction == 89))
353353 then 110670
354354 else if ((prediction == 90))
355355 then 109440
356356 else if ((prediction == 91))
357357 then 108240
358358 else if ((prediction == 92))
359359 then 107060
360360 else if ((prediction == 93))
361361 then 105910
362362 else if ((prediction == 94))
363363 then 104780
364364 else if ((prediction == 95))
365365 then 103680
366366 else if ((prediction == 96))
367367 then 103680
368368 else 100000
369369 else if ((rollType == ROLLOVER))
370370 then if ((prediction == 4))
371371 then 103680
372372 else if ((prediction == 5))
373373 then 103680
374374 else if ((prediction == 6))
375375 then 104780
376376 else if ((prediction == 7))
377377 then 105910
378378 else if ((prediction == 8))
379379 then 107060
380380 else if ((prediction == 9))
381381 then 108240
382382 else if ((prediction == 10))
383383 then 109440
384384 else if ((prediction == 11))
385385 then 110670
386386 else if ((prediction == 12))
387387 then 111930
388388 else if ((prediction == 13))
389389 then 113210
390390 else if ((prediction == 14))
391391 then 114530
392392 else if ((prediction == 15))
393393 then 115880
394394 else if ((prediction == 16))
395395 then 117260
396396 else if ((prediction == 17))
397397 then 118670
398398 else if ((prediction == 18))
399399 then 120120
400400 else if ((prediction == 19))
401401 then 121600
402402 else if ((prediction == 20))
403403 then 123120
404404 else if ((prediction == 21))
405405 then 124680
406406 else if ((prediction == 22))
407407 then 126280
408408 else if ((prediction == 23))
409409 then 127920
410410 else if ((prediction == 24))
411411 then 129600
412412 else if ((prediction == 25))
413413 then 131330
414414 else if ((prediction == 26))
415415 then 133100
416416 else if ((prediction == 27))
417417 then 134930
418418 else if ((prediction == 28))
419419 then 136800
420420 else if ((prediction == 29))
421421 then 138730
422422 else if ((prediction == 30))
423423 then 140710
424424 else if ((prediction == 31))
425425 then 142750
426426 else if ((prediction == 32))
427427 then 144850
428428 else if ((prediction == 33))
429429 then 147010
430430 else if ((prediction == 34))
431431 then 149240
432432 else if ((prediction == 35))
433433 then 151530
434434 else if ((prediction == 36))
435435 then 153900
436436 else if ((prediction == 37))
437437 then 156340
438438 else if ((prediction == 38))
439439 then 158870
440440 else if ((prediction == 39))
441441 then 161470
442442 else if ((prediction == 40))
443443 then 164160
444444 else if ((prediction == 41))
445445 then 166940
446446 else if ((prediction == 42))
447447 then 169820
448448 else if ((prediction == 43))
449449 then 172800
450450 else if ((prediction == 44))
451451 then 175890
452452 else if ((prediction == 45))
453453 then 179090
454454 else if ((prediction == 46))
455455 then 185840
456456 else if ((prediction == 47))
457457 then 185840
458458 else if ((prediction == 48))
459459 then 189420
460460 else if ((prediction == 49))
461461 then 193130
462462 else if ((prediction == 50))
463463 then 197000
464464 else if ((prediction == 51))
465465 then 201020
466466 else if ((prediction == 52))
467467 then 205200
468468 else if ((prediction == 53))
469469 then 209570
470470 else if ((prediction == 54))
471471 then 214130
472472 else if ((prediction == 55))
473473 then 218880
474474 else if ((prediction == 56))
475475 then 223860
476476 else if ((prediction == 57))
477477 then 229060
478478 else if ((prediction == 58))
479479 then 234520
480480 else if ((prediction == 59))
481481 then 240240
482482 else if ((prediction == 60))
483483 then 246250
484484 else if ((prediction == 61))
485485 then 252560
486486 else if ((prediction == 62))
487487 then 259210
488488 else if ((prediction == 63))
489489 then 259210
490490 else if ((prediction == 64))
491491 then 273610
492492 else if ((prediction == 65))
493493 then 281420
494494 else if ((prediction == 66))
495495 then 289700
496496 else if ((prediction == 67))
497497 then 298480
498498 else if ((prediction == 68))
499499 then 307810
500500 else if ((prediction == 69))
501501 then 317740
502502 else if ((prediction == 70))
503503 then 328330
504504 else if ((prediction == 71))
505505 then 339650
506506 else if ((prediction == 72))
507507 then 351780
508508 else if ((prediction == 73))
509509 then 364810
510510 else if ((prediction == 74))
511511 then 378840
512512 else if ((prediction == 75))
513513 then 394000
514514 else if ((prediction == 76))
515515 then 410410
516516 else if ((prediction == 77))
517517 then 428260
518518 else if ((prediction == 78))
519519 then 447720
520520 else if ((prediction == 79))
521521 then 469040
522522 else if ((prediction == 80))
523523 then 492500
524524 else if ((prediction == 81))
525525 then 518420
526526 else if ((prediction == 82))
527527 then 547220
528528 else if ((prediction == 83))
529529 then 579410
530530 else if ((prediction == 84))
531531 then 615620
532532 else if ((prediction == 85))
533533 then 656660
534534 else if ((prediction == 86))
535535 then 703570
536536 else if ((prediction == 87))
537537 then 757690
538538 else if ((prediction == 88))
539539 then 820830
540540 else if ((prediction == 89))
541541 then 895450
542542 else if ((prediction == 90))
543543 then 985000
544544 else if ((prediction == 91))
545545 then 1094440
546546 else if ((prediction == 92))
547547 then 1231250
548548 else if ((prediction == 93))
549549 then 1407140
550550 else if ((prediction == 94))
551551 then 1641660
552552 else if ((prediction == 95))
553553 then 1970000
554554 else if ((prediction == 96))
555555 then 2462500
556556 else if ((prediction == 97))
557557 then 3283330
558558 else if ((prediction == 98))
559559 then 4925000
560560 else if ((prediction == 99))
561561 then 9850000
562562 else 100000
563563 else 100000
564564
565565
566566 func diceWin (rollType,prediction,rand) = if ((rollType == ROLLUNDER))
567567 then if ((prediction >= rand))
568568 then true
569569 else false
570570 else if ((rollType == ROLLOVER))
571571 then if ((rand >= prediction))
572572 then true
573573 else false
574574 else false
575575
576576
577577 func ValidateBetAndDefineWinAmt (amount,prediction,rollType) = if (if ((BETMIN > amount))
578578 then true
579579 else (amount > BETMAX))
580580 then throw(((("Bet amount is not in range: minBet=" + toString((BETMIN / 100000000))) + " maxBet=") + toString((BETMAX / 100000000))))
581581 else if (if ((rollType != ROLLUNDER))
582582 then (rollType != ROLLOVER)
583583 else false)
584584 then throw("Invalid Roll type, try with OVER or UNDER")
585585 else if (if ((PREDICTIONMIN > prediction))
586586 then true
587587 else (prediction > PREDICTIONMAX))
588588 then throw(((("Prediction is out of the condition: " + toString(PREDICTIONMIN)) + " <= predction <= ") + toString(PREDICTIONMAX)))
589589 else {
590590 let multi = Multiplier(prediction, rollType)
591591 ((((amount * multi) / 100000) * (100 - (FEEWAVESBET + FEEMCAFEE))) / 100)
592592 }
593593
594594
595595 @Callable(i)
596596 func playDice (rollType,prediction) = {
597597 let gameId = toBase58String(i.transactionId)
598598 let gameIdUsed = isDefined(getString(this, gameId))
599599 let payment = extract(i.payment)
600600 let feeAssetId = isDefined(i.feeAssetId)
601601 let winAmt = ValidateBetAndDefineWinAmt(payment.amount, prediction, rollType)
602602 let playerBalance = wavesBalance(i.caller)
603603 if ((100000 > playerBalance))
604604 then throw("There are not enough waves, it takes 0.01 Waves to bet. Game aborted.")
605605 else if ((payment.assetId != WBET))
606606 then throw("Bet amount must be in Wbet. Game aborted.")
607607 else if (feeAssetId)
608608 then throw("Transaction's fee must be in Waves. Game aborted.")
609609 else if (gameIdUsed)
610610 then throw("Passed gameId had been used before. Game aborted.")
611611 else {
612612 let newGameNum = IncrementGameNum()
613613 let playerPubKey58 = toBase58String(i.callerPublicKey)
614614 let gameDataStr = FormatGameDataStr(STATESUBMITTED, prediction, rollType, playerPubKey58, winAmt, "")
615615 ScriptResult(WriteSet([DataEntry(GAMESCOUNTERKEY, newGameNum), DataEntry(gameId, gameDataStr)]), TransferSet([ScriptTransfer(WALLETWAVESBET, ((payment.amount * FEEWAVESBET) / 100), WBET), ScriptTransfer(this, 500000, unit)]))
616616 }
617617 }
618618
619619
620620
621621 @Callable(i)
622622 func withdraw (gameId,rsaSign) = {
623623 let gameDataList = ExtractGameDataList(gameId)
624624 let gameState = gameDataList[IdxGameState]
625625 let predction = parseIntValue(gameDataList[IdxPrediction])
626626 let rollType = gameDataList[IdxRollType]
627627 let playerPubKey58 = gameDataList[IdxPlayerPubKey58]
628628 let winAmt = parseIntValue(gameDataList[IdxWinAmt])
629629 let playerAddress = addressFromPublicKey(fromBase58String(playerPubKey58))
630630 if ((gameState != STATESUBMITTED))
631631 then throw("Invalid game state for passed gameId. Game aborted.")
632632 else {
633633 let rand = GenerateRandInt(gameId, rsaSign)
634634 let randStr = RandToStr(rand)
635635 if (diceWin(rollType, predction, rand))
636636 then {
637637 let newGameDataStr = FormatGameDataStr(STATEWON, predction, rollType, playerPubKey58, winAmt, randStr)
638638 WinScriptSet(gameId, playerAddress, winAmt, newGameDataStr)
639639 }
640640 else {
641641 let newGameDataStr = FormatGameDataStr(STATELOST, predction, rollType, playerPubKey58, winAmt, randStr)
642642 WriteSet([DataEntry(gameId, newGameDataStr)])
643643 }
644644 }
645645 }
646646
647647

github/deemru/w8io/169f3d6 
99.18 ms