tx · HfeAtkZVf1CbecyGcMefBahPJSCqjCGX5XED9KsCFjDC

3MuMTmGoACSiyXJzcioMw4sYoXk2Ui4aanJ:  -0.01700000 Waves

2022.08.31 11:34 [2208391] smart account 3MuMTmGoACSiyXJzcioMw4sYoXk2Ui4aanJ > SELF 0.00000000 Waves

{ "type": 13, "id": "HfeAtkZVf1CbecyGcMefBahPJSCqjCGX5XED9KsCFjDC", "fee": 1700000, "feeAssetId": null, "timestamp": 1661934874480, "version": 2, "chainId": 84, "sender": "3MuMTmGoACSiyXJzcioMw4sYoXk2Ui4aanJ", "senderPublicKey": "7opDBgjwGmchRaJn7irNojWPe6uCjvWZc3JGS9FGsd9p", "proofs": [ "4JswUKrY9i6Cc1oCuQVxmtahQ6JgBfJt5DFMxi6oj9PuKR1ZXaQrHrn35ayVNrHkB2SJMCdqdrrXKAhCU4ffpQ5e" ], "script": "base64:AAIEAAAAAAAAAAYIAhIAEgAAAAAeAAAAAAlnYW1lVG9rZW4BAAAAIJeJnkMy+NLP5OT6k3WKNNG/oDTmgYr0XJzGEku3CrKZAAAAABNnYW1lTWFzdGVyUHVibGljS2V5AQAAACBlJDgo+Fq7PRSc0ciebD/XFlx5Eoi6BjIFEFF4VxVLDwAAAAAXZ2FtZU1hc3RlclB1YmxpY0tleVRlc3QBAAAAIGUkOCj4Wrs9FJzRyJ5sP9cWXHkSiLoGMgUQUXhXFUsPAAAAAAx0b2tlbkFzc2V0SWQCAAAALEJDWUdwM3VmQVk2WVdHektZbWl0ckpTY0FDTjdKWmQzZnBmbWYyZmNYN3EyAAAAAAlnYW1lSW5kZXgCAAAABkdBUkxJQwAAAAAIdG9rZW5BSWQJAAEsAAAAAgkAASwAAAACBQAAAAlnYW1lSW5kZXgCAAAAAV8CAAAAFWYyTXdybU40ZmRzZjQzMkZWOWtTZQAAAAAIdG9rZW5CSWQJAAEsAAAAAgkAASwAAAACBQAAAAlnYW1lSW5kZXgCAAAAAV8CAAAAFWYxTXp3cm1OZGY0MzRGZnNkZnMtMAAAAAAIdG9rZW5DSWQJAAEsAAAAAgkAASwAAAACBQAAAAlnYW1lSW5kZXgCAAAAAV8CAAAAFWYzTXp3cm1ONHdpZGY0MzRGZnNkdwAAAAANdG9rZW5zUGVyUGxheQAAAAAABfXhAAAAAAASbG90dGVyeXByb2JhYmlsaXR5AgAAAAxfcHJvYmFiaWxpdHkAAAAAGWxvdHRlcnlwcm9iYWJpbGl0eWRlY2ltYWwCAAAAFF9wcm9iYWJpbGl0eV9kZWNpbWFsAAAAABVsb3R0ZXJ5V2lubmluZ0FkZHJlc3MJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAABBfd2lubmluZ19hZGRyZXNzAAAAAAxsb3R0ZXJ5UHJpY2UCAAAABl9wcmljZQAAAAANbG90dGVyeVByaWNlcwkAASwAAAACCQABLAAAAAIFAAAACWdhbWVJbmRleAIAAAABXwIAAAAObG90dGVyeV9wcmljZXMAAAAADmxvdHRlcnlBc3NldElkCQABLAAAAAIJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAAAFfAgAAABBsb3R0ZXJ5X2Fzc2V0X2lkAAAAAA1jb3VudE9mUHJpY2VzCQABLAAAAAIJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAAAFfAgAAABNnYXJsaWNfY291bnRfcHJpY2VzAAAAAA1nYW1lU3BpbkxhYmVsCQABLAAAAAIJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAAAFfAgAAAAxTUElOX0NPVU5URVIAAAAAEGFsbG93U2l6ZUxvdHRlcnkAAAAAAAAAAAMAAAAAEXRvdGFsUHJpY2VzSW5Qb29sCQABLAAAAAIJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAAAFfAgAAABF0b3RhbF9wcml6ZXNfcG9vbAEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkJAQAAAAIhPQAAAAIFAAAAD2NhbGxlclB1YmxpY0tleQUAAAATZ2FtZU1hc3RlclB1YmxpY0tleQEAAAAPZ2FtZVN1bVNoYUxhYmVsAAAAAQAAAARzcGluCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlnYW1lSW5kZXgCAAAAAV8JAAGkAAAAAQUAAAAEc3BpbgIAAAARX1NQSU5fUkFORE9NX0hBU0gBAAAADWdhbWVHZXRTdW1TaGEAAAABAAAABHNwaW4JAAQdAAAAAgUAAAAEdGhpcwkBAAAAD2dhbWVTdW1TaGFMYWJlbAAAAAEFAAAABHNwaW4BAAAADmdhbWVTcGluTnVtYmVyAAAAAAkABBoAAAACBQAAAAR0aGlzBQAAAA1nYW1lU3BpbkxhYmVsAAAAAA5saXN0UmFuZG9tSGFzaAkABEwAAAACAgAAABBWMkYyWlhOTWIzUjBiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNSMGIxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM1IwYjFZeQkABEwAAAACAgAAABFwZEhsRmVHTm9ZVzVuWlZZeQkABEwAAAACAgAAABFwZEhsRmVHTm9ZVzVuWlZZeQkABEwAAAACAgAAABBWMkYyWlhOTWIzTnpiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNOemIxWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM0J3YjFZeQkABEwAAAACAgAAABBWMkYyWlhOTWIzQndiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNCd2IxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM0J3YjFZeQkABEwAAAACAgAAABBWMkYyWlhOTWIzQndiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNCd2IxWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAAQVFdGMlpYTk5iM056YjFZeQkABEwAAAACAgAAABBUV0YyWlhOTmIzTnpiMVl5CQAETAAAAAICAAAAEFRXRjJaWE5OYjNOemIxWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAAQVjJGMlpYTk5iM056YjFZeQkABEwAAAACAgAAABBWMkYyWlhOTmIzTnpiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5OYjNOemIxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk5iM056YjFZeQkABEwAAAACAgAAABBWMkYyWlhOTmIzTnpiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5OYjNOemIxWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM1IwYjFZeQkABEwAAAACAgAAABBWMkYyWlhOTWIzUjBiMVl5CQAETAAAAAICAAAAEXBkSGxGZUdOb1lXNW5aVll5CQAETAAAAAICAAAAEXBkSGxGZUdOb1lXNW5aVll5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNOemIxWXkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAABBWMkYyWlhOTWIzTnpiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNOemIxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM056YjFZeQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAEFYyRjJaWE5NYjNSMGIxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM1IwYjFZeQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAEFRXRjJaWE5OYjNOemIxWXkJAARMAAAAAgIAAAAQVFdGMlpYTk5iM056YjFZeQkABEwAAAACAgAAABBUV0YyWlhOTmIzTnpiMVl5CQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkFAAAAA25pbAEAAAAKcmFuZG9taXplcgAAAAIAAAADaW52AAAADGxhc3RQbGF5SGFzaAQAAAAEcmFuZAkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIFAAAADGxhc3RQbGF5SGFzaAgFAAAAA2ludgAAAA10cmFuc2FjdGlvbklkCAUAAAADaW52AAAAD2NhbGxlclB1YmxpY0tleQgFAAAACWxhc3RCbG9jawAAABNnZW5lcmF0aW9uU2lnbmF0dXJlCQABmgAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQABmgAAAAEIBQAAAAlsYXN0QmxvY2sAAAAGaGVpZ2h0CQAB9wAAAAEFAAAABHJhbmQBAAAAEGdldE51bWJlckRlY2ltYWwAAAABAAAABm51bWJlcgMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAABAgAAAAMwLjADCQAAAAAAAAIFAAAABm51bWJlcgAAAAAAAAAAAgIAAAAEMC4wMAMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAADAgAAAAUwLjAwMAMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAAEAgAAAAYwLjAwMDADCQAAAAAAAAIFAAAABm51bWJlcgAAAAAAAAAABQIAAAAHMC4wMDAwMAMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAAGAgAAAAgwLjAwMDAwMAMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAAHAgAAAAkwLjAwMDAwMDAJAAACAAAAAQIAAAANZXhjZWVkIG51bWJlcgEAAAANZ2V0UHJpY2VBcnJheQAAAAAEAAAADWN1cnJlbnRQcmljZXMEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAANbG90dGVyeVByaWNlcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0AgAAAAAJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IEAAAACnNpemVQcmljZXMJAAExAAAAAQUAAAANY3VycmVudFByaWNlcwMJAAAAAAAAAgUAAAAKc2l6ZVByaWNlcwAAAAAAAAAAAAUAAAADbmlsBAAAAAp0cmltUHJpY2VzCQABLwAAAAIFAAAADWN1cnJlbnRQcmljZXMJAABlAAAAAgkAATEAAAABBQAAAA1jdXJyZW50UHJpY2VzAAAAAAAAAAABBAAAAAhuZXdBcnJheQkABLUAAAACBQAAAAp0cmltUHJpY2VzAgAAAAEsBQAAAAhuZXdBcnJheQEAAAARZ2V0Q3VycmVudEJhbGFuY2UAAAAACQAD8AAAAAIFAAAABHRoaXMJAAJZAAAAAQUAAAAMdG9rZW5Bc3NldElkAQAAAA1wcm9jZWRMb3R0ZXJ5AAAAAgAAAAN3aW4AAAAFdG9rZW4DAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAABXRva2VuBgkBAAAAAiE9AAAAAgUAAAAFdG9rZW4CAAAAAAQAAAAQdG9rZW5Qcm9iYWJpbGl0eQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAV0b2tlbgUAAAASbG90dGVyeXByb2JhYmlsaXR5BAAAABd0b2tlblByb2JhYmlsaXR5RGVjaW1hbAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAV0b2tlbgUAAAAZbG90dGVyeXByb2JhYmlsaXR5ZGVjaW1hbAQAAAAJc2l6ZU9mV2luCQABkAAAAAEFAAAAA3dpbgMJAAAAAAAAAgUAAAAJc2l6ZU9mV2luAAAAAAAAAAABBAAAAAxyYW5kb21OdW1iZXIJAAGRAAAAAgUAAAADd2luAAAAAAAAAAAABAAAABVjb252ZXJ0ZWRSYW5kb21OdW1iZXIJAAJbAAAAAQUAAAAMcmFuZG9tTnVtYmVyBAAAABZjb252ZXJ0ZWREZWNpbWFsTnVtYmVyCQAAaAAAAAIFAAAAF3Rva2VuUHJvYmFiaWxpdHlEZWNpbWFsAAAAAAAAAAH0BAAAABBjb21wYXJpc29uTnVtYmVyCQAAagAAAAIJAASxAAAAAQUAAAAVY29udmVydGVkUmFuZG9tTnVtYmVyBQAAABZjb252ZXJ0ZWREZWNpbWFsTnVtYmVyAwkAAGYAAAACBQAAABB0b2tlblByb2JhYmlsaXR5BQAAABBjb21wYXJpc29uTnVtYmVyCQAETAAAAAIFAAAABXRva2VuBQAAAAN3aW4FAAAAA3dpbgUAAAADd2luBQAAAAN3aW4BAAAAHGNvbnZlcnRBbW91bnRUb0RlY2ltYWxTdHJpbmcAAAACAAAAC3Rva2VuQW1vdW50AAAACmRlY2ltYWxWYWwEAAAAD3Rva2VuQW1vdW50U2l6ZQkAATEAAAABCQABpAAAAAEFAAAAC3Rva2VuQW1vdW50AwkAAGYAAAACBQAAAA90b2tlbkFtb3VudFNpemUFAAAACmRlY2ltYWxWYWwEAAAAC3N1Zml4QW1vdW50CQEAAAAJdGFrZVJpZ2h0AAAAAgkAAaQAAAABBQAAAAt0b2tlbkFtb3VudAUAAAAKZGVjaW1hbFZhbAQAAAAMcHJlZml4TnVtYmVyCQABLwAAAAIJAAGkAAAAAQUAAAALdG9rZW5BbW91bnQJAABlAAAAAgkAATEAAAABCQABpAAAAAEFAAAAC3Rva2VuQW1vdW50BQAAAApkZWNpbWFsVmFsBAAAAApmaW5hUmVzdWx0CQABLAAAAAIJAAEsAAAAAgUAAAAMcHJlZml4TnVtYmVyAgAAAAEuBQAAAAtzdWZpeEFtb3VudAUAAAAKZmluYVJlc3VsdAMJAAAAAAAAAgUAAAAPdG9rZW5BbW91bnRTaXplBQAAAApkZWNpbWFsVmFsBAAAAAd2YWxUZW1wCQAAZQAAAAIFAAAACmRlY2ltYWxWYWwFAAAAD3Rva2VuQW1vdW50U2l6ZQQAAAALZmluYWxSZXN1bHQJAAEsAAAAAgIAAAACMC4JAAGkAAAAAQUAAAALdG9rZW5BbW91bnQFAAAAC2ZpbmFsUmVzdWx0BAAAABNkaWZmUHJpY2VBbmREZWNpbWFsCQAAZQAAAAIFAAAACmRlY2ltYWxWYWwFAAAAD3Rva2VuQW1vdW50U2l6ZQQAAAAMcHJlZml4QW1vdW50CQEAAAAQZ2V0TnVtYmVyRGVjaW1hbAAAAAEFAAAAE2RpZmZQcmljZUFuZERlY2ltYWwEAAAAC2ZpbmFsUmVzdWx0CQABLAAAAAIFAAAADHByZWZpeEFtb3VudAkAAaQAAAABBQAAAAt0b2tlbkFtb3VudAUAAAALZmluYWxSZXN1bHQAAAACAAAAAWkBAAAAFHNldEdhcmxpY0NvaW5Mb3R0ZXJ5AAAAAAMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAKmluaXRHYW1lX0ZPUkJCSURFTiwgT25seSBvd25lciBvZiBQdWJrZXkgWwkAAlgAAAABBQAAABNnYW1lTWFzdGVyUHVibGljS2V5AgAAAB1dIGlzIGFsbG93ZGVkIHRvIFNldCBGYWN0b3JzLgQAAAASc3RvcmVkVG9rZW5zVmFsdWVzCQABLAAAAAIJAAEsAAAAAgkAASwA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", "height": 2208391, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AFC2qd2t28FBu1DpP3j7uM1gojkFxQF7tgVqfXaPCJZX Next: none Diff:
OldNewDifferences
150150 then throw((("initGame_FORBBIDEN, Only owner of Pubkey [" + toBase58String(gameMasterPublicKey)) + "] is allowded to Set Factors."))
151151 else {
152152 let storedTokensValues = (((((tokenAId + ",") + tokenBId) + ",") + tokenCId) + ",")
153-[IntegerEntry((tokenAId + lotteryprobability), 1), IntegerEntry((tokenAId + lotteryPrice), 69), IntegerEntry((tokenAId + lotteryprobabilitydecimal), 100), StringEntry((tokenAId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenBId + lotteryprobability), 3), IntegerEntry((tokenBId + lotteryPrice), 6900000000), IntegerEntry((tokenBId + lotteryprobabilitydecimal), 10), StringEntry((tokenBId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenCId + lotteryprobability), 33), IntegerEntry((tokenCId + lotteryPrice), 500000000), IntegerEntry((tokenCId + lotteryprobabilitydecimal), 1), StringEntry((tokenCId + lotteryAssetId), tokenAssetId), StringEntry(lotteryPrices, storedTokensValues), IntegerEntry(countOfPrices, 3), IntegerEntry(gameSpinLabel, 0)]
153+[IntegerEntry((tokenAId + lotteryprobability), 20), IntegerEntry((tokenAId + lotteryPrice), 69), IntegerEntry((tokenAId + lotteryprobabilitydecimal), 100), StringEntry((tokenAId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenBId + lotteryprobability), 33), IntegerEntry((tokenBId + lotteryPrice), 6900000000), IntegerEntry((tokenBId + lotteryprobabilitydecimal), 10), StringEntry((tokenBId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenCId + lotteryprobability), 69), IntegerEntry((tokenCId + lotteryPrice), 500000000), IntegerEntry((tokenCId + lotteryprobabilitydecimal), 1), StringEntry((tokenCId + lotteryAssetId), tokenAssetId), StringEntry(lotteryPrices, storedTokensValues), IntegerEntry(countOfPrices, 3), IntegerEntry(gameSpinLabel, 0)]
154154 }
155155
156156
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let gameToken = base58'BCYGp3ufAY6YWGzKYmitrJScACN7JZd3fpfmf2fcX7q2'
55
66 let gameMasterPublicKey = base58'7opDBgjwGmchRaJn7irNojWPe6uCjvWZc3JGS9FGsd9p'
77
88 let gameMasterPublicKeyTest = base58'7opDBgjwGmchRaJn7irNojWPe6uCjvWZc3JGS9FGsd9p'
99
1010 let tokenAssetId = "BCYGp3ufAY6YWGzKYmitrJScACN7JZd3fpfmf2fcX7q2"
1111
1212 let gameIndex = "GARLIC"
1313
1414 let tokenAId = ((gameIndex + "_") + "f2MwrmN4fdsf432FV9kSe")
1515
1616 let tokenBId = ((gameIndex + "_") + "f1MzwrmNdf434Ffsdfs-0")
1717
1818 let tokenCId = ((gameIndex + "_") + "f3MzwrmN4widf434Ffsdw")
1919
2020 let tokensPerPlay = 100000000
2121
2222 let lotteryprobability = "_probability"
2323
2424 let lotteryprobabilitydecimal = "_probability_decimal"
2525
2626 let lotteryWinningAddress = (gameIndex + "_winning_address")
2727
2828 let lotteryPrice = "_price"
2929
3030 let lotteryPrices = ((gameIndex + "_") + "lottery_prices")
3131
3232 let lotteryAssetId = ((gameIndex + "_") + "lottery_asset_id")
3333
3434 let countOfPrices = ((gameIndex + "_") + "garlic_count_prices")
3535
3636 let gameSpinLabel = ((gameIndex + "_") + "SPIN_COUNTER")
3737
3838 let allowSizeLottery = 3
3939
4040 let totalPricesInPool = ((gameIndex + "_") + "total_prizes_pool")
4141
4242 func checkPermission (callerPublicKey) = (callerPublicKey != gameMasterPublicKey)
4343
4444
4545 func gameSumShaLabel (spin) = (((gameIndex + "_") + toString(spin)) + "_SPIN_RANDOM_HASH")
4646
4747
4848 func gameGetSumSha (spin) = getString(this, gameSumShaLabel(spin))
4949
5050
5151 func gameSpinNumber () = getInteger(this, gameSpinLabel)
5252
5353
5454 let listRandomHash = ["V2F2ZXNMb3R0b1Yy", "V2F2ZXNMb3R0b1Yy", "V2F2ZXNMb3R0b1Yy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "V2F2ZXNMb3Nzb1Yy", "V2F2ZXNMb3Nzb1Yy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "V2F2ZXNMb3Bwb1Yy", "V2F2ZXNMb3Bwb1Yy", "V2F2ZXNMb3Bwb1Yy", "V2F2ZXNMb3Bwb1Yy", "V2F2ZXNMb3Bwb1Yy", "V2F2ZXNMb3Bwb1Yy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "TWF2ZXNNb3Nzb1Yy", "TWF2ZXNNb3Nzb1Yy", "TWF2ZXNNb3Nzb1Yy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "V2F2ZXNNb3Nzb1Yy", "V2F2ZXNNb3Nzb1Yy", "V2F2ZXNNb3Nzb1Yy", "V2F2ZXNNb3Nzb1Yy", "V2F2ZXNNb3Nzb1Yy", "V2F2ZXNNb3Nzb1Yy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "V2F2ZXNMb3R0b1Yy", "V2F2ZXNMb3R0b1Yy", "pdHlFeGNoYW5nZVYy", "pdHlFeGNoYW5nZVYy", "V2F2ZXNMb3Nzb1Yy", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNMb3Nzb1Yy", "V2F2ZXNMb3Nzb1Yy", "V2F2ZXNMb3Nzb1Yy", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "V2F2ZXNMb3R0b1Yy", "V2F2ZXNMb3R0b1Yy", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI", "TWF2ZXNNb3Nzb1Yy", "TWF2ZXNNb3Nzb1Yy", "TWF2ZXNNb3Nzb1Yy", "V2F2ZXNUZWFtVjI", "V2F2ZXNUZWFtVjI"]
5555
5656 func randomizer (inv,lastPlayHash) = {
5757 let rand = (((((lastPlayHash + inv.transactionId) + inv.callerPublicKey) + lastBlock.generationSignature) + toBytes(lastBlock.timestamp)) + toBytes(lastBlock.height))
5858 sha256(rand)
5959 }
6060
6161
6262 func getNumberDecimal (number) = if ((number == 1))
6363 then "0.0"
6464 else if ((number == 2))
6565 then "0.00"
6666 else if ((number == 3))
6767 then "0.000"
6868 else if ((number == 4))
6969 then "0.0000"
7070 else if ((number == 5))
7171 then "0.00000"
7272 else if ((number == 6))
7373 then "0.000000"
7474 else if ((number == 7))
7575 then "0.0000000"
7676 else throw("exceed number")
7777
7878
7979 func getPriceArray () = {
8080 let currentPrices = match getString(this, lotteryPrices) {
8181 case a: String =>
8282 a
8383 case _: Unit =>
8484 ""
8585 case _ =>
8686 throw("Match error")
8787 }
8888 let sizePrices = size(currentPrices)
8989 if ((sizePrices == 0))
9090 then nil
9191 else {
9292 let trimPrices = take(currentPrices, (size(currentPrices) - 1))
9393 let newArray = split(trimPrices, ",")
9494 newArray
9595 }
9696 }
9797
9898
9999 func getCurrentBalance () = assetBalance(this, fromBase58String(tokenAssetId))
100100
101101
102102 func procedLottery (win,token) = if (if (isDefined(token))
103103 then true
104104 else (token != ""))
105105 then {
106106 let tokenProbability = getIntegerValue(this, (token + lotteryprobability))
107107 let tokenProbabilityDecimal = getIntegerValue(this, (token + lotteryprobabilitydecimal))
108108 let sizeOfWin = size(win)
109109 if ((sizeOfWin == 1))
110110 then {
111111 let randomNumber = win[0]
112112 let convertedRandomNumber = fromBase64String(randomNumber)
113113 let convertedDecimalNumber = (tokenProbabilityDecimal * 500)
114114 let comparisonNumber = (toInt(convertedRandomNumber) % convertedDecimalNumber)
115115 if ((tokenProbability > comparisonNumber))
116116 then token :: win
117117 else win
118118 }
119119 else win
120120 }
121121 else win
122122
123123
124124 func convertAmountToDecimalString (tokenAmount,decimalVal) = {
125125 let tokenAmountSize = size(toString(tokenAmount))
126126 if ((tokenAmountSize > decimalVal))
127127 then {
128128 let sufixAmount = takeRight(toString(tokenAmount), decimalVal)
129129 let prefixNumber = take(toString(tokenAmount), (size(toString(tokenAmount)) - decimalVal))
130130 let finaResult = ((prefixNumber + ".") + sufixAmount)
131131 finaResult
132132 }
133133 else if ((tokenAmountSize == decimalVal))
134134 then {
135135 let valTemp = (decimalVal - tokenAmountSize)
136136 let finalResult = ("0." + toString(tokenAmount))
137137 finalResult
138138 }
139139 else {
140140 let diffPriceAndDecimal = (decimalVal - tokenAmountSize)
141141 let prefixAmount = getNumberDecimal(diffPriceAndDecimal)
142142 let finalResult = (prefixAmount + toString(tokenAmount))
143143 finalResult
144144 }
145145 }
146146
147147
148148 @Callable(i)
149149 func setGarlicCoinLottery () = if (checkPermission(i.callerPublicKey))
150150 then throw((("initGame_FORBBIDEN, Only owner of Pubkey [" + toBase58String(gameMasterPublicKey)) + "] is allowded to Set Factors."))
151151 else {
152152 let storedTokensValues = (((((tokenAId + ",") + tokenBId) + ",") + tokenCId) + ",")
153-[IntegerEntry((tokenAId + lotteryprobability), 1), IntegerEntry((tokenAId + lotteryPrice), 69), IntegerEntry((tokenAId + lotteryprobabilitydecimal), 100), StringEntry((tokenAId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenBId + lotteryprobability), 3), IntegerEntry((tokenBId + lotteryPrice), 6900000000), IntegerEntry((tokenBId + lotteryprobabilitydecimal), 10), StringEntry((tokenBId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenCId + lotteryprobability), 33), IntegerEntry((tokenCId + lotteryPrice), 500000000), IntegerEntry((tokenCId + lotteryprobabilitydecimal), 1), StringEntry((tokenCId + lotteryAssetId), tokenAssetId), StringEntry(lotteryPrices, storedTokensValues), IntegerEntry(countOfPrices, 3), IntegerEntry(gameSpinLabel, 0)]
153+[IntegerEntry((tokenAId + lotteryprobability), 20), IntegerEntry((tokenAId + lotteryPrice), 69), IntegerEntry((tokenAId + lotteryprobabilitydecimal), 100), StringEntry((tokenAId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenBId + lotteryprobability), 33), IntegerEntry((tokenBId + lotteryPrice), 6900000000), IntegerEntry((tokenBId + lotteryprobabilitydecimal), 10), StringEntry((tokenBId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenCId + lotteryprobability), 69), IntegerEntry((tokenCId + lotteryPrice), 500000000), IntegerEntry((tokenCId + lotteryprobabilitydecimal), 1), StringEntry((tokenCId + lotteryAssetId), tokenAssetId), StringEntry(lotteryPrices, storedTokensValues), IntegerEntry(countOfPrices, 3), IntegerEntry(gameSpinLabel, 0)]
154154 }
155155
156156
157157
158158 @Callable(i)
159159 func startGarlicLotto () = {
160160 let balance = getCurrentBalance()
161161 let p = i.payments[0]
162162 if ((10000000000 > balance))
163163 then throw("Amount is less than 100 GRLC, not enough Amount.")
164164 else if ((tokensPerPlay > p.amount))
165165 then throw((("Amount is less than 1 GRLC, you attached only " + toString(p.amount)) + "/10^8."))
166166 else if ((size(i.payments) != 1))
167167 then throw("Payment not attached or there is more then 1 payment attached.")
168168 else {
169169 let totalBet = (p.amount + i.fee)
170170 if ((i.payments[0].assetId == gameToken))
171171 then match blockInfoByHeight((lastBlock.height - 1)) {
172172 case previousBlock: BlockInfo =>
173173 let lastSpin = match gameSpinNumber() {
174174 case sp: Int =>
175175 sp
176176 case _: Unit =>
177177 throw("Garlic lottery has not been initialed yet- missing spin")
178178 case _ =>
179179 throw("Match error")
180180 }
181181 let randomNumberToPickup = (toInt(sha256((take(i.transactionId, 16) + take(lastBlock.generationSignature, 16)))) % 17728)
182182 let numberToPick = ((toInt(toBytes(pow(randomNumberToPickup, 0, 2, 0, 0, UP))) + lastSpin) % 64)
183183 let priceList = getPriceArray()
184184 let randomHashToSelect = match gameGetSumSha(randomNumberToPickup) {
185185 case hash: String =>
186186 hash
187187 case _ =>
188188 listRandomHash[numberToPick]
189189 }
190190 let randomHash = randomizer(i, toBytes(randomHashToSelect))
191191 let randNumber = toBase64String(randomHash)
192192 let tes = fromBase64String(randNumber)
193193 let listWinningPrices = [randNumber]
194194 let winningToken = {
195195 let $l = priceList
196196 let $s = size($l)
197197 let $acc0 = listWinningPrices
198198 func $f0_1 ($a,$i) = if (($i >= $s))
199199 then $a
200200 else procedLottery($a, $l[$i])
201201
202202 func $f0_2 ($a,$i) = if (($i >= $s))
203203 then $a
204204 else throw("List size exceeds 3")
205205
206206 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
207207 }
208208 let sizeOfWinPrices = size(winningToken)
209209 let divider = (500 * 1)
210210 let tas = (toInt(tes) % divider)
211211 if ((sizeOfWinPrices == 1))
212212 then [StringEntry("message", "<h1>Better luck next time!</h1><br><p>Invite more friends to keep playing!<p>"), StringEntry(gameSumShaLabel(numberToPick), toBase64String(randomHash)), IntegerEntry((toString((lastSpin + 1)) + "_last_hash_number"), tas), IntegerEntry((toString((lastSpin + 1)) + "_last_selected_number"), numberToPick), IntegerEntry(gameSpinLabel, (lastSpin + 1))]
213213 else {
214214 let token = winningToken[0]
215215 let callerAddress = toBase58String(i.caller.bytes)
216216 let addressBalance = getCurrentBalance()
217217 if ((addressBalance == 0))
218218 then throw("Not Enough Garlic Coin")
219219 else if ((token == tokenAId))
220220 then {
221221 let lotteryPriceTokenA = match getInteger(this, (tokenAId + lotteryPrice)) {
222222 case t: Int =>
223223 t
224224 case _: Unit =>
225225 0
226226 case _ =>
227227 throw("Match error")
228228 }
229229 let winningAmount = ((lotteryPriceTokenA * addressBalance) / 100)
230230 let tokenDecimal = match assetInfo(fromBase58String(tokenAssetId)) {
231231 case asset: Asset =>
232232 asset.decimals
233233 case _: Unit =>
234234 throw("Can't find asset")
235235 case _ =>
236236 throw("Match error")
237237 }
238238 let convertedPrice = convertAmountToDecimalString(winningAmount, tokenDecimal)
239239 [StringEntry((token + lotteryWinningAddress), callerAddress), StringEntry(gameSumShaLabel(numberToPick), toBase64String(randomHash)), IntegerEntry(gameSpinLabel, (lastSpin + 1)), StringEntry("message", (((("<h1>Congratulations you won!</h1><br><p>You have won " + convertedPrice) + " ") + tokenAssetId) + "!<p>")), ScriptTransfer(i.caller, winningAmount, fromBase58String(tokenAssetId))]
240240 }
241241 else {
242242 let lotteryPriceTokenB = match getInteger(this, (token + lotteryPrice)) {
243243 case t: Int =>
244244 t
245245 case _: Unit =>
246246 0
247247 case _ =>
248248 throw("Match error")
249249 }
250250 let tokenDecimal = match assetInfo(fromBase58String(tokenAssetId)) {
251251 case asset: Asset =>
252252 asset.decimals
253253 case _: Unit =>
254254 throw("Can't find asset")
255255 case _ =>
256256 throw("Match error")
257257 }
258258 let convertedPrice = convertAmountToDecimalString(lotteryPriceTokenB, tokenDecimal)
259259 [StringEntry((token + lotteryWinningAddress), callerAddress), StringEntry(gameSumShaLabel(numberToPick), toBase64String(randomHash)), IntegerEntry(gameSpinLabel, (lastSpin + 1)), StringEntry("message", (((("<h1>Congratulations you won!</h1><br><p>You have won " + convertedPrice) + " ") + tokenAssetId) + "!<p>")), ScriptTransfer(i.caller, lotteryPriceTokenB, fromBase58String(tokenAssetId))]
260260 }
261261 }
262262 case _ =>
263263 throw("Last block does not exist.")
264264 }
265265 else throw((("payment is not in correct assetId " + toBase58String(gameToken)) + "."))
266266 }
267267 }
268268
269269
270270 @Verifier(tx)
271271 func verify () = match tx {
272272 case _ =>
273273 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
274274 }
275275

github/deemru/w8io/3ef1775 
76.15 ms