tx · 6Ruj3xc59Jt3TCJX2SbCHCkAy21TrZfykTyJXMSpdnqv

3PLAY3rsxPcmLCgbF1Cto75nmj7i3tc4JEu:  -0.01400000 Waves

2019.11.05 02:04 [1781046] smart account 3PLAY3rsxPcmLCgbF1Cto75nmj7i3tc4JEu > SELF 0.00000000 Waves

{ "type": 13, "id": "6Ruj3xc59Jt3TCJX2SbCHCkAy21TrZfykTyJXMSpdnqv", "fee": 1400000, "feeAssetId": null, "timestamp": 1572908579962, "version": 1, "sender": "3PLAY3rsxPcmLCgbF1Cto75nmj7i3tc4JEu", "senderPublicKey": "4cKT1VmsXwvqdB9mZAq9WcGh8bq8ecEYfwreKK31FTVk", "proofs": [ "xjGEjEvH1Jx8AXdYJF1HfXetfgtWTW4H7Rapf6vpntSsS3Mr3X3QVwshv9Lva7ph9gh2JVaa45E1v9URUCzpjaP" ], "script": "base64:AAIDAAAAAAAAACMIARIECgIBCBIDCgEBEgQKAggBEgASABIDCgECEgMKAQESAAAAAD4AAAAACWNvcHlyaWdodAIAAAAeQ29weXJpZ2h0IChjKSAyMDE5IE1hRGFNYSBMYWJzAAAAAAdjcmVhdG9yAgAAACNAZGFpZGFsb3MgLSB0d2l0dGVyLmNvbS90d19kYWlkYWxvcwAAAAAEdGVhbQIAAAAqTWFEYU1hIExhYnMgaHR0cHM6Ly9naXRsYWIuY29tL21hZGFtYWxhYnMvAAAAAAdsaWNlbnNlAgAAAAtNSVQgTGljZW5zZQAAAAALbGljZW5zZUxpbmsCAAAAP3RsZHJsZWdhbC5jb20vbGljZW5zZS9taXQtbGljZW5zZSAsIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAAAAAAPc2VydmVyUHVibGljS2V5AQAAACDaQDjoCUvjdh5QJ90O5VVLqCRoQhuw50WxFblEc1IJUAAAAAAPd2FsbGV0UHVibGljS2V5AQAAACCiaVESx5n4/RzwsC755gpGrVuchRtf6tbqq/Dy2R+MBgAAAAADZmVlAAAAAAAAB6EgAAAAAAhPTkVXQVZFUwAAAAAABfXhAAAAAAAOcGVyaW9kR2FtZVBsYXkAAAAAAAAAAAIAAAAABXdoZWVsCQAETAAAAAICAAAAATUJAARMAAAAAgIAAAACMjQJAARMAAAAAgIAAAACMTYJAARMAAAAAgIAAAACMzMJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAIyMAkABEwAAAACAgAAAAIxNAkABEwAAAACAgAAAAIzMQkABEwAAAACAgAAAAE5CQAETAAAAAICAAAAAjIyCQAETAAAAAICAAAAAjE4CQAETAAAAAICAAAAAjI5CQAETAAAAAICAAAAATcJAARMAAAAAgIAAAACMjgJAARMAAAAAgIAAAACMTIJAARMAAAAAgIAAAACMzUJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAIyNgkABEwAAAACAgAAAAEwCQAETAAAAAICAAAAAjMyCQAETAAAAAICAAAAAjE1CQAETAAAAAICAAAAAjE5CQAETAAAAAICAAAAATQJAARMAAAAAgIAAAACMjEJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAIyNQkABEwAAAACAgAAAAIxNwkABEwAAAACAgAAAAIzNAkABEwAAAACAgAAAAE2CQAETAAAAAICAAAAAjI3CQAETAAAAAICAAAAAjEzCQAETAAAAAICAAAAAjM2CQAETAAAAAICAAAAAjExCQAETAAAAAICAAAAAjMwCQAETAAAAAICAAAAATgJAARMAAAAAgIAAAACMjMJAARMAAAAAgIAAAACMTAFAAAAA25pbAAAAAAJUlNBUFVCTElDCQACWwAAAAECAAABk2Jhc2U2NDpNSUlCSlRBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVJJQU1JSUJEUUtDQVFFQXRPYmZpd1d5QkZwU05KWm1reGx3SHk1dlQrSmIrVnY2ZjdMbGhLRTl3TmNDMFFwMHJkeU13eExwZHdmdUxzS2JSZEJFYkRocGIzZHoxSlBKaWF0bGhLVktVc29RMjVVUXU5aHYyb1h5eUV6Sng4NkNHUXE1SE9yM1lHR1NkSlIwTEtxMVBoYllyTm11UzZqUERZb2J4c3NYeWMvdHhzaXBTR3d6TWdWSGNxdDlPU2lHUXlTWjgvOW10djQyRWVmekZFOTV3dXV5NDJLSktHN2gwRFRNZkZTTFRwcWhTL01icDhFS1B1VmIxaHVXc01LVkw5UXRPUFlFWGE5UVBaYTJXQlBYNVk5QkkxTWNSUS9XZjhXd3FRdEFScEJmU1Zwa0tQUzFBbWh0MmZFT3hTU1lScUc2SVVzZks4eE85aHh0KzMrL09wLytJRkpUR2NHRjhCcnpXUUlHQ1B3OS91MjcAAAAAEWdhbWVzTGFiZWxDb3VudGVyAgAAAA5YX0dBTUVTQ09VTlRFUgAAAAAVZ2FtZXNMYWJlbEJldHNDb3VudGVyAgAAAA1YX0JFVFNDT1VOVEVSAAAAABZnYW1lc0xhYmVsQmV0c0ZlZU1vdmVkAgAAAA5YX0JFVFNGRUVNT1ZFRAAAAAAYZ2FtZXNMYWJlbFRvdGFsQW1vdW50V2luAgAAABBYX1RPVEFMQU1PVU5UV0lOAAAAABhnYW1lc0xhYmVsVG90YWxBbW91bnRCZXQCAAAAEFhfVE9UQUxBTU9VTlRCRVQAAAAAGWdhbWVzTGFiZWxUb3RhbEFkZHJlc3NCZXQCAAAAEVhfVE9UQUxBRERSRVNTQkVUAQAAAA9nYW1lc0dldENvdW50ZXIAAAAACQAEGgAAAAIFAAAABHRoaXMFAAAAEWdhbWVzTGFiZWxDb3VudGVyAQAAABNnYW1lc0dldEJldHNDb3VudGVyAAAAAAkABBoAAAACBQAAAAR0aGlzBQAAABVnYW1lc0xhYmVsQmV0c0NvdW50ZXIBAAAAFGdhbWVzR2V0QmV0c0ZlZU1vdmVkAAAAAAkABBoAAAACBQAAAAR0aGlzBQAAABZnYW1lc0xhYmVsQmV0c0ZlZU1vdmVkAQAAABZnYW1lc0dldFRvdGFsQW1vdW50V2luAAAAAAkABBoAAAACBQAAAAR0aGlzBQAAABhnYW1lc0xhYmVsVG90YWxBbW91bnRXaW4BAAAAFmdhbWVzR2V0VG90YWxBbW91bnRCZXQAAAAACQAEGgAAAAIFAAAABHRoaXMFAAAAGGdhbWVzTGFiZWxUb3RhbEFtb3VudEJldAEAAAAXZ2FtZXNHZXRUb3RhbEFkZHJlc3NCZXQAAAAACQAEGgAAAAIFAAAABHRoaXMFAAAAGWdhbWVzTGFiZWxUb3RhbEFkZHJlc3NCZXQBAAAAEG51bWJlckxhYmVsQ291bnQAAAABAAAABm51bWJlcgkAASwAAAACAgAAAAJOXwUAAAAGbnVtYmVyAQAAAA5udW1iZXJHZXRDb3VudAAAAAEAAAAGbnVtYmVyCQAEGgAAAAIFAAAABHRoaXMJAQAAABBudW1iZXJMYWJlbENvdW50AAAAAQUAAAAGbnVtYmVyAQAAAA9nYW1lTGFiZWxTdGF0dXMAAAABAAAADEdBTUVTQ09VTlRFUgkAASwAAAACCQABLAAAAAICAAAAAkdfCQABpAAAAAEFAAAADEdBTUVTQ09VTlRFUgIAAAAHX1NUQVRVUwEAAAAPZ2FtZUxhYmVsTnVtYmVyAAAAAQAAAAxHQU1FU0NPVU5URVIJAAEsAAAAAgkAASwAAAACAgAAAAJHXwkAAaQAAAABBQAAAAxHQU1FU0NPVU5URVICAAAAB19OVU1CRVIBAAAADGdhbWVMYWJlbE1heAAAAAEAAAAMR0FNRVNDT1VOVEVSCQABLAAAAAIJAAEsAAAAAgIAAAACR18JAAGkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAgAAAARfTUFYAQAAAA1nYW1lTGFiZWxCZXRzAAAAAQAAAAxHQU1FU0NPVU5URVIJAAEs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YUVudHJ5AAAAAgUAAAAYZ2FtZXNMYWJlbFRvdGFsQW1vdW50QmV0CQAAZAAAAAIJAQAAAAV2YWx1ZQAAAAEJAQAAABZnYW1lc0dldFRvdGFsQW1vdW50QmV0AAAAAAUAAAAGYW1vdW50BQAAAANuaWwEAAAAD1RPVEFMQUREUkVTU0JFVAkAAGQAAAACCQEAAAAFdmFsdWUAAAABCQEAAAAXZ2FtZXNHZXRUb3RhbEFkZHJlc3NCZXQAAAAAAAAAAAAAAAABBAAAAAlkYXRhRmluYWwDCQAAAAAAAAIFAAAADUFERFJFU1NBTU9VTlQAAAAAAAAAAAAJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAQAAABNwb2ludGVyQWRkcmVzc0xhYmVsAAAAAQkAAaQAAAABBQAAAA9UT1RBTEFERFJFU1NCRVQFAAAAB2FkZHJlc3MJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGWdhbWVzTGFiZWxUb3RhbEFkZHJlc3NCZXQFAAAAD1RPVEFMQUREUkVTU0JFVAUAAAAEZGF0YQUAAAAEZGF0YQkBAAAACFdyaXRlU2V0AAAAAQUAAAAJZGF0YUZpbmFsCQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAADkdBTUVfTk9UX0ZPVU5ECQAAAgAAAAECAAAAC0lOSVRfTkVFREVEAAAAAWkBAAAABmdldFdpbgAAAAEAAAADQkVUAwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABBnZXRXaW5fRk9SQkJJREVOBAAAAAckbWF0Y2gwCQEAAAAPZ2FtZXNHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAxHQU1FU0NPVU5URVIFAAAAByRtYXRjaDAEAAAAByRtYXRjaDEJAQAAAA1nYW1lR2V0U3RhdHVzAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkAAAEAAAACBQAAAAckbWF0Y2gxAgAAAAZTdHJpbmcEAAAACkNVUlJTVEFUVVMFAAAAByRtYXRjaDEDCQEAAAACIT0A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cgkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkBAAAAEG51bWJlckxhYmVsQ291bnQAAAABBQAAAAxudW1iZXJTdHJpbmcJAABkAAAAAgUAAAALbnVtYmVyQ291bnQAAAAAAAAAAAEFAAAAA25pbAkAAAIAAAABAgAAAA5HQU1FX05PVF9GT1VORAkAAAIAAAABAgAAAAtJTklUX05FRURFRAAAAAFpAQAAAA5hbW91bnRUb1dhbGxldAAAAAEAAAAGYW1vdW50AwkBAAAAD2NoZWNrUGVybWlzc2lvbgAAAAEIBQAAAAFpAAAAD2NhbGxlclB1YmxpY0tleQkAAAIAAAABAgAAABhhbW91bnRUb1dhbGxldF9GT1JCQklERU4EAAAAByRtYXRjaDAJAQAAAA9nYW1lc0dldENvdW50ZXIAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAADEdBTUVTQ09VTlRFUgUAAAAHJG1hdGNoMAMJAAAAAAAAAgUAAAAMR0FNRVNDT1VOVEVSAAAAAAAAAAAACQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAD3NlcnZlclB1YmxpY0tleQUAAAAGYW1vdW50BQAAAAR1bml0BQAAAANuaWwEAAAACkNVUlJTVEFUVVMJAQAAAAV2YWx1ZQAAAAEJAQAAAA1nYW1lR2V0U3RhdHVzAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkBAAAAAiE9AAAAAgUAAAAKQ1VSUlNUQVRVUwIAAAAEU0hPVwkAAAIAAAABAgAAABdDVVJSX1NUQVRVU19JU19OT1RfU0hPVwQAAAAEQkVUUwkBAAAABXZhbHVlAAAAAQkBAAAAC2dhbWVHZXRCZXRzAAAAAQUAAAAMR0FNRVNDT1VOVEVSBAAAAAZQQVNTRUQJAQAAAAV2YWx1ZQAAAAEJAQAAAA1nYW1lR2V0UGFzc2VkAAAAAQUAAAAMR0FNRVNDT1VOVEVSAwkBAAAAAiE9AAAAAgUAAAAEQkVUUwUAAAAGUEFTU0VECQAAAgAAAAECAAAAD1dBSVRfQUxMX1BBU1NFRAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAAA93YWxsZXRQdWJsaWNLZXkFAAAABmFtb3VudAUAAAAEdW5pdAUAAAADbmlsCQAAAgAAAAECAAAAC0lOSVRfTkVFREVEAAAAAWkBAAAAD2JldHNGZWVUb1NlcnZlcgAAAAADCQEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAGWJldHNGZWVUb1NlcnZlcl9GT1JCQklERU4EAAAAByRtYXRjaDAJAQAAAA9nYW1lc0dldENvdW50ZXIAAAAAAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAADEdBTUVTQ09VTlRFUgUAAAAHJG1hdGNoMAMJAAAAAAAAAgUAAAAMR0FNRVNDT1VOVEVSAAAAAAAAAAAACQAAAgAAAAECAAAAC05PX0JFVFNfRkVFBAAAAApDVVJSU1RBVFVTCQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFN0YXR1cwAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAQAAAAIhPQAAAAIFAAAACkNVUlJTVEFUVVMCAAAABFNIT1cJAAACAAAAAQIAAAAXQ1VSUl9TVEFUVVNfSVNfTk9UX1NIT1cEAAAABEJFVFMJAQAAAAV2YWx1ZQAAAAEJAQAAAAtnYW1lR2V0QmV0cwAAAAEFAAAADEdBTUVTQ09VTlRFUgQAAAAGUEFTU0VECQEAAAAFdmFsdWUAAAABCQEAAAANZ2FtZUdldFBhc3NlZAAAAAEFAAAADEdBTUVTQ09VTlRFUgMJAQAAAAIhPQAAAAIFAAAABEJFVFMFAAAABlBBU1NFRAkAAAIAAAABAgAAAA9XQUlUX0FMTF9QQVNTRUQEAAAAC0JFVFNDT1VOVEVSCQEAAAAFdmFsdWUAAAABCQEAAAATZ2FtZXNHZXRCZXRzQ291bnRlcgAAAAAEAAAACUJFVFNNT1ZFRAkBAAAABXZhbHVlAAAAAQkBAAAAFGdhbWVzR2V0QmV0c0ZlZU1vdmVkAAAAAAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAFmdhbWVzTGFiZWxCZXRzRmVlTW92ZWQFAAAAC0JFVFNDT1VOVEVSBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAAPc2VydmVyUHVibGljS2V5CQAAaAAAAAIJAABlAAAAAgUAAAALQkVUU0NPVU5URVIFAAAACUJFVFNNT1ZFRAUAAAADZmVlBQAAAAR1bml0BQAAAANuaWwJAAACAAAAAQIAAAALSU5JVF9ORUVERUQAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAAB+IUFtQ=", "chainId": 87, "height": 1781046, "spentComplexity": 0 } View: original | compacted Prev: FewVeUtLzKmPdbBDMyi8BhhsBBTJmvSbNG18Hpd7R5gM Next: none Diff:
OldNewDifferences
640640
641641
642642 @Verifier(tx)
643-func verify () = match tx {
644- case TT: TransferTransaction =>
645- if ((addressFromPublicKey(TT.senderPublicKey) == TT.sender))
646- then sigVerify(TT.bodyBytes, TT.proofs[0], TT.senderPublicKey)
647- else false
648- case SS: SetScriptTransaction =>
649- if ((addressFromPublicKey(SS.senderPublicKey) == SS.sender))
650- then sigVerify(SS.bodyBytes, SS.proofs[0], SS.senderPublicKey)
651- else false
652- case _ =>
653- false
654-}
643+func verify () = false
655644
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let copyright = "Copyright (c) 2019 MaDaMa Labs"
55
66 let creator = "@daidalos - twitter.com/tw_daidalos"
77
88 let team = "MaDaMa Labs https://gitlab.com/madamalabs/"
99
1010 let license = "MIT License"
1111
1212 let licenseLink = "tldrlegal.com/license/mit-license , opensource.org/licenses/MIT"
1313
1414 let serverPublicKey = base58'FgxgFBtdG7BrqLw64EKWhKJUADDvyY1BZsXR1MASssnP'
1515
1616 let walletPublicKey = base58'BvzBzzqTpekD5vzHoiba3nMvfvvJs2y7fT61LoPNPNjF'
1717
1818 let fee = 500000
1919
2020 let ONEWAVES = 100000000
2121
2222 let periodGamePlay = 2
2323
2424 let wheel = ["5", "24", "16", "33", "1", "20", "14", "31", "9", "22", "18", "29", "7", "28", "12", "35", "3", "26", "0", "32", "15", "19", "4", "21", "2", "25", "17", "34", "6", "27", "13", "36", "11", "30", "8", "23", "10"]
2525
2626 let RSAPUBLIC = fromBase64String("base64:MIIBJTANBgkqhkiG9w0BAQEFAAOCARIAMIIBDQKCAQEAtObfiwWyBFpSNJZmkxlwHy5vT+Jb+Vv6f7LlhKE9wNcC0Qp0rdyMwxLpdwfuLsKbRdBEbDhpb3dz1JPJiatlhKVKUsoQ25UQu9hv2oXyyEzJx86CGQq5HOr3YGGSdJR0LKq1PhbYrNmuS6jPDYobxssXyc/txsipSGwzMgVHcqt9OSiGQySZ8/9mtv42EefzFE95wuuy42KJKG7h0DTMfFSLTpqhS/Mbp8EKPuVb1huWsMKVL9QtOPYEXa9QPZa2WBPX5Y9BI1McRQ/Wf8WwqQtARpBfSVpkKPS1Amht2fEOxSSYRqG6IUsfK8xO9hxt+3+/Op/+IFJTGcGF8BrzWQIGCPw9/u27")
2727
2828 let gamesLabelCounter = "X_GAMESCOUNTER"
2929
3030 let gamesLabelBetsCounter = "X_BETSCOUNTER"
3131
3232 let gamesLabelBetsFeeMoved = "X_BETSFEEMOVED"
3333
3434 let gamesLabelTotalAmountWin = "X_TOTALAMOUNTWIN"
3535
3636 let gamesLabelTotalAmountBet = "X_TOTALAMOUNTBET"
3737
3838 let gamesLabelTotalAddressBet = "X_TOTALADDRESSBET"
3939
4040 func gamesGetCounter () = getInteger(this, gamesLabelCounter)
4141
4242
4343 func gamesGetBetsCounter () = getInteger(this, gamesLabelBetsCounter)
4444
4545
4646 func gamesGetBetsFeeMoved () = getInteger(this, gamesLabelBetsFeeMoved)
4747
4848
4949 func gamesGetTotalAmountWin () = getInteger(this, gamesLabelTotalAmountWin)
5050
5151
5252 func gamesGetTotalAmountBet () = getInteger(this, gamesLabelTotalAmountBet)
5353
5454
5555 func gamesGetTotalAddressBet () = getInteger(this, gamesLabelTotalAddressBet)
5656
5757
5858 func numberLabelCount (number) = ("N_" + number)
5959
6060
6161 func numberGetCount (number) = getInteger(this, numberLabelCount(number))
6262
6363
6464 func gameLabelStatus (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_STATUS")
6565
6666
6767 func gameLabelNumber (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_NUMBER")
6868
6969
7070 func gameLabelMax (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_MAX")
7171
7272
7373 func gameLabelBets (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_BETS")
7474
7575
7676 func gameLabelPassed (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_PASSED")
7777
7878
7979 func gameLabelHeight (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_HEIGHT")
8080
8181
8282 func gameLabelSumSha (GAMESCOUNTER) = (("G_" + toString(GAMESCOUNTER)) + "_SUMSHA")
8383
8484
8585 func gameLabelCmbMax (GAMESCOUNTER,CMB) = ((("G_" + toString(GAMESCOUNTER)) + "_C") + CMB)
8686
8787
8888 func gameGetStatus (GAMESCOUNTER) = getString(this, gameLabelStatus(GAMESCOUNTER))
8989
9090
9191 func gameGetNumber (GAMESCOUNTER) = getInteger(this, gameLabelNumber(GAMESCOUNTER))
9292
9393
9494 func gameGetMax (GAMESCOUNTER) = getInteger(this, gameLabelMax(GAMESCOUNTER))
9595
9696
9797 func gameGetBets (GAMESCOUNTER) = getInteger(this, gameLabelBets(GAMESCOUNTER))
9898
9999
100100 func gameGetPassed (GAMESCOUNTER) = getInteger(this, gameLabelPassed(GAMESCOUNTER))
101101
102102
103103 func gameGetHeight (GAMESCOUNTER) = getInteger(this, gameLabelHeight(GAMESCOUNTER))
104104
105105
106106 func gameGetSumSha (GAMESCOUNTER) = getString(this, gameLabelSumSha(GAMESCOUNTER))
107107
108108
109109 func gameGetCmbMax (GAMESCOUNTER,CMB) = getInteger(this, gameLabelCmbMax(GAMESCOUNTER, CMB))
110110
111111
112112 func betLabelStatus (idBet) = (("B_" + idBet) + "_STATUS")
113113
114114
115115 func betLabelInfo (idBet) = (("B_" + idBet) + "_INFO")
116116
117117
118118 func betGetStatus (idBet) = getString(this, betLabelStatus(idBet))
119119
120120
121121 func betGetInfo (idBet) = getString(this, betLabelInfo(idBet))
122122
123123
124124 func addressLabelWon (addr) = (("A_" + addr) + "_WON")
125125
126126
127127 func addressLabelAmount (addr) = (("A_" + addr) + "_AMOUNT")
128128
129129
130130 func addressLabelBets (addr) = (("A_" + addr) + "_BETS")
131131
132132
133133 func addressLabelHit (addr) = (("A_" + addr) + "_HIT")
134134
135135
136136 func addressGetWon (addr) = getInteger(this, addressLabelWon(addr))
137137
138138
139139 func addressGetAmount (addr) = getInteger(this, addressLabelAmount(addr))
140140
141141
142142 func addressGetBets (addr) = getInteger(this, addressLabelBets(addr))
143143
144144
145145 func addressGetHit (addr) = getInteger(this, addressLabelHit(addr))
146146
147147
148148 func pointerAddressLabel (id) = ("P_" + id)
149149
150150
151151 func checkPermission (callerPublicKey) = (callerPublicKey != serverPublicKey)
152152
153153
154154 func gameNewMax (win) = match gamesGetCounter() {
155155 case GAMESCOUNTER: Int =>
156156 match gameGetMax(GAMESCOUNTER) {
157157 case CURRMAX: Int =>
158158 let temp = (CURRMAX - win)
159159 if ((0 > temp))
160160 then throw("BET_IS_BLOCK")
161161 else temp
162162 case _ =>
163163 throw("GAME_NOT_FOUND")
164164 }
165165 case _ =>
166166 throw("INIT_NEEDED")
167167 }
168168
169169
170170 func gameNewSumSha (txId) = match gamesGetCounter() {
171171 case GAMESCOUNTER: Int =>
172172 match gameGetSumSha(GAMESCOUNTER) {
173173 case SUMSHA: String =>
174174 toBase58String(sha256((fromBase58String(SUMSHA) + txId)))
175175 case _ =>
176176 throw("GAME_NOT_FOUND")
177177 }
178178 case _ =>
179179 throw("INIT_NEEDED")
180180 }
181181
182182
183183 func checkIdBet (idBet) = match betGetInfo(idBet) {
184184 case temp: String =>
185185 throw("PLAYER_ALREADY_DEFINED")
186186 case _ =>
187187 1
188188 }
189189
190190
191191 func checkBet (bet,cmb) = {
192192 let onlyoneandmore = if (if (if (if (if (if (if (if (if (if (if (if ((cmb == "_RED"))
193193 then true
194194 else (cmb == "_BLACK"))
195195 then true
196196 else (cmb == "_EVEN"))
197197 then true
198198 else (cmb == "_ODD"))
199199 then true
200200 else (cmb == "_LOW"))
201201 then true
202202 else (cmb == "_HIGH"))
203203 then true
204204 else (cmb == "_DOZER1"))
205205 then true
206206 else (cmb == "_DOZER2"))
207207 then true
208208 else (cmb == "_DOZER3"))
209209 then true
210210 else (cmb == "_COLUMN1"))
211211 then true
212212 else (cmb == "_COLUMN2"))
213213 then true
214214 else (cmb == "_COLUMN3"))
215215 then true
216216 else false
217217 if (onlyoneandmore)
218218 then if (if (if ((bet == 100000000))
219219 then true
220220 else (bet == 200000000))
221221 then true
222222 else (bet == 500000000))
223223 then 1
224224 else throw("BET_NOT_FOUND")
225225 else if (if (if (if (if (if ((bet == 10000000))
226226 then true
227227 else (bet == 20000000))
228228 then true
229229 else (bet == 50000000))
230230 then true
231231 else (bet == 100000000))
232232 then true
233233 else (bet == 200000000))
234234 then true
235235 else (bet == 500000000))
236236 then 1
237237 else throw("BET_NOT_FOUND")
238238 }
239239
240240
241241 func getCmb (cmb) = match getInteger(this, ("C" + cmb)) {
242242 case temp: Int =>
243243 temp
244244 case _ =>
245245 throw("CMB_NOT_FOUND")
246246 }
247247
248248
249249 func allowCmbMax (gamecounter,cmb,win) = match gameGetCmbMax(gamecounter, cmb) {
250250 case temp: Int =>
251251 if (((temp + win) > 20000000000))
252252 then throw("CMB_MAX_WIN")
253253 else 1
254254 case _ =>
255255 1
256256 }
257257
258258
259259 @Callable(i)
260260 func bet (id,cmb) = match gamesGetCounter() {
261261 case GAMESCOUNTER: Int =>
262262 if ((id != GAMESCOUNTER))
263263 then throw("GAME_ID_WRONG")
264264 else match gameGetStatus(GAMESCOUNTER) {
265265 case CURRSTATUS: String =>
266266 if ((CURRSTATUS != "PLAY"))
267267 then throw("CURR_STATUS_IS_NOT_PLAY")
268268 else match gameGetHeight(GAMESCOUNTER) {
269269 case GAMEHEIGHT: Int =>
270270 if (if ((GAMEHEIGHT != 0))
271271 then (height > (GAMEHEIGHT + periodGamePlay))
272272 else false)
273273 then throw("GAME_IS_END")
274274 else match gameGetBets(GAMESCOUNTER) {
275275 case BETS: Int =>
276276 let idBet = ((toString(GAMESCOUNTER) + "_") + toString((BETS + 1)))
277277 let payment = value(i.payment)
278278 match payment.assetId {
279279 case assetId: ByteVector =>
280280 throw("ONLY_WAVES_ACCEPTED")
281281 case _ =>
282282 let amount = (payment.amount - fee)
283283 let win = (((checkIdBet(idBet) * checkBet(amount, cmb)) * getCmb(cmb)) * amount)
284284 let winmax = (win * allowCmbMax(GAMESCOUNTER, cmb, win))
285285 let address = toBase58String(i.caller.bytes)
286286 let info = ((((((address + "||") + cmb) + "||") + toString(amount)) + "||") + toString(winmax))
287287 let ADDRESSAMOUNT = match addressGetAmount(address) {
288288 case temp: Int =>
289289 temp
290290 case _ =>
291291 0
292292 }
293293 let ADDRESSBETS = match addressGetBets(address) {
294294 case temp: Int =>
295295 temp
296296 case _ =>
297297 0
298298 }
299299 let CMBMAX = match gameGetCmbMax(GAMESCOUNTER, cmb) {
300300 case temp: Int =>
301301 temp
302302 case _ =>
303303 0
304304 }
305305 let data = [DataEntry(betLabelInfo(idBet), info), DataEntry(betLabelStatus(idBet), "ACCEPT"), DataEntry(gameLabelBets(GAMESCOUNTER), (BETS + 1)), DataEntry(gameLabelHeight(GAMESCOUNTER), if ((GAMEHEIGHT == 0))
306306 then height
307307 else GAMEHEIGHT), DataEntry(gameLabelMax(GAMESCOUNTER), gameNewMax(winmax)), DataEntry(gameLabelSumSha(GAMESCOUNTER), gameNewSumSha(i.transactionId)), DataEntry(gameLabelCmbMax(GAMESCOUNTER, cmb), (CMBMAX + winmax)), DataEntry(addressLabelAmount(address), (ADDRESSAMOUNT + amount)), DataEntry(addressLabelBets(address), (ADDRESSBETS + 1)), DataEntry(gamesLabelBetsCounter, (value(gamesGetBetsCounter()) + 1)), DataEntry(gamesLabelTotalAmountBet, (value(gamesGetTotalAmountBet()) + amount))]
308308 let TOTALADDRESSBET = (value(gamesGetTotalAddressBet()) + 1)
309309 let dataFinal = if ((ADDRESSAMOUNT == 0))
310310 then [DataEntry(pointerAddressLabel(toString(TOTALADDRESSBET)), address), DataEntry(gamesLabelTotalAddressBet, TOTALADDRESSBET)] :: data
311311 else data
312312 WriteSet(dataFinal)
313313 }
314314 case _ =>
315315 throw("GAME_NOT_FOUND")
316316 }
317317 case _ =>
318318 throw("GAME_NOT_FOUND")
319319 }
320320 case _ =>
321321 throw("GAME_NOT_FOUND")
322322 }
323323 case _ =>
324324 throw("INIT_NEEDED")
325325 }
326326
327327
328328
329329 @Callable(i)
330330 func getWin (BET) = if (checkPermission(i.callerPublicKey))
331331 then throw("getWin_FORBBIDEN")
332332 else match gamesGetCounter() {
333333 case GAMESCOUNTER: Int =>
334334 match gameGetStatus(GAMESCOUNTER) {
335335 case CURRSTATUS: String =>
336336 if ((CURRSTATUS != "SHOW"))
337337 then throw("CURR_STATUS_IS_NOT_SHOW")
338338 else match gameGetNumber(GAMESCOUNTER) {
339339 case NUMBER: Int =>
340340 let idBet = ((toString(GAMESCOUNTER) + "_") + toString(BET))
341341 let numberString = (("_" + toString(NUMBER)) + "_")
342342 let red = "|_1_3_5_7_9_12_14_16_18_19_21_23_25_27_30_32_34_36_|"
343343 let black = "|_2_4_6_8_10_11_13_15_17_20_22_24_26_28_29_31_33_35_|"
344344 let indexRed = match indexOf(red, numberString) {
345345 case temp: Int =>
346346 (temp > 0)
347347 case _ =>
348348 false
349349 }
350350 let indexBlack = match indexOf(black, numberString) {
351351 case temp: Int =>
352352 (temp > 0)
353353 case _ =>
354354 false
355355 }
356356 let cmbRB = ("_" + (if (indexRed)
357357 then "RED"
358358 else if (indexBlack)
359359 then "BLACK"
360360 else "NDF"))
361361 let cmbEO = ("_" + (if (if ((0 >= NUMBER))
362362 then true
363363 else (NUMBER > 36))
364364 then "NDF"
365365 else if (((NUMBER % 2) == 0))
366366 then "EVEN"
367367 else "ODD"))
368368 let cmbLH = ("_" + (if (if ((NUMBER >= 1))
369369 then (18 >= NUMBER)
370370 else false)
371371 then "LOW"
372372 else if (if ((NUMBER >= 19))
373373 then (36 >= NUMBER)
374374 else false)
375375 then "HIGH"
376376 else "NDF"))
377377 let cmbDZ = ("_" + (if (if ((NUMBER >= 1))
378378 then (12 >= NUMBER)
379379 else false)
380380 then "DOZER1"
381381 else if (if ((NUMBER >= 13))
382382 then (24 >= NUMBER)
383383 else false)
384384 then "DOZER2"
385385 else if (if ((NUMBER >= 25))
386386 then (36 >= NUMBER)
387387 else false)
388388 then "DOZER3"
389389 else "NDF"))
390390 let cmbCL = ("_" + (if (if ((0 >= NUMBER))
391391 then true
392392 else (NUMBER > 36))
393393 then "NDF"
394394 else if (((NUMBER % 3) == 1))
395395 then "COLUMN1"
396396 else if (((NUMBER % 3) == 2))
397397 then "COLUMN2"
398398 else "COLUMN3"))
399399 let STATUS = match betGetStatus(idBet) {
400400 case temp: String =>
401401 temp
402402 case _ =>
403403 throw("BET_STATUS_NOT_FOUND")
404404 }
405405 let INFO = match betGetInfo(idBet) {
406406 case temp: String =>
407407 temp
408408 case _ =>
409409 throw("BET_INFO_NOT_FOUND")
410410 }
411411 let INFOS = split(INFO, "||")
412412 let ADDRESSSTRING = INFOS[0]
413413 let ADDRESS = value(addressFromString(ADDRESSSTRING))
414414 let CMB = INFOS[1]
415415 let AMOUNT = value(parseInt(INFOS[2]))
416416 let WIN = value(parseInt(INFOS[3]))
417417 let ADDRESSWON = match addressGetWon(ADDRESSSTRING) {
418418 case temp: Int =>
419419 temp
420420 case _ =>
421421 0
422422 }
423423 let ADDRESSHIT = match addressGetHit(ADDRESSSTRING) {
424424 case temp: Int =>
425425 temp
426426 case _ =>
427427 0
428428 }
429429 let DATAPASSED = DataEntry(gameLabelPassed(GAMESCOUNTER), (value(gameGetPassed(GAMESCOUNTER)) + 1))
430430 if (if (if (if (if ((STATUS == "ACCEPT"))
431431 then (CMB != "")
432432 else false)
433433 then (WIN > 0)
434434 else false)
435435 then (AMOUNT > 0)
436436 else false)
437437 then isDefined(ADDRESS)
438438 else false)
439439 then {
440440 let cmbIN = match indexOf((("|" + CMB) + "|"), numberString) {
441441 case temp: Int =>
442442 (temp > 0)
443443 case _ =>
444444 false
445445 }
446446 if (if (if (if (if (if (cmbIN)
447447 then true
448448 else (CMB == cmbRB))
449449 then true
450450 else (CMB == cmbEO))
451451 then true
452452 else (CMB == cmbLH))
453453 then true
454454 else (CMB == cmbDZ))
455455 then true
456456 else (CMB == cmbCL))
457457 then ScriptResult(WriteSet([DATAPASSED, DataEntry(betLabelStatus(idBet), "WON"), DataEntry(addressLabelWon(ADDRESSSTRING), ((ADDRESSWON + WIN) + AMOUNT)), DataEntry(addressLabelHit(ADDRESSSTRING), (ADDRESSHIT + 1)), DataEntry(gamesLabelTotalAmountWin, ((value(gamesGetTotalAmountWin()) + WIN) + AMOUNT))]), TransferSet([ScriptTransfer(ADDRESS, (WIN + AMOUNT), unit)]))
458458 else WriteSet([DATAPASSED, DataEntry(betLabelStatus(idBet), "LOST")])
459459 }
460460 else throw("GET_WIN_ALREADY_CALLED")
461461 case _ =>
462462 throw("GAME_NOT_FOUND")
463463 }
464464 case _ =>
465465 throw("GAME_NOT_FOUND")
466466 }
467467 case _ =>
468468 throw("INIT_NEEDED")
469469 }
470470
471471
472472
473473 @Callable(i)
474474 func addCmb (cmb,val) = if (checkPermission(i.callerPublicKey))
475475 then throw("addCmb_FORBBIDEN")
476476 else match gamesGetCounter() {
477477 case GAMESCOUNTER: Int =>
478478 if ((GAMESCOUNTER != 0))
479479 then throw("INIT_ALREADY_DONE")
480480 else if (if (if (if (if (if (if ((val == 1))
481481 then true
482482 else (val == 2))
483483 then true
484484 else (val == 5))
485485 then true
486486 else (val == 8))
487487 then true
488488 else (val == 11))
489489 then true
490490 else (val == 17))
491491 then true
492492 else (val == 35))
493493 then WriteSet([DataEntry(("C" + cmb), val)])
494494 else throw("AMOUNT_NOT_FOUND")
495495 case _ =>
496496 throw("INIT_NEEDED")
497497 }
498498
499499
500500
501501 @Callable(i)
502502 func initGame () = if (checkPermission(i.callerPublicKey))
503503 then throw("initGame_FORBBIDEN")
504504 else match gamesGetCounter() {
505505 case GAMESCOUNTER: Int =>
506506 throw("INIT_ALREADY_DONE")
507507 case _ =>
508508 WriteSet([DataEntry(gamesLabelCounter, 0), DataEntry(gamesLabelBetsCounter, 0), DataEntry(gamesLabelBetsFeeMoved, 0), DataEntry(gamesLabelTotalAmountWin, 0), DataEntry(gamesLabelTotalAmountBet, 0), DataEntry(gamesLabelTotalAddressBet, 0)])
509509 }
510510
511511
512512
513513 @Callable(i)
514514 func newGame () = if (checkPermission(i.callerPublicKey))
515515 then throw("newGame_FORBBIDEN")
516516 else match gamesGetCounter() {
517517 case GAMESCOUNTER: Int =>
518518 let newGameCounter = (GAMESCOUNTER + 1)
519519 let BETSCOUNTER = value(gamesGetBetsCounter())
520520 let BETSMOVED = value(gamesGetBetsFeeMoved())
521521 let gameMax = (wavesBalance(this) - ((BETSCOUNTER - BETSMOVED) * fee))
522522 let halfGameMax = if (((gameMax % 2) == 1))
523523 then ((gameMax - 1) / 2)
524524 else (gameMax / 2)
525525 let sendData = WriteSet([DataEntry(gamesLabelCounter, newGameCounter), DataEntry(gameLabelStatus(newGameCounter), "PLAY"), DataEntry(gameLabelMax(newGameCounter), halfGameMax), DataEntry(gameLabelBets(newGameCounter), 0), DataEntry(gameLabelPassed(newGameCounter), 0), DataEntry(gameLabelHeight(newGameCounter), 0), DataEntry(gameLabelSumSha(newGameCounter), toBase58String(sha256(i.transactionId)))])
526526 if ((ONEWAVES > halfGameMax))
527527 then throw("BALANCE_IS_LOW")
528528 else if ((GAMESCOUNTER == 0))
529529 then sendData
530530 else {
531531 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
532532 if ((CURRSTATUS != "SHOW"))
533533 then throw("CURR_STATUS_IS_NOT_SHOW")
534534 else {
535535 let BETS = value(gameGetBets(GAMESCOUNTER))
536536 let PASSED = value(gameGetPassed(GAMESCOUNTER))
537537 if ((BETS != PASSED))
538538 then throw("WAIT_ALL_PASSED")
539539 else sendData
540540 }
541541 }
542542 case _ =>
543543 throw("INIT_NEEDED")
544544 }
545545
546546
547547
548548 @Callable(i)
549549 func showGame (rsaSign) = if (checkPermission(i.callerPublicKey))
550550 then throw("showGame_FORBBIDEN")
551551 else match gamesGetCounter() {
552552 case GAMESCOUNTER: Int =>
553553 match gameGetSumSha(GAMESCOUNTER) {
554554 case SUMSHA: String =>
555555 let rsaSigValid = rsaVerify(SHA256, fromBase58String(SUMSHA), rsaSign, RSAPUBLIC)
556556 if (!(rsaSigValid))
557557 then throw("INVALID_RSA_SIGN")
558558 else {
559559 let index = (toInt(sha256(rsaSign)) % 37)
560560 let numberString = wheel[index]
561561 let number = value(parseInt(numberString))
562562 let numberCount = match numberGetCount(numberString) {
563563 case temp: Int =>
564564 temp
565565 case _ =>
566566 0
567567 }
568568 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
569569 if ((CURRSTATUS != "PLAY"))
570570 then throw("CURR_STATUS_IS_NOT_PLAY")
571571 else {
572572 let GAMEHEIGHT = value(gameGetHeight(GAMESCOUNTER))
573573 if (if ((GAMEHEIGHT == 0))
574574 then true
575575 else ((GAMEHEIGHT + periodGamePlay) >= height))
576576 then throw("GAME_IS_NOT_END")
577577 else WriteSet([DataEntry(gameLabelStatus(GAMESCOUNTER), "SHOW"), DataEntry(gameLabelNumber(GAMESCOUNTER), number), DataEntry(numberLabelCount(numberString), (numberCount + 1))])
578578 }
579579 }
580580 case _ =>
581581 throw("GAME_NOT_FOUND")
582582 }
583583 case _ =>
584584 throw("INIT_NEEDED")
585585 }
586586
587587
588588
589589 @Callable(i)
590590 func amountToWallet (amount) = if (checkPermission(i.callerPublicKey))
591591 then throw("amountToWallet_FORBBIDEN")
592592 else match gamesGetCounter() {
593593 case GAMESCOUNTER: Int =>
594594 if ((GAMESCOUNTER == 0))
595595 then TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), amount, unit)])
596596 else {
597597 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
598598 if ((CURRSTATUS != "SHOW"))
599599 then throw("CURR_STATUS_IS_NOT_SHOW")
600600 else {
601601 let BETS = value(gameGetBets(GAMESCOUNTER))
602602 let PASSED = value(gameGetPassed(GAMESCOUNTER))
603603 if ((BETS != PASSED))
604604 then throw("WAIT_ALL_PASSED")
605605 else TransferSet([ScriptTransfer(addressFromPublicKey(walletPublicKey), amount, unit)])
606606 }
607607 }
608608 case _ =>
609609 throw("INIT_NEEDED")
610610 }
611611
612612
613613
614614 @Callable(i)
615615 func betsFeeToServer () = if (checkPermission(i.callerPublicKey))
616616 then throw("betsFeeToServer_FORBBIDEN")
617617 else match gamesGetCounter() {
618618 case GAMESCOUNTER: Int =>
619619 if ((GAMESCOUNTER == 0))
620620 then throw("NO_BETS_FEE")
621621 else {
622622 let CURRSTATUS = value(gameGetStatus(GAMESCOUNTER))
623623 if ((CURRSTATUS != "SHOW"))
624624 then throw("CURR_STATUS_IS_NOT_SHOW")
625625 else {
626626 let BETS = value(gameGetBets(GAMESCOUNTER))
627627 let PASSED = value(gameGetPassed(GAMESCOUNTER))
628628 if ((BETS != PASSED))
629629 then throw("WAIT_ALL_PASSED")
630630 else {
631631 let BETSCOUNTER = value(gamesGetBetsCounter())
632632 let BETSMOVED = value(gamesGetBetsFeeMoved())
633633 ScriptResult(WriteSet([DataEntry(gamesLabelBetsFeeMoved, BETSCOUNTER)]), TransferSet([ScriptTransfer(addressFromPublicKey(serverPublicKey), ((BETSCOUNTER - BETSMOVED) * fee), unit)]))
634634 }
635635 }
636636 }
637637 case _ =>
638638 throw("INIT_NEEDED")
639639 }
640640
641641
642642 @Verifier(tx)
643-func verify () = match tx {
644- case TT: TransferTransaction =>
645- if ((addressFromPublicKey(TT.senderPublicKey) == TT.sender))
646- then sigVerify(TT.bodyBytes, TT.proofs[0], TT.senderPublicKey)
647- else false
648- case SS: SetScriptTransaction =>
649- if ((addressFromPublicKey(SS.senderPublicKey) == SS.sender))
650- then sigVerify(SS.bodyBytes, SS.proofs[0], SS.senderPublicKey)
651- else false
652- case _ =>
653- false
654-}
643+func verify () = false
655644

github/deemru/w8io/873ac7e 
110.25 ms