tx · 719o9QMFtrCVUH89SCJKTiBaFgTsWxTUdmBQ8dFQ6uX7

3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX:  -0.01000000 Waves

2023.06.08 19:24 [2613934] smart account 3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX > SELF 0.00000000 Waves

{ "type": 13, "id": "719o9QMFtrCVUH89SCJKTiBaFgTsWxTUdmBQ8dFQ6uX7", "fee": 1000000, "feeAssetId": null, "timestamp": 1686241513679, "version": 2, "chainId": 84, "sender": "3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX", "senderPublicKey": "5iiNX4Sz3qZzcerumQLc1y7u9TH2X46jDV4f9Xivtmtv", "proofs": [ "32T3e9kGoe2oSy6No8L7q16wk6iQznmJMoJz8xhFZ29DnLcTu6YzZUWMX2Xe4GFzQHpCLi4snxasJNqgkjCCiwNv" ], "script": "base64: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aXN0SW50VG9MaXN0U3RyaW5nAQUDYXJyAgF8ARlzdHJpbmdEZWNvbXByZXNzVG9MaXN0SW50AQZhcnJTdHIJARNsaXN0U3RyaW5nVG9MaXN0SW5nAQkAtQkCBQZhcnJTdHICAXwBDExXX2dldEJldEtleQEBaQkArAICAg9iZXRfTHVja3lXaGVlbF8JAKUIAQgFAWkGY2FsbGVyAQxMV19nZXRXb25LZXkBAWkJAKwCAgIPd29uX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgEVTFdfZ2V0UmFuZG9tTnVtYmVyS2V5AQFpCQCsAgICGHJhbmRvbU51bWJlcl9MdWNreVdoZWVsXwkApQgBCAUBaQZjYWxsZXIBDExXX2dldExvZ0tleQEBaQkArAICCQCsAgIJAKwCAgIPbG9nX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgIBXwkA2AQBCAUBaQ10cmFuc2FjdGlvbklkAQ5MV193aGF0VXNlcldvbgEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAAIAAQUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAIDCQAAAgADBQckbWF0Y2gwCQEKbnVtVG9XYXZlcwEAAQMJAAACAAcFByRtYXRjaDAJAQpudW1Ub1dhdmVzAQAGAwkAAAIACQUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAEAAAEPUl9XaW5DYWxjdWxhdG9yBAxyYW5kb21OdW1iZXIJYmV0QW1vdW50EnNlbGVjdGVkTnVtYmVyQmV0cwxiZXREaXJlY3Rpb24EC1JFRF9TRUNUT1JTCQDMCAIAIAkAzAgCABMJAMwIAgAVCQDMCAIAGQkAzAgCACIJAMwIAgAbCQDMCAIAJAkAzAgCAB4JAMwIAgAXCQDMCAIABQkAzAgCABAJAMwIAgABCQDMCAIADgkAzAgCAAkJAMwIAgASCQDMCAIABwkAzAgCAAwJAMwIAgADBQNuaWwDAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAEJAAACBQxiZXREaXJlY3Rpb24CA251bQcDCQAAAgkAkQMCBRJzZWxlY3RlZE51bWJlckJldHMAAAUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50ACQAAAMJAAACCQCQAwEFEnNlbGVjdGVkTnVtYmVyQmV0cwACAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50ABIAAAMJAAACCQCQAwEFEnNlbGVjdGVkTnVtYmVyQmV0cwADAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50AAwAAAMJAAACCQCQAwEFEnNlbGVjdGVkTnVtYmVyQmV0cwAEAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50AAkAAAMJAAACCQCQAwEFEnNlbGVjdGVkTnVtYmVyQmV0cwAMAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50AAMAAAMJAAACBQxiZXREaXJlY3Rpb24CA3JlZAMJAQ9jb250YWluc0VsZW1lbnQCBQtSRURfU0VDVE9SUwUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50AAIAAAMJAAACBQxiZXREaXJlY3Rpb24CBWJsYWNrAwMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIFC1JFRF9TRUNUT1JTBQxyYW5kb21OdW1iZXIJAQIhPQIFDHJhbmRvbU51bWJlcgAABwkAaAIFCWJldEFtb3VudAACAAADCQAAAgUMYmV0RGlyZWN0aW9uAgNvZGQDCQECIT0CCQBqAgUMcmFuZG9tTnVtYmVyAAIAAAkAaAIFCWJldEFtb3VudAACAAADCQAAAgUMYmV0RGlyZWN0aW9uAgRldmVuAwkAAAIJAGoCBQxyYW5kb21OdW1iZXIAAgAACQBoAgUJYmV0QW1vdW50AAIAAAMJAAACCQCQAwEFEnNlbGVjdGVkTnVtYmVyQmV0cwASAwkBD2NvbnRhaW5zRWxlbWVudAIFEnNlbGVjdGVkTnVtYmVyQmV0cwUMcmFuZG9tTnVtYmVyCQBoAgUJYmV0QW1vdW50AAIAAAAAAQtSX2dldEJldEtleQEBaQkArAICAg1iZXRfUm91bGV0dGVfCQClCAEIBQFpBmNhbGxlcgERUl9nZXRCZXRBbW91bnRLZXkBAWkJAKwCAgITYmV0QW1vdW50X1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXIBF1JfZ2V0U2VsZWN0ZWROdW1iZXJzS2V5AQFpCQCsAgICGXNlbGVjdGVkTnVtYmVyc19Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyARFSX2dldERpcmVjdGlvbktleQEBaQkArAICAhNkaXJlY3Rpb25fUm91bGV0dGVfCQClCAEIBQFpBmNhbGxlcgELUl9nZXRMb2dLZXkBAWkJAKwCAgkArAICCQCsAgICDWxvZ19Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAgFfCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQBDlJfZ2V0U3RhdHVzS2V5AQFpCQCsAgICEHN0YXR1c19Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAQN4eHgCBWFjY3VtBG5leHQEC3JldmVhbEJsb2NrCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAO0HAQUEbmV4dAIRdW5leGNwZWN0ZWQgZXJyb3IEA3ZyZgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCAULcmV2ZWFsQmxvY2sDdnJmAhF1bmV4Y3BlY3RlZCBlcnJvcgQKcmFuZG9tSGFzaAkA9wMBCQEFdmFsdWUBBQN2cmYEDHJhbmRvbU51bWJlcgkAagIJALIJAgUKcmFuZG9tSGFzaAAQACUJAMwIAgkBC1N0cmluZ0VudHJ5AgkApAMBBQRuZXh0CQCkAwEFDHJhbmRvbU51bWJlcgUFYWNjdW0BBHh4eDIBA2FycgoAAiRsBQNhcnIKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBA3h4eAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgNTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyAQFpAQR0ZXN0AQxjb21taXRIZWlnaHQJAQR4eHgyAQkAzAgCBQxjb21taXRIZWlnaHQJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAABCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAAgkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0AAMJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAECQDMCAIJAGUCBQxjb21taXRIZWlnaHQABQkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0AAYJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAHCQDMCAIJAGUCBQxjb21taXRIZWlnaHQACAkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0AAkJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAKCQDMCAIJAGUCBQxjb21taXRIZWlnaHQACwkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0AAwJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAANCQDMCAIJAGUCBQxjb21taXRIZWlnaHQADgkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0AA8JAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAQCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAEQkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0ABIJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAATCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAFAkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0ABUJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAWCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAFwkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0ABgJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAZCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAGgkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0ABsJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAcCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAHQkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0AB4JAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAfCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAIAkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0ACEJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAiCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAIwkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0ACQJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAlCQDMCAIJAGUCBQxjb21taXRIZWlnaHQAJgkAzAgCCQBlAgUMY29tbWl0SGVpZ2h0ACcJAMwIAgkAZQIFDGNvbW1pdEhlaWdodAAoBQNuaWwAaVgSGQ==", "height": 2613934, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: A1Dq6b5gZcGWwQ46pZsvWGwz1zynZiFuS6SJhsSLD4NE Next: 7X3s7MCHqwL7NQ9qUZGLnHDksg4TpvCWJig9o9qma95A Diff:
OldNewDifferences
202202
203203
204204 @Callable(i)
205-func test (commitHeight) = xxx2([commitHeight, (commitHeight - 1)])
206-
207-
208-
209-@Callable(i)
210-func Roulette_commit (betAmount,selectedNumberBets,betDirection) = {
211- let p = i.payments[0]
212- if (!(isPaymentOk(i, betAmount)))
213- then throw("Wrong payment amount or asset!")
214- else [IntegerEntry(R_getBetKey(i), (height + 1)), IntegerEntry(R_getBetAmountKey(i), betAmount), StringEntry(R_getSelectedNumbersKey(i), listIntCompressToString(selectedNumberBets)), StringEntry(R_getDirectionKey(i), betDirection), StringEntry(R_getStatusKey(i), ((((("| status: commit | revealBlock: " + toString((height + 1))) + " | betAmount: ") + toString(betAmount)) + " | selectedNumbers: ") + listIntCompressToString(selectedNumberBets)))]
215- }
216-
217-
218-
219-@Callable(i)
220-func Roulette_reveal () = {
221- let commitHeight = valueOrErrorMessage(getIntegerValue(R_getBetKey(i)), "Bet not found")
222- let betAmount = valueOrErrorMessage(getIntegerValue(R_getBetAmountKey(i)), "Bet amount not found")
223- let selectedNumbersStr = valueOrErrorMessage(getStringValue(R_getSelectedNumbersKey(i)), "Selected numbers not found")
224- let direction = valueOrErrorMessage(getStringValue(R_getDirectionKey(i)), "Direction not found")
225- let selectedNumbers = stringDecompressToListInt(selectedNumbersStr)
226- if ((commitHeight > height))
227- then throw((("Wait " + toString((commitHeight - height))) + " blocks to reveal this id"))
228- else {
229- let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
230- let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
231- let randomHash = sha256(value(vrf))
232- let randomNumber = (toInt(randomHash, 16) % 37)
233- let winningAmount = numToWaves(R_WinCalculator(randomNumber, betAmount, selectedNumbers, direction))
234- let logStr = ((((((((("| commitHeight: " + toString(commitHeight)) + " | betAmount: ") + toString(betAmount)) + " | winningAmount: ") + toString(winningAmount)) + " | selectedNumbers: ") + listIntCompressToString(selectedNumbers)) + " | randomNumber: ") + toString(randomNumber))
235- let statusStr = ((((((((("| status: reveal | winningAmount: " + toString(winningAmount)) + " | selectedNumbers: ") + listIntCompressToString(selectedNumbers)) + " | randomNumber: ") + toString(randomNumber)) + " | betAmount: ") + toString(betAmount)) + " | selectedNumbers: ") + listIntCompressToString(selectedNumbers))
236- if ((winningAmount > 0))
237- then [DeleteEntry(R_getBetKey(i)), DeleteEntry(R_getBetAmountKey(i)), DeleteEntry(R_getSelectedNumbersKey(i)), DeleteEntry(R_getDirectionKey(i)), ScriptTransfer(i.caller, winningAmount, unit), StringEntry(R_getLogKey(i), logStr), StringEntry(R_getStatusKey(i), statusStr)]
238- else [DeleteEntry(R_getBetKey(i)), DeleteEntry(R_getBetAmountKey(i)), DeleteEntry(R_getSelectedNumbersKey(i)), DeleteEntry(R_getDirectionKey(i)), IntegerEntry(R_getLogKey(i), winningAmount), StringEntry(R_getLogKey(i), logStr), StringEntry(R_getStatusKey(i), statusStr)]
239- }
240- }
241-
242-
243-
244-@Callable(i)
245-func LuckyWheel_commit () = if (!(isPaymentOk(i, 1)))
246- then throw("Wrong payment amount or asset")
247- else [IntegerEntry(LW_getBetKey(i), (height + 1)), DeleteEntry(LW_getRandomNumberKey(i)), DeleteEntry(LW_getWonKey(i))]
248-
249-
250-
251-@Callable(i)
252-func LuckyWheel_reveal () = {
253- let commitHeight = valueOrErrorMessage(getIntegerValue(LW_getBetKey(i)), "Bet not found")
254- if ((commitHeight > height))
255- then throw((("Wait " + toString((commitHeight - height))) + " blocks to reveal this id"))
256- else {
257- let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
258- let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
259- let randomHash = sha256(value(vrf))
260- let randomNumber = (toInt(randomHash, 16) % 12)
261- let winningAmount = LW_whatUserWon(randomNumber)
262- let logStr = ((((((("| caller: " + toString(i.caller)) + " | winningAmount: ") + toString(winningAmount)) + " | randomNumber: ") + toString(randomNumber)) + " | commitHeight: ") + toString(commitHeight))
263- if ((winningAmount > 0))
264- then [DeleteEntry(LW_getBetKey(i)), ScriptTransfer(i.caller, winningAmount, unit), IntegerEntry(LW_getWonKey(i), winningAmount), IntegerEntry(LW_getRandomNumberKey(i), randomNumber), StringEntry(LW_getLogKey(i), logStr)]
265- else [DeleteEntry(LW_getBetKey(i)), IntegerEntry(LW_getWonKey(i), winningAmount), IntegerEntry(LW_getRandomNumberKey(i), randomNumber), StringEntry(LW_getLogKey(i), logStr)]
266- }
267- }
205+func test (commitHeight) = xxx2([commitHeight, (commitHeight - 1), (commitHeight - 2), (commitHeight - 3), (commitHeight - 4), (commitHeight - 5), (commitHeight - 6), (commitHeight - 7), (commitHeight - 8), (commitHeight - 9), (commitHeight - 10), (commitHeight - 11), (commitHeight - 12), (commitHeight - 13), (commitHeight - 14), (commitHeight - 15), (commitHeight - 16), (commitHeight - 17), (commitHeight - 18), (commitHeight - 19), (commitHeight - 20), (commitHeight - 21), (commitHeight - 22), (commitHeight - 23), (commitHeight - 24), (commitHeight - 25), (commitHeight - 26), (commitHeight - 27), (commitHeight - 28), (commitHeight - 29), (commitHeight - 30), (commitHeight - 31), (commitHeight - 32), (commitHeight - 33), (commitHeight - 34), (commitHeight - 35), (commitHeight - 36), (commitHeight - 37), (commitHeight - 38), (commitHeight - 39), (commitHeight - 40)])
268206
269207
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func numToWaves (num) = (num * 100000000)
55
66
77 func isPaymentOk (i,sum) = {
88 let acceptableAssetId = base58'WAVES'
99 let p = i.payments[0]
1010 if ((p.amount >= numToWaves(sum)))
1111 then (p.assetId == unit)
1212 else false
1313 }
1414
1515
1616 func mapIntToStr (accum,next) = toString(next) :: accum
1717
1818
1919 func mapStrToInt (accum,next) = parseIntValue(next) :: accum
2020
2121
2222 func mapIntToSum (accum,next) = (accum + next)
2323
2424
2525 func listIntToSum (arr) = {
2626 let $l = arr
2727 let $s = size($l)
2828 let $acc0 = 0
2929 func $f0_1 ($a,$i) = if (($i >= $s))
3030 then $a
3131 else mapIntToSum($a, $l[$i])
3232
3333 func $f0_2 ($a,$i) = if (($i >= $s))
3434 then $a
3535 else throw("List size exceeds 50")
3636
3737 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
3838 }
3939
4040
4141 func listIntToListString (arr) = {
4242 let $l = arr
4343 let $s = size($l)
4444 let $acc0 = nil
4545 func $f0_1 ($a,$i) = if (($i >= $s))
4646 then $a
4747 else mapIntToStr($a, $l[$i])
4848
4949 func $f0_2 ($a,$i) = if (($i >= $s))
5050 then $a
5151 else throw("List size exceeds 50")
5252
5353 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
5454 }
5555
5656
5757 func listStringToListIng (arr) = {
5858 let $l = arr
5959 let $s = size($l)
6060 let $acc0 = nil
6161 func $f0_1 ($a,$i) = if (($i >= $s))
6262 then $a
6363 else mapStrToInt($a, $l[$i])
6464
6565 func $f0_2 ($a,$i) = if (($i >= $s))
6666 then $a
6767 else throw("List size exceeds 50")
6868
6969 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
7070 }
7171
7272
7373 func listStringCompressToString (arr) = makeString(arr, "|")
7474
7575
7676 func stringDecompressToListString (str) = split(str, "|")
7777
7878
7979 func listIntCompressToString (arr) = makeString(listIntToListString(arr), "|")
8080
8181
8282 func stringDecompressToListInt (arrStr) = listStringToListIng(split(arrStr, "|"))
8383
8484
8585 func LW_getBetKey (i) = ("bet_LuckyWheel_" + toString(i.caller))
8686
8787
8888 func LW_getWonKey (i) = ("won_LuckyWheel_" + toString(i.caller))
8989
9090
9191 func LW_getRandomNumberKey (i) = ("randomNumber_LuckyWheel_" + toString(i.caller))
9292
9393
9494 func LW_getLogKey (i) = ((("log_LuckyWheel_" + toString(i.caller)) + "_") + toBase58String(i.transactionId))
9595
9696
9797 func LW_whatUserWon (value) = match value {
9898 case _ =>
9999 if ((1 == $match0))
100100 then numToWaves(2)
101101 else if ((3 == $match0))
102102 then numToWaves(1)
103103 else if ((7 == $match0))
104104 then numToWaves(6)
105105 else if ((9 == $match0))
106106 then numToWaves(1)
107107 else 0
108108 }
109109
110110
111111 func R_WinCalculator (randomNumber,betAmount,selectedNumberBets,betDirection) = {
112112 let RED_SECTORS = [32, 19, 21, 25, 34, 27, 36, 30, 23, 5, 16, 1, 14, 9, 18, 7, 12, 3]
113113 if (if ((size(selectedNumberBets) == 1))
114114 then (betDirection == "num")
115115 else false)
116116 then if ((selectedNumberBets[0] == randomNumber))
117117 then (betAmount * 36)
118118 else 0
119119 else if ((size(selectedNumberBets) == 2))
120120 then if (containsElement(selectedNumberBets, randomNumber))
121121 then (betAmount * 18)
122122 else 0
123123 else if ((size(selectedNumberBets) == 3))
124124 then if (containsElement(selectedNumberBets, randomNumber))
125125 then (betAmount * 12)
126126 else 0
127127 else if ((size(selectedNumberBets) == 4))
128128 then if (containsElement(selectedNumberBets, randomNumber))
129129 then (betAmount * 9)
130130 else 0
131131 else if ((size(selectedNumberBets) == 12))
132132 then if (containsElement(selectedNumberBets, randomNumber))
133133 then (betAmount * 3)
134134 else 0
135135 else if ((betDirection == "red"))
136136 then if (containsElement(RED_SECTORS, randomNumber))
137137 then (betAmount * 2)
138138 else 0
139139 else if ((betDirection == "black"))
140140 then if (if (!(containsElement(RED_SECTORS, randomNumber)))
141141 then (randomNumber != 0)
142142 else false)
143143 then (betAmount * 2)
144144 else 0
145145 else if ((betDirection == "odd"))
146146 then if (((randomNumber % 2) != 0))
147147 then (betAmount * 2)
148148 else 0
149149 else if ((betDirection == "even"))
150150 then if (((randomNumber % 2) == 0))
151151 then (betAmount * 2)
152152 else 0
153153 else if ((size(selectedNumberBets) == 18))
154154 then if (containsElement(selectedNumberBets, randomNumber))
155155 then (betAmount * 2)
156156 else 0
157157 else 0
158158 }
159159
160160
161161 func R_getBetKey (i) = ("bet_Roulette_" + toString(i.caller))
162162
163163
164164 func R_getBetAmountKey (i) = ("betAmount_Roulette_" + toString(i.caller))
165165
166166
167167 func R_getSelectedNumbersKey (i) = ("selectedNumbers_Roulette_" + toString(i.caller))
168168
169169
170170 func R_getDirectionKey (i) = ("direction_Roulette_" + toString(i.caller))
171171
172172
173173 func R_getLogKey (i) = ((("log_Roulette_" + toString(i.caller)) + "_") + toBase58String(i.transactionId))
174174
175175
176176 func R_getStatusKey (i) = ("status_Roulette_" + toString(i.caller))
177177
178178
179179 func xxx (accum,next) = {
180180 let revealBlock = valueOrErrorMessage(blockInfoByHeight(next), "unexcpected error")
181181 let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
182182 let randomHash = sha256(value(vrf))
183183 let randomNumber = (toInt(randomHash, 16) % 37)
184184 StringEntry(toString(next), toString(randomNumber)) :: accum
185185 }
186186
187187
188188 func xxx2 (arr) = {
189189 let $l = arr
190190 let $s = size($l)
191191 let $acc0 = nil
192192 func $f0_1 ($a,$i) = if (($i >= $s))
193193 then $a
194194 else xxx($a, $l[$i])
195195
196196 func $f0_2 ($a,$i) = if (($i >= $s))
197197 then $a
198198 else throw("List size exceeds 50")
199199
200200 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27), 28), 29), 30), 31), 32), 33), 34), 35), 36), 37), 38), 39), 40), 41), 42), 43), 44), 45), 46), 47), 48), 49), 50)
201201 }
202202
203203
204204 @Callable(i)
205-func test (commitHeight) = xxx2([commitHeight, (commitHeight - 1)])
206-
207-
208-
209-@Callable(i)
210-func Roulette_commit (betAmount,selectedNumberBets,betDirection) = {
211- let p = i.payments[0]
212- if (!(isPaymentOk(i, betAmount)))
213- then throw("Wrong payment amount or asset!")
214- else [IntegerEntry(R_getBetKey(i), (height + 1)), IntegerEntry(R_getBetAmountKey(i), betAmount), StringEntry(R_getSelectedNumbersKey(i), listIntCompressToString(selectedNumberBets)), StringEntry(R_getDirectionKey(i), betDirection), StringEntry(R_getStatusKey(i), ((((("| status: commit | revealBlock: " + toString((height + 1))) + " | betAmount: ") + toString(betAmount)) + " | selectedNumbers: ") + listIntCompressToString(selectedNumberBets)))]
215- }
216-
217-
218-
219-@Callable(i)
220-func Roulette_reveal () = {
221- let commitHeight = valueOrErrorMessage(getIntegerValue(R_getBetKey(i)), "Bet not found")
222- let betAmount = valueOrErrorMessage(getIntegerValue(R_getBetAmountKey(i)), "Bet amount not found")
223- let selectedNumbersStr = valueOrErrorMessage(getStringValue(R_getSelectedNumbersKey(i)), "Selected numbers not found")
224- let direction = valueOrErrorMessage(getStringValue(R_getDirectionKey(i)), "Direction not found")
225- let selectedNumbers = stringDecompressToListInt(selectedNumbersStr)
226- if ((commitHeight > height))
227- then throw((("Wait " + toString((commitHeight - height))) + " blocks to reveal this id"))
228- else {
229- let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
230- let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
231- let randomHash = sha256(value(vrf))
232- let randomNumber = (toInt(randomHash, 16) % 37)
233- let winningAmount = numToWaves(R_WinCalculator(randomNumber, betAmount, selectedNumbers, direction))
234- let logStr = ((((((((("| commitHeight: " + toString(commitHeight)) + " | betAmount: ") + toString(betAmount)) + " | winningAmount: ") + toString(winningAmount)) + " | selectedNumbers: ") + listIntCompressToString(selectedNumbers)) + " | randomNumber: ") + toString(randomNumber))
235- let statusStr = ((((((((("| status: reveal | winningAmount: " + toString(winningAmount)) + " | selectedNumbers: ") + listIntCompressToString(selectedNumbers)) + " | randomNumber: ") + toString(randomNumber)) + " | betAmount: ") + toString(betAmount)) + " | selectedNumbers: ") + listIntCompressToString(selectedNumbers))
236- if ((winningAmount > 0))
237- then [DeleteEntry(R_getBetKey(i)), DeleteEntry(R_getBetAmountKey(i)), DeleteEntry(R_getSelectedNumbersKey(i)), DeleteEntry(R_getDirectionKey(i)), ScriptTransfer(i.caller, winningAmount, unit), StringEntry(R_getLogKey(i), logStr), StringEntry(R_getStatusKey(i), statusStr)]
238- else [DeleteEntry(R_getBetKey(i)), DeleteEntry(R_getBetAmountKey(i)), DeleteEntry(R_getSelectedNumbersKey(i)), DeleteEntry(R_getDirectionKey(i)), IntegerEntry(R_getLogKey(i), winningAmount), StringEntry(R_getLogKey(i), logStr), StringEntry(R_getStatusKey(i), statusStr)]
239- }
240- }
241-
242-
243-
244-@Callable(i)
245-func LuckyWheel_commit () = if (!(isPaymentOk(i, 1)))
246- then throw("Wrong payment amount or asset")
247- else [IntegerEntry(LW_getBetKey(i), (height + 1)), DeleteEntry(LW_getRandomNumberKey(i)), DeleteEntry(LW_getWonKey(i))]
248-
249-
250-
251-@Callable(i)
252-func LuckyWheel_reveal () = {
253- let commitHeight = valueOrErrorMessage(getIntegerValue(LW_getBetKey(i)), "Bet not found")
254- if ((commitHeight > height))
255- then throw((("Wait " + toString((commitHeight - height))) + " blocks to reveal this id"))
256- else {
257- let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
258- let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
259- let randomHash = sha256(value(vrf))
260- let randomNumber = (toInt(randomHash, 16) % 12)
261- let winningAmount = LW_whatUserWon(randomNumber)
262- let logStr = ((((((("| caller: " + toString(i.caller)) + " | winningAmount: ") + toString(winningAmount)) + " | randomNumber: ") + toString(randomNumber)) + " | commitHeight: ") + toString(commitHeight))
263- if ((winningAmount > 0))
264- then [DeleteEntry(LW_getBetKey(i)), ScriptTransfer(i.caller, winningAmount, unit), IntegerEntry(LW_getWonKey(i), winningAmount), IntegerEntry(LW_getRandomNumberKey(i), randomNumber), StringEntry(LW_getLogKey(i), logStr)]
265- else [DeleteEntry(LW_getBetKey(i)), IntegerEntry(LW_getWonKey(i), winningAmount), IntegerEntry(LW_getRandomNumberKey(i), randomNumber), StringEntry(LW_getLogKey(i), logStr)]
266- }
267- }
205+func test (commitHeight) = xxx2([commitHeight, (commitHeight - 1), (commitHeight - 2), (commitHeight - 3), (commitHeight - 4), (commitHeight - 5), (commitHeight - 6), (commitHeight - 7), (commitHeight - 8), (commitHeight - 9), (commitHeight - 10), (commitHeight - 11), (commitHeight - 12), (commitHeight - 13), (commitHeight - 14), (commitHeight - 15), (commitHeight - 16), (commitHeight - 17), (commitHeight - 18), (commitHeight - 19), (commitHeight - 20), (commitHeight - 21), (commitHeight - 22), (commitHeight - 23), (commitHeight - 24), (commitHeight - 25), (commitHeight - 26), (commitHeight - 27), (commitHeight - 28), (commitHeight - 29), (commitHeight - 30), (commitHeight - 31), (commitHeight - 32), (commitHeight - 33), (commitHeight - 34), (commitHeight - 35), (commitHeight - 36), (commitHeight - 37), (commitHeight - 38), (commitHeight - 39), (commitHeight - 40)])
268206
269207

github/deemru/w8io/3ef1775 
88.04 ms