tx · Has7hxEJTzCW78KHF84mL2UUUvG3p2N4XYehzYZWsJ9d

3MuMTmGoACSiyXJzcioMw4sYoXk2Ui4aanJ:  -0.01900000 Waves

2022.08.26 08:43 [2201039] smart account 3MuMTmGoACSiyXJzcioMw4sYoXk2Ui4aanJ > SELF 0.00000000 Waves

{ "type": 13, "id": "Has7hxEJTzCW78KHF84mL2UUUvG3p2N4XYehzYZWsJ9d", "fee": 1900000, "feeAssetId": null, "timestamp": 1661492623741, "version": 2, "chainId": 84, "sender": "3MuMTmGoACSiyXJzcioMw4sYoXk2Ui4aanJ", "senderPublicKey": "7opDBgjwGmchRaJn7irNojWPe6uCjvWZc3JGS9FGsd9p", "proofs": [ "5gPm1nhT6bfV6S2BJKh8ncji5HUAdiZo2VJtpW9mFssUGtJAWXBSt1FKG4kd6FUjxZN6TR45axFMaqVhMAmaEpE" ], "script": "base64:AAIEAAAAAAAAAAYIAhIAEgAAAAAeAAAAAAlnYW1lVG9rZW4BAAAAIJeJnkMy+NLP5OT6k3WKNNG/oDTmgYr0XJzGEku3CrKZAAAAABNnYW1lTWFzdGVyUHVibGljS2V5AQAAACCcYjpvoOemZ3miAgEtx+h1HCL256e0SbY2BAOls+IaJAAAAAAXZ2FtZU1hc3RlclB1YmxpY0tleVRlc3QBAAAAIJxiOm+g56ZneaICAS3H6HUcIvbnp7RJtjYEA6Wz4hokAAAAAAx0b2tlbkFzc2V0SWQCAAAALEJDWUdwM3VmQVk2WVdHektZbWl0ckpTY0FDTjdKWmQzZnBmbWYyZmNYN3EyAAAAAAlnYW1lSW5kZXgCAAAABkdBUkxJQwAAAAAIdG9rZW5BSWQJAAEsAAAAAgkAASwAAAACBQAAAAlnYW1lSW5kZXgCAAAAAV8CAAAAFWYyTXdybU40ZmRzZjQzMkZWOWtTZQAAAAAIdG9rZW5CSWQJAAEsAAAAAgkAASwAAAACBQAAAAlnYW1lSW5kZXgCAAAAAV8CAAAAFWYxTXp3cm1OZGY0MzRGZnNkZnMtMAAAAAAIdG9rZW5DSWQJAAEsAAAAAgkAASwAAAACBQAAAAlnYW1lSW5kZXgCAAAAAV8CAAAAFWYzTXp3cm1ONHdpZGY0MzRGZnNkdwAAAAANdG9rZW5zUGVyUGxheQAAAAAABfXhAAAAAAASbG90dGVyeXByb2JhYmlsaXR5AgAAAAxfcHJvYmFiaWxpdHkAAAAAGWxvdHRlcnlwcm9iYWJpbGl0eWRlY2ltYWwCAAAAFF9wcm9iYWJpbGl0eV9kZWNpbWFsAAAAABVsb3R0ZXJ5V2lubmluZ0FkZHJlc3MJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAABBfd2lubmluZ19hZGRyZXNzAAAAAAxsb3R0ZXJ5UHJpY2UCAAAABl9wcmljZQAAAAANbG90dGVyeVByaWNlcwkAASwAAAACCQABLAAAAAIFAAAACWdhbWVJbmRleAIAAAABXwIAAAAObG90dGVyeV9wcmljZXMAAAAADmxvdHRlcnlBc3NldElkCQABLAAAAAIJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAAAFfAgAAABBsb3R0ZXJ5X2Fzc2V0X2lkAAAAAA1jb3VudE9mUHJpY2VzCQABLAAAAAIJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAAAFfAgAAABNnYXJsaWNfY291bnRfcHJpY2VzAAAAAA1nYW1lU3BpbkxhYmVsCQABLAAAAAIJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAAAFfAgAAAAxTUElOX0NPVU5URVIAAAAAEGFsbG93U2l6ZUxvdHRlcnkAAAAAAAAAAAMAAAAAEXRvdGFsUHJpY2VzSW5Qb29sCQABLAAAAAIJAAEsAAAAAgUAAAAJZ2FtZUluZGV4AgAAAAFfAgAAABF0b3RhbF9wcml6ZXNfcG9vbAEAAAAPY2hlY2tQZXJtaXNzaW9uAAAAAQAAAA9jYWxsZXJQdWJsaWNLZXkJAQAAAAIhPQAAAAIFAAAAD2NhbGxlclB1YmxpY0tleQUAAAATZ2FtZU1hc3RlclB1YmxpY0tleQEAAAAPZ2FtZVN1bVNoYUxhYmVsAAAAAQAAAARzcGluCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAlnYW1lSW5kZXgCAAAAAV8JAAGkAAAAAQUAAAAEc3BpbgIAAAARX1NQSU5fUkFORE9NX0hBU0gBAAAADWdhbWVHZXRTdW1TaGEAAAABAAAABHNwaW4JAAQdAAAAAgUAAAAEdGhpcwkBAAAAD2dhbWVTdW1TaGFMYWJlbAAAAAEFAAAABHNwaW4BAAAADmdhbWVTcGluTnVtYmVyAAAAAAkABBoAAAACBQAAAAR0aGlzBQAAAA1nYW1lU3BpbkxhYmVsAAAAAA5saXN0UmFuZG9tSGFzaAkABEwAAAACAgAAABBWMkYyWlhOTWIzUjBiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNSMGIxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM1IwYjFZeQkABEwAAAACAgAAABFwZEhsRmVHTm9ZVzVuWlZZeQkABEwAAAACAgAAABFwZEhsRmVHTm9ZVzVuWlZZeQkABEwAAAACAgAAABBWMkYyWlhOTWIzTnpiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNOemIxWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM0J3YjFZeQkABEwAAAACAgAAABBWMkYyWlhOTWIzQndiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNCd2IxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM0J3YjFZeQkABEwAAAACAgAAABBWMkYyWlhOTWIzQndiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNCd2IxWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAAQVFdGMlpYTk5iM056YjFZeQkABEwAAAACAgAAABBUV0YyWlhOTmIzTnpiMVl5CQAETAAAAAICAAAAEFRXRjJaWE5OYjNOemIxWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAAQVjJGMlpYTk5iM056YjFZeQkABEwAAAACAgAAABBWMkYyWlhOTmIzTnpiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5OYjNOemIxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk5iM056YjFZeQkABEwAAAACAgAAABBWMkYyWlhOTmIzTnpiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5OYjNOemIxWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAARcGRIbEZlR05vWVc1blpWWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM1IwYjFZeQkABEwAAAACAgAAABBWMkYyWlhOTWIzUjBiMVl5CQAETAAAAAICAAAAEXBkSGxGZUdOb1lXNW5aVll5CQAETAAAAAICAAAAEXBkSGxGZUdOb1lXNW5aVll5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNOemIxWXkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAABBWMkYyWlhOTWIzTnpiMVl5CQAETAAAAAICAAAAEFYyRjJaWE5NYjNOemIxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM056YjFZeQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAEFYyRjJaWE5NYjNSMGIxWXkJAARMAAAAAgIAAAAQVjJGMlpYTk1iM1IwYjFZeQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkJAARMAAAAAgIAAAAPVjJGMlpYTlVaV0Z0VmpJCQAETAAAAAICAAAAEFRXRjJaWE5OYjNOemIxWXkJAARMAAAAAgIAAAAQVFdGMlpYTk5iM056YjFZeQkABEwAAAACAgAAABBUV0YyWlhOTmIzTnpiMVl5CQAETAAAAAICAAAAD1YyRjJaWE5VWldGdFZqSQkABEwAAAACAgAAAA9WMkYyWlhOVVpXRnRWakkFAAAAA25pbAEAAAAKcmFuZG9taXplcgAAAAIAAAADaW52AAAADGxhc3RQbGF5SGFzaAQAAAAEcmFuZAkAAMsAAAACCQAAywAAAAIJAADLAAAAAgkAAMsAAAACCQAAywAAAAIFAAAADGxhc3RQbGF5SGFzaAgFAAAAA2ludgAAAA10cmFuc2FjdGlvbklkCAUAAAADaW52AAAAD2NhbGxlclB1YmxpY0tleQgFAAAACWxhc3RCbG9jawAAABNnZW5lcmF0aW9uU2lnbmF0dXJlCQABmgAAAAEIBQAAAAlsYXN0QmxvY2sAAAAJdGltZXN0YW1wCQABmgAAAAEIBQAAAAlsYXN0QmxvY2sAAAAGaGVpZ2h0CQAB9wAAAAEFAAAABHJhbmQBAAAAEGdldE51bWJlckRlY2ltYWwAAAABAAAABm51bWJlcgMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAABAgAAAAMwLjADCQAAAAAAAAIFAAAABm51bWJlcgAAAAAAAAAAAgIAAAAEMC4wMAMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAADAgAAAAUwLjAwMAMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAAEAgAAAAYwLjAwMDADCQAAAAAAAAIFAAAABm51bWJlcgAAAAAAAAAABQIAAAAHMC4wMDAwMAMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAAGAgAAAAgwLjAwMDAwMAMJAAAAAAAAAgUAAAAGbnVtYmVyAAAAAAAAAAAHAgAAAAkwLjAwMDAwMDAJAAACAAAAAQIAAAANZXhjZWVkIG51bWJlcgEAAAANZ2V0UHJpY2VBcnJheQAAAAAEAAAADWN1cnJlbnRQcmljZXMEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAANbG90dGVyeVByaWNlcwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAARVbml0AgAAAAAJAAACAAAAAQIAAAALTWF0Y2ggZXJyb3IEAAAACnNpemVQcmljZXMJAAExAAAAAQUAAAANY3VycmVudFByaWNlcwMJAAAAAAAAAgUAAAAKc2l6ZVByaWNlcwAAAAAAAAAAAAUAAAADbmlsBAAAAAp0cmltUHJpY2VzCQABLwAAAAIFAAAADWN1cnJlbnRQcmljZXMJAABlAAAAAgkAATEAAAABBQAAAA1jdXJyZW50UHJpY2VzAAAAAAAAAAABBAAAAAhuZXdBcnJheQkABLUAAAACBQAAAAp0cmltUHJpY2VzAgAAAAEsBQAAAAhuZXdBcnJheQEAAAARZ2V0Q3VycmVudEJhbGFuY2UAAAAACQAD8AAAAAIFAAAABHRoaXMJAAJZAAAAAQUAAAAMdG9rZW5Bc3NldElkAQAAAA1wcm9jZWRMb3R0ZXJ5AAAAAgAAAAN3aW4AAAAFdG9rZW4DAwkBAAAACWlzRGVmaW5lZAAAAAEFAAAABXRva2VuBgkBAAAAAiE9AAAAAgUAAAAFdG9rZW4CAAAAAAQAAAAQdG9rZW5Qcm9iYWJpbGl0eQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAV0b2tlbgUAAAASbG90dGVyeXByb2JhYmlsaXR5BAAAABd0b2tlblByb2JhYmlsaXR5RGVjaW1hbAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwkAASwAAAACBQAAAAV0b2tlbgUAAAAZbG90dGVyeXByb2JhYmlsaXR5ZGVjaW1hbAQAAAAJc2l6ZU9mV2luCQABkAAAAAEFAAAAA3dpbgMJAAAAAAAAAgUAAAAJc2l6ZU9mV2luAAAAAAAAAAABBAAAAAxyYW5kb21OdW1iZXIJAAGRAAAAAgUAAAADd2luAAAAAAAAAAAABAAAABVjb252ZXJ0ZWRSYW5kb21OdW1iZXIJAAJbAAAAAQUAAAAMcmFuZG9tTnVtYmVyBAAAABZjb252ZXJ0ZWREZWNpbWFsTnVtYmVyCQAAaAAAAAIFAAAAF3Rva2VuUHJvYmFiaWxpdHlEZWNpbWFsAAAAAAAAAAH0BAAAABBjb21wYXJpc29uTnVtYmVyCQAAagAAAAIJAASxAAAAAQUAAAAVY29udmVydGVkUmFuZG9tTnVtYmVyBQAAABZjb252ZXJ0ZWREZWNpbWFsTnVtYmVyAwkAAGYAAAACBQAAABB0b2tlblByb2JhYmlsaXR5BQAAABBjb21wYXJpc29uTnVtYmVyCQAETAAAAAIFAAAABXRva2VuBQAAAAN3aW4FAAAAA3dpbgUAAAADd2luBQAAAAN3aW4BAAAAHGNvbnZlcnRBbW91bnRUb0RlY2ltYWxTdHJpbmcAAAACAAAAC3Rva2VuQW1vdW50AAAACmRlY2ltYWxWYWwEAAAAD3Rva2VuQW1vdW50U2l6ZQkAATEAAAABCQABpAAAAAEFAAAAC3Rva2VuQW1vdW50AwkAAGYAAAACBQAAAA90b2tlbkFtb3VudFNpemUFAAAACmRlY2ltYWxWYWwEAAAAC3N1Zml4QW1vdW50CQEAAAAJdGFrZVJpZ2h0AAAAAgkAAaQAAAABBQAAAAt0b2tlbkFtb3VudAUAAAAKZGVjaW1hbFZhbAQAAAAMcHJlZml4TnVtYmVyCQABLwAAAAIJAAGkAAAAAQUAAAALdG9rZW5BbW91bnQJAABlAAAAAgkAATEAAAABCQABpAAAAAEFAAAAC3Rva2VuQW1vdW50BQAAAApkZWNpbWFsVmFsBAAAAApmaW5hUmVzdWx0CQABLAAAAAIJAAEsAAAAAgUAAAAMcHJlZml4TnVtYmVyAgAAAAEuBQAAAAtzdWZpeEFtb3VudAUAAAAKZmluYVJlc3VsdAMJAAAAAAAAAgUAAAAPdG9rZW5BbW91bnRTaXplBQAAAApkZWNpbWFsVmFsBAAAAAd2YWxUZW1wCQAAZQAAAAIFAAAACmRlY2ltYWxWYWwFAAAAD3Rva2VuQW1vdW50U2l6ZQQAAAALZmluYWxSZXN1bHQJAAEsAAAAAgIAAAACMC4JAAGkAAAAAQUAAAALdG9rZW5BbW91bnQFAAAAC2ZpbmFsUmVzdWx0BAAAABNkaWZmUHJpY2VBbmREZWNpbWFsCQAAZQAAAAIFAAAACmRlY2ltYWxWYWwFAAAAD3Rva2VuQW1vdW50U2l6ZQQAAAAMcHJlZml4QW1vdW50CQEAAAAQZ2V0TnVtYmVyRGVjaW1hbAAAAAEFAAAAE2RpZmZQcmljZUFuZERlY2ltYWwEAAAAC2ZpbmFsUmVzdWx0CQABLAAAAAIFAAAADHByZWZpeEFtb3VudAkAAaQAAAABBQAAAAt0b2tlbkFtb3VudAUAAAALZmluYWxSZXN1bHQAAAACAAAAAWkBAAAAFHNldEdhcmxpY0NvaW5Mb3R0ZXJ5AAAAAAMJAQAAAA9jaGVja1Blcm1pc3Npb24AAAABCAUAAAABaQAAAA9jYWxsZXJQdWJsaWNLZXkJAAACAAAAAQIAAAASaW5pdEdhbWVfRk9SQkJJREVOBAAAABJzdG9yZWRUb2tlbnNWYWx1ZXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAh0b2tlbkFJZAIAAAABLAUAAAAIdG9rZW5CSWQCAAAAASwFAAAACHRva2VuQ0lkAgAAAAEsCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAAC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", "height": 2201039, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6JuuvacSYDdJkmtQWe5u3h4yqFfhbDi6PYNiD2vUdcDB Next: H4bnzmhhySuuoAyNwh8pmuhczp2UkvwBXXiQXZCFQBBy Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let gameToken = base58'CF6K2g13kWwGaWtvobqfZ8P3HiTMziaijFbhERZHVkbQ'
4+let gameToken = base58'BCYGp3ufAY6YWGzKYmitrJScACN7JZd3fpfmf2fcX7q2'
55
66 let gameMasterPublicKey = base58'BXTUWyQEjN4xNuHf673JTmy8ECipmC3HE2QoP2fjW1uu'
77
88 let gameMasterPublicKeyTest = base58'BXTUWyQEjN4xNuHf673JTmy8ECipmC3HE2QoP2fjW1uu'
99
10-let tokenAssetId = "CF6K2g13kWwGaWtvobqfZ8P3HiTMziaijFbhERZHVkbQ"
10+let tokenAssetId = "BCYGp3ufAY6YWGzKYmitrJScACN7JZd3fpfmf2fcX7q2"
1111
1212 let gameIndex = "GARLIC"
1313
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-let gameToken = base58'CF6K2g13kWwGaWtvobqfZ8P3HiTMziaijFbhERZHVkbQ'
4+let gameToken = base58'BCYGp3ufAY6YWGzKYmitrJScACN7JZd3fpfmf2fcX7q2'
55
66 let gameMasterPublicKey = base58'BXTUWyQEjN4xNuHf673JTmy8ECipmC3HE2QoP2fjW1uu'
77
88 let gameMasterPublicKeyTest = base58'BXTUWyQEjN4xNuHf673JTmy8ECipmC3HE2QoP2fjW1uu'
99
10-let tokenAssetId = "CF6K2g13kWwGaWtvobqfZ8P3HiTMziaijFbhERZHVkbQ"
10+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")
151151 else {
152152 let storedTokensValues = (((((tokenAId + ",") + tokenBId) + ",") + tokenCId) + ",")
153153 [IntegerEntry((tokenAId + lotteryprobability), 69), IntegerEntry((tokenAId + lotteryPrice), 69), IntegerEntry((tokenAId + lotteryprobabilitydecimal), 100), StringEntry((tokenAId + lotteryAssetId), tokenAssetId), IntegerEntry((tokenBId + lotteryprobability), 69), 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 if ((100 > balance))
162162 then throw("Not enought Amount")
163163 else if ((size(i.payments) != 1))
164164 then throw("Payment not attached or there is more then 1 payment attached.")
165165 else {
166166 let p = i.payments[0]
167167 let totalBet = (p.amount + i.fee)
168168 if ((i.payments[0].assetId == gameToken))
169169 then match blockInfoByHeight((lastBlock.height - 1)) {
170170 case previousBlock: BlockInfo =>
171171 let lastSpin = match gameSpinNumber() {
172172 case sp: Int =>
173173 sp
174174 case _: Unit =>
175175 throw("Garlic lottery has not been initialed yet- missing spin")
176176 case _ =>
177177 throw("Match error")
178178 }
179179 let randomNumberToPickup = (toInt(sha256((take(i.transactionId, 16) + take(lastBlock.generationSignature, 16)))) % 17728)
180180 let numberToPick = ((toInt(toBytes(pow(randomNumberToPickup, 0, 2, 0, 0, UP))) + lastSpin) % 64)
181181 let priceList = getPriceArray()
182182 let randomHashToSelect = match gameGetSumSha(randomNumberToPickup) {
183183 case hash: String =>
184184 hash
185185 case _ =>
186186 listRandomHash[numberToPick]
187187 }
188188 let randomHash = randomizer(i, toBytes(randomHashToSelect))
189189 let randNumber = toBase64String(randomHash)
190190 let tes = fromBase64String(randNumber)
191191 let listWinningPrices = [randNumber]
192192 let winningToken = {
193193 let $l = priceList
194194 let $s = size($l)
195195 let $acc0 = listWinningPrices
196196 func $f0_1 ($a,$i) = if (($i >= $s))
197197 then $a
198198 else procedLottery($a, $l[$i])
199199
200200 func $f0_2 ($a,$i) = if (($i >= $s))
201201 then $a
202202 else throw("List size exceeds 3")
203203
204204 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
205205 }
206206 let sizeOfWinPrices = size(winningToken)
207207 let divider = (500 * 1)
208208 let tas = (toInt(tes) % divider)
209209 if ((sizeOfWinPrices == 1))
210210 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))]
211211 else {
212212 let token = winningToken[0]
213213 let callerAddress = toBase58String(i.caller.bytes)
214214 let addressBalance = getCurrentBalance()
215215 if ((addressBalance == 0))
216216 then throw("Not Enough Garlic Coin")
217217 else if ((token == tokenAId))
218218 then {
219219 let lotteryPriceTokenA = match getInteger(this, (tokenAId + lotteryPrice)) {
220220 case t: Int =>
221221 t
222222 case _: Unit =>
223223 0
224224 case _ =>
225225 throw("Match error")
226226 }
227227 let winningAmount = ((lotteryPriceTokenA * addressBalance) / 100)
228228 let tokenDecimal = match assetInfo(fromBase58String(tokenAssetId)) {
229229 case asset: Asset =>
230230 asset.decimals
231231 case _: Unit =>
232232 throw("Can't find asset")
233233 case _ =>
234234 throw("Match error")
235235 }
236236 let convertedPrice = convertAmountToDecimalString(winningAmount, tokenDecimal)
237237 [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))]
238238 }
239239 else {
240240 let lotteryPriceTokenB = match getInteger(this, (token + lotteryPrice)) {
241241 case t: Int =>
242242 t
243243 case _: Unit =>
244244 0
245245 case _ =>
246246 throw("Match error")
247247 }
248248 let tokenDecimal = match assetInfo(fromBase58String(tokenAssetId)) {
249249 case asset: Asset =>
250250 asset.decimals
251251 case _: Unit =>
252252 throw("Can't find asset")
253253 case _ =>
254254 throw("Match error")
255255 }
256256 let convertedPrice = convertAmountToDecimalString(lotteryPriceTokenB, tokenDecimal)
257257 [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))]
258258 }
259259 }
260260 case _ =>
261261 throw("Last block does not exist.")
262262 }
263263 else throw((("payment is not in correct assetId " + toBase58String(gameToken)) + "."))
264264 }
265265 }
266266
267267
268268 @Verifier(tx)
269269 func verify () = match tx {
270270 case _ =>
271271 sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
272272 }
273273

github/deemru/w8io/c3f4982 
46.49 ms