tx · 5otyGrT1E8ogXLANz3FUeJTfgHULBVA2dHVYkxjnk4Qk 3N8GKGgDPGGUaAhPMNtsxTJWafHDRnwL7GQ: -0.01000000 Waves 2023.05.30 09:16 [2600333] smart account 3N8GKGgDPGGUaAhPMNtsxTJWafHDRnwL7GQ > SELF 0.00000000 Waves
{ "type": 13, "id": "5otyGrT1E8ogXLANz3FUeJTfgHULBVA2dHVYkxjnk4Qk", "fee": 1000000, "feeAssetId": null, "timestamp": 1685427425683, "version": 2, "chainId": 84, "sender": "3N8GKGgDPGGUaAhPMNtsxTJWafHDRnwL7GQ", "senderPublicKey": "y5twTW93XMmi75S5bati2cok9QLLFivsrwJedxJeUkX", "proofs": [ "5pajR9rdHUGnYpUyFPKaAHUowg4UojqxMRXi52s3VD6ZP2s3tKvXBMmMd9zbwxnDymLsf25nt1Mx426yAwcHBipt" ], "script": "base64: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", "height": 2600333, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4Q6PBqRGgxy5dM5ttfYxncJNsWwizCD1hq4CvLyjD4Qo Next: 2GH9x8YjBAn6UcyGVpSVPuGk7YwpAjqgWrB9A7LVPDr3 Diff:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func numToWaves (num) = (num * 100000000) | |
5 | + | ||
6 | + | ||
4 | 7 | func generateRandomNumber (i,min,max) = { | |
5 | 8 | let randomSeed = toInt(keccak256(i.transactionId)) | |
6 | 9 | let randomNumber = ((randomSeed % ((max - min) + 1)) + min) | |
17 | 20 | match p.assetId { | |
18 | 21 | case assetId: ByteVector => | |
19 | 22 | if ((assetId == acceptableAssetId)) | |
20 | - | then (p.amount >= | |
23 | + | then (p.amount >= numToWaves(1)) | |
21 | 24 | else false | |
22 | 25 | case _ => | |
23 | - | (p.amount >= | |
26 | + | (p.amount >= numToWaves(1)) | |
24 | 27 | } | |
25 | 28 | } | |
26 | 29 | } | |
29 | 32 | func gameLuckyWheelWhatUserWon (value) = match value { | |
30 | 33 | case _ => | |
31 | 34 | if ((1 == $match0)) | |
32 | - | then | |
35 | + | then numToWaves(2) | |
33 | 36 | else if ((3 == $match0)) | |
34 | - | then | |
37 | + | then numToWaves(1) | |
35 | 38 | else if ((5 == $match0)) | |
36 | - | then | |
39 | + | then numToWaves(1) | |
37 | 40 | else if ((7 == $match0)) | |
38 | - | then | |
41 | + | then numToWaves(4) | |
39 | 42 | else if ((9 == $match0)) | |
40 | - | then | |
43 | + | then numToWaves(1) | |
41 | 44 | else if ((11 == $match0)) | |
42 | - | then | |
45 | + | then numToWaves(1) | |
43 | 46 | else 0 | |
44 | 47 | } | |
45 | 48 | ||
50 | 53 | else { | |
51 | 54 | let randomNumber = generateRandomNumber(i, 1, 12) | |
52 | 55 | let winningAmount = gameLuckyWheelWhatUserWon(randomNumber) | |
53 | - | if ((winningAmount == | |
56 | + | if ((winningAmount == numToWaves(1))) | |
54 | 57 | 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)] | |
55 | 58 | else if ((winningAmount > 0)) | |
56 | 59 | 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)] |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 4 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | + | func numToWaves (num) = (num * 100000000) | |
5 | + | ||
6 | + | ||
4 | 7 | func generateRandomNumber (i,min,max) = { | |
5 | 8 | let randomSeed = toInt(keccak256(i.transactionId)) | |
6 | 9 | let randomNumber = ((randomSeed % ((max - min) + 1)) + min) | |
7 | 10 | randomNumber | |
8 | 11 | } | |
9 | 12 | ||
10 | 13 | ||
11 | 14 | func isPaymentOk (i) = { | |
12 | 15 | let acceptableAssetId = base58'3JmaWyFqWo8YSA8x3DXCBUW7veesxacvKx19dMv7wTMg' | |
13 | 16 | if ((size(i.payments) == 0)) | |
14 | 17 | then throw("Payment not attached") | |
15 | 18 | else { | |
16 | 19 | let p = i.payments[0] | |
17 | 20 | match p.assetId { | |
18 | 21 | case assetId: ByteVector => | |
19 | 22 | if ((assetId == acceptableAssetId)) | |
20 | - | then (p.amount >= | |
23 | + | then (p.amount >= numToWaves(1)) | |
21 | 24 | else false | |
22 | 25 | case _ => | |
23 | - | (p.amount >= | |
26 | + | (p.amount >= numToWaves(1)) | |
24 | 27 | } | |
25 | 28 | } | |
26 | 29 | } | |
27 | 30 | ||
28 | 31 | ||
29 | 32 | func gameLuckyWheelWhatUserWon (value) = match value { | |
30 | 33 | case _ => | |
31 | 34 | if ((1 == $match0)) | |
32 | - | then | |
35 | + | then numToWaves(2) | |
33 | 36 | else if ((3 == $match0)) | |
34 | - | then | |
37 | + | then numToWaves(1) | |
35 | 38 | else if ((5 == $match0)) | |
36 | - | then | |
39 | + | then numToWaves(1) | |
37 | 40 | else if ((7 == $match0)) | |
38 | - | then | |
41 | + | then numToWaves(4) | |
39 | 42 | else if ((9 == $match0)) | |
40 | - | then | |
43 | + | then numToWaves(1) | |
41 | 44 | else if ((11 == $match0)) | |
42 | - | then | |
45 | + | then numToWaves(1) | |
43 | 46 | else 0 | |
44 | 47 | } | |
45 | 48 | ||
46 | 49 | ||
47 | 50 | @Callable(i) | |
48 | 51 | func gameLuckyWheel (id) = if (!(isPaymentOk(i))) | |
49 | 52 | then throw("Wrong payment amount or asset") | |
50 | 53 | else { | |
51 | 54 | let randomNumber = generateRandomNumber(i, 1, 12) | |
52 | 55 | let winningAmount = gameLuckyWheelWhatUserWon(randomNumber) | |
53 | - | if ((winningAmount == | |
56 | + | if ((winningAmount == numToWaves(1))) | |
54 | 57 | 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)] | |
55 | 58 | else if ((winningAmount > 0)) | |
56 | 59 | 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)] | |
57 | 60 | else [IntegerEntry(("game_" + id), winningAmount), StringEntry(("game_status_" + id), "lose"), IntegerEntry(("test_game_randomNumber_" + id), randomNumber), IntegerEntry(("test_game_winningAmount_" + id), winningAmount)] | |
58 | 61 | } | |
59 | 62 | ||
60 | 63 |
github/deemru/w8io/c3f4982 29.17 ms ◑