tx · 93uMUcasUPv5cQVh6Ui5Zk3wY5Ksz6H5MU1n9SfMrVwi

3N8GKGgDPGGUaAhPMNtsxTJWafHDRnwL7GQ:  -0.01000000 Waves

2023.05.31 00:18 [2601243] smart account 3N8GKGgDPGGUaAhPMNtsxTJWafHDRnwL7GQ > SELF 0.00000000 Waves

{ "type": 13, "id": "93uMUcasUPv5cQVh6Ui5Zk3wY5Ksz6H5MU1n9SfMrVwi", "fee": 1000000, "feeAssetId": null, "timestamp": 1685481589481, "version": 2, "chainId": 84, "sender": "3N8GKGgDPGGUaAhPMNtsxTJWafHDRnwL7GQ", "senderPublicKey": "y5twTW93XMmi75S5bati2cok9QLLFivsrwJedxJeUkX", "proofs": [ "ezkfB2Gcb4wFNV8PBF854W1oUmHkWyHvnmNyoCnyAnnZCYaMGXKzVgTAeBqTpNRRfYmrNiiUndKEmymvsHTDFRf" ], "script": "base64:BgIECAISAAEBD2dldFJhbmRvbU51bWJlcgAED3JhbmRvbVNlZWRCbG9jawkBBXZhbHVlAQkA7QcBCQBlAgUGaGVpZ2h0AAEECnJhbmRvbUhhc2gJANQWAQkBBXZhbHVlAQgFD3JhbmRvbVNlZWRCbG9jawN2cmYJALEJAQUKcmFuZG9tSGFzaAEBaQEFdGVzdDcABAdhZGRyZXNzCQDYBAEICAUBaQZjYWxsZXIFYnl0ZXMEAXIJAKQDAQkBD2dldFJhbmRvbU51bWJlcgAJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCAgNYWFgFAXIFA25pbAABABMN0kg=", "height": 2601243, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2GH9x8YjBAn6UcyGVpSVPuGk7YwpAjqgWrB9A7LVPDr3 Next: 2pSpjasr15hXzsVw5Err5dY2D2G4vFpmFNMLHRK5hgod Full:
OldNewDifferences
1-{-# STDLIB_VERSION 4 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func numToWaves (num) = (num * 100000000)
5-
6-
7-func generateRandomNumber (i,min,max) = {
8- let randomSeed = toInt(keccak256(i.transactionId))
9- let randomNumber = ((randomSeed % ((max - min) + 1)) + min)
10- randomNumber
4+func getRandomNumber () = {
5+ let randomSeedBlock = value(blockInfoByHeight((height - 1)))
6+ let randomHash = sha256_16Kb(value(randomSeedBlock.vrf))
7+ toInt(randomHash)
118 }
129
1310
14-func isPaymentOk (i) = {
15- let acceptableAssetId = base58'3JmaWyFqWo8YSA8x3DXCBUW7veesxacvKx19dMv7wTMg'
16- if ((size(i.payments) == 0))
17- then throw("Payment not attached")
18- else {
19- let p = i.payments[0]
20- match p.assetId {
21- case assetId: ByteVector =>
22- if ((assetId == acceptableAssetId))
23- then (p.amount >= numToWaves(1))
24- else false
25- case _ =>
26- (p.amount >= numToWaves(1))
27- }
28- }
11+@Callable(i)
12+func test7 () = {
13+ let address = toBase58String(i.caller.bytes)
14+ let r = toString(getRandomNumber())
15+ $Tuple2([StringEntry("XXX", r)], 1)
2916 }
30-
31-
32-func gameLuckyWheelWhatUserWon (value) = match value {
33- case _ =>
34- if ((1 == $match0))
35- then numToWaves(2)
36- else if ((5 == $match0))
37- then numToWaves(1)
38- else if ((7 == $match0))
39- then numToWaves(4)
40- else if ((11 == $match0))
41- then numToWaves(1)
42- else 0
43-}
44-
45-
46-@Callable(i)
47-func gameLuckyWheel (id) = if (!(isPaymentOk(i)))
48- then throw("Wrong payment amount or asset")
49- else {
50- let randomNumber = generateRandomNumber(i, 1, 12)
51- let winningAmount = gameLuckyWheelWhatUserWon(randomNumber)
52- if ((winningAmount == numToWaves(1)))
53- then [ScriptTransfer(i.caller, winningAmount, unit), StringEntry(("game_status_" + id), "roll"), IntegerEntry(("game_" + id), winningAmount), IntegerEntry(("test_game_randomNumber_" + id), randomNumber), IntegerEntry(("test_game_winningAmount_" + id), winningAmount)]
54- else if ((winningAmount > 0))
55- then [ScriptTransfer(i.caller, winningAmount, unit), StringEntry(("game_status_" + id), "win"), IntegerEntry(("game_" + id), winningAmount), IntegerEntry(("test_game_randomNumber_" + id), randomNumber), IntegerEntry(("test_game_winningAmount_" + id), winningAmount)]
56- else [IntegerEntry(("game_" + id), winningAmount), StringEntry(("game_status_" + id), "lose"), IntegerEntry(("test_game_randomNumber_" + id), randomNumber), IntegerEntry(("test_game_winningAmount_" + id), winningAmount)]
57- }
5817
5918

github/deemru/w8io/873ac7e 
33.90 ms