tx · 6mZ7mNrRRfr4AFinxiox3HQzMRXSXeCptSQMGvWBFLzh 3PJpd1tujGgKdHEAXjG9oGsMxyE8vzx1eJ4: -0.01000000 Waves 2022.10.13 21:51 [3336413] smart account 3PJpd1tujGgKdHEAXjG9oGsMxyE8vzx1eJ4 > SELF 0.00000000 Waves
{ "type": 13, "id": "6mZ7mNrRRfr4AFinxiox3HQzMRXSXeCptSQMGvWBFLzh", "fee": 1000000, "feeAssetId": null, "timestamp": 1665687153612, "version": 2, "chainId": 87, "sender": "3PJpd1tujGgKdHEAXjG9oGsMxyE8vzx1eJ4", "senderPublicKey": "2zZ2ZoogVGxjTRzxu9Sx5JG6nwmctE4TPGZTxc6DiWp9", "proofs": [ "2hvhNFxVGGcW9fewpv3MqBekPJN64Zj2fgxFLNHqssijGuopgAJwdNSnYq2J5LhAv46TDwg8nskeiQ1fFgxApSJa" ], "script": "base64:BgINCAISAwoBCBIECgIICAoACXNlcGFyYXRvcgIBOwAQY29uZmlnQWRkcmVzc0tleQIGY29uZmlnAAlhZG1pbnNLZXkCBmFkbWlucwANY29uZmlnQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUQY29uZmlnQWRkcmVzc0tleQEHaXNBZG1pbgEGY2FsbGVyBAZhZG1Sb3cJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwUJYWRtaW5zS2V5AgADAwkAAAIFBmNhbGxlcgUEdGhpcwYJAQhjb250YWlucwIFBmFkbVJvdwkApQgBBQZjYWxsZXIGBwENZ2V0RXZlbnRlcktleQEHZXZlbnRlcgkArAICAghldmVudGVyXwUHZXZlbnRlcgEJaXNFdmVudGVyAQdldmVudGVyBAhpc0V4aXN0cwkBCWlzRGVmaW5lZAEJAJ0IAgUNY29uZmlnQWRkcmVzcwkBDWdldEV2ZW50ZXJLZXkBCQClCAEFB2V2ZW50ZXIFCGlzRXhpc3RzAQdnZXRJdGVtAgdldmVudElkBGRhcHAJAKwCAgkArAICBQdldmVudElkAgFfBQRkYXBwARlnZXRIaXN0b3J5U3RvcmFnZUNvdW50S2V5AQdhZGRyZXNzCQCsAgICGnN0b3JhZ2VfY291bnRfZm9yX2FkZHJlc3NfBQdhZGRyZXNzARVnZXRIaXN0b3J5U3RvcmFnZU5LZXkCB2FkZHJlc3MBbgkArAICCQCsAgIJAKwCAgIUc3RvcmFnZV9mb3JfYWRkcmVzc18FB2FkZHJlc3MCAV8JAKQDAQUBbgIBaQEEaW5pdAEGY29uZmlnAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIQb25seSBtYWluIGNhbiBkbwQIaXNFeGlzdHMJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFEGNvbmZpZ0FkZHJlc3NLZXkDCQEBIQEFCGlzRXhpc3RzCQDMCAIJAQtTdHJpbmdFbnRyeQIFEGNvbmZpZ0FkZHJlc3NLZXkFBmNvbmZpZwUDbmlsCQACAQIOYWxyZWFkeSBpbml0ZWQBaQENc2F2ZVRvSGlzdG9yeQIHZXZlbnRJZAdhZGRyZXNzAwkBASEBCQEJaXNFdmVudGVyAQgFAWkGY2FsbGVyCQACAQITb25seSBldmVudGVyIGNhbiBkbwQMY3VycmVudEluZGV4CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARlnZXRIaXN0b3J5U3RvcmFnZUNvdW50S2V5AQUHYWRkcmVzcwABBA5jdXJyZW50SGlzdG9yeQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEVZ2V0SGlzdG9yeVN0b3JhZ2VOS2V5AgUHYWRkcmVzcwUMY3VycmVudEluZGV4AgAEC2xpc3RIaXN0b3J5CQC1CQIFDmN1cnJlbnRIaXN0b3J5BQlzZXBhcmF0b3IEBGl0ZW0JAQdnZXRJdGVtAgUHZXZlbnRJZAkApQgBCAUBaQZjYWxsZXIDCQBnAgBkCQCQAwEFC2xpc3RIaXN0b3J5BApuZXdIaXN0b3J5AwkAAAIJALECAQUOY3VycmVudEhpc3RvcnkAAAUEaXRlbQkArAICCQCsAgIFBGl0ZW0FCXNlcGFyYXRvcgUOY3VycmVudEhpc3RvcnkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBFWdldEhpc3RvcnlTdG9yYWdlTktleQIFB2FkZHJlc3MFDGN1cnJlbnRJbmRleAUKbmV3SGlzdG9yeQUDbmlsBApuZXdIaXN0b3J5BQRpdGVtCQDMCAIJAQtTdHJpbmdFbnRyeQIJARVnZXRIaXN0b3J5U3RvcmFnZU5LZXkCBQdhZGRyZXNzCQBkAgUMY3VycmVudEluZGV4AAEFCm5ld0hpc3RvcnkJAMwIAgkBDEludGVnZXJFbnRyeQIJARlnZXRIaXN0b3J5U3RvcmFnZUNvdW50S2V5AQUHYWRkcmVzcwkAZAIFDGN1cnJlbnRJbmRleAABBQNuaWwA+/QPew==", "height": 3336413, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7BUs6T8o7McbLTqpVrUt1PKrnPmSFfpMayS3ofKmCsdL Next: none Diff:
Old | New | Differences | |
---|---|---|---|
61 | 61 | then { | |
62 | 62 | let newHistory = if ((size(currentHistory) == 0)) | |
63 | 63 | then item | |
64 | - | else (( | |
64 | + | else ((item + separator) + currentHistory) | |
65 | 65 | [StringEntry(getHistoryStorageNKey(address, currentIndex), newHistory)] | |
66 | 66 | } | |
67 | 67 | else { |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let separator = ";" | |
5 | 5 | ||
6 | 6 | let configAddressKey = "config" | |
7 | 7 | ||
8 | 8 | let adminsKey = "admins" | |
9 | 9 | ||
10 | 10 | let configAddress = addressFromStringValue(getStringValue(this, configAddressKey)) | |
11 | 11 | ||
12 | 12 | func isAdmin (caller) = { | |
13 | 13 | let admRow = valueOrElse(getString(configAddress, adminsKey), "") | |
14 | 14 | if (if ((caller == this)) | |
15 | 15 | then true | |
16 | 16 | else contains(admRow, toString(caller))) | |
17 | 17 | then true | |
18 | 18 | else false | |
19 | 19 | } | |
20 | 20 | ||
21 | 21 | ||
22 | 22 | func getEventerKey (eventer) = ("eventer_" + eventer) | |
23 | 23 | ||
24 | 24 | ||
25 | 25 | func isEventer (eventer) = { | |
26 | 26 | let isExists = isDefined(getString(configAddress, getEventerKey(toString(eventer)))) | |
27 | 27 | isExists | |
28 | 28 | } | |
29 | 29 | ||
30 | 30 | ||
31 | 31 | func getItem (eventId,dapp) = ((eventId + "_") + dapp) | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func getHistoryStorageCountKey (address) = ("storage_count_for_address_" + address) | |
35 | 35 | ||
36 | 36 | ||
37 | 37 | func getHistoryStorageNKey (address,n) = ((("storage_for_address_" + address) + "_") + toString(n)) | |
38 | 38 | ||
39 | 39 | ||
40 | 40 | @Callable(i) | |
41 | 41 | func init (config) = if ((i.caller != this)) | |
42 | 42 | then throw("only main can do") | |
43 | 43 | else { | |
44 | 44 | let isExists = isDefined(getString(this, configAddressKey)) | |
45 | 45 | if (!(isExists)) | |
46 | 46 | then [StringEntry(configAddressKey, config)] | |
47 | 47 | else throw("already inited") | |
48 | 48 | } | |
49 | 49 | ||
50 | 50 | ||
51 | 51 | ||
52 | 52 | @Callable(i) | |
53 | 53 | func saveToHistory (eventId,address) = if (!(isEventer(i.caller))) | |
54 | 54 | then throw("only eventer can do") | |
55 | 55 | else { | |
56 | 56 | let currentIndex = valueOrElse(getInteger(this, getHistoryStorageCountKey(address)), 1) | |
57 | 57 | let currentHistory = valueOrElse(getString(this, getHistoryStorageNKey(address, currentIndex)), "") | |
58 | 58 | let listHistory = split(currentHistory, separator) | |
59 | 59 | let item = getItem(eventId, toString(i.caller)) | |
60 | 60 | if ((100 >= size(listHistory))) | |
61 | 61 | then { | |
62 | 62 | let newHistory = if ((size(currentHistory) == 0)) | |
63 | 63 | then item | |
64 | - | else (( | |
64 | + | else ((item + separator) + currentHistory) | |
65 | 65 | [StringEntry(getHistoryStorageNKey(address, currentIndex), newHistory)] | |
66 | 66 | } | |
67 | 67 | else { | |
68 | 68 | let newHistory = item | |
69 | 69 | [StringEntry(getHistoryStorageNKey(address, (currentIndex + 1)), newHistory), IntegerEntry(getHistoryStorageCountKey(address), (currentIndex + 1))] | |
70 | 70 | } | |
71 | 71 | } | |
72 | 72 | ||
73 | 73 |
github/deemru/w8io/0e76f2f 39.82 ms ◑