tx · GFmFeMeeSM7ys3JWAjhthPD9Qcs4Ljm26cYN5MMSV8q3

3N4vtgpXkE68DqQchkdVCSoaSNxMJ8Xuctx:  -0.01400000 Waves

2021.03.01 15:48 [1418623] smart account 3N4vtgpXkE68DqQchkdVCSoaSNxMJ8Xuctx > SELF 0.00000000 Waves

{ "type": 13, "id": "GFmFeMeeSM7ys3JWAjhthPD9Qcs4Ljm26cYN5MMSV8q3", "fee": 1400000, "feeAssetId": null, "timestamp": 1614602890874, "version": 2, "chainId": 84, "sender": "3N4vtgpXkE68DqQchkdVCSoaSNxMJ8Xuctx", "senderPublicKey": "8Q6AAquTkqKK6raBKopy9WX83aDSeQEnLGrL5nbh7Z4V", "proofs": [ "4hvmpUfSqEjgY6cZfvNN1JzWKmZjPPQNpThKdaRv2XVrZ4TDit8QNNwivRkF3auCSsgC9ZZ6Ui55x5qeNV3ZQUkf" ], "script": "base64:AAIDAAAAAAAAAA4IARIAEgASBgoECAgICAAAACEAAAAADWdhbWVQdWJsaWNLZXkBAAAAIG3r/9b0drXS9/W+WmgUI+R1SnxxBMUXyavGR/b2CyA6AAAAAAtnYW1lQWRkcmVzcwkBAAAAFGFkZHJlc3NGcm9tUHVibGljS2V5AAAAAQUAAAANZ2FtZVB1YmxpY0tleQAAAAAOYWRtaW5QdWJsaWNLZXkBAAAAIBCc8P4C+ug52UoR5PdOxWZFZY5dwEkPBsV1I9mopBdrAAAAAAxhZG1pbkFkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAADmFkbWluUHVibGljS2V5AAAAAA1yc2FQdWJsaWNLZXkxCQACWwAAAAECAAABiE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcTZGak9tVnRQY0xQS0xWUkFqL0k1Tzg3azFFZDFDNitLSHNyc1RtVHJ4ZGc4YTN2dUZRYnRNdHliUCtjUHVUaUJFT1R2QlFBcG5HeGRMOThMRk9idTNmKzI3djZoaWE4d2VKUmhxQ0R0azVxbFcvVkp1bWQrWXY2N0wzRmxxbUpRWGJGYkxPMVJtVnA0VWRVMlZGRmtkMnBoTXVUdWduWmgvTXNtaHlpTXRXaWhPQysvZElyKzVvWWk2TGtyUmg5NTdyam5lSU14Q3Naa0pYbVdoeGFRQmYzRHJlc0U0NDdNTkoxQUNHTkgrK2owdXA1K0JBUlorMHBHYk9Ob2tJSlYveTh6djByRHIzZUl6MHBUcU5uWkM5UWVwamZrY3dPN2Q4OUNOTmlkUGlxYit0V25yckJSNGREd3lqUEZXbjR4ZDlES3pjVWtSNHJHM0dlUU1IejFRSURBUUFCAAAAAA1yc2FQdWJsaWNLZXkyCQACWwAAAAECAAABiE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcTZGak9tVnRQY0xQS0xWUkFqL0k1Tzg3azFFZDFDNitLSHNyc1RtVHJ4ZGc4YTN2dUZRYnRNdHliUCtjUHVUaUJFT1R2QlFBcG5HeGRMOThMRk9idTNmKzI3djZoaWE4d2VKUmhxQ0R0azVxbFcvVkp1bWQrWXY2N0wzRmxxbUpRWGJGYkxPMVJtVnA0VWRVMlZGRmtkMnBoTXVUdWduWmgvTXNtaHlpTXRXaWhPQysvZElyKzVvWWk2TGtyUmg5NTdyam5lSU14Q3Naa0pYbVdoeGFRQmYzRHJlc0U0NDdNTkoxQUNHTkgrK2owdXA1K0JBUlorMHBHYk9Ob2tJSlYveTh6djByRHIzZUl6MHBUcU5uWkM5UWVwamZrY3dPN2Q4OUNOTmlkUGlxYit0V25yckJSNGREd3lqUEZXbjR4ZDlES3pjVWtSNHJHM0dlUU1IejFRSURBUUFCAAAAAA1yc2FQdWJsaWNLZXkzCQACWwAAAAECAAABiE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBcTZGak9tVnRQY0xQS0xWUkFqL0k1Tzg3azFFZDFDNitLSHNyc1RtVHJ4ZGc4YTN2dUZRYnRNdHliUCtjUHVUaUJFT1R2QlFBcG5HeGRMOThMRk9idTNmKzI3djZoaWE4d2VKUmhxQ0R0azVxbFcvVkp1bWQrWXY2N0wzRmxxbUpRWGJGYkxPMVJtVnA0VWRVMlZGRmtkMnBoTXVUdWduWmgvTXNtaHlpTXRXaWhPQysvZElyKzVvWWk2TGtyUmg5NTdyam5lSU14Q3Naa0pYbVdoeGFRQmYzRHJlc0U0NDdNTkoxQUNHTkgrK2owdXA1K0JBUlorMHBHYk9Ob2tJSlYveTh6djByRHIzZUl6MHBUcU5uWkM5UWVwamZrY3dPN2Q4OUNOTmlkUGlxYit0V25yckJSNGREd3lqUEZXbjR4ZDlES3pjVWtSNHJHM0dlUU1IejFRSURBUUFCAAAAAAVkcnVtMQkABEwAAAACAgAAAAE2CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATQJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE3CQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABMgkABEwAAAACAgAAAAEzCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATYJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNAUAAAADbmlsAAAAAAVkcnVtMgkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATYJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMQkABEwAAAACAgAAAAE2CQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAEzCQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABNwkABEwAAAACAgAAAAE1CQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABMwUAAAADbmlsAAAAAAVkcnVtMwkABEwAAAACAgAAAAEzCQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATcJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATMJAARMAAAAAgIAAAABNgkABEwAAAACAgAAAAE0CQAETAAAAAICAAAAATIJAARMAAAAAgIAAAABMwkABEwAAAACAgAAAAExCQAETAAAAAICAAAAATYJAARMAAAAAgIAAAABNAkABEwAAAACAgAAAAEyCQAETAAAAAICAAAAATEJAARMAAAAAgIAAAABNQkABEwAAAACAgAAAAEyCQAETAAAAAIC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AAAAUAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzU3NwAAAAAAAAAAUAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzU3NgAAAAAAAAAAUAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzU2NwAAAAAAAAAAUAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzIzNAAAAAAAAAAAMgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQ0NAAAAAAAAAAAKAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzMzMwAAAAAAAAAAGQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzU2NAAAAAAAAAAAFAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzUzNAAAAAAAAAAAFAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzUzNwAAAAAAAAAAFAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzI2NAAAAAAAAAAAFAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzI2NwAAAAAAAAAAFAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzIzNwAAAAAAAAAAFAMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzIyMgAAAAAAAAAACgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQ0MwAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQ0MgAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQzMwAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzMzNAAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzMzMgAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzM0NAAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzMyMgAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzIyNAAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzIyMwAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzI0NAAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzIzMwAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzM0MgAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzMyNAAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQyMwAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQzMgAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzI0MwAAAAAAAAAABQMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQ3NAAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzc0NwAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzc3NAAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzc0NAAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQ3NwAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzQ0NwAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzYzNgAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzM2MwAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzY2MwAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzYzMwAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzM2NgAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzMzNgAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzI1MgAAAAAAAAAAAgMJAAAAAAAAAgUAAAALdGhyZWVJbkFSb3cCAAAAAzUy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CGRydW0ySW50CQEAAAAKcmFuZG9taXplcgAAAAMFAAAAB21lc3NhZ2UFAAAACHJzYVNpZ24yBQAAAA1yc2FQdWJsaWNLZXkyBAAAAAhkcnVtM0ludAkBAAAACnJhbmRvbWl6ZXIAAAADBQAAAAdtZXNzYWdlBQAAAAhyc2FTaWduMwUAAAANcnNhUHVibGljS2V5MwQAAAANaW5kZXhQb3NpdGlvbgkAASwAAAACCQABLAAAAAIJAQAAAA9kcnVtSW50VG9TdHJpbmcAAAABBQAAAAhkcnVtMUludAkBAAAAD2RydW1JbnRUb1N0cmluZwAAAAEFAAAACGRydW0ySW50CQEAAAAPZHJ1bUludFRvU3RyaW5nAAAAAQUAAAAIZHJ1bTNJbnQEAAAAC3RocmVlSW5BUm93CQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAAVkcnVtMQUAAAAIZHJ1bTFJbnQJAAGRAAAAAgUAAAAFZHJ1bTIFAAAACGRydW0ySW50CQABkQAAAAIFAAAABWRydW0zBQAAAAhkcnVtM0ludAQAAAAJYW1vdW50V29uCQAAaAAAAAIJAQAAABBkZWZpbmVNdWx0aXBsaWVyAAAAAQUAAAALdGhyZWVJbkFSb3cJAQAAAA1wYXJzZUludFZhbHVlAAAAAQUAAAAJYmV0QW1vdW50AwkBAAAAAiE9AAAAAgUAAAAKZ2FtZVN0YXR1cwIAAAAGQUNUSVZFCQAAAgAAAAECAAAAGVNMT1RfR0FNRV9OT1RfSU5JVElBTElaRUQDCQEAAAACIT0AAAACBQAAAAliZXRTdGF0dXMCAAAAA0JFVAkAAAIAAAABAgAAABlQTEFDRV9CRVRfQkVGT1JFX1lPVV9QTEFZAwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAACnBsYXllckFkZHIJAAACAAAAAQIAAAASTk9UX0NVUlJFTlRfUExBWUVSAwkBAAAAAiE9AAAAAgUAAAAJYW1vdW50V29uAAAAAAAAAAAABAAAAAckbWF0Y2gwCQEAAAARYWRkcmVzc0dldDIwMFdpbnMAAAABBQAAAApwbGF5ZXJBZGRyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAA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", "height": 1418623, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ENjDVBP1ZpKJWt8Zbjdc4Vyq7hUHJ8LEZrtCneDktcGu Next: FKRpbTHMXwqxd4QChLGYEgZSw7i5wmYE3o7Ty9oGozaD Diff:
OldNewDifferences
281281 let newGameCounter = (GAMESCOUNTER + 1)
282282 if (!(pmtAmtCheck(betAmount)))
283283 then throw("WRONG_BET_AMOUNT")
284- else if ((betStatus == "0"))
285- then WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_0_") + "_NLIFE_") + toString(height)) + "_0_0_0_0_0"))])
286- else if ((betStatus == "PLAYED"))
287- then match addressGet200Wins(toString(playerAddress)) {
288- case WINS: Int =>
289- if ((WINS >= 0))
290- then WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_0_") + "_NLIFE_") + toString(height)) + "_0_0_0_0_0"))])
291- else throw("WRONG_GETWINS")
292- case _ =>
293- WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_0_") + "_NLIFE_") + toString(height)) + "_0_0_0_0_0")), DataEntry(addressLabelIn200Wins(toString(playerAddress)), 0)])
294- }
295- else throw("COMPLETE_ PREVIOUS_GAME")
284+ else {
285+ let amountToWin = betDataList[3]
286+ let winsIn200Times = betDataList[6]
287+ let win5TimesInARow = betDataList[7]
288+ let lose5TimesInARow = betDataList[8]
289+ let threeInARow = betDataList[9]
290+ let indexElement = betDataList[10]
291+ if ((betStatus == "0"))
292+ then WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + amountToWin) + "_NLIFE_") + toString(height)) + winsIn200Times) + win5TimesInARow) + lose5TimesInARow) + threeInARow) + indexElement))])
293+ else if ((betStatus == "PLAYED"))
294+ then match addressGet200Wins(toString(playerAddress)) {
295+ case WINS: Int =>
296+ if ((WINS >= 0))
297+ then WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + amountToWin) + "_NLIFE_") + toString(height)) + toString(WINS)) + win5TimesInARow) + lose5TimesInARow) + threeInARow) + indexElement))])
298+ else throw("WRONG_GETWINS")
299+ case _ =>
300+ WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_0_") + "_NLIFE_") + toString(height)) + "_0_0_0_0_0")), DataEntry(addressLabelIn200Wins(toString(playerAddress)), 0)])
301+ }
302+ else throw("COMPLETE_ PREVIOUS_GAME")
303+ }
296304 case _ =>
297305 throw("INIT_NEEDED_FOR_COUNT")
298306 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let gamePublicKey = base58'8Q6AAquTkqKK6raBKopy9WX83aDSeQEnLGrL5nbh7Z4V'
55
66 let gameAddress = addressFromPublicKey(gamePublicKey)
77
88 let adminPublicKey = base58'27rKjH8VMRkHYCQw1SELCkPNTH39L7xgx9zVSGFkrgCS'
99
1010 let adminAddress = addressFromPublicKey(adminPublicKey)
1111
1212 let rsaPublicKey1 = fromBase64String("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq6FjOmVtPcLPKLVRAj/I5O87k1Ed1C6+KHsrsTmTrxdg8a3vuFQbtMtybP+cPuTiBEOTvBQApnGxdL98LFObu3f+27v6hia8weJRhqCDtk5qlW/VJumd+Yv67L3FlqmJQXbFbLO1RmVp4UdU2VFFkd2phMuTugnZh/MsmhyiMtWihOC+/dIr+5oYi6LkrRh957rjneIMxCsZkJXmWhxaQBf3DresE447MNJ1ACGNH++j0up5+BARZ+0pGbONokIJV/y8zv0rDr3eIz0pTqNnZC9QepjfkcwO7d89CNNidPiqb+tWnrrBR4dDwyjPFWn4xd9DKzcUkR4rG3GeQMHz1QIDAQAB")
1313
1414 let rsaPublicKey2 = fromBase64String("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq6FjOmVtPcLPKLVRAj/I5O87k1Ed1C6+KHsrsTmTrxdg8a3vuFQbtMtybP+cPuTiBEOTvBQApnGxdL98LFObu3f+27v6hia8weJRhqCDtk5qlW/VJumd+Yv67L3FlqmJQXbFbLO1RmVp4UdU2VFFkd2phMuTugnZh/MsmhyiMtWihOC+/dIr+5oYi6LkrRh957rjneIMxCsZkJXmWhxaQBf3DresE447MNJ1ACGNH++j0up5+BARZ+0pGbONokIJV/y8zv0rDr3eIz0pTqNnZC9QepjfkcwO7d89CNNidPiqb+tWnrrBR4dDwyjPFWn4xd9DKzcUkR4rG3GeQMHz1QIDAQAB")
1515
1616 let rsaPublicKey3 = fromBase64String("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq6FjOmVtPcLPKLVRAj/I5O87k1Ed1C6+KHsrsTmTrxdg8a3vuFQbtMtybP+cPuTiBEOTvBQApnGxdL98LFObu3f+27v6hia8weJRhqCDtk5qlW/VJumd+Yv67L3FlqmJQXbFbLO1RmVp4UdU2VFFkd2phMuTugnZh/MsmhyiMtWihOC+/dIr+5oYi6LkrRh957rjneIMxCsZkJXmWhxaQBf3DresE447MNJ1ACGNH++j0up5+BARZ+0pGbONokIJV/y8zv0rDr3eIz0pTqNnZC9QepjfkcwO7d89CNNidPiqb+tWnrrBR4dDwyjPFWn4xd9DKzcUkR4rG3GeQMHz1QIDAQAB")
1717
1818 let drum1 = ["6", "1", "5", "4", "3", "2", "1", "3", "5", "2", "4", "1", "7", "3", "2", "3", "1", "4", "1", "3", "5", "2", "1", "4", "2", "6", "5", "2", "1", "4"]
1919
2020 let drum2 = ["1", "3", "4", "2", "3", "5", "1", "6", "4", "2", "1", "1", "4", "2", "1", "6", "3", "4", "1", "2", "5", "4", "1", "5", "3", "2", "7", "5", "1", "3"]
2121
2222 let drum3 = ["3", "2", "5", "2", "7", "4", "1", "3", "6", "4", "2", "3", "1", "6", "4", "2", "1", "5", "2", "5", "1", "3", "7", "1", "2", "6", "4", "1", "3", "1"]
2323
2424 let stateAcc = "ACTIVE"
2525
2626 let wavesId = unit
2727
2828 let nLifeMinAmt = 10000000
2929
3030 let nLifeMaxAmt = 50000000
3131
3232 let gameLabelCounter = "GAMESCOUNTER"
3333
3434 let gameLabel = (toString(gameAddress) + "_GAME_ADDRESS")
3535
3636 let gameLabel5InARow = (toString(gameAddress) + "_ROW_WIN/LOSE")
3737
3838 func gameGetCounter () = getInteger(this, gameLabelCounter)
3939
4040
4141 func gameGetLabel () = getString(this, gameLabel)
4242
4343
4444 func gameGetRow () = getString(this, gameLabel5InARow)
4545
4646
4747 func gameLabelBet (playerAddr) = (playerAddr + "_BETDATA")
4848
4949
5050 func gameGetBet (playerAddr) = getString(this, gameLabelBet(playerAddr))
5151
5252
5353 func addressLabelIn200Wins (addr) = (addr + "_IN200WINS")
5454
5555
5656 func addressLabelNFT (addr) = (addr + "_NFT")
5757
5858
5959 func addressGet200Wins (addr) = getInteger(this, addressLabelIn200Wins(addr))
6060
6161
6262 func addressGetNFT (addr) = getInteger(this, addressLabelNFT(addr))
6363
6464
6565 func gameGetData () = {
6666 let gameData = gameGetLabel()
6767 let a = match gameData {
6868 case a: String =>
6969 a
7070 case _ =>
7171 throw("GAME_DATA_ERROR")
7272 }
7373 split(a, "_")
7474 }
7575
7676
7777 func gameGetRowData () = {
7878 let gameRowData = gameGetRow()
7979 let a = match gameRowData {
8080 case a: String =>
8181 a
8282 case _ =>
8383 throw("GAME_ROW_DATA_ERROR")
8484 }
8585 split(a, "_")
8686 }
8787
8888
8989 func gameGetBetData (playerAddr) = {
9090 let gameBetData = gameGetBet(playerAddr)
9191 let a = match gameBetData {
9292 case a: String =>
9393 a
9494 case _ =>
9595 "0"
9696 }
9797 split(a, "_")
9898 }
9999
100100
101101 func pmtAmtCheck (betAmount) = if (if ((betAmount >= nLifeMinAmt))
102102 then (nLifeMaxAmt >= betAmount)
103103 else false)
104104 then true
105105 else throw("AMOUNT_NOT_IN_RANGE")
106106
107107
108108 func drumIntToString (drumInt) = if ((10 > drumInt))
109109 then ("0" + toString(drumInt))
110110 else toString(drumInt)
111111
112112
113113 func defineMultiplier (threeInARow) = if ((threeInARow == "777"))
114114 then 1199
115115 else if ((threeInARow == "666"))
116116 then 200
117117 else if ((threeInARow == "555"))
118118 then 150
119119 else if ((threeInARow == "667"))
120120 then 80
121121 else if ((threeInARow == "665"))
122122 then 80
123123 else if ((threeInARow == "677"))
124124 then 80
125125 else if ((threeInARow == "655"))
126126 then 80
127127 else if ((threeInARow == "675"))
128128 then 80
129129 else if ((threeInARow == "657"))
130130 then 80
131131 else if ((threeInARow == "776"))
132132 then 80
133133 else if ((threeInARow == "775"))
134134 then 80
135135 else if ((threeInARow == "766"))
136136 then 80
137137 else if ((threeInARow == "755"))
138138 then 80
139139 else if ((threeInARow == "756"))
140140 then 80
141141 else if ((threeInARow == "765"))
142142 then 80
143143 else if ((threeInARow == "556"))
144144 then 80
145145 else if ((threeInARow == "557"))
146146 then 80
147147 else if ((threeInARow == "566"))
148148 then 80
149149 else if ((threeInARow == "577"))
150150 then 80
151151 else if ((threeInARow == "576"))
152152 then 80
153153 else if ((threeInARow == "567"))
154154 then 80
155155 else if ((threeInARow == "234"))
156156 then 50
157157 else if ((threeInARow == "444"))
158158 then 40
159159 else if ((threeInARow == "333"))
160160 then 25
161161 else if ((threeInARow == "564"))
162162 then 20
163163 else if ((threeInARow == "534"))
164164 then 20
165165 else if ((threeInARow == "537"))
166166 then 20
167167 else if ((threeInARow == "264"))
168168 then 20
169169 else if ((threeInARow == "267"))
170170 then 20
171171 else if ((threeInARow == "237"))
172172 then 20
173173 else if ((threeInARow == "222"))
174174 then 10
175175 else if ((threeInARow == "443"))
176176 then 5
177177 else if ((threeInARow == "442"))
178178 then 5
179179 else if ((threeInARow == "433"))
180180 then 5
181181 else if ((threeInARow == "334"))
182182 then 5
183183 else if ((threeInARow == "332"))
184184 then 5
185185 else if ((threeInARow == "344"))
186186 then 5
187187 else if ((threeInARow == "322"))
188188 then 5
189189 else if ((threeInARow == "224"))
190190 then 5
191191 else if ((threeInARow == "223"))
192192 then 5
193193 else if ((threeInARow == "244"))
194194 then 5
195195 else if ((threeInARow == "233"))
196196 then 5
197197 else if ((threeInARow == "342"))
198198 then 5
199199 else if ((threeInARow == "324"))
200200 then 5
201201 else if ((threeInARow == "423"))
202202 then 5
203203 else if ((threeInARow == "432"))
204204 then 5
205205 else if ((threeInARow == "243"))
206206 then 5
207207 else if ((threeInARow == "474"))
208208 then 2
209209 else if ((threeInARow == "747"))
210210 then 2
211211 else if ((threeInARow == "774"))
212212 then 2
213213 else if ((threeInARow == "744"))
214214 then 2
215215 else if ((threeInARow == "477"))
216216 then 2
217217 else if ((threeInARow == "447"))
218218 then 2
219219 else if ((threeInARow == "636"))
220220 then 2
221221 else if ((threeInARow == "363"))
222222 then 2
223223 else if ((threeInARow == "663"))
224224 then 2
225225 else if ((threeInARow == "633"))
226226 then 2
227227 else if ((threeInARow == "366"))
228228 then 2
229229 else if ((threeInARow == "336"))
230230 then 2
231231 else if ((threeInARow == "252"))
232232 then 2
233233 else if ((threeInARow == "525"))
234234 then 2
235235 else if ((threeInARow == "522"))
236236 then 2
237237 else if ((threeInARow == "552"))
238238 then 2
239239 else if ((threeInARow == "255"))
240240 then 2
241241 else if ((threeInARow == "225"))
242242 then 2
243243 else if ((threeInARow == "111"))
244244 then 1
245245 else 0
246246
247247
248248 func randomizer (message,rsaSign,rsaPublicKey) = {
249249 let rsaCheck = rsaVerify(SHA256, toBytes(message), fromBase64String(rsaSign), rsaPublicKey)
250250 if (!(rsaCheck))
251251 then throw("RSA_SIGNATURE_IS_INVALID")
252252 else (toInt(sha256(fromBase64String(rsaSign))) % 39)
253253 }
254254
255255
256256 @Callable(i)
257257 func initSlotGame () = if ((i.callerPublicKey != adminPublicKey))
258258 then throw("initGame_FORBBIDEN")
259259 else match gameGetCounter() {
260260 case GAMESCOUNTER: Int =>
261261 throw("INIT_ALREADY_DONE")
262262 case _ =>
263263 WriteSet([DataEntry(gameLabelCounter, 0), DataEntry(gameLabel, ((((stateAcc + "_") + toString(gameAddress)) + "_") + toString(height))), DataEntry(gameLabel5InARow, ("0_" + toString(gameAddress)))])
264264 }
265265
266266
267267
268268 @Callable(i)
269269 func placeBet () = {
270270 let playerAddress = extract(i.caller)
271271 let pmt = extract(i.payment)
272272 let betAmount = pmt.amount
273273 let labelDataList = gameGetData()
274274 let gameStatus = labelDataList[0]
275275 let betDataList = gameGetBetData(toString(playerAddress))
276276 let betStatus = betDataList[0]
277277 if ((gameStatus != "ACTIVE"))
278278 then throw("SLOT_GAME_NOT_INITIALIZED")
279279 else match gameGetCounter() {
280280 case GAMESCOUNTER: Int =>
281281 let newGameCounter = (GAMESCOUNTER + 1)
282282 if (!(pmtAmtCheck(betAmount)))
283283 then throw("WRONG_BET_AMOUNT")
284- else if ((betStatus == "0"))
285- then WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_0_") + "_NLIFE_") + toString(height)) + "_0_0_0_0_0"))])
286- else if ((betStatus == "PLAYED"))
287- then match addressGet200Wins(toString(playerAddress)) {
288- case WINS: Int =>
289- if ((WINS >= 0))
290- then WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_0_") + "_NLIFE_") + toString(height)) + "_0_0_0_0_0"))])
291- else throw("WRONG_GETWINS")
292- case _ =>
293- WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_0_") + "_NLIFE_") + toString(height)) + "_0_0_0_0_0")), DataEntry(addressLabelIn200Wins(toString(playerAddress)), 0)])
294- }
295- else throw("COMPLETE_ PREVIOUS_GAME")
284+ else {
285+ let amountToWin = betDataList[3]
286+ let winsIn200Times = betDataList[6]
287+ let win5TimesInARow = betDataList[7]
288+ let lose5TimesInARow = betDataList[8]
289+ let threeInARow = betDataList[9]
290+ let indexElement = betDataList[10]
291+ if ((betStatus == "0"))
292+ then WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + amountToWin) + "_NLIFE_") + toString(height)) + winsIn200Times) + win5TimesInARow) + lose5TimesInARow) + threeInARow) + indexElement))])
293+ else if ((betStatus == "PLAYED"))
294+ then match addressGet200Wins(toString(playerAddress)) {
295+ case WINS: Int =>
296+ if ((WINS >= 0))
297+ then WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + amountToWin) + "_NLIFE_") + toString(height)) + toString(WINS)) + win5TimesInARow) + lose5TimesInARow) + threeInARow) + indexElement))])
298+ else throw("WRONG_GETWINS")
299+ case _ =>
300+ WriteSet([DataEntry(gameLabelCounter, newGameCounter), DataEntry(gameLabelBet(toString(playerAddress)), (((((((("BET" + "_") + toString(playerAddress)) + "_") + toString(betAmount)) + "_0_") + "_NLIFE_") + toString(height)) + "_0_0_0_0_0")), DataEntry(addressLabelIn200Wins(toString(playerAddress)), 0)])
301+ }
302+ else throw("COMPLETE_ PREVIOUS_GAME")
303+ }
296304 case _ =>
297305 throw("INIT_NEEDED_FOR_COUNT")
298306 }
299307 }
300308
301309
302310
303311 @Callable(i)
304312 func playGame (message,rsaSign1,rsaSign2,rsaSign3) = {
305313 let labelDataList = gameGetData()
306314 let gameStatus = labelDataList[0]
307315 let rowDatatList = gameGetRowData()
308316 let row = parseIntValue(rowDatatList[0])
309317 let rowPlayer = rowDatatList[1]
310318 let betDataList = gameGetBetData(toString(i.caller))
311319 let betStatus = betDataList[0]
312320 let playerAddr = betDataList[1]
313321 let betAmount = betDataList[2]
314322 let blockHeight = betDataList[5]
315323 let winsIn200Times = betDataList[6]
316324 let win5TimesInARow = betDataList[7]
317325 let lose5TimesInARow = betDataList[8]
318326 let drum1Int = randomizer(message, rsaSign1, rsaPublicKey1)
319327 let drum2Int = randomizer(message, rsaSign2, rsaPublicKey2)
320328 let drum3Int = randomizer(message, rsaSign3, rsaPublicKey3)
321329 let indexPosition = ((drumIntToString(drum1Int) + drumIntToString(drum2Int)) + drumIntToString(drum3Int))
322330 let threeInARow = ((drum1[drum1Int] + drum2[drum2Int]) + drum3[drum3Int])
323331 let amountWon = (defineMultiplier(threeInARow) * parseIntValue(betAmount))
324332 if ((gameStatus != "ACTIVE"))
325333 then throw("SLOT_GAME_NOT_INITIALIZED")
326334 else if ((betStatus != "BET"))
327335 then throw("PLACE_BET_BEFORE_YOU_PLAY")
328336 else if ((i.caller != addressFromStringValue(playerAddr)))
329337 then throw("NOT_CURRENT_PLAYER")
330338 else if ((amountWon != 0))
331339 then match addressGet200Wins(playerAddr) {
332340 case WINS: Int =>
333341 let newWin = (WINS + 1)
334342 if ((threeInARow == "444"))
335343 then ScriptResult(WriteSet([DataEntry(gameLabelBet(toString(i.caller)), (((((((((((((((("PLAYED" + "_") + playerAddr) + "_") + betAmount) + "_") + toString(amountWon)) + "_NLIFE_") + toString(height)) + "_") + toString(newWin)) + "_") + win5TimesInARow) + "_0_") + threeInARow) + "_") + indexPosition)), DataEntry(addressLabelNFT(toString(i.caller)), "GIVE_NFT"), DataEntry(addressLabelIn200Wins(toString(i.caller)), newWin), DataEntry(gameLabel5InARow, ((toString(0) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
336344 else if ((WINS == 200))
337345 then ScriptResult(WriteSet([DataEntry(gameLabelBet(toString(i.caller)), (((((((((((((("PLAYED" + "_") + playerAddr) + "_") + betAmount) + "_") + toString(amountWon)) + "_NLIFE_") + toString(height)) + "_0_") + win5TimesInARow) + "_0_") + threeInARow) + "_") + indexPosition)), DataEntry(addressLabelIn200Wins(toString(i.caller)), 0), DataEntry(gameLabel5InARow, ((toString(0) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
338346 else if (if ((playerAddr == rowPlayer))
339347 then (row == 5)
340348 else false)
341349 then ScriptResult(WriteSet([DataEntry(gameLabelBet(playerAddr), (((((((((((((((("PLAYED" + "_") + playerAddr) + "_") + betAmount) + "_") + toString(amountWon)) + "_NLIFE_") + toString(height)) + "_") + toString(newWin)) + "_") + toString(0)) + "_0_") + threeInARow) + "_") + indexPosition)), DataEntry(addressLabelIn200Wins(toString(i.caller)), newWin), DataEntry(gameLabel5InARow, ((toString(0) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
342350 else if ((playerAddr != rowPlayer))
343351 then ScriptResult(WriteSet([DataEntry(gameLabelBet(playerAddr), (((((((((((((((("PLAYED" + "_") + playerAddr) + "_") + betAmount) + "_") + toString(amountWon)) + "_NLIFE_") + toString(height)) + "_") + toString(newWin)) + "_") + toString(newWin)) + "_0_") + threeInARow) + "_") + indexPosition)), DataEntry(addressLabelIn200Wins(toString(i.caller)), newWin), DataEntry(gameLabel5InARow, ((toString(0) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
344352 else ScriptResult(WriteSet([DataEntry(gameLabelBet(playerAddr), (((((((((((((((((("PLAYED" + "_") + playerAddr) + "_") + betAmount) + "_") + toString(amountWon)) + "_NLIFE_") + toString(height)) + "_") + toString(newWin)) + "_") + toString(newWin)) + "_") + lose5TimesInARow) + "_") + threeInARow) + "_") + indexPosition)), DataEntry(addressLabelIn200Wins(toString(i.caller)), newWin), DataEntry(gameLabel5InARow, ((toString((row + 1)) + "_") + playerAddr))]), TransferSet([ScriptTransfer(addressFromStringValue(playerAddr), amountWon, unit)]))
345353 case _ =>
346354 throw("WORNG_INIT_FOR_200WINS")
347355 }
348356 else if (if ((playerAddr == rowPlayer))
349357 then (row == 5)
350358 else false)
351359 then WriteSet([DataEntry(gameLabelBet(toString(i.caller)), (((((((((((((("PLAYED" + "_") + playerAddr) + "_") + betAmount) + "_") + toString(amountWon)) + "_NLIFE_") + toString(height)) + "_") + winsIn200Times) + "_0_0_") + threeInARow) + "_") + indexPosition)), DataEntry(gameLabel5InARow, ((toString(0) + "_") + playerAddr))])
352360 else WriteSet([DataEntry(gameLabelBet(toString(i.caller)), (((((((((((((((("PLAYED" + "_") + playerAddr) + "_") + betAmount) + "_") + toString(amountWon)) + "_NLIFE_") + toString(height)) + "_") + winsIn200Times) + "_0_") + toString((row + 1))) + "_") + threeInARow) + "_") + indexPosition)), DataEntry(gameLabel5InARow, ((toString((row + 1)) + "_") + playerAddr))])
353361 }
354362
355363
356364 @Verifier(tx)
357365 func verify () = if (sigVerify(tx.bodyBytes, tx.proofs[0], gamePublicKey))
358366 then match tx {
359367 case tx: SetScriptTransaction =>
360368 true
361369 case _ =>
362370 false
363371 }
364372 else false
365373

github/deemru/w8io/169f3d6 
53.94 ms