tx · 5rJ7e5w6sFX95rRP1XXpRpNTqnaSpcQCMa6pii3WAjL

3N4Vi5ZgvLRTYSyLG2mr1c5xV7jkfNmsCBx:  -0.01500000 Waves

2019.07.17 17:16 [589951] smart account 3N4Vi5ZgvLRTYSyLG2mr1c5xV7jkfNmsCBx > SELF 0.00000000 Waves

{ "type": 13, "id": "5rJ7e5w6sFX95rRP1XXpRpNTqnaSpcQCMa6pii3WAjL", "fee": 1500000, "feeAssetId": null, "timestamp": 1563372959205, "version": 1, "sender": "3N4Vi5ZgvLRTYSyLG2mr1c5xV7jkfNmsCBx", "senderPublicKey": "HrsooezxnsncDtB5CTSTjpxR9B8BHP4uMsxdgaW2xL1S", "proofs": [ "354CCfFvJYj7gGBmkL45v4uUEVQgiRsrsdus7NGPYPJG4Vs1WJ1bYj9Cy58gks8ioB9FHxsVBNRcpUKLGJ1paG3R" ], "script": "base64:AAIDAAAAAAAAAAAAAAAWAAAAAA5kaXZpZGVyRm9yVGVzdAAAAAAAAAAD6AAAAAAYY29taXNzaW9uRGVjcmVhc2VGb3JUZXN0AAAAAAAAB6EgAAAAAAlXYXZlc011bHQJAABpAAAAAgAAAAAABfXhAAUAAAAOZGl2aWRlckZvclRlc3QAAAAABGJldDEJAABoAAAAAgAAAAAAAAAAAQUAAAAJV2F2ZXNNdWx0AAAAAARiZXQ1CQAAaAAAAAIAAAAAAAAAAAUFAAAACVdhdmVzTXVsdAAAAAAFYmV0MTUJAABoAAAAAgAAAAAAAAAADwUAAAAJV2F2ZXNNdWx0AAAAAAViZXQ0MAkAAGgAAAACAAAAAAAAAAAoBQAAAAlXYXZlc011bHQAAAAABmJldDEwMAkAAGgAAAACAAAAAAAAAABkBQAAAAlXYXZlc011bHQAAAAACWNvbWlzc2lvbgkAAGUAAAACAAAAAAAAB6EgBQAAABhjb21pc3Npb25EZWNyZWFzZUZvclRlc3QAAAAAD29yYWNsZVB1YmxpY0tleQkAAlsAAAABAgAAAIdiYXNlNjQ6TUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBTVp1TG9MSFY1ZmN1cVAvS2pIb1E2VnNaU2tTV0YyQXdSQUxyTGdUVWZYWXNkSncxenYwdDl2N0lIUjYzZzdZcm9DdlVGU1htMVJtT2hTMVhqcjV5SUVDQXdFQUFRPT0AAAAADWRhcHBQdWJsaWNLZXkBAAAAIPqB5elu3t0tsoxUXZ6+NCyrFEb5ZTlc9GNc53buEwJNAAAAAA1nYW1lVGltZUZyYW1lAAAAAAAAAAWgAAAAAAhzdGF0ZUFjYwIAAAAIQWNjZXB0ZWQAAAAACHN0YXRlV2luAgAAAANXaW4AAAAADHN0YXRlVGltZW91dAIAAAAMV2luQnlUaW1lb3V0AAAAAAlzdGF0ZUxvc2UCAAAABExvc2UBAAAADnNldFByaXplQW1vdW50AAAAAQAAAAlwbXRBbW91bnQEAAAAA2JldAkAAGUAAAACBQAAAAlwbXRBbW91bnQFAAAACWNvbWlzc2lvbgMDAwMDCQAAAAAAAAIFAAAAA2JldAUAAAAEYmV0MQYJAAAAAAAAAgUAAAADYmV0BQAAAARiZXQ1BgkAAAAAAAACBQAAAANiZXQFAAAABWJldDE1BgkAAAAAAAACBQAAAANiZXQFAAAABWJldDQwBgkAAAAAAAACBQAAAANiZXQFAAAABmJldDEwMAkAAGgAAAACBQAAAANiZXQAAAAAAAAAAAIJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAiUGF5bWVudCBhbW91bnQgaXMgaW5jb3JyZWN0LiBOb3c6IAkAAaQAAAABBQAAAAlwbXRBbW91bnQCAAAACCBNdXN0IGJlCQABpAAAAAEFAAAABGJldDEBAAAAF2luY3JlYXNlUmVzZXJ2ZWRCYWxhbmNlAAAAAQAAAAtwbGF5ZXJQcml6ZQQAAAAWY3VycmVudFJlc2VydmVkQmFsYW5jZQQAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UJAAQaAAAAAgUAAAAEdGhpcwIAAAAIUmVzZXJ2ZWQEAAAAByRtYXRjaDAFAAAAFHZhbHVlUmVzZXJ2ZWRCYWxhbmNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAEm5ld1Jlc2VydmVkQmFsYW5jZQkAAGQAAAACBQAAABZjdXJyZW50UmVzZXJ2ZWRCYWxhbmNlBQAAAAtwbGF5ZXJQcml6ZQMJAABnAAAAAgkBAAAADHdhdmVzQmFsYW5jZQAAAAEFAAAABHRoaXMFAAAAEm5ld1Jlc2VydmVkQmFsYW5jZQQAAAAXaW5jcmVhc2VSZXNlcnZlZEJhbGFuY2UFAAAAEm5ld1Jlc2VydmVkQmFsYW5jZQUAAAAXaW5jcmVhc2VSZXNlcnZlZEJhbGFuY2UJAAACAAAAAQIAAAA1QmV0IHdhcyByZWplY3RlZC4gSW5zdWZmaWNpZW50IGZ1bmRzIG9uIGdhbWUgYWNjb3VudC4BAAAAC2dldERhdGFMaXN0AAAAAQAAAAZnYW1lSWQEAAAADWdldERhdGFTdHJpbmcJAAQdAAAAAgUAAAAEdGhpcwUAAAAGZ2FtZUlkBAAAAAFhBAAAAAckbWF0Y2gwBQAAAA1nZXREYXRhU3RyaW5nAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEJAAACAAAAAQIAAAAUR2FtZUlkIHdhcyBub3QgZm91bmQJAAS1AAAAAgUAAAABYQIAAAABXwEAAAAIcnNhVG9JbnQAAAACAAAABmdhbWVJZAAAAAdyc2FTaWduBAAAAAhyc2FDaGVjawkAAfgAAAAEBQAAAAZTSEEyNTYJAAGbAAAAAQUAAAAGZ2FtZUlkBQAAAAdyc2FTaWduBQAAAA9vcmFjbGVQdWJsaWNLZXkDBQAAAAhyc2FDaGVjawQAAAAGcnNhSW50CQAAZAAAAAIJAABqAAAAAgkABLEAAAABCQAB9wAAAAEFAAAAB3JzYVNpZ24AAAAAAAAAAGMAAAAAAAAAAAEDAwkAAGYAAAACBQAAAAZyc2FJbnQAAAAAAAAAAAAJAABnAAAAAgAAAAAAAAAAZAUAAAAGcnNhSW50BwUAAAAGcnNhSW50CQAAAgAAAAECAAAAG1JzYSBpbnRlZ2VyIGlzIG5vdCBpbiByYW5nZQkAAAIAAAABAgAAABhSc2EgU2lnbmF0dXJlIGlzIGludmFsaWQBAAAAF2RlY3JlYXNlUmVzZXJ2ZWRCYWxhbmNlAAAAAQAAAAtwbGF5ZXJQcml6ZQQAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UJAAQaAAAAAgUAAAAEdGhpcwIAAAAIUmVzZXJ2ZWQEAAAAFmV4dHJhY3RSZXNlcnZlZEJhbGFuY2UEAAAAByRtYXRjaDAFAAAAFHZhbHVlUmVzZXJ2ZWRCYWxhbmNlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAF2RlY3JlYXNlUmVzZXJ2ZWRCYWxhbmNlCQAAZQAAAAIFAAAAFmV4dHJhY3RSZXNlcnZlZEJhbGFuY2UFAAAAC3BsYXllclByaXplAwkAAGYAAAACBQAAABdkZWNyZWFzZVJlc2VydmVkQmFsYW5jZQAAAAAAAAAAAAUAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UJAAACAAAAAQIAAAAoUmVzZXJ2ZWQgYmFsYW5jZSBjb3VsZG4ndCBiZSBsZXNzIHRoYW4gMAEAAAAMZGVmaW5lV2lubmVyAAAAAgAAAAxyYW5kb21OdW1iZXIAAAAMcGxheWVyQ2hvaWNlBAAAAApyc2FUb1N0YXRlAwkAAGYAAAACAAAAAAAAAAAwBQAAAAxyYW5kb21OdW1iZXICAAAAATEDCQAAZgAAAAIFAAAADHJhbmRvbU51bWJlcgAAAAAAAAAANAIAAAABMgIAAAABMwkAAAAAAAACBQAAAApyc2FUb1N0YXRlBQAAAAxwbGF5ZXJDaG9pY2UAAAACAAAAAWkBAAAAA2JldAAAAAEAAAAGY2hvaWNlBAAAAANwbXQJAQAAAAdleHRyYWN0AAAAAQgFAAAAAWkAAAAHcGF5bWVudAQAAAAJcG10QW1vdW50CAUAAAADcG10AAAABmFtb3VudAQAAAAGZ2FtZUlkCQACWAAAAAEIBQAAAAFpAAAADXRyYW5zYWN0aW9uSWQEAAAACWdhbWVTdGFydAUAAAAGaGVpZ2h0BAAAAA9iZXRBc3NldElkQ2hlY2sJAQAAAAlpc0RlZmluZWQAAAABCAUAAAADcG10AAAAB2Fzc2V0SWQEAAAAD3BsYXllclB1YmxpY0tleQkAAlgAAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkEAAAADHBsYXllckNob2ljZQMDCQAAAAAAAAIFAAAABmNob2ljZQIAAAABMQYJAAAAAAAAAgUAAAAGY2hvaWNlAgAAAAEyBQAAAAZjaG9pY2UJAAACAAAAAQIAAAAcUGxheWVyJ3MgY2hvaWNlIGlzIGluY29ycmVjdAQAAAALcGxheWVyUHJpemUJAQAAAA5zZXRQcml6ZUFtb3VudAAAAAEFAAAACXBtdEFtb3VudAQAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlCQEAAAAXaW5jcmVhc2VSZXNlcnZlZEJhbGFuY2UAAAABBQAAAAtwbGF5ZXJQcml6ZQMFAAAAD2JldEFzc2V0SWRDaGVjawkAAAIAAAABAgAAAB5Zb3UgY2FuIG1ha2UgYmV0IGluIFdhdmVzIG9ubHkEAAAACmRhdGFTdHJpbmcJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAhzdGF0ZUFjYwIAAAABXwUAAAAPcGxheWVyUHVibGljS2V5AgAAAAFfBQAAAAxwbGF5ZXJDaG9pY2UCAAAAAV8JAAGkAAAAAQUAAAALcGxheWVyUHJpemUCAAAAAV8JAAGkAAAAAQUAAAAJZ2FtZVN0YXJ0CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACAgAAAAhSZXNlcnZlZAUAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQFAAAACmRhdGFTdHJpbmcFAAAAA25pbAAAAAFpAQAAAAh3aXRoZHJhdwAAAAIAAAAGZ2FtZUlkAAAAB3JzYVNpZ24EAAAACGRhdGFMaXN0CQEAAAALZ2V0RGF0YUxpc3QAAAABBQAAAAZnYW1lSWQEAAAACWdhbWVTdGF0ZQkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAAQAAAANcGxheWVyQWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQkAAlkAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAABBAAAAAxwbGF5ZXJDaG9pY2UJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAIEAAAAC3BsYXllclByaXplCQEAAAANcGFyc2VJbnRWYWx1ZQAAAAEJAAGRAAAAAgUAAAAIZGF0YUxpc3QAAAAAAAAAAAMEAAAACWdhbWVTdGFydAkBAAAADXBhcnNlSW50VmFsdWUAAAABCQABkQAAAAIFAAAACGRhdGFMaXN0AAAAAAAAAAAEBAAAAAxyYW5kb21OdW1iZXIJAQAAAAhyc2FUb0ludAAAAAIFAAAABmdhbWVJZAUAAAAHcnNhU2lnbgQAAAASc2V0UmVzZXJ2ZWRCYWxhbmNlCQEAAAAXZGVjcmVhc2VSZXNlcnZlZEJhbGFuY2UAAAABBQAAAAtwbGF5ZXJQcml6ZQQAAAAQc3RyaW5nRm9yTmV3RGF0YQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAQIAAAABXwkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAgIAAAABXwkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAAAwIAAAABXwkAAZEAAAACBQAAAAhkYXRhTGlzdAAAAAAAAAAABAQAAAAIZ2FtZVRpbWUJAABmAAAAAgUAAAANZ2FtZVRpbWVGcmFtZQkAAGUAAAACBQAAAAZoZWlnaHQFAAAACWdhbWVTdGFydAQAAAAKc3RhdGVDaGVjawkAAAAAAAACBQAAAAlnYW1lU3RhdGUFAAAACHN0YXRlQWNjAwUAAAAKc3RhdGVDaGVjawMFAAAACGdhbWVUaW1lBAAAAAlwbGF5ZXJXaW4JAQAAAAxkZWZpbmVXaW5uZXIAAAACBQAAAAxyYW5kb21OdW1iZXIFAAAADHBsYXllckNob2ljZQMFAAAACXBsYXllcldpbgkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAABmdhbWVJZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAhzdGF0ZVdpbgIAAAABXwUAAAAQc3RyaW5nRm9yTmV3RGF0YQIAAAABXwkAAaQAAAABBQAAAAxyYW5kb21OdW1iZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAACFJlc2VydmVkBQAAABJzZXRSZXNlcnZlZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA1wbGF5ZXJBZGRyZXNzBQAAAAtwbGF5ZXJQcml6ZQUAAAAEdW5pdAUAAAADbmlsCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAZnYW1lSWQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAJc3RhdGVMb3NlAgAAAAFfBQAAABBzdHJpbmdGb3JOZXdEYXRhAgAAAAFfCQABpAAAAAEFAAAADHJhbmRvbU51bWJlcgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgIAAAAIUmVzZXJ2ZWQFAAAAEnNldFJlc2VydmVkQmFsYW5jZQUAAAADbmlsCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAGZ2FtZUlkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAADHN0YXRlVGltZW91dAIAAAABXwUAAAAQc3RyaW5nRm9yTmV3RGF0YQIAAAABXwIAAAACMDAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAICAAAACFJlc2VydmVkBQAAABJzZXRSZXNlcnZlZEJhbGFuY2UFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA1wbGF5ZXJBZGRyZXNzBQAAAAtwbGF5ZXJQcml6ZQUAAAAEdW5pdAUAAAADbmlsCQAAAgAAAAECAAAAFUdhbWUgc3RhdGUgaXMgaW52YWxpZAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAQAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UJAAQaAAAAAgUAAAAEdGhpcwIAAAAIUmVzZXJ2ZWQEAAAAD3Jlc2VydmVkQmFsYW5jZQQAAAAHJG1hdGNoMQUAAAAUdmFsdWVSZXNlcnZlZEJhbGFuY2UDCQAAAQAAAAIFAAAAByRtYXRjaDECAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMQUAAAABYQAAAAAAAAAAAAQAAAAQYXZhaWxhYmxlQmFsYW5jZQkAAGUAAAACCQEAAAAMd2F2ZXNCYWxhbmNlAAAAAQUAAAAEdGhpcwUAAAAPcmVzZXJ2ZWRCYWxhbmNlBAAAAA9hdmFpbGlibGVBbW91bnQJAABnAAAAAgUAAAAQYXZhaWxhYmxlQmFsYW5jZQgFAAAAA3R0eAAAAAZhbW91bnQFAAAAD2F2YWlsaWJsZUFtb3VudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAUU2V0U2NyaXB0VHJhbnNhY3Rpb24EAAAAA3N0eAUAAAAHJG1hdGNoMAYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAF0ludm9rZVNjcmlwdFRyYW5zYWN0aW9uBAAAAARpc3R4BQAAAAckbWF0Y2gwBgcH0AF3NQ==", "chainId": 84, "height": 589951, "spentComplexity": 0 } View: original | compacted Prev: 6XkAgrdssSmwZ5w4txVhoTRTgbyAZ1LxAd6mbnNy7MN8 Next: ATH2Sc3Cgf61oVfZ876Q3HYnGvrjRk4W1DokESjgnxmp Diff:
OldNewDifferences
4545 then true
4646 else (bet == bet100))
4747 then (bet * 2)
48- else throw(("Payment amount is incorrect. Now: " + toString(pmtAmount)))
48+ else throw(((("Payment amount is incorrect. Now: " + toString(pmtAmount)) + " Must be") + toString(bet1)))
4949 }
5050
5151
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let dividerForTest = 1000
55
66 let comissionDecreaseForTest = 500000
77
88 let WavesMult = (100000000 / dividerForTest)
99
1010 let bet1 = (1 * WavesMult)
1111
1212 let bet5 = (5 * WavesMult)
1313
1414 let bet15 = (15 * WavesMult)
1515
1616 let bet40 = (40 * WavesMult)
1717
1818 let bet100 = (100 * WavesMult)
1919
2020 let comission = (500000 - comissionDecreaseForTest)
2121
2222 let oraclePublicKey = fromBase64String("base64:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMZuLoLHV5fcuqP/KjHoQ6VsZSkSWF2AwRALrLgTUfXYsdJw1zv0t9v7IHR63g7YroCvUFSXm1RmOhS1Xjr5yIECAwEAAQ==")
2323
2424 let dappPublicKey = base58'HrsooezxnsncDtB5CTSTjpxR9B8BHP4uMsxdgaW2xL1S'
2525
2626 let gameTimeFrame = 1440
2727
2828 let stateAcc = "Accepted"
2929
3030 let stateWin = "Win"
3131
3232 let stateTimeout = "WinByTimeout"
3333
3434 let stateLose = "Lose"
3535
3636 func setPrizeAmount (pmtAmount) = {
3737 let bet = (pmtAmount - comission)
3838 if (if (if (if (if ((bet == bet1))
3939 then true
4040 else (bet == bet5))
4141 then true
4242 else (bet == bet15))
4343 then true
4444 else (bet == bet40))
4545 then true
4646 else (bet == bet100))
4747 then (bet * 2)
48- else throw(("Payment amount is incorrect. Now: " + toString(pmtAmount)))
48+ else throw(((("Payment amount is incorrect. Now: " + toString(pmtAmount)) + " Must be") + toString(bet1)))
4949 }
5050
5151
5252 func increaseReservedBalance (playerPrize) = {
5353 let currentReservedBalance = {
5454 let valueReservedBalance = getInteger(this, "Reserved")
5555 match valueReservedBalance {
5656 case a: Int =>
5757 a
5858 case _ =>
5959 0
6060 }
6161 }
6262 let newReservedBalance = (currentReservedBalance + playerPrize)
6363 if ((wavesBalance(this) >= newReservedBalance))
6464 then {
6565 let increaseReservedBalance = newReservedBalance
6666 increaseReservedBalance
6767 }
6868 else throw("Bet was rejected. Insufficient funds on game account.")
6969 }
7070
7171
7272 func getDataList (gameId) = {
7373 let getDataString = getString(this, gameId)
7474 let a = match getDataString {
7575 case a: String =>
7676 a
7777 case _ =>
7878 throw("GameId was not found")
7979 }
8080 split(a, "_")
8181 }
8282
8383
8484 func rsaToInt (gameId,rsaSign) = {
8585 let rsaCheck = rsaVerify(SHA256, toBytes(gameId), rsaSign, oraclePublicKey)
8686 if (rsaCheck)
8787 then {
8888 let rsaInt = ((toInt(sha256(rsaSign)) % 99) + 1)
8989 if (if ((rsaInt > 0))
9090 then (100 >= rsaInt)
9191 else false)
9292 then rsaInt
9393 else throw("Rsa integer is not in range")
9494 }
9595 else throw("Rsa Signature is invalid")
9696 }
9797
9898
9999 func decreaseReservedBalance (playerPrize) = {
100100 let valueReservedBalance = getInteger(this, "Reserved")
101101 let extractReservedBalance = match valueReservedBalance {
102102 case a: Int =>
103103 a
104104 case _ =>
105105 0
106106 }
107107 let decreaseReservedBalance = (extractReservedBalance - playerPrize)
108108 if ((decreaseReservedBalance > 0))
109109 then decreaseReservedBalance
110110 else throw("Reserved balance couldn't be less than 0")
111111 }
112112
113113
114114 func defineWinner (randomNumber,playerChoice) = {
115115 let rsaToState = if ((48 > randomNumber))
116116 then "1"
117117 else if ((randomNumber > 52))
118118 then "2"
119119 else "3"
120120 (rsaToState == playerChoice)
121121 }
122122
123123
124124 @Callable(i)
125125 func bet (choice) = {
126126 let pmt = extract(i.payment)
127127 let pmtAmount = pmt.amount
128128 let gameId = toBase58String(i.transactionId)
129129 let gameStart = height
130130 let betAssetIdCheck = isDefined(pmt.assetId)
131131 let playerPublicKey = toBase58String(i.callerPublicKey)
132132 let playerChoice = if (if ((choice == "1"))
133133 then true
134134 else (choice == "2"))
135135 then choice
136136 else throw("Player's choice is incorrect")
137137 let playerPrize = setPrizeAmount(pmtAmount)
138138 let setReservedBalance = increaseReservedBalance(playerPrize)
139139 if (betAssetIdCheck)
140140 then throw("You can make bet in Waves only")
141141 else {
142142 let dataString = ((((((((stateAcc + "_") + playerPublicKey) + "_") + playerChoice) + "_") + toString(playerPrize)) + "_") + toString(gameStart))
143143 WriteSet([DataEntry("Reserved", setReservedBalance), DataEntry(gameId, dataString)])
144144 }
145145 }
146146
147147
148148
149149 @Callable(i)
150150 func withdraw (gameId,rsaSign) = {
151151 let dataList = getDataList(gameId)
152152 let gameState = dataList[0]
153153 let playerAddress = addressFromPublicKey(fromBase58String(dataList[1]))
154154 let playerChoice = dataList[2]
155155 let playerPrize = parseIntValue(dataList[3])
156156 let gameStart = parseIntValue(dataList[4])
157157 let randomNumber = rsaToInt(gameId, rsaSign)
158158 let setReservedBalance = decreaseReservedBalance(playerPrize)
159159 let stringForNewData = ((((((dataList[1] + "_") + dataList[2]) + "_") + dataList[3]) + "_") + dataList[4])
160160 let gameTime = (gameTimeFrame > (height - gameStart))
161161 let stateCheck = (gameState == stateAcc)
162162 if (stateCheck)
163163 then if (gameTime)
164164 then {
165165 let playerWin = defineWinner(randomNumber, playerChoice)
166166 if (playerWin)
167167 then ScriptResult(WriteSet([DataEntry(gameId, ((((stateWin + "_") + stringForNewData) + "_") + toString(randomNumber))), DataEntry("Reserved", setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, playerPrize, unit)]))
168168 else WriteSet([DataEntry(gameId, ((((stateLose + "_") + stringForNewData) + "_") + toString(randomNumber))), DataEntry("Reserved", setReservedBalance)])
169169 }
170170 else ScriptResult(WriteSet([DataEntry(gameId, ((((stateTimeout + "_") + stringForNewData) + "_") + "00")), DataEntry("Reserved", setReservedBalance)]), TransferSet([ScriptTransfer(playerAddress, playerPrize, unit)]))
171171 else throw("Game state is invalid")
172172 }
173173
174174
175175 @Verifier(tx)
176176 func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
177177 then match tx {
178178 case ttx: TransferTransaction =>
179179 let valueReservedBalance = getInteger(this, "Reserved")
180180 let reservedBalance = match valueReservedBalance {
181181 case a: Int =>
182182 a
183183 case _ =>
184184 0
185185 }
186186 let availableBalance = (wavesBalance(this) - reservedBalance)
187187 let availibleAmount = (availableBalance >= ttx.amount)
188188 availibleAmount
189189 case stx: SetScriptTransaction =>
190190 true
191191 case istx: InvokeScriptTransaction =>
192192 true
193193 case _ =>
194194 false
195195 }
196196 else false
197197

github/deemru/w8io/169f3d6 
44.21 ms