tx · He1ntbKUnrKrALKpgj6xSt5nPfnjJX5ra5dKz9NEMZrL 3N4boZRUJ2LxY5jLyp6hmxGktqnawQidu6H: -0.00200000 Waves 2022.08.21 15:50 [2194244] smart account 3N4boZRUJ2LxY5jLyp6hmxGktqnawQidu6H > SELF 0.00000000 Waves
{ "type": 13, "id": "He1ntbKUnrKrALKpgj6xSt5nPfnjJX5ra5dKz9NEMZrL", "fee": 200000, "feeAssetId": null, "timestamp": 1661086271152, "version": 2, "chainId": 84, "sender": "3N4boZRUJ2LxY5jLyp6hmxGktqnawQidu6H", "senderPublicKey": "BDeCphaaC4MZvfmbJqQZ78EvuEBZTJ1VEW7fbxue8BUu", "proofs": [ "3xuWcGU8wuHdLgg3vqTq2ChNUN4gEaVLndWuMtTZJkEpZpXwGUNKHHJ5nWhy6r6H29FWQCqVC855YyXjS24SSsXY" ], "script": "base64:BgIICAISABIAEgAGAAxrVXNlclBheW1lbnQCB1BheW1lbnQABGtXb24CA1dvbgAJc2VwYXJhdG9yAgEvAA9zZXBhcmF0b3JTZWNvbmQCAXwBCXJhbmRvbWl6ZQIFYnl0ZXMFcmFuZ2UEBGhhc2gJAPcDAQUFYnl0ZXMEBWluZGV4CQCxCQEFBGhhc2gJAGoCBQVpbmRleAUFcmFuZ2UBCGNvdW50aW5nAgVieXRlcwZjYWxsZXIEBWNvdW50CQEJcmFuZG9taXplAgUFYnl0ZXMACgMJAGcCBQVjb3VudAAECQELU3RyaW5nRW50cnkCBQRrV29uCQCsAgIJAKwCAgkArAICCQCsAgIJAKUIAQUGY2FsbGVyBQlzZXBhcmF0b3ICBWZhbHNlBQ9zZXBhcmF0b3JTZWNvbmQJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMFBGtXb24JAQtTdHJpbmdFbnRyeQIFBGtXb24JAKwCAgkArAICCQCsAgIJAKwCAgkApQgBBQZjYWxsZXIFCXNlcGFyYXRvcgIEdHJ1ZQUPc2VwYXJhdG9yU2Vjb25kCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQRrV29uAwFpAQlpbml0U3RvcmUACQDMCAIJAQtTdHJpbmdFbnRyeQIFBGtXb24CATAFA25pbAFpAQtwYXJzZVN0cnVjdAAEDW51bGxJbml0U3RvcmUJAP0HBAUEdGhpcwIJaW5pdFN0b3JlBQNuaWwFA25pbAMJAAACBQ1udWxsSW5pdFN0b3JlBQ1udWxsSW5pdFN0b3JlAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIKT25seSBvd25lcgQMd2lubmVyU3RydWN0CQEIY291bnRpbmcCCAUBaQ10cmFuc2FjdGlvbklkCAUBaQZjYWxsZXIJAMwIAgUMd2lubmVyU3RydWN0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEJc3RhcnRHYW1lAAQGYW1vdW50CQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAUEdW5pdAkAAgECDFBheSBpbiB3YXZlcwMJAGYCBQZhbW91bnQAFAkAAgECG1lvdSBjYW5ub3QgYmV0IG1vcmUgdGhhbiAyMAQDd29uCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwUEa1dvbgISU3RvcmFnZSByZWFkIGVycm9yAwUDd29uCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAaAIFBmFtb3VudAACBQR1bml0BQNuaWwFA25pbAC4dg9C", "height": 2194244, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CY1zC1EEC1hPY7M8Bn62DaKGKX61pk4jg2Tt2NBbWmdw Next: 3vwLZBXeXpbhppwPw7YWyWxpcZujg1Ssb4VhDAX628e2 Diff:
Old | New | Differences | |
---|---|---|---|
52 | 52 | else if ((amount > 20)) | |
53 | 53 | then throw("You cannot bet more than 20") | |
54 | 54 | else { | |
55 | - | let nullInitStore = invoke(this, "parseStruct", nil, nil) | |
56 | - | if ((nullInitStore == nullInitStore)) | |
57 | - | then { | |
58 | - | let won = valueOrErrorMessage(getBoolean(this, kWon), "Storage read error") | |
59 | - | if (won) | |
60 | - | then [ScriptTransfer(i.caller, (amount * 2), unit)] | |
61 | - | else nil | |
62 | - | } | |
63 | - | else throw("Strict value is not equal to itself.") | |
55 | + | let won = valueOrErrorMessage(getBoolean(this, kWon), "Storage read error") | |
56 | + | if (won) | |
57 | + | then [ScriptTransfer(i.caller, (amount * 2), unit)] | |
58 | + | else nil | |
64 | 59 | } | |
65 | 60 | } | |
66 | 61 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let kUserPayment = "Payment" | |
5 | 5 | ||
6 | 6 | let kWon = "Won" | |
7 | 7 | ||
8 | 8 | let separator = "/" | |
9 | 9 | ||
10 | 10 | let separatorSecond = "|" | |
11 | 11 | ||
12 | 12 | func randomize (bytes,range) = { | |
13 | 13 | let hash = sha256(bytes) | |
14 | 14 | let index = toInt(hash) | |
15 | 15 | (index % range) | |
16 | 16 | } | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func counting (bytes,caller) = { | |
20 | 20 | let count = randomize(bytes, 10) | |
21 | 21 | if ((count >= 4)) | |
22 | 22 | then StringEntry(kWon, ((((toString(caller) + separator) + "false") + separatorSecond) + getStringValue(this, kWon))) | |
23 | 23 | else StringEntry(kWon, ((((toString(caller) + separator) + "true") + separatorSecond) + getStringValue(this, kWon))) | |
24 | 24 | } | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | @Callable(i) | |
28 | 28 | func initStore () = [StringEntry(kWon, "0")] | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | ||
32 | 32 | @Callable(i) | |
33 | 33 | func parseStruct () = { | |
34 | 34 | let nullInitStore = reentrantInvoke(this, "initStore", nil, nil) | |
35 | 35 | if ((nullInitStore == nullInitStore)) | |
36 | 36 | then if ((i.caller != this)) | |
37 | 37 | then throw("Only owner") | |
38 | 38 | else { | |
39 | 39 | let winnerStruct = counting(i.transactionId, i.caller) | |
40 | 40 | [winnerStruct] | |
41 | 41 | } | |
42 | 42 | else throw("Strict value is not equal to itself.") | |
43 | 43 | } | |
44 | 44 | ||
45 | 45 | ||
46 | 46 | ||
47 | 47 | @Callable(i) | |
48 | 48 | func startGame () = { | |
49 | 49 | let amount = value(i.payments[0].amount) | |
50 | 50 | if ((i.payments[0].assetId != unit)) | |
51 | 51 | then throw("Pay in waves") | |
52 | 52 | else if ((amount > 20)) | |
53 | 53 | then throw("You cannot bet more than 20") | |
54 | 54 | else { | |
55 | - | let nullInitStore = invoke(this, "parseStruct", nil, nil) | |
56 | - | if ((nullInitStore == nullInitStore)) | |
57 | - | then { | |
58 | - | let won = valueOrErrorMessage(getBoolean(this, kWon), "Storage read error") | |
59 | - | if (won) | |
60 | - | then [ScriptTransfer(i.caller, (amount * 2), unit)] | |
61 | - | else nil | |
62 | - | } | |
63 | - | else throw("Strict value is not equal to itself.") | |
55 | + | let won = valueOrErrorMessage(getBoolean(this, kWon), "Storage read error") | |
56 | + | if (won) | |
57 | + | then [ScriptTransfer(i.caller, (amount * 2), unit)] | |
58 | + | else nil | |
64 | 59 | } | |
65 | 60 | } | |
66 | 61 | ||
67 | 62 |
github/deemru/w8io/169f3d6 27.15 ms ◑![]()