tx · KH524sQasu9a2DgsDZmto3cSv5dMTqqcdcz2iB6Fgzr

3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX:  -0.01000000 Waves

2023.06.11 17:29 [2618132] smart account 3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX > SELF 0.00000000 Waves

{ "type": 13, "id": "KH524sQasu9a2DgsDZmto3cSv5dMTqqcdcz2iB6Fgzr", "fee": 1000000, "feeAssetId": null, "timestamp": 1686493782283, "version": 2, "chainId": 84, "sender": "3MrfLFw1uz3BDr45RQLvrRnAwT2nHpB4KiX", "senderPublicKey": "5iiNX4Sz3qZzcerumQLc1y7u9TH2X46jDV4f9Xivtmtv", "proofs": [ "VvmSRwwaDvEdimqH2L4bsqBsdegyPFHfmkr8hPoSyYQUtPcW3yxudKnVGjT1SxV8u7DSvZp1WHpzAxHzKyHTvzY" ], "script": "base64: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aXN0SW50VG9MaXN0U3RyaW5nAQUDYXJyAgF8ARlzdHJpbmdEZWNvbXByZXNzVG9MaXN0SW50AQZhcnJTdHIJARNsaXN0U3RyaW5nVG9MaXN0SW5nAQkAtQkCBQZhcnJTdHICAXwBCWdldFJhbmRvbQEMY29tbWl0SGVpZ2h0BAtyZXZlYWxCbG9jawkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDtBwEFDGNvbW1pdEhlaWdodAIRdW5leGNwZWN0ZWQgZXJyb3IEA3ZyZgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCAULcmV2ZWFsQmxvY2sDdnJmAhF1bmV4Y3BlY3RlZCBlcnJvcgQKcmFuZG9tSGFzaAkA9wMBCQEFdmFsdWUBBQN2cmYEBGhhc2gJALIJAgUKcmFuZG9tSGFzaAAQCQBqAgUEaGFzaAAlAQ9SX1dpbkNhbGN1bGF0b3IEDHJhbmRvbU51bWJlcgliZXRBbW91bnQSc2VsZWN0ZWROdW1iZXJCZXRzDGJldERpcmVjdGlvbgQLUkVEX1NFQ1RPUlMJAMwIAgAgCQDMCAIAEwkAzAgCABUJAMwIAgAZCQDMCAIAIgkAzAgCABsJAMwIAgAkCQDMCAIAHgkAzAgCABcJAMwIAgAFCQDMCAIAEAkAzAgCAAEJAMwIAgAOCQDMCAIACQkAzAgCABIJAMwIAgAHCQDMCAIADAkAzAgCAAMFA25pbAMDCQAAAgkAkAMBBRJzZWxlY3RlZE51bWJlckJldHMAAQkAAAIFDGJldERpcmVjdGlvbgIDbnVtBwMJAAACCQCRAwIFEnNlbGVjdGVkTnVtYmVyQmV0cwAABQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAJAAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAIDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAEgAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAMDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQADAAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAQDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQACQAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzAAwDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAAwAAAwkAAAIFDGJldERpcmVjdGlvbgIDcmVkAwkBD2NvbnRhaW5zRWxlbWVudAIFC1JFRF9TRUNUT1JTBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAAgAAAwkAAAIFDGJldERpcmVjdGlvbgIFYmxhY2sDAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgULUkVEX1NFQ1RPUlMFDHJhbmRvbU51bWJlcgkBAiE9AgUMcmFuZG9tTnVtYmVyAAAHCQBoAgUJYmV0QW1vdW50AAIAAAMJAAACBQxiZXREaXJlY3Rpb24CA29kZAMJAQIhPQIJAGoCBQxyYW5kb21OdW1iZXIAAgAACQBoAgUJYmV0QW1vdW50AAIAAAMJAAACBQxiZXREaXJlY3Rpb24CBGV2ZW4DCQAAAgkAagIFDHJhbmRvbU51bWJlcgACAAAJAGgCBQliZXRBbW91bnQAAgAAAwkAAAIJAJADAQUSc2VsZWN0ZWROdW1iZXJCZXRzABIDCQEPY29udGFpbnNFbGVtZW50AgUSc2VsZWN0ZWROdW1iZXJCZXRzBQxyYW5kb21OdW1iZXIJAGgCBQliZXRBbW91bnQAAgAAAAABC1JfZ2V0QmV0S2V5AQFpCQCsAgICDWJldF9Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyARFSX2dldEJldEFtb3VudEtleQEBaQkArAICAhNiZXRBbW91bnRfUm91bGV0dGVfCQClCAEIBQFpBmNhbGxlcgEXUl9nZXRTZWxlY3RlZE51bWJlcnNLZXkBAWkJAKwCAgIZc2VsZWN0ZWROdW1iZXJzX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXIBEVJfZ2V0RGlyZWN0aW9uS2V5AQFpCQCsAgICE2RpcmVjdGlvbl9Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAQtSX2dldExvZ0tleQEBaQkArAICCQCsAgIJAKwCAgINbG9nX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXICAV8JANgEAQgFAWkNdHJhbnNhY3Rpb25JZAEOUl9nZXRTdGF0dXNLZXkBAWkJAKwCAgIQc3RhdHVzX1JvdWxldHRlXwkApQgBCAUBaQZjYWxsZXIBDExXX2dldEJldEtleQEBaQkArAICAg9iZXRfTHVja3lXaGVlbF8JAKUIAQgFAWkGY2FsbGVyAQxMV19nZXRXb25LZXkBAWkJAKwCAgIPd29uX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgEVTFdfZ2V0UmFuZG9tTnVtYmVyS2V5AQFpCQCsAgICGHJhbmRvbU51bWJlcl9MdWNreVdoZWVsXwkApQgBCAUBaQZjYWxsZXIBDExXX2dldExvZ0tleQEBaQkArAICCQCsAgIJAKwCAgIPbG9nX0x1Y2t5V2hlZWxfCQClCAEIBQFpBmNhbGxlcgIBXwkA2AQBCAUBaQ10cmFuc2FjdGlvbklkAQ5MV193aGF0VXNlcldvbgEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAAIAAQUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAIDCQAAAgADBQckbWF0Y2gwCQEKbnVtVG9XYXZlcwEAAQMJAAACAAcFByRtYXRjaDAJAQpudW1Ub1dhdmVzAQAGAwkAAAIACQUHJG1hdGNoMAkBCm51bVRvV2F2ZXMBAAEAAAEPTFdfZ2V0U3RhdHVzS2V5AQFpCQCsAgICEHN0YXR1c19Sb3VsZXR0ZV8JAKUIAQgFAWkGY2FsbGVyAQFpARB0ZXN0UmFuZG9tTnVtYmVyAQxjb21taXRIZWlnaHQEC3JldmVhbEJsb2NrCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAO0HAQUMY29tbWl0SGVpZ2h0AhF1bmV4Y3BlY3RlZCBlcnJvcgQDdnJmCQETdmFsdWVPckVycm9yTWVzc2FnZQIIBQtyZXZlYWxCbG9jawN2cmYCEXVuZXhjcGVjdGVkIGVycm9yBApyYW5kb21IYXNoCQD3AwEJAQV2YWx1ZQEFA3ZyZgQMcmV2ZWFsQmxvY2syCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAO0HAQkAZQIFDGNvbW1pdEhlaWdodAAKAhF1bmV4Y3BlY3RlZCBlcnJvcgQEdnJmMgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCAULcmV2ZWFsQmxvY2sDdnJmAhF1bmV4Y3BlY3RlZCBlcnJvcgQLcmFuZG9tSGFzaDIJAPcDAQkBBXZhbHVlAQUDdnJmBAxyZXZlYWxCbG9jazMJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkA7QcBCQBlAgUMY29tbWl0SGVpZ2h0ABQCEXVuZXhjcGVjdGVkIGVycm9yBAR2cmYzCQETdmFsdWVPckVycm9yTWVzc2FnZQIIBQtyZXZlYWxCbG9jawN2cmYCEXVuZXhjcGVjdGVkIGVycm9yBAtyYW5kb21IYXNoMwkA9wMBCQEFdmFsdWUBBQN2cmYEDHJldmVhbEJsb2NrNAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQDtBwEJAGUCBQxjb21taXRIZWlnaHQAHgIRdW5leGNwZWN0ZWQgZXJyb3IEBHZyZjQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAggFC3JldmVhbEJsb2NrA3ZyZgIRdW5leGNwZWN0ZWQgZXJyb3IEC3JhbmRvbUhhc2g0CQD3AwEJAQV2YWx1ZQEFA3ZyZgQCbjEJAGoCCQCyCQIFCnJhbmRvbUhhc2gAEAAlBAJuMgkAagIJALIJAgULcmFuZG9tSGFzaDIAEAAlBAJuMwkAagIJALIJAgULcmFuZG9tSGFzaDMAEAAlBAJuNAkAagIJALIJAgULcmFuZG9tSGFzaDQAEAAlAwkAZgIFAm4xABIJAAIBCQCsAgICA3wxKwkApAMBBQJuMQMJAGYCBQJuMgASCQACAQkArAICAgN8MisJAKQDAQUCbjIDCQBmAgUCbjMAEgkAAgEJAKwCAgIDfDMrCQCkAwEFAm4zCQACAQkArAICAgN8NCsJAKQDAQUCbjQAWr55Lg==", "height": 2618132, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7xs7vArP7GVYyBvgB88BYkayByjB4yDwxpTsZTp5Jd2R Next: 4SjT5fCUTh1wpmiMxSLejnCGC8x9bgBhger39ytaere6 Diff:
OldNewDifferences
202202 let revealBlock4 = valueOrErrorMessage(blockInfoByHeight((commitHeight - 30)), "unexcpected error")
203203 let vrf4 = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
204204 let randomHash4 = sha256(value(vrf))
205- let n1 = toInt(randomHash, 16)
206- let n2 = toInt(randomHash2, 16)
207- let n3 = toInt(randomHash3, 16)
208- let n4 = toInt(randomHash4, 16)
209- if ((n1 > 0))
210- then {
211- let randomNumber1 = (n1 % 37)
212- let randomNumber2 = (n2 % 37)
213- if ((19 > randomNumber1))
214- then throw(("|1+" + toString(randomNumber1)))
215- else throw(("|2+" + toString(randomNumber2)))
216- }
217- else if ((n2 > 0))
218- then {
219- let randomNumber2 = (n2 % 37)
220- let randomNumber3 = (n3 % 37)
221- if ((19 > randomNumber2))
222- then throw(("|3+" + toString(randomNumber2)))
223- else throw(("|4+" + toString(randomNumber3)))
224- }
225- else if ((n3 > 0))
226- then {
227- let randomNumber2 = (n3 % 37)
228- let randomNumber3 = (n4 % 37)
229- if ((19 > randomNumber2))
230- then throw(("|5+" + toString(randomNumber2)))
231- else throw(("|6+" + toString(randomNumber3)))
232- }
233- else {
234- let randomNumber = (n4 % 37)
235- throw(("|7+" + toString(randomNumber)))
236- }
205+ let n1 = (toInt(randomHash, 16) % 37)
206+ let n2 = (toInt(randomHash2, 16) % 37)
207+ let n3 = (toInt(randomHash3, 16) % 37)
208+ let n4 = (toInt(randomHash4, 16) % 37)
209+ if ((n1 > 18))
210+ then throw(("|1+" + toString(n1)))
211+ else if ((n2 > 18))
212+ then throw(("|2+" + toString(n2)))
213+ else if ((n3 > 18))
214+ then throw(("|3+" + toString(n3)))
215+ else throw(("|4+" + toString(n4)))
237216 }
238217
239218
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 getRandom (commitHeight) = {
8686 let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
8787 let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
8888 let randomHash = sha256(value(vrf))
8989 let hash = toInt(randomHash, 16)
9090 (hash % 37)
9191 }
9292
9393
9494 func R_WinCalculator (randomNumber,betAmount,selectedNumberBets,betDirection) = {
9595 let RED_SECTORS = [32, 19, 21, 25, 34, 27, 36, 30, 23, 5, 16, 1, 14, 9, 18, 7, 12, 3]
9696 if (if ((size(selectedNumberBets) == 1))
9797 then (betDirection == "num")
9898 else false)
9999 then if ((selectedNumberBets[0] == randomNumber))
100100 then (betAmount * 36)
101101 else 0
102102 else if ((size(selectedNumberBets) == 2))
103103 then if (containsElement(selectedNumberBets, randomNumber))
104104 then (betAmount * 18)
105105 else 0
106106 else if ((size(selectedNumberBets) == 3))
107107 then if (containsElement(selectedNumberBets, randomNumber))
108108 then (betAmount * 12)
109109 else 0
110110 else if ((size(selectedNumberBets) == 4))
111111 then if (containsElement(selectedNumberBets, randomNumber))
112112 then (betAmount * 9)
113113 else 0
114114 else if ((size(selectedNumberBets) == 12))
115115 then if (containsElement(selectedNumberBets, randomNumber))
116116 then (betAmount * 3)
117117 else 0
118118 else if ((betDirection == "red"))
119119 then if (containsElement(RED_SECTORS, randomNumber))
120120 then (betAmount * 2)
121121 else 0
122122 else if ((betDirection == "black"))
123123 then if (if (!(containsElement(RED_SECTORS, randomNumber)))
124124 then (randomNumber != 0)
125125 else false)
126126 then (betAmount * 2)
127127 else 0
128128 else if ((betDirection == "odd"))
129129 then if (((randomNumber % 2) != 0))
130130 then (betAmount * 2)
131131 else 0
132132 else if ((betDirection == "even"))
133133 then if (((randomNumber % 2) == 0))
134134 then (betAmount * 2)
135135 else 0
136136 else if ((size(selectedNumberBets) == 18))
137137 then if (containsElement(selectedNumberBets, randomNumber))
138138 then (betAmount * 2)
139139 else 0
140140 else 0
141141 }
142142
143143
144144 func R_getBetKey (i) = ("bet_Roulette_" + toString(i.caller))
145145
146146
147147 func R_getBetAmountKey (i) = ("betAmount_Roulette_" + toString(i.caller))
148148
149149
150150 func R_getSelectedNumbersKey (i) = ("selectedNumbers_Roulette_" + toString(i.caller))
151151
152152
153153 func R_getDirectionKey (i) = ("direction_Roulette_" + toString(i.caller))
154154
155155
156156 func R_getLogKey (i) = ((("log_Roulette_" + toString(i.caller)) + "_") + toBase58String(i.transactionId))
157157
158158
159159 func R_getStatusKey (i) = ("status_Roulette_" + toString(i.caller))
160160
161161
162162 func LW_getBetKey (i) = ("bet_LuckyWheel_" + toString(i.caller))
163163
164164
165165 func LW_getWonKey (i) = ("won_LuckyWheel_" + toString(i.caller))
166166
167167
168168 func LW_getRandomNumberKey (i) = ("randomNumber_LuckyWheel_" + toString(i.caller))
169169
170170
171171 func LW_getLogKey (i) = ((("log_LuckyWheel_" + toString(i.caller)) + "_") + toBase58String(i.transactionId))
172172
173173
174174 func LW_whatUserWon (value) = match value {
175175 case _ =>
176176 if ((1 == $match0))
177177 then numToWaves(2)
178178 else if ((3 == $match0))
179179 then numToWaves(1)
180180 else if ((7 == $match0))
181181 then numToWaves(6)
182182 else if ((9 == $match0))
183183 then numToWaves(1)
184184 else 0
185185 }
186186
187187
188188 func LW_getStatusKey (i) = ("status_Roulette_" + toString(i.caller))
189189
190190
191191 @Callable(i)
192192 func testRandomNumber (commitHeight) = {
193193 let revealBlock = valueOrErrorMessage(blockInfoByHeight(commitHeight), "unexcpected error")
194194 let vrf = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
195195 let randomHash = sha256(value(vrf))
196196 let revealBlock2 = valueOrErrorMessage(blockInfoByHeight((commitHeight - 10)), "unexcpected error")
197197 let vrf2 = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
198198 let randomHash2 = sha256(value(vrf))
199199 let revealBlock3 = valueOrErrorMessage(blockInfoByHeight((commitHeight - 20)), "unexcpected error")
200200 let vrf3 = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
201201 let randomHash3 = sha256(value(vrf))
202202 let revealBlock4 = valueOrErrorMessage(blockInfoByHeight((commitHeight - 30)), "unexcpected error")
203203 let vrf4 = valueOrErrorMessage(revealBlock.vrf, "unexcpected error")
204204 let randomHash4 = sha256(value(vrf))
205- let n1 = toInt(randomHash, 16)
206- let n2 = toInt(randomHash2, 16)
207- let n3 = toInt(randomHash3, 16)
208- let n4 = toInt(randomHash4, 16)
209- if ((n1 > 0))
210- then {
211- let randomNumber1 = (n1 % 37)
212- let randomNumber2 = (n2 % 37)
213- if ((19 > randomNumber1))
214- then throw(("|1+" + toString(randomNumber1)))
215- else throw(("|2+" + toString(randomNumber2)))
216- }
217- else if ((n2 > 0))
218- then {
219- let randomNumber2 = (n2 % 37)
220- let randomNumber3 = (n3 % 37)
221- if ((19 > randomNumber2))
222- then throw(("|3+" + toString(randomNumber2)))
223- else throw(("|4+" + toString(randomNumber3)))
224- }
225- else if ((n3 > 0))
226- then {
227- let randomNumber2 = (n3 % 37)
228- let randomNumber3 = (n4 % 37)
229- if ((19 > randomNumber2))
230- then throw(("|5+" + toString(randomNumber2)))
231- else throw(("|6+" + toString(randomNumber3)))
232- }
233- else {
234- let randomNumber = (n4 % 37)
235- throw(("|7+" + toString(randomNumber)))
236- }
205+ let n1 = (toInt(randomHash, 16) % 37)
206+ let n2 = (toInt(randomHash2, 16) % 37)
207+ let n3 = (toInt(randomHash3, 16) % 37)
208+ let n4 = (toInt(randomHash4, 16) % 37)
209+ if ((n1 > 18))
210+ then throw(("|1+" + toString(n1)))
211+ else if ((n2 > 18))
212+ then throw(("|2+" + toString(n2)))
213+ else if ((n3 > 18))
214+ then throw(("|3+" + toString(n3)))
215+ else throw(("|4+" + toString(n4)))
237216 }
238217
239218

github/deemru/w8io/026f985 
38.79 ms