tx · J1zL9F7o8eLimpCUN1sdKo79YSYeqtVWTcE5S7V4w4t6 3NCCNgEjGtWKLt78jWc9DiA3Jd2jmfg7BZX: -0.10000000 Waves 2022.01.11 02:22 [1873493] smart account 3NCCNgEjGtWKLt78jWc9DiA3Jd2jmfg7BZX > SELF 0.00000000 Waves
{ "type": 13, "id": "J1zL9F7o8eLimpCUN1sdKo79YSYeqtVWTcE5S7V4w4t6", "fee": 10000000, "feeAssetId": null, "timestamp": 1641856993015, "version": 2, "chainId": 84, "sender": "3NCCNgEjGtWKLt78jWc9DiA3Jd2jmfg7BZX", "senderPublicKey": "AcdhXSF5aWK6Lmdtv3cyCZ7vehbxsNNGagWCd2FpZo1M", "proofs": [ "2wMqiihFLAGUyqGLMnLR4qv9ickhRknka5rDg8DdELEHhWknTF3siHEzMizhKUSoyzYANEFVmVuV9cDk4Mi28SD1" ], "script": "base64:AAIFAAAAAAAAAAsIAhIHCgUBCAgICAAAAA0AAAAAE2dhbWVNYXN0ZXJQdWJsaWNLZXkBAAAAIAavG/WwebKL+MrRqQJlrrmZ7DVX3O3dmzXFLPgNW0BGAAAAABZzZXR1cEdhbWVzQ291bnRlckxhYmVsAgAAABNHX1NFVFVQR0FNRVNDT1VOVEVSAAAAABV1c2VkR2FtZXNDb3VudGVyTGFiZWwCAAAAEkdfVVNFREdBTUVTQ09VTlRFUgAAAAAQZGVhbGVyUXVldWVMYWJlbAIAAAANR19ERUFMRVJRVUVVRQAAAAAPZ2FtZU1heEJldExhYmVsAgAAAAhHX01BWEJFVAEAAAAUZ2FtZXNTZXR1cEdldENvdW50ZXIAAAAACQAEGgAAAAIFAAAABHRoaXMFAAAAFnNldHVwR2FtZXNDb3VudGVyTGFiZWwBAAAAE2dhbWVzVXNlZEdldENvdW50ZXIAAAAACQAEGgAAAAIFAAAABHRoaXMFAAAAFXVzZWRHYW1lc0NvdW50ZXJMYWJlbAEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkJAQAAAAIhPQAAAAIFAAAAD2NhbGxlclB1YmxpY0tleQUAAAATZ2FtZU1hc3RlclB1YmxpY0tleQEAAAAaZ2V0R2FtZUNhcmRzU2lnbmF0dXJlTGFiZWwAAAACAAAACmdhbWVOdW1iZXIAAAAEY2FyZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAACR18JAAGkAAAAAQUAAAAKZ2FtZU51bWJlcgIAAAAPX0NBUkRTSUdOQVRVUkVfCQABpAAAAAEFAAAABGNhcmQBAAAAEWdldEdhbWVDYXJkc0xhYmVsAAAAAgAAAApnYW1lTnVtYmVyAAAABGNhcmQJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAAkdfCQABpAAAAAEFAAAACmdhbWVOdW1iZXICAAAABl9DQVJEXwkAAaQAAAABBQAAAARjYXJkAQAAABFnZXRHYW1lU3RhdGVMYWJlbAAAAAEAAAAKZ2FtZU51bWJlcgkAASwAAAACCQABLAAAAAICAAAAAkdfCQABpAAAAAEFAAAACmdhbWVOdW1iZXICAAAABl9TVEFURQEAAAAaZ2V0R2FtZVNodWZmZWxPZmZlc2V0TGFiZWwAAAABAAAACmdhbWVOdW1iZXIJAAEsAAAAAgkAASwAAAACAgAAAAJHXwkAAaQAAAABBQAAAApnYW1lTnVtYmVyAgAAAAdfT0ZGU0VUAQAAAAxnZXRHYW1lU2V0dXAAAAADAAAACmdhbWVOdW1iZXIAAAAKcmFuZG9taXplcgAAAAZjYXJkczAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAFnNldHVwR2FtZXNDb3VudGVyTGFiZWwFAAAACmdhbWVOdW1iZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABFnZXRHYW1lU3RhdGVMYWJlbAAAAAEFAAAACmdhbWVOdW1iZXIAAAAAAAAAAAAJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAQAAABpnZXRHYW1lU2h1ZmZlbE9mZmVzZXRMYWJlbAAAAAEFAAAACmdhbWVOdW1iZXIFAAAACnJhbmRvbWl6ZXIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkBAAAAGmdldEdhbWVDYXJkc1NpZ25hdHVyZUxhYmVsAAAAAgUAAAAKZ2FtZU51bWJlcgAAAAAAAAAAAAUAAAAGY2FyZHMwBQAAAANuaWwAAAABAAAAAWkBAAAACXNldHVwR2FtZQAAAAUAAAAKZ2FtZU51bWJlcgAAAAZjYXJkczAAAAAGY2FyZHMxAAAABmNhcmRzMgAAAAZjYXJkczMDCQEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQgFAAAAAWkAAAAPY2FsbGVyUHVibGljS2V5CQAAAgAAAAECAAAAEnNldHVwR2FtZV9GT1JCSURFTgQAAAAHJG1hdGNoMAkBAAAAFGdhbWVzU2V0dXBHZXRDb3VudGVyAAAAAAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAABFTRVRVUEdBTUVTQ09VTlRFUgUAAAAHJG1hdGNoMAQAAAAKcmFuZG9taXplcgkAAGoAAAACCQAEsQAAAAEJAAH3AAAAAQkAAMsAAAACCQAAyQAAAAIIBQAAAAlsYXN0QmxvY2sAAAATZ2VuZXJhdGlvblNpZ25hdHVyZQAAAAAAAAAAEAkAAMkAAAACCAUAAAABaQAAAA10cmFuc2FjdGlvbklkAAAAAAAAAAAQAAAAAAAAAAACBAAAAAtjdXJyZW50R2FtZQkAAGQAAAACBQAAABFTRVRVUEdBTUVTQ09VTlRFUgAAAAAAAAAAAQMJAQAAAAIhPQAAAAIFAAAACmdhbWVOdW1iZXIFAAAAC2N1cnJlbnRHYW1lCQAAAgAAAAECAAAAEldyb25nIGdhbWUgbnVtYmVyLgkBAAAADGdldEdhbWVTZXR1cAAAAAMFAAAAC2N1cnJlbnRHYW1lBQAAAApyYW5kb21pemVyBQAAAAZjYXJkczAJAAACAAAAAQIAAAARSW5pdEdhbWUgUmVxdWlyZWQAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleY0pXbE=", "height": 1873493, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6GPk8LdzNUi3aFhmJXk5AzP8MrTLW3rC85r3EdSCfwLf Next: 6sJDtxdQ7VWdQJgtGxfAz5KydbTYv1rSi7p28Lu3VUyN Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let gameMasterPublicKey = base58' | |
4 | + | let gameMasterPublicKey = base58'T6KCB5F31CtyYUmUoR4QEe16AkJboVcubXTyRZZECS9' | |
5 | 5 | ||
6 | 6 | let setupGamesCounterLabel = "G_SETUPGAMESCOUNTER" | |
7 | 7 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 5 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | let gameMasterPublicKey = base58' | |
4 | + | let gameMasterPublicKey = base58'T6KCB5F31CtyYUmUoR4QEe16AkJboVcubXTyRZZECS9' | |
5 | 5 | ||
6 | 6 | let setupGamesCounterLabel = "G_SETUPGAMESCOUNTER" | |
7 | 7 | ||
8 | 8 | let usedGamesCounterLabel = "G_USEDGAMESCOUNTER" | |
9 | 9 | ||
10 | 10 | let dealerQueueLabel = "G_DEALERQUEUE" | |
11 | 11 | ||
12 | 12 | let gameMaxBetLabel = "G_MAXBET" | |
13 | 13 | ||
14 | 14 | func gamesSetupGetCounter () = getInteger(this, setupGamesCounterLabel) | |
15 | 15 | ||
16 | 16 | ||
17 | 17 | func gamesUsedGetCounter () = getInteger(this, usedGamesCounterLabel) | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | func checkPermission (callerPublicKey) = (callerPublicKey != gameMasterPublicKey) | |
21 | 21 | ||
22 | 22 | ||
23 | 23 | func getGameCardsSignatureLabel (gameNumber,card) = ((("G_" + toString(gameNumber)) + "_CARDSIGNATURE_") + toString(card)) | |
24 | 24 | ||
25 | 25 | ||
26 | 26 | func getGameCardsLabel (gameNumber,card) = ((("G_" + toString(gameNumber)) + "_CARD_") + toString(card)) | |
27 | 27 | ||
28 | 28 | ||
29 | 29 | func getGameStateLabel (gameNumber) = (("G_" + toString(gameNumber)) + "_STATE") | |
30 | 30 | ||
31 | 31 | ||
32 | 32 | func getGameShuffelOffesetLabel (gameNumber) = (("G_" + toString(gameNumber)) + "_OFFSET") | |
33 | 33 | ||
34 | 34 | ||
35 | 35 | func getGameSetup (gameNumber,randomizer,cards0) = [IntegerEntry(setupGamesCounterLabel, gameNumber), IntegerEntry(getGameStateLabel(gameNumber), 0), IntegerEntry(getGameShuffelOffesetLabel(gameNumber), randomizer), StringEntry(getGameCardsSignatureLabel(gameNumber, 0), cards0)] | |
36 | 36 | ||
37 | 37 | ||
38 | 38 | @Callable(i) | |
39 | 39 | func setupGame (gameNumber,cards0,cards1,cards2,cards3) = if (checkPermission(i.callerPublicKey)) | |
40 | 40 | then throw("setupGame_FORBIDEN") | |
41 | 41 | else match gamesSetupGetCounter() { | |
42 | 42 | case SETUPGAMESCOUNTER: Int => | |
43 | 43 | let randomizer = (toInt(sha256((take(lastBlock.generationSignature, 16) + take(i.transactionId, 16)))) % 2) | |
44 | 44 | let currentGame = (SETUPGAMESCOUNTER + 1) | |
45 | 45 | if ((gameNumber != currentGame)) | |
46 | 46 | then throw("Wrong game number.") | |
47 | 47 | else getGameSetup(currentGame, randomizer, cards0) | |
48 | 48 | case _ => | |
49 | 49 | throw("InitGame Required") | |
50 | 50 | } | |
51 | 51 | ||
52 | 52 | ||
53 | 53 | @Verifier(tx) | |
54 | 54 | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
55 | 55 |
github/deemru/w8io/169f3d6 24.11 ms ◑![]()